Metamodel generator (mmg)

JPA 2.0 provides an utility to generate canonical metamodel for each persistent domain entity.
This brief note describes how to generate these canonical metamodel classes.

The canonical metamodel classes are generated during compilation of persistent domain entity classes.
The generation process depends on Annotation Processing facility available in JDK6. Naturally, this
process *only* works if the persistent domain entity classes are compiled with a JDK6 compiler.

Effectively, the process appears to be normal compilation process with a specialized Annotation Processor

  $ javac -classpath %CLASSPATH% <javac options> <mmg options> <*.java source files>
  
  
Compiler Classpath
------------------
   The compiler classpath must include OpenJPA libraries. 

mmg options
-----------
   These options specify the Annotation processor to be used as well as options for the processor. The only mandatory 
   option is 
          -processor org.apache.openjpa.persistence.meta.AnnotationProcessor6
          
The other options qualify the  Annotation processor itself and specified with -A<option>=<value> syntax

-Alog     log level. Permissible values are TRACE, INFO and WARN. 
          Default is INFO.
-Aout     the directory location of the generated canonical model source output files. 
          Default is the current directory.
-Asource  compatibility level of the generated canonical model source code. Permissible values are 5 and 6. 
          Default is 6.
-Aheader  flags if a header is created for the generated source code. Permissible values are true and false. 
          Default is true.