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 2006/08/11 20:43:02 UTC

svn commit: r430854 [2/3] - in /lenya/trunk/src: impl/java/org/apache/lenya/cms/publication/ impl/test/org/apache/lenya/ac/impl/ impl/test/org/apache/lenya/cms/metadata/ impl/test/org/apache/lenya/cms/publication/ impl/test/org/apache/lenya/cms/publica...

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentBuilder.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentBuilder.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentBuilder.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentBuilder.java Fri Aug 11 11:42:59 2006
@@ -36,7 +36,7 @@
      * @return A document identifier.
      * @throws DocumentBuildException if an error occurs.
      */
-    DocumentLocator getLocator(String webappUrl) throws DocumentBuildException;
+    DocumentLocator getLocator(DocumentFactory factory, String webappUrl) throws DocumentBuildException;
 
     /**
      * Checks if an URL corresponds to a CMS document.
@@ -48,10 +48,11 @@
 
     /**
      * Builds an URL corresponding to a CMS document.
+     * @param factory The document factory.
      * @param locator The locator.
      * @return a String The corresponding URL.
      */
-    String buildCanonicalUrl(DocumentLocator locator);
+    String buildCanonicalUrl(DocumentFactory factory, DocumentLocator locator);
 
     /**
      * Checks if a document name is valid.

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java Fri Aug 11 11:42:59 2006
@@ -104,5 +104,17 @@
      * @throws DocumentBuildException if an error occurs.
      */
     Document get(DocumentLocator locator) throws DocumentBuildException;
+    
+    /**
+     * @param id The publication ID.
+     * @return A publication.
+     * @throws PublicationException if the publication does not exist.
+     */
+    Publication getPublication(String id) throws PublicationException;
+    
+    /**
+     * @return All publications.
+     */
+    Publication[] getPublications();
 
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java Fri Aug 11 11:42:59 2006
@@ -30,17 +30,17 @@
 public class DocumentUtil {
 
     /**
-     * Creates a document identity map.
+     * Creates a document factory.
      * @param manager The service manager.
      * @param session The session.
-     * @return if an error occurs.
+     * @return a document factory.
      */
     public static DocumentFactory createDocumentFactory(ServiceManager manager, Session session) {
-        DocumentFactory map;
+        DocumentFactory factory;
         DocumentManager docManager = null;
         try {
             docManager = (DocumentManager) manager.lookup(DocumentManager.ROLE);
-            map = docManager.createDocumentIdentityMap(session);
+            factory = docManager.createDocumentIdentityMap(session);
         } catch (ServiceException e) {
             throw new RuntimeException(e);
         } finally {
@@ -48,7 +48,24 @@
                 manager.release(docManager);
             }
         }
-        return map;
+        return factory;
+    }
+    
+    /**
+     * Returns a document factory for the session which is attached to the request.
+     * If no session exists, it is created.
+     * @param manager The service manager.
+     * @param request The request.
+     * @return A document factory.
+     */
+    public static DocumentFactory getDocumentFactory(ServiceManager manager, Request request) {
+        Session session;
+        try {
+            session = RepositoryUtil.getSession(manager, request);
+        } catch (RepositoryException e) {
+            throw new RuntimeException(e);
+        }
+        return createDocumentFactory(manager, session);
     }
 
     /**

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java Fri Aug 11 11:42:59 2006
@@ -216,5 +216,22 @@
      * @return The resource types that are supported by this publication.
      */
     String[] getResourceTypeNames();
+    
+    /**
+     * @param name The name.
+     * @return An area object.
+     * @throws PublicationException if an error occurs.
+     */
+    Area getArea(String name) throws PublicationException;
+    
+    /**
+     * @return The names of all available areas.
+     */
+    String[] getAreaNames();
+    
+    /**
+     * @return The document factory.
+     */
+    public DocumentFactory getFactory();
 
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationManager.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationManager.java Fri Aug 11 11:42:59 2006
@@ -16,7 +16,6 @@
  */
 package org.apache.lenya.cms.publication;
 
-
 /**
  * Publication manager.
  */
@@ -28,16 +27,18 @@
     String ROLE = PublicationManager.class.getName();
     
     /**
+     * @param factory The factory.
      * @return All publications.
      * @throws PublicationException if an error occurrs.
      */
-    Publication[] getPublications() throws PublicationException;
+    Publication[] getPublications(DocumentFactory factory) throws PublicationException;
     
     /**
+     * @param factory The factory.
      * @param id The publication ID.
      * @return A publication.
      * @throws PublicationException if an error occurs.
      */
-    Publication getPublication(String id) throws PublicationException;
+    Publication getPublication(DocumentFactory factory, String id) throws PublicationException;
     
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationUtil.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationUtil.java Fri Aug 11 11:42:59 2006
@@ -23,6 +23,9 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
+import org.apache.lenya.cms.repository.RepositoryException;
+import org.apache.lenya.cms.repository.RepositoryUtil;
+import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.util.ServletHelper;
 
 /**
@@ -44,28 +47,6 @@
     }
 
     /**
-     * Create a new publication with the given publication-id.
-     * @param manager The service manager.
-     * @param id the publication id
-     * @return a <code>Publication</code>
-     * @throws PublicationException if there was a problem creating the publication.
-     */
-    public static Publication getPublication(ServiceManager manager, String id)
-            throws PublicationException {
-        PublicationManager pubManager = null;
-        try {
-            pubManager = (PublicationManager) manager.lookup(PublicationManager.ROLE);
-            return pubManager.getPublication(id);
-        } catch (ServiceException e) {
-            throw new PublicationException(e);
-        } finally {
-            if (pubManager != null) {
-                manager.release(pubManager);
-            }
-        }
-    }
-
-    /**
      * Creates a new publication based on a request.
      * @param manager The service manager.
      * @param request A request.
@@ -74,35 +55,45 @@
      */
     public static Publication getPublication(ServiceManager manager, Request request)
             throws PublicationException {
+        Session session;
+        try {
+            session = RepositoryUtil.getSession(manager, request);
+        } catch (RepositoryException e) {
+            throw new PublicationException(e);
+        }
+        DocumentFactory factory = DocumentUtil.createDocumentFactory(manager, session);
         String webappUrl = ServletHelper.getWebappURI(request);
-        return getPublicationFromUrl(manager, webappUrl);
+        return getPublicationFromUrl(manager, factory, webappUrl);
     }
 
     /**
      * Creates a publication from a webapp URL and a servlet context directory.
      * @param manager The service manager.
+     * @param factory The factory.
      * @param webappUrl The URL within the web application (without context prefix)
      * @return A publication
      * @throws PublicationException when something went wrong
      */
