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 2007/08/21 11:47:24 UTC

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

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}"/>



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