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/04/08 22:21:41 UTC

svn commit: r160599 - 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/CreateLanguage.java

Author: andreas
Date: Fri Apr  8 13:21:39 2005
New Revision: 160599

URL: http://svn.apache.org/viewcvs?view=rev&rev=160599
Log:
added locking to create uscases

Modified:
    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/CreateLanguage.java

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=160598&r2=160599
==============================================================================
--- 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 Fri Apr  8 13:21:39 2005
@@ -36,7 +36,9 @@
 import org.apache.lenya.cms.publication.PublicationFactory;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.site.SiteManager;
+import org.apache.lenya.cms.site.SiteStructure;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
+import org.apache.lenya.cms.usecase.UsecaseException;
 
 /**
  * Abstract superclass for usecases to create a resource.
@@ -64,6 +66,33 @@
 
         if (!getArea().equals(Publication.AUTHORING_AREA)) {
             addErrorMessage("This usecase can only be invoked in the authoring area!");
+        }
+    }
+
+    /**
+     * @see org.apache.lenya.cms.usecase.Usecase#lockInvolvedObjects()
+     */
+    public void lockInvolvedObjects() throws UsecaseException {
+        super.lockInvolvedObjects();
+
+        SiteManager siteManager = null;
+        ServiceSelector selector = null;
+        try {
+            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
+            siteManager = (SiteManager) selector.select(getSourceDocument().getPublication()
+                    .getSiteManagerHint());
+            SiteStructure structure = siteManager.getSiteStructure(getSourceDocument().getIdentityMap(), getSourceDocument()
+                    .getPublication(), getSourceDocument().getArea());
+            structure.lock();
+        } catch (Exception e) {
+            throw new UsecaseException(e);
+        } finally {
+            if (selector != null) {
+                if (siteManager != null) {
+                    selector.release(siteManager);
+                }
+                this.manager.release(selector);
+            }
         }
     }
 

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=160598&r2=160599
==============================================================================
--- 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 Fri Apr  8 13:21:39 2005
@@ -105,6 +105,7 @@
                 area,
                 documentId,
                 language);
+        document.lock();
 
         DocumentType documentType = DocumentTypeBuilder.buildDocumentType(documentTypeName,
                 publication);

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateLanguage.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateLanguage.java?view=diff&r1=160598&r2=160599
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateLanguage.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateLanguage.java Fri Apr  8 13:21:39 2005
@@ -132,6 +132,7 @@
         DocumentIdentityMap map = source.getIdentityMap();
         String area = source.getArea();
         Document document = map.get(publication, area, source.getId(), language);
+        document.lock();
 
         DocumentType documentType = DocumentTypeBuilder.buildDocumentType(documentTypeName,
                 publication);



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