-    public static Publication getPublicationFromUrl(ServiceManager manager, String webappUrl)
-            throws PublicationException {
+    public static Publication getPublicationFromUrl(ServiceManager manager,
+            DocumentFactory factory, String webappUrl) throws PublicationException {
         URLInformation info = new URLInformation(webappUrl);
         String pubId = info.getPublicationId();
-        return getPublication(manager, pubId);
+        return factory.getPublication(pubId);
     }
 
     /**
      * Returns a list of all available publications.
      * @param manager The service manager.
+     * @param factory The document factory.
      * @return An array of publications.
      * @throws PublicationException if an error occurs.
      */
-    public static Publication[] getPublications(ServiceManager manager) throws PublicationException {
+    public static Publication[] getPublications(ServiceManager manager, DocumentFactory factory)
+            throws PublicationException {
         PublicationManager pubManager = null;
         try {
             pubManager = (PublicationManager) manager.lookup(PublicationManager.ROLE);
-            return pubManager.getPublications();
+            return pubManager.getPublications(factory);
         } catch (ServiceException e) {
             throw new PublicationException(e);
         } finally {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java Fri Aug 11 11:42:59 2006
@@ -92,7 +92,7 @@
             String pubBase = Node.LENYA_PROTOCOL + Publication.PUBLICATION_PREFIX_URI + "/";
             String publicationsPath = document.getPublication().getSourceURI().substring(pubBase.length());
             publicationId = publicationsPath.split("/")[0];
-            Publication pub = PublicationUtil.getPublication(this.manager, publicationId);
+            Publication pub = getDocument().getFactory().getPublication(publicationId);
             contentDir = pub.getContentDir();
         } catch (Exception e) {
             getLogger().error(e.getMessage());

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentLanguagesHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentLanguagesHelper.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentLanguagesHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentLanguagesHelper.java Fri Aug 11 11:42:59 2006
@@ -81,7 +81,7 @@
     public String getLanguage() throws ProcessingException {
         DocumentLocator locator;
         try {
-            locator = SiteUtil.getLocator(this.manager, url);
+            locator = SiteUtil.getLocator(this.manager, this.factory, url);
         } catch (SiteException e) {
             throw new ProcessingException(e);
         }
@@ -97,7 +97,7 @@
         List availableLanguages = new ArrayList();
 
         try {
-            DocumentLocator locator = SiteUtil.getLocator(this.manager, url);
+            DocumentLocator locator = SiteUtil.getLocator(this.manager, this.factory, url);
 
             String[] languages = pub.getLanguages();
             for (int i = 0; i < languages.length; i++) {
@@ -133,7 +133,7 @@
     protected Document getDocument(String language) throws ProcessingException {
         Document document;
         try {
-            DocumentLocator locator = SiteUtil.getLocator(this.manager, url);
+            DocumentLocator locator = SiteUtil.getLocator(this.manager, this.factory, url);
             DocumentLocator version = locator.getLanguageVersion(language);
             document = this.factory.get(version);
         } catch (Exception e) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryUtil.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryUtil.java Fri Aug 11 11:42:59 2006
@@ -36,12 +36,23 @@
             throws RepositoryException {
         Session session = (Session) request.getAttribute(Session.class.getName());
         if (session == null) {
-            org.apache.cocoon.environment.Session cocoonSession = request.getSession();
-            Identity identity = (Identity) cocoonSession.getAttribute(Identity.class.getName());
+            Identity identity = getIdentity(request);
             session = createSession(manager, identity);
             request.setAttribute(Session.class.getName(), session);
         }
+        else if (session.getIdentity() == null) {
+            Identity identity = getIdentity(request);
+            if (identity != null) {
+                session.setIdentity(identity);
+            }
+        }
         return session;
+    }
+
+    protected static Identity getIdentity(Request request) {
+        org.apache.cocoon.environment.Session cocoonSession = request.getSession();
+        Identity identity = (Identity) cocoonSession.getAttribute(Identity.class.getName());
+        return identity;
     }
 
     /**

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java Fri Aug 11 11:42:59 2006
@@ -27,6 +27,7 @@
 import org.apache.lenya.transaction.Transactionable;
 import org.apache.lenya.transaction.UnitOfWork;
 import org.apache.lenya.transaction.UnitOfWorkImpl;
+import org.apache.lenya.util.Assert;
 
 /**
  * Repository session.
@@ -40,7 +41,10 @@
      * @param logger The logger.
      */
     public SessionImpl(IdentityMap map, Identity identity, Logger logger) {
-        this.unitOfWork = new UnitOfWorkImpl(map, logger);
+        
+        Assert.notNull("identity map", map);
+        
+        this.unitOfWork = new UnitOfWorkImpl(map, identity, logger);
         this.unitOfWork.setIdentity(identity);
         ContainerUtil.enableLogging(this, logger);
     }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/Label.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/site/Label.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/Label.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/Label.java Fri Aug 11 11:42:59 2006
@@ -55,15 +55,6 @@
     }
 
     /**
-     * Set the actual label of the label object.
-     * 
-     * @param _label The label.
-     */
-    public void setLabel(String _label) {
-        this.label = _label;
-    }
-
-    /**
      * Get the language of this Label object
      * 
      * @return the language

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java Fri Aug 11 11:42:59 2006
@@ -31,7 +31,6 @@
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentLocator;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.PublicationUtil;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.publication.util.DocumentSet;
 import org.apache.lenya.util.Assert;
@@ -394,7 +393,7 @@
         SiteManager siteManager = null;
         try {
             selector = (ServiceSelector) manager.lookup(SiteManager.ROLE + "Selector");
-            Publication pub = PublicationUtil.getPublication(manager, locator.getPublicationId());
+            Publication pub = factory.getPublication(locator.getPublicationId());
             siteManager = (SiteManager) selector.select(pub.getSiteManagerHint());
             return siteManager.getAvailableLocator(factory, locator);
         } catch (Exception e) {
@@ -541,7 +540,7 @@
 
         try {
             selector = (ServiceSelector) manager.lookup(SiteManager.ROLE + "Selector");
-            Publication pub = PublicationUtil.getPublication(manager, locator.getPublicationId());
+            Publication pub = factory.getPublication(locator.getPublicationId());
             String siteManagerHint = pub.getSiteManagerHint();
             siteManager = (SiteManager) selector.select(siteManagerHint);
             SiteStructure site = siteManager.getSiteStructure(factory, pub, locator.getArea());
@@ -567,12 +566,12 @@
         DocumentBuilder builder = null;
         ServiceSelector selector = null;
         try {
-            Publication pub = PublicationUtil.getPublication(manager, info.getPublicationId());
+            Publication pub = factory.getPublication(info.getPublicationId());
             if (pub.exists()) {
                 selector = (ServiceSelector) manager.lookup(DocumentBuilder.ROLE + "Selector");
                 builder = (DocumentBuilder) selector.select(pub.getDocumentBuilderHint());
                 if (builder.isDocument(webappUrl)) {
-                    DocumentLocator locator = builder.getLocator(webappUrl);
+                    DocumentLocator locator = builder.getLocator(factory, webappUrl);
                     return contains(manager, factory, locator);
                 }
             }
@@ -594,7 +593,7 @@
     public static Document getDocument(ServiceManager manager, DocumentFactory factory,
             String webappUrl) throws SiteException {
 
-        DocumentLocator locator = getLocator(manager, webappUrl);
+        DocumentLocator locator = getLocator(manager, factory, webappUrl);
         if (contains(manager, factory, locator)) {
             try {
                 return factory.get(locator);
@@ -606,17 +605,16 @@
         }
     }
 
-    public static DocumentLocator getLocator(ServiceManager manager, String webappUrl)
+    public static DocumentLocator getLocator(ServiceManager manager, DocumentFactory factory, String webappUrl)
             throws SiteException {
-        DocumentLocator locator;
         URLInformation info = new URLInformation(webappUrl);
         DocumentBuilder builder = null;
         ServiceSelector selector = null;
         try {
-            Publication pub = PublicationUtil.getPublication(manager, info.getPublicationId());
+            Publication pub = factory.getPublication(info.getPublicationId());
             selector = (ServiceSelector) manager.lookup(DocumentBuilder.ROLE + "Selector");
             builder = (DocumentBuilder) selector.select(pub.getDocumentBuilderHint());
-            return builder.getLocator(webappUrl);
+            return builder.getLocator(factory, webappUrl);
 
         } catch (SiteException e) {
             throw e;

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/simple/DocumentStoreFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/site/simple/DocumentStoreFactory.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/simple/DocumentStoreFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/simple/DocumentStoreFactory.java Fri Aug 11 11:42:59 2006
@@ -23,7 +23,6 @@
 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.PublicationUtil;
 import org.apache.lenya.cms.repository.RepositoryException;
 import org.apache.lenya.cms.repository.RepositoryItem;
 import org.apache.lenya.cms.repository.RepositoryItemFactory;
@@ -70,10 +69,9 @@
         String uuid = snippets[2];
         DocumentStore store;
         try {
-            Publication publication = PublicationUtil.getPublication(this.manager, publicationId);
-
-            DocumentFactory docMap = DocumentUtil.createDocumentFactory(this.manager, session);
-            store = new DocumentStore(this.manager, docMap, publication, area, uuid, getLogger());
+            DocumentFactory factory = DocumentUtil.createDocumentFactory(this.manager, session);
+            Publication publication = factory.getPublication(publicationId);
+            store = new DocumentStore(this.manager, factory, publication, area, uuid, getLogger());
         } catch (Exception e) {
             throw new RepositoryException(e);
         }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/simple/SimpleLink.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/site/simple/SimpleLink.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/simple/SimpleLink.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/simple/SimpleLink.java Fri Aug 11 11:42:59 2006
@@ -38,5 +38,8 @@
             throw new RuntimeException(e);
         }
     }
+
+    public void setLabel(String label) {
+    }
     
 }

Modified: lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java Fri Aug 11 11:42:59 2006
@@ -26,6 +26,7 @@
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.lenya.ac.Identity;
+import org.apache.lenya.util.Assert;
 
 /**
  * Default implementation of a unit of work.
@@ -37,12 +38,17 @@
     /**
      * Ctor.
      * @param map The identity map to use.
+     * @param identity The identity.
      * @param logger The logger.
      */
-    public UnitOfWorkImpl(IdentityMap map, Logger logger) {
+    public UnitOfWorkImpl(IdentityMap map, Identity identity, Logger logger) {
         ContainerUtil.enableLogging(this, logger);
+        
+        Assert.notNull(map);
         this.identityMap = map;
         this.identityMap.setUnitOfWork(this);
+        
+        this.identity = identity;
     }
 
     private IdentityMap identityMap;

Modified: lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java (original)
+++ lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java Fri Aug 11 11:42:59 2006
@@ -29,6 +29,7 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.avalon.framework.service.Serviceable;
+import org.apache.cocoon.environment.Request;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.Accreditable;
 import org.apache.lenya.ac.AccreditableManager;
@@ -79,7 +80,8 @@
         ContextUtility contextUtility = null;
         try {
             contextUtility = (ContextUtility) serviceManager.lookup(ContextUtility.ROLE);
-            Session session = RepositoryUtil.getSession(this.serviceManager, contextUtility.getRequest());
+            Session session = RepositoryUtil.getSession(this.serviceManager,
+                    contextUtility.getRequest());
             DocumentFactory map = DocumentUtil.createDocumentFactory(this.serviceManager, session);
             if (map.isDocument(webappUrl)) {
                 Document document = map.getFromURL(webappUrl);
@@ -123,10 +125,18 @@
     protected Publication getPublication(String url) throws AccessControlException {
         getLogger().debug("Building publication");
 
+        ContextUtility util = null;
         try {
-            return PublicationUtil.getPublicationFromUrl(this.serviceManager, url);
+            util = (ContextUtility) this.serviceManager.lookup(ContextUtility.ROLE);
+            Request request = util.getRequest();
+            DocumentFactory factory = DocumentUtil.getDocumentFactory(this.serviceManager, request);
+            return PublicationUtil.getPublicationFromUrl(this.serviceManager, factory, url);
         } catch (Exception e) {
             throw new AccessControlException(e);
+        } finally {
+            if (util != null) {
+                this.serviceManager.release(util);
+            }
         }
     }
 

Modified: lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java (original)
+++ lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java Fri Aug 11 11:42:59 2006
@@ -25,12 +25,16 @@
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.cocoon.environment.Request;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.SourceUtil;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.AccessController;
 import org.apache.lenya.ac.impl.AbstractAccessControllerResolver;
+import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
+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.PublicationUtil;
 import org.apache.lenya.cms.publication.URLInformation;
@@ -41,7 +45,8 @@
 public class PublicationAccessControllerResolver extends AbstractAccessControllerResolver implements
         Initializable {
 
-    protected static final String AC_CONFIGURATION_FILE = "config/ac/ac.xconf".replace('/', File.separatorChar);
+    protected static final String AC_CONFIGURATION_FILE = "config/ac/ac.xconf".replace('/',
+            File.separatorChar);
     protected static final String TYPE_ATTRIBUTE = "type";
 
     /**
@@ -100,10 +105,20 @@
             URLInformation info = new URLInformation(webappUrl);
             String publicationId = info.getPublicationId();
 
+            ContextUtility util = null;
             try {
-                publication = PublicationUtil.getPublicationFromUrl(this.manager, webappUrl);
+                util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
+                Request request = util.getRequest();
+                DocumentFactory factory = DocumentUtil.getDocumentFactory(manager, request);
+                publication = PublicationUtil.getPublicationFromUrl(this.manager,
+                        factory,
+                        webappUrl);
             } catch (Exception e) {
                 throw new AccessControlException(e);
+            } finally {
+                if (util != null) {
+                    this.manager.release(util);
+                }
             }
             if (publication.exists()) {
                 getLogger().debug("Publication [" + publicationId + "] exists.");
@@ -160,20 +175,20 @@
 
         AccessController accessController = null;
 
-            try {
-                Configuration configuration = getConfiguration(publication);
-                String type = configuration.getAttribute(TYPE_ATTRIBUTE);
-
-                accessController = (AccessController) getManager().lookup(AccessController.ROLE
-                        + "/" + type);
+        try {
+            Configuration configuration = getConfiguration(publication);
+            String type = configuration.getAttribute(TYPE_ATTRIBUTE);
 
-                if (accessController instanceof Configurable) {
-                    ((Configurable) accessController).configure(configuration);
-                }
+            accessController = (AccessController) getManager().lookup(AccessController.ROLE + "/"
+                    + type);
 
-            } catch (Exception e) {
-                throw new AccessControlException(e);
+            if (accessController instanceof Configurable) {
+                ((Configurable) accessController).configure(configuration);
             }
+
+        } catch (Exception e) {
+            throw new AccessControlException(e);
+        }
 
         return accessController;
     }

Modified: lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/usecases/Login.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/usecases/Login.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/usecases/Login.java (original)
+++ lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/lenya/cms/ac/usecases/Login.java Fri Aug 11 11:42:59 2006
@@ -46,7 +46,9 @@
         Publication publication;
 
         try {
-            publication = PublicationUtil.getPublicationFromUrl(this.manager, getSourceURL());
+            publication = PublicationUtil.getPublicationFromUrl(this.manager,
+                    getDocumentFactory(),
+                    getSourceURL());
             if (publication.exists()) {
                 setParameter(PUBLICATION_ID, publication.getId());
             }

Modified: lenya/trunk/src/modules-core/ac-impl/java/test/org/apache/lenya/ac/impl/PolicyTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac-impl/java/test/org/apache/lenya/ac/impl/PolicyTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ac-impl/java/test/org/apache/lenya/ac/impl/PolicyTest.java (original)
+++ lenya/trunk/src/modules-core/ac-impl/java/test/org/apache/lenya/ac/impl/PolicyTest.java Fri Aug 11 11:42:59 2006
@@ -30,7 +30,6 @@
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
-import org.apache.lenya.cms.publication.PublicationUtil;
 
 /**
  * Policy Test
@@ -46,7 +45,7 @@
      * @throws PublicationException
      */
     public void testLoadPolicy() throws AccessControlException, PublicationException {
-        Publication pub = PublicationUtil.getPublication(getManager(), "test");
+        Publication pub = getPublication("test");
         String url = "/" + pub.getId() + URL;
         Policy policy = getPolicy(url);
         Role[] roles = policy.getRoles(getIdentity());

Modified: lenya/trunk/src/modules-core/janitor/java/src/org/apache/lenya/cms/janitor/ContentJanitor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/janitor/java/src/org/apache/lenya/cms/janitor/ContentJanitor.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/janitor/java/src/org/apache/lenya/cms/janitor/ContentJanitor.java (original)
+++ lenya/trunk/src/modules-core/janitor/java/src/org/apache/lenya/cms/janitor/ContentJanitor.java Fri Aug 11 11:42:59 2006
@@ -8,14 +8,15 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.cocoon.environment.Request;
+import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
 import org.apache.lenya.cms.observation.ObservationRegistry;
 import org.apache.lenya.cms.observation.RepositoryEvent;
 import org.apache.lenya.cms.observation.RepositoryListener;
-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.PublicationException;
-import org.apache.lenya.cms.publication.PublicationUtil;
 
 /**
  * The content janitor cleans up empty directories after a document is removed.
@@ -27,14 +28,21 @@
     }
 
     public void documentRemoved(RepositoryEvent event) {
+        ContextUtility util = null;
         try {
-            Publication pub = PublicationUtil
-                    .getPublication(this.manager, event.getPublicationId());
+            util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
+            Request request = util.getRequest();
+            DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
+            Publication pub = factory.getPublication(event.getPublicationId());
             File contentFile = pub.getContentDirectory(event.getArea());
             String contentUri = contentFile.toURI().toString();
             SourceUtil.deleteEmptyCollections(contentUri, this.manager);
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            if (util != null) {
+                this.manager.release(util);
+            }
         }
     }
 

Modified: lenya/trunk/src/modules-core/ldap/java/test/org/apache/lenya/ac/ldap/AbstractLDAPUserTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ldap/java/test/org/apache/lenya/ac/ldap/AbstractLDAPUserTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ldap/java/test/org/apache/lenya/ac/ldap/AbstractLDAPUserTest.java (original)
+++ lenya/trunk/src/modules-core/ldap/java/test/org/apache/lenya/ac/ldap/AbstractLDAPUserTest.java Fri Aug 11 11:42:59 2006
@@ -31,7 +31,6 @@
 import org.apache.lenya.ac.ldap.LDAPUser;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
-import org.apache.lenya.cms.publication.PublicationUtil;
 
 /**
  * LDAP user test.
@@ -49,8 +48,7 @@
      * @throws PublicationException if an error occurs
      */
     final public Publication getPublication() throws PublicationException {
-        String publicationId = "test";
-        return PublicationUtil.getPublication(getManager(), publicationId);
+        return getPublication("test");
     }
 
     /**

Modified: lenya/trunk/src/modules-core/observation-impl/java/src/org/apache/lenya/cms/observation/ObservationManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/observation-impl/java/src/org/apache/lenya/cms/observation/ObservationManager.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/observation-impl/java/src/org/apache/lenya/cms/observation/ObservationManager.java (original)
+++ lenya/trunk/src/modules-core/observation-impl/java/src/org/apache/lenya/cms/observation/ObservationManager.java Fri Aug 11 11:42:59 2006
@@ -33,7 +33,6 @@
 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.PublicationUtil;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
@@ -173,11 +172,9 @@
 
         try {
 
-            Publication pub = PublicationUtil.getPublication(this.manager, pubId);
-
             Session session = RepositoryUtil.createSession(manager, identity);
             DocumentFactory factory = DocumentUtil.createDocumentFactory(this.manager, session);
-
+            Publication pub = factory.getPublication(pubId);
             String docPath = path.substring((pubId + "/content/" + area).length());
 
             String uuid;

Modified: lenya/trunk/src/modules-core/observation-impl/java/test/org/apache/lenya/cms/observation/ObservationTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/observation-impl/java/test/org/apache/lenya/cms/observation/ObservationTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/observation-impl/java/test/org/apache/lenya/cms/observation/ObservationTest.java (original)
+++ lenya/trunk/src/modules-core/observation-impl/java/test/org/apache/lenya/cms/observation/ObservationTest.java Fri Aug 11 11:42:59 2006
@@ -35,7 +35,7 @@
         Session session = RepositoryUtil.getSession(getManager(), getRequest());
         DocumentFactory factory = DocumentUtil.createDocumentFactory(getManager(), session);
 
-        Publication publication = PublicationUtil.getPublication(getManager(), "test");
+        Publication publication = getPublication("test");
         Document doc = factory.get(publication, Publication.AUTHORING_AREA, "/index", "en");
         
         TestListener docListener = new TestListener();

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java Fri Aug 11 11:42:59 2006
@@ -115,6 +115,12 @@
                 addErrorMessage("Please select a page layout.");
             }
         }
+        
+        String path = getNewDocumentPath();
+        SiteStructure site = getPublication().getArea(getArea()).getSite();
+        if (!createVersion() && site.contains(path)) {
+            addErrorMessage("The path [" + path + "] already exists!");
+        }
 
         String doctypeName = getDocumentTypeName();
         if (doctypeName != null) {
@@ -368,6 +374,7 @@
         if (this.publication == null) {
             try {
                 this.publication = PublicationUtil.getPublicationFromUrl(this.manager,
+                        getDocumentFactory(),
                         getSourceURL());
             } catch (PublicationException e) {
                 throw new RuntimeException(e);

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/EmptyTrash.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/EmptyTrash.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/EmptyTrash.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/EmptyTrash.java Fri Aug 11 11:42:59 2006
@@ -37,11 +37,11 @@
 
 /**
  * Empty the trash.
- *
+ * 
  * @version $Id$
  */
 public class EmptyTrash extends AbstractUsecase {
-    
+
     protected static final String DOCUMENTS = "documents";
 
     /**
@@ -58,7 +58,7 @@
             throw new RuntimeException(e);
         }
     }
-    
+
     /**
      * Lock the following objects:
      * <ul>
@@ -68,23 +68,26 @@
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
      */
     protected org.apache.lenya.cms.repository.Node[] getNodesToLock() throws UsecaseException {
-        List nodes = new ArrayList();        
+        List nodes = new ArrayList();
         ServiceSelector selector = null;
         SiteManager siteManager = null;
- 
+
         try {
-            Publication publication = PublicationUtil.getPublicationFromUrl(this.manager, getSourceURL());
+            Publication publication = PublicationUtil.getPublicationFromUrl(this.manager,
+                    getDocumentFactory(),
+                    getSourceURL());
             DocumentFactory identityMap = getDocumentFactory();
             Document[] docs = getTrashDocuments();
             for (int i = 0; i < docs.length; i++) {
                 nodes.add(docs[i].getRepositoryNode());
                 nodes.addAll(AssetUtil.getAssetNodes(docs[i], this.manager, getLogger()));
             }
-           
+
             selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
-            siteManager = (SiteManager) selector.select(publication
-                    .getSiteManagerHint());
-            SiteStructure structure = siteManager.getSiteStructure(identityMap, publication, Publication.TRASH_AREA);
+            siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());
+            SiteStructure structure = siteManager.getSiteStructure(identityMap,
+                    publication,
+                    Publication.TRASH_AREA);
             nodes.add(structure.getRepositoryNode());
         } catch (Exception e) {
             throw new UsecaseException(e);
@@ -99,43 +102,42 @@
         return (org.apache.lenya.cms.repository.Node[]) nodes.toArray(new org.apache.lenya.cms.repository.Node[nodes.size()]);
     }
 
-    
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
         super.doExecute();
-        
+
         DocumentManager documentManager = null;
         try {
             documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
             Document[] documents = getTrashDocuments();
             DocumentSet set = new DocumentSet(documents);
             documentManager.delete(set);
-        }
-        finally {
+        } finally {
             if (documentManager != null) {
                 this.manager.release(documentManager);
             }
         }
     }
-    
+
     /**
      * @return The documents in the trash area.
      * @throws PublicationException if an error occurs.
      * @throws SiteException if an error occurs.
      */
     protected Document[] getTrashDocuments() throws PublicationException, SiteException {
-        Publication publication = PublicationUtil.getPublicationFromUrl(this.manager, getSourceURL());
+        Publication publication = PublicationUtil.getPublicationFromUrl(this.manager,
+                getDocumentFactory(),
+                getSourceURL());
         DocumentFactory identityMap = getDocumentFactory();
         Document[] documents;
-        
+
         ServiceSelector selector = null;
         SiteManager siteManager = null;
         try {
             selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
-            siteManager = (SiteManager) selector.select(publication
-                    .getSiteManagerHint());
+            siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());
             documents = siteManager.getDocuments(identityMap, publication, Publication.TRASH_AREA);
         } catch (ServiceException e) {
             throw new RuntimeException(e);
@@ -147,7 +149,7 @@
                 this.manager.release(selector);
             }
         }
-        
+
         return documents;
     }
 }

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java Fri Aug 11 11:42:59 2006
@@ -228,7 +228,7 @@
             } else {
                 newLocator = locator.getDescendant(childString);
             }
-            return builder.buildCanonicalUrl(newLocator);
+            return builder.buildCanonicalUrl(targetDocument.getFactory(), newLocator);
         } catch (Exception e) {
             throw new RuntimeException(e);
         } finally {

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java Fri Aug 11 11:42:59 2006
@@ -97,7 +97,7 @@
             for (int i = 0; i < documents.length; i++) {
 
                 Entry entry = new Entry();
-                entry.setValue(KEY_DOCUMENT_ID, documents[i].getId());
+                entry.setValue(KEY_DOCUMENT_ID, documents[i].getUUID());
                 entry.setValue(KEY_RESOURCE_TYPE, documents[i].getResourceType().getName());
                 entry.setValue(KEY_LANGUAGE, documents[i].getLanguage());
                 entry.setValue(KEY_URL, documents[i].getCanonicalWebappURL());
@@ -229,7 +229,9 @@
      * @throws PublicationException if an error occurs.
      */
     protected Publication getPublication() throws PublicationException {
-        return PublicationUtil.getPublicationFromUrl(this.manager, getSourceURL());
+        return PublicationUtil.getPublicationFromUrl(this.manager,
+                getDocumentFactory(),
+                getSourceURL());
     }
 
     /**

Modified: lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java (original)
+++ lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java Fri Aug 11 11:42:59 2006
@@ -31,7 +31,6 @@
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
-import org.apache.lenya.cms.publication.PublicationUtil;
 
 /**
  * Manager for publication templates.
@@ -181,7 +180,7 @@
         String[] templateIds = publication.getTemplateIds();
         for (int i = 0; i < templateIds.length; i++) {
             try {
-                Publication template = PublicationUtil.getPublication(this.manager, templateIds[i]);
+                Publication template = publication.getFactory().getPublication(templateIds[i]);
                 Publication[] templateTemplates = getPublications(template);
                 publications.addAll(Arrays.asList(templateTemplates));
             } catch (PublicationException e) {

Modified: lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java (original)
+++ lenya/trunk/src/modules-core/templating-impl/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java Fri Aug 11 11:42:59 2006
@@ -21,7 +21,6 @@
 
 import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.publication.PublicationUtil;
 import org.apache.lenya.cms.publication.templating.Instantiator;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
@@ -44,22 +43,15 @@
     protected void initParameters() {
         super.initParameters();
 
-        try {
-            Publication[] pubs = PublicationUtil.getPublications(this.manager);
-            List templates = new ArrayList();
-            for (int i = 0; i < pubs.length; i++) {
-                if (pubs[i].getInstantiatorHint() != null) {
-                    templates.add(pubs[i].getId());
-                }
+        Publication[] pubs = getDocumentFactory().getPublications();
+        List templates = new ArrayList();
+        for (int i = 0; i < pubs.length; i++) {
+            if (pubs[i].getInstantiatorHint() != null) {
+                templates.add(pubs[i].getId());
             }
-            setParameter(AVAILABLE_TEMPLATES, templates);
-
-            setParameter(PUBLICATION_NAME, "New Publication");
-
-        } catch (PublicationException e) {
-            throw new RuntimeException(e);
         }
-
+        setParameter(AVAILABLE_TEMPLATES, templates);
+        setParameter(PUBLICATION_NAME, "New Publication");
     }
 
     /**
@@ -70,10 +62,10 @@
 
         String publicationId = getParameterAsString(PUBLICATION_ID).trim();
 
-        if (!PublicationUtil.isValidPublicationID(publicationId)){
+        if (!PublicationUtil.isValidPublicationID(publicationId)) {
             addErrorMessage("Please enter a valid publication ID!");
         } else {
-            Publication publication = PublicationUtil.getPublication(this.manager, publicationId);
+            Publication publication = getDocumentFactory().getPublication(publicationId);
             if (publication.exists()) {
                 addErrorMessage("A publication with this ID already exists.");
             }
@@ -93,7 +85,7 @@
 
         try {
 
-            Publication template = PublicationUtil.getPublication(this.manager, templateId);
+            Publication template = getDocumentFactory().getPublication(templateId);
             String name = getParameterAsString(PUBLICATION_NAME);
 
             selector = (ServiceSelector) this.manager.lookup(Instantiator.ROLE + "Selector");

Modified: lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java (original)
+++ lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java Fri Aug 11 11:42:59 2006
@@ -23,8 +23,11 @@
 import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.cocoon.environment.Request;
+import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
+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.PublicationUtil;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.publication.templating.PublicationTemplateManager;
 
@@ -89,8 +92,7 @@
         if (publication != null) {
             PublicationTemplateManager templateManager = null;
             try {
-                templateManager = (PublicationTemplateManager) this.manager
-                        .lookup(PublicationTemplateManager.ROLE);
+                templateManager = (PublicationTemplateManager) this.manager.lookup(PublicationTemplateManager.ROLE);
                 newName = (String) templateManager.getSelectableHint(publication,
                         this.selector,
                         name);
@@ -99,8 +101,7 @@
                     this.manager.release(templateManager);
                 }
             }
-        }
-        else {
+        } else {
             newName = name;
         }
 
@@ -114,18 +115,27 @@
      */
     protected Publication getPublication(String webappUrl) {
         Publication publication = null;
+        ContextUtility util = null;
         try {
+            util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
+            Request request = util.getRequest();
+            DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
+
             URLInformation info = new URLInformation(webappUrl);
             String publicationId = info.getPublicationId();
 
             if (publicationId != null) {
-                Publication pub = PublicationUtil.getPublicationFromUrl(this.manager, webappUrl);
+                Publication pub = factory.getPublication(publicationId);
                 if (pub.exists()) {
                     publication = pub;
                 }
             }
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            if (util != null) {
+                this.manager.release(util);
+            }
         }
         return publication;
     }

Modified: lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/gui/GUIManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/gui/GUIManagerImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/gui/GUIManagerImpl.java (original)
+++ lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/usecase/gui/GUIManagerImpl.java Fri Aug 11 11:42:59 2006
@@ -41,6 +41,9 @@
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.cms.ac.PolicyUtil;
 import org.apache.lenya.cms.ac.usecase.UsecaseAuthorizer;
+import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
+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.PublicationUtil;
 import org.apache.lenya.cms.usecase.Usecase;
@@ -158,7 +161,21 @@
                 if (getLogger().isDebugEnabled()) {
                     getLogger().debug("Found usecase [" + tab.getUsecase() + "]");
                 }
+
+                DocumentFactory factory;
+                ContextUtility util = null;
+                try {
+                    util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
+                    Request request = util.getRequest();
+                    factory = DocumentUtil.getDocumentFactory(this.manager, request);
+                } finally {
+                    if (util != null) {
+                        this.manager.release(util);
+                    }
+                }
+
                 Publication pub = PublicationUtil.getPublicationFromUrl(this.manager,
+                        factory,
                         this.webappUrl);
                 if (!authorizer.authorizeUsecase(tab.getUsecase(), this.roles, pub, this.requestURI)) {
                     if (getLogger().isDebugEnabled()) {

Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java Fri Aug 11 11:42:59 2006
@@ -29,8 +29,6 @@
 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.PublicationException;
-import org.apache.lenya.cms.publication.PublicationUtil;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
@@ -45,25 +43,21 @@
 
     protected void initParameters() {
         super.initParameters();
-        try {
-            Publication[] pubs = PublicationUtil.getPublications(this.manager);
-            List pubList = Arrays.asList(pubs);
-            setParameter(PUBLICATIONS, pubList);
-        } catch (PublicationException e) {
-            throw new RuntimeException(e);
-        }
+        Publication[] pubs = getDocumentFactory().getPublications();
+        List pubList = Arrays.asList(pubs);
+        setParameter(PUBLICATIONS, pubList);
     }
 
     protected void doExecute() throws Exception {
         super.doExecute();
         String pubId = getParameterAsString(PUBLICATION);
-        DocumentFactory map = getDocumentFactory();
+        DocumentFactory factory = getDocumentFactory();
         ServiceSelector selector = null;
         SiteManager siteManager = null;
         SourceResolver resolver = null;
         try {
             resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-            Publication pub = PublicationUtil.getPublication(this.manager, pubId);
+            Publication pub = factory.getPublication(pubId);
             selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
             siteManager = (SiteManager) selector.select(pub.getSiteManagerHint());
 
@@ -73,20 +67,18 @@
             String[] areas = { Publication.AUTHORING_AREA, Publication.LIVE_AREA,
                     Publication.TRASH_AREA, Publication.ARCHIVE_AREA };
             for (int i = 0; i < areas.length; i++) {
-                Document[] docs = siteManager.getDocuments(map, pub, areas[i]);
+                Document[] docs = siteManager.getDocuments(factory, pub, areas[i]);
                 for (int j = 0; j < docs.length; j++) {
                     nodes.add(docs[j].getRepositoryNode());
                     final String lenyaUri = docs[j].getSourceURI();
                     final String sourcePath = lenyaUri.substring("lenya://".length());
                     final String contextUri = "context://" + sourcePath + ".meta";
                     /*
-                    MetaDataManager meta = new MetaDataManager(contextUri,
-                            this.manager,
-                            getLogger());
-                    uri2meta.put(docs[j].getSourceURI(), meta);
-                    */
+                     * MetaDataManager meta = new MetaDataManager(contextUri, this.manager,
+                     * getLogger()); uri2meta.put(docs[j].getSourceURI(), meta);
+                     */
                 }
-                nodes.add(siteManager.getSiteStructure(map, pub, areas[i]).getRepositoryNode());
+                nodes.add(siteManager.getSiteStructure(factory, pub, areas[i]).getRepositoryNode());
             }
 
             for (Iterator i = nodes.iterator(); i.hasNext();) {
@@ -97,15 +89,11 @@
                 final String jcrUri = "jcr://" + sourcePath;
                 if (SourceUtil.exists(contextUri, this.manager)) {
                     SourceUtil.copy(resolver, contextUri, jcrUri);
-/*
-                    MetaDataManager sourceMgr = (MetaDataManager) uri2meta.get(lenyaUri);
-                    if (sourceMgr != null) {
-                        MetaDataManager jcrMgr = new JCRMetaDataManager(jcrUri,
-                                this.manager,
-                                getLogger());
-                        jcrMgr.replaceMetaData(sourceMgr);
-                    }
-                    */
+                    /*
+                     * MetaDataManager sourceMgr = (MetaDataManager) uri2meta.get(lenyaUri); if
+                     * (sourceMgr != null) { MetaDataManager jcrMgr = new JCRMetaDataManager(jcrUri,
+                     * this.manager, getLogger()); jcrMgr.replaceMetaData(sourceMgr); }
+                     */
                 } else {
                     addInfoMessage("The source [" + contextUri + "] does not exist.");
                 }

Modified: lenya/trunk/src/modules/lenyadoc/java/src/org/apache/lenya/cms/cocoon/source/LenyaDocSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/lenyadoc/java/src/org/apache/lenya/cms/cocoon/source/LenyaDocSourceFactory.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules/lenyadoc/java/src/org/apache/lenya/cms/cocoon/source/LenyaDocSourceFactory.java (original)
+++ lenya/trunk/src/modules/lenyadoc/java/src/org/apache/lenya/cms/cocoon/source/LenyaDocSourceFactory.java Fri Aug 11 11:42:59 2006
@@ -115,6 +115,10 @@
                     + "]");
         }
 
+        Map objectModel = ContextHelper.getObjectModel(this.context);
+        Request request = ObjectModelHelper.getRequest(objectModel);
+        DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
+
         // Absolute vs. relative
         start = end + 1;
         if (location.startsWith("//", start)) {
@@ -127,7 +131,7 @@
             }
             String publicationId = location.substring(start, end);
             try {
-                pub = PublicationUtil.getPublication(this.manager, publicationId);
+                pub = factory.getPublication(publicationId);
             } catch (PublicationException e) {
                 throw new MalformedURLException("Malformed lenyadoc: Publication [" + publicationId
                         + "] does not exist or could not be initialized");
@@ -148,8 +152,6 @@
         } else if (location.startsWith("/", start)) {
             end += 1;
             // Relative: get publication id and area from page envelope
-            Map objectModel = ContextHelper.getObjectModel(this.context);
-            Request request = ObjectModelHelper.getRequest(objectModel);
             try {
                 pub = PublicationUtil.getPublication(this.manager, objectModel);
             } catch (PublicationException e) {
@@ -180,7 +182,6 @@
         start = end + 1;
         uuid = location.substring(start);
 
-        Request request = ContextHelper.getRequest(this.context);
         Session session;
         try {
             session = RepositoryUtil.getSession(this.manager, request);
@@ -191,10 +192,9 @@
         if (getLogger().isDebugEnabled()) {
             getLogger().debug("Creating repository source for URI [" + location + "]");
         }
-        DocumentFactory map = DocumentUtil.createDocumentFactory(this.manager, session);
         Document document;
         try {
-            document = map.get(pub, area, uuid, language);
+            document = factory.get(pub, area, uuid, language);
         } catch (DocumentBuildException e) {
             throw new MalformedURLException("Malformed lenyadoc: Document [" + uuid + ":"
                     + language + "] could not be created.");

Modified: lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java (original)
+++ lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/components/search/components/impl/IndexManagerImpl.java Fri Aug 11 11:42:59 2006
@@ -37,9 +37,13 @@
 import org.apache.cocoon.components.search.fieldmodel.DateFieldDefinition;
 import org.apache.cocoon.components.search.fieldmodel.FieldDefinition;
 import org.apache.cocoon.components.search.utils.SourceHelper;
+import org.apache.cocoon.environment.Request;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.SourceUtil;
+import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
+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.PublicationException;
 import org.apache.lenya.cms.publication.PublicationManager;
@@ -50,20 +54,19 @@
  * @author Maisonneuve Nicolas
  * @version 1.0
  */
-public class IndexManagerImpl extends AbstractLogEnabled implements
-        IndexManager, Serviceable, ThreadSafe, Configurable {
+public class IndexManagerImpl extends AbstractLogEnabled implements IndexManager, Serviceable,
+        ThreadSafe, Configurable {
 
-   
     /**
-     * indexer element 
+     * indexer element
      */
     public static final String INDEXER_ELEMENT = "indexer";
-    
+
     /**
-     * indexer element 
+     * indexer element
      */
     public static final String INDEXER_ROLE_ATTRIBUTE = "role";
-    
+
     /**
      * set of indexes
      */
@@ -102,8 +105,7 @@
     /**
      * type of the field: "text, "keyword", "date" (see
      * 
-     * @see org.apache.cocoon.components.search.fieldmodel.FieldDefinition
-     *      class)
+     * @see org.apache.cocoon.components.search.fieldmodel.FieldDefinition class)
      */
     public static final String TYPE_ATTRIBUTE = "type";
 
@@ -116,39 +118,41 @@
      * The date Format when the field type is a date
      */
     public static final String DATEFORMAT_ATTRIBUTE = "dateformat";
-    
+
     public static final String INDEX_CONF_FILE = "lucene_index.xconf";
 
     /**
-     * check the config file each time the getIndex is called to update if
-     * necessary the configuration
+     * check the config file each time the getIndex is called to update if necessary the
+     * configuration
      */
     // public static final String CHECK_ATTRIBUTE = "check";
-    
     /**
      * Source of the index configuration file
      */
     // public static final String CONFIG_ATTRIBUTE = "config";
-    
     /**
-     * Check or not the configuration file (automatic update if the file is
-     * changed)
+     * Check or not the configuration file (automatic update if the file is changed)
      */
     // private boolean check;
-    
     /**
      * Index configuration file
      */
     // private Source configfile;
-    
     private ServiceManager manager;
 
-    private Map indexes;
-    
+    private Map indexMap;
+
+    protected Map indexes() {
+        if(this.indexMap == null) {
+            this.indexMap = new HashMap();
+            loadIndexes();
+        }
+        return this.indexMap;
+    }
+
     private String indexerRole = null;
 
     public IndexManagerImpl() {
-        indexes = new HashMap();
     }
 
     /*
@@ -158,7 +162,7 @@
      */
     public boolean contains(String id) {
         if (id != null) {
-            return this.indexes.get(id) != null;
+            return this.indexes().get(id) != null;
         }
         return false;
     }
@@ -174,9 +178,10 @@
             throw new IndexException(" index with no name was called");
         }
 
-        Index index = (Index) this.indexes.get(id);
+        Index index = (Index) this.indexes().get(id);
         if (index == null) {
-            throw new IndexException("Index " + id + " doesn't exist. Check if configuration " + INDEX_CONF_FILE + " exists for this publication!");
+            throw new IndexException("Index " + id + " doesn't exist. Check if configuration "
+                    + INDEX_CONF_FILE + " exists for this publication!");
         }
 
         return index;
@@ -188,7 +193,7 @@
      * @see org.apache.cocoon.components.search.components.IndexManager#addIndex(org.apache.cocoon.components.search.Index)
      */
     public void addIndex(Index base) {
-        this.indexes.put(base.getID(), base);
+        this.indexes().put(base.getID(), base);
     }
 
     /*
@@ -197,44 +202,40 @@
      * @see org.apache.cocoon.components.search.components.IndexManager#remove(java.lang.String)
      */
     public void remove(String id) {
-        this.indexes.remove(id);
+        this.indexes().remove(id);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
-     */
-    public void configure(Configuration configuration)
-            throws ConfigurationException {
-
+    protected void loadIndexes() {
         // configure the index manager:
-        this.indexerRole = configuration.getChild(INDEXER_ELEMENT).getAttribute(INDEXER_ROLE_ATTRIBUTE);
-        
+
         // now check all publications and add their indexes:
         PublicationManager pubManager = null;
         SourceResolver resolver = null;
         Source confSource = null;
+        ContextUtility util = null;
         try {
-            pubManager = (PublicationManager) this.manager
-                    .lookup(PublicationManager.ROLE);
-            Publication[] publications = pubManager.getPublications();
+            util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
+            Request request = util.getRequest();
+            DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
+            pubManager = (PublicationManager) this.manager.lookup(PublicationManager.ROLE);
+            Publication[] publications = pubManager.getPublications(factory);
             resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-            
+
             for (int i = 0; i < publications.length; i++) {
-                String uri = "context://" + Publication.PUBLICATION_PREFIX_URI+"/"+publications[i].getId()+
-                    "/"+Publication.CONFIGURATION_PATH + "/" + INDEX_CONF_FILE;
+                String uri = "context://" + Publication.PUBLICATION_PREFIX_URI + "/"
+                        + publications[i].getId() + "/" + Publication.CONFIGURATION_PATH + "/"
+                        + INDEX_CONF_FILE;
                 confSource = resolver.resolveURI(uri);
                 if (confSource.exists()) {
                     addIndexes(confSource);
                 }
             }
         } catch (IOException e) {
-            throw new ConfigurationException("Config file error", e);
+            throw new RuntimeException("Config file error", e);
         } catch (ServiceException e) {
-            throw new ConfigurationException("PublicationManager lookup error", e);
+            throw new RuntimeException("PublicationManager lookup error", e);
         } catch (PublicationException e) {
-            throw new ConfigurationException("Publication error", e);
+            throw new RuntimeException("Publication error", e);
         } finally {
             if (pubManager != null) {
                 this.manager.release(pubManager);
@@ -245,33 +246,44 @@
                 }
                 this.manager.release(resolver);
             }
+            if (util != null) {
+                this.manager.release(util);
+            }
         }
-        
+
         getLogger().info("Search Engine - Index Manager configured.");
     }
 
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+     */
+    public void configure(Configuration configuration) throws ConfigurationException {
+        this.indexerRole = configuration.getChild(INDEXER_ELEMENT)
+                .getAttribute(INDEXER_ROLE_ATTRIBUTE);
+    }
 
     /**
      * Adds indexes from the given configuration file to the index manager.
      * @param confSource
      * @throws ConfigurationException
      */
-    public void addIndexes(Source confSource) throws ConfigurationException {
+    public void addIndexes(Source confSource) {
         try {
             Configuration indexConfiguration = SourceHelper.build(confSource);
             addIndexes(indexConfiguration);
         } catch (ConfigurationException e) {
-            throw new ConfigurationException("Error with configuration file "+confSource.getURI(), e);
+            throw new RuntimeException("Error with configuration file " + confSource.getURI(), e);
         }
     }
-    
+
     /**
      * Adds indexes from the given configuration object to the index manager.
      * @param configuration
      * @throws ConfigurationException
      */
-    private void addIndexes(Configuration configuration)
-            throws ConfigurationException {
+    private void addIndexes(Configuration configuration) throws ConfigurationException {
         AnalyzerManager analyzerManager = null;
         Configuration[] confs = configuration.getChildren(INDEX_ELEMENT);
 
@@ -279,84 +291,75 @@
             throw new ConfigurationException("no index is defined !");
         }
         try {
-            analyzerManager = (AnalyzerManager) this.manager
-                    .lookup(AnalyzerManager.ROLE);
+            analyzerManager = (AnalyzerManager) this.manager.lookup(AnalyzerManager.ROLE);
 
             // configure each index
             for (int i = 0; i < confs.length; i++) {
                 String id = confs[i].getAttribute(ID_ATTRIBUTE);
-                String analyzerid = confs[i]
-                        .getAttribute(INDEX_DEFAULTANALZER_ATTRIBUTE);
+                String analyzerid = confs[i].getAttribute(INDEX_DEFAULTANALZER_ATTRIBUTE);
                 String directory = confs[i].getAttribute(INDEX_DIRECTORY_ATTRIBUTE);
                 if (!analyzerManager.exist(analyzerid)) {
-                    throw new ConfigurationException("Analyzer " + analyzerid
-                            + " no found");
+                    throw new ConfigurationException("Analyzer " + analyzerid + " no found");
                 }
-    
+
                 Configuration[] fields = confs[i].getChild(STRUCTURE_ELEMENT)
                         .getChildren(FIELD_ELEMENT);
-    
+
                 IndexStructure docdecl = new IndexStructure();
                 for (int j = 0; j < fields.length; j++) {
-    
+
                     FieldDefinition fielddecl;
-    
+
                     // field id attribute
                     String id_field = fields[j].getAttribute(ID_ATTRIBUTE);
-    
+
                     // field type attribute
                     String typeS = fields[j].getAttribute(TYPE_ATTRIBUTE, "");
                     int type = FieldDefinition.stringTotype(typeS);
                     try {
                         fielddecl = FieldDefinition.create(id_field, type);
                     } catch (IllegalArgumentException e) {
-                        throw new ConfigurationException("field " + id_field
-                                + " type " + typeS, e);
+                        throw new ConfigurationException("field " + id_field + " type " + typeS, e);
                     }
-    
+
                     // field store attribute
                     boolean store;
                     if (fielddecl.getType() == FieldDefinition.TEXT) {
-                        store = fields[j].getAttributeAsBoolean(STORE_ATTRIBUTE,
-                                false);
+                        store = fields[j].getAttributeAsBoolean(STORE_ATTRIBUTE, false);
                     } else {
-                        store = fields[j].getAttributeAsBoolean(STORE_ATTRIBUTE,
-                                true);
+                        store = fields[j].getAttributeAsBoolean(STORE_ATTRIBUTE, true);
                     }
                     fielddecl.setStore(store);
-    
+
                     // field dateformat attribute
                     if (fielddecl.getType() == FieldDefinition.DATE) {
-                        String dateformat_field = fields[j]
-                                .getAttribute(DATEFORMAT_ATTRIBUTE);
-                        ((DateFieldDefinition) fielddecl)
-                                .setDateFormat(new SimpleDateFormat(
-                                        dateformat_field));
+                        String dateformat_field = fields[j].getAttribute(DATEFORMAT_ATTRIBUTE);
+                        ((DateFieldDefinition) fielddecl).setDateFormat(new SimpleDateFormat(dateformat_field));
                     }
-    
+
                     this.getLogger().debug("field added: " + fielddecl);
                     docdecl.addFieldDef(fielddecl);
                 }
-            
+
                 Index index = new Index();
                 index.setID(id);
                 index.setIndexer(indexerRole);
-                
+
                 // if the directory path is relative, prepend context path:
                 if (!directory.startsWith(File.separator)) {
                     directory = getServletContextPath() + File.separator + directory;
                 }
-                
+
                 if (index.setDirectory(directory)) {
-                    this.getLogger().warn(
-                            "directory " + directory + " was locked ");
+                    this.getLogger().warn("directory " + directory + " was locked ");
                 }
                 index.setDefaultAnalyzerID(analyzerid);
                 index.setStructure(docdecl);
                 index.setManager(manager);
 
                 this.addIndex(index);
-                this.getLogger().info("add index  " + index.getID() + " for directory " + directory);
+                this.getLogger()
+                        .info("add index  " + index.getID() + " for directory " + directory);
             }
         } catch (ServiceException e) {
             throw new ConfigurationException("AnalyzerManager lookup error", e);
@@ -385,16 +388,17 @@
             }
         }
     }
-    
-    /* (non-Javadoc)
+
+    /*
+     * (non-Javadoc)
      * @see org.apache.cocoon.components.search.components.IndexManager#getIndex()
      */
     public Index[] getIndex() {
-        return (Index[]) this.indexes.values().toArray(
-                new Index[indexes.size()]);
+        return (Index[]) this.indexes().values().toArray(new Index[indexes().size()]);
     }
 
-    /* (non-Javadoc)
+    /*
+     * (non-Javadoc)
      * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
      */
     public void service(ServiceManager manager) throws ServiceException {

Modified: lenya/trunk/src/modules/lucene/java/test/org/apache/lenya/cms/lucene/IndexUpdaterTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/lucene/java/test/org/apache/lenya/cms/lucene/IndexUpdaterTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules/lucene/java/test/org/apache/lenya/cms/lucene/IndexUpdaterTest.java (original)
+++ lenya/trunk/src/modules/lucene/java/test/org/apache/lenya/cms/lucene/IndexUpdaterTest.java Fri Aug 11 11:42:59 2006
@@ -23,10 +23,8 @@
 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.PublicationUtil;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
-import org.apache.lenya.xml.DocumentHelper;
 
 public class IndexUpdaterTest extends AbstractAccessControlTest {
 
@@ -35,7 +33,7 @@
         Session session = RepositoryUtil.getSession(getManager(), getRequest());
         DocumentFactory factory = DocumentUtil.createDocumentFactory(getManager(), session);
 
-        Publication publication = PublicationUtil.getPublication(getManager(), "test");
+        Publication publication = getPublication("test");
         Document sourceDoc = factory.get(publication, Publication.AUTHORING_AREA, "/tutorial", "en");
         Document destDoc = factory.get(publication, Publication.AUTHORING_AREA, "/concepts", "en");
 

Modified: lenya/trunk/src/modules/migration/java/test/org/apache/lenya/cms/migration/MigrateUuidsTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/migration/java/test/org/apache/lenya/cms/migration/MigrateUuidsTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules/migration/java/test/org/apache/lenya/cms/migration/MigrateUuidsTest.java (original)
+++ lenya/trunk/src/modules/migration/java/test/org/apache/lenya/cms/migration/MigrateUuidsTest.java Fri Aug 11 11:42:59 2006
@@ -26,7 +26,6 @@
 import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.PublicationUtil;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
@@ -41,7 +40,7 @@
 
         Session session = RepositoryUtil.getSession(getManager(), getRequest());
         DocumentFactory factory = DocumentUtil.createDocumentFactory(getManager(), session);
-        Publication[] pubs = PublicationUtil.getPublications(getManager());
+        Publication[] pubs = factory.getPublications();
         for (int i = 0; i < pubs.length; i++) {
             this.migratedDocs.clear();
             migratePublication(pubs[i], factory);

Modified: lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/publication/ResourceWrapperTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/publication/ResourceWrapperTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/publication/ResourceWrapperTest.java (original)
+++ lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/publication/ResourceWrapperTest.java Fri Aug 11 11:42:59 2006
@@ -55,7 +55,7 @@
         Session session = RepositoryUtil.getSession(getManager(), getRequest());
         DocumentFactory factory = DocumentUtil.createDocumentFactory(getManager(), session);
 
-        Publication pub = PublicationUtil.getPublication(getManager(), "test");
+        Publication pub = getPublication("test");
 
         Document doc = createResource(factory, pub, documentId, getManager(), getLogger());
 

Modified: lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/site/usecases/ResourceLinkRewriterTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/site/usecases/ResourceLinkRewriterTest.java?rev=430854&r1=430853&r2=430854&view=diff
==============================================================================
--- lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/site/usecases/ResourceLinkRewriterTest.java (original)
+++ lenya/trunk/src/modules/resource/java/test/org/apache/lenya/cms/site/usecases/ResourceLinkRewriterTest.java Fri Aug 11 11:42:59 2006
@@ -19,7 +19,6 @@
 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.PublicationUtil;
 import org.apache.lenya.cms.publication.ResourceWrapperTest;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
@@ -39,8 +38,7 @@
         Session session = RepositoryUtil.getSession(getManager(), getRequest());
         DocumentFactory factory = DocumentUtil.createDocumentFactory(getManager(), session);
 
-        Publication pub = PublicationUtil.getPublication(getManager(), "test");
-        
+        Publication pub = getPublication("test");
         
         ResourceWrapperTest.createResource(factory, pub, documentId, getManager(), getLogger());
         



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