On Sep 12, 2014, at 6:16 PM, Jacques Le Roux <[email protected]> wrote:
> It was the easiest way I found to pass it everywhere I needed to change the > port I hope you'll understand that this is not a valid argument... especially from a person, like you, that is an OFBiz committer since a long time. By the way, I spent time cleaning your code in rev. 1624700. However the regressions that you have introduced with your commit are still there. Jacopo > > Jacques > > Le 12/09/2014 17:20, Jacopo Cappellato a écrit : >> Jacques, >> >> what was the rationale behind your design decision to add the portOffset >> field to the ClassLoaderContainer? Why ClassLoaderContainer? It doesn't make >> much sense to me... >> >> Jacopo >> >> On Oct 20, 2013, at 12:07 AM, [email protected] wrote: >> >>> Author: jleroux >>> Date: Sat Oct 19 22:07:35 2013 >>> New Revision: 1533839 >>> >>> URL: http://svn.apache.org/r1533839 >>> Log: >>> Set different ports for testing in a CI environment (e.g. Jenkins) >>> https://issues.apache.org/jira/browse/OFBIZ-4794 >>> >>> *What's for?* >>> Finally, OOTB the port offset is interesting in 2 cases: >>> # To eventually run Sonar on OFBiz sources >>> https://issues.apache.org/jira/browse/INFRA-3590 >>> # To simultaneously run the demos without having to change much things, >>> just one parameter (this will need to have the same commited in R13.07... >>> to be discussed...) >>> >>> Of course, It can be used for other purposes outside of the ASF context... >>> >>> *How it's done?* >>> Basically, I just added a portoffset integer parameter to 3 ant targets (of >>> course this JVM param can also be used in a Java call from command line): >>> start, start-pos, start-both, >>> >>> The portoffset parameter is set to zero by default in >>> ClassLoaderContainer.java. >>> If a value is passed, it's then grabed by Config.java and passed to >>> ClassLoaderContainer.java, where it's set to this value. >>> >>> The portoffset is then used to change in one shoot all the default ports >>> values defined (in config or hardcoded), and the admin port value >>> This is done in following classes: >>> CatalinaContainer >>> NamingServiceContainer >>> ServiceEngine through ServiceLocation >>> RmiServiceContainer >>> XMLRPCClientEngine >>> XmlRpcTests >>> >>> To avoid hardcoding locations in services definitions, I also created 2 >>> service-locations: main-http and main-soap >>> >>> *To summarize:* these changes will be used to run "ant start" with a >>> portoffset value which will take care of all ports values, including admin >>> port. For running R12.04 demo as stable we will still need to create a >>> patch for the last time. R13.07 could have a similar patch applied since >>> it's not yet released... >>> >>> Modified: >>> ofbiz/trunk/build.xml >>> >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ClassLoaderContainer.java >>> >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java >>> >>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java >>> ofbiz/trunk/framework/common/servicedef/services_test.xml >>> ofbiz/trunk/framework/service/config/serviceengine.xml >>> >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceEngine.java >>> >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceLocation.java >>> >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/XMLRPCClientEngine.java >>> >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/test/XmlRpcTests.java >>> ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Config.java >>> >>> Modified: ofbiz/trunk/build.xml >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/build.xml?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- ofbiz/trunk/build.xml (original) >>> +++ ofbiz/trunk/build.xml Sat Oct 19 22:07:35 2013 >>> @@ -408,11 +408,13 @@ under the License. >>> <!-- ================================================================== >>> --> >>> >>> <target name="start" >>> - description="Start OFBiz"> >>> + description="Start OFBiz (use -Dportoffset=portNumber to shift >>> all ports with the portNumber value)"> >>> <java jar="ofbiz.jar" fork="true"> >>> <jvmarg value="${memory.initial.param}"/> >>> <jvmarg value="${memory.max.param}"/> >>> <jvmarg value="${memory.maxpermsize.param}"/> >>> + <arg value="start"/> >>> + <arg value="-portoffset=${portoffset}"/> >>> </java> >>> </target> >>> <target name="start-batch" >>> @@ -436,21 +438,23 @@ under the License. >>> </java> >>> </target> >>> <target name="start-pos" >>> - description="Start OFBiz POS (Point of sale)"> >>> + description="Start OFBiz POS (Point of sale). Use >>> -Dportoffset=portNumber to shift all ports with the portNumber value."> >>> <java jar="ofbiz.jar" fork="true"> >>> <jvmarg value="${memory.initial.param}"/> >>> <jvmarg value="${memory.max.param}"/> >>> <jvmarg value="${memory.maxpermsize.param}"/> >>> <arg value="pos"/> >>> + <arg value="-portoffset=${portoffset}"/> >>> </java> >>> </target> >>> <target name="start-both" >>> - description="Start OFBiz in both Web and POS (Point of sale) >>> modes"> >>> + description="Start OFBiz in both Web and POS (Point of sale) >>> modes. Use -Dportoffset=portNumber to shift all ports with the portNumber >>> value."> >>> <java jar="ofbiz.jar" fork="true"> >>> <jvmarg value="${memory.initial.param}"/> >>> <jvmarg value="${memory.max.param}"/> >>> <jvmarg value="${memory.maxpermsize.param}"/> >>> <arg value="both"/> >>> + <arg value="-portoffset=${portoffset}"/> >>> </java> >>> </target> >>> <target name="stop" >>> @@ -1296,7 +1300,7 @@ under the License. >>> <!-- kek helper >>> --> >>> <!-- ================================================================== >>> --> >>> >>> - <target name="gen-kek" >>> + <target name="gen-kek" >>> description="Generate a new key-encrypting-key for use in >>> entityengine.xml"> >>> <java classname="org.ofbiz.base.crypto.Main" fork="false"> >>> <arg value="-kek"/> >>> >>> Modified: >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ClassLoaderContainer.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ClassLoaderContainer.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ClassLoaderContainer.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ClassLoaderContainer.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -18,11 +18,11 @@ >>> >>> *******************************************************************************/ >>> package org.ofbiz.base.container; >>> >>> +import java.net.URL; >>> + >>> +import org.ofbiz.base.start.Classpath; >>> import org.ofbiz.base.util.CachedClassLoader; >>> import org.ofbiz.base.util.Debug; >>> -import org.ofbiz.base.start.Classpath; >>> - >>> -import java.net.URL; >>> >>> /** >>> * ClassLoader Container; Created a CachedClassLoader for use by all >>> following containers >>> @@ -32,6 +32,7 @@ public class ClassLoaderContainer implem >>> >>> public static final String module = >>> ClassLoaderContainer.class.getName(); >>> protected static CachedClassLoader cl = null; >>> + public static Integer portOffset = 0; >>> private String name; >>> >>> @Override >>> @@ -46,6 +47,34 @@ public class ClassLoaderContainer implem >>> } >>> >>> cl = new CachedClassLoader(new URL[0], parent); >>> + >>> + if (args != null) { >>> + for (String argument : args) { >>> + // arguments can prefix w/ a '-'. Just strip them off >>> + if (argument.startsWith("-")) { >>> + int subIdx = 1; >>> + if (argument.startsWith("--")) { >>> + subIdx = 2; >>> + } >>> + argument = argument.substring(subIdx); >>> + } >>> + >>> + // parse the arguments >>> + if (argument.indexOf("=") != -1) { >>> + String argumentName = argument.substring(0, >>> argument.indexOf("=")); >>> + String argumentVal = >>> argument.substring(argument.indexOf("=") + 1); >>> + >>> + if ("portoffset".equalsIgnoreCase(argumentName) && >>> !"${portoffset}".equals(argumentVal)) { >>> + try { >>> + ClassLoaderContainer.portOffset = >>> Integer.valueOf(argumentVal); >>> + } catch (NumberFormatException e) { >>> + e.printStackTrace(); >>> + } >>> + } >>> + } >>> + } >>> + } >>> + >>> Thread.currentThread().setContextClassLoader(cl); >>> Debug.logInfo("CachedClassLoader created", module); >>> } >>> >>> Modified: >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -57,9 +57,9 @@ public class NamingServiceContainer impl >>> ContainerConfig.Container.Property port = cfg.getProperty("port"); >>> if (port.value != null) { >>> try { >>> - this.namingPort = Integer.parseInt(port.value); >>> + this.namingPort = Integer.parseInt(port.value) + >>> ClassLoaderContainer.portOffset; >>> } catch (Exception e) { >>> - throw new ContainerException("Invalid port defined in >>> container [naming-container] configuration; not a valid int"); >>> + throw new ContainerException("Invalid port defined in >>> container [naming-container] configuration or as portOffset; not a valid >>> int"); >>> } >>> } >>> >>> >>> Modified: >>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -246,6 +246,8 @@ public class CatalinaContainer implement >>> >>> for (Connector con: tomcat.getService().findConnectors()) { >>> ProtocolHandler ph = con.getProtocolHandler(); >>> + int port = con.getPort(); >>> + con.setAttribute("port", port); >>> if (ph instanceof Http11Protocol) { >>> Http11Protocol hph = (Http11Protocol) ph; >>> Debug.logInfo("Connector " + hph.getName() + " @ " + >>> hph.getPort() + " - " + >>> @@ -477,7 +479,8 @@ public class CatalinaContainer implement >>> // need some standard properties >>> String protocol = ContainerConfig.getPropertyValue(connectorProp, >>> "protocol", "HTTP/1.1"); >>> String address = ContainerConfig.getPropertyValue(connectorProp, >>> "address", "0.0.0.0"); >>> - int port = ContainerConfig.getPropertyValue(connectorProp, "port", >>> 0); >>> + int port = ContainerConfig.getPropertyValue(connectorProp, "port", >>> 0) + ClassLoaderContainer.portOffset; >>> + >>> boolean secure = ContainerConfig.getPropertyValue(connectorProp, >>> "secure", false); >>> if (protocol.toLowerCase().startsWith("ajp")) { >>> protocol = "ajp"; >>> @@ -537,8 +540,12 @@ public class CatalinaContainer implement >>> >>> try { >>> for (ContainerConfig.Container.Property prop: >>> connectorProp.properties.values()) { >>> - connector.setProperty(prop.name, prop.value); >>> - //connector.setAttribute(prop.name, prop.value); >>> + if ("port".equals(prop.name)) { >>> + connector.setProperty(prop.name, "" + port); >>> + } else { >>> + connector.setProperty(prop.name, prop.value); >>> + //connector.setAttribute(prop.name, prop.value); >>> + } >>> } >>> >>> if (connectorProp.properties.containsKey("URIEncoding")) { >>> >>> Modified: ofbiz/trunk/framework/common/servicedef/services_test.xml >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services_test.xml?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- ofbiz/trunk/framework/common/servicedef/services_test.xml (original) >>> +++ ofbiz/trunk/framework/common/servicedef/services_test.xml Sat Oct 19 >>> 22:07:35 2013 >>> @@ -72,21 +72,18 @@ under the License. >>> >>> <service name="groupTest" engine="group" location="testGroup" >>> invoke=""/> >>> >>> - <service name="testHttp" engine="http" >>> - location="http://localhost:8080/webtools/control/httpService" >>> invoke="testScv"> >>> + <service name="testHttp" engine="http" location="main-http" >>> invoke="testScv"> >>> <description>HTTP service wrapper around the test >>> service</description> >>> <attribute name="message" type="String" mode="IN" optional="true"/> >>> <attribute name="resp" type="String" mode="OUT"/> >>> </service> >>> >>> - <service name="testSoap" engine="soap" export="true" >>> - location="http://localhost:8080/webtools/control/SOAPService" >>> invoke="testSOAPScv"> >>> + <service name="testSoap" engine="soap" export="true" >>> location="main-soap" invoke="testSOAPScv"> >>> <description>SOAP service; calls the OFBiz test SOAP >>> service</description> >>> <implements service="testSOAPScv"/> >>> </service> >>> >>> - <service name="testSoapSimple" engine="soap" export="true" >>> - location="http://localhost:8080/webtools/control/SOAPService" >>> invoke="testScv"> >>> + <service name="testSoapSimple" engine="soap" export="true" >>> location="main-soap" invoke="testScv"> >>> <description>simple SOAP service; calls the OFBiz test >>> service</description> >>> <implements service="testScv"/> >>> </service> >>> >>> Modified: ofbiz/trunk/framework/service/config/serviceengine.xml >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/config/serviceengine.xml?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- ofbiz/trunk/framework/service/config/serviceengine.xml (original) >>> +++ ofbiz/trunk/framework/service/config/serviceengine.xml Sat Oct 19 >>> 22:07:35 2013 >>> @@ -59,9 +59,8 @@ under the License. >>> <engine name="jms" class="org.ofbiz.service.jms.JmsServiceEngine"/> >>> <engine name="rmi" class="org.ofbiz.service.rmi.RmiServiceEngine"/> >>> <engine name="soap" >>> class="org.ofbiz.service.engine.SOAPClientEngine"/> >>> - <!-- The engine xml-rpc-local is only used by a test service and >>> for >>> - this reason it is configured to run on port 8080 (see >>> rmi-dispatcher in service/ofbiz-component.xml); >>> - in order to use this in OFBiz change the port accordingly >>> (for demo the default value is 8080) >>> + <!-- The engine xml-rpc-local is only used by a test service and >>> for this reason it is configured to run on port 8080. >>> + In order to use this in OFBiz change the port accordingly >>> (for demo the default value is 8080) >>> --> >>> <engine name="xml-rpc-local" >>> class="org.ofbiz.service.engine.XMLRPCClientEngine"> >>> <parameter name="url" >>> value="http://localhost:8080/webtools/control/xmlrpc"/> >>> @@ -71,7 +70,8 @@ under the License. >>> >>> <service-location name="main-rmi" >>> location="rmi://localhost:1099/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> - >>> + <service-location name="main-soap" >>> location="http://localhost:8080/webtools/control/SOAPService"/> >>> + >>> <service-location name="entity-sync-rmi" >>> location="rmi://localhost:1099/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> >>> Modified: >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceEngine.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceEngine.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceEngine.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceEngine.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -24,6 +24,7 @@ import java.util.HashMap; >>> import java.util.List; >>> import java.util.Map; >>> >>> +import org.ofbiz.base.container.ClassLoaderContainer; >>> import org.ofbiz.base.lang.ThreadSafe; >>> import org.ofbiz.base.util.UtilXml; >>> import org.ofbiz.service.config.ServiceConfigException; >>> @@ -88,6 +89,16 @@ public final class ServiceEngine { >>> for (Element serviceLocationElement : >>> serviceLocationElementList) { >>> serviceLocations.add(new >>> ServiceLocation(serviceLocationElement)); >>> } >>> + for (ServiceLocation serviceLocation : serviceLocations) { >>> + String location = serviceLocation.getLocation(); >>> + if (location.contains("localhost") && >>> ClassLoaderContainer.portOffset != 0) { >>> + Integer port = 1099 + ClassLoaderContainer.portOffset; >>> + location = location.replace("1099", port.toString()); >>> + port = 8080 + ClassLoaderContainer.portOffset; >>> + location = location.replace("8080", port.toString()); >>> + serviceLocation.setLocation(location); >>> + } >>> + } >>> this.serviceLocations = >>> Collections.unmodifiableList(serviceLocations); >>> } >>> List<? extends Element> notificationGroupElementList = >>> UtilXml.childElementList(engineElement, "notification-group"); >>> >>> Modified: >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceLocation.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceLocation.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceLocation.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/config/model/ServiceLocation.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -28,7 +28,7 @@ import org.w3c.dom.Element; >>> @ThreadSafe >>> public final class ServiceLocation { >>> >>> - private final String location; >>> + private String location; >>> private final String name; >>> >>> ServiceLocation(Element serviceLocationElement) throws >>> ServiceConfigException { >>> @@ -48,6 +48,10 @@ public final class ServiceLocation { >>> return location; >>> } >>> >>> + public void setLocation(String location) { >>> + this.location = location; >>> + } >>> + >>> public String getName() { >>> return name; >>> } >>> >>> Modified: >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/XMLRPCClientEngine.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/XMLRPCClientEngine.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/XMLRPCClientEngine.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/XMLRPCClientEngine.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -28,6 +28,7 @@ import javolution.util.FastMap; >>> import org.apache.xmlrpc.XmlRpcException; >>> import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; >>> import org.ofbiz.base.config.GenericConfigException; >>> +import org.ofbiz.base.container.ClassLoaderContainer; >>> import org.ofbiz.base.util.Debug; >>> import org.ofbiz.base.util.UtilGenerics; >>> import org.ofbiz.base.util.UtilMisc; >>> @@ -90,6 +91,10 @@ public class XMLRPCClientEngine extends >>> String keyAlias = null; >>> try { >>> url = ServiceConfigUtil.getEngineParameter(engine, "url"); >>> + if (ClassLoaderContainer.portOffset != 0) { >>> + Integer port = 8080 + ClassLoaderContainer.portOffset; >>> + url = url.replace("8080", port.toString()); >>> + } >>> login = ServiceConfigUtil.getEngineParameter(engine, "login"); >>> password = ServiceConfigUtil.getEngineParameter(engine, >>> "password"); >>> keyStoreComponent = >>> ServiceConfigUtil.getEngineParameter(engine, "keyStoreComponent"); >>> >>> Modified: >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -26,6 +26,7 @@ import java.rmi.server.RMIServerSocketFa >>> import javax.naming.InitialContext; >>> import javax.naming.NamingException; >>> >>> +import org.ofbiz.base.container.ClassLoaderContainer; >>> import org.ofbiz.base.container.Container; >>> import org.ofbiz.base.container.ContainerConfig; >>> import org.ofbiz.base.container.ContainerException; >>> @@ -80,6 +81,11 @@ public class RmiServiceContainer impleme >>> String useCtx = initialCtxProp == null || initialCtxProp.value == >>> null ? "false" : initialCtxProp.value; >>> String host = lookupHostProp == null || lookupHostProp.value == >>> null ? "localhost" : lookupHostProp.value; >>> String port = lookupPortProp == null || lookupPortProp.value == >>> null ? "1099" : lookupPortProp.value; >>> + if (ClassLoaderContainer.portOffset != 0) { >>> + Integer portValue = Integer.valueOf(port); >>> + portValue += ClassLoaderContainer.portOffset; >>> + port = portValue.toString(); >>> + } >>> String keystore = ContainerConfig.getPropertyValue(cfg, >>> "ssl-keystore", null); >>> String ksType = ContainerConfig.getPropertyValue(cfg, >>> "ssl-keystore-type", "JKS"); >>> String ksPass = ContainerConfig.getPropertyValue(cfg, >>> "ssl-keystore-pass", null); >>> >>> Modified: >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/test/XmlRpcTests.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/test/XmlRpcTests.java?rev=1533839&r1=1533838&r2=1533839&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/test/XmlRpcTests.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/service/src/org/ofbiz/service/test/XmlRpcTests.java >>> Sat Oct 19 22:07:35 2013 >>> @@ -23,6 +23,7 @@ import java.util.Locale; >>> import java.util.Map; >>> >>> import org.apache.xmlrpc.client.XmlRpcClient; >>> +import org.ofbiz.base.container.ClassLoaderContainer; >>> import org.ofbiz.base.util.UtilGenerics; >>> import org.ofbiz.base.util.UtilProperties; >>> import org.ofbiz.base.util.UtilValidate; >>> @@ -37,10 +38,14 @@ public class XmlRpcTests extends Abstrac >>> >>> public static final String module = XmlRpcTests.class.getName(); >>> public static final String resource = "ServiceErrorUiLabels"; >>> - public static final String url = >>> "http://localhost:8080/webtools/control/xmlrpc"; >>> + public static String url = >>> "http://localhost:8080/webtools/control/xmlrpc"; >>> >>> public XmlRpcTests(String name) { >>> super(name); >>> + if (ClassLoaderContainer.portOffset != 0) { >>> + Integer port = 8080 + ClassLoaderContainer.portOffset; >>> + url = url.replace("8080", port.toString()); >>> + } >>> } >>> >>> /** >>> >>> 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=1533839&r1=1533838&r2=1533839&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 Sat >>> Oct 19 22:07:35 2013 >>> @@ -57,7 +57,7 @@ public class Config { >>> String firstArg = args.length > 0 ? args[0] : ""; >>> String configFileName = getConfigFileName(firstArg); >>> Config result = new Config(); >>> - result.readConfig(configFileName); >>> + result.readConfig(configFileName, args); >>> return result; >>> } >>> >>> @@ -283,7 +283,7 @@ public class Config { >>> } >>> } >>> >>> - public void readConfig(String config) throws IOException { >>> + public void readConfig(String config, String[] args) throws >>> IOException { >>> // check the java_version >>> String javaVersion = System.getProperty("java.version"); >>> String javaVendor = System.getProperty("java.vendor"); >>> @@ -352,6 +352,14 @@ public class Config { >>> // parse the port number >>> try { >>> adminPort = Integer.parseInt(adminPortStr); >>> + if (args.length > 0) { >>> + for (String arg : args) { >>> + if (arg.toLowerCase().contains("portoffset=")) { >>> + adminPort = adminPort != 0 ? adminPort : 10523; // >>> This is necessary because the ASF machines don't allow ports 1 to 3, see >>> INFRA-6790 >>> + adminPort += Integer.parseInt(arg.split("=")[1]); >>> + } >>> + } >>> + } >>> } catch (Exception e) { >>> adminPort = 0; >>> } >>> @@ -396,16 +404,16 @@ public class Config { >>> // set the default locale >>> String localeString = props.getProperty("ofbiz.locale.default"); >>> if (localeString != null && localeString.length() > 0) { >>> - String args[] = localeString.split("_"); >>> - switch (args.length) { >>> + String locales[] = localeString.split("_"); >>> + switch (locales.length) { >>> case 1: >>> - Locale.setDefault(new Locale(args[0])); >>> + Locale.setDefault(new Locale(locales[0])); >>> break; >>> case 2: >>> - Locale.setDefault(new Locale(args[0], args[1])); >>> + Locale.setDefault(new Locale(locales[0], locales[1])); >>> break; >>> case 3: >>> - Locale.setDefault(new Locale(args[0], args[1], >>> args[2])); >>> + Locale.setDefault(new Locale(locales[0], locales[1], >>> args[2])); >>> } >>> System.setProperty("user.language", localeString); >>> } >>> >>> >> >> >
