- In order to inspect the controller remotely JMX comes very handy
especially in clustered environment, this patch allow to start the
controller and to enable JMX remotely, this is still only the unsecure
version, for secure version a subsequent patch will be provided
Change-Id: I47c8651f19e4207b37b064161bb88476f3e31d0b
Signed-off-by: Giovanni Meo <gmeo@cisco.com>
if (amIGossipRouter) {
logger.info("I'm a GossipRouter will listen on port {}",
gossipRouterPort);
if (amIGossipRouter) {
logger.info("I'm a GossipRouter will listen on port {}",
gossipRouterPort);
- res = new GossipRouter(gossipRouterPort);
+ // Start a GossipRouter with JMX support
+ res = new GossipRouter(gossipRouterPort, null, true);
basedir=`dirname ${fullpath}`
function usage {
basedir=`dirname ${fullpath}`
function usage {
- echo "Usage: $0 [-debug] [-debugsuspend] [-debugport <num>] [-start [<console port>]] [-stop] [-status] [-console] [-help] [<other args will automatically be used for the JVM>]"
+ echo "Usage: $0 [-jmx] [-jmxport <num>] [-debug] [-debugsuspend] [-debugport <num>] [-start [<console port>]] [-stop] [-status] [-console] [-help] [<other args will automatically be used for the JVM>]"
startdaemon=0
daemonport=2400
daemonportread=""
startdaemon=0
daemonport=2400
daemonportread=""
+jmxport=1088
+jmxportread=""
+startjmx=0
stopdaemon=0
statusdaemon=0
consolestart=1
stopdaemon=0
statusdaemon=0
consolestart=1
while true ; do
case "$1" in
-debug) debug=1; shift ;;
while true ; do
case "$1" in
-debug) debug=1; shift ;;
+ -jmx) startjmx=1; shift ;;
-debugsuspend) debugsuspend=1; shift ;;
-debugport) shift; debugportread="$1"; if [[ "${debugportread}" =~ ^[0-9]+$ ]] ; then debugport=${debugportread}; shift; else echo "-debugport expects a number but was not found"; exit -1; fi;;
-debugsuspend) debugsuspend=1; shift ;;
-debugport) shift; debugportread="$1"; if [[ "${debugportread}" =~ ^[0-9]+$ ]] ; then debugport=${debugportread}; shift; else echo "-debugport expects a number but was not found"; exit -1; fi;;
+ -jmxport) shift; jmxportread="$1"; if [[ "${jmxportread}" =~ ^[0-9]+$ ]] ; then jmxport=${jmxportread}; shift; else echo "-jmxport expects a number but was not found"; exit -1; fi;;
-start) startdaemon=1; shift; daemonportread="$1"; if [[ "${daemonportread}" =~ ^[0-9]+$ ]] ; then daemonport=${daemonportread}; shift; fi;;
-stop) stopdaemon=1; shift ;;
-status) statusdaemon=1; shift ;;
-start) startdaemon=1; shift; daemonportread="$1"; if [[ "${daemonportread}" =~ ^[0-9]+$ ]] ; then daemonport=${daemonportread}; shift; fi;;
-stop) stopdaemon=1; shift ;;
-status) statusdaemon=1; shift ;;
+# Validate jmx port
+if [[ "${jmxport}" -lt 1024 ]] || [[ "${jmxport}" -gt 65535 ]]; then
+ echo "JMX Port not in the range [1024,65535] value is ${jmxport}"
+ exit -1
+fi
+
# Debug options
if [ "${debugsuspend}" -eq 1 ]; then
extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${debugport}"
# Debug options
if [ "${debugsuspend}" -eq 1 ]; then
extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${debugport}"
extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${debugport}"
fi
extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${debugport}"
fi
+# Add JMX support
+if [ "${startjmx}" -eq 1 ]; then
+ extraJVMOpts="${extraJVMOpts} -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=${jmxport} -Dcom.sun.management.jmxremote"
+fi
+
########################################
# Now add to classpath the OSGi JAR
########################################
########################################
# Now add to classpath the OSGi JAR
########################################