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/21 10:57:54 UTC

svn commit: r158433 - in lenya/trunk/src: java/org/apache/lenya/cms/site/usecases/ java/org/apache/lenya/cms/usecase/ webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/

Author: andreas
Date: Mon Mar 21 01:57:52 2005
New Revision: 158433

URL: http://svn.apache.org/viewcvs?view=rev&rev=158433
Log:
Removed AbstractUsecase.getDocumentManager(). Use try { lookup } finally { release } instead.

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateDocument.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Paste.java
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java Mon Mar 21 01:57:52 2005
@@ -22,6 +22,7 @@
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
@@ -77,13 +78,17 @@
 
         String nodeId = getParameterAsString(NODE_ID);
         Document parent = identityMap.getFactory().getParent(getSourceDocument());
-        String[] messages = getDocumentManager().canCreate(identityMap,
-                getSourceDocument().getArea(),
-                parent,
-                nodeId,
-                getSourceDocument().getLanguage());
-
-        addErrorMessages(messages);
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            String[] messages = documentManager.canCreate(identityMap, getSourceDocument()
+                    .getArea(), parent, nodeId, getSourceDocument().getLanguage());
+            addErrorMessages(messages);
+        } finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
+            }
+        }
     }
 
     /**
@@ -126,23 +131,32 @@
 
         String[] availableLanguages = document.getLanguages();
 
-        for (int i = 0; i < availableLanguages.length; i++) {
-            Document languageVersion = identityMap.getFactory().get(document.getPublication(),
-                    document.getArea(),
-                    document.getId(),
-                    availableLanguages[i]);
-
-            Document newLanguageVersion = identityMap.getFactory().get(document.getPublication(),
-                    document.getArea(),
-                    newDocumentId,
-                    availableLanguages[i]);
-
-            getDocumentManager().moveDocument(languageVersion, newLanguageVersion);
-
-            if (availableLanguages[i].equals(document.getLanguage())) {
-                newDocument = newLanguageVersion;
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            for (int i = 0; i < availableLanguages.length; i++) {
+                Document languageVersion = identityMap.getFactory().get(document.getPublication(),
+                        document.getArea(),
+                        document.getId(),
+                        availableLanguages[i]);
+
+                Document newLanguageVersion = identityMap.getFactory().get(document.getPublication(),
+                        document.getArea(),
+                        newDocumentId,
+                        availableLanguages[i]);
+
+                documentManager.moveDocument(languageVersion, newLanguageVersion);
+
+                if (availableLanguages[i].equals(document.getLanguage())) {
+                    newDocument = newLanguageVersion;
+                }
+            }
+        } finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
             }
         }
+        
         return newDocument;
     }
 
@@ -162,4 +176,4 @@
 
         return newDocumentId;
     }
-}
+}
\ No newline at end of file

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java Mon Mar 21 01:57:52 2005
@@ -30,6 +30,7 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DocumentFactory;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.publication.PublicationFactory;
@@ -85,7 +86,16 @@
 
         Document document = createDocument();
         Publication publication = document.getPublication();
-        getDocumentManager().addDocument(document);
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            documentManager.addDocument(document);
+        }
+        finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
+            }
+        }
 
         SiteManager _manager = publication.getSiteManager();
         _manager.setLabel(document, getParameterAsString(DublinCore.ELEMENT_TITLE));

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateDocument.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateDocument.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateDocument.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateDocument.java Mon Mar 21 01:57:52 2005
@@ -22,6 +22,7 @@
 import org.apache.lenya.cms.authoring.ParentChildCreatorInterface;
 import org.apache.lenya.cms.metadata.dublincore.DublinCore;
 import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.DocumentType;
 import org.apache.lenya.cms.publication.DocumentTypeBuilder;
 import org.apache.lenya.cms.publication.Publication;
@@ -62,12 +63,20 @@
         String nodeId = getParameterAsString(DOCUMENT_ID);
         Document parent = getSourceDocument();
         String language = getParameterAsString(LANGUAGE);
-        String[] messages = getDocumentManager().canCreate(getUnitOfWork().getIdentityMap(),
-                getArea(),
-                parent,
-                nodeId,
-                language);
-        addErrorMessages(messages);
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            String[] messages = documentManager.canCreate(getUnitOfWork().getIdentityMap(),
+                    getArea(),
+                    parent,
+                    nodeId,
+                    language);
+            addErrorMessages(messages);
+        } finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
+            }
+        }
     }
 
     /**

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java Mon Mar 21 01:57:52 2005
@@ -18,6 +18,7 @@
 
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.util.DocumentSet;
 import org.apache.lenya.cms.publication.util.UniqueDocumentId;
@@ -25,8 +26,8 @@
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 
 /**
- * Delete a document and all its descendants, including all language versions.
- * The documents are moved to the trash.
+ * Delete a document and all its descendants, including all language versions. The documents are
+ * moved to the trash.
  * 
  * @version $Id:$
  */
@@ -77,7 +78,15 @@
         Document target = identityMap.getFactory().get(source.getPublication(),
                 Publication.TRASH_AREA,
                 availableId);
-        getDocumentManager().moveAll(source, target);
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            documentManager.moveAll(source, target);
+        } finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
+            }
+        }
 
         setTargetDocument(target);
     }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java Mon Mar 21 01:57:52 2005
