├── README └── visualvm ├── visualvm.sh └── visualvm.bat /README: -------------------------------------------------------------------------------- 1 | JBOSS AS Tools integration 2 | 3 | VisualVM 4 | -------- 5 | 6 | Scripts to initialise visualvm with JBoss remoting libraries on classpath and run visualvm with JBoss remoting enabled 7 | 8 | 9 | 1) Install visualvm scripts: Copy visualvm.bat and visualvm.sh to $JBOSS_HOME/bin/ 10 | 11 | 2) Execute visualvm script: 12 | 13 | Linux; 14 | 2.1) execute $JBOSS_HOME/bin/visualvm.sh 15 | 16 | Windows; 17 | 2.1) Set VISUALVM_HOME environment variable to base directory of jvisualvm 18 | 2.2) execute $JBOSS_HOME/bin/visualvm.bat 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /visualvm/visualvm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DIRNAME=`dirname "$0"` 4 | GREP="grep" 5 | 6 | # Use the maximum available, or set MAX_FD != -1 to use that 7 | MAX_FD="maximum" 8 | 9 | # OS specific support (must be 'true' or 'false'). 10 | cygwin=false; 11 | darwin=false; 12 | linux=false; 13 | case "`uname`" in 14 | CYGWIN*) 15 | cygwin=true 16 | ;; 17 | 18 | Darwin*) 19 | darwin=true 20 | ;; 21 | 22 | Linux) 23 | linux=true 24 | ;; 25 | esac 26 | 27 | # For Cygwin, ensure paths are in UNIX format before anything is touched 28 | if $cygwin ; then 29 | [ -n "$JBOSS_HOME" ] && 30 | JBOSS_HOME=`cygpath --unix "$JBOSS_HOME"` 31 | [ -n "$JAVA_HOME" ] && 32 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 33 | [ -n "$JAVAC_JAR" ] && 34 | JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"` 35 | fi 36 | 37 | # Setup JBOSS_HOME 38 | RESOLVED_JBOSS_HOME=`cd "$DIRNAME/.."; pwd` 39 | if [ "x$JBOSS_HOME" = "x" ]; then 40 | # get the full path (without any relative bits) 41 | JBOSS_HOME=$RESOLVED_JBOSS_HOME 42 | else 43 | SANITIZED_JBOSS_HOME=`cd "$JBOSS_HOME"; pwd` 44 | if [ "$RESOLVED_JBOSS_HOME" != "$SANITIZED_JBOSS_HOME" ]; then 45 | echo "WARNING JBOSS_HOME may be pointing to a different installation - unpredictable results may occur." 46 | echo "" 47 | fi 48 | fi 49 | export JBOSS_HOME 50 | 51 | # Setup the JVM 52 | if [ "x$JAVA" = "x" ]; then 53 | if [ "x$JAVA_HOME" != "x" ]; then 54 | JAVA="$JAVA_HOME/bin/java" 55 | else 56 | JAVA="java" 57 | fi 58 | fi 59 | 60 | if [ "x$JBOSS_MODULEPATH" = "x" ]; then 61 | JBOSS_MODULEPATH="$JBOSS_HOME/modules" 62 | fi 63 | 64 | # For Cygwin, switch paths to Windows format before running java 65 | if $cygwin; then 66 | JBOSS_HOME=`cygpath --path --windows "$JBOSS_HOME"` 67 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 68 | JBOSS_CLASSPATH=`cygpath --path --windows "$JBOSS_CLASSPATH"` 69 | JBOSS_ENDORSED_DIRS=`cygpath --path --windows "$JBOSS_ENDORSED_DIRS"` 70 | JBOSS_MODULEPATH=`cygpath --path --windows "$JBOSS_MODULEPATH"` 71 | fi 72 | 73 | CLASSPATH="" 74 | # CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar 75 | 76 | MODULES="org/jboss/remoting3/remoting-jmx org/jboss/remoting3 org/jboss/logging org/jboss/xnio org/jboss/xnio/nio org/jboss/sasl org/jboss/marshalling org/jboss/marshalling/river" 77 | 78 | for MODULE in $MODULES 79 | do 80 | for JAR in `cd "$JBOSS_MODULEPATH/$MODULE/main/" && ls -1 *.jar` 81 | do 82 | CLASSPATH="$CLASSPATH:$JBOSS_MODULEPATH/$MODULE/main/$JAR" 83 | done 84 | done 85 | 86 | 87 | jvisualvm -cp:a $CLASSPATH 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /visualvm/visualvm.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem ------------------------------------------------------------------------- 3 | rem jvisualvm script for Windows 4 | rem ------------------------------------------------------------------------- 5 | rem 6 | rem A script for running jvisualvm with the remoting-jmx libraries on the classpath. 7 | 8 | rem $Id$ 9 | 10 | @if not "%ECHO%" == "" echo %ECHO% 11 | @if "%OS%" == "Windows_NT" setlocal 12 | 13 | if "x%VISUALVM_HOME%" =="x" ( 14 | echo VISUALVM_HOME environment variable has not been set - please set and re-run! 15 | goto :EOF 16 | ) 17 | 18 | if "%OS%" == "Windows_NT" ( 19 | set "DIRNAME=%~dp0%" 20 | ) else ( 21 | set DIRNAME=.\ 22 | ) 23 | 24 | pushd %DIRNAME%.. 25 | set "RESOLVED_JBOSS_HOME=%CD%" 26 | popd 27 | 28 | if "x%JBOSS_HOME%" == "x" ( 29 | set "JBOSS_HOME=%RESOLVED_JBOSS_HOME%" 30 | ) 31 | 32 | pushd "%JBOSS_HOME%" 33 | set "SANITIZED_JBOSS_HOME=%CD%" 34 | popd 35 | 36 | if "%RESOLVED_JBOSS_HOME%" NEQ "%SANITIZED_JBOSS_HOME%" ( 37 | echo WARNING JBOSS_HOME may be pointing to a different installation - unpredictable results may occur. 38 | ) 39 | 40 | set DIRNAME= 41 | 42 | if "%OS%" == "Windows_NT" ( 43 | set "PROGNAME=%~nx0%" 44 | ) else ( 45 | set "PROGNAME=jdr.bat" 46 | ) 47 | 48 | rem Setup JBoss specific properties 49 | if "x%JAVA_HOME%" == "x" ( 50 | echo JAVA_HOME is not set. Unable to locate the jars needed to run jconsole. 51 | goto END 52 | ) 53 | 54 | rem Find jboss-modules.jar, or we can't continue 55 | if exist "%JBOSS_HOME%\jboss-modules.jar" ( 56 | set "RUNJAR=%JBOSS_HOME%\jboss-modules.jar" 57 | ) else ( 58 | echo Could not locate "%JBOSS_HOME%\jboss-modules.jar". 59 | echo Please check that you are in the bin directory when running this script. 60 | goto END 61 | ) 62 | 63 | rem Set default module root paths 64 | if "x%JBOSS_MODULEPATH%" == "x" ( 65 | set "JBOSS_MODULEPATH=%JBOSS_HOME%\modules" 66 | ) 67 | 68 | rem Setup The Classpath 69 | set CLASSPATH= 70 | 71 | 72 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\remoting3\remoting-jmx\main 73 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\remoting3\main 74 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\logging\main 75 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\xnio\main 76 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\xnio\nio\main 77 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\sasl\main 78 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\marshalling\main 79 | call :SearchForJars %JBOSS_MODULEPATH%\org\jboss\marshalling\river\main 80 | 81 | "%VISUALVM_HOME%\bin\jvisualvm.exe" "-cp:a" "%CLASSPATH%" 82 | 83 | :END 84 | goto :EOF 85 | 86 | :SearchForJars 87 | pushd %1 88 | for %%j in (*.jar) do call :ClasspathAdd %1\%%j 89 | popd 90 | goto :EOF 91 | 92 | :ClasspathAdd 93 | SET CLASSPATH=%CLASSPATH%;%1 94 | 95 | :EOF 96 | --------------------------------------------------------------------------------