svn commit: r742731 - in /lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms: cocoon/transformation/ usecase/ usecase/gui/impl/ usecase/impl/

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Mon Feb  9 21:04:26 2009
New Revision: 742731

URL: http://svn.apache.org/viewvc?rev=742731&view=rev
Log:
Simplify API, replace repository classes with publication classes for better SoC.

Modified:
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java?rev=742731&r1=742730&r2=742731&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java Mon Feb  9 21:04:26 2009
@@ -38,13 +38,9 @@
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.cms.ac.PolicyUtil;
 import org.apache.lenya.cms.ac.usecase.UsecaseAuthorizer;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.URLInformation;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.usecase.Usecase;
 import org.apache.lenya.cms.usecase.UsecaseMessage;
 import org.apache.lenya.cms.usecase.UsecaseResolver;
@@ -242,7 +238,7 @@
     private Publication publication;
     private AccessControllerResolver acResolver;
     private String sourceUrl;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver,
@@ -260,10 +256,8 @@
         try {
             this.roles = PolicyUtil.getRoles(this.request);
             String webappUrl = ServletHelper.getWebappURI(this.request);
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), this.request);
-            DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
-            final String id = new URLInformation(webappUrl).getPublicationId();
-            this.publication = factory.getPublication(id);
+            Session session = this.repository.getSession(this.request);
+            this.publication = session.getUriHandler().getPublication(webappUrl);
 
             this.serviceSelector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
                     + "Selector");
@@ -309,12 +303,8 @@
         this.sourceUrl = null;
     }
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
 }

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java?rev=742731&r1=742730&r2=742731&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java Mon Feb  9 21:04:26 2009
@@ -78,7 +78,6 @@
 
     protected static final String PARAMETER_STATE_MACHINE = "private.stateMachine";
     protected static final String PARAMETER_SESSION = "private.session";
-    protected static final String PARAMETER_FACTORY = "private.factory";
     protected static final String PARAMETER_CHECKOUT_RESTRICTED_TO_SESSION = "checkoutRestrictedToSession";
 
     protected static final String PARAMETERS_INITIALIZED = "private.parametersInitialized";
@@ -546,16 +545,6 @@
         return (Part) getParameter(name);
     }
 
-    protected DocumentFactory getDocumentFactory() {
-        DocumentFactory factory = (DocumentFactory) getParameter(PARAMETER_FACTORY);
-        Session session = getSession();
-        if (factory == null || factory != session.getDocumentFactory()) {
-            factory = session.getDocumentFactory();
-            setParameter(PARAMETER_FACTORY, factory);
-        }
-        return factory;
-    }
-
     /**
      * TODO: Add init-method to bean.
      */
@@ -736,9 +725,7 @@
                 if (!objects[i].isLocked()) {
                     objects[i].lock();
                 }
-                if (!isOptimistic()
-                        && !objects[i].isCheckedOutBySession(getSession().getDocumentFactory()
-                                .getSession())) {
+                if (!isOptimistic() && !objects[i].isCheckedOutBySession(getRepositorySession())) {
                     objects[i].checkout(checkoutRestrictedToSession());
                 }
             }
