Author: mthl
Date: Sat Jul 13 21:37:40 2019 New Revision: 1863019 URL: http://svn.apache.org/viewvc?rev=1863019&view=rev Log: Improved: Remove support for “ofbiz-containers.xml” (OFBIZ-11100) To extend the containers loaded on startup, it was possible too both edit the “ofbiz-containers.xml” file or alternatively to define a container in a component. This redundancy adds extra complexity in the startup process for no good extensibility reason. The component container loader is more flexible since it allows developper to add new containers without touching the framework so it is better to only rely on this option. The component loader is now hard-coded directly in code. Removed: ofbiz/ofbiz-framework/trunk/framework/base/config/ofbiz-containers.xml ofbiz/ofbiz-framework/trunk/framework/base/dtd/ofbiz-containers.xsd Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/Container.java ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/ContainerLoader.java ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/Container.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/Container.java?rev=1863019&r1=1863018&r2=1863019&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/Container.java (original) +++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/Container.java Sat Jul 13 21:37:40 2019 @@ -45,12 +45,14 @@ public interface Container { * * @param ofbizCommands Command-line arguments. * @param name Unique name of the container's instance. - * @param configFile Location of the configuration file used to load this container. + * @param configFile always {@code null} but used to be the location of the global + * container configuration file which does not exist anymore * @throws ContainerException If an error was encountered. Throwing this exception * will halt container loading, so it should be thrown only when other containers * might depend on this one. */ - public void init(List<StartupCommand> ofbizCommands, String name, String configFile) throws ContainerException; + void init(List<StartupCommand> ofbizCommands, String name, String configFile) + throws ContainerException; /** * Start the container process. This method must not block - implementations Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/ContainerLoader.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/ContainerLoader.java?rev=1863019&r1=1863018&r2=1863019&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/ContainerLoader.java (original) +++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/container/ContainerLoader.java Sat Jul 13 21:37:40 2019 @@ -66,14 +66,17 @@ public class ContainerLoader { // loaders defined in startup (e.g. main, test, load-data, etc ...) List<String> loaders = config.loaders; - // load containers defined in ofbiz-containers.xml - Debug.logInfo("[Startup] Loading containers...", module); - List<ContainerConfig.Configuration> ofbizContainerConfigs = filterContainersHavingMatchingLoaders( - loaders, retrieveOfbizContainers(config.containerConfig)); - loadedContainers.addAll(loadContainersFromConfigurations(ofbizContainerConfigs, config, ofbizCommands)); + // Load mandatory container providing access to containers from components. + try { + ComponentContainer cc = new ComponentContainer(); + cc.init(ofbizCommands, "component-container", null); + loadedContainers.add(cc); + } catch (ContainerException e) { + throw new StartupException("Cannot init() component-container", e); + } - // load containers defined in components - Debug.logInfo("[Startup] Loading component containers...", module); + // Load containers defined in components. + Debug.logInfo("[Startup] Loading containers...", module); List<ContainerConfig.Configuration> componentContainerConfigs = filterContainersHavingMatchingLoaders( loaders, ComponentConfig.getAllConfigurations()); loadedContainers.addAll(loadContainersFromConfigurations(componentContainerConfigs, config, ofbizCommands)); @@ -82,15 +85,6 @@ public class ContainerLoader { startLoadedContainers(); } - private static Collection<ContainerConfig.Configuration> retrieveOfbizContainers(String configFile) - throws StartupException { - try { - return ContainerConfig.getConfigurations(configFile); - } catch (ContainerException e) { - throw new StartupException(e); - } - } - private static List<ContainerConfig.Configuration> filterContainersHavingMatchingLoaders(List<String> loaders, Collection<ContainerConfig.Configuration> containerConfigs) { return containerConfigs.stream() @@ -116,15 +110,16 @@ public class ContainerLoader { List<Container> loadContainers = new ArrayList<>(); for (ContainerConfig.Configuration containerCfg : containerConfigs) { Debug.logInfo("Loading container: " + containerCfg.name, module); - Container tmpContainer = loadContainer(config.containerConfig, containerCfg, ofbizCommands); + Container tmpContainer = loadContainer(containerCfg, ofbizCommands); loadContainers.add(tmpContainer); Debug.logInfo("Loaded container: " + containerCfg.name, module); } return loadContainers; } - private static Container loadContainer(String configFile, ContainerConfig.Configuration containerCfg, - List<StartupCommand> ofbizCommands) throws StartupException { + + private static Container loadContainer(ContainerConfig.Configuration containerCfg, List<StartupCommand> ofbizCommands) + throws StartupException { // load the container class ClassLoader loader = Thread.currentThread().getContextClassLoader(); Class<?> containerClass; @@ -150,7 +145,7 @@ public class ContainerLoader { // initialize the container object try { - containerObj.init(ofbizCommands, containerCfg.name, configFile); + containerObj.init(ofbizCommands, containerCfg.name, null); } catch (ContainerException e) { throw new StartupException("Cannot init() " + containerCfg.name, e); } Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java?rev=1863019&r1=1863018&r2=1863019&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java (original) +++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java Sat Jul 13 21:37:40 2019 @@ -40,7 +40,6 @@ public final class Config { public final String adminKey; public final int portOffset; public final int adminPort; - public final String containerConfig; public final List<String> loaders; public final String logDir; public final boolean shutdownAfterLoad; @@ -57,8 +56,6 @@ public final class Config { adminKey = getProperty(props, "ofbiz.admin.key", "NA"); portOffset = getPortOffsetValue(ofbizCommands, "0"); adminPort = getAdminPort(props, 0, portOffset); - containerConfig = getAbsolutePath(props, "ofbiz.container.config", - "framework/base/config/ofbiz-containers.xml", ofbizHome); loaders = Arrays.asList(getProperty(props, "ofbiz.start.loaders", "").split(",")); logDir = getAbsolutePath(props, "ofbiz.log.dir", "runtime/logs", ofbizHome); shutdownAfterLoad = getProperty(props, "ofbiz.auto.shutdown", "false").equalsIgnoreCase("true"); |
Free forum by Nabble | Edit this page |