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/05/25 15:15:29 UTC

svn commit: r178435 - in /lenya/trunk/src/java/org/apache/lenya/cms: cocoon/components/modules/input/PageEnvelopeModule.java workflow/WorkflowResolverImpl.java

Author: andreas
Date: Wed May 25 06:15:28 2005
New Revision: 178435

URL: http://svn.apache.org/viewcvs?rev=178435&view=rev
Log:
replace DocumentTypeResolver by document.getResourceType()

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
    lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowResolverImpl.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java?rev=178435&r1=178434&r2=178435&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java Wed May 25 06:15:28 2005
@@ -27,12 +27,10 @@
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceException;
 import org.apache.commons.lang.StringUtils;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DocumentType;
-import org.apache.lenya.cms.publication.DocumentTypeResolver;
 import org.apache.lenya.cms.publication.PageEnvelope;
 
 /**
@@ -109,15 +107,18 @@
                     Date date = document.getLastModified();
                     value = new SimpleDateFormat(DATE_FORMAT).format(date);
                 } else if (name.equals(PageEnvelope.DOCUMENT_TYPE)) {
-                    value = getDocumentType(envelope);
+                    DocumentType resourceType = document.getResourceType();
+                    if (resourceType == null) {
+                        value = null;
+                    }
+                    else {
+                        value = resourceType.getName();
+                    }
                 }
             }
         } catch (final DocumentException e) {
             throw new ConfigurationException("Getting attribute for name [" + name + "] failed: ",
                     e);
-        } catch (final ServiceException e) {
-            throw new ConfigurationException("Getting attribute for name [" + name + "] failed: ",
-                    e);
         }
 
         if (getLogger().isDebugEnabled()) {
@@ -131,27 +132,6 @@
      * <code>DATE_FORMAT</code> The date format
      */
     public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
-
-    /**
-     * Returns the document type.
-     * @param envelope The page envelope.
-     * @return A string.
-     * @throws ServiceException when something went wrong.
-     */
-    protected String getDocumentType(PageEnvelope envelope) throws ServiceException {
-        String documentType;
-        DocumentTypeResolver resolver = null;
-        try {
-            resolver = (DocumentTypeResolver) this.manager.lookup(DocumentTypeResolver.ROLE);
-            DocumentType type = resolver.resolve(envelope.getDocument());
-            documentType = type.getName();
-        } finally {
-            if (resolver != null) {
-                this.manager.release(resolver);
-            }
-        }
-        return documentType;
-    }
 
     /**
      * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeNames(org.apache.avalon.framework.configuration.Configuration,

Modified: lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowResolverImpl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowResolverImpl.java?rev=178435&r1=178434&r2=178435&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowResolverImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/workflow/WorkflowResolverImpl.java Wed May 25 06:15:28 2005
@@ -30,18 +30,14 @@
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.Session;
-import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.Identity;
 import org.apache.lenya.ac.Machine;
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.ac.impl.PolicyAuthorizer;
-import org.apache.lenya.cms.publication.DefaultDocument;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentType;
-import org.apache.lenya.cms.publication.DocumentTypeResolver;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.workflow.Situation;
 import org.apache.lenya.workflow.Workflow;
@@ -61,16 +57,12 @@
      * @see org.apache.lenya.cms.workflow.WorkflowResolver#getWorkflowSchema(org.apache.lenya.cms.publication.Document)
      */
     public Workflow getWorkflowSchema(Document document) throws WorkflowException {
-        DocumentTypeResolver doctypeResolver = null;
         WorkflowImpl workflow = null;
 
         try {
-            doctypeResolver = (DocumentTypeResolver) this.manager.lookup(DocumentTypeResolver.ROLE);
-            DocumentType doctype = doctypeResolver.resolve(document);
-
+            DocumentType doctype = document.getResourceType();
             if (doctype.hasWorkflow()) {
                 String workflowFileName = doctype.getWorkflowFileName();
-
                 Publication publication = document.getPublication();
 
                 File workflowDirectory = new File(publication.getDirectory(), WORKFLOW_DIRECTORY);
@@ -79,11 +71,7 @@
                 workflow = builder.buildWorkflow(workflowFileName, workflowFile);
             }
         } catch (final Exception e) {
-            throw new RuntimeException(e);
-        } finally {
-            if (doctypeResolver != null) {
-                this.manager.release(doctypeResolver);
-            }
+            throw new WorkflowException(e);
         }
 
         return workflow;
@@ -124,8 +112,7 @@
             }
 
             situation = new CMSSituation(roleIds, userId, machineIp);
-        }
-        else {
+        } else {
             situation = new CMSSituation(new String[0], null, null);
         }
         return situation;
@@ -144,33 +131,15 @@
      * @see org.apache.lenya.cms.workflow.WorkflowResolver#hasWorkflow(org.apache.lenya.cms.publication.Document)
      */
     public boolean hasWorkflow(Document document) {
-        SourceResolver resolver = null;
-        DocumentTypeResolver doctypeResolver = null;
-        Source source = null;
+
         boolean hasWorkflow = false;
         try {
-            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-            String uri = ((DefaultDocument) document).getHistory().getSourceURI();
-            source = resolver.resolveURI(uri);
-            if (source.exists()) {
-                hasWorkflow = true;
-            } else {
-                doctypeResolver = (DocumentTypeResolver) this.manager.lookup(DocumentTypeResolver.ROLE);
-                DocumentType doctype = doctypeResolver.resolve(document);
+            if (document.exists()) {
+                DocumentType doctype = document.getResourceType();
                 hasWorkflow = doctype.hasWorkflow();
             }
         } catch (final Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (resolver != null) {
-                if (source != null) {
-                    resolver.release(source);
-                }
-                this.manager.release(resolver);
-            }
-            if (doctypeResolver != null) {
-                this.manager.release(doctypeResolver);
-            }
         }
         return hasWorkflow;
     }



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