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