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 2009/02/12 03:03:16 UTC

svn commit: r743596 - in /lenya/trunk: org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/file/ org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/ org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/publicat...

Author: andreas
Date: Thu Feb 12 02:03:13 2009
New Revision: 743596

URL: http://svn.apache.org/viewvc?rev=743596&view=rev
Log:
Fixing WorkflowTest, added various dependencies, replaced File handling by URI handling.

Added:
    lenya/trunk/org.apache.lenya.core.api/src/main/resources/META-INF/cocoon/spring/lenya-core-api-inputModules.xml
      - copied unchanged from r743549, lenya/trunk/org.apache.lenya.core.api/src/main/resources/META-INF/cocoon/spring/lenya-core-inputModules.xml
    lenya/trunk/org.apache.lenya.core.api/src/main/resources/META-INF/cocoon/spring/lenya-core-api-sourceFactories.xml
      - copied unchanged from r743549, lenya/trunk/org.apache.lenya.core.api/src/main/resources/META-INF/cocoon/spring/lenya-core-sourceFactories.xml
Removed:
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PathToDocumentIdMapper.java
    lenya/trunk/org.apache.lenya.core.api/src/main/resources/META-INF/cocoon/spring/lenya-core-inputModules.xml
    lenya/trunk/org.apache.lenya.core.api/src/main/resources/META-INF/cocoon/spring/lenya-core-sourceFactories.xml
Modified:
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/file/FilePolicyManager.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml
    lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/publication/usecases/EditPubConf.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Publication.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Session.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
    lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java
    lenya/trunk/org.apache.lenya.core.impl.tests/pom.xml
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml
    lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
    lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java
    lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java
    lenya/trunk/org.apache.lenya.core.templating/src/main/resources/META-INF/cocoon/spring/lenya-core-templating-components.xml
    lenya/trunk/org.apache.lenya.core.workflow/pom.xml
    lenya/trunk/org.apache.lenya.core.workflow/src/test/java/org/apache/lenya/cms/workflow/WorkflowTest.java
    lenya/trunk/org.apache.lenya.core.workflow/src/test/resources/test-components.xml
    lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Import.java
    lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java
    lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/SimpleSiteManager.java
    lenya/trunk/org.apache.lenya.module.simplesite/src/test/java/org/apache/lenya/cms/site/simple/SimpleSiteManagerTest.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/DefaultSiteTree.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/DelegatingSiteTree.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java
    lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java
    lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceWrapper.java
    lenya/trunk/org.apache.lenya.optional.jcrsource/src/main/java/org/apache/lenya/cms/jcr/usecases/Import.java
    lenya/trunk/pubs/test/config/publication.xml

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/file/FilePolicyManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/file/FilePolicyManager.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/file/FilePolicyManager.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/file/FilePolicyManager.java Thu Feb 12 02:03:13 2009
@@ -40,6 +40,7 @@
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.cocoon.util.NetUtils;
 import org.apache.excalibur.source.Source;
@@ -97,18 +98,15 @@
     }
 
     /**
-     * Creates a new FilePolicyManager.
-     */
-    public FilePolicyManager() {
-        // do nothing
-    }
-
-    /**
      * Returns the source cache.
      * 
      * @return A source cache.
      */
     protected SourceCache getCache() {
+        if (this.cache == null) {
+            this.cache = (SourceCache) WebAppContextUtils.getCurrentWebApplicationContext()
+                    .getBean(SourceCache.ROLE);
+        }
         return this.cache;
     }
 
@@ -117,8 +115,8 @@
     protected static final String SUBTREE_FILENAME = "subtree-policy.acml";
 
     /**
-     * Builds a subtree policy from a file. When the file is not present, an
-     * empty policy is returned.
+     * Builds a subtree policy from a file. When the file is not present, an empty policy is
+     * returned.
      * 
      * @param controller The access controller to use.
      * @param url The URL inside the web application.
@@ -131,8 +129,7 @@
     }
 
     /**
-     * Builds a policy from a file. When the file is not present, an empty
-     * policy is returned.
+     * Builds a policy from a file. When the file is not present, an empty policy is returned.
      * 
      * @param controller The access controller to use.
      * @param url The url.
@@ -184,12 +181,11 @@
         if (url.startsWith("/")) {
             url = url.substring(1);
         }
-        
+
         // remove publication ID
         if (url.indexOf("/") > -1) {
             url = url.substring(url.indexOf("/") + 1);
-        }
-        else {
+        } else {
             url = "";
         }
 
@@ -218,8 +214,7 @@
             return SourceUtil.getFile(source);
         } catch (final Exception e) {
             throw new AccessControlException(e);
-        }
-        finally {
+        } finally {
             if (resolver != null) {
                 if (source != null) {
                     resolver.release(source);
@@ -375,11 +370,11 @@
      */
     public Policy[] getPolicies(AccreditableManager controller, String url)
             throws AccessControlException {
-        
+
         if (!url.startsWith("/")) {
             throw new IllegalArgumentException("The URL [" + url + "] doesn't start with a slash!");
         }
-        
+
         url = url.substring(1);
 
         List policies = new LinkedList();
@@ -416,8 +411,7 @@
     }
 
     /**
-     * Removes an accreditable from all policies within a certain directory
-     * tree.
+     * Removes an accreditable from all policies within a certain directory tree.
      * 
      * @param manager The accreditable manager which owns the accreditable.
      * @param accreditable The accreditable to remove.
@@ -497,7 +491,7 @@
         if (!url.startsWith("/")) {
             throw new IllegalArgumentException("The URL [" + url + "] doesn't start with a slash!");
         }
-        
+
         url = url.substring(1);
 
         HashMap orderedCredential = new LinkedHashMap();

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml Thu Feb 12 02:03:13 2009
@@ -65,7 +65,9 @@
   
   <!-- Policy Managers -->
   <bean name="org.apache.lenya.ac.PolicyManager/document"
-    class="org.apache.lenya.cms.ac.DocumentPolicyManagerWrapper"/>
+    class="org.apache.lenya.cms.ac.DocumentPolicyManagerWrapper">
+    <property name="repository" ref="org.apache.lenya.cms.publication.Repository"/>
+  </bean>
   <bean name="org.apache.lenya.ac.PolicyManager/file"
     class="org.apache.lenya.ac.file.FilePolicyManager"/>
   <bean name="org.apache.lenya.ac.PolicyManager/sitemap"

Modified: lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/publication/usecases/EditPubConf.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/publication/usecases/EditPubConf.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/publication/usecases/EditPubConf.java (original)
+++ lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/publication/usecases/EditPubConf.java Thu Feb 12 02:03:13 2009
@@ -17,8 +17,9 @@
  */
 package org.apache.lenya.cms.publication.usecases;
 
