Apache OpenJPA - Metamodel generator (mmg) readme
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------

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.

