svn commit: r568041 - in /lenya/trunk/src: impl/java/org/apache/lenya/cms/publication/ java/org/apache/lenya/cms/cocoon/components/modules/input/ java/org/apache/lenya/cms/cocoon/source/ java/org/apache/lenya/cms/publication/ modules-core/ac/java/src/o...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Tue Aug 21 02:47:23 2007
New Revision: 568041

URL: http://svn.apache.org/viewvc?rev=568041&view=rev
Log:
Added DocumentFactory.existsPublication(id) for simplicity, fixed publication handling in i18n (fixes bug 43171)

Modified:
    lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java
    lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
    lenya/trunk/src/modules-core/templating/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java
    lenya/trunk/src/webapp/lenya/i18n.xmap

Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java Tue Aug 21 02:47:23 2007
@@ -330,4 +330,8 @@
         return this.pubManager;
     }
 
+    public boolean existsPublication(String id) {
+        return Arrays.asList(getPubManager().getPublicationIds()).contains(id);
+    }
+
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java Tue Aug 21 02:47:23 2007
@@ -21,7 +21,6 @@
 package org.apache.lenya.cms.cocoon.components.modules.input;
 
 import java.io.File;
-import java.util.Arrays;
 import java.util.Map;
 
 import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -32,7 +31,6 @@
 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.PublicationManager;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.util.ServletHelper;
 
@@ -73,14 +71,12 @@
             Context context = ObjectModelHelper.getContext(objectModel);
             String servletContextPath = context.getRealPath("");
 
-            PublicationManager pubMgr = null;
             try {
                 DocumentFactory factory = getDocumentFactory();
                 Publication pub = null;
-                pubMgr = (PublicationManager) this.manager.lookup(PublicationManager.ROLE);
                 String pubId = new URLInformation(webappUrl).getPublicationId();
-                if (pubId != null && Arrays.asList(pubMgr.getPublicationIds()).contains(pubId)) {
-                    pub = pubMgr.getPublication(factory, pubId);
+                if (pubId != null && factory.existsPublication(pubId)) {
+                    pub = factory.getPublication(pubId);
                 }
                 envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(
                         factory,
@@ -90,10 +86,6 @@
                         pub);
             } catch (Exception e) {
                 throw new ConfigurationException("Resolving page envelope failed: ", e);
-            } finally {
-                if (pubMgr != null) {
-                    this.manager.release(pubMgr);
-                }
             }
             request.setAttribute(PageEnvelope.class.getName(), envelope);
         }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java Tue Aug 21 02:47:23 2007
@@ -73,6 +73,8 @@
                 value = envelope.getArea();
             } else if (name.equals(PageEnvelope.CONTEXT)) {
                 value = envelope.getContext();
+            } else if (name.equals(PageEnvelope.IS_PUBLICATION)) {
+                value = Boolean.toString(envelope.getPublication() != null);
             } else if (name.equals(PageEnvelope.PUBLICATION_ID)) {
                 value = envelope.getPublication().getId();
             } else if (name.equals(PageEnvelope.PUBLICATION)) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java Tue Aug 21 02:47:23 2007
@@ -100,13 +100,12 @@
                 publicationId = info.getPublicationId();
             }
 
-            pubMgr = (PublicationManager) this.manager.lookup(PublicationManager.ROLE);
             DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
 
             String[] uris;
 
-            if (Arrays.asList(pubMgr.getPublicationIds()).contains(publicationId)) {
-                Publication pub = pubMgr.getPublication(factory, publicationId);
+            if (factory.existsPublication(publicationId)) {
+                Publication pub = factory.getPublication(publicationId);
                 AllExistingSourceResolver resolver = new AllExistingSourceResolver();
                 templateManager.visit(pub, path, resolver);
                 uris = resolver.getUris();

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java Tue Aug 21 02:47:23 2007
@@ -19,7 +19,6 @@
 
 import java.io.IOException;
 import java.net.MalformedURLException;
-import java.util.Arrays;
 import java.util.Map;
 
 import org.apache.avalon.framework.context.ContextException;
@@ -39,7 +38,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.PublicationManager;
 import org.apache.lenya.cms.publication.URLInformation;
 import org.apache.lenya.cms.publication.templating.ExistingSourceResolver;
 import org.apache.lenya.cms.publication.templating.PublicationTemplateManager;
@@ -94,7 +92,6 @@
             getLogger().debug("Path:         [" + path + "]");
         }
 
-        PublicationManager pubMgr = null;
         PublicationTemplateManager templateManager = null;
         SourceResolver sourceResolver = null;
         Source source = null;
@@ -113,10 +110,9 @@
                 publicationId = info.getPublicationId();
             }
 
-            pubMgr = (PublicationManager) this.manager.lookup(PublicationManager.ROLE);
             DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
