Author: michiel
Date: 2009-05-30 11:11:30 +0200 (Sat, 30 May 2009)
New Revision: 35533
Added:
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/alljobs.jspx
Modified:
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/CreateCachesProcessor.java
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/components/streams.xml
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/functions/streams.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-30 09:05:12 UTC (rev 35532)
+++
speeltuin/mihxil/streams/src/main/java/org/mmbase/streams/CreateCachesProcessor.java
2009-05-30 09:11:30 UTC (rev 35533)
@@ -195,6 +195,9 @@
}
return myjobs;
}
+ public static Set<Job> runningJobs() {
+ return Collections.unmodifiableSet(runningJobs);
+ }
private Job createJob(final Node node, final Node mediaprovider, final
Node mediafragment, final ChainedLogger logger) {
@@ -301,36 +304,44 @@
if (node.getNumber() > 0) {
if (node.isChanged(field.getName())) {
- node.getStringValue("title"); // This triggers
RelatedField$Creator to create a
- // mediafragment if it does not yet exist
- Node mediafragment = node.getNodeValue("mediafragment");
+ final Cloud ntCloud =
node.getCloud().getNonTransactionalCloud();
+ ThreadPools.scheduler.schedule(new Runnable() {
+ public void run() {
+ if (ntCloud.hasNode(node.getNumber())) {
+ final ChainedLogger logger = new
ChainedLogger(LOG);
+ node.getStringValue("title"); // This
triggers RelatedField$Creator to create a
+ // mediafragment if it does not yet exist
+ Node mediafragment =
node.getNodeValue("mediafragment");
+ Node mediaprovider =
node.getNodeValue("mediaprovider");
+ if (mediaprovider == null) {
+ mediaprovider =
Casting.toNode(node.getNodeManager().getField("mediaprovider").getDataType().getDefaultValue(),
node.getCloud());
+ }
- 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);
- LOG.info("Field '" + field + " was changed. Triggering caches
for " + list + " Mediaframent " + mediafragment);
+ final Job thisJob =
createJob(ntCloud.getNode(node.getNumber()),
+
ntCloud.getNode(mediaprovider.getNumber()),
+
ntCloud.getNode(mediafragment.getNumber()), logger);
- final ChainedLogger logger = new ChainedLogger(LOG);
- 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() {
- public void notify(NodeEvent event) {
- if (event.getNodeNumber() == node.getNumber() &&
event.getType() == Event.TYPE_DELETE) {
- if (thisJob.future.cancel(true)) {
- logger.info("Canceled " + thisJob.future +
" for " + event.getBuilderName() + " " + event.getNodeNumber());
- }
+ // If the node happens to be deleted
before the future with cache creations is ready, cancel the future
+
EventManager.getInstance().addEventListener(new WeakNodeEventListener() {
+ public void notify(NodeEvent
event) {
+ if (event.getNodeNumber() ==
node.getNumber() && event.getType() == Event.TYPE_DELETE) {
+ if
(thisJob.future.cancel(true)) {
+ logger.info("Canceled
" + thisJob.future + " for " + event.getBuilderName() + " " +
event.getNodeNumber());
+ }
+ }
+ }
+ public String toString() {
+ return "Job canceler for " +
node.getNumber();
+ }
+ });
+ } else {
+ LOG.warn("Node " + node.getNumber() + " is not
real.");
}
}
- public String toString() {
- return "Job canceler for " + node.getNumber();
- }
- });
+ }, 2, TimeUnit.SECONDS);
} else {
LOG.debug("Field " + field + " not changed " +
node.getChanged());
}
@@ -394,6 +405,9 @@
public String getProgress() {
return "" + busy + "/" + size;
}
+ public String getUser() {
+ return user;
+ }
@Override
public String toString() {
Modified:
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/components/streams.xml
===================================================================
---
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/components/streams.xml
2009-05-30 09:05:12 UTC (rev 35532)
+++
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/components/streams.xml
2009-05-30 09:11:30 UTC (rev 35533)
@@ -48,6 +48,11 @@
mimetype="text/html">
<body jsp="myjobs.jspx" />
</block>
+ <block name="alljobs"
+ classification="mmbase.streams"
+ mimetype="text/html">
+ <body jsp="alljobs.jspx" />
+ </block>
<block name="upload"
classification="mmbase.streams"
Modified:
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/functions/streams.xml
===================================================================
---
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/functions/streams.xml
2009-05-30 09:05:12 UTC (rev 35532)
+++
speeltuin/mihxil/streams/src/main/resources/org/mmbase/config/functions/streams.xml
2009-05-30 09:11:30 UTC (rev 35533)
@@ -11,4 +11,10 @@
<param name="user" type="org.mmbase.security.UserContext" />
</function>
+ <function name="runningJobs">
+ <type>class</type>
+ <class>org.mmbase.streams.CreateCachesProcessor</class>
+ <method>runningJobs</method>
+ </function>
+
</functionset>
Added:
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/alljobs.jspx
===================================================================
---
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/alljobs.jspx
(rev 0)
+++
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/alljobs.jspx
2009-05-30 09:11:30 UTC (rev 35533)
@@ -0,0 +1,31 @@
+<div
+ class="mm_c c_streams b_myjobs ${requestScope.componentClassName}"
+ id="${requestScope.componentId}"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ xmlns:mm-res="urn:jsptagdir:/WEB-INF/tags/mm/resources"
+ xmlns:fn="http://java.sun.com/jsp/jstl/functions"
+ xmlns:jsp="http://java.sun.com/JSP/Page"
+ xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0">
+
+ <jsp:output omit-xml-declaration="true" />
+
+ <ul>
+ <mm:listfunction set="streams" name="runningJobs">
+ <li>
+ <span>${_.transcoder} (${_.progress})</span>
+ <p>
+ <span class="in">${_.transcoder.in}</span>
+ <jsp:text> -&gt; </jsp:text>
+ <span class="out">${_.transcoder.out}</span>
+ </p>
+ <div class="log">
+ <pre>
+ <jsp:text>${_.logger.debugList}</jsp:text>
+ </pre>
+ </div>
+ </li>
+ </mm:listfunction>
+ </ul>
+
+
+</div>
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-30 09:05:12 UTC (rev 35532)
+++
speeltuin/mihxil/streams/src/main/webapp/mmbase/components/streams/upload.jspx
2009-05-30 09:11:30 UTC (rev 35533)
@@ -38,6 +38,8 @@
</mm:valid>
</mm:present>
</mm:form>
+ <h2>Jobs</h2>
+ <mm:component name="streams" block="myjobs" />
</mm:maycreate>
<mm:maycreate type="streamsources" inverse="true">
<fmt:message key="maynot" />
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs