Author: jlaskowski
Date: Thu Dec 16 11:55:53 2004
New Revision: 122575

URL: http://svn.apache.org/viewcvs?view=rev&rev=122575
Log:
It's no longer mandatory to specify java.endorsed.dirs on the command line 
while starting org/apache/geronimo/Tomcat configuration or its webapps.

The variable is set to point to 'lib' directory of Geronimo build. However, the 
lib contains Xerces 2.6.0 jars (xercesImpl-2.6.0.jar and 
xmlParserAPIs-2.2.1.jar), which doesn't seem to work well. Either the libs will 
be removed or Xerces will be upgraded to 2.6.2 (these jars work fine). 
Currently, the only way to run the tomcat configuration is to remove Xerces 
jars from lib directory - it seems Geronimo doesn't need them.

NOTE: If you want to run Tomcat or any webapp delete Xerces 2.6.0 libs from lib 
directory of Geronimo build.


Modified:
   geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml
   geronimo/trunk/modules/tomcat/maven.xml
   
geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
   geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml
   
geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java

Modified: geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml
Url: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml?view=diff&rev=122575&p1=geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml&r1=122574&p2=geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml&r2=122575
==============================================================================
--- geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml        
(original)
+++ geronimo/trunk/modules/assembly/src/plan/j2ee-server-tomcat-plan.xml        
Thu Dec 16 11:55:53 2004
@@ -94,6 +94,8 @@
     <gbean name="geronimo.server:type=WebContainer,container=Tomcat" 
class="org.apache.geronimo.tomcat.TomcatContainer">
         <attribute name="catalinaHome">var/catalina</attribute>
         <attribute name="port">8090</attribute>
+        <attribute name="endorsedDirs">lib</attribute>
+        <reference 
name="ServerInfo">geronimo.system:role=ServerInfo</reference>
     </gbean>
 
 </configuration>

Modified: geronimo/trunk/modules/tomcat/maven.xml
Url: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/maven.xml?view=diff&rev=122575&p1=geronimo/trunk/modules/tomcat/maven.xml&r1=122574&p2=geronimo/trunk/modules/tomcat/maven.xml&r2=122575
==============================================================================
--- geronimo/trunk/modules/tomcat/maven.xml     (original)
+++ geronimo/trunk/modules/tomcat/maven.xml     Thu Dec 16 11:55:53 2004
@@ -54,7 +54,10 @@
 -->
 
     <preGoal name="test:test">
-        <mkdir dir="${maven.build.dir}/endorsed"/>
+    
+        <j:set var="endorsed.dir" value="${maven.build.dir}/endorsed"/>
+        
+        <mkdir dir="${endorsed.dir}"/>
         <mkdir dir="${maven.build.dir}/var"/>
         <mkdir dir="${maven.build.dir}/var/catalina"/>
         <mkdir dir="${maven.build.dir}/var/catalina/webapps"/>
@@ -69,7 +72,7 @@
 
         <j:forEach var="dep" items="${pom.dependencies}">
             <j:if test="${dep.artifactId.equals('xercesImpl') || 
dep.artifactId.equals('xml-apis')}">
-                <copy 
file="${maven.repo.local}/${dep.groupId}/jars/${dep.artifact}" 
todir="${maven.build.dir}/endorsed"/>
+                <copy 
file="${maven.repo.local}/${dep.groupId}/jars/${dep.artifact}" 
todir="${endorsed.dir}"/>
             </j:if>
         </j:forEach>
     </preGoal>

Modified: 
geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
Url: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java?view=diff&rev=122575&p1=geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java&r1=122574&p2=geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java&r2=122575
==============================================================================
--- 
geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
      (original)
+++ 
geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
      Thu Dec 16 11:55:53 2004
@@ -16,6 +16,8 @@
  */
 package org.apache.geronimo.tomcat;
 
+import java.io.File;
+
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
 import org.apache.catalina.Host;
@@ -27,6 +29,7 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.system.serverinfo.ServerInfo;
 
 /**
  * Apache Tomcat GBean
@@ -93,6 +96,16 @@
      */
     private int port;
 
