If you are using Eclipse to write and deploy your application, then you
have two choices for build time enhancement of your entities. But, if
you're using orm.xml to map the Entities, then you can only use the Custom
ANT Builder method below, as the OpenJPA Plugin for Eclipse currently does
not handle that scenario.
For steps documented below, I have the following directory structure. Note,
these steps must be followed for each project that has Entities that need
to be enhanced.
enhance.xml <- the OpenJPA builder....
/bin <- Compile directory
/src <- Source directory
/jpa_lib <- OpenJPA binary and all jars from the lib dir of the binary download
/lib <- other libs
After you add the enhance.xml
file to your file system, make sure to refresh your Eclipse workspace so
it knows about the newly added file. Make sure that the enhance.xml file is
listed in the Navigator view (screenshot #1 below.)
Right click on the Eclipse project that you want to enhance and click on
Click on the builders filter, and Create a new Ant builder.
Name your builder, then click on "Browse Workspace" in the buildfile box.
If you downloaded the enhance.xml file and refreshed your workspace, it
should be listed there. If not, go back to step 1 and make sure that
Eclipse detects your enhance.xml file.
In the "Base Directory" box, click on the variables button and select
build_project. This should refer to the root of your project. In the
directory structure above, it refers to "builder_project".
In the "Arguments" box you need to add the following properties
-Dopenjpa.libs and -Dbuild.dir (see screenshot #2 below.) The
-Dopenjpa.libs is the path to the OpenJPA libs, relative to the root of the
project. The -Dbuild.dir is the path to the build directory, relative to
the root of the project. In the directory structure above, openjpa.libs
should be set to jpa_lib and build.dir should be set to bin.
Click on the "Targets" tab along the top.
You need to set the enhance target to run as a part of "Manual Build" and
"Auto Build" (see screenshot #3 below.)