-import java.io.File;
-
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.source.TraversableSource;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
 
@@ -31,12 +32,14 @@
     private static final String PUB = "publication";
     private static final String CONTENT_DIR = "contentDir";
 
+    private SourceResolver sourceResolver;
+
     protected void prepareView() throws Exception {
         super.prepareView();
         Publication pub = getPublication();
         setParameter(PUB, pub);
         setParameter(PUB_NAME, pub.getName());
-        setParameter(CONTENT_DIR, pub.getContentDir());
+        setParameter(CONTENT_DIR, pub.getContentUri());
         Boolean[] booleans = { Boolean.FALSE, Boolean.TRUE };
         String[] areas = pub.getAreaNames();
         for (int b = 0; b < booleans.length; b++) {
@@ -63,14 +66,23 @@
         if (contentPath.equals("")) {
             addErrorMessage("content-dir-missing");
         } else {
-            File contentDir;
+            String contentUri;
             if (contentPath.startsWith("/")) {
-                contentDir = new File(contentPath);
+                contentUri = "file://" + contentPath;
             } else {
-                contentDir = new File(pub.getDirectory(), contentPath);
+                contentUri = pub.getSourceUri() + "/" + contentPath;
             }
-            if (!contentDir.isDirectory()) {
-                addErrorMessage("content-dir-does-not-exist");
+            Source source = null;
+            try {
+                source = this.sourceResolver.resolveURI(contentUri);
+                if (!(source instanceof TraversableSource && ((TraversableSource) source)
+                        .isCollection())) {
+                    addErrorMessage("content-dir-does-not-exist");
+                }
+            } finally {
+                if (source != null) {
+                    this.sourceResolver.release(source);
+                }
             }
         }
     }
@@ -95,4 +107,8 @@
         pub.saveConfiguration();
     }
 
+    public void setSourceResolver(SourceResolver sourceResolver) {
+        this.sourceResolver = sourceResolver;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java Thu Feb 12 02:03:13 2009
@@ -110,8 +110,6 @@
                         value = document.getCanonicalDocumentURL();
                     } else if (name.equals(PageEnvelope.DOCUMENT_URL_WITHOUT_LANGUAGE)) {
                         value = document.getCanonicalWebappURL();
-                    } else if (name.equals(PageEnvelope.DOCUMENT_FILE)) {
-                        value = document.getFile();
                     } else if (name.equals(PageEnvelope.DOCUMENT_EXTENSION)) {
                         value = document.getExtension();
                     } else if (name.equals(PageEnvelope.DOCUMENT_SOURCE_EXTENSION)) {

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java Thu Feb 12 02:03:13 2009
@@ -25,8 +25,7 @@
  * 
  * @version $Id$
  */
-public class DefaultDocumentIdToPathMapper implements DocumentIdToPathMapper,
-        PathToDocumentIdMapper {
+public class DefaultDocumentIdToPathMapper implements DocumentIdToPathMapper {
 
     /**
      * The file name.
@@ -34,23 +33,6 @@
     public static final String BASE_FILENAME_PREFIX = "index";
 
     /**
-     * @see org.apache.lenya.cms.publication.DocumentIdToPathMapper#getFile(org.apache.lenya.cms.publication.Publication,
-     *      java.lang.String, java.lang.String, java.lang.String)
-     */
-    public File getFile(Publication publication, String area, String uuid, String language) {
-        File file = new File(getDirectory(publication, area), getPath(uuid, language));
-        return file;
-    }
-
-    protected File getDirectory(Publication publication, String area) {
-
-        File file = new File(publication.getDirectory(), Publication.CONTENT_PATH + File.separator
-                + area);
-
-        return file;
-    }
-
-    /**
      * @see org.apache.lenya.cms.publication.DocumentIdToPathMapper#getPath(java.lang.String,
      *      java.lang.String)
      */
@@ -78,33 +60,6 @@
     }
 
     /**
-     * Returns the document ID for a certain file.
-     * @param publication The publication.
-     * @param area The area.
-     * @param file The file representing the document.
-     * @return A string.
-     * @throws ResourceNotFoundException when the document referenced by the file does not
-     *             exist.
-     */
-    public String getDocumentId(Publication publication, String area, File file)
-            throws ResourceNotFoundException {
-
-        String fileName = file.getAbsolutePath();
-        String contentDirName = publication.getContentDirectory(area).getAbsolutePath();
-        if (fileName.startsWith(contentDirName)) {
-            // trim everything up to the documentId
-            String relativeFileName = fileName.substring(contentDirName.length());
-            // trim everything after the documentId
-            relativeFileName = relativeFileName.substring(0,
-                    relativeFileName.lastIndexOf(File.separator));
-            // and replace the os specific separator by '/'
-            return relativeFileName.replace(File.separatorChar, '/');
-        }
-        // Document does not seem to exist
-        throw new ResourceNotFoundException("No document associated with file" + fileName);
-    }
-
-    /**
      * Returns the language for a certain file
      * 
      * @param file the document file

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java Thu Feb 12 02:03:13 2009
@@ -115,13 +115,6 @@
     String getArea();
 
     /**
-     * Returns the file for this document.
-     * @return A file object.
-     * @deprecated This implies the usage of a filesystem based storage. Use {@link #getSourceURI()} instead.
-     */
-    File getFile();
-
-    /**
      * Returns the extension in the URL without the dot.
      * @return A string.
      */

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java Thu Feb 12 02:03:13 2009
@@ -96,9 +96,9 @@
     Publication getPublication(String id) throws PublicationException;
     
     /**
-     * @return All publications.
+     * @return All publication IDs.
      */
-    Publication[] getPublications();
+    String[] getPublicationIds();
     
     /**
      * @param id The publication ID.

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java Thu Feb 12 02:03:13 2009
@@ -20,8 +20,6 @@
 
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
-
 /**
  * Document Id to Path mapper interface
  */
@@ -38,16 +36,4 @@
      */
     String getPath(String uuid, String language);
 
-    /**
-     * Compute the document-path for a given publication, area, document-uuid and language
-     * 
-     * @param publication the publication of the document
-     * @param area the area of the document
-     * @param uuid the uuid of the document
-     * @param language the language of the document
-     * 
-     * @return the path to the document
-     */
-    File getFile(Publication publication, String area, String uuid, String language);
-
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java Thu Feb 12 02:03:13 2009
@@ -20,25 +20,12 @@
 
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
-
 /**
  * Identity Document Id to path mapper
  */
 public class IdentityDocumentIdToPathMapper implements DocumentIdToPathMapper {
 
     /**
-     * @see org.apache.lenya.cms.publication.DocumentIdToPathMapper#getFile(org.apache.lenya.cms.publication.Publication,
-     *      java.lang.String, java.lang.String, java.lang.String)
-     */
-    public File getFile(Publication publication, String area, String documentId, String language) {
-        File areaDirectory = new File(publication.getDirectory(), Publication.CONTENT_PATH
-                + File.separator + area);
-        File file = new File(areaDirectory, getPath(documentId, language));
-        return file;
-    }
-
-    /**
      * @see org.apache.lenya.cms.publication.DocumentIdToPathMapper#getPath(java.lang.String,
      *      java.lang.String)
      */

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java Thu Feb 12 02:03:13 2009
@@ -110,11 +110,6 @@
      */
     public static final String DOCUMENT_URL_WITHOUT_LANGUAGE = "document-url-without-language";
     /**
-     * <code>DOCUMENT_FILE</code> The file of the current document
-     * @deprecated Reference a document via the lenya-document: URI instead.
-     */
-    public static final String DOCUMENT_FILE = "document-file";
-    /**
      * <code>DOCUMENT_PATH</code> The path of the current document
      */
     public static final String DOCUMENT_PATH = "document-path";

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Publication.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Publication.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Publication.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Publication.java Thu Feb 12 02:03:13 2009
@@ -105,19 +105,6 @@
     boolean exists();
 
     /**
-     * Returns the publication directory.
-     * @return A <code>File</code> object.
-     */
-    File getDirectory();
-
-    /**
-     * Return the directory of a specific area.
-     * @param area a <code>File</code> representing the root of the area content directory.
-     * @return the directory of the given content area.
-     */
-    File getContentDirectory(String area);
-
-    /**
      * Set the path mapper
      * @param mapper The path mapper
      */
@@ -188,11 +175,11 @@
     String getInstantiatorHint();
 
     /**
-     * Returns the content dir.
+     * Returns the content directory source URI.
      * If the publication does not specify a content dir, then <code>null</code> is returned.
      * @return A base directory where all the content is located.
      */
-    String getContentDir();
+    String getContentUri();
 
     /**
      * Returns the proxy which is used for a particular document's area
@@ -229,15 +216,10 @@
     String getTemplateId();
 
     /**
-     * @return the URI base for this publication
-     */
-    String getSourceURI();
-
-    /**
      * @param area The area.
      * @return the URI base under which contents in this publication are accessed
      */
-    String getContentURI(String area);
+    String getContentUri(String area);
 
     /**
      * @param resourceType The resource type or <code>null</code> if no workflow is registered for
@@ -278,4 +260,9 @@
      */
     Session getSession();
 
+    /**
+     * @return The source URI of the publication directory.
+     */
+    String getSourceUri();
+
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Session.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Session.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Session.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Session.java Thu Feb 12 02:03:13 2009
@@ -30,7 +30,7 @@
      */
     Publication getPublication(String id) throws ResourceNotFoundException;
     
-    Publication[] getPublications();
+    String[] getPublicationIds();
     
     /**
      * @param id The publication ID.

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java Thu Feb 12 02:03:13 2009
@@ -260,7 +260,7 @@
             if (schema.indexOf("://") != -1) {
                 return schema;
             } else {
-                uri = this.document.getPublication().getSourceURI() + "/config/workflow/" + schema;
+                uri = this.document.getPublication().getSourceUri() + "/config/workflow/" + schema;
                 uri = uri.substring("lenya://".length());
                 uri = "context://" + uri;
             }

Modified: lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java Thu Feb 12 02:03:13 2009
@@ -69,7 +69,6 @@
 
         HttpSession cocoonSession = getRequest().getSession();
         Identity identity = (Identity) cocoonSession.getAttribute(Identity.class.getName());
-        final Session userSession = getRepository().startSession(identity, true);
 
         if (!identity.contains(user)) {
             User oldUser = identity.getUser();
@@ -89,6 +88,7 @@
             logger.info("Accreditable: " + accrs[i]);
         }
 
+        final Session userSession = getRepository().startSession(identity, true);
         getRequest().setAttribute(Session.class.getName(), userSession);
         return userSession;
     }
@@ -108,7 +108,7 @@
             Publication pub = session.existsPublication(pubId) ? session.getPublication(pubId)
                     : session.addPublication(pubId);
             logger.info("Resolve access controller");
-            logger.info("Publication directory: [" + pub.getDirectory().getAbsolutePath() + "]");
+            logger.info("Publication directory: [" + pub.getSourceUri() + "]");
         } catch (RepositoryException e) {
             throw new AccessControlException(e);
         }

Modified: lenya/trunk/org.apache.lenya.core.impl.tests/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl.tests/pom.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl.tests/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.impl.tests/pom.xml Thu Feb 12 02:03:13 2009
@@ -89,6 +89,10 @@
       <artifactId>lenya-core-ac</artifactId>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.lenya</groupId>
+      <artifactId>lenya-core-impl</artifactId>
+    </dependency>
     
     <!-- FIXME: maybe the tests can be organized with less dependencies -->
     <dependency>

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java Thu Feb 12 02:03:13 2009
@@ -84,7 +84,7 @@
             getLogger().debug("Creating repository source for URI [" + location + "]");
         }
 
-        return new RepositorySource(getNodeFactory(), location, session, getLogger());
+        return new RepositorySource(this.nodeFactory, location, session, getLogger());
 
     }
 
@@ -128,10 +128,6 @@
         this.nodeFactory = nodeFactory;
     }
 
-    public NodeFactory getNodeFactory() {
-        return nodeFactory;
-    }
-
     public void setRepository(Repository repository) {
         this.repository = repository;
     }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java Thu Feb 12 02:03:13 2009
@@ -49,6 +49,7 @@
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.repository.NodeFactory;
 import org.apache.lenya.cms.repository.RepositoryException;
+import org.apache.lenya.cms.repository.SessionHolder;
 import org.apache.lenya.util.Query;
 import org.apache.lenya.util.ServletHelper;
 
@@ -132,9 +133,11 @@
                 sourceUri = uri;
             }
 
-            org.apache.lenya.cms.repository.Session repoSession = (org.apache.lenya.cms.repository.Session) session;
+            org.apache.lenya.cms.repository.Session repoSession = ((SessionHolder) session)
+                    .getRepositorySession();
             if (revisionNumber == -1) {
-                this.content = (ContentHolder) repoSession.getRepositoryItem(nodeFactory, sourceUri);
+                this.content = (ContentHolder) repoSession
+                        .getRepositoryItem(nodeFactory, sourceUri);
             } else {
                 Node node = (Node) repoSession.getRepositoryItem(nodeFactory, sourceUri);
                 this.content = node.getHistory().getRevision(revisionNumber);

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java Thu Feb 12 02:03:13 2009
@@ -186,12 +186,12 @@
      */
     public boolean isDocument(String webappUrl) throws ResourceNotFoundException {
         Validate.notNull(webappUrl);
-        PublicationManager pubMgr = getPublicationManager();
         try {
             URLInformation info = new URLInformation(webappUrl);
             String pubId = info.getPublicationId();
-            if (pubId != null && Arrays.asList(pubMgr.getPublicationIds()).contains(pubId)) {
-                Publication pub = pubMgr.getPublication(this, pubId);
+            String[] pubIds = getPublicationIds();
+            if (pubId != null && Arrays.asList(pubIds).contains(pubId)) {
+                Publication pub = getPublication(pubId);
                 DocumentBuilder builder = pub.getDocumentBuilder();
                 return builder.isDocument(this.session, webappUrl);
             } else {
@@ -328,8 +328,8 @@
         return getPublicationManager().getPublication(this, id);
     }
 
-    public Publication[] getPublications() {
-        return getPublicationManager().getPublications(this);
+    public String[] getPublicationIds() {
+        return getPublicationManager().getPublicationIds();
     }
 
     private PublicationManager pubManager;

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java Thu Feb 12 02:03:13 2009
@@ -18,7 +18,6 @@
 
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
@@ -185,11 +184,6 @@
         }
     }
 
-    public File getFile() {
-        return getPublication().getPathMapper().getFile(getPublication(), getArea(), getUUID(),
-                getLanguage());
-    }
-
     public String getLanguage() {
         return this.identifier.getLanguage();
     }
@@ -551,7 +545,7 @@
 
     protected static String getSourceURI(Publication pub, String area, String uuid, String language) {
         String path = pub.getPathMapper().getPath(uuid, language);
-        return pub.getSourceURI() + "/content/" + area + "/" + path;
+        return pub.getContentUri(area) + "/" + path;
     }
 
     public boolean existsVersion(String area, String language) {

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java Thu Feb 12 02:03:13 2009
@@ -17,11 +17,6 @@
  */
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -39,7 +34,6 @@
 import org.apache.excalibur.source.ModifiableSource;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
-import org.apache.lenya.cms.repository.Node;
 
 /**
  * A publication's configuration. Keep in sync with src/resources/build/publication.rng!
@@ -60,7 +54,7 @@
     private String defaultLanguage = null;
     private String breadcrumbprefix = null;
     private String instantiatorHint = null;
-    private String contentDir = null;
+    private String contentUri = null;
     private SortedSet modules = new TreeSet();
     private String contextPath;
     private SourceResolver sourceResolver;
@@ -257,9 +251,9 @@
 
             Configuration contentDirConfig = config.getChild(ELEMENT_CONTENT_DIR, false);
             if (contentDirConfig != null) {
-                this.contentDir = contentDirConfig.getAttribute(ATTRIBUTE_SRC);
+                this.contentUri = contentDirConfig.getAttribute(ATTRIBUTE_SRC);
                 getLogger().info(
-                        "Content directory loaded from pub configuration: " + this.contentDir);
+                        "Content directory loaded from pub configuration: " + this.contentUri);
             } else {
                 getLogger().info("No content directory specified within pub configuration!");
             }
@@ -326,39 +320,6 @@
     }
 
     /**
-     * Returns the publication directory.
-     * @return A <code>File</code> object.
-     */
-    public File getDirectory() {
-        return new File(getPubBaseUri(), getId());
-    }
-
-    /**
-     * @see org.apache.lenya.cms.publication.Publication#getContentDirectory(String)
-     */
-    public File getContentDirectory(String area) {
-        String urlString = getContentDir();
-        File contentDir = getFileFromUrl(urlString);
-        return new File(contentDir, area);
-    }
-
-    protected File getFileFromUrl(String urlString) {
-        if (urlString.startsWith("/")) {
-            return new File(urlString);
-        }
-        File contentDir;
-        try {
-            URL url = new URL(urlString);
-            contentDir = new File(url.toURI());
-        } catch (URISyntaxException e) {
-            throw new RuntimeException(e);
-        } catch (MalformedURLException e) {
-            throw new RuntimeException(e);
-        }
-        return contentDir;
-    }
-
-    /**
      * Set the path mapper
      * @param _mapper The path mapper
      */
@@ -532,34 +493,27 @@
         return this.instantiatorHint;
     }
 
-    /**
-     * @see org.apache.lenya.cms.publication.Publication#getContentDir()
-     */
-    public String getContentDir() {
+    public String getContentUri() {
         loadConfiguration();
-        if (this.contentDir == null) {
-            this.contentDir = getDefaultContentDir();
+        if (this.contentUri == null) {
+            this.contentUri = getDefaultContentUri();
         }
-        return this.contentDir;
+        return this.contentUri;
     }
 
-    protected String getDefaultContentDir() {
-        File baseDir = getFileFromUrl(getPubBaseUri());
-        return baseDir.getAbsolutePath() + File.separator + getId() + File.separator + CONTENT_PATH;
+    protected String getDefaultContentUri() {
+        return getSourceUri() + "/" + CONTENT_PATH;
     }
 
-    /**
-     * @see org.apache.lenya.cms.publication.Publication#getSourceURI()
-     */
-    public String getSourceURI() {
-        return Node.LENYA_PROTOCOL + "/" + this.id;
+    public String getSourceUri() {
+        return getPubBaseUri() + "/" + this.id;
     }
 
     /**
-     * @see org.apache.lenya.cms.publication.Publication#getContentURI(java.lang.String)
+     * @see org.apache.lenya.cms.publication.Publication#getContentUri(java.lang.String)
      */
-    public String getContentURI(String area) {
-        return getSourceURI() + "/" + CONTENT_PATH + "/" + area;
+    public String getContentUri(String area) {
+        return "lenya://" + getId() + "/" + CONTENT_PATH + "/" + area;
     }
 
     private Map resourceType2workflow = new HashMap();
@@ -727,9 +681,9 @@
                     instantiatorHint));
         }
 
-        String contentDir = getContentDir();
-        if (!contentDir.equals(getDefaultContentDir())) {
-            config.addChild(createConfig(ELEMENT_CONTENT_DIR, ATTRIBUTE_SRC, this.contentDir));
+        String contentUri = getContentUri();
+        if (!contentUri.equals(getDefaultContentUri())) {
+            config.addChild(createConfig(ELEMENT_CONTENT_DIR, ATTRIBUTE_SRC, this.contentUri));
         }
 
         DefaultConfiguration resourceTypesConf = createConfig(ELEMENT_RESOURCE_TYPES);

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java Thu Feb 12 02:03:13 2009
@@ -18,7 +18,6 @@
 
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -28,7 +27,6 @@
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.util.AbstractLogEnabled;
-import org.apache.commons.lang.Validate;
 import org.apache.lenya.cms.repository.NodeFactory;
 import org.apache.lenya.cms.repository.RepositoryItem;
 
@@ -57,26 +55,18 @@
         return delegate.getBreadcrumbPrefix();
     }
 
-    public String getContentDir() {
-        return delegate.getContentDir();
+    public String getContentUri() {
+        return delegate.getContentUri();
     }
 
-    public File getContentDirectory(String area) {
-        return delegate.getContentDirectory(area);
-    }
-
-    public String getContentURI(String area) {
-        return delegate.getContentURI(area);
+    public String getContentUri(String area) {
+        return delegate.getContentUri(area);
     }
 
     public String getDefaultLanguage() {
         return delegate.getDefaultLanguage();
     }
 
-    public File getDirectory() {
-        return delegate.getDirectory();
-    }
-
     private DocumentBuilder documentBuilder;
 
     public DocumentBuilder getDocumentBuilder() {
@@ -152,8 +142,8 @@
         return delegate.getSiteManagerHint();
     }
 
-    public String getSourceURI() {
-        return delegate.getSourceURI();
+    public String getSourceUri() {
+        return delegate.getSourceUri();
     }
 
     public String getTemplateId() {

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java Thu Feb 12 02:03:13 2009
@@ -71,8 +71,8 @@
         return getDocumentFactory().existsPublication(id);
     }
 
-    public Publication[] getPublications() {
-        return getDocumentFactory().getPublications();
+    public String[] getPublicationIds() {
+        return getDocumentFactory().getPublicationIds();
     }
 
     public Identity getIdentity() {

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml Thu Feb 12 02:03:13 2009
@@ -107,4 +107,12 @@
     <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
   </bean>
   
+  <!-- Source Factories -->
+  <bean name="org.apache.excalibur.source.SourceFactory/lenya"
+    class="org.apache.lenya.cms.cocoon.source.LenyaSourceFactory">
+    <property name="repository" ref="org.apache.lenya.cms.publication.Repository"/>
+    <property name="nodeFactory" ref="org.apache.lenya.cms.repository.NodeFactory"/>
+  </bean>
+  
+  
 </beans>

Modified: lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java (original)
+++ lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java Thu Feb 12 02:03:13 2009
@@ -17,8 +17,6 @@
  */
 package org.apache.lenya.cms.janitor;
 
-import java.io.File;
-
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.excalibur.source.SourceResolver;
@@ -57,8 +55,7 @@
                     .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
             Session session = this.repository.getSession(process.getRequest());
             Publication pub = session.getPublication(id.getPublicationId());
-            File contentFile = pub.getContentDirectory(id.getArea());
-            String contentUri = contentFile.toURI().toString();
+            String contentUri = pub.getContentUri(id.getArea());
             SourceUtil.deleteEmptyCollections(contentUri, this.sourceResolver);
         } catch (Exception e) {
             throw new RuntimeException(e);

Modified: lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java (original)
+++ lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java Thu Feb 12 02:03:13 2009
@@ -25,7 +25,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.lenya.ac.AccessController;
 import org.apache.lenya.ac.AccessControllerResolver;
@@ -76,8 +75,6 @@
         this.ssl = ssl;
         this.considerSslPolicies = considerSslPolicies;
 
-        ServiceSelector serviceSelector = null;
-
         try {
             this.session = session;
 
@@ -91,9 +88,9 @@
                 }
             }
 
-            Publication[] pubs = this.session.getPublications();
-            for (int i = 0; i < pubs.length; i++) {
-                this.publicationCache.put(pubs[i].getId(), pubs[i]);
+            String[] pubIds = this.session.getPublicationIds();
+            for (String pubId : pubIds) {
+                this.publicationCache.put(pubId, this.session.getPublication(pubId));
             }
 
         } catch (final Exception e) {
@@ -113,7 +110,7 @@
         return url.startsWith("/");
     }
 
-    private Map publicationCache = new HashMap();
+    private Map<String, Publication> publicationCache = new HashMap<String, Publication>();
 
     protected Publication getPublication(String pubId) throws PublicationException {
         return (Publication) this.publicationCache.get(pubId);

Modified: lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java Thu Feb 12 02:03:13 2009
@@ -95,7 +95,7 @@
      * @return A string.
      */
     public static String getBaseURI(Publication publication) {
-        return publication.getDirectory().getAbsolutePath() + "/";
+        return publication.getSourceUri();
     }
 
     /**
@@ -161,10 +161,6 @@
         this.sourceResolver = sourceResolver;
     }
 
-    public SourceResolver getSourceResolver() {
-        return sourceResolver;
-    }
-
     /**
      * Searches for a declared service of the form "publicationId/service".
      */

Modified: lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java (original)
+++ lenya/trunk/org.apache.lenya.core.templating/src/main/java/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java Thu Feb 12 02:03:13 2009
@@ -45,11 +45,11 @@
     protected void initParameters() {
         super.initParameters();
 
-        Publication[] pubs = getSession().getPublications();
+        String[] pubIds = getSession().getPublicationIds();
         List templates = new ArrayList();
-        for (int i = 0; i < pubs.length; i++) {
-            if (pubs[i].getInstantiatorHint() != null) {
-                templates.add(pubs[i].getId());
+        for (String pubId : pubIds) {
+            if (getSession().getPublication(pubId).getInstantiatorHint() != null) {
+                templates.add(pubId);
             }
         }
         Collections.sort(templates);

Modified: lenya/trunk/org.apache.lenya.core.templating/src/main/resources/META-INF/cocoon/spring/lenya-core-templating-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.templating/src/main/resources/META-INF/cocoon/spring/lenya-core-templating-components.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.templating/src/main/resources/META-INF/cocoon/spring/lenya-core-templating-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.templating/src/main/resources/META-INF/cocoon/spring/lenya-core-templating-components.xml Thu Feb 12 02:03:13 2009
@@ -20,5 +20,7 @@
   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
   xmlns="http://www.springframework.org/schema/beans">
   <bean name="org.apache.lenya.cms.publication.templating.PublicationTemplateManager"
-    class="org.apache.lenya.cms.publication.templating.PublicationTemplateManagerImpl"/>
+    class="org.apache.lenya.cms.publication.templating.PublicationTemplateManagerImpl">
+    <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
+  </bean>
 </beans>

Modified: lenya/trunk/org.apache.lenya.core.workflow/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/pom.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/pom.xml Thu Feb 12 02:03:13 2009
@@ -83,6 +83,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.lenya</groupId>
+      <artifactId>lenya-core-cache</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lenya</groupId>
       <artifactId>lenya-core-impl</artifactId>
       <scope>runtime</scope>
     </dependency>
@@ -99,6 +104,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.lenya</groupId>
+      <artifactId>lenya-core-templating</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lenya</groupId>
       <artifactId>lenya-module-sitetree</artifactId>
       <scope>runtime</scope>
     </dependency>

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/test/java/org/apache/lenya/cms/workflow/WorkflowTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/test/java/org/apache/lenya/cms/workflow/WorkflowTest.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/test/java/org/apache/lenya/cms/workflow/WorkflowTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/test/java/org/apache/lenya/cms/workflow/WorkflowTest.java Thu Feb 12 02:03:13 2009
@@ -20,6 +20,8 @@
 
 package org.apache.lenya.cms.workflow;
 
+import org.apache.lenya.ac.Group;
+import org.apache.lenya.ac.User;
 import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.Publication;
@@ -45,9 +47,16 @@
      * @throws Exception when something went wrong.
      */
     public void testWorkflow() throws Exception {
-        Publication publication = getSession().getPublication("test");
+        
+        User lenya = getAccreditableManager().getUserManager().getUser("lenya");
+        Group reviewers = getAccreditableManager().getGroupManager().getGroup("reviewer");
+        reviewers.add(lenya);
+        
+        
+        Session session = getSession();
+        Publication publication = session.getPublication("test");
         String url = "/" + publication.getId() + URL;
-        Document document = getSession().getUriHandler().getDocument(url);
+        Document document = session.getUriHandler().getDocument(url);
 
         document.lock();
 
@@ -61,8 +70,7 @@
             }
         }
 
-        for (int situationIndex = 0; situationIndex < situations.length; situationIndex++) {
-            TestSituation situation = situations[situationIndex];
+        for (TestSituation situation : situations) {
             invoke(document, situation);
         }
 

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/test/resources/test-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/test/resources/test-components.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/test/resources/test-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/test/resources/test-components.xml Thu Feb 12 02:03:13 2009
@@ -21,10 +21,13 @@
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
   
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-ac-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-api-sourceFactories.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-cache-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-impl-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-observation-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-repository-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-resourcetype-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-templating-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-module-sitetree-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-module-sourcerepository-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/cocoon-xml-impl.xml"/>

Modified: lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Import.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Import.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Import.java (original)
+++ lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Import.java Thu Feb 12 02:03:13 2009
@@ -49,8 +49,7 @@
     }
 
     protected String getExampleContentPath(Publication publication) {
-        return publication.getDirectory().getAbsolutePath().replace(File.separatorChar, '/')
-                + "/example-content";
+        return publication.getSourceUri() + "/example-content";
     }
 
     protected Publication getDefaultPub() {

Modified: lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java Thu Feb 12 02:03:13 2009
@@ -218,11 +218,11 @@
             HttpServletRequest request = process.getRequest();
             Session session = this.repository.getSession(request);
 
-            Publication[] publications = session.getPublications();
+            String[] pubIds = session.getPublicationIds();
 
-            for (int i = 0; i < publications.length; i++) {
+            for (String pubId : pubIds) {
                 String uri = "context://" + Publication.PUBLICATION_PREFIX_URI + "/"
-                        + publications[i].getId() + "/" + Publication.CONFIGURATION_PATH + "/"
+                        + pubId+ "/" + Publication.CONFIGURATION_PATH + "/"
                         + INDEX_CONF_FILE;
                 confSource = this.sourceResolver.resolveURI(uri);
                 if (confSource.exists()) {

Modified: lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/SimpleSiteManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/SimpleSiteManager.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/SimpleSiteManager.java (original)
+++ lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/SimpleSiteManager.java Thu Feb 12 02:03:13 2009
@@ -84,7 +84,7 @@
     }
 
     protected String getCollectionUuid(Publication pub) {
-        String sourceUri = pub.getContentURI(Publication.AUTHORING_AREA) + DOCUMENT_PATH;
+        String sourceUri = pub.getContentUri(Publication.AUTHORING_AREA) + DOCUMENT_PATH;
         try {
 
             if (!SourceUtil.exists(sourceUri, getSourceResolver())) {

Modified: lenya/trunk/org.apache.lenya.module.simplesite/src/test/java/org/apache/lenya/cms/site/simple/SimpleSiteManagerTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.simplesite/src/test/java/org/apache/lenya/cms/site/simple/SimpleSiteManagerTest.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.simplesite/src/test/java/org/apache/lenya/cms/site/simple/SimpleSiteManagerTest.java (original)
+++ lenya/trunk/org.apache.lenya.module.simplesite/src/test/java/org/apache/lenya/cms/site/simple/SimpleSiteManagerTest.java Thu Feb 12 02:03:13 2009
@@ -38,9 +38,9 @@
 
     public void testSimpleSiteManager() throws Exception {
         Session session = login("lenya");
-        Publication[] pubs = session.getPublications();
-        for (int i = 0; i < pubs.length; i++) {
-            checkPublication(pubs[i]);
+        String[] pubIds = session.getPublicationIds();
+        for (String id : pubIds) {
+            checkPublication(session.getPublication(id));
         }
     }
 

Modified: lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/DefaultSiteTree.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/DefaultSiteTree.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/DefaultSiteTree.java (original)
+++ lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/DefaultSiteTree.java Thu Feb 12 02:03:13 2009
@@ -92,7 +92,7 @@
         setLogger(logger);
 
         this.pub = area.getPublication();
-        this.sourceUri = this.pub.getSourceURI() + "/content/" + area.getName() + "/"
+        this.sourceUri = this.pub.getSourceUri() + "/content/" + area.getName() + "/"
                 + SITE_TREE_FILENAME;
         this.area = area.getName();
         try {

Modified: lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/DelegatingSiteTree.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/DelegatingSiteTree.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/DelegatingSiteTree.java (original)
+++ lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/DelegatingSiteTree.java Thu Feb 12 02:03:13 2009
@@ -177,7 +177,7 @@
 
     protected String getSourceUri() {
         if (this.sourceUri == null) {
-            String baseUri = this.area.getPublication().getContentURI(this.area.getName());
+            String baseUri = this.area.getPublication().getContentUri(this.area.getName());
             this.sourceUri = baseUri + "/sitetree.xml";
         }
         return this.sourceUri;

Modified: lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java (original)
+++ lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java Thu Feb 12 02:03:13 2009
@@ -70,7 +70,7 @@
 
     protected String getSourceUri() {
         if (this.sourceUri == null) {
-            String baseUri = this.area.getPublication().getContentURI(this.area.getName());
+            String baseUri = this.area.getPublication().getContentUri(this.area.getName());
             this.sourceUri = baseUri + "/sitetree.xml";
         }
         return this.sourceUri;

Modified: lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java (original)
+++ lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java Thu Feb 12 02:03:13 2009
@@ -59,8 +59,8 @@
      * @param logger
      */
     public SourceNode(Session session, String sourceUri, SourceResolver resolver, Log logger) {
-
         this.session = session;
+        this.sourceResolver = resolver;
         this.contentSource = new ContentSourceWrapper(this, sourceUri, resolver, logger);
         this.metaSource = new MetaSourceWrapper(this, sourceUri, resolver, logger);
     }
@@ -282,7 +282,7 @@
     public Collection getChildren() throws RepositoryException {
         TraversableSource source = null;
         try {
-            source = (TraversableSource) getSourceResolver().resolveURI(
+            source = (TraversableSource) this.sourceResolver.resolveURI(
                     this.contentSource.getRealSourceUri());
             Collection children = source.getChildren();
             java.util.Iterator iterator = children.iterator();
@@ -290,7 +290,7 @@
             while (iterator.hasNext()) {
                 TraversableSource child = (TraversableSource) iterator.next();
                 SourceNode node = new SourceNode(getRepositorySession(), getSourceURI() + "/"
-                        + child.getName(), getSourceResolver(), getLogger());
+                        + child.getName(), this.sourceResolver, getLogger());
                 node.setRcmlFactory(this.rcmlFactory);
                 newChildren.add(node);
             }
@@ -306,7 +306,7 @@
     public boolean isCollection() throws RepositoryException {
         TraversableSource source = null;
         try {
-            source = (TraversableSource) getSourceResolver().resolveURI(
+            source = (TraversableSource) this.sourceResolver.resolveURI(
                     this.contentSource.getRealSourceUri());
             return source.isCollection();
         } catch (Exception e) {
@@ -366,7 +366,7 @@
     }
 
     public History getHistory() {
-        return new SourceNodeHistory(this, getSourceResolver(), getLogger());
+        return new SourceNodeHistory(this, this.sourceResolver, getLogger());
     }
 
     public MetaData getMetaData(String namespaceUri) throws MetaDataException {
@@ -511,14 +511,6 @@
         this.nodeFactory = nodeFactory;
     }
 
-    protected SourceResolver getSourceResolver() {
-        return sourceResolver;
-    }
-
-    protected void setSourceResolver(SourceResolver sourceResolver) {
-        this.sourceResolver = sourceResolver;
-    }
-
     public void setRcmlFactory(SourceNodeRcmlFactory rcmlFactory) {
         this.rcmlFactory = rcmlFactory;
     }

Modified: lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceWrapper.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceWrapper.java (original)
+++ lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceWrapper.java Thu Feb 12 02:03:13 2009
@@ -24,6 +24,7 @@
 import java.io.OutputStream;
 import java.net.MalformedURLException;
 import java.util.Map;
+import java.util.StringTokenizer;
 import java.util.WeakHashMap;
 
 import org.apache.avalon.framework.service.ServiceException;
@@ -50,6 +51,7 @@
      * Ctor.
      * @param node
      * @param sourceUri
+     * @param resolver 
      * @param logger
      */
     public SourceWrapper(SourceNode node, String sourceUri, SourceResolver resolver, Log logger) {
@@ -85,44 +87,28 @@
 
     protected static final String computeRealSourceUri(SourceResolver sourceResolver,
             Session session, String sourceUri, Log logger) {
-        String pubContentUri = null;
-        String publicationId = null;
-        try {
-            final String pubBase = Node.LENYA_PROTOCOL + "/";
-            String publicationsPath = sourceUri.substring(pubBase.length());
-
-            int firstSlashIndex = publicationsPath.indexOf("/");
-            publicationId = publicationsPath.substring(0, firstSlashIndex);
-            org.apache.lenya.cms.publication.Session pubSession = (org.apache.lenya.cms.publication.Session) session
-                    .getHolder();
-            Publication pub = pubSession.getPublication(publicationId);
-            pubContentUri = pub.getContentDir();
-        } catch (Exception e) {
-            throw new RuntimeException("Could not compute real URI of " + sourceUri, e);
-        }
-
-        String contentBaseUri = null;
-        String urlID = sourceUri.substring(Node.LENYA_PROTOCOL.length());
+        Validate.isTrue(sourceUri.startsWith(Node.LENYA_PROTOCOL));
+        String pathInPubs = sourceUri.substring(Node.LENYA_PROTOCOL.length());
+        StringTokenizer tokens = new StringTokenizer(pathInPubs, "/");
+        String pubId = tokens.nextToken();
+        org.apache.lenya.cms.publication.Session pubSession = (org.apache.lenya.cms.publication.Session) session
+                .getHolder();
+        Publication pub = pubSession.getPublication(pubId);
+        String pubContentUri = pub.getContentUri();
 
-        // Substitute e.g. "lenya://lenya/pubs/PUB_ID/content" by "contentDir"
-        String filePrefix = urlID.substring(0, urlID.indexOf(publicationId)) + publicationId;
-        String tempString = urlID.substring(filePrefix.length() + 1);
-        String fileMiddle = tempString.substring(0, tempString.indexOf("/"));
-        String fileSuffix = tempString.substring(fileMiddle.length() + 1, tempString.length());
-        String uriSuffix = "/" + fileSuffix;
-        contentBaseUri = pubContentUri;
+        String absPathInPub = pathInPubs.substring((pubId + "/content").length());
         /*
          * if (new File(pubContentUri).isAbsolute()) { // Absolute contentBaseUri =
          * repo.getBaseUri() + pubContentUri; uriSuffix = File.separator + fileSuffix; } else { //
          * Relative contentBaseUri = CONTEXT_PREFIX + pubContentUri; uriSuffix = "/" + fileSuffix; }
          */
 
-        String realSourceUri = contentBaseUri + uriSuffix;
+        String realSourceUri = pubContentUri + absPathInPub;
 
         if (logger.isDebugEnabled()) {
             try {
-                if (!SourceUtil.exists(contentBaseUri, sourceResolver)) {
-                    logger.debug("The content directory [" + contentBaseUri + "] does not exist. "
+                if (!SourceUtil.exists(pubContentUri, sourceResolver)) {
+                    logger.debug("The content directory [" + pubContentUri + "] does not exist. "
                             + "It will be created as soon as documents are added.");
                 }
             } catch (ServiceException e) {
@@ -251,7 +237,7 @@
     /**
      * Store the source URLs which are currently written.
      */
-    private static Map lockedUris = new WeakHashMap();
+    private static Map<String, Object> lockedUris = new WeakHashMap<String, Object>();
 
     /**
      * @throws RepositoryException if an error occurs.

Modified: lenya/trunk/org.apache.lenya.optional.jcrsource/src/main/java/org/apache/lenya/cms/jcr/usecases/Import.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.optional.jcrsource/src/main/java/org/apache/lenya/cms/jcr/usecases/Import.java?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.optional.jcrsource/src/main/java/org/apache/lenya/cms/jcr/usecases/Import.java (original)
+++ lenya/trunk/org.apache.lenya.optional.jcrsource/src/main/java/org/apache/lenya/cms/jcr/usecases/Import.java Thu Feb 12 02:03:13 2009
@@ -42,7 +42,7 @@
 
     protected void initParameters() {
         super.initParameters();
-        Publication[] pubs = getSession().getPublications();
+        String[] pubs = getSession().getPublicationIds();
         List pubList = Arrays.asList(pubs);
         setParameter(PUBLICATIONS, pubList);
     }

Modified: lenya/trunk/pubs/test/config/publication.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/pubs/test/config/publication.xml?rev=743596&r1=743595&r2=743596&view=diff
==============================================================================
--- lenya/trunk/pubs/test/config/publication.xml (original)
+++ lenya/trunk/pubs/test/config/publication.xml Thu Feb 12 02:03:13 2009
@@ -45,14 +45,7 @@
   
   <!-- Resource types need to be listed because of the workflow resp. because the workflow depends on the publication and not on the resource type -->
   <resource-types>
-    <resource-type name="xhtml" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="homepage" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="links" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="cforms" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="opendocument" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="resource" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="usecase" workflow="fallback://config/workflow/workflow.xml"/>
-    <resource-type name="news" workflow="fallback://config/workflow/workflow.xml"/>
+    <resource-type name="mock" workflow="fallback://config/workflow/workflow.xml"/>
   </resource-types>
   
   <!-- Modules need to be listed because of the menu and i18n -->



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