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"
>> 
>> 

Reply via email to