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

Reply via email to