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/02/24 04:22:16 UTC

svn commit: r380319 - in /lenya/trunk/src/java/org/apache/lenya/cms: publication/DocumentManager.java publication/DocumentManagerImpl.java site/usecases/MoveSubsite.java

Author: chestnut
Date: Thu Feb 23 19:22:14 2006
New Revision: 380319

URL: http://svn.apache.org/viewcvs?rev=380319&view=rev
Log:
containing documents of moved documents should not have their resources/assets copied as well.  Fixes the bug of 
not being able to delete a document contained by a document that has resources/assets.

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManager.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManager.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManager.java?rev=380319&r1=380318&r2=380319&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManager.java Thu Feb 23 19:22:14 2006
@@ -41,6 +41,16 @@
     void copy(Document sourceDocument, Document destinationDocument) throws PublicationException;
 
     /**
+     * Copies a document from one location to another location.
+     * Does not copy the documents resources
+     * @param sourceDocument The document to copy.
+     * @param destinationDocument The destination document.
+     * @throws PublicationException if a document which destinationDocument depends on does not
+     *             exist.
+     */
+    void copyDocument(Document sourceDocument, Document destinationDocument) throws PublicationException;
+    
+    /**
      * Copies a document to another area.
      * @param sourceDocument The document to copy.
      * @param destinationArea The destination area.

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java?rev=380319&r1=380318&r2=380319&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java Thu Feb 23 19:22:14 2006
@@ -192,6 +192,36 @@
             }
         }
     }
+    
+    /**
+     * Method to copy a document without it's resources. Override {@link #copyDocumentSource(Document, Document)}
+     * to implement access to a custom repository.
+     * @see org.apache.lenya.cms.publication.DocumentManager#copy(org.apache.lenya.cms.publication.Document,
+     *      org.apache.lenya.cms.publication.Document)
+     */
+    public void copyDocument(Document sourceDocument, Document destinationDocument)
+            throws PublicationException {
+
+        Publication publication = sourceDocument.getPublication();
+        copyDocumentSource(sourceDocument, destinationDocument);
+
+        SiteManager siteManager = null;
+        ServiceSelector selector = null;
+        try {
+            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
+            siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());
+            siteManager.copy(sourceDocument, destinationDocument);
+        } catch (Exception e) {
+            throw new PublicationException(e);
+        } finally {
+            if (selector != null) {
+                if (siteManager != null) {
+                    selector.release(siteManager);
+                }
+                this.manager.release(selector);
+            }
+        }
+    }
 
     /**
      * @see org.apache.lenya.cms.publication.DocumentManager#delete(org.apache.lenya.cms.publication.Document)

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java?rev=380319&r1=380318&r2=380319&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java Thu Feb 23 19:22:14 2006
@@ -179,7 +179,7 @@
                 Document existingSourceDoc = DocumentHelper.getExistingLanguageVersion(sourceDoc,
                         doc.getLanguage());
                 Document targetDoc = map.getAreaVersion(existingSourceDoc, getTargetArea());
-                documentManager.copy(existingSourceDoc, targetDoc);
+                documentManager.copyDocument(existingSourceDoc, targetDoc);
                 if (!targetDoc.getArea().equals(Publication.AUTHORING_AREA)) {
                     MetaData meta = targetDoc.getMetaDataManager().getLenyaMetaData();
                     meta.setValue(LenyaMetaData.ELEMENT_PLACEHOLDER, "true");



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