You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2005/03/07 17:05:11 UTC

svn commit: r156429 - in lenya/trunk/src/webapp/lenya/pubs/default: config/menus/generic.xsp config/usecases.xconf java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java

Author: andreas
Date: Mon Mar  7 08:05:08 2005
New Revision: 156429

URL: http://svn.apache.org/viewcvs?view=rev&rev=156429
Log:
replace lenya.event handling by Avalon configuration

Modified:
    lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
    lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp Mon Mar  7 08:05:08 2005
@@ -132,8 +132,8 @@
       
       <menu i18n:attr="name" name="Workflow">
         <block>
-          <item uc:usecase="workflow.submit" wf:event="submit" href="?"><i18n:text>Submit</i18n:text></item>
-          <item uc:usecase="workflow.reject" wf:event="reject" href="?"><i18n:text>Reject</i18n:text></item>
+          <item uc:usecase="workflow.submit" href="?"><i18n:text>Submit</i18n:text></item>
+          <item uc:usecase="workflow.reject" href="?"><i18n:text>Reject</i18n:text></item>
           <item uc:usecase="workflow.publish" href="?"><i18n:text>Publish</i18n:text></item>
           <item uc:usecase="workflow.deactivate" href="?"><i18n:text>Deactivate</i18n:text></item>
        </block>

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf Mon Mar  7 08:05:08 2005
@@ -2,11 +2,15 @@
 
     <component-instance name="default/workflow.submit"
                         logger="lenya.usecases.workflow"
-                        class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow"/>
+                        class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow">
+      <event id="submit"/>
+    </component-instance>
                         
     <component-instance name="default/workflow.reject"
                         logger="lenya.usecases.workflow"
-                        class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow"/>
+                        class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow">
+      <event id="reject"/>
+    </component-instance>
                         
     <component-instance name="default/workflow.publish"
                         logger="lenya.usecases.workflow"

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java Mon Mar  7 08:05:08 2005
@@ -16,6 +16,7 @@
  */
 package org.apache.lenya.defaultpub.cms.usecases;
 
+import org.apache.avalon.framework.service.ServiceException;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.Publication;
@@ -24,8 +25,8 @@
 import org.apache.lenya.cms.publication.util.OrderedDocumentSet;
 import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.workflow.WorkflowManager;
 import org.apache.lenya.workflow.WorkflowException;
-import org.apache.lenya.workflow.WorkflowInstance;
 
 /**
  * Deactivate usecase handler.
@@ -51,12 +52,21 @@
 
             String event = getEvent();
 
-            if (!getWorkflowInstance(getSourceDocument()).canInvoke(getSituation(), event)) {
-                setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
-                addInfoMessage("The single document cannot be deactivated because the workflow event cannot be invoked.");
-            } else {
-                setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+            WorkflowManager wfManager = null;
+            try {
+                wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+                if (!wfManager.canInvoke(getSourceDocument(), event)) {
+                    setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
+                    addInfoMessage("The single document cannot be deactivated because the workflow event cannot be invoked.");
+                } else {
+                    setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+                }
+            } finally {
+                if (wfManager != null) {
+                    this.manager.release(wfManager);
+                }
             }
+
         }
     }
 
@@ -81,12 +91,14 @@
         Publication publication = authoringDocument.getPublication();
         boolean success = false;
 
+        WorkflowManager wfManager = null;
         try {
+            wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
             Document liveDocument = publication.getAreaVersion(authoringDocument,
                     Publication.LIVE_AREA);
             getDocumentManager().deleteDocument(liveDocument);
 
-            triggerWorkflow(getEvent(), authoringDocument);
+            wfManager.invoke(authoringDocument, getEvent());
             success = true;
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -95,6 +107,9 @@
                 getLogger().debug("Deactivate document [" + authoringDocument + "]. Success: ["
                         + success + "]");
             }
+            if (wfManager != null) {
+                this.manager.release(wfManager);
+            }
         }
 
     }
@@ -173,13 +188,22 @@
             WorkflowException {
         String[] languages = document.getPublication().getLanguages();
         DocumentFactory factory = document.getIdentityMap().getFactory();
-        for (int i = 0; i < languages.length; i++) {
-            Document version = factory.getLanguageVersion(document, languages[i]);
-            if (version.exists()) {
-                WorkflowInstance instance = getWorkflowInstance(version);
-                if (instance.canInvoke(getSituation(), getEvent())) {
-                    deactivate(version);
+        WorkflowManager wfManager = null;
+        try {
+            wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+            for (int i = 0; i < languages.length; i++) {
+                Document version = factory.getLanguageVersion(document, languages[i]);
+                if (version.exists()) {
+                    if (wfManager.canInvoke(getSourceDocument(), getEvent())) {
+                        deactivate(version);
+                    }
                 }
+            }
+        } catch (ServiceException e) {
+            throw new RuntimeException(e);
+        } finally {
+            if (wfManager != null) {
+                this.manager.release(wfManager);
             }
         }
 

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java Mon Mar  7 08:05:08 2005
@@ -27,8 +27,8 @@
 import org.apache.lenya.cms.publication.util.OrderedDocumentSet;
 import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.workflow.WorkflowManager;
 import org.apache.lenya.workflow.WorkflowException;
-import org.apache.lenya.workflow.WorkflowInstance;
 
 /**
  * Publish usecase handler.
@@ -59,11 +59,19 @@
                 return;
             }
 
-            if (!getWorkflowInstance(getSourceDocument()).canInvoke(getSituation(), event)) {
-                setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
-                addInfoMessage("The single document cannot be published because the workflow event cannot be invoked.");
-            } else {
-                setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+            WorkflowManager wfManager = null;
+            try {
+                wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+                if (!wfManager.canInvoke(getSourceDocument(), event)) {
+                    setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
+                    addInfoMessage("The single document cannot be published because the workflow event cannot be invoked.");
+                } else {
+                    setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+                }
+            } finally {
+                if (wfManager != null) {
+                    this.manager.release(wfManager);
+                }
             }
 
             Publication publication = document.getPublication();
@@ -107,21 +115,18 @@
      */
     protected void publish(Document authoringDocument) {
 
-        boolean success = false;
-
+        WorkflowManager wfManager = null;
         try {
+            wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
             getDocumentManager().copyDocumentToArea(authoringDocument, Publication.LIVE_AREA);
-            triggerWorkflow(getEvent(), authoringDocument);
-            success = true;
+            wfManager.invoke(authoringDocument, getEvent());
         } catch (Exception e) {
             throw new RuntimeException(e);
         } finally {
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("Publish document [" + authoringDocument + "]. Success: ["
-                        + success + "]");
+            if (wfManager != null) {
+                this.manager.release(wfManager);
             }
         }
-
     }
 
     /**
@@ -198,13 +203,23 @@
             WorkflowException {
         String[] languages = document.getPublication().getLanguages();
         DocumentFactory factory = document.getIdentityMap().getFactory();
-        for (int i = 0; i < languages.length; i++) {
-            Document version = factory.getLanguageVersion(document, languages[i]);
-            if (version.exists()) {
-                WorkflowInstance instance = getWorkflowInstance(version);
-                if (instance.canInvoke(getSituation(), getEvent())) {
-                    publish(version);
+
+        WorkflowManager wfManager = null;
+        try {
+            wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+            for (int i = 0; i < languages.length; i++) {
+                Document version = factory.getLanguageVersion(document, languages[i]);
+                if (version.exists()) {
+                    if (wfManager.canInvoke(version, getEvent())) {
+                        publish(version);
+                    }
                 }
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            if (wfManager != null) {
+                this.manager.release(wfManager);
             }
         }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org