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/13 00:41:30 UTC

svn commit: r157298 - in lenya/trunk/src/java/org/apache/lenya/cms: ac/usecases/ cocoon/transformation/ metadata/usecases/ search/usecases/ site/usecases/ usecase/

Author: andreas
Date: Sat Mar 12 15:41:26 2005
New Revision: 157298

URL: http://svn.apache.org/viewcvs?view=rev&rev=157298
Log:
refactored usecase initialization (source URL is passed and not resolved via context)

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControl.java
    lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControlUsecase.java
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
    lenya/trunk/src/java/org/apache/lenya/cms/metadata/usecases/Metadata.java
    lenya/trunk/src/java/org/apache/lenya/cms/search/usecases/Search.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Move.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Overview.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Revisions.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Scheduler.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/SiteUsecase.java
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseCronJob.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControl.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControl.java Sat Mar 12 15:41:26 2005
@@ -48,10 +48,10 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    protected void initParameters() {
+        super.initParameters();
 
         try {
             Role[] roles = getRoleManager().getRoles();

Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControlUsecase.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControlUsecase.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControlUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AccessControlUsecase.java Sat Mar 12 15:41:26 2005
@@ -48,10 +48,10 @@
     private AccessController accessController;
 
     /**
+     * Initializes the accreditable managers.
      * FIXME: This method resolves the AccessController, it has to be released after it is used!
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
      */
-    protected void doInitialize() {
+    protected void initializeAccessController() {
         super.doInitialize();
         
         this.accessController = null;
@@ -92,30 +92,49 @@
      * @return Returns the groupManager.
      */
     protected GroupManager getGroupManager() {
+        if (this.groupManager == null) {
+            initializeAccessController();
+        }
         return this.groupManager;
     }
+    
     /**
      * @return Returns the ipRangeManager.
      */
     protected IPRangeManager getIpRangeManager() {
+        if (this.ipRangeManager == null) {
+            initializeAccessController();
+        }
         return this.ipRangeManager;
     }
+    
     /**
      * @return Returns the roleManager.
      */
     protected RoleManager getRoleManager() {
+        if (this.roleManager == null) {
+            initializeAccessController();
+        }
         return this.roleManager;
     }
+    
     /**
      * @return Returns the userManager.
      */
     protected UserManager getUserManager() {
+        if (this.userManager == null) {
+            initializeAccessController();
+        }
         return this.userManager;
     }
+    
     /**
      * @return Returns the accessController.
      */
     protected AccessController getAccessController() {
+        if (this.accessController == null) {
+            initializeAccessController();
+        }
         return this.accessController;
     }
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java Sat Mar 12 15:41:26 2005
@@ -113,6 +113,8 @@
                     Usecase usecase = null;
                     try {
                         usecase = usecaseResolver.resolve(usecaseName);
+                        usecase.setSourceURL(this.sourceUrl);
+                        usecase.setName(usecaseName);
                         if (attr.getValue(HREF_ATTRIBUTE) != null) {
                             passRequestParameters(usecase, attr.getValue(HREF_ATTRIBUTE));
                         }
@@ -184,6 +186,7 @@
     private Role[] roles;
     private Publication publication;
     private AccessControllerResolver acResolver;
+    private String sourceUrl;
 
     /**
      * @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver,
@@ -202,6 +205,7 @@
         this.authorizer = null;
 
         Request _request = ObjectModelHelper.getRequest(_objectModel);
+        this.sourceUrl = ServletHelper.getWebappURI(request);
 
         try {
             this.roles = PolicyAuthorizer.getRoles(_request);

Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/usecases/Metadata.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/metadata/usecases/Metadata.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/usecases/Metadata.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/usecases/Metadata.java Sat Mar 12 15:41:26 2005
@@ -36,10 +36,10 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    protected void initParameters() {
+        super.initParameters();
 
         try {
         	this.dc = getSourceDocument().getDublinCore();

Modified: lenya/trunk/src/java/org/apache/lenya/cms/search/usecases/Search.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/search/usecases/Search.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/search/usecases/Search.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/search/usecases/Search.java Sat Mar 12 15:41:26 2005
@@ -89,13 +89,6 @@
     }
     
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
-     */
-    protected void doInitialize() {
-        super.doInitialize();
-    }
-    
-    /**
      * Validates the request parameters.
      * @throws UsecaseException if an error occurs.
      */

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java Sat Mar 12 15:41:26 2005
@@ -35,16 +35,6 @@
  */
 public class Assets extends SiteUsecase {
 
-    private ResourcesManager resourcesManager = null;
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
-     */
-    protected void doInitialize() {
-        super.doInitialize();
-        this.resourcesManager = getSourceDocument().getResourcesManager();
-    }
-
     /**
      * Validates the request parameters.
      * @throws UsecaseException if an error occurs.
@@ -72,7 +62,8 @@
      */
     protected void initParameters() {
         super.initParameters();
-        File[] resources = this.resourcesManager.getResources();
+        ResourcesManager resourcesManager = getSourceDocument().getResourcesManager();
+        File[] resources = resourcesManager.getResources();
 
         if (resources != null) {
             Map[] assets = new Map[resources.length];
@@ -83,7 +74,7 @@
                 String format = "";
                 org.w3c.dom.Document metaDoc;
                 try {
-                    metaDoc = DocumentHelper.readDocument(this.resourcesManager
+                    metaDoc = DocumentHelper.readDocument(resourcesManager
                             .getMetaFile(resources[i]));
                     title = metaDoc.getElementsByTagNameNS("http://purl.org/dc/elements/1.1/",
                             "title").item(0).getChildNodes().item(0).getNodeValue();
@@ -123,7 +114,7 @@
      */
     protected void deleteAsset() throws Exception {
         String assetName = getParameterAsString("delete");
-        this.resourcesManager.deleteResource(assetName);
+        getSourceDocument().getResourcesManager().deleteResource(assetName);
     }
 
     /**
@@ -140,7 +131,7 @@
         metadata.put("creator", creator);
         metadata.put("rights", rights);
         try {
-            this.resourcesManager.addResource(file, metadata);
+            getSourceDocument().getResourcesManager().addResource(file, metadata);
         } catch (final Exception e) {
             getLogger().error("The resource could not be added: ", e);
             addErrorMessage("The resource could not be added (see log files for details).");

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Move.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Move.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Move.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Move.java Sat Mar 12 15:41:26 2005
@@ -26,7 +26,7 @@
  */
 public class Move extends SiteUsecase {
 
-	/**
+    /**
      * Ctor.
      */
     public Move() {
@@ -34,18 +34,11 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
-     */
-    protected void doInitialize() {
-        super.doInitialize();
-    }
-            
-     /**
      * Validates the request parameters.
      * @throws UsecaseException if an error occurs.
      */
     void validate() throws UsecaseException {
-	    // do nothing
+        // do nothing
     }
 
     /**
@@ -63,7 +56,8 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.Usecase#setParameter(java.lang.String, java.lang.Object)
+     * @see org.apache.lenya.cms.usecase.Usecase#setParameter(java.lang.String,
+     *      java.lang.Object)
      */
     public void setParameter(String name, Object value) {
         super.setParameter(name, value);

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Overview.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Overview.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Overview.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Overview.java Sat Mar 12 15:41:26 2005
@@ -36,10 +36,10 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    protected void initParameters() {
+        super.initParameters();
         this.dc = getSourceDocument().getDublinCore();
         try {
 	        setParameter("languages", getSourceDocument().getLanguages());

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Revisions.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Revisions.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Revisions.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Revisions.java Sat Mar 12 15:41:26 2005
@@ -37,10 +37,12 @@
     private RCML rcml = null;
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters() TODO
+     *      filter out checkin entries
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    protected void initParameters() {
+        super.initParameters();
+
         try {
             final Publication publication = getSourceDocument().getPublication();
             final String publicationPath = publication.getDirectory().getCanonicalPath();
@@ -58,15 +60,7 @@
         } catch (final Exception e) {
             throw new RuntimeException(e);
         }
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters() TODO
-     *      filter out checkin entries
-     */
-    protected void initParameters() {
-        super.initParameters();
-
+        
         Vector entries;
         try {
             entries = this.rcml.getEntries();

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Scheduler.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Scheduler.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Scheduler.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Scheduler.java Sat Mar 12 15:41:26 2005
@@ -34,10 +34,10 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    protected void initParameters() {
+        super.initParameters();
         try {
 	        setParameter("live", "");
         } catch (Exception e) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/SiteUsecase.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/SiteUsecase.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/SiteUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/SiteUsecase.java Sat Mar 12 15:41:26 2005
@@ -34,10 +34,10 @@
     protected static final String ISLIVE = "is_live";
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    protected void initParameters() {
+        super.initParameters();
         WorkflowResolver resolver = null;
         try {
             resolver = (WorkflowResolver) this.manager.lookup(WorkflowResolver.ROLE);

Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java Sat Mar 12 15:41:26 2005
@@ -365,8 +365,6 @@
     public final void initialize() throws Exception {
         super.initialize();
         this.documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-        doInitialize();
-        initParameters();
     }
 
     /**
@@ -383,7 +381,7 @@
     /**
      * Does the actual initialization. Template method.
      */
-    protected void doInitialize() {
+    protected final void doInitialize() {
     }
 
     /**
@@ -467,6 +465,7 @@
      */
     public void setSourceURL(String url) {
         this.sourceUrl = url;
+        initParameters();
     }
 
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java Sat Mar 12 15:41:26 2005
@@ -17,18 +17,12 @@
 
 package org.apache.lenya.cms.usecase;
 
-import java.util.Map;
-
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.ObjectModelHelper;
-import org.apache.cocoon.environment.Request;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuildException;
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationFactory;
 import org.apache.lenya.cms.publication.URLInformation;
-import org.apache.lenya.util.ServletHelper;
 
 /**
  * <p>
@@ -64,30 +58,26 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doInitialize()
+     * @see org.apache.lenya.cms.usecase.Usecase#setSourceURL(java.lang.String)
      */
-    protected void doInitialize() {
-        super.doInitialize();
+    public void setSourceURL(String url) {
         try {
-            Map objectModel = ContextHelper.getObjectModel(getContext());
-            Request request = ObjectModelHelper.getRequest(objectModel);
-            String webappUri = ServletHelper.getWebappURI(request);
-
             DocumentFactory factory = getUnitOfWork().getIdentityMap().getFactory();
             PublicationFactory pubFactory = PublicationFactory.getInstance(getLogger());
-            Publication publication = pubFactory.getPublication(this.manager, webappUri);
+            Publication publication = pubFactory.getPublication(this.manager, url);
 
-            if (factory.isDocument(publication, getSourceURL())) {
-                this.sourceDocument = factory.getFromURL(publication, getSourceURL());
+            if (factory.isDocument(publication, url)) {
+                this.sourceDocument = factory.getFromURL(publication, url);
             }
 
-            URLInformation info = new URLInformation(webappUri);
+            URLInformation info = new URLInformation(url);
             this.completeArea = info.getCompleteArea();
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
+        super.setSourceURL(url);
     }
-
+    
     private Document sourceDocument = null;
 
     /**

Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseCronJob.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseCronJob.java?view=diff&r1=157297&r2=157298
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseCronJob.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseCronJob.java Sat Mar 12 15:41:26 2005
@@ -76,6 +76,8 @@
         try {
             resolver = (UsecaseResolver) this.manager.lookup(UsecaseResolver.ROLE);
             usecase = resolver.resolve(getSourceURL(), getUsecaseName());
+            
+            usecase.setSourceURL(getSourceURL());
             usecase.setName(getUsecaseName());
 
             passParameters(usecase);



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