A Maven 3 archetype for JPA projects.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This is (going to be) a Maven archetype for building JPA entities that are capable of being tested against the Big Three JPA providers (Hibernate, EclipseLink and OpenJPA).

The root pom.xml is fairly enormous. :-) Most of what it does is copy various files into isolated areas where they can be bytecode enhanced at build time by the providers' individual non-standard mechanisms.

It is necessary in such cases to make sure that dependencies on the classpath that are needed for integration testing---that might of course contain other entities---are also enhanced. This accounts for the vast bulk of the pom.xml stanzas.

Four jars are produced at the end of a typical Maven run using this pom.xml. The first is a normal .jar file. The other three are enhanced versions of the normal .jar file so that if you like you do not have to further enhance your classes again.

The Maven Surefire plugin is run three times as part of normal testing: once per JPA provider, with the other JPA providers' dependencies weeded out of its classpath.

Questions and feedback heartily welcomed at ljnelson at a big enormous supposedly non-evil email provider starting with G.