svn commit: r635107 [2/7] - in /lenya/branches/revolution/1.3.x: ./ src/cocoon/ src/java/org/apache/cocoon/components/source/ src/java/org/apache/lenya/ac/ src/java/org/apache/lenya/ac/cache/ src/java/org/apache/lenya/ac/file/ src/java/org/apache/lenya...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/MoveSiteTreeNodeTask.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/MoveSiteTreeNodeTask.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/MoveSiteTreeNodeTask.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/MoveSiteTreeNodeTask.java Sat Mar  8 14:58:32 2008
@@ -19,8 +19,8 @@
 
 package org.apache.lenya.cms.ant;
 
-import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.tools.ant.BuildException;
 
 /**

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RemoveLabelTask.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RemoveLabelTask.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RemoveLabelTask.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RemoveLabelTask.java Sat Mar  8 14:58:32 2008
@@ -19,8 +19,8 @@
 
 package org.apache.lenya.cms.ant;
 
-import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.Label;
+import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.SiteTreeException;
 import org.apache.lenya.cms.publication.SiteTreeNode;
 import org.apache.tools.ant.BuildException;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RenameLabelTask.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RenameLabelTask.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RenameLabelTask.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/RenameLabelTask.java Sat Mar  8 14:58:32 2008
@@ -19,9 +19,9 @@
 
 package org.apache.lenya.cms.ant;
 
-import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.Label;
+import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.SiteTreeException;
 import org.apache.lenya.cms.publication.SiteTreeNode;
 import org.apache.tools.ant.BuildException;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java Sat Mar  8 14:58:32 2008
@@ -23,7 +23,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuilder;
 import org.apache.lenya.cms.publication.Publication;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/StaticHTMLExporter.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/StaticHTMLExporter.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/StaticHTMLExporter.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/ant/StaticHTMLExporter.java Sat Mar  8 14:58:32 2008
@@ -22,7 +22,6 @@
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
-
 import org.apache.lenya.cms.publishing.ExportException;
 import org.apache.tools.ant.BuildException;
 

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/DefaultLeafCreator.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/DefaultLeafCreator.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/DefaultLeafCreator.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/DefaultLeafCreator.java Sat Mar  8 14:58:32 2008
@@ -20,7 +20,6 @@
 package org.apache.lenya.cms.authoring;
 
 import java.io.File;
-
 import org.apache.lenya.cms.publication.Publication;
 
 public class DefaultLeafCreator extends DefaultCreator {

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/ParentChildCreatorInterface.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/ParentChildCreatorInterface.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/ParentChildCreatorInterface.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/authoring/ParentChildCreatorInterface.java Sat Mar  8 14:58:32 2008
@@ -21,9 +21,7 @@
 
 import java.io.File;
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.Configuration;
-
 import org.apache.lenya.cms.publication.Publication;
 
 public interface ParentChildCreatorInterface {

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AbstractAuthorizerAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AbstractAuthorizerAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AbstractAuthorizerAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AbstractAuthorizerAction.java Sat Mar  8 14:58:32 2008
@@ -21,7 +21,6 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java Sat Mar  8 14:58:32 2008
@@ -21,7 +21,6 @@
 
 import java.util.Collections;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.cocoon.acting.ConfigurableServiceableAction;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthenticatorAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthenticatorAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthenticatorAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthenticatorAction.java Sat Mar  8 14:58:32 2008
@@ -21,7 +21,6 @@
 
 import java.util.Collections;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Redirector;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthorizerAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthorizerAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthorizerAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DelegatingAuthorizerAction.java Sat Mar  8 14:58:32 2008
@@ -21,7 +21,6 @@
 
 import java.util.Collections;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Redirector;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java Sat Mar  8 14:58:32 2008
@@ -14,14 +14,10 @@
  *  limitations under the License.
  *
  */
-
 /* $Id$  */
-
 package org.apache.lenya.cms.cocoon.acting;
