bravo -D
On Tue, Oct 30, 2012 at 8:37 PM, Freeman Fang <[email protected]> wrote: > 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" >>> >>> >
