You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/04/21 21:58:41 UTC

svn commit: r1328730 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java

Author: dblevins
Date: Sat Apr 21 19:58:40 2012
New Revision: 1328730

URL: http://svn.apache.org/viewvc?rev=1328730&view=rev
Log:
Be more resilliant in finding libraries
TOMEE-163

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1328730&r1=1328729&r2=1328730&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java Sat Apr 21 19:58:40 2012
@@ -116,39 +116,11 @@ public class RemoteServer {
 
                 serverHasAlreadyBeenStarted = false;
 
-                File openejbJar = null;
-                File javaagentJar = null;
+                final File lib = new File(home, "lib");
+                final File webapplib = new File(new File(new File(home, "webapps"), "tomee"), "lib");
 
-                File lib;
-                if (!tomcat) {
-                    lib = new File(home, "lib");
-                } else {
-                    lib = new File(new File(new File(home, "webapps"), "tomee"), "lib");
-                }
-
-                for (File file : lib.listFiles()) {
-                    if (file.getName().startsWith("openejb-core") && file.getName().endsWith("jar")){
-                        openejbJar = file;
-                    }
-                    if (file.getName().startsWith("openejb-javaagent") && file.getName().endsWith("jar")){
-                        javaagentJar = file;
-                    }
-                }
-                if (javaagentJar == null) {
-                    javaagentJar = new File(home, "lib/openejb-javaagent.jar");
-                    if (!javaagentJar.exists()) {
-                        javaagentJar = null;
-                    }
-                }
-
-                if (openejbJar == null){
-                    dumpLibs(lib);
-                    throw new IllegalStateException("Cannot find the openejb-core jar in "+lib.getAbsolutePath());
-                }
-                if (javaagentJar == null){
-                    dumpLibs(lib);
-                    throw new IllegalStateException("Cannot find the openejb-javaagent jar in "+lib.getAbsolutePath());
-                }
+                final File openejbJar = lib("openejb-core", lib, webapplib);
+                final File javaagentJar = lib("openejb-javaagent", lib, webapplib);
 
                 //File openejbJar = new File(lib, "openejb-core-" + version + ".jar");
 
@@ -326,6 +298,21 @@ public class RemoteServer {
         }
     }
 
+    private File lib(String name, File... dirs) {
+        for (File dir : dirs) {
+            for (File file : dir.listFiles()) {
+                if (!file.isFile()) continue;
+                if (!file.getName().endsWith(".jar")) continue;
+                if (file.getName().startsWith(name)) return file;
+            }
+        }
+
+        for (File dir : dirs) {
+            dumpLibs(dir);
+        }
+        throw new IllegalStateException("Cannot find the " + name + " jar");
+    }
+
     // for debug purpose
     private static void dumpLibs(final File dir) {
         if (!dir.exists()) {