JCommons is a project that provides generally re-usable Java components for things like code generation, data conversions such as visualizing object instances as FreeMind maps and productivity tools such as a framework for generating factories.

The Documentation Index has short summaries of all the JCommons sub-projects.

For the source code generation framework, refer to SourceGen. For the tool that exports source code to reconstruct a Java object in memory, see SourceExporter. For the factory generation framework, refer to FactoryGen. For the FreeMind visualization tool, refer to Marshaller. For the FreeMind map utilities and Castor generated objects (used by Marshaller), refer to MapUtils. For the Transformation Framework, refer to TransformationFramework. For the XPathFind utility, refer to XPathFind.

Although nearly all of the code in JCommons is GPL, some of these libraries are tools, intended to be used in the development of both open- and closed-source projects, especially during testing. For example, SourceGen can be used as part of a build to dynamically generate code, which can then be deployed with a closed-source project. As long as the build itself is never distributed in source or binary form, the licence imposes nothing further. FactoryGen can be added as part of a build to automatically generate factories and keep them up-to-date. The two classes required by the generated code are dual licensed with the LGPL v2.1 and with the 3-clause BSD licence, so these generated factories can be used with closed-source projects.

SourceExporter and Marshaller would not typically be used in production. They can be used in the development of closed-source projects as long as all the code that uses them and the JARs are removed before production. The generated source code and/or diagrams can remain in the application. Use of these tools directly (rather than just the code or diagrams generated by them) in a production application would require following the GPL.

The following diagram shows the JCommmons package dependencies:

Click on any jar file to reach the download page for it (or in the case of factorygen-lib and factorygen-builder download the file directly). JUnit is not an active area in the above image map, since Eclipse comes with it. The dependencies shown indicate the minimum required version. Later versions are expected to work in general (however, all dependencies on packages that are not part of jcommons have not been tested on every single later version).