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