Hi all, I have my code attached in issue HARMONY-6291 on JIRA. I'd like to call it MinJre Toolkit.
Now the coding of MinJreToolkit is almost complete. It includes functional classes as well as command line tool and ant task implemented based on them. More, for dynamic tracing, a jvmti agent has been implemented. Both static analysis and dynamic tracing produce a type of result file called cns (Class Name Set) file, which has an associated data structure called ClassNameSet that can be created from a cns file, witten to a cns file and merged with a cns file. The cns file in the conf directory contains the required classes for different jre implementations. Now it only supports Harmony. The toolkit can be used in two steps. First, employ both static analyzer and dynamic tracer in the process of application development and test, and record necessary information in several cns files. Second, employ the jre generator to merge these cns files and generate a new jre from an original one. So far I have written a simple ant build file to handle the whole process including compile, test, pack & javadoc. The compiling of the agent is not in because I'm still learning ant usage. The test is also very simple, just a helloworld app:P I'll improve the toolkit by adding command line script, optimizing ant build, doing more test and improve the algorithm if a better strategy is found. Everyone please feel free to give me advice or report bugs to me~thx:) Daniel Gong