@@ -17,6 +17,7 @@
 package org.apache.lenya.cms.site.usecases;
 
 import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.util.DocumentHelper;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
@@ -51,7 +52,15 @@
         super.doExecute();
 
         Document document = getSourceDocument();
-        getDocumentManager().deleteDocument(document);
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            documentManager.deleteDocument(document);
+        } finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
+            }
+        }
 
         setTargetDocument(DocumentHelper.getExistingLanguageVersion(document));
     }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Paste.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Paste.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Paste.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Paste.java Mon Mar 21 01:57:52 2005
@@ -20,6 +20,7 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuildException;
 import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 
 /**
@@ -85,14 +86,22 @@
                 targetArea,
                 potentialDocumentId,
                 language);
-        Document availableDocument = getDocumentManager().getAvailableDocument(potentialDocument);
-
-        if (clipboard.getMethod() == Clipboard.METHOD_COPY) {
-            getDocumentManager().copyAll(clippedDocument, availableDocument);
-        } else if (clipboard.getMethod() == Clipboard.METHOD_CUT) {
-            getDocumentManager().moveAll(clippedDocument, availableDocument);
-        } else {
-            throw new RuntimeException("This clipboard method is not supported!");
+        DocumentManager documentManager = null;
+        try {
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            Document availableDocument = documentManager.getAvailableDocument(potentialDocument);
+
+            if (clipboard.getMethod() == Clipboard.METHOD_COPY) {
+                documentManager.copyAll(clippedDocument, availableDocument);
+            } else if (clipboard.getMethod() == Clipboard.METHOD_CUT) {
+                documentManager.moveAll(clippedDocument, availableDocument);
+            } else {
+                throw new RuntimeException("This clipboard method is not supported!");
+            }
+        } finally {
+            if (documentManager != null) {
+                this.manager.release(documentManager);
+            }
         }
     }
-}
+}
\ No newline at end of file

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=158432&r2=158433
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java Mon Mar 21 01:57:52 2005
@@ -18,7 +18,6 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -27,9 +26,7 @@
 import org.apache.avalon.framework.context.Context;
 import org.apache.avalon.framework.context.ContextException;
 import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.service.ServiceException;
 import org.apache.cocoon.servlet.multipart.Part;
-import org.apache.lenya.cms.publication.DocumentManager;
 
 /**
  * Abstract usecase implementation.
@@ -350,41 +347,11 @@
         this.context = _context;
     }
 
-    private DocumentManager documentManager;
-
-    /**
-     * Retrieves a document manager, which allows the use cases to manipulate documents (move, copy, add documents to publications, ...)
-     *
-     * @return a DocumentManager, which is a service to manipulate documents
-     * @throws ServiceException if the document manager component can not be initialized by the component framework
-     */
-    protected DocumentManager getDocumentManager() throws ServiceException {
-        if (this.documentManager == null) {
-           if (getLogger().isDebugEnabled())
-               getLogger().debug("AbstractUsecase.getDocumentManager() does not yet have instance, looking up role [" + DocumentManager.ROLE + "]");
-
-           this.documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-        }
-
-        return this.documentManager;
-    }
-
     /**
      * @see org.apache.avalon.framework.activity.Initializable#initialize()
      */
     public final void initialize() throws Exception {
         super.initialize();
-    }
-
-    /**
-     * @see org.apache.avalon.framework.activity.Disposable#dispose()
-     */
-    public void dispose() {
-        super.dispose();
-
-        if (this.documentManager != null) {
-            this.manager.release(documentManager);
-        }
     }
 
     /**

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java Mon Mar 21 01:57:52 2005
@@ -19,6 +19,7 @@
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentFactory;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.publication.util.DocumentVisitor;
@@ -92,11 +93,14 @@
         boolean success = false;
 
         WorkflowManager wfManager = null;
+        DocumentManager documentManager = null;
         try {
             wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
             Document liveDocument = publication.getAreaVersion(authoringDocument,
                     Publication.LIVE_AREA);
-            getDocumentManager().deleteDocument(liveDocument);
+            
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            documentManager.deleteDocument(liveDocument);
 
             wfManager.invoke(authoringDocument, getEvent());
             success = true;
@@ -109,6 +113,9 @@
             }
             if (wfManager != null) {
                 this.manager.release(wfManager);
+            }
+            if (documentManager != null) {
+                this.manager.release(documentManager);
             }
         }
 

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java?view=diff&r1=158432&r2=158433
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java Mon Mar 21 01:57:52 2005
@@ -26,6 +26,7 @@
 
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentFactory;
+import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.publication.util.DocumentVisitor;
@@ -160,15 +161,20 @@
     protected void publish(Document authoringDocument) {
 
         WorkflowManager wfManager = null;
+        DocumentManager documentManager = null;
         try {
             wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
-            getDocumentManager().copyDocumentToArea(authoringDocument, Publication.LIVE_AREA);
+            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+            documentManager.copyDocumentToArea(authoringDocument, Publication.LIVE_AREA);
             wfManager.invoke(authoringDocument, getEvent());
         } catch (Exception e) {
             throw new RuntimeException(e);
         } finally {
             if (wfManager != null) {
                 this.manager.release(wfManager);
+            }
+            if (documentManager != null) {
+                this.manager.release(documentManager);
             }
         }
     }



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