You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/08/07 08:04:00 UTC

svn commit: r1616409 - in /tomee/tomee/trunk: arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/ tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ tomee/tomee-common/src/main/java/org/apache/tomee/in...

Author: rmannibucau
Date: Thu Aug  7 06:04:00 2014
New Revision: 1616409

URL: http://svn.apache.org/r1616409
Log:
fixing drop in war

Modified:
    tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
    tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
    tomee/tomee/trunk/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
    tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
    tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatEmbedder.java

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java?rev=1616409&r1=1616408&r2=1616409&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java Thu Aug  7 06:04:00 2014
@@ -39,9 +39,6 @@ import java.util.TreeMap;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-/*
- * TODO: delete old embedded adapter, move the tests and set those up
- */
 public class TomEEWebappContainer extends TomEEContainer<TomEEWebappConfiguration> {
 
     private static final Logger logger = Logger.getLogger(TomEEWebappContainer.class.getName());
@@ -131,7 +128,7 @@ public class TomEEWebappContainer extend
             }
 
             if (logger.isLoggable(Level.FINE)) {
-                final Map<Object, Object> map = new TreeMap<Object, Object>(System.getProperties());
+                final Map<Object, Object> map = new TreeMap<>(System.getProperties());
                 for (final Map.Entry<Object, Object> entry : map.entrySet()) {
                     System.out.printf("%s = %s\n", entry.getKey(), entry.getValue());
                 }
@@ -187,12 +184,9 @@ public class TomEEWebappContainer extend
         if (file.exists()) {
             Files.delete(file);
         }
-        final InputStream is = org.apache.openejb.loader.IO.read(resource);
 
-        try {
+        try (final InputStream is = org.apache.openejb.loader.IO.read(resource)) {
             IO.copy(is, file);
-        } finally {
-            is.close();
         }
     }
 
@@ -205,16 +199,11 @@ public class TomEEWebappContainer extend
     protected void downloadTomcat(final File catalinaDirectory, final String tomcatVersion) throws LifecycleException {
         String source = null;
 
-        if (tomcatVersion.startsWith("7.")) {
-            source = "http://archive.apache.org/dist/tomcat/tomcat-7/v" + tomcatVersion + "/bin/apache-tomcat-" + tomcatVersion + ".zip";
-        }
-
-        if (tomcatVersion.startsWith("6.")) {
-            source = "http://archive.apache.org/dist/tomcat/tomcat-6/v" + tomcatVersion + "/bin/apache-tomcat-" + tomcatVersion + ".zip";
-        }
-
-        if (tomcatVersion.startsWith("5.5")) {
-            source = "http://archive.apache.org/dist/tomcat/tomcat-5/v" + tomcatVersion + "/bin/apache-tomcat-" + tomcatVersion + ".zip";
+        try {
+            int v = Integer.parseInt(tomcatVersion.substring(0, tomcatVersion.indexOf('.')));
+            source = "http://archive.apache.org/dist/tomcat/tomcat-" + v + "/v" + v + "/bin/apache-tomcat-" + tomcatVersion + ".zip";
+        } catch (final Exception e) {
+            // no-op
         }
 
         if (source == null) {

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java?rev=1616409&r1=1616408&r2=1616409&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java Thu Aug  7 06:04:00 2014
@@ -150,7 +150,7 @@ public class TomcatLoader implements Loa
             if (paths.verify()) {
                 final Installer installer = new Installer(paths);
                 if (installer.getStatus() != Status.INSTALLED) {
-                    installer.installConfigFiles();
+                    installer.installConfigFiles(false);
                 }
             }
         }

Modified: tomee/tomee/trunk/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java?rev=1616409&r1=1616408&r2=1616409&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java (original)
+++ tomee/tomee/trunk/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java Thu Aug  7 06:04:00 2014
@@ -90,7 +90,7 @@ public class Installer implements Instal
     public void installAll() {
         installListener();
         installJavaagent();
-        installConfigFiles();
+        installConfigFiles(false);
 
         removeTomcatLibJar("annotations-api.jar");
         // addJavaeeInEndorsed();
@@ -175,7 +175,7 @@ public class Installer implements Instal
         installJavaagent();
 
         commentDeploymentDir();
-        installConfigFiles();
+        installConfigFiles(true);
 
         removeTomcatLibJar("annotations-api.jar");
         // addJavaeeInEndorsed();
@@ -543,8 +543,9 @@ public class Installer implements Instal
      *
      * NOTE:- If the existing conf/logging.properties file already has some openejb specific
      * configuration, then this method will just leave the logging.properties file alone
+     * @param builtIn
      */
-    public void installConfigFiles() {
+    public void installConfigFiles(final boolean builtIn) {
         final File openejbCoreJar = paths.getOpenEJBCoreJar();
         final File confDir = paths.getCatalinaConfDir();
         final Alerts alerts = this.alerts;
@@ -646,13 +647,8 @@ public class Installer implements Instal
                         openejbLoggingProps + "\r\n";
             }
         }
-        if (newLoggingProps != null) {
-            if (Installers.writeAll(
-                    loggingPropsFile,
-                    newLoggingProps.replace("java.util.logging.ConsoleHandler", "org.apache.tomee.jul.formatter.AsyncConsoleHandler"),
-                    alerts)) {
-                alerts.addInfo("Append OpenEJB config to logging.properties");
-            }
+        if (builtIn) {
+            installTomEEJuli(alerts, loggingPropsFile, newLoggingProps);
         }
 
         final File openejbSystemProperties = new File(confDir, "system.properties");
@@ -757,4 +753,15 @@ public class Installer implements Instal
             alerts.addInfo("Set jasper in production mode in TomEE web.xml");
         }
     }
+
+    private void installTomEEJuli(Alerts alerts, File loggingPropsFile, String newLoggingProps) {
+        if (newLoggingProps != null) {
+            if (Installers.writeAll(
+                    loggingPropsFile,
+                    newLoggingProps.replace("java.util.logging.ConsoleHandler", "org.apache.tomee.jul.formatter.AsyncConsoleHandler"),
+                    alerts)) {
+                alerts.addInfo("Append OpenEJB config to logging.properties");
+            }
+        }
+    }
 }

Modified: tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java?rev=1616409&r1=1616408&r2=1616409&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java Thu Aug  7 06:04:00 2014
@@ -45,6 +45,8 @@ public class LoaderServlet extends HttpS
      * {@inheritDoc}
      */
     public void init(final ServletConfig config) throws ServletException {
+        super.init(config);
+
         // only install once
         if (embedded) {
             return;
@@ -107,7 +109,7 @@ public class LoaderServlet extends HttpS
      */
     private String getWebappPath(final ServletConfig config) {
         final ServletContext ctx = config.getServletContext();
-        final File webInf = new File(ctx.getRealPath("WEB-INF"));
+        final File webInf = new File(ctx.getRealPath("/WEB-INF"));
         final File webapp = webInf.getParentFile();
         final String webappPath = webapp.getAbsolutePath();
         return webappPath;

Modified: tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatEmbedder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatEmbedder.java?rev=1616409&r1=1616408&r2=1616409&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatEmbedder.java (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomcatEmbedder.java Thu Aug  7 06:04:00 2014
@@ -21,6 +21,7 @@ import java.io.File;
 import java.lang.reflect.Method;
 import java.net.URL;
 import java.net.URI;
+import java.net.URLClassLoader;
 import java.net.URLDecoder;
 import java.util.Properties;
 
@@ -73,28 +74,10 @@ public class TomcatEmbedder {
         // set the ClassLoader to the one which loaded ServletConfig.class i.e. the parent ClassLoader
         Thread.currentThread().setContextClassLoader(catalinaCl);
         try {
-            // WebappClassLoader childCl = new WebappClassLoader(catalinaCl)
-            final Class<?> webappClClass = catalinaCl.loadClass("org.apache.catalina.loader.WebappClassLoader");
-            final ClassLoader childCl = (ClassLoader) webappClClass.getConstructor(ClassLoader.class).newInstance(catalinaCl);
-
-            // childCl.addRepository(tomee-loader.jar)
-            // Use reflection to add the tomee-loader.jar file to the repository of WebappClassLoader. 
-            // WebappClassLoader will now search for classes in this jar too
-            final File thisJar = getThisJar();
-            final String thisJarUrl = thisJar.toURI().toString();
-            webappClClass.getMethod("addRepository", String.class).invoke(childCl, thisJarUrl);
-
-            // childCl.addRepository(openejb-loader.jar)
-            // Use reflection to add the openejb-loader.jar file to the repository of WebappClassLoader. 
-            // WebappClassLoader will now search for classes in this jar too
-
-            final File jarFile = findOpenEJBJar(openejbWar, OPENEJB_LOADER_PREFIX);
-            final String openejbLoaderUrl = jarFile.toURI().toString();
-
-            webappClClass.getMethod("addRepository", String.class).invoke(childCl, openejbLoaderUrl);
-
-            // childCl.start()
-            webappClClass.getMethod("start").invoke(childCl);
+            final ClassLoader childCl = new URLClassLoader(new URL[] {
+                    getThisJar().toURI().toURL(),
+                    findOpenEJBJar(openejbWar, OPENEJB_LOADER_PREFIX).toURI().toURL()
+            });
 
             // TomcatHook.hook()
             //This is loaded by childCl and is defined in the tomee-loader