-
 import java.util.Collections;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.ParameterException;
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.acting.AbstractAction;
@@ -29,67 +25,52 @@
 import org.apache.cocoon.environment.SourceResolver;
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.publication.PageEnvelopeException;
-import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.SiteTreeException;
-
 /**
- * Action that checks the sitetree if there is a node with the 
- * current document-id. This is used to prevent creation of documents
- * with non-unique document-ids
+ * Action that checks the sitetree if there is a node with the current document-id. This is used to prevent creation of documents with non-unique document-ids
  */
 public class DocumentIdExistsAction extends AbstractAction {
-
-    /**
-     * Check if there is a doument in the site tree with the given
-     * document-id and area [optional].
-     * 
-     * If yes return an empty map, if not return null.
-     * 
-     * @param redirector a <code>Redirector</code> value
-     * @param resolver a <code>SourceResolver</code> value
-     * @param objectModel a <code>Map</code> value
-     * @param source a <code>String</code> value
-     * @param parameters a <code>Parameters</code> value
-     *
-     * @return an empty <code>Map</code> if there is a document 
-     * with the given document-id and area [optional, default is
-     * the authoring area], null otherwiese
-     *
-     * @exception PageEnvelopeException if the PageEnvelope could not be created.
-     * @exception SiteTreeException if the site tree can  not be accessed.
-     * @exception ParameterException if the parameters can not be accessed.
-     */
-
-    public static final String DOCUMENT_ID_PARAMETER_NAME = "document-id";
-    public static final String AREA_PARAMETER_NAME="area";
-
-    public Map act(
-        Redirector redirector,
-        SourceResolver resolver,
-        Map objectModel,
-        String source,
-        Parameters parameters)
-        throws PageEnvelopeException, SiteTreeException, ParameterException{
-
-        if (!parameters.isParameter(DOCUMENT_ID_PARAMETER_NAME))
-            return null;
-        String documentId = parameters.getParameter(DOCUMENT_ID_PARAMETER_NAME);
-
-        /* Use authoring area as default area for backward compatibility. */
-        String area = parameters.getParameter(AREA_PARAMETER_NAME, Publication.AUTHORING_AREA);
-
-        PageEnvelope pageEnvelope =
-            PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
-
-        SiteTree siteTree =
-            pageEnvelope.getPublication().getTree(area);
-
-        if (siteTree.getNode(documentId) != null) {
-            return Collections.EMPTY_MAP;
-        } else {
-            return null;
-        }
-    }
+   /**
+    * Check if there is a doument in the site tree with the given document-id and area [optional].
+    * 
+    * If yes return an empty map, if not return null.
+    * 
+    * @param redirector
+    *           a <code>Redirector</code> value
+    * @param resolver
+    *           a <code>SourceResolver</code> value
+    * @param objectModel
+    *           a <code>Map</code> value
+    * @param source
+    *           a <code>String</code> value
+    * @param parameters
+    *           a <code>Parameters</code> value
+    * 
+    * @return an empty <code>Map</code> if there is a document with the given document-id and area [optional, default is the authoring area], null otherwiese
+    * 
+    * @exception PageEnvelopeException
+    *               if the PageEnvelope could not be created.
+    * @exception SiteTreeException
+    *               if the site tree can not be accessed.
+    * @exception ParameterException
+    *               if the parameters can not be accessed.
+    */
+   public static final String DOCUMENT_ID_PARAMETER_NAME = "document-id";
+   public static final String AREA_PARAMETER_NAME = "area";
+   public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws PageEnvelopeException, SiteTreeException, ParameterException {
+      if(!parameters.isParameter(DOCUMENT_ID_PARAMETER_NAME))
+         return null;
+      String documentId = parameters.getParameter(DOCUMENT_ID_PARAMETER_NAME);
+      /* Use authoring area as default area for backward compatibility. */
+      String area = parameters.getParameter(AREA_PARAMETER_NAME, Publication.AUTHORING_AREA);
+      PageEnvelope pageEnvelope = PageEnvelope.getCurrent();
+      SiteTree siteTree = pageEnvelope.getPublication().getTree(area);
+      if(siteTree.getNode(documentId) != null){
+         return Collections.EMPTY_MAP;
+      }else{
+         return null;
+      }
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/FirstChildExistsAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/FirstChildExistsAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/FirstChildExistsAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/FirstChildExistsAction.java Sat Mar  8 14:58:32 2008
@@ -14,16 +14,12 @@
  *  limitations under the License.
  *
  */
-
 /* $Id: LanguageExistsAction.java 43248 2004-08-17 21:58:49Z michi $  */
-
 package org.apache.lenya.cms.cocoon.acting;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.acting.AbstractAction;
 import org.apache.cocoon.environment.Redirector;
@@ -36,82 +32,71 @@
 import org.apache.lenya.cms.publication.NoChildDocumentExistException;
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.publication.PageEnvelopeException;
-import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.SiteTree;
 import org.apache.lenya.cms.publication.SiteTreeException;
 import org.apache.lenya.cms.publication.SiteTreeNode;
-
 /**
- * Action that checks the sitetree if there is a child document with the 
- * current language.
+ * Action that checks the sitetree if there is a child document with the current language.
  */
 public class FirstChildExistsAction extends AbstractAction {
-    
-
-    /**
-     * Check if the current document-id has a child document for the 
-     * currently requested language.
-     * 
-     * If yes return an empty map, if not return null.
-     * 
-     * @param redirector a <code>Redirector</code> value
-     * @param resolver a <code>SourceResolver</code> value
-     * @param objectModel a <code>Map</code> value
-     * @param source a <code>String</code> value
-     * @param parameters a <code>Parameters</code> value
-     *
-     * @return an empty <code>Map</code> if there is a version of this 
-     * document for the current language, null otherwiese
-     *
-     * @exception DocumentDoesNotExistException if there is no document with the specified document-id.
-     * @exception PageEnvelopeException if the PageEnvelope could not be created.
-     * @exception DocumentException if the language information could not be fetched from the document.
-     * @throws SiteTreeException if the sitetree couldn't be created
-     * @throws DocumentBuildException if the DocumentBuilder couldn't be created
-     */
-    public Map act(
-        Redirector redirector,
-        SourceResolver resolver,
-        Map objectModel,
-        String source,
-        Parameters parameters)
-        throws PageEnvelopeException, DocumentDoesNotExistException, DocumentException, SiteTreeException, DocumentBuildException {
-
-        PageEnvelope pageEnvelope =
-            PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
-        Publication publication = pageEnvelope.getPublication();
-        String area = pageEnvelope.getDocument().getArea();
-        String language = pageEnvelope.getDocument().getLanguage();
-        String id = pageEnvelope.getDocument().getId();
-
-        SiteTree siteTree = publication.getTree(area);
-        SiteTreeNode node = siteTree.getNode(id);
-
-        if (node == null) {
-            throw new DocumentDoesNotExistException("The document " + pageEnvelope.getDocument().getId() + " does not exist. Check sitetree, it might need to be reloaded.");
-        }
-        
-        SiteTreeNode[] children = node.getChildren(language);
-        if (children.length > 0) {
-
-            String childNodeId = children[0].getId();
-            String childId = id + "/" + childNodeId;
-            DocumentBuilder builder = publication.getDocumentBuilder();
-            String url = builder.buildCanonicalUrl(publication, area, childId, language);
-            Document childDocument = builder.buildDocument(publication, url);
-
-            if (!childDocument.existsInAnyLanguage()) {
-                throw new NoChildDocumentExistException("The document " + childId + " does not exist. Check sitetree, it might need to be reloaded.");
-            }
-            List availableLanguages = Arrays.asList(childDocument.getLanguages());
-
-            if (availableLanguages.contains(language)) {
-                return Collections.unmodifiableMap(Collections.EMPTY_MAP);
-            }
-        } else {
-            throw new NoChildDocumentExistException("This document has no children. Check sitetree, it might need to be reloaded.");
-        }
-        return null;
-    }
+   /**
+    * Check if the current document-id has a child document for the currently requested language.
+    * 
+    * If yes return an empty map, if not return null.
+    * 
+    * @param redirector
+    *           a <code>Redirector</code> value
+    * @param resolver
+    *           a <code>SourceResolver</code> value
+    * @param objectModel
+    *           a <code>Map</code> value
+    * @param source
+    *           a <code>String</code> value
+    * @param parameters
+    *           a <code>Parameters</code> value
+    * 
+    * @return an empty <code>Map</code> if there is a version of this document for the current language, null otherwiese
+    * 
+    * @exception DocumentDoesNotExistException
+    *               if there is no document with the specified document-id.
+    * @exception PageEnvelopeException
+    *               if the PageEnvelope could not be created.
+    * @exception DocumentException
+    *               if the language information could not be fetched from the document.
+    * @throws SiteTreeException
+    *            if the sitetree couldn't be created
+    * @throws DocumentBuildException
+    *            if the DocumentBuilder couldn't be created
+    */
+   public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws PageEnvelopeException, DocumentDoesNotExistException, DocumentException, SiteTreeException, DocumentBuildException {
+      PageEnvelope pageEnvelope = PageEnvelope.getCurrent();
+      Publication publication = pageEnvelope.getPublication();
+      String area = pageEnvelope.getDocument().getArea();
+      String language = pageEnvelope.getDocument().getLanguage();
+      String id = pageEnvelope.getDocument().getId();
+      SiteTree siteTree = publication.getTree(area);
+      SiteTreeNode node = siteTree.getNode(id);
+      if(node == null){
+         throw new DocumentDoesNotExistException("The document " + pageEnvelope.getDocument().getId() + " does not exist. Check sitetree, it might need to be reloaded.");
+      }
+      SiteTreeNode[] children = node.getChildren(language);
+      if(children.length > 0){
+         String childNodeId = children[0].getId();
+         String childId = id + "/" + childNodeId;
+         DocumentBuilder builder = publication.getDocumentBuilder();
+         String url = builder.buildCanonicalUrl(publication, area, childId, language);
+         Document childDocument = builder.buildDocument(publication, url);
+         if(!childDocument.existsInAnyLanguage()){
+            throw new NoChildDocumentExistException("The document " + childId + " does not exist. Check sitetree, it might need to be reloaded.");
+         }
+         List availableLanguages = Arrays.asList(childDocument.getLanguages());
+         if(availableLanguages.contains(language)){
+            return Collections.unmodifiableMap(Collections.EMPTY_MAP);
+         }
+      }else{
+         throw new NoChildDocumentExistException("This document has no children. Check sitetree, it might need to be reloaded.");
+      }
+      return null;
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ForceCheckInAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ForceCheckInAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ForceCheckInAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ForceCheckInAction.java Sat Mar  8 14:58:32 2008
@@ -19,20 +19,18 @@
 
 package org.apache.lenya.cms.cocoon.acting;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Date;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Redirector;
 import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.environment.SourceResolver;
 import org.apache.cocoon.environment.Session;
+import org.apache.cocoon.environment.SourceResolver;
 import org.apache.lenya.ac.Identity;
-import org.apache.lenya.cms.cocoon.acting.RevisionControllerAction;
-import org.apache.lenya.cms.rc.CheckOutEntry;
 import org.apache.lenya.cms.rc.CheckInEntry;
+import org.apache.lenya.cms.rc.CheckOutEntry;
 import org.apache.lenya.cms.rc.RCML;
 
 /**

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/HTMLFormSaveAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/HTMLFormSaveAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/HTMLFormSaveAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/HTMLFormSaveAction.java Sat Mar  8 14:58:32 2008
@@ -24,16 +24,14 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
-
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.thread.ThreadSafe;
 import org.apache.cocoon.acting.AbstractConfigurableAction;
@@ -45,11 +43,9 @@
 import org.apache.lenya.xml.DocumentHelper;
 import org.apache.lenya.xml.RelaxNG;
 import org.apache.lenya.xml.XPath;
-
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-
 import org.xmldb.common.xml.queries.XObject;
 import org.xmldb.common.xml.queries.XPathQuery;
 import org.xmldb.common.xml.queries.XPathQueryFactory;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java Sat Mar  8 14:58:32 2008
@@ -14,16 +14,12 @@
  *  limitations under the License.
  *
  */
-
 /* $Id$  */
-
 package org.apache.lenya.cms.cocoon.acting;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.acting.AbstractAction;
 import org.apache.cocoon.environment.Redirector;
@@ -33,56 +29,46 @@
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.PageEnvelope;
 import org.apache.lenya.cms.publication.PageEnvelopeException;
-import org.apache.lenya.cms.publication.PageEnvelopeFactory;
-
 /**
- * Action that checks the sitetree if there is a node with the 
- * current document-id and the current language, i.e. if the 
- * current document has a version in the current language.
+ * Action that checks the sitetree if there is a node with the current document-id and the current language, i.e. if the current document has a version in the current language.
  */
 public class LanguageExistsAction extends AbstractAction {
-
-    /**
-     * Check if the current document-id has a document for the 
-     * currently requested language.
-     * 
-     * If yes return an empty map, if not return null.
-     * 
-     * @param redirector a <code>Redirector</code> value
-     * @param resolver a <code>SourceResolver</code> value
-     * @param objectModel a <code>Map</code> value
-     * @param source a <code>String</code> value
-     * @param parameters a <code>Parameters</code> value
-     *
-     * @return an empty <code>Map</code> if there is a version of this 
-     * document for the current language, null otherwiese
-     *
-     * @exception DocumentDoesNotExistException if there is no document with the specified document-id.
-     * @exception PageEnvelopeException if the PageEnvelope could not be created.
-     * @exception DocumentException if the language information could not be fetched from the document.
-     */
-    public Map act(
-        Redirector redirector,
-        SourceResolver resolver,
-        Map objectModel,
-        String source,
-        Parameters parameters)
-        throws PageEnvelopeException, DocumentDoesNotExistException, DocumentException {
-
-        PageEnvelope pageEnvelope =
-            PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
-
-        Document doc = pageEnvelope.getDocument();
-        String language = doc.getLanguage();
-
-        if (!doc.existsInAnyLanguage()) {
-            throw new DocumentDoesNotExistException("Document " + doc.getId() + " does not exist. Check sitetree, it might need to be reloaded.");
-        }
-        List availableLanguages = Arrays.asList(doc.getLanguages());
-
-        if (availableLanguages.contains(language)) {
-            return Collections.unmodifiableMap(Collections.EMPTY_MAP);
-        }
-        return null;
-    }
+   /**
+    * Check if the current document-id has a document for the currently requested language.
+    * 
+    * If yes return an empty map, if not return null.
+    * 
+    * @param redirector
+    *           a <code>Redirector</code> value
+    * @param resolver
+    *           a <code>SourceResolver</code> value
+    * @param objectModel
+    *           a <code>Map</code> value
+    * @param source
+    *           a <code>String</code> value
+    * @param parameters
+    *           a <code>Parameters</code> value
+    * 
+    * @return an empty <code>Map</code> if there is a version of this document for the current language, null otherwiese
+    * 
+    * @exception DocumentDoesNotExistException
+    *               if there is no document with the specified document-id.
+    * @exception PageEnvelopeException
+    *               if the PageEnvelope could not be created.
+    * @exception DocumentException
+    *               if the language information could not be fetched from the document.
+    */
+   public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws PageEnvelopeException, DocumentDoesNotExistException, DocumentException {
+      PageEnvelope pageEnvelope = PageEnvelope.getCurrent();
+      Document doc = pageEnvelope.getDocument();
+      String language = doc.getLanguage();
+      if(!doc.existsInAnyLanguage()){
+         throw new DocumentDoesNotExistException("Document " + doc.getId() + " does not exist. Check sitetree, it might need to be reloaded.");
+      }
+      List availableLanguages = Arrays.asList(doc.getLanguages());
+      if(availableLanguages.contains(language)){
+         return Collections.unmodifiableMap(Collections.EMPTY_MAP);
+      }
+      return null;
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ParentChildCreatorAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ParentChildCreatorAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ParentChildCreatorAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ParentChildCreatorAction.java Sat Mar  8 14:58:32 2008
@@ -19,13 +19,18 @@
 
 package org.apache.lenya.cms.cocoon.acting;
 
+import java.io.File;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
 import org.apache.avalon.framework.parameters.ParameterException;
 import org.apache.avalon.framework.parameters.Parameters;
-
 import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.acting.AbstractComplementaryConfigurableAction;
 import org.apache.cocoon.environment.ObjectModelHelper;
@@ -33,28 +38,16 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.Session;
 import org.apache.cocoon.environment.SourceResolver;
-
 import org.apache.excalibur.source.Source;
-
 import org.apache.lenya.cms.authoring.ParentChildCreatorInterface;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationFactory;
-
 import org.dom4j.Attribute;
 import org.dom4j.Document;
 import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
 import org.dom4j.XPath;
-
 import org.dom4j.io.SAXReader;
-
-import java.io.File;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
 
 public class ParentChildCreatorAction extends AbstractComplementaryConfigurableAction
     implements Configurable {

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutTestAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutTestAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutTestAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ReservedCheckoutTestAction.java Sat Mar  8 14:58:32 2008
@@ -21,7 +21,6 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.environment.Redirector;
 import org.apache.cocoon.environment.SourceResolver;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ResourceExistsAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ResourceExistsAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ResourceExistsAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/ResourceExistsAction.java Sat Mar  8 14:58:32 2008
@@ -22,7 +22,6 @@
 import java.io.File;
 import java.net.URL;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.thread.ThreadSafe;
 import org.apache.cocoon.acting.ServiceableAction;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java Sat Mar  8 14:58:32 2008
@@ -30,7 +30,6 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuilder;
 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.rc.RCEnvironment;
 import org.apache.lenya.cms.rc.RevisionController;
@@ -72,7 +71,7 @@
       PageEnvelope envelope = null;
       Publication publication = null;
       try{
-         envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
+         envelope = PageEnvelope.getCurrent();
          publication = envelope.getPublication();
          document = envelope.getDocument();
       }catch(Exception e){

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RollbackAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RollbackAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RollbackAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/RollbackAction.java Sat Mar  8 14:58:32 2008
@@ -22,7 +22,6 @@
 import java.io.FileNotFoundException;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Redirector;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/TaskAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/TaskAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/TaskAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/TaskAction.java Sat Mar  8 14:58:32 2008
@@ -21,7 +21,6 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.acting.AbstractAction;
 import org.apache.cocoon.environment.ObjectModelHelper;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/URIParametrizerAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/URIParametrizerAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/URIParametrizerAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/URIParametrizerAction.java Sat Mar  8 14:58:32 2008
@@ -20,7 +20,6 @@
 package org.apache.lenya.cms.cocoon.acting;
 
 import java.util.Map;
-
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.acting.ConfigurableServiceableAction;
 import org.apache.cocoon.environment.ObjectModelHelper;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java Sat Mar  8 14:58:32 2008
@@ -16,7 +16,6 @@
  */
 /* $Id$  */
 package org.apache.lenya.cms.cocoon.acting;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -29,7 +28,6 @@
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerConfigurationException;
 import javax.xml.transform.TransformerException;
-import org.apache.commons.io.FilenameUtils;
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.acting.AbstractConfigurableAction;
 import org.apache.cocoon.environment.ObjectModelHelper;
@@ -37,198 +35,190 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.SourceResolver;
 import org.apache.cocoon.servlet.multipart.Part;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.PageEnvelope;
-import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.ResourcesManager;
 import org.apache.lenya.xml.DocumentHelper;
 import org.apache.lenya.xml.NamespaceHelper;
 import org.w3c.dom.Element;
-
 /**
- * The class <code>UploadAction</code> implements an action that allows for
- * asset and content upload. An upload consists of a file upload plus optionally
- * a file creation for the meta data of the asset.
+ * The class <code>UploadAction</code> implements an action that allows for asset and content upload. An upload consists of a file upload plus optionally a file creation for the meta data of the asset.
  * 
  * Also see org.apache.lenya.cms.authoring.UploadHelper
  */
 public class UploadAction extends AbstractConfigurableAction {
-    private Document document;
-    private PageEnvelope pageEnvelope;
-    public static final String UPLOADASSET_PARAM_NAME = "properties.asset.data";
-    public static final String UPLOADASSET_PARAM_PREFIX = "properties.asset.";
-    public static final String UPLOADASSET_RETURN_FILESIZE = "file-size";
-    public static final String UPLOADASSET_RETURN_MIMETYPE = "mime-type";
-    public static final String CONTENT_PREFIX = "content";
-    public static final String FILE_NAME_REGEXP = "[-a-zA-Z0-9_.]+";
-    // optional parameters for meta data according to dublin core
-    public static final String[] DUBLIN_CORE_PARAMETERS = { "title", "creator", "subject", "description", "publisher", "contributor", "date", "type", "format", "identifier", "source", "language", "relation", "coverage", "rights" };
-    /**
-     * Retrieve the file from the request and store it in the corresponding
-     * directory, optionally create a meta file and optionally insert an image
-     * tag in the requesting document.
-     * 
-     * @param redirector
-     *            a <code>Redirector</code> value
-     * @param resolver
-     *            a <code>SourceResolver</code> value
-     * @param objectModel
-     *            a <code>Map</code> value
-     * @param source
-     *            a <code>String</code> value
-     * @param parameters
-     *            a <code>Parameters</code> value
-     * 
-     * @return a <code>Map</code> containing the referer or null if the name
-     *         of the file to be uploaded contains characters that are not
-     *         allowed (@see FILE_NAME_REGEXP).
-     * 
-     * @exception Exception
-     *                if an error occurs
-     */
-    public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws Exception {
-        Map results = new HashMap();
-        Request request = ObjectModelHelper.getRequest(objectModel);
-        pageEnvelope = PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
-        document = pageEnvelope.getDocument();
-        File assetFile;
-        logRequestParameters(request);
-        // determine if the upload is an asset or a content upload
-        String uploadType = request.getParameter("uploadtype");
-        // make asset upload the default if it is not specified
-        if (uploadType == null) {
-            uploadType = "asset";
-        }
-        Map dublinCoreParams = getDublinCoreParameters(request);
-        // upload the file to the uploadDir
-        Part part = (Part) request.get(UPLOADASSET_PARAM_NAME);
-        String fileName = part.getFileName();
-        if (!fileName.matches(FILE_NAME_REGEXP) || FilenameUtils.getExtension(fileName).equals("")) {
-            // the file name contains characters which mean trouble
-            // and are therefore not allowed.
-            getLogger().warn("The filename [" + fileName + "] is not valid for an asset.");
-            return null;
-        }
-        // convert spaces in the file name to underscores
-        fileName = fileName.replace(' ', '_');
-        String mimeType = part.getMimeType();
-        int fileSize = part.getSize();
-        results.put(UPLOADASSET_RETURN_MIMETYPE, mimeType);
-        results.put(UPLOADASSET_RETURN_FILESIZE, new Integer(fileSize));
-        dublinCoreParams.put("format", mimeType);
-        dublinCoreParams.put("extent", Integer.toString(fileSize));
-        if (uploadType.equals("asset")) {
-            ResourcesManager resourcesMgr = new ResourcesManager(document);
-            assetFile = new File(resourcesMgr.getPath(), fileName);
-            if (!resourcesMgr.getPath().exists()) {
-                resourcesMgr.getPath().mkdirs();
-            }
-            // create an extra file containing the meta description for
-            // the asset.
-            File metaDataFile = new File(resourcesMgr.getPath(), fileName + ".meta");
-            createMetaData(metaDataFile, dublinCoreParams);
-        }
-        // must be a content upload then
-        else {
-            assetFile = new File(document.getFile().getParent(), fileName);
-            getLogger().debug("assetFile: " + assetFile);
-        }
-        saveAsset(assetFile, part);
-        return Collections.unmodifiableMap(results);
-    }
-    /**
-     * Saves the asset to a file.
-     * 
-     * @param assetFile
-     *            The asset file.
-     * @param part
-     *            The part of the multipart request.
-     * @throws Exception
-     *             if an error occurs.
-     */
-    protected void saveAsset(File assetFile, Part part) throws Exception {
-        if (!assetFile.exists()) {
-            boolean created = assetFile.createNewFile();
-            if (!created) {
-                throw new RuntimeException("The file [" + assetFile + "] could not be created.");
-            }
-        }
-        byte[] buf = new byte[4096];
-        FileOutputStream out = new FileOutputStream(assetFile);
-        try {
-            InputStream in = part.getInputStream();
-            int read = in.read(buf);
-            while (read > 0) {
-                out.write(buf, 0, read);
-                read = in.read(buf);
-            }
-        } finally {
-            out.close();
-        }
-    }
-    /**
-     * Logs the request parameters.
-     * 
-     * @param request
-     *            The request.
-     */
-    protected void logRequestParameters(Request request) {
-        for (Enumeration myenum = request.getParameterNames(); myenum.hasMoreElements();) {
-            String param = (String) myenum.nextElement();
-            getLogger().debug(param + ": " + request.getParameter(param) + " [" + request.get(param) + "]");
-        }
-    }
-    /**
-     * Retrieves optional parameters for the meta file which contains dublin
-     * core information from the request.
-     * 
-     * @param request
-     *            The request.
-     * @return A map.
-     */
-    protected Map getDublinCoreParameters(Request request) {
-        HashMap dublinCoreParams = new HashMap();
-        for (int i = 0; i < DUBLIN_CORE_PARAMETERS.length; i++) {
-            String paramName = DUBLIN_CORE_PARAMETERS[i];
-            String paramValue = request.getParameter(UPLOADASSET_PARAM_PREFIX + paramName);
-            if (paramValue == null) {
-                paramValue = "";
-            }
-            dublinCoreParams.put(paramName, paramValue);
-        }
-        Iterator iter = dublinCoreParams.keySet().iterator();
-        while (iter.hasNext()) {
-            String paramName = (String) iter.next();
-            getLogger().debug(paramName + ": " + dublinCoreParams.get(paramName));
-        }
-        return dublinCoreParams;
-    }
-    /**
-     * Create the meta data file given the dublin core parameters.
-     * 
-     * @param metaDataFile
-     *            the file where the meta data file is to be created
-     * @param dublinCoreParams
-     *            a <code>Map</code> containing the dublin core values
-     * @throws TransformerConfigurationException
-     *             if an error occurs.
-     * @throws TransformerException
-     *             if an error occurs.
-     * @throws IOException
-     *             if an error occurs
-     * @throws ParserConfigurationException
-     *             if an error occurs.
-     */
-    protected void createMetaData(File metaDataFile, Map dublinCoreParams) throws TransformerConfigurationException, TransformerException, IOException, ParserConfigurationException {
-        // assert (metaDataFile.getParentFile().exists());
-        NamespaceHelper helper = new NamespaceHelper("http://purl.org/dc/elements/1.1/", "dc", "metadata");
-        Element root = helper.getDocument().getDocumentElement();
-        Iterator iter = dublinCoreParams.keySet().iterator();
-        while (iter.hasNext()) {
-            String tagName = (String) iter.next();
-            String tagValue = (String) dublinCoreParams.get(tagName);
-            root.appendChild(helper.createElement(tagName, tagValue));
-        }
-        DocumentHelper.writeDocument(helper.getDocument(), metaDataFile);
-    }
+   private Document document;
+   private PageEnvelope pageEnvelope;
+   public static final String UPLOADASSET_PARAM_NAME = "properties.asset.data";
+   public static final String UPLOADASSET_PARAM_PREFIX = "properties.asset.";
+   public static final String UPLOADASSET_RETURN_FILESIZE = "file-size";
+   public static final String UPLOADASSET_RETURN_MIMETYPE = "mime-type";
+   public static final String CONTENT_PREFIX = "content";
+   public static final String FILE_NAME_REGEXP = "[-a-zA-Z0-9_.]+";
+   // optional parameters for meta data according to dublin core
+   public static final String[] DUBLIN_CORE_PARAMETERS = {"title", "creator", "subject", "description", "publisher", "contributor", "date", "type", "format", "identifier", "source", "language", "relation", "coverage", "rights"};
+   /**
+    * Retrieve the file from the request and store it in the corresponding directory, optionally create a meta file and optionally insert an image tag in the requesting document.
+    * 
+    * @param redirector
+    *           a <code>Redirector</code> value
+    * @param resolver
+    *           a <code>SourceResolver</code> value
+    * @param objectModel
+    *           a <code>Map</code> value
+    * @param source
+    *           a <code>String</code> value
+    * @param parameters
+    *           a <code>Parameters</code> value
+    * 
+    * @return a <code>Map</code> containing the referer or null if the name of the file to be uploaded contains characters that are not allowed (@see FILE_NAME_REGEXP).
+    * 
+    * @exception Exception
+    *               if an error occurs
+    */
+   public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws Exception {
+      Map results = new HashMap();
+      Request request = ObjectModelHelper.getRequest(objectModel);
+      pageEnvelope = PageEnvelope.getCurrent();
+      document = pageEnvelope.getDocument();
+      File assetFile;
+      logRequestParameters(request);
+      // determine if the upload is an asset or a content upload
+      String uploadType = request.getParameter("uploadtype");
+      // make asset upload the default if it is not specified
+      if(uploadType == null){
+         uploadType = "asset";
+      }
+      Map dublinCoreParams = getDublinCoreParameters(request);
+      // upload the file to the uploadDir
+      Part part = (Part) request.get(UPLOADASSET_PARAM_NAME);
+      String fileName = part.getFileName();
+      if(!fileName.matches(FILE_NAME_REGEXP) || FilenameUtils.getExtension(fileName).equals("")){
+         // the file name contains characters which mean trouble
+         // and are therefore not allowed.
+         getLogger().warn("The filename [" + fileName + "] is not valid for an asset.");
+         return null;
+      }
+      // convert spaces in the file name to underscores
+      fileName = fileName.replace(' ', '_');
+      String mimeType = part.getMimeType();
+      int fileSize = part.getSize();
+      results.put(UPLOADASSET_RETURN_MIMETYPE, mimeType);
+      results.put(UPLOADASSET_RETURN_FILESIZE, new Integer(fileSize));
+      dublinCoreParams.put("format", mimeType);
+      dublinCoreParams.put("extent", Integer.toString(fileSize));
+      if(uploadType.equals("asset")){
+         ResourcesManager resourcesMgr = new ResourcesManager(document);
+         assetFile = new File(resourcesMgr.getPath(), fileName);
+         if(!resourcesMgr.getPath().exists()){
+            resourcesMgr.getPath().mkdirs();
+         }
+         // create an extra file containing the meta description for
+         // the asset.
+         File metaDataFile = new File(resourcesMgr.getPath(), fileName + ".meta");
+         createMetaData(metaDataFile, dublinCoreParams);
+      }
+      // must be a content upload then
+      else{
+         assetFile = new File(document.getFile().getParent(), fileName);
+         getLogger().debug("assetFile: " + assetFile);
+      }
+      saveAsset(assetFile, part);
+      return Collections.unmodifiableMap(results);
+   }
+   /**
+    * Saves the asset to a file.
+    * 
+    * @param assetFile
+    *           The asset file.
+    * @param part
+    *           The part of the multipart request.
+    * @throws Exception
+    *            if an error occurs.
+    */
+   protected void saveAsset(File assetFile, Part part) throws Exception {
+      if(!assetFile.exists()){
+         boolean created = assetFile.createNewFile();
+         if(!created){
+            throw new RuntimeException("The file [" + assetFile + "] could not be created.");
+         }
+      }
+      byte[] buf = new byte[4096];
+      FileOutputStream out = new FileOutputStream(assetFile);
+      try{
+         InputStream in = part.getInputStream();
+         int read = in.read(buf);
+         while(read > 0){
+            out.write(buf, 0, read);
+            read = in.read(buf);
+         }
+      }finally{
+         out.close();
+      }
+   }
+   /**
+    * Logs the request parameters.
+    * 
+    * @param request
+    *           The request.
+    */
+   protected void logRequestParameters(Request request) {
+      for(Enumeration myenum = request.getParameterNames(); myenum.hasMoreElements();){
+         String param = (String) myenum.nextElement();
+         getLogger().debug(param + ": " + request.getParameter(param) + " [" + request.get(param) + "]");
+      }
+   }
+   /**
+    * Retrieves optional parameters for the meta file which contains dublin core information from the request.
+    * 
+    * @param request
+    *           The request.
+    * @return A map.
+    */
+   protected Map getDublinCoreParameters(Request request) {
+      HashMap dublinCoreParams = new HashMap();
+      for(int i = 0; i < DUBLIN_CORE_PARAMETERS.length; i++){
+         String paramName = DUBLIN_CORE_PARAMETERS[i];
+         String paramValue = request.getParameter(UPLOADASSET_PARAM_PREFIX + paramName);
+         if(paramValue == null){
+            paramValue = "";
+         }
+         dublinCoreParams.put(paramName, paramValue);
+      }
+      Iterator iter = dublinCoreParams.keySet().iterator();
+      while(iter.hasNext()){
+         String paramName = (String) iter.next();
+         getLogger().debug(paramName + ": " + dublinCoreParams.get(paramName));
+      }
+      return dublinCoreParams;
+   }
+   /**
+    * Create the meta data file given the dublin core parameters.
+    * 
+    * @param metaDataFile
+    *           the file where the meta data file is to be created
+    * @param dublinCoreParams
+    *           a <code>Map</code> containing the dublin core values
+    * @throws TransformerConfigurationException
+    *            if an error occurs.
+    * @throws TransformerException
+    *            if an error occurs.
+    * @throws IOException
+    *            if an error occurs
+    * @throws ParserConfigurationException
+    *            if an error occurs.
+    */
+   protected void createMetaData(File metaDataFile, Map dublinCoreParams) throws TransformerConfigurationException, TransformerException, IOException, ParserConfigurationException {
+      // assert (metaDataFile.getParentFile().exists());
+      NamespaceHelper helper = new NamespaceHelper("http://purl.org/dc/elements/1.1/", "dc", "metadata");
+      Element root = helper.getDocument().getDocumentElement();
+      Iterator iter = dublinCoreParams.keySet().iterator();
+      while(iter.hasNext()){
+         String tagName = (String) iter.next();
+         String tagValue = (String) dublinCoreParams.get(tagName);
+         root.appendChild(helper.createElement(tagName, tagValue));
+      }
+      DocumentHelper.writeDocument(helper.getDocument(), metaDataFile);
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java Sat Mar  8 14:58:32 2008
@@ -16,7 +16,6 @@
  */
 /* $Id$  */
 package org.apache.lenya.cms.cocoon.acting;
-
 import java.util.Collections;
 import java.util.Map;
 import org.apache.avalon.framework.parameters.Parameters;
@@ -27,16 +26,13 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuilder;
 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.workflow.WorkflowFactory;
 import org.apache.lenya.workflow.Event;
 import org.apache.lenya.workflow.Situation;
 import org.apache.lenya.workflow.SynchronizedWorkflowInstances;
-
 /**
- * Action to invoke a workflow transition independently from the request
- * document URL. Parameters:
+ * Action to invoke a workflow transition independently from the request document URL. Parameters:
  * <ul>
  * <li><strong>area:</strong> The area.</li>
  * <li><strong>document-id:</strong> The document id.</li>
@@ -45,53 +41,51 @@
  * </ul>
  */
 public class WorkflowInvokerAction extends AbstractAction {
-    public static final String AREA = "area";
-    public static final String DOCUMENT_ID = "document-id";
-    public static final String LANGUAGE = "language";
-    public static final String EVENT = "event";
-    /**
-     * @see org.apache.cocoon.acting.Action#act(org.apache.cocoon.environment.Redirector,
-     *      org.apache.cocoon.environment.SourceResolver, java.util.Map,
-     *      java.lang.String, org.apache.avalon.framework.parameters.Parameters)
-     */
-    public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws Exception {
-        String area = parameters.getParameter(AREA);
-        String documentId = parameters.getParameter(DOCUMENT_ID);
-        String language = parameters.getParameter(LANGUAGE);
-        String eventName = parameters.getParameter(EVENT);
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug(getClass().getName() + " invoked.");
-            getLogger().debug("    Area:        [" + area + "]");
-            getLogger().debug("    Document ID: [" + documentId + "]");
-            getLogger().debug("    Language:    [" + language + "]");
-            getLogger().debug("    Event:       [" + eventName + "]");
-        }
-        PageEnvelope envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
-        Publication publication = envelope.getPublication();
-        DocumentBuilder builder = publication.getDocumentBuilder();
-        String url = builder.buildCanonicalUrl(publication, area, documentId, language);
-        Document document = builder.buildDocument(publication, url);
-        WorkflowFactory factory = WorkflowFactory.newInstance();
-        if (factory.hasWorkflow(document)) {
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("    Invoking workflow event");
+   public static final String AREA = "area";
+   public static final String DOCUMENT_ID = "document-id";
+   public static final String LANGUAGE = "language";
+   public static final String EVENT = "event";
+   /**
+    * @see org.apache.cocoon.acting.Action#act(org.apache.cocoon.environment.Redirector, org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
+    */
+   public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws Exception {
+      String area = parameters.getParameter(AREA);
+      String documentId = parameters.getParameter(DOCUMENT_ID);
+      String language = parameters.getParameter(LANGUAGE);
+      String eventName = parameters.getParameter(EVENT);
+      if(getLogger().isDebugEnabled()){
+         getLogger().debug(getClass().getName() + " invoked.");
+         getLogger().debug("    Area:        [" + area + "]");
+         getLogger().debug("    Document ID: [" + documentId + "]");
+         getLogger().debug("    Language:    [" + language + "]");
+         getLogger().debug("    Event:       [" + eventName + "]");
+      }
+      PageEnvelope envelope = PageEnvelope.getCurrent();
+      Publication publication = envelope.getPublication();
+      DocumentBuilder builder = publication.getDocumentBuilder();
+      String url = builder.buildCanonicalUrl(publication, area, documentId, language);
+      Document document = builder.buildDocument(publication, url);
+      WorkflowFactory factory = WorkflowFactory.newInstance();
+      if(factory.hasWorkflow(document)){
+         if(getLogger().isDebugEnabled()){
+            getLogger().debug("    Invoking workflow event");
+         }
+         SynchronizedWorkflowInstances instance = factory.buildSynchronizedInstance(document);
+         Situation situation = WorkflowHelper.buildSituation(objectModel);
+         Event[] events = instance.getExecutableEvents(situation);
+         Event event = null;
+         for(int i = 0; i < events.length; i++){
+            if(events[i].getName().equals(eventName)){
+               event = events[i];
             }
-            SynchronizedWorkflowInstances instance = factory.buildSynchronizedInstance(document);
-            Situation situation = WorkflowHelper.buildSituation(objectModel);
-            Event[] events = instance.getExecutableEvents(situation);
-            Event event = null;
-            for (int i = 0; i < events.length; i++) {
-                if (events[i].getName().equals(eventName)) {
-                    event = events[i];
-                }
-            }
-            // assert event != null;
-            instance.invoke(situation, event);
-        } else {
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("    Document has no workflow.");
-            }
-        }
-        return Collections.EMPTY_MAP;
-    }
+         }
+         // assert event != null;
+         instance.invoke(situation, event);
+      }else{
+         if(getLogger().isDebugEnabled()){
+            getLogger().debug("    Document has no workflow.");
+         }
+      }
+      return Collections.EMPTY_MAP;
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/XopusHandlerAction.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/XopusHandlerAction.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/XopusHandlerAction.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/acting/XopusHandlerAction.java Sat Mar  8 14:58:32 2008
@@ -24,8 +24,7 @@
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
-
-import org.apache.commons.io.FileUtils;
+import org.apache.avalon.framework.component.ComponentException;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.parameters.Parameters;
@@ -39,6 +38,7 @@
 import org.apache.cocoon.environment.http.HttpRequest;
 import org.apache.cocoon.util.IOUtils;
 import org.apache.cocoon.util.PostInputStream;
+import org.apache.commons.io.FileUtils;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.xml.dom.DOMParser;
 import org.apache.lenya.ac.Identity;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java Sat Mar  8 14:58:32 2008
@@ -22,7 +22,6 @@
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.service.ServiceException;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java Sat Mar  8 14:58:32 2008
@@ -14,75 +14,62 @@
  *  limitations under the License.
  *
  */
-
 /* $Id$  */
-
 package org.apache.lenya.cms.cocoon.components.modules.input;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DublinCoreImpl;
-
+import org.apache.lenya.cms.publication.PageEnvelope;
+import org.apache.lenya.cms.publication.PageEnvelopeException;
 /**
  * Input module to access the dublin core values.
  */
 public class DublinCoreModule extends AbstractPageEnvelopeModule {
-
-    /**
-     * @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
-     */
-    public Object getAttribute(String name, Configuration modeConf, Map objectModel)
-        throws ConfigurationException {
-
-        if (!Arrays.asList(DublinCoreImpl.ELEMENTS).contains(name)
-            && !Arrays.asList(DublinCoreImpl.TERMS).contains(name)) {
-            throw new ConfigurationException("The attribute [" + name + "] is not supported!");
-        }
-
-        Document document = getEnvelope(objectModel).getDocument();
-
-        if (document == null) {
-            throw new ConfigurationException("There is no document for this page envelope!");
-        }
-        Object value;
-        try {
-            value = document.getDublinCore().getFirstValue(name);
-        } catch (DocumentException e) {
-            throw new ConfigurationException(
-                "Obtaining dublin core value for [" + name + "] failed: ",
-                e);
-        }
-
-        return value;
-    }
-
-    /**
-     * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeNames(org.apache.avalon.framework.configuration.Configuration, java.util.Map)
-     */
-    public Iterator getAttributeNames(Configuration modeConf, Map objectModel)
-        throws ConfigurationException {
-
-        List names = new ArrayList();
-        names.addAll(Arrays.asList(DublinCoreImpl.ELEMENTS));
-        names.addAll(Arrays.asList(DublinCoreImpl.TERMS));
-        return names.iterator();
-    }
-
-    /**
-     * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeValues(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
-     */
-    public Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel)
-        throws ConfigurationException {
-        Object[] objects = { getAttribute(name, modeConf, objectModel)};
-        return objects;
-    }
-
+   /**
+    * @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
+    */
+   public Object getAttribute(String name, Configuration modeConf, Map objectModel) throws ConfigurationException {
+      if(!Arrays.asList(DublinCoreImpl.ELEMENTS).contains(name) && !Arrays.asList(DublinCoreImpl.TERMS).contains(name)){
+         throw new ConfigurationException("The attribute [" + name + "] is not supported!");
+      }
+      Document document;
+      try{
+         document = PageEnvelope.getCurrent().getDocument();
+      }catch(PageEnvelopeException e1){
+         throw new ConfigurationException("Resolving page envelope failed: ", e1);
+      }
+      if(document == null){
+         throw new ConfigurationException("There is no document for this page envelope!");
+      }
+      Object value;
+      try{
+         value = document.getDublinCore().getFirstValue(name);
+      }catch(DocumentException e){
+         throw new ConfigurationException("Obtaining dublin core value for [" + name + "] failed: ", e);
+      }
+      return value;
+   }
+   /**
+    * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeNames(org.apache.avalon.framework.configuration.Configuration, java.util.Map)
+    */
+   public Iterator getAttributeNames(Configuration modeConf, Map objectModel) throws ConfigurationException {
+      List names = new ArrayList();
+      names.addAll(Arrays.asList(DublinCoreImpl.ELEMENTS));
+      names.addAll(Arrays.asList(DublinCoreImpl.TERMS));
+      return names.iterator();
+   }
+   /**
+    * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeValues(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
+    */
+   public Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel) throws ConfigurationException {
+      Object[] objects = {getAttribute(name, modeConf, objectModel)};
+      return objects;
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/FallbackModule.java Sat Mar  8 14:58:32 2008
@@ -25,7 +25,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.service.ServiceException;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/ProxyUrlModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/ProxyUrlModule.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/ProxyUrlModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/ProxyUrlModule.java Sat Mar  8 14:58:32 2008
@@ -15,17 +15,15 @@
  *
  */
 package org.apache.lenya.cms.cocoon.components.modules.input;
-
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.Serviceable;
 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.components.modules.input.AbstractInputModule;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
@@ -40,10 +38,8 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuilder;
 import org.apache.lenya.cms.publication.PageEnvelope;
-import org.apache.lenya.cms.publication.PageEnvelopeFactory;
 import org.apache.lenya.cms.publication.Proxy;
 import org.apache.lenya.cms.publication.Publication;
-
 /**
  * Input module for getting the proxied URL of a document.
  * 
@@ -52,118 +48,86 @@
  * </p>
  * 
  * <p>
- * If there are no proxy settings in the file conf/publication.xconf, the values of the request
- * parameters 'server name' and 'port' will be used to construct the URL.
+ * If there are no proxy settings in the file conf/publication.xconf, the values of the request parameters 'server name' and 'port' will be used to construct the URL.
  * </p>
  * 
  * @version $Id:$
  */
 public class ProxyUrlModule extends AbstractInputModule implements Serviceable {
-
-    private ServiceManager manager;
-
-    /**
-     * @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String,
-     *      org.apache.avalon.framework.configuration.Configuration, java.util.Map)
-     */
-    public Object getAttribute(String name, Configuration modeConf, Map objectModel)
-            throws ConfigurationException {
-
-        ServiceSelector serviceSelector = null;
-        PolicyManager policyManager = null;
-        AccessControllerResolver acResolver = null;
-        AccreditableManager accreditableManager = null;
-
-        // Get parameters
-        final String[] attributes = name.split(":");
-
-        if (attributes.length < 3) {
-            throw new ConfigurationException("Invalid number of parameters: " + attributes.length
-                    + ". Expected area, document-id, language.");
-        }
-
-        final String area = attributes[0];
-        final String documentId = attributes[1];
-        final String language = attributes[2];
-
-        String value = null;
-        try {
-            PageEnvelope envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(objectModel);
-            Publication publication = envelope.getPublication();
-
-            DocumentBuilder builder = publication.getDocumentBuilder();
-
-            // Create canonical URL
-            String canonicalUrl = builder
-                    .buildCanonicalUrl(publication, area, documentId, language);
-
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("Created canonicalURL: " + canonicalUrl);
-            }
-
-            // Get proxy for document
-            serviceSelector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
-                    + "Selector");
-            acResolver = (AccessControllerResolver) serviceSelector
-                    .select(AccessControllerResolver.DEFAULT_RESOLVER);
-
-            AccessController accessController = acResolver.resolveAccessController(canonicalUrl);
-            if (accessController instanceof DefaultAccessController) {
-                DefaultAccessController defaultAccessController = (DefaultAccessController) accessController;
-                accreditableManager = defaultAccessController.getAccreditableManager();
-                Authorizer[] authorizers = defaultAccessController.getAuthorizers();
-                for (int i = 0; i < authorizers.length; i++) {
-                    if (authorizers[i] instanceof PolicyAuthorizer) {
-                        PolicyAuthorizer policyAuthorizer = (PolicyAuthorizer) authorizers[i];
-                        policyManager = policyAuthorizer.getPolicyManager();
-                    }
-                }
-            }
-
-            Policy policy = policyManager.getPolicy(accreditableManager, canonicalUrl);
-
-            Document doc = builder.buildDocument(publication, canonicalUrl);
-
-            Proxy proxy = doc.getPublication().getProxy(doc, policy.isSSLProtected());
-
-            if (proxy != null) {
-                value = proxy.getURL(doc);
-            } else {
-                // Take server name and port from request.
-                Request request = ObjectModelHelper.getRequest(objectModel);
-                value = "http://" + request.getServerName() + ":" + request.getServerPort()
-                        + request.getContextPath() + doc.getCompleteURL();
+   private ServiceManager manager;
+   /**
+    * @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
+    */
+   public Object getAttribute(String name, Configuration modeConf, Map objectModel) throws ConfigurationException {
+      ServiceSelector serviceSelector = null;
+      PolicyManager policyManager = null;
+      AccessControllerResolver acResolver = null;
+      AccreditableManager accreditableManager = null;
+      // Get parameters
+      final String[] attributes = name.split(":");
+      if(attributes.length < 3){
+         throw new ConfigurationException("Invalid number of parameters: " + attributes.length + ". Expected area, document-id, language.");
+      }
+      final String area = attributes[0];
+      final String documentId = attributes[1];
+      final String language = attributes[2];
+      String value = null;
+      try{
+         PageEnvelope envelope = PageEnvelope.getCurrent();
+         Publication publication = envelope.getPublication();
+         DocumentBuilder builder = publication.getDocumentBuilder();
+         // Create canonical URL
+         String canonicalUrl = builder.buildCanonicalUrl(publication, area, documentId, language);
+         if(getLogger().isDebugEnabled()){
+            getLogger().debug("Created canonicalURL: " + canonicalUrl);
+         }
+         // Get proxy for document
+         serviceSelector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE + "Selector");
+         acResolver = (AccessControllerResolver) serviceSelector.select(AccessControllerResolver.DEFAULT_RESOLVER);
+         AccessController accessController = acResolver.resolveAccessController(canonicalUrl);
+         if(accessController instanceof DefaultAccessController){
+            DefaultAccessController defaultAccessController = (DefaultAccessController) accessController;
+            accreditableManager = defaultAccessController.getAccreditableManager();
+            Authorizer[] authorizers = defaultAccessController.getAuthorizers();
+            for(int i = 0; i < authorizers.length; i++){
+               if(authorizers[i] instanceof PolicyAuthorizer){
+                  PolicyAuthorizer policyAuthorizer = (PolicyAuthorizer) authorizers[i];
+                  policyManager = policyAuthorizer.getPolicyManager();
+               }
             }
-
-        } catch (Exception e) {
-            throw new ConfigurationException("Obtaining value for [" + name + "] failed: ", e);
-        }
-        return value;
-    }
-
-    /**
-     * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeNames(org.apache.avalon.framework.configuration.Configuration,
-     *      java.util.Map)
-     */
-    public Iterator getAttributeNames(Configuration modeConf, Map objectModel)
-            throws ConfigurationException {
-        return Collections.EMPTY_SET.iterator();
-    }
-
-    /**
-     * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeValues(java.lang.String,
-     *      org.apache.avalon.framework.configuration.Configuration, java.util.Map)
-     */
-    public Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel)
-            throws ConfigurationException {
-        Object[] objects = { getAttribute(name, modeConf, objectModel) };
-        return objects;
-    }
-
-    /**
-     * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
-     */
-    public void service(ServiceManager manager) throws ServiceException {
-        this.manager = manager;
-    }
+         }
+         Policy policy = policyManager.getPolicy(accreditableManager, canonicalUrl);
+         Document doc = builder.buildDocument(publication, canonicalUrl);
+         Proxy proxy = doc.getPublication().getProxy(doc, policy.isSSLProtected());
+         if(proxy != null){
+            value = proxy.getURL(doc);
+         }else{
+            // Take server name and port from request.
+            Request request = ObjectModelHelper.getRequest(objectModel);
+            value = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + doc.getCompleteURL();
+         }
+      }catch(Exception e){
+         throw new ConfigurationException("Obtaining value for [" + name + "] failed: ", e);
+      }
+      return value;
+   }
+   /**
+    * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeNames(org.apache.avalon.framework.configuration.Configuration, java.util.Map)
+    */
+   public Iterator getAttributeNames(Configuration modeConf, Map objectModel) throws ConfigurationException {
+      return Collections.EMPTY_SET.iterator();
+   }
+   /**
+    * @see org.apache.cocoon.components.modules.input.InputModule#getAttributeValues(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
+    */
+   public Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel) throws ConfigurationException {
+      Object[] objects = {getAttribute(name, modeConf, objectModel)};
+      return objects;
+   }
+   /**
+    * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
+    */
+   public void service(ServiceManager manager) throws ServiceException {
+      this.manager = manager;
+   }
 }

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationContentDirModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationContentDirModule.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationContentDirModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationContentDirModule.java Sat Mar  8 14:58:32 2008
@@ -19,7 +19,6 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
-
 import org.apache.avalon.framework.activity.Disposable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;

Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationFallbackModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationFallbackModule.java?rev=635107&r1=635106&r2=635107&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationFallbackModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationFallbackModule.java Sat Mar  8 14:58:32 2008
@@ -5,47 +5,42 @@
  * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.apache.lenya.cms.cocoon.components.modules.input;
-
 import java.util.Map;
-
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.lenya.cms.publication.PageEnvelope;
+import org.apache.lenya.cms.publication.PageEnvelopeException;
 import org.apache.lenya.cms.publication.Publication;
-
 /**
  * @author nobby
  * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
+ * TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
  */
 public class PublicationFallbackModule extends FallbackModule {
-
-    /**
-     * Ctor.
-     */
-    public PublicationFallbackModule() {
-        super();
-    }
-
-    /**
-     * @throws ConfigurationException
-     * @see org.apache.lenya.cms.cocoon.components.modules.input.FallbackModule#getBaseURIs(java.util.Map)
-     */
-    protected String[] getBaseURIs(Map objectModel) throws ConfigurationException {
-        String[] superUris = super.getBaseURIs(objectModel);
-        String[] uris = new String[superUris.length + 1];
-
-        PageEnvelope envelope = getEnvelope(objectModel);
-        String publicationId = envelope.getPublication().getId();
-
-        String publicationUri = "context://" + Publication.PUBLICATION_PREFIX_URI + "/"
-                + publicationId + "/lenya";
-        uris[0] = publicationUri;
-
-        for (int i = 0; i < superUris.length; i++) {
-            uris[i + 1] = superUris[i];
-        }
-
-        return uris;
-    }
+   /**
+    * Ctor.
+    */
+   public PublicationFallbackModule() {
+      super();
+   }
+   /**
+    * @throws ConfigurationException
+    * @see org.apache.lenya.cms.cocoon.components.modules.input.FallbackModule#getBaseURIs(java.util.Map)
+    */
+   protected String[] getBaseURIs(Map objectModel) throws ConfigurationException {
+      String[] superUris = super.getBaseURIs(objectModel);
+      String[] uris = new String[superUris.length + 1];
+      PageEnvelope envelope;
+      try{
+         envelope = PageEnvelope.getCurrent();
+      }catch(PageEnvelopeException e){
+         throw new ConfigurationException("Resolving page envelope failed: ", e);
+      }
+      String publicationId = envelope.getPublication().getId();
+      String publicationUri = "context://" + Publication.PUBLICATION_PREFIX_URI + "/" + publicationId + "/lenya";
+      uris[0] = publicationUri;
+      for(int i = 0; i < superUris.length; i++){
+         uris[i + 1] = superUris[i];
+      }
+      return uris;
+   }
 }
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.