Author: michiel
Date: 2009-05-29 16:37:21 +0200 (Fri, 29 May 2009)
New Revision: 35527
Modified:
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/CreateCachesProcessor.java
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/transcoders/InfiniteTranscoder.java
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/builders/streams/mediaprovider.field.xml
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/upload.jspx
Log:
Modified:
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/CreateCachesProcessor.java
===================================================================
---
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/CreateCachesProcessor.java
2009-05-29 14:35:38 UTC (rev 35526)
+++
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/CreateCachesProcessor.java
2009-05-29 14:37:21 UTC (rev 35527)
@@ -123,7 +123,7 @@
}
}
}
- LOG.service("Set max simultaneous transcoders to "
+ totalTranscoders);
+ LOG.info("Set max simultaneous transcoders to " +
totalTranscoders);
transcoderExecutor.setMaximumPoolSize(totalTranscoders);
} else {
LOG.warn("No " + resource);
@@ -146,27 +146,34 @@
}
- protected Node getCacheNode(final Node node, final Transcoder t, Logger
logger) {
+
+
+ protected Node getCacheNode(final Node node, final Node mediaprovider,
final Node mediafragment, final Transcoder t, Logger logger) {
+
final NodeManager caches =
node.getCloud().getNonTransactionalCloud().getNodeManager("streamsourcescaches");
NodeQuery q = caches.createQuery();
- Queries.addConstraint(q, Queries.createConstraint(q, "id",
FieldCompareConstraint.EQUAL, node));
+ Queries.addConstraint(q, Queries.createConstraint(q, "id",
FieldCompareConstraint.EQUAL, node));
Queries.addConstraint(q, Queries.createConstraint(q, "key",
FieldCompareConstraint.EQUAL, t.getKey()));
NodeList nodes = caches.getList(q);
Node resultNode;
if (nodes.size() > 0) {
resultNode = nodes.get(0);
resultNode.setIntValue("state", State.REQUEST.getValue());
+ resultNode.commit();
} else {
resultNode = caches.createNode();
+
resultNode.setIntValue("state", State.REQUEST.getValue());
resultNode.setStringValue("key", t.getKey());
resultNode.setNodeValue("id", node);
resultNode.commit();
// virtual field actually creates relation
- resultNode.setNodeValue("mediaprovider",
node.getNodeValue("mediaprovider"));
- resultNode.setNodeValue("mediafragment",
node.getNodeValue("mediafragment"));
- logger.service("Created " + resultNode);
+ resultNode.setNodeValue("mediaprovider", mediaprovider);
+ resultNode.setNodeValue("mediafragment", mediafragment);
+ resultNode.commit();
+ logger.info("Created cache node " + resultNode.getNumber() + "
for provider " + mediaprovider.getNumber() + " fragment " +
mediafragment.getNumber());
+
}
return resultNode;
}
@@ -190,7 +197,7 @@
}
- private Job createJob(final Node node, final ChainedLogger logger) {
+ private Job createJob(final Node node, final Node mediaprovider, final
Node mediafragment, final ChainedLogger logger) {
final Job thisJob = new Job(node.getCloud().getUser(), logger,
list.size());
runningJobs.add(thisJob);
thisJob.setFuture(transcoderExecutor.submit(new Callable<Integer>() {
@@ -202,10 +209,7 @@
for (JobDefinition jd : list) {
JobDefinition clone = new
JobDefinition(jd);
clones.add(clone);
- Node cacheNode = getCacheNode(node,
clone.transcoder, logger);
- if (cacheNode.isNew() ||
cacheNode.isChanged()) {
- cacheNode.commit();
- }
+ getCacheNode(node, mediaprovider,
mediafragment, clone.transcoder, logger);
}
} catch (Exception e) {
logger.error(e.getMessage());
@@ -214,7 +218,7 @@
for (JobDefinition jd : clones) {
LOG.debug("" + jd);
thisJob.setTranscoder(jd.transcoder);
- Node cacheNode =
CreateCachesProcessor.this.getCacheNode(node, jd.transcoder, logger);
+ Node cacheNode =
CreateCachesProcessor.this.getCacheNode(node, mediaprovider, mediafragment,
jd.transcoder, logger);
File inFile = new
File(FileServlet.getDirectory(), node.getStringValue("url"));
URI in = inFile.toURI();
StringBuilder buf = new StringBuilder();
@@ -262,13 +266,13 @@
cacheNode.setIntValue("state",
State.DONE.getValue());
cacheNode.commit();
result++;
- logger.service("READY " + jd);
+ logger.info("READY " + jd);
if
(Thread.currentThread().isInterrupted()){
logger.service("Interrupted");
break;
}
} catch (InterruptedException ie) {
- logger.service("Interrupted");
+ logger.info("Interrupted");
break;
} catch (Exception e) {
logger.error(e.getMessage(), e);
@@ -280,7 +284,7 @@
}
} finally {
- logger.service("READY " + result);
+ logger.info("READY " + result);
runningJobs.remove(thisJob);
}
return result;
@@ -299,11 +303,20 @@
node.getStringValue("title"); // This triggers
RelatedField$Creator to create a
// mediafragment if it does not yet exist
+ Node mediafragment = node.getNodeValue("mediafragment");
- LOG.info("Field '" + field + " was changed. Triggering caches
for " + list);
+ Node mediaprovider = node.getNodeValue("mediaprovider");
+ if (mediaprovider == null) {
+ mediaprovider =
Casting.toNode(node.getNodeManager().getField("mediaprovider").getDataType().getDefaultValue(),
node.getCloud());
+ }
+ LOG.info("Field '" + field + " was changed. Triggering caches
for " + list + " Mediaframent " + mediafragment);
+
final ChainedLogger logger = new ChainedLogger(LOG);
- final Job thisJob = createJob(node, logger);
+ Cloud ntCloud = node.getCloud().getNonTransactionalCloud();
+ final Job thisJob =
createJob(ntCloud.getNode(node.getNumber()),
+
ntCloud.getNode(mediaprovider.getNumber()),
+
ntCloud.getNode(mediafragment.getNumber()), logger);
// If the node happens to be deleted before the future with
cache creations is ready, cancel the future
EventManager.getInstance().addEventListener(new
WeakNodeEventListener() {
Modified:
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/transcoders/InfiniteTranscoder.java
===================================================================
---
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/transcoders/InfiniteTranscoder.java
2009-05-29 14:35:38 UTC (rev 35526)
+++
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/transcoders/InfiniteTranscoder.java
2009-05-29 14:37:21 UTC (rev 35527)
@@ -34,11 +34,11 @@
LOG.info("Logging to " + log);
while(true) {
- Thread.sleep(1000);
+ Thread.sleep(5000);
if (Thread.currentThread().interrupted()) {
break;
}
- LOG.info("Logging to " + log);
+ LOG.debug("Logging to " + log);
log.service("" + (seq++) + " " + in + " -> " + out);
}
Modified:
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/builders/streams/mediaprovider.field.xml
===================================================================
---
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/builders/streams/mediaprovider.field.xml
2009-05-29 14:35:38 UTC (rev 35526)
+++
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/builders/streams/mediaprovider.field.xml
2009-05-29 14:37:21 UTC (rev 35527)
@@ -4,18 +4,23 @@
xsi:schemaLocation="http://www.mmbase.org/xmlns/builder
http://www.mmbase.org/xmlns/builder.xsd"
name="mediaprovider" state="virtual">
+
<gui>
<guiname xml:lang="nl">Provider</guiname>
<guiname xml:lang="en">Provider</guiname>
</gui>
+
<datatype base="node" xmlns="http://www.mmbase.org/xmlns/datatypes" >
+
<default value="mediaprovider_localhost" />
<required value="true" />
+
<enumeration enforce="never">
<query type="mediaproviders"
xmlns="http://www.mmbase.org/xmlns/searchquery">
<sortorder field="name" />
</query>
</enumeration>
+
<setprocessor>
<class name="org.mmbase.datatypes.processors.Related$Setter">
<param name="type">mediaproviders</param>
Modified:
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/upload.jspx
===================================================================
---
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/upload.jspx
2009-05-29 14:35:38 UTC (rev 35526)
+++
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/upload.jspx
2009-05-29 14:37:21 UTC (rev 35527)
@@ -14,7 +14,7 @@
<mm:maycreate type="streamsources">
<script type="text/javascript">
- Widgets.prototype.labelsToInputs(".c_streams..b_upload label",
{emptyisuntouched: true});
+ <jsp:text>Widgets.prototype.labelsToInputs(".c_streams..b_upload
label", { emptyisuntouched: true});</jsp:text>
</script>
<mm:form>
<mm:createnode type="streamsources" commitonclose="false">
@@ -29,7 +29,14 @@
<mm:fieldinfo type="errors" />
</mm:fieldlist>
</mm:createnode>
- <input type="submit" />
+ <input type="submit" name="submit" />
+ <mm:import externid="submit" />
+ <mm:present referid="submit">
+ <mm:valid>
+ <p>Submitting</p>
+ <mm:commit />
+ </mm:valid>
+ </mm:present>
</mm:form>
</mm:maycreate>
<mm:maycreate type="streamsources" inverse="true">
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs