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 2007/04/17 18:13:55 UTC

svn commit: r529664 - in /lenya/trunk/src/modules: opendocument/config/cocoon-xconf/ opendocument/java/src/org/apache/lenya/cms/site/usecases/ resource/config/cocoon-xconf/ resource/java/src/org/apache/lenya/cms/site/usecases/

Author: andreas
Date: Tue Apr 17 09:13:54 2007
New Revision: 529664

URL: http://svn.apache.org/viewvc?view=rev&rev=529664
Log:
Handle workflow and conditions properly in upload usecases

Modified:
    lenya/trunk/src/modules/opendocument/config/cocoon-xconf/usecase-upload-odt.xconf
    lenya/trunk/src/modules/opendocument/java/src/org/apache/lenya/cms/site/usecases/UploadOpenDocument.java
    lenya/trunk/src/modules/resource/config/cocoon-xconf/usecase-upload-resource.xconf
    lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java

Modified: lenya/trunk/src/modules/opendocument/config/cocoon-xconf/usecase-upload-odt.xconf
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/opendocument/config/cocoon-xconf/usecase-upload-odt.xconf?view=diff&rev=529664&r1=529663&r2=529664
==============================================================================
--- lenya/trunk/src/modules/opendocument/config/cocoon-xconf/usecase-upload-odt.xconf (original)
+++ lenya/trunk/src/modules/opendocument/config/cocoon-xconf/usecase-upload-odt.xconf Tue Apr 17 09:13:54 2007
@@ -23,6 +23,7 @@
   <component-instance name="opendocument.upload" logger="lenya.module.odt"
     class="org.apache.lenya.cms.site.usecases.UploadOpenDocument">
     <view template="modules/opendocument/usecases/upload.jx"/>
+    <event id="edit"/>
   </component-instance>
   
 </xconf>

Modified: lenya/trunk/src/modules/opendocument/java/src/org/apache/lenya/cms/site/usecases/UploadOpenDocument.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/opendocument/java/src/org/apache/lenya/cms/site/usecases/UploadOpenDocument.java?view=diff&rev=529664&r1=529663&r2=529664
==============================================================================
--- lenya/trunk/src/modules/opendocument/java/src/org/apache/lenya/cms/site/usecases/UploadOpenDocument.java (original)
+++ lenya/trunk/src/modules/opendocument/java/src/org/apache/lenya/cms/site/usecases/UploadOpenDocument.java Tue Apr 17 09:13:54 2007
@@ -18,15 +18,29 @@
 package org.apache.lenya.cms.site.usecases;
 
 import org.apache.cocoon.servlet.multipart.Part;
+import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.OpenDocumentWrapper;
-import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.workflow.usecases.InvokeWorkflow;
+import org.apache.lenya.util.ServletHelper;
 
 /**
  * Usecase to create a document.
  * 
  * @version $Id: CreateDocument.java 379098 2006-02-20 11:35:10Z andreas $
  */
-public class UploadOpenDocument extends DocumentUsecase {
+public class UploadOpenDocument extends InvokeWorkflow {
+
+    protected void doCheckPreconditions() throws Exception {
+        super.doCheckPreconditions();
+        if (!ServletHelper.isUploadEnabled(manager)) {
+            addErrorMessage("Upload is not enabled. Please check local.build.properties!");
+        }
+        Document doc = getSourceDocument();
+        if (!doc.getArea().equals(Publication.AUTHORING_AREA)) {
+            addErrorMessage("This usecase can only be invoked in the authoring area!");
+        }
+    }
 
     protected void doCheckExecutionConditions() throws Exception {
         super.doCheckExecutionConditions();
@@ -51,6 +65,7 @@
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
+        super.doExecute();
         OpenDocumentWrapper odt = new OpenDocumentWrapper(getSourceDocument(), getLogger());
         Part file = getPart("file");
         odt.write(file);

Modified: lenya/trunk/src/modules/resource/config/cocoon-xconf/usecase-upload-resource.xconf
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/config/cocoon-xconf/usecase-upload-resource.xconf?view=diff&rev=529664&r1=529663&r2=529664
==============================================================================
--- lenya/trunk/src/modules/resource/config/cocoon-xconf/usecase-upload-resource.xconf (original)
+++ lenya/trunk/src/modules/resource/config/cocoon-xconf/usecase-upload-resource.xconf Tue Apr 17 09:13:54 2007
@@ -23,6 +23,7 @@
   <component-instance name="resource.upload" logger="lenya.module.resource"
     class="org.apache.lenya.cms.site.usecases.UploadResource">
     <view template="modules/resource/usecases/upload-resource.jx"/>
+    <event id="edit"/>
   </component-instance>
   
 </xconf>

Modified: lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java?view=diff&rev=529664&r1=529663&r2=529664
==============================================================================
--- lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java (original)
+++ lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java Tue Apr 17 09:13:54 2007
@@ -21,55 +21,44 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.ResourceWrapper;
-import org.apache.lenya.cms.usecase.DocumentUsecase;
-import org.apache.lenya.cms.workflow.WorkflowUtil;
-import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
+import org.apache.lenya.cms.workflow.usecases.InvokeWorkflow;
 import org.apache.lenya.util.ServletHelper;
 
 /**
  * Usecase to upload a resource.
  * 
  */
-public class UploadResource extends DocumentUsecase {
+public class UploadResource extends InvokeWorkflow {
 
-    protected String getEvent() {
-        return "edit";
-    }
-    
     protected void doCheckPreconditions() throws Exception {
         super.doCheckPreconditions();
         if (!ServletHelper.isUploadEnabled(manager)) {
             addErrorMessage("Upload is not enabled. Please check local.build.properties!");
         }
         Document doc = getSourceDocument();
-        if (!getSourceDocument().getArea().equals(Publication.AUTHORING_AREA)) {
+        if (!doc.getArea().equals(Publication.AUTHORING_AREA)) {
             addErrorMessage("This usecase can only be invoked in the authoring area!");
-        } else if (!getSourceDocument().exists()) {
-            addErrorMessage("This usecase can only be invoked on existing documents.");
         }
+    }
 
-        UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc,
-                getLogger());
+    protected void doCheckExecutionConditions() throws Exception {
+        super.doCheckExecutionConditions();
+        Part file = getPart("file");
+        if (file.isRejected()) {
+            String[] params = { Integer.toString(file.getSize()) };
+            addErrorMessage("upload-size-exceeded", params);
+        }
     }
 
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
-        if (getLogger().isDebugEnabled())
-            getLogger().debug("Resource::uploadResource() called");
-
+        super.doExecute();
         Part file = getPart("file");
-
-        if (file.isRejected()) {
-            String[] params = { Integer.toString(file.getSize()) };
-            addErrorMessage("upload-size-exceeded", params);
-        } else {
-            Document document = getSourceDocument();
-            ResourceWrapper wrapper = new ResourceWrapper(document, this.manager, getLogger());
-            wrapper.write(file);
-            WorkflowUtil.invoke(this.manager, getSession(), getLogger(), document, getEvent());
-        }
+        Document document = getSourceDocument();
+        ResourceWrapper wrapper = new ResourceWrapper(document, this.manager, getLogger());
+        wrapper.write(file);
     }
 
 }



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