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/09 19:49:21 UTC

svn commit: r742672 [1/6] - in /lenya/trunk: org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/ org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/ org.apache.lenya.core.administration/src/main/java/org/apache/...

Author: andreas
Date: Mon Feb  9 18:49:13 2009
New Revision: 742672

URL: http://svn.apache.org/viewvc?rev=742672&view=rev
Log:
Simplify API, replace repository classes with publication classes for better SoC.

Added:
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/ResourceNotFoundException.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/UriHandler.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/UriHandlerImpl.java
Removed:
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentUtil.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/util/DocumentLanguagesHelper.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryUtil.java
Modified:
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java
    lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Login.java
    lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Logout.java
    lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/ac/usecases/AccessControl.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckinAction.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutAction.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.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/cocoon/components/modules/input/ResourceTypeModule.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/SiteSourceFactory.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Area.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.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/DocumentBuilder.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/DocumentFactoryBuilder.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentLocator.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentManager.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/PageEnvelopeFactory.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/Repository.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/publication/util/DocumentHelper.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/util/DocumentSet.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/util/DocumentVisitor.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/Node.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryItem.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/SessionImpl.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/site/AbstractLink.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/site/AbstractSiteManager.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/site/SiteManager.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/site/SiteUtil.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/site/topicmap/TopicMapSiteManager.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
    lenya/trunk/org.apache.lenya.core.impl/pom.xml
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/AreaImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryBuilderImpl.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/DocumentManagerImpl.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/PublicationFactory.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/PublicationManagerImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.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/test/java/org/apache/lenya/ac/impl/AbstractAccessControlTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/LenyaTestCase.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/metadata/MetaDataTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentBuilderTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentFactoryTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentManagerTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DublinCoreTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/PublicationTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/TestPageEnvelope.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/file/FilePublicationTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RevisionControllerTest.java
    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/cocoon/components/modules/input/ProxyModule.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/UuidToUrlModule.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/cocoon/transformation/IncomingProxyTransformer.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/cocoon/transformation/UrlToUuidTransformer.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/LinkConverter.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/LinkResolver.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/LinkResolverImpl.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/UrlToUuidRewriter.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/UuidToUrlRewriter.java
    lenya/trunk/org.apache.lenya.core.metadata/src/main/java/org/apache/lenya/modules/metadata/MetaDataTransformer.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/Clipboard.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/Create.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/Overview.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/Paste.java
    lenya/trunk/org.apache.lenya.core.sitemanagement/src/main/java/org/apache/lenya/cms/site/usecases/Restore.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.module.blog/src/main/java/org/apache/cocoon/generation/BlogGenerator.java
    lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogOverviewGenerator.java
    lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Delete.java
    lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/cms/site/usecases/CreateBlogEntry.java
    lenya/trunk/org.apache.lenya.module.collection/src/main/java/org/apache/lenya/modules/collection/CollectionWrapper.java
    lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Import.java
    lenya/trunk/org.apache.lenya.module.export/src/main/java/org/apache/lenya/cms/export/Importer.java
    lenya/trunk/org.apache.lenya.module.lenyadoc/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaDocSourceFactory.java
    lenya/trunk/org.apache.lenya.module.linkcheck/src/main/java/org/apache/lenya/cms/cocoon/generation/LinkStatusGenerator.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.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexSite.java
    lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexUpdaterImpl.java
    lenya/trunk/org.apache.lenya.module.menubar/src/main/java/org/apache/lenya/modules/menubar/MenuFilterTransformer.java
    lenya/trunk/org.apache.lenya.module.navigation/src/main/java/org/apache/lenya/modules/navigation/SiteFragmentGenerator.java
    lenya/trunk/org.apache.lenya.module.navigation/src/main/java/org/apache/lenya/modules/navigation/SiteMetaDataTransformer.java
    lenya/trunk/org.apache.lenya.module.notification/src/main/java/org/apache/lenya/inbox/InboxModule.java
    lenya/trunk/org.apache.lenya.module.simplesite/pom.xml
    lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStore.java
    lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStoreFactory.java
    lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/SimpleLink.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/main/java/org/apache/lenya/cms/site/simple/SimpleSiteNode.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/cocoon/transformation/IconUrlTransformer.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/tree/SiteTreeFactory.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/SiteTreeLink.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/SiteTreeNodeImpl.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/DelegatingLink.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/SiteTreeFactory.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.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/SiteTreeLink.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/TreeNodeImpl.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/site/tree2/TreeSiteManager.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/SourceNodeRCML.java
    lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNodeRevision.java
    lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceWrapper.java
    lenya/trunk/org.apache.lenya.module.usecasedocument/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/UsecaseDocumentModule.java
    lenya/trunk/org.apache.lenya.module.webdav/src/main/java/org/apache/lenya/cms/usecases/webdav/Mkcol.java
    lenya/trunk/org.apache.lenya.module.webdav/src/main/java/org/apache/lenya/cms/usecases/webdav/Put.java
    lenya/trunk/org.apache.lenya.optional.jcrsource/src/main/java/org/apache/lenya/cms/jcr/usecases/Import.java
    lenya/trunk/org.apache.lenya.parent/pom.xml

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java Mon Feb  9 18:49:13 2009
@@ -38,14 +38,11 @@
 import org.apache.lenya.ac.PolicyManager;
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.ac.impl.DefaultAccessController;
-import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentLocator;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 
 /**
  * A PolicyManager which is capable of mapping all URLs of a document to the appropriate canonical
@@ -55,7 +52,7 @@
         InheritingPolicyManager {
 
     private InheritingPolicyManager policyManager;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * Returns the URI which is used to obtain the policy for a webapp URL.
@@ -87,10 +84,9 @@
         if (pubId != null && area != null && info.getDocumentUrl().length() > 1) {
             try {
                 HttpServletRequest request = getRequest();
-                Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-                DocumentFactory map = DocumentUtil.createDocumentFactory(session);
-                Publication pub = map.getPublication(pubId);
-                DocumentLocator loc = pub.getDocumentBuilder().getLocator(map, webappUrl);
+                Session session = this.repository.getSession(request);
+                Publication pub = session.getPublication(pubId);
+                DocumentLocator loc = pub.getDocumentBuilder().getLocator(session, webappUrl);
                 url = "/" + pubId + "/" + area + loc.getPath();
             } catch (Exception e) {
                 throw new AccessControlException(e);
@@ -140,10 +136,8 @@
         getLogger().debug("Building publication");
 
         try {
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), getRequest());
-            DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
-            String id = new URLInformation(url).getPublicationId();
-            return factory.getPublication(id);
+            Session session = this.repository.getSession(getRequest());
+            return session.getUriHandler().getPublication(url);
         } catch (Exception e) {
             throw new AccessControlException(e);
         }
@@ -254,11 +248,8 @@
         return getPolicyManager().getGrantedRoles(accreditableManager, identity, getPolicyURL(url));
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Login.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Login.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Login.java (original)
+++ lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Login.java Mon Feb  9 18:49:13 2009
@@ -22,7 +22,6 @@
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.lenya.ac.Identity;
-import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.usecase.UsecaseException;
@@ -50,9 +49,8 @@
         try {
             URLInformation info = new URLInformation(getSourceURL());
             String pubId = info.getPublicationId();
-            DocumentFactory factory = getDocumentFactory();
-            if (factory.existsPublication(pubId)) {
-                Publication publication = factory.getPublication(pubId);
+            if (getSession().existsPublication(pubId)) {
+                Publication publication = getSession().getPublication(pubId);
                 setParameter(PUBLICATION, publication);
             }
             Identity identity = this.getSession().getIdentity();

Modified: lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Logout.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Logout.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Logout.java (original)
+++ lenya/trunk/org.apache.lenya.core.acusecases/src/main/java/org/apache/lenya/cms/ac/usecases/Logout.java Mon Feb  9 18:49:13 2009
@@ -25,7 +25,6 @@
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.lenya.ac.Identity;
-import org.apache.lenya.cms.repository.RepositoryUtil;
 
 /**
  * Usecase to log a user out.
@@ -33,7 +32,7 @@
  * @version $Id: Logout.java 407305 2006-05-17 16:21:49Z andreas $
  */
 public class Logout extends AccessControlUsecase {
-
+    
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#prepareView()
      */
@@ -60,7 +59,7 @@
         HttpSession session = request.getSession(false);
         if (session != null) {
             session.removeAttribute(Identity.class.getName());
-            RepositoryUtil.removeSession(request);
+            getRepository().removeSession(request);
             session.removeAttribute(Login.HISTORY_SESSION_ATTRIBUTE);
         }
     }

