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/...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.