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 2006/06/23 11:15:34 UTC

svn commit: r416648 - in /lenya/trunk/src: java/org/apache/lenya/cms/cocoon/components/modules/input/ java/org/apache/lenya/cms/cocoon/transformation/ java/org/apache/lenya/cms/workflow/ java/org/apache/lenya/cms/workflow/usecases/ modules-core/siteman...

Author: andreas
Date: Fri Jun 23 02:15:28 2006
New Revision: 416648

URL: http://svn.apache.org/viewvc?rev=416648&view=rev
Log:
Reduced visibility of DocumentWorkflowable class to reduce dependencies on implementation code

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/WorkflowModule.java
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java
    lenya/trunk/src/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
    lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowUtil.java
    lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/History.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java
    lenya/trunk/src/pubs/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/WorkflowModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/WorkflowModule.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/WorkflowModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/WorkflowModule.java Fri Jun 23 02:15:28 2006
@@ -30,10 +30,11 @@
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
-import org.apache.lenya.cms.workflow.DocumentWorkflowable;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.workflow.Version;
 import org.apache.lenya.workflow.Workflow;
 import org.apache.lenya.workflow.WorkflowManager;
+import org.apache.lenya.workflow.Workflowable;
 
 /**
  * Module for workflow access.
@@ -83,10 +84,8 @@
                 wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
                 Session session = RepositoryUtil.getSession(this.manager,
                         ObjectModelHelper.getRequest(objectModel));
-                DocumentWorkflowable workflowable = new DocumentWorkflowable(this.manager,
-                        session,
-                        document,
-                        getLogger());
+                Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, session,
+                        getLogger(), document);
                 if (wfManager.hasWorkflow(workflowable)) {
 
                     Version latestVersion = workflowable.getLatestVersion();
@@ -139,7 +138,7 @@
         return value;
     }
 
-    protected Version getLatestVersion(DocumentWorkflowable workflowable, String event) {
+    protected Version getLatestVersion(Workflowable workflowable, String event) {
         Version latestEventVersion = null;
         Version versions[] = workflowable.getVersions();
         for (int i = versions.length - 1; i > 0; i--) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java Fri Jun 23 02:15:28 2006
@@ -36,10 +36,11 @@
 import org.apache.lenya.cms.publication.ResourceType;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
-import org.apache.lenya.cms.workflow.DocumentWorkflowable;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.util.ServletHelper;
 import org.apache.lenya.workflow.Workflow;
 import org.apache.lenya.workflow.WorkflowManager;
+import org.apache.lenya.workflow.Workflowable;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
@@ -143,10 +144,10 @@
             }
 
             if (hasWorkflow()) {
-                DocumentWorkflowable workflowable = new DocumentWorkflowable(this.manager,
+                Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
                         session,
-                        document,
-                        getLogger());
+                        getLogger(),
+                        document);
                 Workflow workflow = workflowManager.getWorkflowSchema(workflowable);
                 String[] events = workflow.getEvents();
                 for (int i = 0; i < events.length; i++) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java Fri Jun 23 02:15:28 2006
@@ -44,7 +44,7 @@
  * 
  * @version $Id$
  */
