Building Apache OpenJPA
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------

These instructions describe how to build OpenJPA from source code using the
Apache Maven 2 build tool. They are written for use from the console, and are
known to work on Windows, Linux and Mac OSX.

The most up to date version of these instructions may be found on the OpenJPA
website at http://openjpa.apache.org/building.html

   1. Ensure that Java SE 6 is installed and on your path by running:
          java -version
      OpenJPA requires Java 1.6 or later to build and for runtime.
   2. Install the build tool Apache Maven 2.2.1 or later, from:
          http://maven.apache.org/
      If it is installed correctly, typing mvn -v from the console will result
      in the text like "Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)"
   3. Extract the source archive if you have not already done so.
      The source will create a new directory named:
      openjpa-<version>-source. Where <version> is the OpenJPA
      version, for example apache-openjpa-2.2.0-source.
   4. Change to the OpenJPA source directory, which has already been created in
      the previous step.
   5. Build OpenJPA by running: mvn package or better mvn install.
      The first time you run the build, many dependencies are automatically
      resolved and downloaded. It is common for dependency downloading to fail
      the first time, which will fail the build. If any of these dependency
      downloads fail, just re-run the command. You may also add the following
      to your ~/.m2/setting.xml file
      (see http://maven.apache.org/guides/mini/guide-mirror-settings.html)

       <settings>
           <mirrors>
               <mirror>
                   <id>repo.mergere.com</id>
                   <url>http://repo.mergere.com/maven2</url>
                   <mirrorOf>central</mirrorOf>
                   </mirror>
           </mirrors>
        </settings>

        If any tests fail, and you want to ignore the failures, instead run:
        mvn package -DskipTests

An example session is as follows:

$ cd /tmp/

$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)

$ mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)

 ...

$ svn --version
svn, version 1.5.5 (r34862)
   compiled Jan  5 2009, 12:30:39

$ svn co https://svn.apache.org/repos/asf/openjpa/trunk/
A  trunk/openjpa-lib
A  trunk/openjpa-lib/src
A  trunk/openjpa-lib/src/test
A  trunk/openjpa-lib/src/test/java
A  trunk/openjpa-lib/src/test/java/org
A  trunk/openjpa-lib/src/test/java/org/apache
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java

 ...

A  trunk/openjpa-persistence/pom.xml
Checked out revision 1065345.

$ cd trunk/

$ mvn clean install -DskipTests -DfailIfNoTests=false

