You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by dd...@apache.org on 2006/12/06 01:46:17 UTC

svn commit: r482851 - in /portals/pluto/trunk: maven-pluto-plugin/src/main/java/org/apache/pluto/maven/ pluto-util/src/main/java/org/apache/pluto/util/assemble/ pluto-util/src/main/java/org/apache/pluto/util/assemble/file/

Author: ddewolf
Date: Tue Dec  5 16:46:16 2006
New Revision: 482851

URL: http://svn.apache.org/viewvc?view=rev&rev=482851
Log:
PLUTO-268, allow custom servlet in asssembler.  Thank you David Hay

Modified:
    portals/pluto/trunk/maven-pluto-plugin/src/main/java/org/apache/pluto/maven/AssembleMojo.java
    portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/AssemblerConfig.java
    portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/file/FileAssembler.java

Modified: portals/pluto/trunk/maven-pluto-plugin/src/main/java/org/apache/pluto/maven/AssembleMojo.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/maven-pluto-plugin/src/main/java/org/apache/pluto/maven/AssembleMojo.java?view=diff&rev=482851&r1=482850&r2=482851
==============================================================================
--- portals/pluto/trunk/maven-pluto-plugin/src/main/java/org/apache/pluto/maven/AssembleMojo.java (original)
+++ portals/pluto/trunk/maven-pluto-plugin/src/main/java/org/apache/pluto/maven/AssembleMojo.java Tue Dec  5 16:46:16 2006
@@ -15,13 +15,13 @@
  */
 package org.apache.pluto.maven;
 
+import java.io.File;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.logging.Log;
 import org.apache.pluto.util.assemble.Assembler;
 import org.apache.pluto.util.assemble.AssemblerConfig;
 import org.apache.pluto.util.assemble.AssemblerFactory;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.logging.Log;
-
-import java.io.File;
 
 /**
  * TODO: Document
@@ -58,8 +58,13 @@
      * @parameter expression="${project.build.directory}/pluto-resources/web.xml"
      */
     private File webXmlDestination = null;
-    
-    
+
+    /**
+     * The name of the dispatch servlet class to use
+     * @parameter
+     */
+    private String dispatchServletClass = null;
+
     // AbstractPlutoMojo Impl --------------------------------------------------
     
     protected void doExecute() throws Exception {
@@ -93,6 +98,7 @@
         config.setPortletDescriptor(portletXml);
         config.setWebappDescriptor(webXml);
         config.setDestination(webXmlDestination);
+        config.setDispatchServletClass(dispatchServletClass);
         return config;
     }
     

Modified: portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/AssemblerConfig.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/AssemblerConfig.java?view=diff&rev=482851&r1=482850&r2=482851
==============================================================================
--- portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/AssemblerConfig.java (original)
+++ portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/AssemblerConfig.java Tue Dec  5 16:46:16 2006
@@ -33,7 +33,9 @@
     
     /** The assemble destination, which points to the assembled WAR file. */
     private File destination = null;
-    
+
+    /** The class of the servlet that will handle portlet requests */
+    private String dispatchServletClass = null;
     
     // Public Methods ----------------------------------------------------------
     
@@ -61,5 +63,12 @@
         this.destination = destination;
         this.destination.getParentFile().mkdirs();
     }
-    
+
+    public String getDispatchServletClass() {
+        return dispatchServletClass;
+    }
+
+    public void setDispatchServletClass(String dispatchServletClass) {
+        this.dispatchServletClass = dispatchServletClass;
+    }
 }

Modified: portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/file/FileAssembler.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/file/FileAssembler.java?view=diff&rev=482851&r1=482850&r2=482851
==============================================================================
--- portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/file/FileAssembler.java (original)
+++ portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/file/FileAssembler.java Tue Dec  5 16:46:16 2006
@@ -15,33 +15,40 @@
  */
 package org.apache.pluto.util.assemble.file;
 
-import org.apache.pluto.util.assemble.Assembler;
-import org.apache.pluto.util.assemble.AssemblerConfig;
-import org.apache.pluto.util.UtilityException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Properties;
+
 import org.apache.pluto.descriptors.portlet.PortletAppDD;
 import org.apache.pluto.descriptors.portlet.PortletDD;
 import org.apache.pluto.descriptors.services.PortletAppDescriptorService;
 import org.apache.pluto.descriptors.services.castor.EntityResolverImpl;
 import org.apache.pluto.descriptors.services.castor.PortletAppDescriptorServiceImpl;
+import org.apache.pluto.util.UtilityException;
+import org.apache.pluto.util.assemble.Assembler;
+import org.apache.pluto.util.assemble.AssemblerConfig;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.util.*;
-
 /**
  *
  * @author <a href="mailto:ddewolf@apache.org">David H. DeWolf</a>
@@ -96,7 +103,8 @@
             		config.getWebappDescriptor());
             InputStream portletXmlIn = new FileInputStream(
             		config.getPortletDescriptor());
-            Document xmlDoc = updateWebappDescriptor(webXmlIn, portletXmlIn);
+            Document xmlDoc = updateWebappDescriptor(webXmlIn, portletXmlIn,
+                                                     config.getDispatchServletClass());
             webXmlIn.close();
             FileOutputStream webXmlOut = new FileOutputStream(
             		config.getDestination());
@@ -144,12 +152,21 @@
      * 
      * @param webXmlIn  input stream to the webapp descriptor.
      * @param portletXmlIn  input stream to the portlet app descriptor.
+     * @param dispatchServletClass The name of the servlet class to use for
+     *                         handling portlet requests
      * @return the updated webapp descriptor XML document.
      * @throws IOException
      */
     protected Document updateWebappDescriptor(InputStream webXmlIn,
-                                              InputStream portletXmlIn)
+                                              InputStream portletXmlIn,
+                                              String dispatchServletClass)
     throws IOException {
+
+        if (dispatchServletClass == null ||
+            dispatchServletClass.length() == 0 ||
+            dispatchServletClass.trim().length() == 0) {
+            dispatchServletClass = DISPATCH_SERVLET_CLASS;
+        }
     	
         Document webXmlDoc = parse(webXmlIn);
         Collection servletElements = new ArrayList();
@@ -173,7 +190,7 @@
             servlet.appendChild(servletName);
             
             Element servletClass = webXmlDoc.createElement("servlet-class");
-            servletClass.appendChild(webXmlDoc.createTextNode(DISPATCH_SERVLET_CLASS));
+            servletClass.appendChild(webXmlDoc.createTextNode(dispatchServletClass));
             servlet.appendChild(servletClass);
             
             Element initParam = webXmlDoc.createElement("init-param");