Author: jacopoc
Date: Mon Sep 8 10:38:28 2014 New Revision: 1623352 URL: http://svn.apache.org/r1623352 Log: A series of simplifications, cleanups of old code, and improvements to the code that setup the class paths for the OFBiz classloaders; the former code was setting the same jars (e.g. ofbiz.jar and all the base libs) in both the parent/child classloaders; it was unnecessarily setting the classpath system property when not required/useful. Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ComponentContainer.java ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Config.java ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java ofbiz/trunk/framework/start/src/org/ofbiz/base/start/both.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/install.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/jetty.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/pos.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/rmi.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/setup.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/start.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/test.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/testlist.properties Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ComponentContainer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ComponentContainer.java?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ComponentContainer.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ComponentContainer.java Mon Sep 8 10:38:28 2014 @@ -47,7 +47,7 @@ public class ComponentContainer implemen public static final String module = ComponentContainer.class.getName(); //protected static List loadedComponents2 = null; - protected Classpath classPath = new Classpath(System.getProperty("java.class.path")); + protected Classpath classPath = new Classpath(); protected Classpath libraryPath = new Classpath(System.getProperty("java.library.path")); protected String configFileLocation = null; private String name; @@ -136,7 +136,6 @@ public class ComponentContainer implemen classPath.instrument(instrumenterFile, instrumenterClassName); } - System.setProperty("java.class.path", classPath.toString()); System.setProperty("java.library.path", libraryPath.toString()); ClassLoader cl = classPath.getClassLoader(); Thread.currentThread().setContextClassLoader(cl); @@ -235,6 +234,7 @@ public class ComponentContainer implemen } Debug.logInfo("Loading component : [" + config.getComponentName() + "]", module); + boolean isBaseComponent = "base".equals(config.getComponentName()); List<ComponentConfig.ClasspathInfo> classpathInfos = config.getClasspathInfos(); String configRoot = config.getRootLocation(); configRoot = configRoot.replace('\\', '/'); @@ -263,6 +263,7 @@ public class ComponentContainer implemen if (path.exists()) { if (path.isDirectory()) { if ("dir".equals(cp.type)) { + if (!isBaseComponent) classPath.addComponent(configRoot + location); } // load all .jar, .zip files and native libs in this directory @@ -270,6 +271,7 @@ public class ComponentContainer implemen for (File file: path.listFiles()) { String fileName = file.getName().toLowerCase(); if (fileName.endsWith(".jar") || fileName.endsWith(".zip")) { + if (!isBaseComponent) classPath.addComponent(file); } else if (fileName.endsWith(nativeLibExt)) { containsNativeLibs = true; @@ -280,6 +282,7 @@ public class ComponentContainer implemen } } else { // add a single file + if (!isBaseComponent) classPath.addComponent(configRoot + location); } } else { Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Config.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Config.java?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Config.java (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Config.java Mon Sep 8 10:38:28 2014 @@ -43,18 +43,14 @@ public class Config { public final String baseDtd; public final String baseJar; public final String baseLib; - public final String commJar; public final String containerConfig; public final String instrumenterClassName; public final String instrumenterFile; public final List<Map<String, String>> loaders; public final String logDir; public final String ofbizHome; - public final boolean requireCommJar; - public final boolean requireToolsJar; public final boolean shutdownAfterLoad; public final String splashLogo; - public final String toolsJar; public final boolean useShutdownHook; Config(String[] args) throws IOException { @@ -73,10 +69,6 @@ public class Config { } String config = "org/ofbiz/base/start/" + firstArg + ".properties"; - // check the java_version - String javaVersion = System.getProperty("java.version"); - String javaVendor = System.getProperty("java.vendor"); - Properties props = this.getPropertiesFile(config); System.out.println("Start.java using configuration file " + config); @@ -103,16 +95,6 @@ public class Config { // base jar file baseJar = getOfbizHomeProp(props, "ofbiz.base.jar", "framework/base/build/lib/ofbiz-base.jar"); - // tools jar - String reqTJ = getProp(props, "java.tools.jar.required", "false"); - requireToolsJar = "true".equalsIgnoreCase(reqTJ); - toolsJar = this.findSystemJar(props, javaVendor, javaVersion, "tools.jar", requireToolsJar); - - // comm jar - String reqCJ = getProp(props, "java.comm.jar.required", "false"); - requireCommJar = "true".equalsIgnoreCase(reqCJ); - commJar = this.findSystemJar(props, javaVendor, javaVersion, "comm.jar", requireCommJar); - // log directory logDir = getOfbizHomeProp(props, "ofbiz.log.dir", "runtime/logs"); @@ -223,97 +205,6 @@ public class Config { loaders = Collections.unmodifiableList(loadersTmp); } - private String findSystemJar(Properties props, String javaVendor, String javaVersion, String jarName, boolean required) { - String fileSep = System.getProperty("file.separator"); - String javaHome = System.getProperty("java.home"); - String errorMsg = "Unable to locate " + jarName + " - "; - String jarLoc = "lib" + fileSep + jarName; - File tj = null; - - if ("tools.jar".equals(jarName) && javaVendor.startsWith("Apple")) { - // tools.jar is always available in Apple's JDK implementation - return null; - } - - // check to see if it is in the OFBIZ_HOME directory - tj = new File(ofbizHome + fileSep + jarName); - if (tj.exists()) { - return null; - } - - // check to see if it is in the base/lib directory - tj = new File(baseLib + fileSep + jarName); - if (tj.exists()) { - return null; - } - - // try to locate tools.jar from the properties file - String jarProps = props.getProperty("java." + jarName, null); - if (jarProps != null) { - tj = new File(jarProps); - if (!tj.exists()) { - if (required) { - System.err.println(errorMsg + tj.getAbsolutePath()); - } - } else { - // System.out.println(foundMsg + tj.getAbsolutePath()); - return jarProps; - } - } - - // next check the JAVA_HOME lib dir - tj = new File(javaHome + fileSep + jarLoc); - if (!tj.exists()) { - if (required) { - System.err.println(errorMsg + tj.getAbsolutePath()); - } - } else { - // System.out.println(foundMsg + tj.getAbsolutePath()); - return tj.getAbsolutePath(); - } - - // next if we are a JRE dir check the parent dir - String jreExt = fileSep + "jre"; - if (javaHome.toLowerCase().endsWith(jreExt)) { - javaHome = javaHome.substring(0, javaHome.lastIndexOf(fileSep)); - tj = new File(javaHome + fileSep + jarLoc); - if (!tj.exists()) { - if (required) { - System.err.println(errorMsg + tj.getAbsolutePath()); - } - } else { - // System.out.println(foundMsg + tj.getAbsolutePath()); - return tj.getAbsolutePath(); - } - } - - // special windows checking - if (javaHome.toLowerCase().charAt(1) == ':') { - String driveLetter = javaHome.substring(0, 2); - String windowsPath = driveLetter + fileSep + "j2sdk" + javaVersion; - tj = new File(windowsPath + fileSep + jarLoc); - if (!tj.exists()) { - if (required) { - System.err.println(errorMsg + tj.getAbsolutePath()); - } - } else { - // System.out.println(foundMsg + tj.getAbsolutePath()); - return tj.getAbsolutePath(); - } - } - - if (required) { - System.err.println(""); - System.err.println("Required library " + jarName + " could not be located."); - System.err.println("You may need to copy " + jarName + " into a loadable lib directory"); - System.err.println("(i.e. OFBIZ_HOME or OFBIZ_HOME/base/lib)"); - System.err.println(""); - System.exit(-1); - } - - return null; - } - private String getOfbizHomeProp(Properties props, String key, String def) { String value = System.getProperty(key); if (value != null) @@ -371,18 +262,11 @@ public class Config { } public void initClasspath(Classpath classPath) throws IOException { - // load tools.jar - if (this.toolsJar != null) { - classPath.addComponent(this.toolsJar); - } - // load comm.jar - if (this.commJar != null) { - classPath.addComponent(this.commJar); - } - // add OFBIZ_HOME to class path & load libs + // add OFBIZ_HOME to class path classPath.addClasspath(this.ofbizHome); - loadLibs(classPath, this.ofbizHome, false); - // load the lib directory + + // load all the resources from the framework base component + // load all the jars from the base lib directory if (this.baseLib != null) { loadLibs(classPath, this.baseLib, true); } Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java Mon Sep 8 10:38:28 2014 @@ -219,8 +219,6 @@ public final class Start { if (!fullInit) { return; } - // initialize the classpath - initClasspath(); // create the log directory createLogDirectory(); // create the listener thread @@ -241,25 +239,15 @@ public final class Start { initStartLoaders(); } - private void initClasspath() throws StartupException { - Classpath classPath = new Classpath(System.getProperty("java.class.path")); + private void initStartLoaders() throws StartupException { + Classpath classPath = new Classpath(); try { this.config.initClasspath(classPath); } catch (IOException e) { throw (StartupException) new StartupException("Couldn't initialized classpath").initCause(e); } - // Set the classpath/classloader - System.setProperty("java.class.path", classPath.toString()); ClassLoader classloader = classPath.getClassLoader(); Thread.currentThread().setContextClassLoader(classloader); - if (System.getProperty("DEBUG") != null) { - System.out.println("Startup Classloader: " + classloader.toString()); - System.out.println("Startup Classpath: " + classPath.toString()); - } - } - - private void initStartLoaders() throws StartupException { - ClassLoader classloader = Thread.currentThread().getContextClassLoader(); synchronized (this.loaders) { // initialize the loaders for (Map<String, String> loaderMap : config.loaders) { Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/both.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/both.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/both.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/both.properties Mon Sep 8 10:38:28 2014 @@ -17,15 +17,12 @@ # under the License. ############################################################################### #### -# OFBiz Startup Application Settings -#### - -# --- Java LIB tools.jar is not required -#java.tools.jar.required=false - -# --- External Base configuration files (relative to ofbiz.home) -#ofbiz.base.config=framework/base/config - +# OFBiz Startup Application Settings +#### + +# --- External Base configuration files (relative to ofbiz.home) +#ofbiz.base.config=framework/base/config + # --- External Base schema files (relative to ofbiz.home) #ofbiz.base.schema=framework/base/dtd Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/install.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/install.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/install.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/install.properties Mon Sep 8 10:38:28 2014 @@ -20,9 +20,6 @@ # OFBiz Startup Application Settings #### -# --- Java LIB tools.jar is not required -#java.tools.jar.required=false - # --- External Base configuration files (relative to ofbiz.home) #ofbiz.base.config=framework/base/config Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/jetty.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/jetty.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/jetty.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/jetty.properties Mon Sep 8 10:38:28 2014 @@ -20,10 +20,6 @@ # OFBiz Startup Application Settings #### -# --- By default we will locate the file using the java.home set by java (executable) -#java.tools.jar= -java.tools.jar.required=true - # --- By default we will use the current directory #ofbiz.home= Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/pos.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/pos.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/pos.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/pos.properties Mon Sep 8 10:38:28 2014 @@ -20,9 +20,6 @@ # OFBiz Startup Application Settings #### -# --- Java LIB tools.jar is not required -#java.tools.jar.required=false - # --- External Base configuration files (relative to ofbiz.home) #ofbiz.base.config=framework/base/config Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/rmi.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/rmi.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/rmi.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/rmi.properties Mon Sep 8 10:38:28 2014 @@ -20,9 +20,6 @@ # OFBiz Startup Application Settings #### -# --- By default we will locate the file using the java.home set by java (executable) -#java.tools.jar.required=false - # --- External Base configuration files (relative to ofbiz.home) #ofbiz.base.config=framework/base/config Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/setup.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/setup.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/setup.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/setup.properties Mon Sep 8 10:38:28 2014 @@ -20,9 +20,6 @@ # OFBiz Startup Application Settings #### -# --- Java LIB tools.jar is not required -#java.tools.jar.required=false - # --- External Base configuration files (relative to ofbiz.home) #ofbiz.base.config=framework/base/config Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/start.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/start.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/start.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/start.properties Mon Sep 8 10:38:28 2014 @@ -20,10 +20,6 @@ # OFBiz Startup Application Settings #### -# --- By default we will locate the file using the java.home set by java (executable) -#java.tools.jar= -#java.tools.jar.required=false - # --- By default we will use the current directory #ofbiz.home= Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/test.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/test.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/test.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/test.properties Mon Sep 8 10:38:28 2014 @@ -20,9 +20,6 @@ # OFBiz Startup Application Settings #### -# --- Java LIB tools.jar is not required -#java.tools.jar.required=false - # --- External Base configuration files (relative to ofbiz.home) #ofbiz.base.config=framework/base/config Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/testlist.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/testlist.properties?rev=1623352&r1=1623351&r2=1623352&view=diff ============================================================================== --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/testlist.properties (original) +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/testlist.properties Mon Sep 8 10:38:28 2014 @@ -20,12 +20,8 @@ # OFBiz Startup Application Settings #### -# --- Java LIB tools.jar is not required -#java.tools.jar.required=false - # --- External Base configuration files (relative to ofbiz.home) #ofbiz.base.config=framework/base/config - # --- External Base schema files (relative to ofbiz.home) #ofbiz.base.schema=framework/base/dtd |
Free forum by Nabble | Edit this page |