Modified: lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/ac/usecases/AccessControl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/ac/usecases/AccessControl.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/ac/usecases/AccessControl.java (original)
+++ lenya/trunk/org.apache.lenya.core.administration/src/main/java/org/apache/lenya/cms/ac/usecases/AccessControl.java Mon Feb  9 18:49:13 2009
@@ -26,7 +26,6 @@
 
 import org.apache.cocoon.ProcessingException;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.URLInformation;
 
@@ -90,9 +89,8 @@
             URLInformation info = new URLInformation(getSourceURL());
             setParameter(COMPLETE_AREA, info.getCompleteArea());
 
-            DocumentFactory map = getDocumentFactory();
-            if (map.isDocument(getSourceURL())) {
-                Document sourceDocument = map.getFromURL(getSourceURL());
+            if (getSession().getUriHandler().isDocument(getSourceURL())) {
+                Document sourceDocument = getSession().getUriHandler().getDocument(getSourceURL());
                 setParameter(DOCUMENT, sourceDocument);
             }
 

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java Mon Feb  9 18:49:13 2009
@@ -24,24 +24,21 @@
 import java.util.Map;
 
 import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.cocoon.acting.ServiceableAction;
+import org.apache.cocoon.acting.AbstractAction;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Redirector;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.SourceResolver;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.util.ServletHelper;
 
 /**
  * Action that checks if the current URL represents an existing document.
  */
-public class LanguageExistsAction extends ServiceableAction {
+public class LanguageExistsAction extends AbstractAction {
     
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * Check if the current URL represents an existing document.
@@ -53,11 +50,10 @@
             Parameters parameters) throws Exception {
 
         Request request = ObjectModelHelper.getRequest(objectModel);
-        Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-        DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
+        Session session = this.repository.getSession(request);
 
         String url = ServletHelper.getWebappURI(request);
-        if (factory.isDocument(url)) {
+        if (session.getUriHandler().isDocument(url)) {
             return Collections.unmodifiableMap(Collections.EMPTY_MAP);
         }
         else {
@@ -65,11 +61,12 @@
         }
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
+    public Repository getRepository() {
+        return repository;
     }
+
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckinAction.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckinAction.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckinAction.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckinAction.java Mon Feb  9 18:49:13 2009
@@ -29,12 +29,12 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.SourceResolver;
 import org.apache.lenya.ac.Identity;
+import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.repository.RepositoryException;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.util.ServletHelper;
 
 /**
@@ -42,7 +42,7 @@
  */
 public class ReservedCheckinAction extends RevisionControllerAction {
     
-    private RepositoryManager repositoryManager;
+    protected Repository repository;
     
     /**
      * Checkin document
@@ -58,21 +58,20 @@
         try {
             Request request = ObjectModelHelper.getRequest(objectModel);
             Identity identity = (Identity) request.getSession().getAttribute(Identity.class.getName());
-            Session session = getRepositoryManager().createSession(identity, true);
+            Session session = this.repository.startSession(identity, true);
             
-            DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
             String url = ServletHelper.getWebappURI(request);
-            if (factory.isDocument(url)) {
-                Node node = factory.getFromURL(url).getRepositoryNode();
-                if (node.isCheckedOutBySession(session)) {
-                    node.checkin();
+            if (session.getUriHandler().isDocument(url)) {
+                Document document = session.getUriHandler().getDocument(url);
+                if (document.isCheckedOutBySession(session)) {
+                    document.checkin();
                 }
             }
             else {
                 throw new RuntimeException("The URL [" + url + "] doesn't represent a document.");
             }
             
-        } catch (RepositoryException e) {
+        } catch (final Exception e) {
             getLogger().error("Could not check in node: ", e);
             Map actionMap = new HashMap();
             actionMap.put("exception", "genericException");
@@ -84,11 +83,8 @@
         return null;
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutAction.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutAction.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutAction.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutAction.java Mon Feb  9 18:49:13 2009
@@ -53,7 +53,7 @@
             assert node != null;
             assert username != null;
 
-            if (!node.isCheckedOutBySession(node.getSession())) {
+            if (!node.isCheckedOutBySession(node.getRepositorySession())) {
                 node.checkout();
             }
         } catch (RepositoryException e) {

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java Mon Feb  9 18:49:13 2009
@@ -32,16 +32,14 @@
 import org.apache.lenya.ac.Identity;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.rc.RCEnvironment;
 import org.apache.lenya.cms.repository.Node;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.util.ServletHelper;
 
 /**
@@ -55,7 +53,7 @@
     private String backupDirectory = null;
     private String username = null;
     private Node node = null;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * @see org.apache.cocoon.acting.Action#act(org.apache.cocoon.environment.Redirector,
@@ -73,19 +71,16 @@
             return null;
         }
 
-        org.apache.lenya.cms.repository.Session repoSession = RepositoryUtil.getSession(
-                getRepositoryManager(), request);
-        DocumentFactory factory = DocumentUtil.createDocumentFactory(repoSession);
+        Session repoSession = this.repository.getSession(request);
 
         PageEnvelope envelope = null;
         String id = new URLInformation(ServletHelper.getWebappURI(request)).getPublicationId();
-        Publication publication = factory.getPublication(id);
+        Publication publication = repoSession.getPublication(id);
 
         Document document = null;
 
         try {
-            envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(factory, objectModel,
-                    publication);
+            envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel, publication);
             document = envelope.getDocument();
         } catch (Exception e) {
             getLogger().error("Resolving page envelope failed: ", e);
@@ -117,28 +112,28 @@
         // cannot be get from
         // the page-envelope
 
-        String documentid = document.getPath();
-        int bx = documentid.lastIndexOf("-bxe");
+        String path = document.getPath();
+        int bx = path.lastIndexOf("-bxe");
 
         if (bx > 0) {
             String language = document.getLanguage();
 
-            int l = documentid.length();
+            int l = path.length();
             int bxLength = "-bxe".length();
-            int lang = documentid.lastIndexOf("_", bx);
+            int lang = path.lastIndexOf("_", bx);
             int langLength = bx - lang;
 
             if (bx > 0 && bx + bxLength <= l) {
-                documentid = documentid.substring(0, bx) + documentid.substring(bx + bxLength, l);
+                path = path.substring(0, bx) + path.substring(bx + bxLength, l);
 
                 if (lang > 0 && langLength + lang < l) {
-                    language = documentid.substring(lang + 1, lang + langLength);
-                    documentid = documentid.substring(0, lang)
-                            + documentid.substring(lang + langLength, l - bxLength);
+                    language = path.substring(lang + 1, lang + langLength);
+                    path = path.substring(0, lang)
+                            + path.substring(lang + langLength, l - bxLength);
                 }
             }
 
-            Document srcDoc = factory.get(publication, document.getArea(), documentid, language);
+            Document srcDoc = document.area().getSite().getNode(path).getLink(language).getDocument();
             this.node = srcDoc.getRepositoryNode();
 
         } else {
@@ -177,12 +172,4 @@
         return this.username;
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
-    }
-
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.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/AbstractPageEnvelopeModule.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java Mon Feb  9 18:49:13 2009
@@ -27,10 +27,10 @@
 import org.apache.cocoon.environment.Context;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
-import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.util.ServletHelper;
 
@@ -72,14 +72,13 @@
             String servletContextPath = context.getRealPath("");
 
             try {
-                DocumentFactory factory = getDocumentFactory();
+                Session session = getSession();
                 Publication pub = null;
                 String pubId = new URLInformation(webappUrl).getPublicationId();
-                if (pubId != null && factory.existsPublication(pubId)) {
-                    pub = factory.getPublication(pubId);
+                if (pubId != null && session.existsPublication(pubId)) {
+                    pub = session.getPublication(pubId);
                 }
                 envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(
-                        factory,
                         contextPath,
                         webappUrl,
                         new File(servletContextPath),

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.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/DocumentInfoModule.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java Mon Feb  9 18:49:13 2009
@@ -31,12 +31,9 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 
 /**
  * Input module to get document information.
@@ -91,7 +88,7 @@
 
     protected SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
     
-    private RepositoryManager repositoryManager;
+    private Repository repository;
     
     /**
      * Parse the parameters and return a document.
@@ -111,10 +108,9 @@
         Request request = ObjectModelHelper.getRequest(objectModel);
 
         try {
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-            DocumentFactory docFactory = DocumentUtil.createDocumentFactory(session);
-            Publication pub = docFactory.getPublication(publicationId);
-            document = docFactory.get(pub, area, uuid, language, revision);
+            Session session = this.repository.getSession(request);
+            Publication pub = session.getPublication(publicationId);
+            document = pub.getArea(area).getDocument(uuid, language, revision);
         } catch (Exception e) {
             throw new ConfigurationException("Error getting document [" + publicationId + ":"
                     + area + ":" + uuid + ":" + language + "]: " + e.getMessage(), e);
@@ -201,11 +197,11 @@
 
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
+    public Repository getRepository() {
+        return repository;
     }
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.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/FallbackModule.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java Mon Feb  9 18:49:13 2009
@@ -27,20 +27,15 @@
 import org.apache.cocoon.components.modules.input.AbstractInputModule;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.commons.lang.Validate;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.store.impl.MRUMemoryStore;
 import org.apache.lenya.cms.cocoon.source.FallbackSourceFactory;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentFactoryBuilder;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.util.ServletHelper;
-import org.springframework.web.context.WebApplicationContext;
 
 /**
  * <p>
@@ -52,17 +47,12 @@
 
     private String protocol;
     protected MRUMemoryStore store;
-    private RepositoryManager repositoryManager;
-    private DocumentFactoryBuilder documentFactoryBuilder;
+    private Repository repository;
     private SourceResolver resolver;
     private static Boolean useCache = null;
 
-    public void setRepositoryManager(RepositoryManager manager) {
-        this.repositoryManager = manager;
-    }
-
-    public void setDocumentFactoryBuilder(DocumentFactoryBuilder builder) {
-        this.documentFactoryBuilder = builder;
+    public void setRepository(Repository repo) {
+        this.repository = repo;
     }
 
     protected boolean useCache() {
@@ -84,10 +74,9 @@
         URLInformation info = new URLInformation(webappUri);
         String pubId = null;
         try {
-            Session session = RepositoryUtil.getSession(this.repositoryManager, request);
-            DocumentFactory factory = this.documentFactoryBuilder.createDocumentFactory(session);
+            Session session = this.repository.getSession(request);
             String pubIdCandidate = info.getPublicationId();
-            if (pubIdCandidate != null && factory.existsPublication(pubIdCandidate)) {
+            if (pubIdCandidate != null && session.existsPublication(pubIdCandidate)) {
                 pubId = pubIdCandidate;
             }
         } catch (Exception e) {

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.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/OperationModule.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java Mon Feb  9 18:49:13 2009
@@ -22,12 +22,8 @@
 import org.apache.cocoon.components.modules.input.AbstractInputModule;
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentFactoryBuilder;
-import org.apache.lenya.cms.repository.RepositoryException;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 
 /**
  * Super class for operation-based input modules.
@@ -36,40 +32,25 @@
  */
 public class OperationModule extends AbstractInputModule {
 
-    private RepositoryManager repositoryManager;
-    private DocumentFactory documentFactory;
-    private DocumentFactoryBuilder documentFactoryBuilder;
-
-    protected DocumentFactory getDocumentFactory() {
-        ProcessInfoProvider processInfo = (ProcessInfoProvider) WebAppContextUtils
-                .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
-        if (this.documentFactory == null) {
+    private Repository repository;
+    private org.apache.lenya.cms.publication.Session session;
+
+    protected Session getSession() {
+        if (this.session == null) {
+            ProcessInfoProvider processInfo = (ProcessInfoProvider) WebAppContextUtils
+                    .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
             HttpServletRequest request = processInfo.getRequest();
-            try {
-                Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-                this.documentFactory = getDocumentFactoryBuilder().createDocumentFactory(
-                        session);
-            } catch (RepositoryException e) {
-                throw new RuntimeException(e);
-            }
+            this.session = this.getRepository().getSession(request);
         }
-        return this.documentFactory;
-    }
-
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+        return this.session;
     }
 
-    public DocumentFactoryBuilder getDocumentFactoryBuilder() {
-        return documentFactoryBuilder;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
-    public void setDocumentFactoryBuilder(DocumentFactoryBuilder documentFactoryBuilder) {
-        this.documentFactoryBuilder = documentFactoryBuilder;
+    public Repository getRepository() {
+        return repository;
     }
 
 }

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=742672&r1=742671&r2=742672&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 Mon Feb  9 18:49:13 2009
@@ -160,7 +160,7 @@
             String url = ServletHelper.getWebappURI(request);
             DocumentLocator loc;
             try {
-                loc = pub.getDocumentBuilder().getLocator(pub.getFactory(), url);
+                loc = pub.getDocumentBuilder().getLocator(pub.getSession(), url);
             } catch (DocumentBuildException e) {
                 throw new SiteException(e);
             }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/ResourceTypeModule.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/ResourceTypeModule.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/ResourceTypeModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/ResourceTypeModule.java Mon Feb  9 18:49:13 2009
@@ -29,14 +29,11 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.commons.lang.StringUtils;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
 import org.apache.lenya.cms.publication.ResourceType;
 import org.apache.lenya.cms.publication.ResourceTypeResolver;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.util.ServletHelper;
 
 /**
@@ -69,7 +66,7 @@
     protected static final String EXPIRES = "expires";
     protected static final String SUPPORTS_FORMAT = "supportsFormat";
 
-    private RepositoryManager repositoryManager;
+    private Repository repository;
     private ResourceTypeResolver resourceTypeResolver;
 
     public Object getAttribute(String name, Configuration modeConf, Map objectModel)
@@ -78,7 +75,7 @@
 
         try {
             Request request = ObjectModelHelper.getRequest(objectModel);
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
+            Session session = this.repository.getSession(request);
 
             ResourceType resourceType;
             Publication pub = null;
@@ -86,9 +83,8 @@
 
             String[] steps = name.split(":");
             if (steps.length == 1) {
-                DocumentFactory docFactory = DocumentUtil.createDocumentFactory(session);
                 String webappUrl = ServletHelper.getWebappURI(request);
-                Document document = docFactory.getFromURL(webappUrl);
+                Document document = session.getUriHandler().getDocument(webappUrl);
                 pub = document.getPublication();
 
                 attribute = name;
@@ -155,14 +151,6 @@
         }
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
-    }
-
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
     public void setResourceTypeResolver(ResourceTypeResolver resourceTypeResolver) {
         this.resourceTypeResolver = resourceTypeResolver;
     }
@@ -171,4 +159,8 @@
         return resourceTypeResolver;
     }
 
+    public void setRepository(Repository repository) {
+        this.repository = repository;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java Mon Feb  9 18:49:13 2009
@@ -30,19 +30,17 @@
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentFactoryBuilder;
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.publication.PageEnvelopeException;
 import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.publication.util.DocumentHelper;
 import org.apache.lenya.cms.rc.FileReservedCheckInException;
 import org.apache.lenya.cms.repository.Node;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.util.ServletHelper;
 import org.apache.lenya.workflow.WorkflowException;
@@ -53,15 +51,11 @@
  */
 public class FlowHelperImpl extends AbstractLogEnabled implements FlowHelper {
     
-    private RepositoryManager repositoryManager;
+    private Repository repository;
     private DocumentFactoryBuilder documentFactoryBuilder;
 
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 
     public DocumentFactoryBuilder getDocumentFactoryBuilder() {
@@ -78,12 +72,11 @@
     public PageEnvelope getPageEnvelope(FOM_Cocoon cocoon) throws PageEnvelopeException {
         HttpServletRequest request = getRequest(cocoon);
         try {
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-            DocumentFactory map = getDocumentFactoryBuilder().createDocumentFactory(session);
+            Session session = this.repository.getSession(request);
             PageEnvelopeFactory factory = PageEnvelopeFactory.getInstance();
             URLInformation info = new URLInformation(ServletHelper.getWebappURI(request));
-            Publication publication = map.getPublication(info.getPublicationId());
-            return factory.getPageEnvelope(map, cocoon.getObjectModel(), publication);
+            Publication publication = session.getPublication(info.getPublicationId());
+            return factory.getPageEnvelope(cocoon.getObjectModel(), publication);
         } catch (Exception e) {
             throw new PageEnvelopeException(e);
         }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java Mon Feb  9 18:49:13 2009
@@ -30,12 +30,10 @@
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.store.impl.MRUMemoryStore;
-import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.publication.templating.AllExistingSourceResolver;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.util.ServletHelper;
 
 /**
@@ -111,13 +109,12 @@
                 pubId = info.getPublicationId();
             }
 
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-            DocumentFactory factory = getDocumentFactoryBuilder().createDocumentFactory(session);
+            Session session = getRepository().getSession(request);
 
             String[] uris;
 
-            if (factory.existsPublication(pubId)) {
-                Publication pub = factory.getPublication(pubId);
+            if (session.existsPublication(pubId)) {
+                Publication pub = session.getPublication(pubId);
                 AllExistingSourceResolver resolver = new AllExistingSourceResolver();
                 getTemplateManager().visit(pub, path, resolver);
                 uris = resolver.getUris();

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java Mon Feb  9 18:49:13 2009
@@ -34,16 +34,13 @@
 import org.apache.excalibur.source.URIAbsolutizer;
 import org.apache.excalibur.store.impl.MRUMemoryStore;
 import org.apache.lenya.cms.module.ModuleManager;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentFactoryBuilder;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.publication.templating.ExistingSourceResolver;
 import org.apache.lenya.cms.publication.templating.PublicationTemplateManager;
 import org.apache.lenya.cms.publication.templating.VisitingSourceResolver;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.util.ServletHelper;
 
 /**
@@ -63,8 +60,7 @@
 
     protected MRUMemoryStore store;
     private SourceResolver resolver;
-    private RepositoryManager repositoryManager;
-    private DocumentFactoryBuilder documentFactoryBuilder;
+    private Repository repository;
     private PublicationTemplateManager templateManager;
     private ModuleManager moduleManager;
 
@@ -93,22 +89,6 @@
         return this.resolver;
     }
 
-    public void setRepositoryManager(RepositoryManager repoMgr) {
-        this.repositoryManager = repoMgr;
-    }
-
-    protected RepositoryManager getRepositoryManager() {
-        return this.repositoryManager;
-    }
-
-    public void setDocumentFactoryBuilder(DocumentFactoryBuilder builder) {
-        this.documentFactoryBuilder = builder;
-    }
-
-    protected DocumentFactoryBuilder getDocumentFactoryBuilder() {
-        return this.documentFactoryBuilder;
-    }
-
     public void setTemplateManager(PublicationTemplateManager mgr) {
         this.templateManager = mgr;
     }
@@ -181,10 +161,9 @@
         URLInformation info = new URLInformation(webappUri);
         String pubId = null;
         try {
-            Session session = RepositoryUtil.getSession(this.repositoryManager, request);
-            DocumentFactory factory = this.documentFactoryBuilder.createDocumentFactory(session);
+            Session session = this.repository.getSession(request);
             String pubIdCandidate = info.getPublicationId();
-            if (pubIdCandidate != null && factory.existsPublication(pubIdCandidate)) {
+            if (pubIdCandidate != null && session.existsPublication(pubIdCandidate)) {
                 pubId = pubIdCandidate;
             }
         } catch (Exception e) {
@@ -215,10 +194,9 @@
                 pubId = info.getPublicationId();
             }
 
-            Session session = RepositoryUtil.getSession(this.repositoryManager, request);
-            DocumentFactory factory = this.documentFactoryBuilder.createDocumentFactory(session);
-            if (factory.existsPublication(pubId)) {
-                Publication pub = factory.getPublication(pubId);
+            Session session = this.repository.getSession(request);
+            if (session.existsPublication(pubId)) {
+                Publication pub = session.getPublication(pubId);
                 VisitingSourceResolver resolver = getSourceVisitor();
                 this.templateManager.visit(pub, path, resolver);
                 source = resolver.getSource();
@@ -275,4 +253,12 @@
         return SourceUtil.absolutize(baseURI, location, true);
     }
 
+    public void setRepository(Repository repository) {
+        this.repository = repository;
+    }
+
+    public Repository getRepository() {
+        return repository;
+    }
+
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java Mon Feb  9 18:49:13 2009
@@ -34,11 +34,10 @@
 import org.apache.excalibur.source.SourceException;
 import org.apache.excalibur.source.SourceFactory;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.repository.NodeFactory;
 import org.apache.lenya.cms.repository.RepositoryException;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.util.Query;
 
 /**
@@ -58,7 +57,7 @@
             + Publication.PUBLICATION_PREFIX_URI;
     
     private NodeFactory nodeFactory;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * @see org.apache.excalibur.source.SourceFactory#getSource(java.lang.String, java.util.Map)
@@ -95,7 +94,7 @@
         .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
         if (sessionName == null) {
             HttpServletRequest request = process.getRequest();
-            session = RepositoryUtil.getSession(getRepositoryManager(), request);
+            session = this.repository.getSession(request);
         } else if (sessionName.equals("usecase")) {
             session = getUsecaseSession(process.getObjectModel());
         } else {
@@ -133,11 +132,7 @@
         return nodeFactory;
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
-    }
-
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
+    public void setRepository(Repository repository) {
+        this.repository = repository;
     }
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/RepositorySource.java Mon Feb  9 18:49:13 2009
@@ -42,15 +42,13 @@
 import org.apache.excalibur.source.SourceValidity;
 import org.apache.excalibur.source.impl.AbstractSource;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.repository.ContentHolder;
 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.Session;
 import org.apache.lenya.util.Query;
 import org.apache.lenya.util.ServletHelper;
 
@@ -124,9 +122,8 @@
                     HttpServletRequest request = process.getRequest();
                     String webappUrl = ServletHelper.getWebappURI(request);
                     String pubId = new URLInformation(webappUrl).getPublicationId();
-                    DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
-                    Publication pub = factory.getPublication(pubId);
-                    Document currentDoc = pub.getFactory().getFromURL(webappUrl);
+                    Publication pub = this.session.getPublication(pubId);
+                    Document currentDoc = pub.getSession().getUriHandler().getDocument(webappUrl);
                     if (currentDoc.getSourceURI().equals(sourceUri)) {
                         revisionNumber = Integer.valueOf(revisionString).intValue();
                     }
@@ -135,10 +132,11 @@
                 sourceUri = uri;
             }
 
+            org.apache.lenya.cms.repository.Session repoSession = (org.apache.lenya.cms.repository.Session) session;
             if (revisionNumber == -1) {
-                this.content = (ContentHolder) session.getRepositoryItem(nodeFactory, sourceUri);
+                this.content = (ContentHolder) repoSession.getRepositoryItem(nodeFactory, sourceUri);
             } else {
-                Node node = (Node) session.getRepositoryItem(nodeFactory, sourceUri);
+                Node node = (Node) repoSession.getRepositoryItem(nodeFactory, sourceUri);
                 this.content = node.getHistory().getRevision(revisionNumber);
             }
 

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/SiteSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/SiteSourceFactory.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/SiteSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/SiteSourceFactory.java Mon Feb  9 18:49:13 2009
@@ -33,13 +33,9 @@
 import org.apache.excalibur.source.SourceNotFoundException;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentUtil;
-import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
 import org.apache.lenya.cms.publication.URLInformation;
-import org.apache.lenya.cms.repository.RepositoryManager;
-import org.apache.lenya.cms.repository.RepositoryUtil;
-import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.cms.site.SiteStructure;
 import org.apache.lenya.util.ServletHelper;
 
@@ -68,7 +64,7 @@
 public class SiteSourceFactory extends AbstractLogEnabled implements SourceFactory {
 
     private SourceResolver sourceResolver;
-    private RepositoryManager repositoryManager;
+    private Repository repository;
 
     /**
      * @see org.apache.excalibur.source.SourceFactory#getSource(java.lang.String, java.util.Map)
@@ -108,10 +104,8 @@
                         + "] must start with at least one slash.");
             }
 
-            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
-            DocumentFactory factory = DocumentUtil.createDocumentFactory(session);
-            Publication pub = factory.getPublication(pubId);
-            SiteStructure site = pub.getArea(areaName).getSite();
+            Session session = this.repository.getSession(request);
+            SiteStructure site = session.getPublication(pubId).getArea(areaName).getSite();
 
             String[] steps = relativePath.substring(1).split("/");
 
@@ -145,14 +139,6 @@
         this.sourceResolver.release(source);
     }
 
-    public void setRepositoryManager(RepositoryManager repositoryManager) {
-        this.repositoryManager = repositoryManager;
-    }
-
-    public RepositoryManager getRepositoryManager() {
-        return repositoryManager;
-    }
-
     public SourceResolver getSourceResolver() {
         return sourceResolver;
     }
@@ -161,4 +147,8 @@
         this.sourceResolver = sourceResolver;
     }
 
+    public void setRepository(Repository repository) {
+        this.repository = repository;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java Mon Feb  9 18:49:13 2009
@@ -17,12 +17,9 @@
  */
 package org.apache.lenya.cms.observation;
 
-import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.commons.logging.Log;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
-import org.apache.lenya.cms.publication.DocumentFactory;
-import org.apache.lenya.cms.publication.DocumentFactoryBuilder;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.repository.Session;
@@ -53,7 +50,7 @@
     public static final RepositoryEvent createEvent(Document doc, Log logger, Object descriptor) {
         try {
             Node node = doc.getRepositoryNode();
-            RepositoryEvent event = new DocumentEvent(node.getSession(), doc.getPublication()
+            RepositoryEvent event = new DocumentEvent(node.getRepositorySession(), doc.getPublication()
                     .getId(), doc.getArea(), doc.getUUID(), doc.getLanguage(), doc
                     .getResourceType(), descriptor);
             event.setNodeUri(node.getSourceURI());
@@ -85,7 +82,7 @@
         if (doc != null) {
             event = createEvent(doc, logger, descriptor);
         } else {
-            event = new RepositoryEvent(node.getSession(), descriptor);
+            event = new RepositoryEvent(node.getRepositorySession(), descriptor);
             event.setNodeUri(node.getSourceURI());
         }
         return event;
@@ -119,17 +116,14 @@
 
         try {
 
-            DocumentFactoryBuilder builder = (DocumentFactoryBuilder) WebAppContextUtils
-                    .getCurrentWebApplicationContext().getBean(
-                            DocumentFactoryBuilder.class.getName());
-            DocumentFactory factory = builder.createDocumentFactory(node.getSession());
-            Publication pub = factory.getPublication(pubId);
+            org.apache.lenya.cms.publication.Session session = (org.apache.lenya.cms.publication.Session) node.getRepositorySession();
+            Publication pub = session.getPublication(pubId);
             String docPath = path.substring((pubId + "/content/" + area).length());
 
             String uuid = docPath.substring(1, docPath.length() - "/en".length());
             String language = docPath.substring(docPath.length() - "en".length());
 
-            doc = factory.get(pub, area, uuid, language);
+            doc = pub.getArea(area).getDocument(uuid, language);
 
             if (doc == null) {
                 // this happens if the node was not a document node

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Area.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Area.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Area.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Area.java Mon Feb  9 18:49:13 2009
@@ -43,9 +43,9 @@
      * @param uuid The UUID.
      * @param language The language.
      * @return A document.
-     * @throws PublicationException if the document is not contained.
+     * @throws ResourceNotFoundException if the document is not contained.
      */
-    Document getDocument(String uuid, String language) throws PublicationException;
+    Document getDocument(String uuid, String language) throws ResourceNotFoundException;
     
     /**
      * Checks if a document is contained.
@@ -59,5 +59,14 @@
      * @return All documents in this area.
      */
     Document[] getDocuments();
+
+    /**
+     * @param uuid The UUID.
+     * @param language The language.
+     * @param revision The revision.
+     * @return A document.
+     * @throws ResourceNotFoundException if the document is not contained.
+     */
+    Document getDocument(String uuid, String language, int revision) throws ResourceNotFoundException;
     
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java Mon Feb  9 18:49:13 2009
@@ -97,15 +97,11 @@
         return suffix;
     }
 
-    /**
-     * @see org.apache.lenya.cms.publication.DocumentBuilder#isDocument(DocumentFactory,
-     *      String)
-     */
-    public boolean isDocument(DocumentFactory factory, String url) throws DocumentBuildException {
+    public boolean isDocument(Session session, String url) throws DocumentBuildException {
         try {
-            DocumentLocator locator = getLocatorWithoutCheck(factory, url);
+            DocumentLocator locator = getLocatorWithoutCheck(session, url);
             if (locator != null) {
-                Publication pub = factory.getPublication(locator.getPublicationId());
+                Publication pub = session.getPublication(locator.getPublicationId());
                 String path = locator.getPath();
                 Area area = pub.getArea(locator.getArea());
                 if (area.getSite().contains(path)) {
@@ -124,41 +120,35 @@
 
     /**
      * Builds the canonical document URL.
-     * @param factory The document factory.
+     * @param session The document factory.
      * @param locator The document locator.
      * @return A string.
      */
-    protected String buildCanonicalDocumentUrl(DocumentFactory factory, DocumentLocator locator) {
+    protected String buildCanonicalDocumentUrl(Session session, DocumentLocator locator) {
 
         String languageSuffix = "";
         String language = locator.getLanguage();
 
-        Publication pub;
-        try {
-            pub = factory.getPublication(locator.getPublicationId());
-        } catch (PublicationException e) {
-            throw new RuntimeException(e);
-        }
+        Publication pub = session.getPublication(locator.getPublicationId());
 
         if (!language.equals(pub.getDefaultLanguage())) {
             languageSuffix = "_" + language;
         }
 
-        String url = locator.getPath() + languageSuffix + ".html";
-        return url;
+        return locator.getPath() + languageSuffix + ".html";
     }
 
-    public String buildCanonicalUrl(DocumentFactory factory, DocumentLocator doc) {
+    public String buildCanonicalUrl(Session session, DocumentLocator doc) {
 
-        String documentUrl = buildCanonicalDocumentUrl(factory, doc);
+        String documentUrl = buildCanonicalDocumentUrl(session, doc);
         String url = "/" + doc.getPublicationId() + "/" + doc.getArea() + documentUrl;
         return url;
     }
 
-    public DocumentLocator getLocator(DocumentFactory factory, String webappUrl)
+    public DocumentLocator getLocator(Session session, String webappUrl)
             throws DocumentBuildException {
 
-        DocumentLocator locator = getLocatorWithoutCheck(factory, webappUrl);
+        DocumentLocator locator = getLocatorWithoutCheck(session, webappUrl);
         if (locator == null) {
             throw new DocumentBuildException("The webapp URL [" + webappUrl
                     + "] does not refer to a document!");
@@ -169,13 +159,13 @@
     /**
      * Creates a document locator for a webapp URL without checking if the
      * webapp URL refers to a locator first.
-     * @param factory The document factory.
+     * @param session The document factory.
      * @param webappUrl The webapp URL.
      * @return A document locator or <code>null</code> if the URL doesn't
      *         refer to a locator.
      * @throws DocumentBuildException if an error occurs.
      */
-    protected DocumentLocator getLocatorWithoutCheck(DocumentFactory factory, String webappUrl)
+    protected DocumentLocator getLocatorWithoutCheck(Session session, String webappUrl)
             throws DocumentBuildException {
 
         if (!webappUrl.startsWith("/")) {
@@ -187,15 +177,8 @@
 
         URLInformation info = new URLInformation(webappUrl);
 
-        Publication publication;
-        try {
-            publication = factory.getPublication(info.getPublicationId());
-        } catch (PublicationException e) {
-            throw new DocumentBuildException(e);
-        }
-
+        Publication publication = session.getPublication(info.getPublicationId());
         String documentURL = info.getDocumentUrl();
-
         documentURL = removeExtensions(documentURL);
 
         String language = getLanguage(documentURL);

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=742672&r1=742671&r2=742672&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 Mon Feb  9 18:49:13 2009
@@ -26,6 +26,7 @@
 import org.apache.lenya.cms.metadata.MetaDataOwner;
 import org.apache.lenya.cms.publication.util.DocumentVisitor;
 import org.apache.lenya.cms.repository.Node;
+import org.apache.lenya.cms.repository.RepositoryException;
 import org.apache.lenya.cms.repository.RepositoryItem;
 import org.apache.lenya.cms.site.Link;
 
@@ -100,10 +101,8 @@
      * document with the same document-uuid is also available in. 
      * 
      * @return An array of strings denoting the languages.
-     * 
-     * @throws DocumentException if an error occurs
      */
-    String[] getLanguages() throws DocumentException;
+    String[] getLanguages();
 
     /**
      * Returns the date of the last modification of this document.
@@ -145,7 +144,7 @@
      * 
      * @throws DocumentException if an error occurs
      */
-    boolean exists() throws DocumentException;
+    boolean exists();
     
     /**
      * Check if a document exists with the given document-uuid and the given area
@@ -155,13 +154,7 @@
      * 
      * @throws DocumentException if an error occurs
      */
-    boolean existsInAnyLanguage() throws DocumentException;
-    
-    /**
-     * Returns the identity map this document belongs to.
-     * @return A document identity map.
-     */
-    DocumentFactory getFactory();
+    boolean existsInAnyLanguage();
     
     /**
      * Returns the URI to resolve the document's source.
@@ -179,9 +172,9 @@
     /**
      * Accepts a document visitor.
      * @param visitor The visitor.
-     * @throws PublicationException if an error occurs.
+     * @throws Exception if an error occurs.
      */
-    void accept(DocumentVisitor visitor) throws PublicationException;
+    void accept(DocumentVisitor visitor) throws Exception;
 
     /**
      * Deletes the document.
@@ -196,7 +189,7 @@
 
     /**
      * @return The resource type of this document (formerly known as doctype)
-     * @throws DocumentException if an error occurs.
+     * @throws DocumentException if the resource type has not been set.
      */
     ResourceType getResourceType() throws DocumentException;
     
@@ -220,19 +213,18 @@
      * @param mimeType The mime type.
      * @throws DocumentException if an error occurs.
      */
-    void setMimeType(String mimeType) throws DocumentException;
+    void setMimeType(String mimeType);
     
     /**
      * @return The mime type of this document.
-     * @throws DocumentException if an error occurs.
+     * @throws DocumentException if the mime type has not been set.
      */
     String getMimeType() throws DocumentException;
     
     /**
      * @return The content length of the document.
-     * @throws DocumentException if an error occurs.
      */
-    long getContentLength() throws DocumentException;
+    long getContentLength();
     
     /**
      * @return The document identifier for this document.
@@ -257,9 +249,9 @@
      * Returns a certain translation (language version) of this document.
      * @param language The language.
      * @return A document.
-     * @throws DocumentException if the language version doesn't exist.
+     * @throws ResourceNotFoundException if the language version doesn't exist.
      */
-    Document getTranslation(String language) throws DocumentException;
+    Document getTranslation(String language) throws ResourceNotFoundException;
     
     /**
      * Checks if this document exists in a certain area.
@@ -272,9 +264,9 @@
      * Returns the document in a certain area.
      * @param area The area.
      * @return A document.
-     * @throws DocumentException if the area version doesn't exist.
+     * @throws ResourceNotFoundException if the area version doesn't exist.
      */
-    Document getAreaVersion(String area) throws DocumentException;
+    Document getAreaVersion(String area) throws ResourceNotFoundException;
 
     /**
      * Checks if a translation of this document exists in a certain area.
@@ -289,9 +281,9 @@
      * @param area The area.
      * @param language The language.
      * @return A document.
-     * @throws DocumentException if the area version doesn't exist.
+     * @throws ResourceNotFoundException if the area version doesn't exist.
      */
-    Document getVersion(String area, String language) throws DocumentException;
+    Document getVersion(String area, String language) throws ResourceNotFoundException;
     
     /**
      * @return A document locator.
@@ -323,4 +315,10 @@
      * @return The revision number of this document.
      */
     int getRevisionNumber();
+
+    boolean isCheckedOutBySession(Session session) throws RepositoryException;
+
+    void checkin() throws RepositoryException;
+
+    Session getSession();
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentBuilder.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentBuilder.java?rev=742672&r1=742671&r2=742672&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentBuilder.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentBuilder.java Mon Feb  9 18:49:13 2009
@@ -37,7 +37,7 @@
      * @return A document identifier.
      * @throws DocumentBuildException if an error occurs.
      */
-    DocumentLocator getLocator(DocumentFactory factory, String webappUrl) throws DocumentBuildException;
+    DocumentLocator getLocator(Session session, String webappUrl) throws DocumentBuildException;
 
     /**
      * Checks if an URL corresponds to a CMS document.
@@ -46,7 +46,7 @@
      * @return A boolean value.
      * @throws DocumentBuildException when something went wrong.
      */
-    boolean isDocument(DocumentFactory factory, String url) throws DocumentBuildException;
+    boolean isDocument(Session session, String url) throws DocumentBuildException;
 
     /**
      * Builds an URL corresponding to a CMS document.
@@ -54,7 +54,7 @@
      * @param locator The locator.
      * @return a String The corresponding URL.
      */
-    String buildCanonicalUrl(DocumentFactory factory, DocumentLocator locator);
+    String buildCanonicalUrl(Session session, DocumentLocator locator);
 
     /**
      * Checks if a document name is valid.



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