|
Author: jacopoc
Date: Thu Jul 12 11:34:41 2012 New Revision: 1360637 URL: http://svn.apache.org/viewvc?rev=1360637&view=rev Log: Unified all the different variants of *-containers.xml files into one; this has been made possible because now you can declare the container loaders in the startup properties; also moved some container definitions from base/config to the proper component. It is now very easy to control the way containers are loaded. Removed: ofbiz/trunk/framework/base/config/both-containers.xml ofbiz/trunk/framework/base/config/install-containers.xml ofbiz/trunk/framework/base/config/limited-containers.xml ofbiz/trunk/framework/base/config/pos-containers.xml ofbiz/trunk/framework/base/config/rmi-containers.xml ofbiz/trunk/framework/base/config/test-containers.xml ofbiz/trunk/framework/base/config/testlist-containers.xml Modified: ofbiz/trunk/framework/base/config/ofbiz-containers.xml ofbiz/trunk/framework/base/ofbiz-component.xml ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.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/start.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/test.properties ofbiz/trunk/framework/start/src/org/ofbiz/base/start/testlist.properties ofbiz/trunk/framework/testtools/ofbiz-component.xml Modified: ofbiz/trunk/framework/base/config/ofbiz-containers.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/ofbiz-containers.xml?rev=1360637&r1=1360636&r2=1360637&view=diff ============================================================================== --- ofbiz/trunk/framework/base/config/ofbiz-containers.xml (original) +++ ofbiz/trunk/framework/base/config/ofbiz-containers.xml Thu Jul 12 11:34:41 2012 @@ -20,13 +20,17 @@ under the License. <ofbiz-containers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-containers.xsd"> - <loader name="main"/> - <loader name="rmi"/> - <!-- load the ofbiz component container (always first) --> - <container name="component-container" class="org.ofbiz.base.container.ComponentContainer"/> - <!-- load the cached classloader container (always second) --> - <container name="classloader-container" class="org.ofbiz.base.container.ClassLoaderContainer"/> + <!-- load the ofbiz component container (always first) --> + <container name="component-container" loaders="main,rmi,pos,install" class="org.ofbiz.base.container.ComponentContainer"/> + <container name="component-container-test" loaders="test" class="org.ofbiz.base.container.ComponentContainer"> + <property name="ofbiz.instrumenterClassName" value="org.ofbiz.base.config.CoberturaInstrumenter"/> + <property name="ofbiz.instrumenterFile" value="runtime/logs/cobertura-components.dat"/> + </container> + <container name="component-container-limited" loaders="limited" class="org.ofbiz.base.container.ComponentContainer"> + <property name="update-classpath" value="false"/> + </container> + <container name="component-container" loaders="testlist" class="org.ofbiz.base.container.JustLoadComponentsContainer"/> <!-- load JNDI/JOTM; this is no longer needed, leaving this in for now just in case someone wants to drop in JOTM from the specialized directory <container name="jotm-container" class="org.ofbiz.jotm.container.JotmContainer"> Modified: ofbiz/trunk/framework/base/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/ofbiz-component.xml?rev=1360637&r1=1360636&r2=1360637&view=diff ============================================================================== --- ofbiz/trunk/framework/base/ofbiz-component.xml (original) +++ ofbiz/trunk/framework/base/ofbiz-component.xml Thu Jul 12 11:34:41 2012 @@ -28,6 +28,9 @@ under the License. <test-suite loader="main" location="testdef/basetests.xml"/> + <!-- load the cached classloader container (always second) --> + <container name="classloader-container" loaders="main,rmi,pos,install,test" class="org.ofbiz.base.container.ClassLoaderContainer"/> + <!-- load the naming (JNDI) server --> <container name="naming-container" loaders="rmi" class="org.ofbiz.base.container.NamingServiceContainer"> <property name="host" value="0.0.0.0"/> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1360637&r1=1360636&r2=1360637&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Thu Jul 12 11:34:41 2012 @@ -33,6 +33,7 @@ import org.ofbiz.base.start.Config; import org.ofbiz.base.start.StartupException; import org.ofbiz.base.start.StartupLoader; import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.StringUtil; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; @@ -79,13 +80,27 @@ public class ContainerLoader implements this.loadedContainers.clear(); // get this loader's configuration file this.configFile = config.containerConfig; - Debug.logInfo("[Startup] Loading containers from " + configFile, module); + + List<String> loaderProfiles = null; + for (Map loaderMap: config.loaders) { + if (module.equals((String)loaderMap.get("class"))) { + loaderProfiles = StringUtil.split((String)loaderMap.get("profiles"), ","); + } + } + List<String> loaders = null; + try { + loaders = ContainerConfig.getLoaders(configFile); + } catch (ContainerException e) { + throw new StartupException(e); + } + if (loaderProfiles != null) { + loaders.addAll(loaderProfiles); + } + + Debug.logInfo("[Startup] Loading containers from " + configFile + " for loaders " + loaders, module); Collection<ContainerConfig.Container> containers = null; try { containers = ContainerConfig.getContainers(configFile); - if (UtilValidate.isEmpty(containers)) { - throw new StartupException("No containers loaded; problem with configuration"); - } } catch (ContainerException e) { throw new StartupException(e); } @@ -93,28 +108,42 @@ public class ContainerLoader implements if (this.unloading) { return; } - Debug.logInfo("Loading container: " + containerCfg.name, module); - Container tmpContainer = loadContainer(containerCfg, args); - this.loadedContainers.add(tmpContainer); - containerMap.put(containerCfg.name, tmpContainer); - - // TODO: Put container-specific code in the container. - // This is only used in case of OFBiz running in Geronimo or WASCE. It allows to use the RMIDispatcher - if (containerCfg.name.equals("rmi-dispatcher") && configFile.equals("limited-containers.xml")) { - try { - ContainerConfig.Container.Property initialCtxProp = containerCfg.getProperty("use-initial-context"); - String useCtx = initialCtxProp == null || initialCtxProp.value == null ? "false" : initialCtxProp.value; - if (!useCtx.equalsIgnoreCase("true")) { - //system.setProperty("java.security.policy", "client.policy"); maybe used if needed... - if (System.getSecurityManager() == null) { // needed by WASCE with a client.policy file. - System.setSecurityManager(new java.rmi.RMISecurityManager()); + boolean matchingLoaderFound = false; + if (UtilValidate.isEmpty(containerCfg.loaders) && UtilValidate.isEmpty(loaders)) { + matchingLoaderFound = true; + } else { + for (String loader: loaders) { + if (UtilValidate.isEmpty(containerCfg.loaders) || containerCfg.loaders.contains(loader)) { + matchingLoaderFound = true; + break; + } + } + } + if (matchingLoaderFound) { + Debug.logInfo("Loading container: " + containerCfg.name, module); + Container tmpContainer = loadContainer(containerCfg, args); + this.loadedContainers.add(tmpContainer); + containerMap.put(containerCfg.name, tmpContainer); + Debug.logInfo("Loaded container: " + containerCfg.name, module); + + // TODO: Put container-specific code in the container. + // This is only used in case of OFBiz running in Geronimo or WASCE. It allows to use the RMIDispatcher + if (containerCfg.name.equals("rmi-dispatcher") && configFile.equals("limited-containers.xml")) { + try { + ContainerConfig.Container.Property initialCtxProp = containerCfg.getProperty("use-initial-context"); + String useCtx = initialCtxProp == null || initialCtxProp.value == null ? "false" : initialCtxProp.value; + if (!useCtx.equalsIgnoreCase("true")) { + //system.setProperty("java.security.policy", "client.policy"); maybe used if needed... + if (System.getSecurityManager() == null) { // needed by WASCE with a client.policy file. + System.setSecurityManager(new java.rmi.RMISecurityManager()); + } + tmpContainer.start(); } - tmpContainer.start(); + } catch (ContainerException e) { + throw new StartupException("Cannot start() " + tmpContainer.getClass().getName(), e); + } catch (java.lang.AbstractMethodError e) { + throw new StartupException("Cannot start() " + tmpContainer.getClass().getName(), e); } - } catch (ContainerException e) { - throw new StartupException("Cannot start() " + tmpContainer.getClass().getName(), e); - } catch (java.lang.AbstractMethodError e) { - throw new StartupException("Cannot start() " + tmpContainer.getClass().getName(), e); } } } @@ -122,12 +151,6 @@ public class ContainerLoader implements return; } - List<String> loaders = null; - try { - loaders = ContainerConfig.getLoaders(configFile); - } catch (ContainerException e) { - throw new StartupException(e); - } List<ContainerConfig.Container> containersDefinedInComponents = ComponentConfig.getAllContainers(); for (ContainerConfig.Container containerCfg: containersDefinedInComponents) { boolean matchingLoaderFound = false; @@ -146,6 +169,7 @@ public class ContainerLoader implements Container tmpContainer = loadContainer(containerCfg, args); this.loadedContainers.add(tmpContainer); containerMap.put(containerCfg.name, tmpContainer); + Debug.logInfo("Loaded component's container: " + containerCfg.name, module); } } // Get hot-deploy container configuration files 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -24,11 +24,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.Properties; -import java.util.TimeZone; +import java.util.*; public class Config { public static final double REQUIRED_JDK = 1.6; @@ -71,7 +67,7 @@ public class Config { public String containerConfig; public String instrumenterClassName; public String instrumenterFile; - public List<String> loaders; + public List<Map> loaders; public String logDir; public String ofbizHome; public boolean requireCommJar = false; @@ -420,14 +416,18 @@ public class Config { instrumenterFile = getProp(props, "ofbiz.instrumenterFile", null); // loader classes - loaders = new ArrayList<String>(); + loaders = new ArrayList<Map>(); int currentPosition = 1; + Map loader = null; while (true) { + loader = new HashMap<String, String>(); String loaderClass = props.getProperty("ofbiz.start.loader" + currentPosition); if (loaderClass == null || loaderClass.length() == 0) { break; } else { - loaders.add(loaderClass); + loader.put("class", loaderClass); + loader.put("profiles", props.getProperty("ofbiz.start.loader" + currentPosition + ".loaders")); + loaders.add(loader); currentPosition++; } } 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -31,6 +31,7 @@ import java.net.Socket; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicReference; /** @@ -253,11 +254,12 @@ public class Start { ClassLoader classloader = Thread.currentThread().getContextClassLoader(); synchronized (this.loaders) { // initialize the loaders - for (String loaderClassName: config.loaders) { + for (Map loaderMap: config.loaders) { if (this.serverState.get() == ServerState.STOPPING) { return; } try { + String loaderClassName = (String)loaderMap.get("class"); Class<?> loaderClass = classloader.loadClass(loaderClassName); StartupLoader loader = (StartupLoader) loaderClass.newInstance(); loader.load(config, loaderArgs.toArray(new String[loaderArgs.size()])); 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -46,6 +46,7 @@ ofbiz.start.loader1=org.ofbiz.base.splas # --- StartupLoader implementations to load (in order) ofbiz.start.loader2=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader2.loaders=main,pos,rmi # -- Splash Logo ofbiz.start.splash.logo=framework/images/webapp/images/ofbiz_logo.gif 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -39,10 +39,11 @@ #ofbiz.log.dir=runtime/logs # --- Location (relative to ofbiz.home) for (normal) container configuration -ofbiz.container.config=framework/base/config/install-containers.xml +#ofbiz.container.config=framework/base/config/ofbiz-containers.xml # --- StartupLoader implementations to load (in order) ofbiz.start.loader1=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader1.loaders=install # -- Enable the shutdown hook #ofbiz.enable.hook=false 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -52,6 +52,7 @@ ofbiz.admin.key=so3du5kasd5dn # --- StartupLoader implementations to load (in order) ofbiz.start.loader1=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader1.loaders=main,rmi # -- Enable the shutdown hook ofbiz.enable.hook=true 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -39,13 +39,14 @@ #ofbiz.log.dir=runtime/logs # --- Location (relative to ofbiz.home) for (normal) container configuration -ofbiz.container.config=framework/base/config/pos-containers.xml +#ofbiz.container.config=framework/base/config/ofbiz-containers.xml # -- StartupLoader implementation for Splash Screen ofbiz.start.loader1=org.ofbiz.base.splash.SplashLoader # --- StartupLoader implementations to load (in order) ofbiz.start.loader2=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader2.loaders=pos # -- Splash Logo ofbiz.start.splash.logo=framework/images/webapp/images/ofbiz_logo.gif 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -39,10 +39,11 @@ #ofbiz.log.dir=runtime/logs # --- Location (relative to ofbiz.home) for (normal) container configuration -ofbiz.container.config=framework/base/config/rmi-containers.xml +#ofbiz.container.config=framework/base/config/ofbiz-containers.xml # --- StartupLoader implementations to load (in order) ofbiz.start.loader1=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader1.loaders=rmi # -- Enable the shutdown hook #ofbiz.enable.hook=true 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -52,6 +52,7 @@ ofbiz.admin.key=so3du5kasd5dn # --- StartupLoader implementations to load (in order) ofbiz.start.loader1=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader1.loaders=main,rmi # -- Enable the shutdown hook #ofbiz.enable.hook=true 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -39,10 +39,11 @@ #ofbiz.log.dir=runtime/logs # --- Location (relative to ofbiz.home) for (normal) container configuration -ofbiz.container.config=framework/base/config/test-containers.xml +#ofbiz.container.config=framework/base/config/ofbiz-containers.xml # --- StartupLoader implementations to load (in order) ofbiz.start.loader1=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader1.loaders=test,rmi # -- Enable the shutdown hook #ofbiz.enable.hook=true 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=1360637&r1=1360636&r2=1360637&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 Thu Jul 12 11:34:41 2012 @@ -39,10 +39,11 @@ #ofbiz.log.dir=runtime/logs # --- Location (relative to ofbiz.home) for (normal) container configuration -ofbiz.container.config=framework/base/config/testlist-containers.xml +#ofbiz.container.config=framework/base/config/ofbiz-containers.xml # --- StartupLoader implementations to load (in order) ofbiz.start.loader1=org.ofbiz.base.container.ContainerLoader +ofbiz.start.loader1.loaders=testlist # -- Enable the shutdown hook #ofbiz.enable.hook=true Modified: ofbiz/trunk/framework/testtools/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/testtools/ofbiz-component.xml?rev=1360637&r1=1360636&r2=1360637&view=diff ============================================================================== --- ofbiz/trunk/framework/testtools/ofbiz-component.xml (original) +++ ofbiz/trunk/framework/testtools/ofbiz-component.xml Thu Jul 12 11:34:41 2012 @@ -35,4 +35,6 @@ <service-resource type="model" loader="main" location="servicedef/services.xml"/> <container name="testtools-container" loaders="test" class="org.ofbiz.testtools.TestRunContainer"/> + <container name="testtools-container" loaders="testlist" class="org.ofbiz.testtools.TestListContainer"/> + </ofbiz-component> \ No newline at end of file |
| Free forum by Nabble | Edit this page |