-public class DocumentWorkflowable extends AbstractLogEnabled implements Workflowable {
+class DocumentWorkflowable extends AbstractLogEnabled implements Workflowable {
 
     /**
      * Ctor.

Modified: lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowUtil.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowUtil.java Fri Jun 23 02:15:28 2006
@@ -49,7 +49,7 @@
         WorkflowManager wfManager = null;
         try {
             wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
-            Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+            Workflowable workflowable = getWorkflowable(manager, session, logger, document);
             wfManager.invoke(workflowable, event);
         } catch (ServiceException e) {
             throw new WorkflowException(e);
@@ -78,7 +78,7 @@
         WorkflowManager wfManager = null;
         try {
             wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
-            Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+            Workflowable workflowable = getWorkflowable(manager, session, logger, document);
             wfManager.invoke(workflowable, event, force);
         } catch (ServiceException e) {
             throw new WorkflowException(e);
@@ -230,7 +230,7 @@
         WorkflowManager wfManager = null;
         try {
             wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
-            Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+            Workflowable workflowable = getWorkflowable(manager, session, logger, document);
             if (wfManager.hasWorkflow(workflowable)) {
                 return wfManager.getWorkflowSchema(workflowable);
             } else {
@@ -244,4 +244,19 @@
             }
         }
     }
+
+    /**
+     * Returns a workflowable for a document.
+     * @param manager The service manager.
+     * @param session The session.
+     * @param logger The logger.
+     * @param document The document.
+     * @return A workflowable.
+     */
+    public static Workflowable getWorkflowable(ServiceManager manager, Session session,
+            Logger logger, Document document) {
+        Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+        return workflowable;
+    }
+
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/History.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/History.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/History.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/History.java Fri Jun 23 02:15:28 2006
@@ -17,8 +17,9 @@
 package org.apache.lenya.cms.workflow.usecases;
 
 import org.apache.lenya.cms.usecase.DocumentUsecase;
-import org.apache.lenya.cms.workflow.DocumentWorkflowable;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.workflow.Version;
+import org.apache.lenya.workflow.Workflowable;
 
 /**
  * Display the workflow history tab in the site area
@@ -34,10 +35,10 @@
     protected void initParameters() {
         super.initParameters();
 
-        DocumentWorkflowable workflowable = new DocumentWorkflowable(this.manager,
+        Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
                 getSession(),
-                getSourceDocument(),
-                getLogger());
+                getLogger(),
+                getSourceDocument());
         Version[] versions = workflowable.getVersions();
         setParameter("versions", versions);
     }

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java Fri Jun 23 02:15:28 2006
@@ -25,10 +25,11 @@
 import org.apache.lenya.cms.site.SiteUtil;
 import org.apache.lenya.cms.site.usecases.SiteUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
-import org.apache.lenya.cms.workflow.DocumentWorkflowable;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.workflow.Version;
 import org.apache.lenya.workflow.Workflow;
 import org.apache.lenya.workflow.WorkflowManager;
+import org.apache.lenya.workflow.Workflowable;
 
 /**
  * Usecase to display the overview tab in the site area for a document.
@@ -77,10 +78,10 @@
             boolean visible = SiteUtil.isVisibleInNavigation(this.manager, doc);
             setParameter(VISIBLE_IN_NAVIGATION, Boolean.valueOf(visible));
 
-            DocumentWorkflowable workflowable = new DocumentWorkflowable(this.manager,
+            Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
                     getSession(),
-                    doc,
-                    getLogger());
+                    getLogger(),
+                    doc);
             resolver = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
             if (resolver.hasWorkflow(workflowable)) {
                 Workflow workflow = resolver.getWorkflowSchema(workflowable);

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java Fri Jun 23 02:15:28 2006
@@ -46,10 +46,10 @@
 import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
-import org.apache.lenya.cms.workflow.DocumentWorkflowable;
 import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.workflow.Version;
 import org.apache.lenya.workflow.Workflow;
+import org.apache.lenya.workflow.Workflowable;
 
 /**
  * Overview over all documents.
@@ -107,10 +107,10 @@
                 entry.setValue(KEY_LAST_MODIFIED, lastModified);
 
                 if (WorkflowUtil.hasWorkflow(this.manager, getSession(), getLogger(), documents[i])) {
-                    DocumentWorkflowable workflowable = new DocumentWorkflowable(this.manager,
+                    Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
                             getSession(),
-                            documents[i],
-                            getLogger());
+                            getLogger(),
+                            documents[i]);
                     Version latestVersion = workflowable.getLatestVersion();
                     String state;
                     if (latestVersion != null) {
@@ -142,8 +142,7 @@
                     RCMLEntry lastEntry = rcml.getLatestCheckOutEntry();
                     String userId = lastEntry.getIdentity();
                     entry.setValue(KEY_CHECKED_OUT, userId);
-                }
-                else {
+                } else {
                     entry.setValue(KEY_CHECKED_OUT, "");
                 }
                 entries.add(entry);

Modified: lenya/trunk/src/pubs/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java?rev=416648&r1=416647&r2=416648&view=diff
==============================================================================
--- lenya/trunk/src/pubs/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java (original)
+++ lenya/trunk/src/pubs/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java Fri Jun 23 02:15:28 2006
@@ -32,7 +32,6 @@
 import org.apache.lenya.cms.site.SiteUtil;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
-import org.apache.lenya.cms.workflow.DocumentWorkflowable;
 import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.workflow.Version;
 import org.apache.lenya.workflow.Workflowable;
@@ -138,14 +137,16 @@
 
     protected void updateFeed() throws Exception {
         DocumentFactory map = DocumentUtil.createDocumentIdentityMap(this.manager, getSession());
-        
+
         Document[] docs = new Document[2];
         org.w3c.dom.Document[] doms = new org.w3c.dom.Document[2];
-        
+
         docs[0] = map.get(this.getSourceDocument().getPublication(),
-                Publication.LIVE_AREA, "/feeds/all/index");
+                Publication.LIVE_AREA,
+                "/feeds/all/index");
         docs[1] = map.get(this.getSourceDocument().getPublication(),
-                Publication.AUTHORING_AREA, "/feeds/all/index");
+                Publication.AUTHORING_AREA,
+                "/feeds/all/index");
 
         DateFormat datefmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
         DateFormat ofsfmt = new SimpleDateFormat("Z");
@@ -154,22 +155,22 @@
         String dateofs = ofsfmt.format(date);
         String datestr = datefmt.format(date) + dateofs.substring(0, 3) + ":"
                 + dateofs.substring(3, 5);
-        
-        for (int i=0; i<2; i++) {
+
+        for (int i = 0; i < 2; i++) {
             doms[i] = DocumentHelper.readDocument(docs[i].getFile());
             Element parent = doms[i].getDocumentElement();
             // set modified date on publish
             Element element = (Element) XPathAPI.selectSingleNode(parent,
-                "/*[local-name() = 'feed']/*[local-name() = 'modified']");
+                    "/*[local-name() = 'feed']/*[local-name() = 'modified']");
             DocumentHelper.setSimpleElementText(element, datestr);
             DocumentHelper.writeDocument(doms[i], docs[i].getFile());
         }
     }
-    
-    protected void updateBlogEntry(Document doc) throws Exception {        
+
+    protected void updateBlogEntry(Document doc) throws Exception {
         org.w3c.dom.Document dom = DocumentHelper.readDocument(doc.getFile());
         Element parent = dom.getDocumentElement();
-        
+
         DateFormat datefmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
         DateFormat ofsfmt = new SimpleDateFormat("Z");
         Date date = new Date();
@@ -177,18 +178,20 @@
         String dateofs = ofsfmt.format(date);
         String datestr = datefmt.format(date) + dateofs.substring(0, 3) + ":"
                 + dateofs.substring(3, 5);
-        
+
         // set modified date on re-publish
         Element element = (Element) XPathAPI.selectSingleNode(parent,
-            "/*[local-name() = 'entry']/*[local-name() = 'modified']");
+                "/*[local-name() = 'entry']/*[local-name() = 'modified']");
         DocumentHelper.setSimpleElementText(element, datestr);
-        
-        // set issued date on first time publish        
-        Workflowable dw = 
-            (Workflowable)new DocumentWorkflowable(this.manager, this.getSession(), doc, this.getLogger());
+
+        // set issued date on first time publish
+        Workflowable dw = WorkflowUtil.getWorkflowable(this.manager,
+                this.getSession(),
+                this.getLogger(),
+                doc);
         Version versions[] = dw.getVersions();
         boolean wasLive = false;
-        for (int i=0; i<versions.length; i++) {
+        for (int i = 0; i < versions.length; i++) {
             if (versions[i].getValue("is_live")) {
                 wasLive = true;
                 break;
@@ -196,13 +199,13 @@
         }
         if (!wasLive) {
             element = (Element) XPathAPI.selectSingleNode(parent,
-                "/*[local-name() = 'entry']/*[local-name() = 'issued']");
-            DocumentHelper.setSimpleElementText(element, datestr);            
+                    "/*[local-name() = 'entry']/*[local-name() = 'issued']");
+            DocumentHelper.setSimpleElementText(element, datestr);
         }
 
         DocumentHelper.writeDocument(dom, doc.getFile());
     }
-    
+
     /**
      * @return The event to invoke.
      */



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