You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by ch...@apache.org on 2006/01/09 19:12:32 UTC
svn commit: r367350 -
/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java
Author: chestnut
Date: Mon Jan 9 10:12:29 2006
New Revision: 367350
URL: http://svn.apache.org/viewcvs?rev=367350&view=rev
Log:
fixes ability to delete trash, was getting an error that the sitetree wasn't locked
Modified:
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java
Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java?rev=367350&r1=367349&r2=367350&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java Mon Jan 9 10:12:29 2006
@@ -16,7 +16,9 @@
*/
package org.apache.lenya.cms.site.usecases;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceSelector;
@@ -29,7 +31,9 @@
import org.apache.lenya.cms.publication.util.DocumentSet;
import org.apache.lenya.cms.site.SiteException;
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;
/**
* Empty the trash.
@@ -54,6 +58,47 @@
throw new RuntimeException(e);
}
}
+
+ /**
+ * Lock the following objects:
+ * <ul>
+ * <li>all involved documents in the trash area</li>
+ * <li>the document trash site structure</li>
+ * </ul>
+ * @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
+ */
+ protected org.apache.lenya.cms.repository.Node[] getNodesToLock() throws UsecaseException {
+ List nodes = new ArrayList();
+ ServiceSelector selector = null;
+ SiteManager siteManager = null;
+
+ try {
+ Publication publication = PublicationUtil.getPublicationFromUrl(this.manager, getSourceURL());
+ DocumentIdentityMap identityMap = getDocumentIdentityMap();
+ Document[] docs = getTrashDocuments();
+ for (int i = 0; i < docs.length; i++) {
+ nodes.add(docs[i].getRepositoryNode());
+ nodes.addAll(AssetUtil.getAssetNodes(docs[i], this.manager, getLogger()));
+ }
+
+ selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
+ siteManager = (SiteManager) selector.select(publication
+ .getSiteManagerHint());
+ SiteStructure structure = siteManager.getSiteStructure(identityMap, publication, Publication.TRASH_AREA);
+ nodes.add(structure.getRepositoryNode());
+ } catch (Exception e) {
+ throw new UsecaseException(e);
+ } finally {
+ if (selector != null) {
+ if (siteManager != null) {
+ selector.release(siteManager);
+ }
+ this.manager.release(selector);
+ }
+ }
+ return (org.apache.lenya.cms.repository.Node[]) nodes.toArray(new org.apache.lenya.cms.repository.Node[nodes.size()]);
+ }
+
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org