[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO]   OpenJPA Parent POM
[INFO]   OpenJPA Utilities Library
[INFO]   OpenJPA Kernel
[INFO]   OpenJPA JDBC
[INFO]   OpenJPA Persistence
[INFO]   OpenJPA Persistence JDBC
[INFO]   OpenJPA Persistence Locking Tests
[INFO]   OpenJPA tools
[INFO]   OpenJPA Maven Plugin
[INFO]   OpenJPA XML Store
[INFO]   OpenJPA Slice
[INFO]   OpenJPA JEST
[INFO]   OpenJPA Aggregate Jar
[INFO]   OpenJPA Aggregate Jar with Dependencies
[INFO]   OpenJPA Project Docs and Assemblies
[INFO]   OpenJPA Examples
[INFO]   OpenJPA Examples - Simple
[INFO]   OpenJPA Examples - image-gallery
[INFO]   OpenJPA Examples - OpenBooks
[INFO]   OpenJPA Integration Tests
[INFO]   OpenJPA Integration Tests - Daytrader
[INFO]   OpenJPA Integration Tests - Examples
[INFO]   OpenJPA Integration Tests - SLF4JLogFactory
[INFO]   OpenJPA Integration Tests - JPA TCK
[INFO]   OpenJPA Integration Tests - Bean Validation
[INFO]   OpenJPA Integration Tests - JMX Platform MBeans
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenJPA Parent POM
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------

 ...

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] OpenJPA Parent POM .................................... SUCCESS [2:11.649s]
[INFO] OpenJPA Utilities Library ............................. SUCCESS [31.576s]
[INFO] OpenJPA Kernel ........................................ SUCCESS [39.863s]
[INFO] OpenJPA JDBC .......................................... SUCCESS [27.326s]
[INFO] OpenJPA Persistence ................................... SUCCESS [23.530s]
[INFO] OpenJPA Persistence JDBC .............................. SUCCESS [1:14.696s]
[INFO] OpenJPA Persistence Locking Tests ..................... SUCCESS [30.881s]
[INFO] OpenJPA tools ......................................... SUCCESS [0.968s]
[INFO] OpenJPA Maven Plugin .................................. SUCCESS [2:45.320s]
[INFO] OpenJPA XML Store ..................................... SUCCESS [25.335s]
[INFO] OpenJPA Slice ......................................... SUCCESS [10.456s]
[INFO] OpenJPA JEST .......................................... SUCCESS [8.861s]
[INFO] OpenJPA Aggregate Jar ................................. SUCCESS [50.297s]
[INFO] OpenJPA Aggregate Jar with Dependencies ............... SUCCESS [13.871s]
[INFO] OpenJPA Project Docs and Assemblies ................... SUCCESS [1:12.215s]
[INFO] OpenJPA Examples ...................................... SUCCESS [1.241s]
[INFO] OpenJPA Examples - Simple ............................. SUCCESS [5.165s]
[INFO] OpenJPA Examples - image-gallery ...................... SUCCESS [6.933s]
[INFO] OpenJPA Examples - OpenBooks .......................... SUCCESS [26.761s]
[INFO] OpenJPA Integration Tests ............................. SUCCESS [0.957s]
[INFO] OpenJPA Integration Tests - Daytrader ................. SUCCESS [21.631s]
[INFO] OpenJPA Integration Tests - Examples .................. SUCCESS [0.143s]
[INFO] OpenJPA Integration Tests - SLF4JLogFactory ........... SUCCESS [6.690s]
[INFO] OpenJPA Integration Tests - JPA TCK ................... SUCCESS [0.321s]
[INFO] OpenJPA Integration Tests - Bean Validation ........... SUCCESS [10.694s]
[INFO] OpenJPA Integration Tests - JMX Platform MBeans ....... SUCCESS [19.434s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13 minutes 33 seconds
[INFO] Finished at: Thu Feb 09 10:25:05 CST 2012
[INFO] Final Memory: 118M/232M
[INFO] ------------------------------------------------------------------------

$ ls openjpa-project/target/site/downloads/

apache-openjpa-2.2.0-SNAPSHOT-binary.zip
apache-openjpa-2.2.0-SNAPSHOT-source.zip



Advanced Build Options
======================


To speed up the local build time you might want to exclude the tests which
check locking timeouts as they take a really long time (mostly waiting for
timeout expiration).

This can be achieved by building the project with
$ mvn clean install -Dsurefire.excludes.locking=**/*



Building and deploying the Site
===============================

$ mvn site site:deploy -Pjavadoc-profile,docbook-profile

To generate the docbook documentation you need to cd into the openjpa-project directory and run

$ cd ./openjpa-project
$ mvn clean install -Papache-release,docbook-profile

The generated PDF is available under ./target/docbook/manual.pdf


Running unit tests in the Debugger
==================================

By default all tests run against a derby database.
To run the tests in the debugger simply add the following JVM properties

 -ea -Dopenjpa.ConnectionURL=jdbc:derby:target/database/openjpa-derby-database;create=true -Dopenjpa.ConnectionDriverName=org.apache.derby.jdbc.EmbeddedDriver

For running against a MySQL Docker installation:
 -ea -Dopenjpa.ConnectionDriverName=com.mysql.jdbc.Driver -Dopenjpa.ConnectionURL=jdbc:mysql://localhost:3306/openjpatst -Dopenjpa.ConnectionUserName=openjpatst -Dopenjpa.ConnectionPassword=openjpatst

Running against a PostgreSQL Docker installation:
 -ea -Dopenjpa.ConnectionDriverName=org.postgresql.Driver -Dopenjpa.ConnectionURL=jdbc:postgresql://localhost:5432/openjpatst -Dopenjpa.ConnectionUserName=postgres -Dopenjpa.ConnectionPassword=postgres

For running against a MariaDB Docker installation:
 -ea -Dopenjpa.ConnectionDriverName=org.mariadb.jdbc.Driver -Dopenjpa.ConnectionURL=jdbc:mariadb://localhost:3306/openjpatst -Dopenjpa.ConnectionUserName=root -Dopenjpa.ConnectionPassword=openjpatst

For running against a h2 based installation:
 -ea -Dopenjpa.ConnectionDriverName=org.h2.Driver -Dopenjpa.ConnectionURL=jdbc:h2:./target/database/openjpa-h2-database -Dopenjpa.ConnectionUserName=root -Dopenjpa.ConnectionPassword=openjpatst

For running against a hsqldb based installation:
 -ea -Dopenjpa.ConnectionDriverName=org.hsqldb.jdbcDriver -Dopenjpa.ConnectionURL=jdbc:hsqldb:mem:openjpa20-hsqldb-database -Dopenjpa.ConnectionUserName=sa -Dopenjpa.ConnectionPassword=

For running tests against a Microsoft SQLServer Docker based installation:
 -ea -Dopenjpa.ConnectionDriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver -Dopenjpa.ConnectionURL=jdbc:sqlserver://localhost:1433;sendTimeAsDatetime=false -Dopenjpa.ConnectionUserName=SA -Dopenjpa.ConnectionPassword=OpenJP8tst

For running against a Oracle Docker installation:
 -ea -Dopenjpa.ConnectionDriverName=oracle.jdbc.driver.OracleDriver -Dopenjpa.ConnectionURL=jdbc:oracle:thin:@localhost:1521:xe -Dopenjpa.ConnectionUserName=openjpatst -Dopenjpa.ConnectionPassword=openjpatst


For starting tests in `openjpa-persistence-jdbc` inside a compiler you can also trigger all the enhancement manually via:

 $> mvn process-test-classes
