README revision 0
91fc158da838138e9f51e169f550e3c9e4c52ededavid_pageWorking On Java[TM] Management Extensions (JMX[TM)) Using NetBeans IDE
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_pageREADME FIRST
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page make/netbeans/README for getting started with NetBeans IDE and OpenJDK,
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page and workings with OpenJDK NetBeans projects.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_pageThis README focusses on working on the OpenJDK JMX API using NetBeans IDE.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page This NetBeans project for OpenJDK JMX allows you to modify, build, and test
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page the JMX API in a standalone manner. It can also be used to generate
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page the JMX API documentation for preview.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page The JMX API does not contain native code. It is a pure java library.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page You do not need to install all the Java SE sources to work on JMX,
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page you only need the following subset:
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page make/netbeans/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page src/share/classes/com/sun/jmx/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page src/share/classes/javax/management/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page test/TEST.ROOT
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page test/com/sun/management/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page test/java/lang/management/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page test/javax/management/
7185b49f58c4cdb16d035ecc45e38ec9b1cd9bd0matthew_swift
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page If you don't want to build the whole JDK, you will also need a
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page pre-built version of OpenJDK (or JDK 7). Edit your
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page $HOME/.openjdk/build.properties
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page file (create it if you don't have one yet) and set the bootstrap.jdk variable
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page point to that JDK:
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page bootstrap.jdk=<JDK_7_HOME>
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page Then from within NetBeans IDE open the JMX project, and invoke the
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page "Build Project" and "Test Project" target. Note that running all the
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page tests for JMX takes a while. The build may also fail if it doesn't
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page find a directory named src/${platform}. This may happen if you haven't
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page installed all OpenJDK sources. In this case, you can simply
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page create an empty directory with the name expected by the build mechanism.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page Which tests are run are defined by the jtreg.test variable declared
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page in make/netbeans/jmx/build.properties. Note that JMX tests are all
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page placed under test/javax/management/. test/java/lang/management/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page and test/com/sun/management/ contain some tests that happen to
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page use JMX and we therefore recommend to run these tests too.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page If you are working on a JMX fix, don't forget to create a
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page corresponding jtreg unit test under test/javax/management/.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page You can look at existing tests to see how this is done.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_pageThe set of actions defined in this project are:
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page* Build Project:
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page - Compiles JMX API source files and puts the class files under
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page build/${platform}-${arch}/classes.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page - Generates a JMX jar file under dist/lib/jmx.jar. To use your modified
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page JMX classes instead of the built-in JDK classes you will need
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page to put this jar file in front of the bootclasspath:
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page java -Xbootclasspath/p:dist/lib/jmx.jar mytestapp.MyAppMainClass
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page* Generate Javadoc for Project
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page - Generates the JMX API Documentation under
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page build/${platform}-${arch}/javadoc/jmx.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page* Test Project
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page - Runs the JMX and Management and Monitoring jtreg unit tests.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page - The results are written under build/${platform}-${arch}/jtreg/jmx
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page and the HTML test report can be found at
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page build/${platform}-${arch}/jtreg/jmx/JTreport/report.html.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page* Clean Project
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page - Cleans the files created by this projet under build/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page Some files may remain.
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_pageIMPORTANT NOTE
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page Please make sure to follow carefully the governance rules documented at
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page http://openjdk.dev.java.net/
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page
91fc158da838138e9f51e169f550e3c9e4c52ededavid_page