commit | 05e7ee79397c456a57eb5dcbe549593c816fdfaa | [log] [tgz] |
---|---|---|
author | Andy Jefferson <andy@datanucleus.org> | Sat Feb 23 07:00:45 2019 +0000 |
committer | GitHub <noreply@github.com> | Sat Feb 23 07:00:45 2019 +0000 |
tree | 251c091ede8ac191928a056dc3dae3aa472bc673 | |
parent | 775080593ef5f219be572f43a2e35faffa0fd692 [diff] | |
parent | 10d881bc1cb9e6743d29e346ef63012dca029d5b [diff] |
Merge pull request #3 from andyjefferson/master README.md for use by GitHub
The Apache JDO project includes the following subprojects:
jdo-api-{version}.jar
, which defines the JDO API for Java 1.8 and later.pom.xml
that ties the projects together.JDO releases may be downloaded from the Apache JDO downloads page. Minor updates of releases are only available as source from the GitHub repository. Follow the instructions below to build the API from source.
For complete rules for certifying a JDO implementation, see RunRules.html in the tck project directory.
You must install the software listed in the following sections to successfully run the TCK. Other dependencies, such as the reference implementation, DataNucleus, and the Apache Derby database, are downloaded automatically by Maven. Note that Apache JDO uses the Apache Commons Logging package for logging.
You must have Maven (version 2+) to build the projects from source and to execute the TCK. You can download Maven from here
Note that Maven uses the user.home
system property for the location of the maven local repostitory: ${user.home}/.m2/repository
. Under Windows this system property is C:\Documents and Settings\{user}
no matter what the HOME variable is set to. As a workaround you may set the system property by adding -Duser.home=%HOME%
to the environment variable MAVEN_OPTS
.
The JNDI test cases in tck need a JNDI implementation. The TCK is configured to use Sun‘s JNDI implementation. To use your own implementation, put the implementation jar files into lib/ext and update jndi.properties
in the TCK directory src/conf.
To download Oracle’s implementation, go here. Accept the license agreement and download File System Service Provider, 1.2 Beta 3 and then unpack the downloaded zip into lib/ext
. It includes the jars fscontext.jar
and providerutil.jar
.
For instructions for checking out the JDO source, see the Apache JDO source code page.
To build JDO with all subprojects go to the root directory of the branch you are working in (or trunk)
mvn clean install
This will build the artifacts jdo-api and jdo-exectck and will run the TCK.
To build the API, change to the “api” directory of the branch you are working in (or trunk) and run
mvn clean install
This will build the jdo-api artifact and install it in your local Maven repository and run the TCK on the Reference Implementation.
First build the from the top level TCK project as described above. To run the JDO TCK on an Implementation Under Test, edit tck/pom.xml and add the iut dependencies to the profile called iut. Also check the following files under tck/src/main/resources/conf and change the content to the needs of the Implementation Under Test: iut-jdoconfig.xml
, iut-log4j.properties
, iut-persistence.xml
and iut-pmf.properties
.
Change to the “tck” directory of the branch you are working in (or trunk) and run
mvn -Djdo.tck.impl="iut" clean install
and this will run the TCK (via the “jdo-exectck” plugin) on the Implementation Under Test on all supported databases and identity types.
The “jdo-exectck” plugin has various options so you can run other implementations or only run particular tests.
The jdo-exectck Maven plugin has the following custom goals
The jdo-exectck Maven plugin has the following options
${user.dir}/datanucleus.txt
Example 1 : Installs the database schema for datastore identity for all supported databases.
mvn -Djdo.tck.identitytypes=datastoreidentity jdo-exectck:installSchema
Example 2 : Runs the test configurations specified in alltests.conf
and cfg1.conf
on the JDORI, using all supported identity types and databases.
mvn -Djdo.tck.cfglist="alltests.conf cfg1.conf" jdo-exectck:runtck
While running the TCK, maven uses the following configuration files in src/conf: