 ------
 Introduction
 ------
 Rahul Thakur, Mark Struberg
 ------
 November 29, 2010
 ------
 
OpenJPA Maven Plugin

 As of this writing the OpenJPA Plugin provides 3 goals to
 cope with persistence-enabled classes in a project using Maven 2.
  
 
* Goals Overview

  *  <<<openjpa:enhance>>> enhances the persistence-enabled classes in a 
  project. 

  *  <<<openjpa:test-enhance>>> enhances the persistence-enabled test classes in a 
  project. This is typically bound to the process-test-classes phase.
  
  * <<<openjpa:sql>>> creates a file which contains the SQL statements
  for creating or updating the database or directly create the schema
  in the database.
  
  * <<<openjpa:schema>>> create the schema mapping XML file 
  
  All these OpenJPA Mojos expect the following resources to be 
  present on classpath: 
  
  *  <<<META-INF/persistence.xml>>>, or
  
  *  <<<META-INF/openjpa.xml>>>
    
  OpenJPA documentation is available 
  {{{http://openjpa.apache.org/documentation.html}here}}. 

 
* Examples

  Below is an OpenJPA plugin configuration example.

+----------+
  <plugin>
    <groupId>org.apache.openjpa</groupId>
    <artifactId>openjpa-maven-plugin</artifactId>
    <version>1.2</version>
    <configuration>
      <includes>com/myproject/entities/**/*.class</includes>
      <addDefaultConstructor>true</addDefaultConstructor>
      <enforcePropertyRestrictions>true</enforcePropertyRestrictions>

      <!-- Pass additional properties to the Plugin here -->     
      <toolProperties>
        <property>
          <name>directory</name>
          <value>otherdirectoryvalue</value>
        </property>              
      </toolProperties>

    </configuration>
    <executions>
      <execution>
        <id>enhancer</id>
        <phase>process-classes</phase>
        <goals>
          <goal>enhance</goal>
        </goals>
      </execution>
    </executions>

  </plugin>
+-----------+

  * You don't have to explicitly specify an OpenJPA dependency in the dependencies section
  of the plugin! Follow the following guide to use this plugin with {{{examples/older_versions.html}older OpenJPA versions}}.

  
  * The <<<openjpa:enhance>>> mojo will automatically be called in the
  <<<process-classes>>> phase.
  
  From the command prompt/terminal window. 
  
  * Change directory to the project's root directory. 
  
  * Run the following goal to run OpenJPA PCEnhancer on persistence-enabled 
  classes manually.

----------
  mvn openjpa:enhance
----------


  * Run the following goal to run OpenJPA MappingTool for creating the 
  database creation SQL statements for all persistence-enabled classes manually.

----------
  mvn openjpa:sql
----------


  * Run the following goal to run OpenJPA MappingTool for creating the 
  schema mapping XML file for all persistence-enabled classes manually.

----------
  mvn openjpa:schema
----------
