Hi, That's a very good point.
Just make a new commit which ensure it's exactly same default behavior with 2.3.0, that said, the org.apache.karaf.management.cfg can also work in 2.3.1 without any change. r1403963 ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: http://weibo.com/u/1473905042 On 2012-10-31, at 上午11:09, Dan Tran wrote: > is this configuration file backward compatible? ie what if I use > 2.3.0 org.apache.karaf.management.cfg is used and preserved during > 2.3.0 to 2.3.1 upgrade. > > Thanks > > -D > > On Tue, Oct 30, 2012 at 6:59 PM, <[email protected]> wrote: >> Author: ffang >> Date: Wed Oct 31 01:59:47 2012 >> New Revision: 1403952 >> >> URL: http://svn.apache.org/viewvc?rev=1403952&view=rev >> Log: >> [KARAF-1129|KARAF-581]Allow configuring rmi Registry host as well as port >> >> Modified: >> >> karaf/branches/karaf-2.3.x/assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.management.cfg >> >> karaf/branches/karaf-2.3.x/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java >> >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml >> >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.properties >> >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.xml >> >> Modified: >> karaf/branches/karaf-2.3.x/assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.management.cfg >> URL: >> http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.management.cfg?rev=1403952&r1=1403951&r2=1403952&view=diff >> ============================================================================== >> --- >> karaf/branches/karaf-2.3.x/assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.management.cfg >> (original) >> +++ >> karaf/branches/karaf-2.3.x/assemblies/apache-karaf/src/main/distribution/text/etc/org.apache.karaf.management.cfg >> Wed Oct 31 01:59:47 2012 >> @@ -25,7 +25,7 @@ >> # Port number for RMI registry connection >> # >> rmiRegistryPort = 1099 >> - >> +rmiRegistryHost = 0.0.0.0 >> # >> # Port number for RMI server connection >> # >> @@ -39,7 +39,7 @@ jmxRealm = karaf >> # >> # The service URL for the JMXConnectorServer >> # >> -serviceUrl = >> service:jmx:rmi://0.0.0.0:${rmiServerPort}/jndi/rmi://0.0.0.0:${rmiRegistryPort}/karaf-${karaf.name} >> +serviceUrl = >> service:jmx:rmi://0.0.0.0:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name} >> >> # >> # Whether any threads started for the JMXConnectorServer should be started >> as daemon threads >> >> Modified: >> karaf/branches/karaf-2.3.x/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java >> URL: >> http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java?rev=1403952&r1=1403951&r2=1403952&view=diff >> ============================================================================== >> --- >> karaf/branches/karaf-2.3.x/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java >> (original) >> +++ >> karaf/branches/karaf-2.3.x/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java >> Wed Oct 31 01:59:47 2012 >> @@ -16,14 +16,22 @@ >> */ >> package org.apache.karaf.management; >> >> +import java.io.IOException; >> +import java.net.InetAddress; >> +import java.net.ServerSocket; >> +import java.net.UnknownHostException; >> import java.rmi.RemoteException; >> import java.rmi.registry.LocateRegistry; >> import java.rmi.registry.Registry; >> +import java.rmi.server.RMIClientSocketFactory; >> +import java.rmi.server.RMIServerSocketFactory; >> +import java.rmi.server.RMISocketFactory; >> import java.rmi.server.UnicastRemoteObject; >> >> public class RmiRegistryFactory { >> >> private int port = Registry.REGISTRY_PORT; >> + private String host; >> private Registry registry; >> private boolean locate; >> private boolean create = true; >> @@ -71,14 +79,22 @@ public class RmiRegistryFactory { >> this.port = port; >> } >> >> + public String getHost() { >> + return host; >> + } >> + >> + public void setHost(String host) { >> + this.host = host; >> + } >> + >> public Object getObject() throws Exception { >> return registry; >> } >> >> - public void init() throws RemoteException { >> + public void init() throws RemoteException, UnknownHostException { >> if (registry == null && locate) { >> try { >> - Registry reg = LocateRegistry.getRegistry(getPort()); >> + Registry reg = LocateRegistry.getRegistry(host, getPort()); >> reg.list(); >> registry = reg; >> } catch (RemoteException e) { >> @@ -86,7 +102,15 @@ public class RmiRegistryFactory { >> } >> } >> if (registry == null && create) { >> - registry = LocateRegistry.createRegistry(getPort()); >> + if (host != null && !host.isEmpty()) { >> + RMIClientSocketFactory socketFactory = >> RMISocketFactory.getDefaultSocketFactory(); >> + InetAddress addr = InetAddress.getByName(host); >> + RMIServerSocketFactory serverSocketFactory = new >> KarafServerSocketFactory(addr, port); >> + >> + registry = LocateRegistry.createRegistry(getPort(), >> socketFactory, serverSocketFactory); >> + } else { >> + registry = LocateRegistry.createRegistry(getPort()); >> + } >> locallyCreated = true; >> } >> } >> @@ -99,4 +123,18 @@ public class RmiRegistryFactory { >> } >> } >> >> + private static class KarafServerSocketFactory implements >> RMIServerSocketFactory { >> + private final int port; >> + private final InetAddress addr; >> + >> + private KarafServerSocketFactory(InetAddress addr, int port) { >> + this.addr = addr; >> + this.port = port; >> + } >> + >> + public ServerSocket createServerSocket(int i) throws IOException { >> + return new ServerSocket(port, 0, addr); >> + } >> + } >> + >> } >> >> Modified: >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml >> URL: >> http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml?rev=1403952&r1=1403951&r2=1403952&view=diff >> ============================================================================== >> --- >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml >> (original) >> +++ >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml >> Wed Oct 31 01:59:47 2012 >> @@ -32,6 +32,7 @@ >> <!-- Property place holder --> >> <cm:property-placeholder persistent-id="org.apache.karaf.management" >> update-strategy="reload"> >> <cm:default-properties> >> + <cm:property name="rmiRegistryHost" value=""/> >> <cm:property name="rmiRegistryPort" value="1099"/> >> <cm:property name="rmiServerPort" value="44444"/> >> <cm:property name="jmxRealm" value="karaf"/> >> @@ -68,6 +69,7 @@ >> destroy-method="destroy"> >> <property name="create" value="true"/> >> <property name="locate" value="true"/> >> + <property name="host" value="${rmiRegistryHost}"/> >> <property name="port" value="${rmiRegistryPort}"/> >> </bean> >> >> >> Modified: >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.properties >> URL: >> http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1403952&r1=1403951&r2=1403952&view=diff >> ============================================================================== >> --- >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.properties >> (original) >> +++ >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.properties >> Wed Oct 31 01:59:47 2012 >> @@ -24,6 +24,9 @@ >> management.name = Apache Karaf JMX Management >> management.description = Configuration of Apache Karaf JMX Management >> >> +rmiRegistryHost.name = RMI Registry Host >> +rmiRegistryHost.description = host of the registry for the exported RMI >> service. Blank for all interfaces >> + >> rmiRegistryPort.name = RMI Registry Port >> rmiRegistryPort.description = port of the registry for the exported RMI >> service >> >> >> Modified: >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.xml >> URL: >> http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.xml?rev=1403952&r1=1403951&r2=1403952&view=diff >> ============================================================================== >> --- >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.xml >> (original) >> +++ >> karaf/branches/karaf-2.3.x/management/server/src/main/resources/OSGI-INF/metatype/metatype.xml >> Wed Oct 31 01:59:47 2012 >> @@ -19,6 +19,8 @@ >> --> >> <metatype:MetaData >> xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.0.0" >> localization="OSGI-INF/metatype/metatype"> >> <OCD id="org.apache.karaf.management" name="%management.name" >> description="%management.description"> >> + <AD id="rmiRegistryHost" type="String" default="" >> name="%rmiRegistryHost.name" >> + description="%rmiRegistryHost.description"/> >> <AD id="rmiRegistryPort" type="Integer" default="1099" >> name="%rmiRegistryPort.name" >> description="%rmiRegistryPort.description"/> >> <AD id="rmiServerPort" type="Integer" default="44444" >> name="%rmiServerPort.name" >> >>