-            if (Arrays.asList(pubMgr.getPublicationIds()).contains(publicationId)) {
-                Publication pub = pubMgr.getPublication(factory, publicationId);
+            if (factory.existsPublication(publicationId)) {
+                Publication pub = factory.getPublication(publicationId);
                 VisitingSourceResolver resolver = getSourceVisitor();
                 templateManager.visit(pub, path, resolver);
                 source = resolver.getSource();
@@ -151,9 +147,6 @@
         } finally {
             if (templateManager != null) {
                 this.manager.release(templateManager);
-            }
-            if (pubMgr != null) {
-                this.manager.release(pubMgr);
             }
             if (sourceResolver != null) {
                 this.manager.release(sourceResolver);

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=568041&r1=568040&r2=568041&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 Tue Aug 21 02:47:23 2007
@@ -117,5 +117,10 @@
      * @return All publications.
      */
     Publication[] getPublications();
-
+    
+    /**
+     * @param id The publication ID.
+     * @return If a publication with this ID exists.
+     */
+    boolean existsPublication(String id);
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java Tue Aug 21 02:47:23 2007
@@ -35,7 +35,7 @@
      * The names of the page envelope parameters.
      */
     public static final String[] PARAMETER_NAMES = { PageEnvelope.AREA, PageEnvelope.CONTEXT,
-            PageEnvelope.PUBLICATION_ID, PageEnvelope.PUBLICATION,
+            PageEnvelope.PUBLICATION_ID, PageEnvelope.PUBLICATION, PageEnvelope.IS_PUBLICATION,
             PageEnvelope.PUBLICATION_LANGUAGES_CSV, PageEnvelope.DOCUMENT,
             PageEnvelope.DOCUMENT_ID, PageEnvelope.DOCUMENT_PARENT, PageEnvelope.DOCUMENT_NAME,
             PageEnvelope.DOCUMENT_LABEL, PageEnvelope.DOCUMENT_URL,
@@ -53,6 +53,10 @@
      * <code>PUBLICATION</code> The publication
      */
     public static final String PUBLICATION = "publication";
+    /**
+     * <code>IS_PUBLICATION</code> If the current URL refers to a publication ("true" or "false").
+     */
+    public static final String IS_PUBLICATION = "is-publication";
     /**
      * <code>PUBLICATION_LANGUAGES_CSV</code> A list of the publication's languages,
      * comma-seperated

Modified: lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java (original)
+++ lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java Tue Aug 21 02:47:23 2007
@@ -21,7 +21,6 @@
 package org.apache.lenya.cms.ac;
 
 import java.io.File;
-import java.util.Arrays;
 
 import org.apache.avalon.framework.activity.Initializable;
 import org.apache.avalon.framework.configuration.Configurable;
@@ -38,7 +37,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.PublicationManager;
 import org.apache.lenya.cms.publication.URLInformation;
 
 /**
@@ -107,24 +105,19 @@
             URLInformation info = new URLInformation(webappUrl);
             String pubId = info.getPublicationId();
 
-            PublicationManager pubMgr = null;
             ContextUtility util = null;
             try {
                 util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
-                pubMgr = (PublicationManager) this.manager.lookup(PublicationManager.ROLE);
                 Request request = util.getRequest();
                 DocumentFactory factory = DocumentUtil.getDocumentFactory(manager, request);
-                if (pubId != null && Arrays.asList(pubMgr.getPublicationIds()).contains(pubId)) {
-                    publication = pubMgr.getPublication(factory, pubId);
+                if (pubId != null && factory.existsPublication(pubId)) {
+                    publication = factory.getPublication(pubId);
                 }
             } catch (Exception e) {
                 throw new AccessControlException(e);
             } finally {
                 if (util != null) {
                     this.manager.release(util);
-                }
-                if (pubMgr != null) {
-                    this.manager.release(pubMgr);
                 }
             }
             if (publication != null) {

Modified: lenya/trunk/src/modules-core/templating/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/templating/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/templating/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java (original)
+++ lenya/trunk/src/modules-core/templating/java/src/org/apache/lenya/cms/publication/usecases/CreatePublicationFromTemplate.java Tue Aug 21 02:47:23 2007
@@ -67,8 +67,7 @@
         if (!PublicationUtil.isValidPublicationID(publicationId)) {
             addErrorMessage("Please enter a valid publication ID!");
         } else {
-            Publication publication = getDocumentFactory().getPublication(publicationId);
-            if (publication.exists()) {
+            if (getDocumentFactory().existsPublication(publicationId)) {
                 addErrorMessage("A publication with this ID already exists.");
             }
         }

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/impl/UsecaseResolverImpl.java Tue Aug 21 02:47:23 2007
@@ -134,13 +134,10 @@
             DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
 
             URLInformation info = new URLInformation(webappUrl);
-            String publicationId = info.getPublicationId();
+            String pubId = info.getPublicationId();
 
-            if (publicationId != null) {
-                Publication pub = factory.getPublication(publicationId);
-                if (pub.exists()) {
-                    publication = pub;
-                }
+            if (pubId != null && factory.existsPublication(pubId)) {
+                publication = factory.getPublication(pubId);
             }
         } catch (Exception e) {
             throw new RuntimeException(e);

Modified: lenya/trunk/src/webapp/lenya/i18n.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/webapp/lenya/i18n.xmap?rev=568041&r1=568040&r2=568041&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/i18n.xmap (original)
+++ lenya/trunk/src/webapp/lenya/i18n.xmap Tue Aug 21 02:47:23 2007
@@ -28,8 +28,9 @@
   
   <map:resources>
     <map:resource name="serializeCatalogue">
-      <map:select type="resource-exists">
-        <map:when test="context://lenya/pubs/{page-envelope:publication-id}/config/publication.xml">
+      <map:select type="parameter">
+        <map:parameter name="parameter-selector-test" value="{page-envelope:is-publication}"/>
+        <map:when test="true">
           <map:transform src="resources/i18n/modules2xinclude.xsl">
             <map:parameter name="pubId" value="{page-envelope:publication-id}"/>
             <map:parameter name="catalogue" value="{catalogue}"/>
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.