@@ -752,8 +739,7 @@
 
         for (int i = 0; i < objects.length; i++) {
             if (objects[i].isCheckedOut()
-                    && !objects[i].isCheckedOutBySession(getSession().getDocumentFactory()
-                            .getSession())) {
+                    && !objects[i].isCheckedOutBySession(getRepositorySession())) {
                 if (getLogger().isDebugEnabled()) {
                     getLogger().debug(
                             "AbstractUsecase::lockInvolvedObjects() can not execute, object ["
@@ -765,6 +751,10 @@
         return canExecute;
     }
 
+    private org.apache.lenya.cms.repository.Session getRepositorySession() {
+        return (org.apache.lenya.cms.repository.Session) getSession();
+    }
+
     /**
      * @see org.apache.lenya.cms.usecase.Usecase#cancel()
      */
@@ -879,11 +869,7 @@
     protected Publication getPublication() {
         if (this.pub == null) {
             String pubId = new URLInformation(getSourceURL()).getPublicationId();
-            try {
-                this.pub = getDocumentFactory().getPublication(pubId);
-            } catch (PublicationException e) {
-                throw new RuntimeException(e);
-            }
+            this.pub = getSession().getPublication(pubId);
         }
         return this.pub;
     }

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/DocumentUsecase.java?rev=742731&r1=742730&r2=742731&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/DocumentUsecase.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/DocumentUsecase.java Mon Feb  9 21:04:26 2009
@@ -19,8 +19,7 @@
 package org.apache.lenya.cms.usecase;
 
 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.Session;
 
 /**
  * <p>
@@ -56,30 +55,16 @@
     }
 
     /*
-    public void setParameter(String name, Object value) {
-        if (name.equals(SOURCE_URL)) {
-            setSourceURL((String) value);
-        }
-        else {
-            super.setParameter(name, value);
-        }
-    }
-    */
+     * public void setParameter(String name, Object value) { if (name.equals(SOURCE_URL)) {
+     * setSourceURL((String) value); } else { super.setParameter(name, value); } }
+     */
 
     /**
-     * @see org.apache.lenya.cms.usecase.Usecase#setSourceURL(java.lang.String)
-    public void setSourceURL(String url) {
-        try {
-            DocumentFactory factory = getDocumentFactory();
-            if (factory.isDocument(url)) {
-                Document document = factory.getFromURL(url);
-                setParameter(DOCUMENT, document);
-            }
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-        super.setParameter(SOURCE_URL, url);
-    }
+     * @see org.apache.lenya.cms.usecase.Usecase#setSourceURL(java.lang.String) public void
+     *      setSourceURL(String url) { try { DocumentFactory factory = getDocumentFactory(); if
+     *      (factory.isDocument(url)) { Document document = factory.getFromURL(url);
+     *      setParameter(DOCUMENT, document); } } catch (Exception e) { throw new
+     *      RuntimeException(e); } super.setParameter(SOURCE_URL, url); }
      */
 
     /**
@@ -88,24 +73,20 @@
      */
     protected Document getSourceDocument() {
         Document doc = (Document) getParameter(DOCUMENT);
-        if (doc == null || doc.getFactory().getSession() != getSession()) {
-            try {
-                DocumentFactory factory = getDocumentFactory();
-                String sourceUrl = getParameterAsString(SOURCE_URL);
-                if (factory.isDocument(sourceUrl)) {
-                    doc = factory.getFromURL(sourceUrl);
-                    setParameter(DOCUMENT, doc);
-                }
-            } catch (DocumentBuildException e) {
-                throw new RuntimeException(e);
+        Session session = getSession();
+        if (doc == null || doc.getSession() != session) {
+            String sourceUrl = getParameterAsString(SOURCE_URL);
+            if (session.getUriHandler().isDocument(sourceUrl)) {
+                doc = session.getUriHandler().getDocument(sourceUrl);
+                setParameter(DOCUMENT, doc);
             }
         }
         return doc;
     }
 
     /**
-     * Sets the target document for the case that the usecase execution
-     * succeeded (see {@link #getTargetDocument(boolean)}).
+     * Sets the target document for the case that the usecase execution succeeded (see
+     * {@link #getTargetDocument(boolean)}).
      * @param document A document.
      */
     protected void setTargetDocument(Document document) {
@@ -113,9 +94,9 @@
     }
 
     /**
-     * Returns the document to be redirected to after the usecase has been
-     * completed. If the parameter <code>success</code> is false, the source
-     * document is returned (override this method to change this behaviour).
+     * Returns the document to be redirected to after the usecase has been completed. If the
+     * parameter <code>success</code> is false, the source document is returned (override this
+     * method to change this behaviour).
      * @param success If the usecase was successfully completed.
      * @return A document.
      */
@@ -128,8 +109,8 @@
     }
 
     /**
-     * If {@link #setTargetDocument(Document)}was not called, the URL of the
-     * source document ( {@link #getSourceDocument()}) is returned.
+     * If {@link #setTargetDocument(Document)}was not called, the URL of the source document (
+     * {@link #getSourceDocument()}) is returned.
      * @see org.apache.lenya.cms.usecase.Usecase#getTargetURL(boolean)
      */
     public String getTargetURL(boolean success) {
@@ -155,20 +136,14 @@
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#setDefaultTargetURL(java.lang.String)
      */
     protected void setDefaultTargetURL(String url) {
-        try {
-            Document target = getDocumentFactory().getFromURL(url);
-            setParameter(TARGET_DOCUMENT, target);
-        } catch (DocumentBuildException e) {
-            throw new RuntimeException(e);
-        }
+        Document target = getSession().getUriHandler().getDocument(url);
+        setParameter(TARGET_DOCUMENT, target);
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
-    protected void initParameters() {
-        super.initParameters();
-
-        setParameter(DOCUMENT, getSourceDocument());
-    }
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters() protected void
+     *      initParameters() { super.initParameters();
+     * 
+     *      setParameter(DOCUMENT, getSourceDocument()); }
      */
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java?rev=742731&r1=742730&r2=742731&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java Mon Feb  9 21:04:26 2009
@@ -36,13 +36,10 @@
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.cms.ac.PolicyUtil;
 import org.apache.lenya.cms.ac.usecase.UsecaseAuthorizer;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.cms.usecase.Usecase;
 import org.apache.lenya.cms.usecase.UsecaseMessage;
 import org.apache.lenya.cms.usecase.UsecaseResolver;
@@ -66,14 +63,10 @@
     private Map name2group = new HashMap();
 
     private UsecaseResolver usecaseResolver;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
     /**
@@ -173,10 +166,9 @@
                 }
 
                 HttpServletRequest request = getRequest();
-                Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-                DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
+                Session session = this.repository.getSession(request);
                 String pubId = new URLInformation(this.webappUrl).getPublicationId();
-                Publication pub = factory.getPublication(pubId);
+                Publication pub = session.getPublication(pubId);
                 if (!authorizer.authorizeUsecase(usecaseName, getRoles(), pub)) {
                     if (getLogger().isDebugEnabled()) {
                         getLogger().debug("Usecase not authorized");

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java?rev=742731&r1=742730&r2=742731&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java Mon Feb  9 21:04:26 2009
@@ -34,8 +34,6 @@
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.cms.ac.PolicyUtil;
 import org.apache.lenya.cms.ac.usecase.UsecaseAuthorizer;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.Repository;
 import org.apache.lenya.cms.publication.Session;

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java?rev=742731&r1=742730&r2=742731&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java Mon Feb  9 21:04:26 2009
@@ -26,16 +26,13 @@
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.util.AbstractLogEnabled;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.URLInformation;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.templating.PublicationTemplateManager;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.cms.usecase.Usecase;
 import org.apache.lenya.cms.usecase.UsecaseResolver;
+import org.apache.lenya.util.ServletHelper;
 
 /**
  * Usecase resolver implementation.
@@ -45,7 +42,7 @@
 public class UsecaseResolverImpl extends AbstractLogEnabled implements UsecaseResolver {
 
     private PublicationTemplateManager templateManager;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * @see org.apache.lenya.cms.usecase.UsecaseResolver#release(org.apache.lenya.cms.usecase.Usecase)
@@ -85,13 +82,11 @@
         Publication publication = null;
         try {
 
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-            DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
-            URLInformation info = new URLInformation(webappUrl);
-            String pubId = info.getPublicationId();
+            Session session = this.repository.getSession(request);
 
-            if (pubId != null && factory.existsPublication(pubId)) {
-                publication = factory.getPublication(pubId);
+            String uri = ServletHelper.getWebappURI(request);
+            if (session.getUriHandler().isPublication(uri)) {
+                publication = session.getUriHandler().getPublication(uri);
             }
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -148,12 +143,8 @@
         return templateManager;
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
-    }
-
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
 }
\ No newline at end of file
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.