+    /**
+     * The java.endorsed.dirs directories
+     */
+    private String endorsedDirs = System.getProperty("java.endorsed.dirs");
+
+    /**
+     * Used only to resolve the path to the endorsed standards dir
+     */
+    private ServerInfo serverInfo;
+
     // Required as it's referenced by deployed webapps
     public TomcatContainer() {
         setCatalinaHome(DEFAULT_CATALINA_HOME);
@@ -103,9 +116,10 @@
      * GBean constructor (invoked dynamically when the gbean is declared in a
      * plan)
      */
-    public TomcatContainer(String catalinaHome, int port) {
+    public TomcatContainer(String catalinaHome, int port, ServerInfo 
serverInfo) {
         setCatalinaHome(catalinaHome);
         setPort(port);
+        this.serverInfo = serverInfo;
     }
 
     public void doFail() {
@@ -124,6 +138,10 @@
     public void doStart() throws Exception {
         log.debug("doStart()");
 
+        // set endorsed dirs (so it's not mandatory to set it up by a user
+        // anymore)
+        System.setProperty("java.endorsed.dirs", 
serverInfo.resolvePath(getEndorsedDirs()));
+
         // The comments are from the javadoc of the Embedded class
 
         // 1. Instantiate a new instance of this class.
@@ -252,15 +270,26 @@
         this.port = port;
     }
 
+    public String getEndorsedDirs() {
+        return endorsedDirs;
+    }
+
+    public void setEndorsedDirs(String endorsedDirs) {
+        this.endorsedDirs = endorsedDirs;
+    }
+
     public static final GBeanInfo GBEAN_INFO;
 
     static {
         GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("Tomcat Web 
Container", TomcatContainer.class);
 
-        infoFactory.setConstructor(new String[] { "catalinaHome", "port" });
+        infoFactory.setConstructor(new String[] { "catalinaHome", "port", 
"ServerInfo" });
 
         infoFactory.addAttribute("catalinaHome", String.class, true);
         infoFactory.addAttribute("port", int.class, true);
+        infoFactory.addAttribute("endorsedDirs", String.class, true);
+
+        infoFactory.addReference("ServerInfo", ServerInfo.class);
 
         infoFactory.addOperation("addContext", new Class[] { 
TomcatContext.class });
         infoFactory.addOperation("removeContext", new Class[] { 
TomcatContext.class });

Modified: geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml
Url: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml?view=diff&rev=122575&p1=geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml&r1=122574&p2=geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml&r2=122575
==============================================================================
--- geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml      (original)
+++ geronimo/trunk/modules/tomcat/src/plan/tomcat-plan.xml      Thu Dec 16 
11:55:53 2004
@@ -92,6 +92,8 @@
     <gbean name="geronimo.server:type=WebContainer,container=Tomcat" 
class="org.apache.geronimo.tomcat.TomcatContainer">
         <attribute name="catalinaHome">var/catalina</attribute>
         <attribute name="port">8090</attribute>
+        <attribute name="endorsedDirs">lib</attribute>
+        <reference 
name="ServerInfo">geronimo.system:role=ServerInfo</reference>
     </gbean>
 
 </configuration>

Modified: 
geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java
Url: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java?view=diff&rev=122575&p1=geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java&r1=122574&p2=geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java&r2=122575
==============================================================================
--- 
geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java
        (original)
+++ 
geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java
        Thu Dec 16 11:55:53 2004
@@ -169,10 +169,6 @@
         loginServiceGBean.setAttribute("algorithm", "HmacSHA1");
         loginServiceGBean.setAttribute("password", "secret");
 
-        serverInfoName = new ObjectName("geronimo.system:role=ServerInfo");
-        serverInfoGBean = new GBeanData(serverInfoName, ServerInfo.GBEAN_INFO);
-        serverInfoGBean.setAttribute("baseDirectory", ".");
-
         propertiesLMName = new 
ObjectName("geronimo.security:type=LoginModule,name=demo-properties-login");
         propertiesLMGBean = new GBeanData(propertiesLMName, 
LoginModuleGBean.GBEAN_INFO);
         propertiesLMGBean.setAttribute("loginModuleClass",
@@ -198,7 +194,6 @@
 
         start(securityServiceGBean);
         start(loginServiceGBean);
-        start(serverInfoGBean);
         start(propertiesLMGBean);
         start(propertiesRealmGBean);
 
@@ -241,10 +236,18 @@
         kernel = new Kernel("test.kernel");
         kernel.boot();
 
+        serverInfoName = new ObjectName("geronimo.system:role=ServerInfo");
+        serverInfoGBean = new GBeanData(serverInfoName, ServerInfo.GBEAN_INFO);
+        serverInfoGBean.setAttribute("baseDirectory", ".");
+
+        start(serverInfoGBean);
+
         // Need to override the constructor for unit tests
         container = new GBeanData(containerName, TomcatContainer.GBEAN_INFO);
         container.setAttribute("catalinaHome", "target/var/catalina");
         container.setAttribute("port", new Integer(8080));
+        container.setAttribute("endorsedDirs", "target/endorsed");
+        container.setReferencePattern("ServerInfo", serverInfoName);
 
         start(container);
 

Reply via email to