From commits-return-10175-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 4 01:41:53 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 113E8D06E for ; Tue, 4 Dec 2012 01:41:53 +0000 (UTC) Received: (qmail 93180 invoked by uid 500); 4 Dec 2012 01:41:53 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 93114 invoked by uid 500); 4 Dec 2012 01:41:52 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 93106 invoked by uid 99); 4 Dec 2012 01:41:52 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Dec 2012 01:41:52 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Dec 2012 01:41:50 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3903C23888E4; Tue, 4 Dec 2012 01:41:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1416742 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Date: Tue, 04 Dec 2012 01:41:27 -0000 To: commits@openjpa.apache.org From: ppoddar@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121204014129.3903C23888E4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ppoddar Date: Tue Dec 4 01:41:24 2012 New Revision: 1416742 URL: http://svn.apache.org/viewvc?rev=1416742&view=rev Log: OPENJPA-2284: Save NPE while parsing cascade Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1416742&r1=1416741&r2=1416742&view=diff ============================================================================== --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Tue Dec 4 01:41:24 2012 @@ -1361,10 +1361,8 @@ public class XMLPersistenceMetaDataParse return; ValueMetaData vmd = fmd; - switch (_strategy) { - case ONE_MANY: - case MANY_MANY: - vmd = fmd.getElement(); + if (_strategy == ONE_MANY || _strategy == MANY_MANY) { + vmd = fmd.getElement(); } for (CascadeType cascade : cascades) { switch (cascade) { From commits-return-10176-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 4 06:51:42 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6F164DCAB for ; Tue, 4 Dec 2012 06:51:42 +0000 (UTC) Received: (qmail 59084 invoked by uid 500); 4 Dec 2012 06:51:42 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 58879 invoked by uid 500); 4 Dec 2012 06:51:34 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 58817 invoked by uid 99); 4 Dec 2012 06:51:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Dec 2012 06:51:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Dec 2012 06:51:30 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id 27E6BC00E8 for ; Tue, 4 Dec 2012 06:51:10 +0000 (UTC) Date: Tue, 4 Dec 2012 06:51:10 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <951672032.278.1354603870162.JavaMail.hudson@aegis> Subject: Build failed in Jenkins: OpenJPA-trunk-deploy #347 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA-trunk-deploy X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See Changes: [ppoddar] OPENJPA-2284: Save NPE while parsing cascade [hthomann] OPENJPA-2289: Applied Albert's patch to trunk ------------------------------------------ [...truncated 475 lines...] Results : Tests run: 21, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-jdbc-2.3.0-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [INFO] [deploy:deploy {execution: default-deploy}] [INFO] Retrieving previous build number from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '3420fcc64fecf0236af2610a134ba3401e44c79f'; remote = '92d7895d5e154f22c3c1d1235a20de694bee7c0e' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '3420fcc64fecf0236af2610a134ba3401e44c79f'; remote = '92d7895d5e154f22c3c1d1235a20de694bee7c0e' - IGNORING Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-20121204.064847-98.jar 1387K uploaded (openjpa-jdbc-2.3.0-20121204.064847-98.jar) [INFO] Uploading project information for openjpa-jdbc 2.3.0-20121204.064847-98 [INFO] Retrieving previous metadata from apache.snapshots.https [INFO] Uploading repository metadata for: 'artifact org.apache.openjpa:openjpa-jdbc' [INFO] Retrieving previous metadata from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '3420fcc64fecf0236af2610a134ba3401e44c79f'; remote = '92d7895d5e154f22c3c1d1235a20de694bee7c0e' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '3420fcc64fecf0236af2610a134ba3401e44c79f'; remote = '92d7895d5e154f22c3c1d1235a20de694bee7c0e' - IGNORING [INFO] Uploading repository metadata for: 'snapshot org.apache.openjpa:openjpa-jdbc:2.3.0-SNAPSHOT' [INFO] Retrieving previous build number from apache.snapshots.https Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-20121204.064847-98-tests.jar 41K uploaded (openjpa-jdbc-2.3.0-20121204.064847-98-tests.jar) [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-20121204.064847-98/openjpa-jdbc-2.3.0-20121204.064847-98.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-20121204.064847-98/openjpa-jdbc-2.3.0-20121204.064847-98-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting file set: (included: [**], excluded: []) [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 14 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 233 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [WARNING] DEPRECATED [systemProperties]: Use systemPropertyVariables instead. [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.openjpa.persistence.TestEnumToKernelConstantMappings Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 sec Running org.apache.openjpa.persistence.TestPersistenceProductDerivation Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.38 sec Results : Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-persistence-2.3.0-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [INFO] [deploy:deploy {execution: default-deploy}] [INFO] Retrieving previous build number from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '843ef96375e93b0f8e65f8261a9d06c561ab1eea'; remote = 'ce5f56e2229b9d4f26db071a85472f310a822038' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '843ef96375e93b0f8e65f8261a9d06c561ab1eea'; remote = 'ce5f56e2229b9d4f26db071a85472f310a822038' - IGNORING Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-20121204.064847-98.jar 809K uploaded (openjpa-persistence-2.3.0-20121204.064847-98.jar) [INFO] Uploading project information for openjpa-persistence 2.3.0-20121204.064847-98 [INFO] Retrieving previous metadata from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '843ef96375e93b0f8e65f8261a9d06c561ab1eea'; remote = 'ce5f56e2229b9d4f26db071a85472f310a822038' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '843ef96375e93b0f8e65f8261a9d06c561ab1eea'; remote = 'ce5f56e2229b9d4f26db071a85472f310a822038' - IGNORING [INFO] Uploading repository metadata for: 'snapshot org.apache.openjpa:openjpa-persistence:2.3.0-SNAPSHOT' [INFO] Retrieving previous metadata from apache.snapshots.https [INFO] Uploading repository metadata for: 'artifact org.apache.openjpa:openjpa-persistence' [INFO] Retrieving previous build number from apache.snapshots.https Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-20121204.064847-98-tests.jar 29K uploaded (openjpa-persistence-2.3.0-20121204.064847-98-tests.jar) [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-persistence/2.3.0-20121204.064847-98/openjpa-persistence-2.3.0-20121204.064847-98.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-persistence/2.3.0-20121204.064847-98/openjpa-persistence-2.3.0-20121204.064847-98-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting file set: (included: [**], excluded: []) [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2702 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 105 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4864) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:710) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:708) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.3.0-SNAPSHOT/openjpa-persistence-jdbc-2.3.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :89: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 minutes 28 seconds [INFO] Finished at: Tue Dec 04 06:51:07 UTC 2012 [INFO] Final Memory: 116M/618M [INFO] ------------------------------------------------------------------------ Sending e-mails to: commits@openjpa.apache.org channel stopped From commits-return-10177-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 4 06:51:43 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 219C7DCAD for ; Tue, 4 Dec 2012 06:51:43 +0000 (UTC) Received: (qmail 59135 invoked by uid 500); 4 Dec 2012 06:51:43 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 59067 invoked by uid 500); 4 Dec 2012 06:51:42 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 58856 invoked by uid 99); 4 Dec 2012 06:51:34 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Dec 2012 06:51:34 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Dec 2012 06:51:30 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id D1AC4C00AE for ; Tue, 4 Dec 2012 06:51:08 +0000 (UTC) Date: Tue, 4 Dec 2012 06:51:08 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <2052949712.277.1354603868857.JavaMail.hudson@aegis> Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_OpenJPA-trunk?= =?UTF-8?Q?-deploy_=C2=BB_OpenJPA_Persistence_JDBC_#347?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA Persistence JDBC X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See Changes: [hthomann] OPENJPA-2289: Applied Albert's patch to trunk ------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting file set: (included: [**], excluded: []) [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2702 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 105 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4864) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:710) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:708) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-04_06-47-04/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.3.0-SNAPSHOT/openjpa-persistence-jdbc-2.3.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :89: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 minutes 28 seconds [INFO] Finished at: Tue Dec 04 06:51:07 UTC 2012 [INFO] Final Memory: 116M/618M [INFO] ------------------------------------------------------------------------ From commits-return-10178-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:13:27 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D3723E0B2 for ; Sun, 9 Dec 2012 13:13:27 +0000 (UTC) Received: (qmail 80736 invoked by uid 500); 9 Dec 2012 13:13:27 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 80545 invoked by uid 500); 9 Dec 2012 13:13:21 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 80513 invoked by uid 99); 9 Dec 2012 13:13:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:13:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:13:15 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 90B502388906; Sun, 9 Dec 2012 13:12:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1418933 - /openjpa/site/trunk/lib/view.pm Date: Sun, 09 Dec 2012 13:12:54 -0000 To: commits@openjpa.apache.org From: joes@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131254.90B502388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: joes Date: Sun Dec 9 13:12:53 2012 New Revision: 1418933 URL: http://svn.apache.org/viewvc?rev=1418933&view=rev Log: trivial change to generate site build Modified: openjpa/site/trunk/lib/view.pm Modified: openjpa/site/trunk/lib/view.pm URL: http://svn.apache.org/viewvc/openjpa/site/trunk/lib/view.pm?rev=1418933&r1=1418932&r2=1418933&view=diff ============================================================================== --- openjpa/site/trunk/lib/view.pm (original) +++ openjpa/site/trunk/lib/view.pm Sun Dec 9 13:12:53 2012 @@ -44,7 +44,7 @@ sub normal_page { } } - return Dotiac::DTL::Template($template)->render(\%args), html => \%args; + return Template($template)->render(\%args), html => \%args; } # Generates cwiki-style breadcrumbs From commits-return-10179-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:14:22 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 94BBCE0B4 for ; Sun, 9 Dec 2012 13:14:22 +0000 (UTC) Received: (qmail 81954 invoked by uid 500); 9 Dec 2012 13:14:22 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 81933 invoked by uid 500); 9 Dec 2012 13:14:22 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 81926 invoked by uid 99); 9 Dec 2012 13:14:22 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:22 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:18 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 41D4B238899C for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841236 [3/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.41D4B238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo_eclipse.patch ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo_eclipse.patch (added) +++ websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo_eclipse.patch Sun Dec 9 13:13:35 2012 @@ -0,0 +1,571 @@ +### Eclipse Workspace Patch 1.0 +#P daytrader-ejb +Index: src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0) +@@ -0,0 +1,27 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.CollectionAttribute; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.AccountDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:48:10 CDT 2010") ++public class AccountDataBean_ { ++ public static volatile SingularAttribute accountID; ++ public static volatile SingularAttribute balance; ++ public static volatile SingularAttribute creationDate; ++ public static volatile CollectionAttribute holdings; ++ public static volatile SingularAttribute lastLogin; ++ public static volatile SingularAttribute loginCount; ++ public static volatile SingularAttribute logoutCount; ++ public static volatile SingularAttribute openBalance; ++ public static volatile CollectionAttribute orders; ++ public static volatile SingularAttribute profile; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\AccountDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (revision 935418) ++++ src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (working copy) +@@ -18,10 +18,15 @@ + package org.apache.geronimo.samples.daytrader.ejb3; + + import org.apache.geronimo.samples.daytrader.AccountDataBean; ++import org.apache.geronimo.samples.daytrader.AccountDataBean_; + import org.apache.geronimo.samples.daytrader.AccountProfileDataBean; ++import org.apache.geronimo.samples.daytrader.AccountProfileDataBean_; + import org.apache.geronimo.samples.daytrader.HoldingDataBean; ++import org.apache.geronimo.samples.daytrader.HoldingDataBean_; + import org.apache.geronimo.samples.daytrader.OrderDataBean; ++import org.apache.geronimo.samples.daytrader.OrderDataBean_; + import org.apache.geronimo.samples.daytrader.QuoteDataBean; ++import org.apache.geronimo.samples.daytrader.QuoteDataBean_; + import org.apache.geronimo.samples.daytrader.TradeConfig; + import org.apache.geronimo.samples.daytrader.TradeAction; + import org.apache.geronimo.samples.daytrader.RunStatsDataBean; +@@ -43,6 +48,13 @@ + import javax.persistence.EntityManager; + import javax.persistence.PersistenceContext; + import javax.persistence.Query; ++import javax.persistence.TypedQuery; ++import javax.persistence.criteria.CriteriaBuilder; ++import javax.persistence.criteria.CriteriaQuery; ++import javax.persistence.criteria.ParameterExpression; ++import javax.persistence.criteria.Path; ++import javax.persistence.criteria.Predicate; ++import javax.persistence.criteria.Root; + import javax.transaction.HeuristicMixedException; + import javax.transaction.HeuristicRollbackException; + import javax.transaction.NotSupportedException; +@@ -51,6 +63,8 @@ + import org.apache.geronimo.samples.daytrader.util.FinancialUtils; + import org.apache.geronimo.samples.daytrader.util.Log; + import org.apache.geronimo.samples.daytrader.util.MDBStats; ++import org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery; ++import org.apache.openjpa.persistence.query.QueryBuilder; + + @Stateless + @TransactionAttribute(TransactionAttributeType.REQUIRED) +@@ -89,8 +103,14 @@ + // ordered by their change in value + Collection quotes; + +- Query query = entityManager.createNamedQuery("quoteejb.quotesByChange"); +- quotes = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q WHERE q.symbol LIKE 's:1__' ORDER BY q.change1 DESC ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qdb = c.from(QuoteDataBean.class); ++ c.where(cb.like(qdb.get(QuoteDataBean_.symbol), "s:1__")); ++ c.orderBy(cb.desc(qdb.get(QuoteDataBean_.change1))); ++ quotes = entityManager.createQuery(c).getResultList(); + + QuoteDataBean[] quoteArray = (QuoteDataBean[]) quotes.toArray(new QuoteDataBean[quotes.size()]); + ArrayList topGainers = new ArrayList(5); +@@ -356,12 +376,25 @@ + + // Get the primary keys for all the closed Orders for this + // account. +- Query query = entityManager.createNamedQuery("orderejb.closedOrders"); +- query.setParameter("userID", userID); +- Collection results = query.getResultList(); +- Iterator itr = results.iterator(); +- +- // Spin through the orders to populate the lazy quote fields ++ ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT o FROM orderejb o WHERE o.orderStatus = 'closed' AND o.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(OrderDataBean.class); ++ Root odb = c.from(OrderDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path acct = odb.get(OrderDataBean_.account); ++ Path profile = acct.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ Predicate closedCondition = cb.equal(odb.get(OrderDataBean_.orderStatus), "closed"); ++ Predicate uidCondition = cb.equal(uid, uidParm); ++ Predicate condition = cb.and(closedCondition, uidCondition); ++ c.where(condition); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection results = q.setParameter(uidParm, userID).getResultList(); ++ ++ Iterator itr = results.iterator(); ++ // Spin through the orders to populate the lazy quote fields + while (itr.hasNext()){ + OrderDataBean thisOrder = (OrderDataBean)itr.next(); + thisOrder.getQuote(); +@@ -427,8 +460,13 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getAllQuotes"); + +- Query query = entityManager.createNamedQuery("quoteejb.allQuotes"); +- return query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qbd = c.from(QuoteDataBean.class); ++ TypedQuery q = entityManager.createQuery(c); ++ return q.getResultList(); + } + + public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) { +@@ -463,6 +501,7 @@ + + quote.setPrice(newPrice); + quote.setVolume(quote.getVolume() + sharesTraded); ++ quote.setChange(newPrice.subtract(quote.getOpen()).doubleValue()); + entityManager.merge(quote); + + // TODO find out if requires new here is really intended -- it is backwards, +@@ -477,9 +516,22 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getHoldings", userID); + +- Query query = entityManager.createNamedQuery("holdingejb.holdingsByUserID"); +- query.setParameter("userID", userID); +- Collection holdings = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT h FROM holdingejb h where h.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(HoldingDataBean.class); ++ Root hdb = c.from(HoldingDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path account = hdb.get(HoldingDataBean_.account); ++ Path profile = account.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ // The following 'select' method is not needed, since it is the default. It is just shown for ++ // illustrative purposes. ++ c.select(hdb); ++ c.where(cb.equal(uid, uidParm)); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection holdings = q.setParameter(uidParm, userID).getResultList(); ++ + /* + * Inflate the lazy data memebers + */ +Index: src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0) +@@ -0,0 +1,26 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.OrderDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:26:18 CDT 2010") ++public class OrderDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute completionDate; ++ public static volatile SingularAttribute openDate; ++ public static volatile SingularAttribute orderFee; ++ public static volatile SingularAttribute orderID; ++ public static volatile SingularAttribute orderStatus; ++ public static volatile SingularAttribute orderType; ++ public static volatile SingularAttribute price; ++ public static volatile SingularAttribute quantity; ++ public static volatile SingularAttribute quote; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\OrderDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0) +@@ -0,0 +1,22 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.HoldingDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:50:36 CDT 2010") ++public class HoldingDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute holdingID; ++ public static volatile SingularAttribute purchaseDate; ++ public static volatile SingularAttribute purchasePrice; ++ public static volatile SingularAttribute quantity; ++ public static volatile SingularAttribute quote; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\HoldingDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (revision 935418) ++++ src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (working copy) +@@ -38,7 +38,7 @@ + public static final int EJB3 = 0; + public static final int DIRECT = 1; + public static final int SESSION3 = 2; +- public static int runTimeMode = DIRECT; ++ public static int runTimeMode = EJB3; + + /* Trade JPA Layer parameters */ + public static String[] jpaLayerNames = {"OpenJPA", "Hibernate"}; +Index: src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0) +@@ -0,0 +1,21 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.AccountProfileDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 10:10:27 CDT 2010") ++public class AccountProfileDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute address; ++ public static volatile SingularAttribute creditCard; ++ public static volatile SingularAttribute email; ++ public static volatile SingularAttribute fullName; ++ public static volatile SingularAttribute passwd; ++ public static volatile SingularAttribute userID; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\AccountProfileDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (revision 935418) ++++ src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (working copy) +@@ -18,8 +18,6 @@ + + + import java.math.BigDecimal; +-import java.rmi.Remote; +-import java.rmi.RemoteException; + import java.util.Collection; + + /** +@@ -33,7 +31,7 @@ + * @see TradeDirect + * + */ +-public interface TradeServices extends Remote { ++public interface TradeServices { + + /** + * Compute and return a snapshot of the current market conditions +@@ -44,7 +42,7 @@ + * + * @return A snapshot of the current market summary + */ +- public MarketSummaryDataBean getMarketSummary() throws Exception, RemoteException; ++ public MarketSummaryDataBean getMarketSummary() throws Exception; + + + /** +@@ -61,7 +59,7 @@ + */ + + +- public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception; + + /** + * Sell a stock holding and removed the holding for the given user. +@@ -72,7 +70,7 @@ + * @param holdingID the users holding to be sold + * @return OrderDataBean providing the status of the newly created sell order + */ +- public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception; + + + /** +@@ -87,7 +85,7 @@ + * @param orderID the Order being queued for processing + * @return OrderDataBean providing the status of the completed order + */ +- public void queueOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void queueOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Complete the Order identefied by orderID +@@ -102,7 +100,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Cancel the Order identefied by orderID +@@ -113,7 +111,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception; + + + /** +@@ -123,7 +121,7 @@ + * @param orderID the order which has completed + * + */ +- public void orderCompleted(String userID, Integer orderID) throws Exception, RemoteException; ++ public void orderCompleted(String userID, Integer orderID) throws Exception; + + + /** +@@ -132,7 +130,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getOrders(String userID) throws Exception, RemoteException; ++ public Collection getOrders(String userID) throws Exception; + + /** + * Get the collection of completed orders for a given account that need to be alerted to the user +@@ -140,7 +138,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getClosedOrders(String userID) throws Exception, RemoteException; ++ public Collection getClosedOrders(String userID) throws Exception; + + + /** +@@ -151,7 +149,7 @@ + * @param details a short description of the stock or company + * @return a new QuoteDataBean or null if Quote could not be created + */ +- public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception, RemoteException; ++ public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception; + + /** + * Return a {@link QuoteDataBean} describing a current quote for the given stock symbol +@@ -159,14 +157,14 @@ + * @param symbol the stock symbol to retrieve the current Quote + * @return the QuoteDataBean + */ +- public QuoteDataBean getQuote(String symbol) throws Exception, RemoteException; ++ public QuoteDataBean getQuote(String symbol) throws Exception; + + /** + * Return a {@link java.util.Collection} of {@link QuoteDataBean} + * describing all current quotes + * @return A collection of QuoteDataBean + */ +- public Collection getAllQuotes() throws Exception, RemoteException; ++ public Collection getAllQuotes() throws Exception; + + /** + * Update the stock quote price and volume for the specified stock symbol +@@ -175,7 +173,7 @@ + * @param price the updated quote price + * @return the QuoteDataBean describing the stock + */ +- public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception, RemoteException; ++ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception; + + + /** +@@ -185,7 +183,7 @@ + * @param userID the customer requesting the portfolio + * @return Collection of the users portfolio of stock holdings + */ +- public Collection getHoldings(String userID) throws Exception, RemoteException; ++ public Collection getHoldings(String userID) throws Exception; + + /** + * Return a specific user stock holding identifed by the holdingID +@@ -193,7 +191,7 @@ + * @param holdingID the holdingID to return + * @return a HoldingDataBean describing the holding + */ +- public HoldingDataBean getHolding(Integer holdingID) throws Exception, RemoteException; ++ public HoldingDataBean getHolding(Integer holdingID) throws Exception; + + /** + * Return an AccountDataBean object for userID describing the account +@@ -202,7 +200,7 @@ + * @return User account data in AccountDataBean + */ + public AccountDataBean getAccountData(String userID) +- throws Exception, RemoteException; ++ throws Exception; + + /** + * Return an AccountProfileDataBean for userID providing the users profile +@@ -210,7 +208,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean getAccountProfileData(String userID) throws Exception, RemoteException; ++ public AccountProfileDataBean getAccountProfileData(String userID) throws Exception; + + /** + * Update userID's account profile information using the provided AccountProfileDataBean object +@@ -218,7 +216,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception, RemoteException; ++ public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception; + + + /** +@@ -228,7 +226,7 @@ + * @param password the password entered by the customer for authentication + * @return User account data in AccountDataBean + */ +- public AccountDataBean login(String userID, String password) throws Exception, RemoteException; ++ public AccountDataBean login(String userID, String password) throws Exception; + + /** + * Logout the given user +@@ -237,7 +235,7 @@ + * @return the login status + */ + +- public void logout(String userID) throws Exception, RemoteException; ++ public void logout(String userID) throws Exception; + + /** + * Register a new Trade customer. +@@ -259,7 +257,7 @@ + String address, + String email, + String creditcard, +- BigDecimal openBalance) throws Exception, RemoteException; ++ BigDecimal openBalance) throws Exception; + + + /** +@@ -271,6 +269,6 @@ + * + * return statistics for this benchmark run + */ +- public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception, RemoteException; ++ public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception; + } + +Index: pom.xml +=================================================================== +--- pom.xml (revision 935418) ++++ pom.xml (working copy) +@@ -54,7 +54,8 @@ + + + org.apache.geronimo.specs +- geronimo-jpa_3.0_spec ++ geronimo-jpa_2.0_spec ++ 1.1 + provided + + +@@ -80,6 +81,7 @@ + + org.apache.openjpa + openjpa ++ 2.0.0 + provided + + +Index: src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0) +@@ -0,0 +1,23 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.QuoteDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:51:22 CDT 2010") ++public class QuoteDataBean_ { ++ public static volatile SingularAttribute change1; ++ public static volatile SingularAttribute companyName; ++ public static volatile SingularAttribute high; ++ public static volatile SingularAttribute low; ++ public static volatile SingularAttribute open1; ++ public static volatile SingularAttribute price; ++ public static volatile SingularAttribute symbol; ++ public static volatile SingularAttribute volume; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\QuoteDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_singleServer.py ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/daytrader_singleServer.py (added) +++ websites/staging/openjpa/trunk/content/artifacts/daytrader_singleServer.py Sun Dec 9 13:13:35 2012 @@ -0,0 +1,1580 @@ +import sys +import os +import getopt +global AdminConfig + +#----------------------------------------------------------------- +# WARNING: Jython/Python is extremely sensitive to indentation +# errors. Please ensure that tabs are configured appropriately +# for your editor of choice. +#----------------------------------------------------------------- + +#----------------------------------------------------------------- +# daytrader_singleServer.py - DayTrader Single Server Install Script +#----------------------------------------------------------------- +# +# This script is designed to configure the JDBC and JMS resource required by +# the DayTrader application and to install the application. + +#--------------------------------------------------------------------- +# Usage info +#--------------------------------------------------------------------- + +def printUsageAndExit (): + # start of print block + print """ + +Usage: wsadmin -f daytrader_singleServer.py where + is zero or more of the following + --help Display this usage information. + --prompt Whether or not to prompt for input. Valid values are: + true (default) + false + -a, --action action Action to perform. Valid values are: + all (default) - configures JDBC and JMS resources + and installs the app + configure - only configure the JDBC and JMS resource + cleanup - remove the JDBC and JMS resources + install - install the DayTrader ear + uninstall - uninstall the DayTrader ear + -e, --earfile ear The location of the earfile to install when the + action is 'all' or 'install'. The default + is 'daytrader-ear-2.1.3.ear' located in the same + directory from which wsadmin is being run. + (Note: This is only used for the 'all' or + 'install' action.) + -s, --security sec The current status of security. Valid values are: + disabled (default) + enabled + The --userid and --password options are required if + security is enabled. + (Note: This is only used for the 'all' or + 'configure' action.) + -u, --userid userid The administrative userid to use for JMS. This is + required if --security is enabled. + --password pw The administrative password to use for JMS. This is + required if --security is enabled. + + """ + # end of print block + + sys.exit() +#endDef + +#----------------------------------------------------------------- +# getInput - Obtain generic input from the user. If default value +# provided, return default value if nothing is entered. +#----------------------------------------------------------------- +def getInput (prompt, defaultValue): + print "" + print prompt + retValue = sys.stdin.readline().strip() + if (retValue == ""): + retValue = defaultValue + #endIf + + return retValue +#endDef + +#----------------------------------------------------------------- +# getValidInput - Obtain valid input from the user based on list of +# valid options. Continue to query user if the invalid +# options are entered. Return default value if nothing +# is entered. +#----------------------------------------------------------------- +def getValidInput (prompt, defaultValue, validOptions): + validate = 1 + + while (validate): + print "" + print prompt + retValue = sys.stdin.readline().strip() + + if (retValue == ""): + retValue = defaultValue + validate = 0 + #endIf + + if (validate and validOptions.count(retValue) > 0): + # Is retValue one of the valid options + validate = 0 + else: + print "Response not valid" + #endIf + #endWhile + + return retValue +#endDef + +#----------------------------------------------------------------- +# getName - Return the base name of the config object. +#----------------------------------------------------------------- +def getName (objectId): + endIndex = (objectId.find("(c") - 1) + stIndex = 0 + if (objectId.find("\"") == 0): + stIndex = 1 + #endIf + return objectId[stIndex:endIndex+1] +#endDef + +#----------------------------------------------------------------- +# getNodeId - Return the node id of the existing node if in a single +# server environment. If in an ND environment query the +# user to determine desired node. +#----------------------------------------------------------------- +def getNodeId (prompt): + nodeList = AdminConfig.list("Node").split("\n") + + if (len(nodeList) == 1): + node = nodeList[0] + else: + print "" + print "Available Nodes:" + + nodeNameList = [] + + for item in nodeList: + item = item.rstrip() + name = getName(item) + + nodeNameList.append(name) + print " " + name + #endFor + + DefaultNode = nodeNameList[0] + if (prompt == ""): + prompt = "Select the desired node" + #endIf + + nodeName = getValidInput(prompt+" ["+DefaultNode+"]:", DefaultNode, nodeNameList ) + + index = nodeNameList.index(nodeName) + node = nodeList[index] + #endElse + + return node +#endDef + +#----------------------------------------------------------------- +# getServerId - Return the server id of the existing server if +# in a single server environment. If in an ND environment +# query the user to determine desired server. +#----------------------------------------------------------------- +def getServerId (prompt): + serverList = AdminConfig.list("Server").split("\n") + + if (len(serverList) == 1): + server = serverList[0] + else: + print "" + print "Available Servers:" + + serverNameList = [] + + for item in serverList: + item = item.rstrip() + name = getName(item) + + serverNameList.append(name) + print " " + name + #endFor + + DefaultServer = serverNameList[0] + if (prompt == ""): + prompt = "Select the desired server" + #endIf + serverName = getValidInput(prompt+" ["+DefaultServer+"]:", DefaultServer, serverNameList ) + + index = serverNameList.index(serverName) + server = serverList[index] + #endElse + + return server +#endDef + +#----------------------------------------------------------------- +# createJAASAuthData - Create a new JAAS Authentication Alias if +# one with the same name does not exist. Otherwise, +# return the existing Authentication Alias. +#----------------------------------------------------------------- +def createJAASAuthData ( aliasName, user, passwd ): + print " " + print "Creating JAAS AuthData " + aliasName + "..." + + # Check if aliasName already exists + authDataAlias = "" + authList = AdminConfig.list("JAASAuthData" ) + if (len(authList) > 0): + for item in authList.split("\n"): + item = item.rstrip() + alias = AdminConfig.showAttribute(item, "alias" ) + if (alias == aliasName): + authDataAlias = item + break + #endIf + #endFor + #endIf + + # If authAlias does not exist, create a new one + + if (authDataAlias == ""): + print " Alias Name: " + aliasName + print " User: " + user + print " Password: " + passwd + + attrs = AdminConfig.list("Security") + attrs0 = [["alias", aliasName], ["userId", user], ["password", passwd]] + + authDataAlias = AdminConfig.create("JAASAuthData", attrs, attrs0) + + print aliasName + " created successfully!" + else: + print aliasName + " already exists!" + #endElse + + return authDataAlias +#endDef + +#--------------------------------------------------------------------- +# removeJAASAuthData +#--------------------------------------------------------------------- +def removeJAASAuthData (name): + print " " + print "Removing JAAS AuthData " + name + "..." + + authList = AdminConfig.list("JAASAuthData") + auth = "" + if (len(authList) > 0): + for item in authList.split("\n"): + item = item.rstrip() + ident = AdminConfig.showAttribute(item.rstrip(), "alias" ) + if (ident == name): + auth = item + break + #endIf + #endFor + #endIf + + if (auth != ""): + AdminConfig.remove(auth) + print name + " removed successfully!" + else: + print name + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createJDBCProvider - Create a new JDBC Provider if one with the +# same name does not exist in the specified scope. Otherwise, +# return the existing JDBCProvider. The 3 types or providers +# currently supported include DB2 JCC, DB2 CLI, and Oracle. +#----------------------------------------------------------------- +def createJDBCProvider (provider, XA, scopeId, path, nativePath): + + XA = XA.lower() + + name = "Derby JDBC Provider" + if (XA == "true"): + name = "Derby JDBC Provider Only (XA)" + #endIf + + print " " + print "Creating JDBC Provider " + name + "..." + + # Check if the JDBC provider already exists + + scopeName = getName(scopeId) + stIndex = (scopeId.find("|") + 1) + endIndex = (scopeId.find(".") - 1) + scope = scopeId[stIndex:endIndex+1] + + providerId = "" + if (scope == "cell"): + providerId = AdminConfig.getid("/Cell:"+scopeName+"/JDBCProvider:\""+name+"\"/" ) + elif (scope == "node"): + providerId = AdminConfig.getid("/Node:"+scopeName+"/JDBCProvider:\""+name+"\"/" ) + elif (scope == "server"): + providerId = AdminConfig.getid("/Server:"+scopeName+"/JDBCProvider:\""+name+"\"/" ) + #endIf + + if (providerId == ""): + print " Provider Name: " + name + print " Classpath: " + path + print " Native path: " + nativePath + print " XA enabled: " + XA + + template = AdminConfig.listTemplates("JDBCProvider", name+"(") + providerId = AdminConfig.createUsingTemplate("JDBCProvider", scopeId, [["name", name], ["classpath", path], ["nativepath", nativePath]], template) + + # Template creates a datasource with the same name as the provider + # Delete this datasource + dsId = "" + dsList = AdminConfig.list("DataSource") + if (len(dsList) > 0): + for item in dsList.split("\n"): + item = item.rstrip() + provider = AdminConfig.showAttribute(item, "provider" ) + if (providerId == provider): + dsId = item + print "Found DS" + #endIf + #endFor + #endIf + if (dsId != ""): + AdminConfig.remove(dsId) + #endIf + + print name + " provider created successfully!" + else: + print name + " provider already exists!" + #endElse + + return providerId +#endDef + +#----------------------------------------------------------------- +# removeJDBCProvider +#----------------------------------------------------------------- +def removeJDBCProvider(name): + print " " + print "Removing JDBCProvider " + name + "..." + + temp = AdminConfig.getid("/JDBCProvider:" + name + "/") + if (temp): + AdminConfig.remove(temp) + print name + " removed successfully!" + else: + print name + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createDatasource +#----------------------------------------------------------------- +def createDatasource (datasourceName, jndiName, stmtCacheSz, authAliasName, providerId): + # Connection pool properties + maxConnections = 50 + minConnections = 10 + + print " " + print "Creating DataSource " + datasourceName + "..." + + # Check if the DataSource already exists + dsId = "" + dsList = AdminConfig.getid("/DataSource:" + datasourceName + "/") + if (len(dsList) > 0): + for item in dsList.split("\n"): + item = item.rstrip() + provider = AdminConfig.showAttribute(item, "provider" ) + if (providerId == provider): + dsId = item + #endIf + #endFor + #endIf + + if (dsId == ""): + print " Datasource Name: " + datasourceName + print " JNDI Name: " + jndiName + print " Statement Cache Size: " + str(stmtCacheSz) + print " AuthAliasName: " + authAliasName + + # Map provider to datasource template + providerName = getName(providerId) + + providerToDsDict = {"Derby JDBC Provider Only":"Derby JDBC Driver DataSource", + "Derby JDBC Provider Only (XA)":"Derby JDBC Driver XA DataSource"} + + dsName = providerToDsDict[providerName] + + #template = AdminConfig.listTemplates("DataSource", dsName) + template="Derby JDBC Driver XA DataSource(templates/system|jdbc-resource-provider-templates.xml#DataSource_Derby_2)" + attr = [["name", datasourceName], ["jndiName", jndiName], ["statementCacheSize", stmtCacheSz]] + if (authAliasName != ""): + attr.append(["authDataAlias", authAliasName]) + #endIf + dsId = AdminConfig.createUsingTemplate("DataSource", providerId, attr, template) + + #Update connection pool sizings + pool = AdminConfig.showAttribute(dsId, "connectionPool") + AdminConfig.modify(pool, [["maxConnections", maxConnections], ["minConnections", minConnections]]) + + #Determine RRA + tempName = providerId[providerId.rfind("/")+1 : providerId.rfind("|")] + if (providerId.find("/servers/") > 0): + radapter = AdminConfig.getid("/Server:" + tempName + "/J2CResourceAdapter:WebSphere Relational Resource Adapter/") + elif (providerId.find("/nodes/") > 0): + radapter = AdminConfig.getid("/Node:" + tempName + "/J2CResourceAdapter:WebSphere Relational Resource Adapter/") + elif (providerId.find("(cells/") > 0): + radapter = AdminConfig.getid("/Cell:" + tempName + "/J2CResourceAdapter:WebSphere Relational Resource Adapter/") + #endIf + + #Create CMPConnectionFactory + tempList = AdminConfig.listTemplates('CMPConnectorFactory','default') + template = "" + if (len(tempList) > 0): + for item in tempList.split("\n"): + item = item.rstrip() + if (item[0:20] == "CMPConnectorFactory("): + template = item + break + #endIf + #endFor + #endIf + + attr = [["name", datasourceName + "_CF"], ["cmpDatasource", dsId]] + cmpFact_id = AdminConfig.createUsingTemplate("CMPConnectorFactory", radapter, attr, template) + + print datasourceName + " created successfully!" + else: + print datasourceName + " already exists in this JDBC Provider!" + #endIf + + return dsId +#endDef + +#----------------------------------------------------------------- +# addDatasourceProperty +#----------------------------------------------------------------- + +def addDatasourceProperty (datasourceId, name, value): + parms = ["-propertyName", name, "-propertyValue", value] + AdminTask.setResourceProperty(datasourceId, parms) +#endDef + +#----------------------------------------------------------------- +# updateDB2orDerbyDatasource +#----------------------------------------------------------------- +def updateDB2orDerbyDatasource (datasourceId, dbname, hostname, port, driverType): + resourceProps = AdminConfig.list("J2EEResourceProperty", datasourceId).split("\n") + for item in resourceProps: + item = item.rstrip() + propName = getName(item) + if (propName == "serverName"): + AdminConfig.modify(item, [["value", hostname]]) + #endIf + if (propName == "portNumber"): + AdminConfig.modify(item, [["value", port]]) + #endIf + if (propName == "databaseName"): + AdminConfig.modify(item, [["value", dbname]]) + #endIf + if (propName == "driverType"): + AdminConfig.modify(item, [["value", driverType]]) + #endIf + #endFor +#endDef + +#----------------------------------------------------------------- +# removeDatasource +#----------------------------------------------------------------- +def removeDatasource(name): + print " " + print "Removing DataSource " + name + "..." + + temp = AdminConfig.getid("/DataSource:" + name + "/") + if (temp): + AdminConfig.remove(temp) + print name + " removed successfully!" + else: + print name + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createSIBus - Create a new SIBus if one does not exist. Otherwise, +# return the existing SIBus. +#----------------------------------------------------------------- +def createSIBus ( busName, authAlias ): + print " " + print "Creating SIBus " + busName + "..." + + # Check if the SIBus already exists + + SIBus = AdminConfig.getid("/SIBus:"+busName+"/" ) + if (SIBus == ""): + parms = ["-bus", busName, "-interEngineAuthAlias", authAlias] + SIBus = AdminTask.createSIBus(parms ) + + print busName + " created successfully!" + else: + print busName + " already exists!" + #endElse + + return SIBus +#endDef + +#----------------------------------------------------------------- +# deleteSIBus +#----------------------------------------------------------------- +def deleteSIBus(name): + print " " + print "Deleting SIBus " + name + "..." + + temp = AdminConfig.getid("/SIBus:" + name + "/") + if (temp): + parms = ["-bus", name] + AdminTask.deleteSIBus(parms) + print name + " removed successfully!" + else: + print name + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createSIBusSecurityRole - Add user role +#----------------------------------------------------------------- +def createSIBusSecurityRole ( busId, userName ): + print " " + busName = getName(busId) + + # Check if the SIBAuthUser already exists + SIBAuthUser = "" + tmpSIBAuthUserList = AdminConfig.list("SIBAuthUser", busId) + if (len(tmpSIBAuthUserList) > 0): + for item in tmpSIBAuthUserList.split("\n"): + item = item.rstrip() + tmp = AdminConfig.showAttribute(item, "identifier" ) + if (tmp == userName): + SIBAuthUser = item + #endIf + #endFor + #endIf + + if (SIBAuthUser == ""): + print "Creating SIBus security role for " + userName + "..." + + parms = ["-bus", busName, "-user", userName] + SIBAuthUser = AdminTask.addUserToBusConnectorRole(parms ) + + print userName + " security role created successfully!" + else: + print "Role " + userName + " already exists for " + busName + "!" + #endElse + + return SIBAuthUser +#endDef + +#----------------------------------------------------------------- +# addSIBusMember - Add the specified server or cluster to the +# SIBus if it does not already exist. Assumes that the +# specified SIBus already exists. +#----------------------------------------------------------------- +def addSIBusMember ( busId, fileStore, targetArgs, dataStoreArgs ): + # busName - SIBus name + # fileStore [0] - create file store, otherwise create data store + # fileStore [1] - logDirectory - directory where fileStore is located (only used if fileStore[0] = true) + # targetArgs[0] - cluster name or node name + # targetArgs[1] - server name + # dataStoreArgs[0] - defaultDS - create default DS (true|false) + # dataStoreArgs[1] - dsJndi - jndi name of the datastore (only used if defaultDS = false) + + busName = getName(busId) + if (len(targetArgs) == 1): + clusterName = targetArgs[0] + nodeName = "dummy" + serverName = "dummy" + else: + nodeName = targetArgs[0] + serverName = targetArgs[1] + clusterName = "dummy" + #endElse + + if (len(dataStoreArgs) == 2): + defaultDS = dataStoreArgs[0] + dsJndi = dataStoreArgs[1] + defaultDS = defaultDS.lower() + #endIf + + # Check if the bus member already exists + parms = ["-bus", busName] + busMembers = AdminTask.listSIBusMembers(parms).split("\n") + member = "" + if (busMembers[0] != ""): + for item in busMembers: + item = item.rstrip() + cluster = AdminConfig.showAttribute(item, "cluster" ) + node = AdminConfig.showAttribute(item, "node" ) + server = AdminConfig.showAttribute(item, "server" ) + + if (cluster == clusterName or ( server == serverName and node == nodeName ) ): + member = item + break + #endIf + #endFor + #endIf + + if (member == ""): + print "" + if (len(targetArgs) == 1): + print "Adding SIBus member " + clusterName + "..." + parms = ["-bus", busName, "-cluster", clusterName] + else: + print "Adding SIBus member " + nodeName + " - " + serverName + "..." + parms = ["-bus", busName, "-node", nodeName, "-server", serverName] + #endElse + + print " File Store: " + fileStore[0] + if (fileStore[0] == "true"): + parms.append("-fileStore") + if (fileStore[1] != "default" and fileStore[1] != ""): + print " File Store Location: " + fileStore[1] + parms.append("-logDirectory") + parms.append(fileStore[1]) + #endIf + else: + parms.append("-dataStore") + print " Default DataSource: " + defaultDS + parms.append("-createDefaultDatasource") + parms.append(defaultDS) + if (defaultDS == "false"): + print " Datasource JNDI Name: " + dsJndi + parms.append("-datasourceJndiName") + parms.append(dsJndi) + #endIf + #endElse + + member = AdminTask.addSIBusMember(parms ) + print "SIBus member added successfully!" + else: + print "SIBus member already exists!" + #endElse + + return member +#endDef + +#----------------------------------------------------------------- +# createSIBDestination - Create a new SIB Destination if one with the same +# name does not exist on the specified SIBus. Otherwise, +# return the existing Destination. +#----------------------------------------------------------------- +def createSIBDestination ( busId, destName, destType, reliability, optArgs ): + # SIBus - SIBus name + # destName - destination name + # destType - destination type + # reliability - reliability + # optArgs[0] - cluster name or node name + # optArgs[1] - server name + + if (len(optArgs) == 1): + clusterName = optArgs[0] + elif (len(optArgs) == 2) : + nodeName = optArgs[0] + serverName = optArgs[1] + #endElse + + print " " + print "Creating SIB Destination " + destName + "..." + + # Check if the SIB Destination already exists + SIBus = getName(busId) + parms = ["-bus", SIBus] + destList = AdminTask.listSIBDestinations(parms ) + + dest = "" + if (len(destList) > 0): + for item in destList.split("\n"): + item = item.rstrip() + ident = AdminConfig.showAttribute(item.rstrip(), "identifier" ) + if (ident == destName): + dest = item.rstrip() + break + #endIf + #endFor + #endIf + + if (dest == ""): + print " Destination Name: " + destName + print " Destination Type: " + destType + print " Reliability: " + reliability + + parms = ["-bus", SIBus, "-name", destName, "-type", destType, "-reliability", reliability] + + if (destType == "Queue"): + if (len(optArgs) == 1): + print " Cluster Name: " + clusterName + parms.append("-cluster") + parms.append(clusterName) + elif (len(optArgs) == 2): + print " Node Name: " + nodeName + print " Server Name: " + serverName + parms.append("-node") + parms.append(nodeName) + parms.append("-server") + parms.append(serverName) + #endElse + #endIf + + dest = AdminTask.createSIBDestination(parms ) + + print destName + " created successfully!" + else: + print destName + " already exists!" + #endElse + + return dest +#endDef + +#----------------------------------------------------------------- +# deleteSIBDestination +#----------------------------------------------------------------- +def deleteSIBDestination(name): + print " " + print "Deleting SIB Destination " + name + "..." + + destList = AdminConfig.list("SIBDestination") + dest = "" + if (len(destList) > 0): + for item in destList.split("\n"): + item = item.rstrip() + ident = AdminConfig.showAttribute(item.rstrip(), "identifier" ) + if (ident == name): + dest = item + break + #endIf + #endFor + #endIf + + if (dest != ""): + bus = dest[dest.rfind("/")+1 : dest.rfind("|")] + parms = ["-bus", bus, "-name", name] + AdminTask.deleteSIBDestination(parms) + print name + " removed successfully!" + else: + print name + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createJMSConnectionFactory - Create a new JMS Connection Factory +# if one with the same name does not exist on the SIBus. +# Otherwise, return the existing Connection Factory. +#----------------------------------------------------------------- +def createJMSConnectionFactory ( busId, cfName, cfType, jndiName, authAlias, scope ): + # Create JMS Connection Factory + # SIBus - SIBus name + # cfName - connection factory name + # cfType - connection factory type + # jndiName - connection factory jndi name + # authAlias - authentication alias name + # scope - scope + + print " " + print "Creating JMS " + cfType + " Connection Factory " + cfName + "..." + + # Check if the connection factory already exists + + parms = ["-type", cfType] + cfList = AdminTask.listSIBJMSConnectionFactories(scope, parms ) + connectionFactory = "" + if (len(cfList) > 0): + for item in cfList.split("\n"): + item = item.rstrip() + if (item.find(cfName) >= 0): + connectionFactory = item + break + #endIf + #endFor + #enfIf + + if (connectionFactory == "" ): + print " Connection Factory Name: " + cfName + print " Connection Factory Type: " + cfType + print " JNDI Name: " + jndiName + + params = ["-name", cfName, "-jndiName", jndiName, "-busName", getName(busId), "-type", cfType, "-authDataAlias", authAlias] + connectionFactory = AdminTask.createSIBJMSConnectionFactory(scope, params ) + + print cfName + " created successfully!" + else: + print cfName + " already exists!" + #endElse + + return connectionFactory +#endDef + +#----------------------------------------------------------------- +# deleteJMSConnectionFactory +#----------------------------------------------------------------- +def deleteJMSConnectionFactory(name): + print " " + print "Deleting JMS Connection Factory " + name + "..." + + temp = AdminConfig.getid("/J2CConnectionFactory:" + name + "/") + if (temp): + AdminTask.deleteSIBJMSConnectionFactory(temp) + print name + " removed successfully!" + else: + print name + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createJMSQueue - Create a new JMS Queue if one with the same +# name does not exist at the specified scope. Otherwise, +# return the existing JMS Queue. +#----------------------------------------------------------------- +def createJMSQueue ( qName, jndiName, SIBDest, delMode, scope ): + # qName - queue name + # jndiName - queue jndi name + # SIBDest - SIB destination + # delMode - delivery mode + # scope - scope + + print " " + print "Creating JMS Queue " + qName + "..." + + # Check if the queue already exists + + qList = AdminTask.listSIBJMSQueues(scope ) + queue = "" + if (len(qList) > 0): + for item in qList.split("\n"): + item = item.rstrip() + if (item.find(qName) >= 0): + queue = item + break + #endIf + #endFor + #endIf + + if (queue == ""): + print " Queue Name: " + qName + print " JNDI Name: " + jndiName + print " SIB Destination: " + SIBDest + print " Delivery Mode: " + delMode + + params = ["-name", qName, "-jndiName", jndiName, "-queueName", SIBDest, "-deliveryMode", delMode] + queue = AdminTask.createSIBJMSQueue(scope, params ) + + print qName + " created successfully!" + else: + print qName + " already exists!" + #endElse + + return queue +#endDef + +#----------------------------------------------------------------- +# deleteJMSQueue +#----------------------------------------------------------------- +def deleteJMSQueue(queueName): + print " " + print "Deleting JMS Queue " + queueName + "..." + + temp = AdminConfig.getid("/J2CAdminObject:" + queueName + "/") + if (temp): + AdminTask.deleteSIBJMSQueue(temp) + print queueName + " removed successfully!" + else: + print queueName + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createJMSTopic - Create a new JMS Topic if one with the same +# name does not exist at the specified scope. Otherwise, +# return the existing JMS Topic. +#----------------------------------------------------------------- +def createJMSTopic ( tName, jndiName, tSpace, delMode, scope ): + # tName - topic name + # jndiName - topic jndi name + # tSpace - topic space + # delMode - delivery mode + # scope - scope + + print " " + print "Creating JMS Topic " + tName + "..." + + # Check if the topic already exists + + tList = AdminTask.listSIBJMSTopics(scope ) + topic = "" + if (len(tList) > 0): + for item in tList.split("\n"): + item = item.rstrip() + if (item.find(tName) >= 0): + topic = item + break + #endIf + #endFor + #endIf + + if (topic == ""): + print " Topic Name: " + tName + print " JNDI Name: " + jndiName + print " Topic Space: " + tSpace + print " Delivery Mode: " + delMode + + params = ["-name", tName, "-jndiName", jndiName, "-topicName", tName, "-topicSpace", tSpace, "-deliveryMode", delMode] + topic = AdminTask.createSIBJMSTopic(scope, params ) + + print tName + " created successfully!" + else: + print tName + " already exists!" + #endElse + + return topic +#endDef + +#----------------------------------------------------------------- +# deleteJMSTopic +#----------------------------------------------------------------- +def deleteJMSTopic(topicName): + print " " + print "Deleting JMS Topic " + topicName + "..." + + temp = AdminConfig.getid("/J2CAdminObject:" + topicName + "/") + if (temp): + AdminTask.deleteSIBJMSTopic(temp) + print topicName + " removed successfully!" + else: + print topicName + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# createMDBActivationSpec - Create a new MDB Activation Spec if one +# with the same name does not exist at the specified +# scope. Otherwise, return the existing Activation Spec. +#----------------------------------------------------------------- +def createMDBActivationSpec ( mdbName, jndiName, busId, JMSDestJndi, destType, authAlias, scope, durability ): + # mdbName - MDB name + # jndiName - activation spec jndi name + # SIBus - SIBus name + # JMSDestJndi - JMS destination JNDI name + # destType - destination type + # authAlias - authentication alias name + # scope - scope + # durability - subscriptionDurability + + print " " + print "Creating MDB Activation Spec " + mdbName + "..." + + # Check if the activation spec already exists + + asList = AdminTask.listSIBJMSActivationSpecs(scope ) + mdb = "" + if (len(asList) > 0): + for item in asList.split("\n"): + item = item.rstrip() + if (item.find(mdbName) >= 0): + mdb = item + break + #endIf + #endFor + #endIf + + if (mdb == ""): + print " MDB Activation Spec Name: " + mdbName + print " JNDI Name: " + jndiName + print " JMS Destination JNDI Name: " + JMSDestJndi + print " Destination Type: " + destType + + SIBus = getName(busId) + params = ["-name", mdbName, "-jndiName", jndiName, "-busName", SIBus, "-destinationJndiName", JMSDestJndi, "-destinationType", destType, "-authenticationAlias", authAlias, "-subscriptionDurability", durability, "-clientId", mdbName, "-subscriptionName", mdbName] + mdb = AdminTask.createSIBJMSActivationSpec(scope, params ) + + print mdbName + " created successfully!" + else: + print mdbName + " already exists!" + #endElse + + return mdb +#endDef + +#----------------------------------------------------------------- +# deleteMDBActivationSpec +#----------------------------------------------------------------- +def deleteMDBActicationSpec (mdbName): + print " " + print "Deleting MDB Activation Spec " + mdbName + "..." + + temp = AdminConfig.getid("/J2CActivationSpec:" + mdbName + "/") + if (temp): + AdminTask.deleteSIBJMSActivationSpec(temp) + print mdbName + " removed successfully!" + else: + print mdbName + " not found!" + #endElse +#endDef + +#----------------------------------------------------------------- +# installApp - Install the specified application ear file if an +# application with the same name does not exist. +#----------------------------------------------------------------- +def installApp ( appName, ear, deployejb, deployws, defaultBindings, earMetaData, dbType, target ): + # appName - application name + # ear - ear file + # deployejb - deploy ejb (true|false) + # deployws - deploy webservices (true|false) + # defaultBindings - use default binding (true|false) + # earMetaData - use MetaData from ear (true|false) + # dbType - ejb deploy db type + # target[0] - node name or cluster name + # target[1] - server name + + print "" + print "Installing application " + appName + "..." + + deployejb = deployejb.lower() + deployws = deployws.lower() + defaultBindings = defaultBindings.lower() + earMetaData = earMetaData.lower() + + # Check if the application already exists + app = "" + appList = AdminApp.list( ) + if (len(appList) > 0): + for item in appList.split("\n"): + item = item.rstrip() + if (item.find(appName) == 0): + app = item + break + #endIf + #endFor + #endIf + + if (app == ""): + print " Application Name: " + appName + print " Ear file: " + ear + if (len(target) == 1): + cluster = target[0] + print " Target Cluster: " + cluster + else: + node = target[0] + server = target[1] + print " Target Node: " + node + print " Target Server: " + server + #endElse + print " Deploy EJB: " + deployejb + print " Deploy WebServices: " + deployws + print " Use default bindings: " + defaultBindings + print " Use Ear MetaData: " + earMetaData + print " Deployed DB Type: " + dbType + + parms = "-appname " + appName + if (deployejb == "true"): + parms += " -deployejb" + parms += " -deployejb.dbtype " + dbType + else: + parms += " -nodeployejb" + #endElse + if (deployws == "true"): + parms += " -deployws" + else: + parms += " -nodeployws" + #endElse + if (defaultBindings == "true"): + parms += " -usedefaultbindings" + #endIf + if (earMetaData == "true"): + parms += " -useMetaDataFromBinary" + else: + parms += " -nouseMetaDataFromBinary" + #endElse + + if (len(target) == 1): + parms += " -cluster " + cluster + else: + parms += " -node " + node + " -server " + server + #endElse + + parms1 = [parms] + + print "Starting application install..." + + app = AdminApp.install(ear, parms1 ) + + print "Install completed successfully!" + else: + print appName + " already exists!" + #endElse + + return app +#endDef + +#----------------------------------------------------------------- +# uninstallApp - Uninstall the specified application if it exists. +#----------------------------------------------------------------- +def uninstallApp ( appName ): + # appName - application name + + print "" + print "Uninstalling application..." + + # Check if the application does not exist + app = "" + appList = AdminApp.list( ) + if (len(appList) > 0): + for item in appList.split("\n"): + item = item.rstrip() + if (item.find(appName) >= 0): + app = item + break + #endIf + #endFor + #endIf + + if (app != ""): + AdminApp.uninstall(appName ) + + print "Application uninstalled successfully!" + else: + print "Application does not exist!" + #endElse +#endDef + +#----------------------------------------------------------------- +# start processing +#----------------------------------------------------------------- +print "" +print "daytrader_singleServer.py" + +# Edit this parameter to switch between Interactive and Silent installs +SilentInstall = "false" + +#--------------------------------------------------------------------- +# Default Properties for Silent Install +# +# Edit the variables in this section to perform a silent install. +#--------------------------------------------------------------------- + +# Silent install properties for Managed Node +# - Modify these properties to specify the target node and server +TargetNodeName = "nodeName" +TargetServerName = "serverName" +# - Or uncomment the following lines to detect the server and node names +#TargetNodeName = getName(getNodeId("")) +#TargetServerName = getName(getServerId("")) + + +# Security options +# Note: If global security is enabled or will be enabled at some point and +# time, the AdminAuthAlias should be updated with a valid administrative +# userid and password. In single-server configurations, this can be provided +# by role-based auth (default), local OS auth, LDAP, etc. For cluster +# configurations, LDAP, Windows Active Directory or some other form of +# centralized authentication mechanism must be used to validate the userid. +SecurityEnabled = "false" +DefaultAdminUser = "AdminUserID" +DefaultAdminPasswd = "password" + +# JDBC provider options +DefaultProviderType = "Derby" +DefaultPathName = "${DERBY_JDBC_DRIVER_PATH}/derby.jar" +DefaultNativePathName = "" + +# Datasource options +DefaultDatabaseName = "tradedb" +DefaultHostname = "localhost" +DefaultPort = "50000" +DefaultUser = "userid" +DefaultPasswd = "password" + +# Additional defaults for vendor specific Datasources +#DefaultIfxLockMode = "60" +#DefaultIfxServerName = "ifxServerName" +#DefaultOraclePort = "1521" +DefaultDB2DriverType = "4" + +# Deploy options +# Deploy types include: +# "DB2UDB_V82","DB2UDBOS390_V8","DB2UDBISERIES_V54","DERBY_V10","MSSQLSERVER_2005","ORACLE_V10G","INFORMIX_V100" +DefaultEJBDeployType = "DERBY_V10" + +# JMS Messaging Engine Datastore options +# Note: true - file store will be used +# false - database data store will be used +DefaultMEFileStore = "true" +DefaultMEFileStoreLocation = "default" + + +#--------------------------------------------------------------------- +# Misc options +#--------------------------------------------------------------------- + +CmdOptions = ["all", "configure", "cleanup", "install", "uninstall"] +DefaultOptions = ["yes", "no"] +BooleanOptions = ["true", "false"] +ProviderOptions = ["DB2 Universal","DB2 iSeries (Toolbox)","DB2 iSeries (Native)","Derby","Oracle","Embedded MS SQL Server","Informix"] +DeployOptions = ["DB2UDB_V82","DB2UDBOS390_V8","DB2UDBISERIES_V54","DERBY_V10","MSSQLSERVER_2005","ORACLE_V10G","INFORMIX_V100"] + + +#--------------------------------------------------------------------- +# Application specific config information +# +# NOTE: This should NOT be modified!!! +#--------------------------------------------------------------------- + +DefaultTradeAppName = "DayTrader" +DefaultEarFile = "daytrader-ear-2.1.3.ear" + +# Deployment options +DefaultRunEJBDeploy = "false" +DefaultRunWSDeploy = "false" +DefaultBindings = "true" +DefaultUseMetadata = "true" + +# JDBC Driver and DataSource Config Parameters +# Datasource properties +DefaultDatasourceName = "TradeDataSource" +DefaultDatasourceAuthAliasName = "TradeDataSourceAuthData" +DefaultNoTxDatasourceName = "NoTxTradeDataSource" + +DefaultStmtCacheSize = 60 +DefaultXA = "true" + +# JMS (Messaging) Config Parameters +# Global Security properties for JMS +DefaultAdminAuthAliasName = "TradeAdminAuthData" + +#reliability = "ASSURED_PERSISTENT" +reliability = "EXPRESS_NONPERSISTENT" + +#deliveryMode = "Persistent" +deliveryMode = "NonPersistent" + +#durability = "Durable" +durability = "NonDurable" + +# Queue/Topic Names +brokerSIBDest = "TradeBrokerJSD" +topicSpace = "Trade.Topic.Space" +brokerJMSQCF = "TradeBrokerQCF" +streamerJMSTCF = "TradeStreamerTCF" +brokerQueue = "TradeBrokerQueue" +streamerTopic = "TradeStreamerTopic" +brokerMDB = "TradeBrokerMDB" +streamerMDB = "TradeStreamerMDB" + + +#--------------------------------------------------------------------- +# Common JDBC Driver Paths +#--------------------------------------------------------------------- +# Note: wsadmin parses the command line based on ";" regardless of platform type +#DB2WinJccPath = "c:/sqllib/java/db2jcc.jar;c:/sqllib/java/db2jcc_license_cu.jar;" +#DB2zSeriesNativePath = "/usr/lpp/db2/db2810/jcc/lib" +#DB2CliPath = "c:/sqllib/java/db2java.zip" +#OraclePath = "c:/oracle/product/10.1.0/db_1/jdbc/lib/ojdbc14.jar" +#DerbyPath = "$\{WAS_INSTALL_ROOT\}/derby/lib/derby.jar" +#DB2iSeriesNativePath = "/QIBM/ProdData/Java400/ext/db2_classes.jar" +#DB2iSeriesToolboxPath = "/QIBM/ProdData/HTTP/Public/jt400/lib/jt400.jar" + +validActions = ["all", "configure", "cleanup", "install", "uninstall"] +validSecurity = ["enabled", "disabled"] +validPrompt = ["true", "false"] + + + +#--------------------------------------------------------------------- +# Parse command line options +#--------------------------------------------------------------------- +try: + opts, args = getopt.getopt(sys.argv[0:], "a:s:u:e:", ["action=", "security=", "userid=", + "password=", "earfile", "prompt=", "help"]) + #opts, args = getopt.getopt(sys.argv[1:], "a:", ["action="]) +except getopt.GetoptError, err: + print str(err) + # usage() + sys.exit() +#endTry + +action = "all" +#SecurityEnabled = "false" +#DefaultAdminUser = "AdminUserID" +#DefaultAdminPasswd = "password" +#DefaultPort = "5000" +#SilentInstall = "false" +prompt = "true" +operation = "all" +useridProvided = "false" +passwordProvided = "false" + +for opt, arg in opts: + if opt == "--help": + printUsageAndExit() + elif opt in ("-a", "--action"): + print "action - " + arg + if arg in validActions: + operation = arg + else: + print "invalid action: '" + arg + "'" + printUsageAndExit() + elif opt in ("-e", "--earfile"): + DefaultEarFile = arg + elif opt in ("-s", "--security"): + print "security - " + arg + if arg in validSecurity: + if arg == "enabled": + SecurityEnabled = "true" + else: + SecurityEnabled = "false" + else: + print "invalid security value: '" + arg + "'" + printUsageAndExit() + elif opt in ("-u", "--userid"): + print "userid - " + arg + useridProvided = "true" + DefaultAdminUser = arg + elif opt in ("-p", "--password"): + print "password - " + arg + passwordProvided = "true" + DefaultAdminPasswd = arg + elif opt == "--prompt": + print "prompt - " + arg + if arg in validPrompt: + prompt = arg + else: + print "invalid prompt value: '" + arg + "'" + printUsageAndExit() + else: + print "invalid option: '" + opt + "'" + sys.exit() + #endIfElse +#endFor + +if SecurityEnabled == "true": + if useridProvided == "false": + print "" + print "Error: --userid must be specified when security is enabled" + printUsageAndExit() + #endIf + if passwordProvided == "false": + print "" + print "Error: --password must be specified when security is enabled" + printUsageAndExit() + #endIf +#endIf + +if prompt == "true": + operation = getValidInput("Action: (all | configure | cleanup | install | uninstall) ["+operation+"]:", operation, validActions) +#endIf + +if (prompt == "true" and (operation == "all" or operation == "install")): + DefaultEarFile = getInput("Please enter the ear file location [" + DefaultEarFile + "]:", DefaultEarFile) +#endIf + +print "" +print "------------------------------------------------" +print " Daytrader Install/Configuration Script" +print "" +print " Action: " + operation +print "------------------------------------------------" + +#--------------------------------------------------------------------- +# Daytrader configuration procedures +#--------------------------------------------------------------------- + +scope = "" + +if (SilentInstall == "false" and ( operation == "configure" or operation == "all") ): + if prompt == "true": + SecurityEnabled = getValidInput("Global security is (or will be) enabled (true|false) ["+SecurityEnabled+"]:", SecurityEnabled, BooleanOptions ) + + # Obtain node name and id for scope + print "------------------------------------------------" + print " Collecting Single Server or Managed Server Info" + print "" + + node = getNodeId("") + TargetNodeName = getName(node ) + scope = node + + server = getServerId("") + TargetServerName = getName(server ) + + print " Node: " + TargetNodeName + print " Server: " + TargetServerName + print "------------------------------------------------" + + if (SecurityEnabled == "true" and prompt == "true"): + print "-------------------------------------------------" + print " Collecting Security Information for JMS" + print " " + print " Note: The supplied authentication data must" + print " correspond to a valid administrative username" + print " and password." + print "-------------------------------------------------" + + DefaultAdminUser = getInput("Please enter a valid administrative username ["+DefaultAdminUser+"]:", DefaultAdminUser ) + DefaultAdminPasswd = getInput("Please enter a valid administrative password ["+DefaultAdminPasswd+"]:", DefaultAdminPasswd ) + #endIf +#endIf + +if (operation == "all" or operation == "configure"): + # Create the JDBC/Datasource config objects + + if (scope == ""): + #scope = AdminConfig.getid("/Node:"+TargetNodeName+"/Server:"+TargetServerName+"/") + # By default, we normally use Node scope + scope = AdminConfig.getid("/Node:"+TargetNodeName+"/") + #endIf + + print "" + print "------------------------------------------------" + print " Configuring JDBC/Datasource Resources" + print " Scope: "+scope + print "------------------------------------------------" + + createJAASAuthData(DefaultDatasourceAuthAliasName, DefaultUser, DefaultPasswd ) + + provider = createJDBCProvider(DefaultProviderType, DefaultXA, scope, DefaultPathName, DefaultNativePathName ) + + datasource = createDatasource(DefaultDatasourceName, "jdbc/"+DefaultDatasourceName, DefaultStmtCacheSize, DefaultDatasourceAuthAliasName, provider) + noTxDatasource = createDatasource(DefaultNoTxDatasourceName, "jdbc/"+DefaultNoTxDatasourceName, 10, DefaultDatasourceAuthAliasName, provider) + addDatasourceProperty(noTxDatasource, "nonTransactionalDataSource", "true") + + #if (DefaultProviderType.find("DB2") >= 0 or DefaultProviderType == "Derby"): + updateDB2orDerbyDatasource(datasource, DefaultDatabaseName, DefaultHostname, DefaultPort, DefaultDB2DriverType) + updateDB2orDerbyDatasource(noTxDatasource, DefaultDatabaseName, DefaultHostname, DefaultPort, DefaultDB2DriverType) + + print "" + print "------------------------------------------------" + print " JDBC Resource Configuration Completed!!!" + print "------------------------------------------------" + + # Create the JMS config objects + + print "" + print "------------------------------------------------" + print " Configuring JMS Resources" + print " Scope: "+scope + print "------------------------------------------------" + + createJAASAuthData(DefaultAdminAuthAliasName, DefaultAdminUser, DefaultAdminPasswd ) + + sibus = createSIBus(getName(scope ), DefaultAdminAuthAliasName ) + fileStore = [DefaultMEFileStore, DefaultMEFileStoreLocation] + target = [TargetNodeName, TargetServerName] + dsParms = ["true", "dummy"] + addSIBusMember(sibus, fileStore, target, dsParms) + + if (SecurityEnabled == "true"): + createSIBusSecurityRole(sibus, DefaultAdminUser ) + #endIf + + # Create the Trade Broker Queue and Trade TopicSpace Destinations + + createSIBDestination(sibus, brokerSIBDest, "Queue", reliability, target ) + createSIBDestination(sibus, topicSpace, "TopicSpace", reliability, [] ) + + createJMSConnectionFactory(sibus, brokerJMSQCF, "Queue", "jms/"+brokerJMSQCF, DefaultAdminAuthAliasName, scope ) + createJMSConnectionFactory(sibus, streamerJMSTCF, "Topic", "jms/"+streamerJMSTCF, DefaultAdminAuthAliasName, scope ) + + createJMSQueue(brokerQueue, "jms/"+brokerQueue, brokerSIBDest, deliveryMode, scope ) + createJMSTopic(streamerTopic, "jms/"+streamerTopic, topicSpace, deliveryMode, scope ) + + createMDBActivationSpec(brokerMDB, "eis/"+brokerMDB, sibus, "jms/"+brokerQueue, "javax.jms.Queue", DefaultAdminAuthAliasName, scope, durability ) + createMDBActivationSpec(streamerMDB, "eis/"+streamerMDB, sibus, "jms/"+streamerTopic, "javax.jms.Topic", DefaultAdminAuthAliasName, scope, durability ) + + print "" + print "------------------------------------------------" + print " JMS Resource Configuration Completed!!!" + print "------------------------------------------------" + + print "" + print "Saving..." + AdminConfig.save( ) +#endIf + + +#--------------------------------------------------------------------- +# Daytrader install procedures +#--------------------------------------------------------------------- + +if (operation == "all" or operation == "install"): + print " " + print "------------------------------------------------" + print " Installing DayTrader" + print "------------------------------------------------" + + if (SilentInstall == "false" and operation == "install"): + TargetNodeName = getName(getNodeId("")) + TargetServerName = getName(getServerId("")) + + #print "Deploy options include the following:" + #for deploy in DeployOptions: + # print " " + deploy + ##endFor + #DefaultEJBDeployType = getValidInput("Select the EJB deployment target ["+DefaultEJBDeployType+"]:", DefaultEJBDeployType, DeployOptions) + #endIf + + target = [TargetNodeName, TargetServerName] + + installApp(DefaultTradeAppName, DefaultEarFile, DefaultRunEJBDeploy, DefaultRunWSDeploy, DefaultBindings, DefaultUseMetadata, DefaultEJBDeployType, target ) + + print "" + print "------------------------------------------------" + print " DayTrader Installation Completed!!!" + print "------------------------------------------------" + + print "" + print "Saving..." + AdminConfig.save( ) +#endIf + +if (operation == "uninstall"): + print " " + print "------------------------------------------------" + print " Uninstalling DayTrader" + print "------------------------------------------------" + + uninstallApp(DefaultTradeAppName) + + print "" + print "------------------------------------------------" + print " DayTrader Uninstall Completed!!!" + print "------------------------------------------------" + + print "" + print "Saving..." + AdminConfig.save( ) +#endIf + +if (operation == "cleanup"): + print " " + print "------------------------------------------------" + print " Uninstalling JMS Resources" + print "------------------------------------------------" + + deleteMDBActicationSpec(brokerMDB) + deleteMDBActicationSpec(streamerMDB) + + deleteJMSQueue(brokerQueue) + deleteJMSTopic(streamerTopic) + + deleteJMSConnectionFactory(brokerJMSQCF) + deleteJMSConnectionFactory(streamerJMSTCF) + + deleteSIBDestination(brokerSIBDest) + deleteSIBDestination(topicSpace) + + deleteSIBus(getName(getNodeId(""))) + + removeJAASAuthData(DefaultAdminAuthAliasName) + + print " " + print "------------------------------------------------" + print " Uninstalling JDBC Resources" + print "------------------------------------------------" + + removeDatasource(DefaultDatasourceName) + removeDatasource(DefaultNoTxDatasourceName) + removeJAASAuthData(DefaultDatasourceAuthAliasName) + + print "" + print "------------------------------------------------" + print " DayTrader Resource Cleanup Completed!!!" + print "------------------------------------------------" + + print "" + print "Saving..." + AdminConfig.save( ) +#endIf + +print "" +print "Saving config..." +AdminConfig.save( ) + + Propchange: websites/staging/openjpa/trunk/content/artifacts/daytrader_singleServer.py ------------------------------------------------------------------------------ svn:executable = * From commits-return-10180-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:14:37 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1D152E0B8 for ; Sun, 9 Dec 2012 13:14:37 +0000 (UTC) Received: (qmail 83303 invoked by uid 500); 9 Dec 2012 13:14:36 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 83271 invoked by uid 500); 9 Dec 2012 13:14:36 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 83263 invoked by uid 99); 9 Dec 2012 13:14:36 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:36 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4B8F82388A66 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [4/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.4B8F82388A66@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch (added) +++ websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch Sun Dec 9 13:13:35 2012 @@ -0,0 +1,449 @@ +Index: pom.xml +=================================================================== +--- pom.xml (revision 952663) ++++ pom.xml (working copy) +@@ -189,6 +189,18 @@ + + + ++ ++ ++ org.apache.geronimo.specs ++ geronimo-jpa_2.0_spec ++ 1.0 ++ ++ ++ ++ org.apache.openjpa ++ openjpa ++ 2.0.0 ++ + + + org.apache.activemq +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (revision 952663) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (working copy) +@@ -18,10 +18,15 @@ + package org.apache.geronimo.samples.daytrader.ejb3; + + import org.apache.geronimo.samples.daytrader.AccountDataBean; ++import org.apache.geronimo.samples.daytrader.AccountDataBean_; + import org.apache.geronimo.samples.daytrader.AccountProfileDataBean; ++import org.apache.geronimo.samples.daytrader.AccountProfileDataBean_; + import org.apache.geronimo.samples.daytrader.HoldingDataBean; ++import org.apache.geronimo.samples.daytrader.HoldingDataBean_; + import org.apache.geronimo.samples.daytrader.OrderDataBean; ++import org.apache.geronimo.samples.daytrader.OrderDataBean_; + import org.apache.geronimo.samples.daytrader.QuoteDataBean; ++import org.apache.geronimo.samples.daytrader.QuoteDataBean_; + import org.apache.geronimo.samples.daytrader.TradeConfig; + import org.apache.geronimo.samples.daytrader.TradeAction; + import org.apache.geronimo.samples.daytrader.RunStatsDataBean; +@@ -43,6 +48,13 @@ + import javax.persistence.EntityManager; + import javax.persistence.PersistenceContext; + import javax.persistence.Query; ++import javax.persistence.TypedQuery; ++import javax.persistence.criteria.CriteriaBuilder; ++import javax.persistence.criteria.CriteriaQuery; ++import javax.persistence.criteria.ParameterExpression; ++import javax.persistence.criteria.Path; ++import javax.persistence.criteria.Predicate; ++import javax.persistence.criteria.Root; + import javax.transaction.HeuristicMixedException; + import javax.transaction.HeuristicRollbackException; + import javax.transaction.NotSupportedException; +@@ -51,6 +63,8 @@ + import org.apache.geronimo.samples.daytrader.util.FinancialUtils; + import org.apache.geronimo.samples.daytrader.util.Log; + import org.apache.geronimo.samples.daytrader.util.MDBStats; ++import org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery; ++import org.apache.openjpa.persistence.query.QueryBuilder; + + @Stateless + @TransactionAttribute(TransactionAttributeType.REQUIRED) +@@ -89,8 +103,14 @@ + // ordered by their change in value + Collection quotes; + +- Query query = entityManager.createNamedQuery("quoteejb.quotesByChange"); +- quotes = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q WHERE q.symbol LIKE 's:1__' ORDER BY q.change1 DESC ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qdb = c.from(QuoteDataBean.class); ++ c.where(cb.like(qdb.get(QuoteDataBean_.symbol), "s:1__")); ++ c.orderBy(cb.desc(qdb.get(QuoteDataBean_.change1))); ++ quotes = entityManager.createQuery(c).getResultList(); + + QuoteDataBean[] quoteArray = (QuoteDataBean[]) quotes.toArray(new QuoteDataBean[quotes.size()]); + ArrayList topGainers = new ArrayList(5); +@@ -356,12 +376,25 @@ + + // Get the primary keys for all the closed Orders for this + // account. +- Query query = entityManager.createNamedQuery("orderejb.closedOrders"); +- query.setParameter("userID", userID); +- Collection results = query.getResultList(); +- Iterator itr = results.iterator(); +- +- // Spin through the orders to populate the lazy quote fields ++ ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT o FROM orderejb o WHERE o.orderStatus = 'closed' AND o.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(OrderDataBean.class); ++ Root odb = c.from(OrderDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path acct = odb.get(OrderDataBean_.account); ++ Path profile = acct.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ Predicate closedCondition = cb.equal(odb.get(OrderDataBean_.orderStatus), "closed"); ++ Predicate uidCondition = cb.equal(uid, uidParm); ++ Predicate condition = cb.and(closedCondition, uidCondition); ++ c.where(condition); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection results = q.setParameter(uidParm, userID).getResultList(); ++ ++ Iterator itr = results.iterator(); ++ // Spin through the orders to populate the lazy quote fields + while (itr.hasNext()){ + OrderDataBean thisOrder = (OrderDataBean)itr.next(); + thisOrder.getQuote(); +@@ -427,8 +460,13 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getAllQuotes"); + +- Query query = entityManager.createNamedQuery("quoteejb.allQuotes"); +- return query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qbd = c.from(QuoteDataBean.class); ++ TypedQuery q = entityManager.createQuery(c); ++ return q.getResultList(); + } + + public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) { +@@ -463,6 +501,7 @@ + + quote.setPrice(newPrice); + quote.setVolume(quote.getVolume() + sharesTraded); ++ quote.setChange(newPrice.subtract(quote.getOpen()).doubleValue()); + entityManager.merge(quote); + + // TODO find out if requires new here is really intended -- it is backwards, +@@ -477,9 +516,22 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getHoldings", userID); + +- Query query = entityManager.createNamedQuery("holdingejb.holdingsByUserID"); +- query.setParameter("userID", userID); +- Collection holdings = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT h FROM holdingejb h where h.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(HoldingDataBean.class); ++ Root hdb = c.from(HoldingDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path account = hdb.get(HoldingDataBean_.account); ++ Path profile = account.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ // The following 'select' method is not needed, since it is the default. It is just shown for ++ // illustrative purposes. ++ c.select(hdb); ++ c.where(cb.equal(uid, uidParm)); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection holdings = q.setParameter(uidParm, userID).getResultList(); ++ + /* + * Inflate the lazy data memebers + */ +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (revision 952663) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (working copy) +@@ -18,8 +18,6 @@ + + + import java.math.BigDecimal; +-import java.rmi.Remote; +-import java.rmi.RemoteException; + import java.util.Collection; + + /** +@@ -33,7 +31,7 @@ + * @see TradeDirect + * + */ +-public interface TradeServices extends Remote { ++public interface TradeServices { + + /** + * Compute and return a snapshot of the current market conditions +@@ -44,7 +42,7 @@ + * + * @return A snapshot of the current market summary + */ +- public MarketSummaryDataBean getMarketSummary() throws Exception, RemoteException; ++ public MarketSummaryDataBean getMarketSummary() throws Exception; + + + /** +@@ -61,7 +59,7 @@ + */ + + +- public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception; + + /** + * Sell a stock holding and removed the holding for the given user. +@@ -72,7 +70,7 @@ + * @param holdingID the users holding to be sold + * @return OrderDataBean providing the status of the newly created sell order + */ +- public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception; + + + /** +@@ -87,7 +85,7 @@ + * @param orderID the Order being queued for processing + * @return OrderDataBean providing the status of the completed order + */ +- public void queueOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void queueOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Complete the Order identefied by orderID +@@ -102,7 +100,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Cancel the Order identefied by orderID +@@ -113,7 +111,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception; + + + /** +@@ -123,7 +121,7 @@ + * @param orderID the order which has completed + * + */ +- public void orderCompleted(String userID, Integer orderID) throws Exception, RemoteException; ++ public void orderCompleted(String userID, Integer orderID) throws Exception; + + + /** +@@ -132,7 +130,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getOrders(String userID) throws Exception, RemoteException; ++ public Collection getOrders(String userID) throws Exception; + + /** + * Get the collection of completed orders for a given account that need to be alerted to the user +@@ -140,7 +138,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getClosedOrders(String userID) throws Exception, RemoteException; ++ public Collection getClosedOrders(String userID) throws Exception; + + + /** +@@ -151,7 +149,7 @@ + * @param details a short description of the stock or company + * @return a new QuoteDataBean or null if Quote could not be created + */ +- public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception, RemoteException; ++ public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception; + + /** + * Return a {@link QuoteDataBean} describing a current quote for the given stock symbol +@@ -159,14 +157,14 @@ + * @param symbol the stock symbol to retrieve the current Quote + * @return the QuoteDataBean + */ +- public QuoteDataBean getQuote(String symbol) throws Exception, RemoteException; ++ public QuoteDataBean getQuote(String symbol) throws Exception; + + /** + * Return a {@link java.util.Collection} of {@link QuoteDataBean} + * describing all current quotes + * @return A collection of QuoteDataBean + */ +- public Collection getAllQuotes() throws Exception, RemoteException; ++ public Collection getAllQuotes() throws Exception; + + /** + * Update the stock quote price and volume for the specified stock symbol +@@ -175,7 +173,7 @@ + * @param price the updated quote price + * @return the QuoteDataBean describing the stock + */ +- public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception, RemoteException; ++ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception; + + + /** +@@ -185,7 +183,7 @@ + * @param userID the customer requesting the portfolio + * @return Collection of the users portfolio of stock holdings + */ +- public Collection getHoldings(String userID) throws Exception, RemoteException; ++ public Collection getHoldings(String userID) throws Exception; + + /** + * Return a specific user stock holding identifed by the holdingID +@@ -193,7 +191,7 @@ + * @param holdingID the holdingID to return + * @return a HoldingDataBean describing the holding + */ +- public HoldingDataBean getHolding(Integer holdingID) throws Exception, RemoteException; ++ public HoldingDataBean getHolding(Integer holdingID) throws Exception; + + /** + * Return an AccountDataBean object for userID describing the account +@@ -202,7 +200,7 @@ + * @return User account data in AccountDataBean + */ + public AccountDataBean getAccountData(String userID) +- throws Exception, RemoteException; ++ throws Exception; + + /** + * Return an AccountProfileDataBean for userID providing the users profile +@@ -210,7 +208,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean getAccountProfileData(String userID) throws Exception, RemoteException; ++ public AccountProfileDataBean getAccountProfileData(String userID) throws Exception; + + /** + * Update userID's account profile information using the provided AccountProfileDataBean object +@@ -218,7 +216,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception, RemoteException; ++ public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception; + + + /** +@@ -228,7 +226,7 @@ + * @param password the password entered by the customer for authentication + * @return User account data in AccountDataBean + */ +- public AccountDataBean login(String userID, String password) throws Exception, RemoteException; ++ public AccountDataBean login(String userID, String password) throws Exception; + + /** + * Logout the given user +@@ -237,7 +235,7 @@ + * @return the login status + */ + +- public void logout(String userID) throws Exception, RemoteException; ++ public void logout(String userID) throws Exception; + + /** + * Register a new Trade customer. +@@ -259,7 +257,7 @@ + String address, + String email, + String creditcard, +- BigDecimal openBalance) throws Exception, RemoteException; ++ BigDecimal openBalance) throws Exception; + + + /** +@@ -271,6 +269,6 @@ + * + * return statistics for this benchmark run + */ +- public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception, RemoteException; ++ public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception; + } + +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (revision 952663) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (working copy) +@@ -38,7 +38,7 @@ + public static final int EJB3 = 0; + public static final int DIRECT = 1; + public static final int SESSION3 = 2; +- public static int runTimeMode = DIRECT; ++ public static int runTimeMode = EJB3; + + /* Trade JPA Layer parameters */ + public static String[] jpaLayerNames = {"OpenJPA", "Hibernate"}; +Index: modules/ejb/src/main/resources/META-INF/ejb-jar.xml +=================================================================== +--- modules/ejb/src/main/resources/META-INF/ejb-jar.xml (revision 952663) ++++ modules/ejb/src/main/resources/META-INF/ejb-jar.xml (working copy) +@@ -25,4 +25,13 @@ + entity, session and message driven beans using annotations. The inline annotations + can be overriden by modifing this file. + --> ++ ++ ++ TradeBrokerQueue ++ ++ ++ TradeStreamerTopic ++ ++ ++ + +Index: modules/ejb/pom.xml +=================================================================== +--- modules/ejb/pom.xml (revision 952663) ++++ modules/ejb/pom.xml (working copy) +@@ -54,7 +54,8 @@ + + + org.apache.geronimo.specs +- geronimo-jpa_3.0_spec ++ geronimo-jpa_2.0_spec ++ 1.1 + provided + + +@@ -80,6 +81,7 @@ + + org.apache.openjpa + openjpa ++ 2.0.0 + provided + + +Index: modules/web/src/main/webapp/WEB-INF/web.xml +=================================================================== +--- modules/web/src/main/webapp/WEB-INF/web.xml (revision 952663) ++++ modules/web/src/main/webapp/WEB-INF/web.xml (working copy) +@@ -82,7 +82,7 @@ + + Sets the default RuntimeMode. Legal values include EJB and Direct + runTimeMode +- DIRECT ++ Full EJB3 + + + Sets the default Order Processing Mode. Legal values include Synchronous, Asynchronous_1-Phase and Asynchronous_2-Phase Propchange: websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch (added) +++ websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch Sun Dec 9 13:13:35 2012 @@ -0,0 +1,691 @@ +### Eclipse Workspace Patch 1.0 +#P daytrader-ejb +Index: src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0) +@@ -0,0 +1,26 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.OrderDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:26:18 CDT 2010") ++public class OrderDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute completionDate; ++ public static volatile SingularAttribute openDate; ++ public static volatile SingularAttribute orderFee; ++ public static volatile SingularAttribute orderID; ++ public static volatile SingularAttribute orderStatus; ++ public static volatile SingularAttribute orderType; ++ public static volatile SingularAttribute price; ++ public static volatile SingularAttribute quantity; ++ public static volatile SingularAttribute quote; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\OrderDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0) +@@ -0,0 +1,21 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.AccountProfileDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 10:10:27 CDT 2010") ++public class AccountProfileDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute address; ++ public static volatile SingularAttribute creditCard; ++ public static volatile SingularAttribute email; ++ public static volatile SingularAttribute fullName; ++ public static volatile SingularAttribute passwd; ++ public static volatile SingularAttribute userID; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\AccountProfileDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (revision 935418) ++++ src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (working copy) +@@ -18,8 +18,6 @@ + + + import java.math.BigDecimal; +-import java.rmi.Remote; +-import java.rmi.RemoteException; + import java.util.Collection; + + /** +@@ -33,7 +31,7 @@ + * @see TradeDirect + * + */ +-public interface TradeServices extends Remote { ++public interface TradeServices { + + /** + * Compute and return a snapshot of the current market conditions +@@ -44,7 +42,7 @@ + * + * @return A snapshot of the current market summary + */ +- public MarketSummaryDataBean getMarketSummary() throws Exception, RemoteException; ++ public MarketSummaryDataBean getMarketSummary() throws Exception; + + + /** +@@ -61,7 +59,7 @@ + */ + + +- public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception; + + /** + * Sell a stock holding and removed the holding for the given user. +@@ -72,7 +70,7 @@ + * @param holdingID the users holding to be sold + * @return OrderDataBean providing the status of the newly created sell order + */ +- public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception; + + + /** +@@ -87,7 +85,7 @@ + * @param orderID the Order being queued for processing + * @return OrderDataBean providing the status of the completed order + */ +- public void queueOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void queueOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Complete the Order identefied by orderID +@@ -102,7 +100,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Cancel the Order identefied by orderID +@@ -113,7 +111,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception; + + + /** +@@ -123,7 +121,7 @@ + * @param orderID the order which has completed + * + */ +- public void orderCompleted(String userID, Integer orderID) throws Exception, RemoteException; ++ public void orderCompleted(String userID, Integer orderID) throws Exception; + + + /** +@@ -132,7 +130,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getOrders(String userID) throws Exception, RemoteException; ++ public Collection getOrders(String userID) throws Exception; + + /** + * Get the collection of completed orders for a given account that need to be alerted to the user +@@ -140,7 +138,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getClosedOrders(String userID) throws Exception, RemoteException; ++ public Collection getClosedOrders(String userID) throws Exception; + + + /** +@@ -151,7 +149,7 @@ + * @param details a short description of the stock or company + * @return a new QuoteDataBean or null if Quote could not be created + */ +- public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception, RemoteException; ++ public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception; + + /** + * Return a {@link QuoteDataBean} describing a current quote for the given stock symbol +@@ -159,14 +157,14 @@ + * @param symbol the stock symbol to retrieve the current Quote + * @return the QuoteDataBean + */ +- public QuoteDataBean getQuote(String symbol) throws Exception, RemoteException; ++ public QuoteDataBean getQuote(String symbol) throws Exception; + + /** + * Return a {@link java.util.Collection} of {@link QuoteDataBean} + * describing all current quotes + * @return A collection of QuoteDataBean + */ +- public Collection getAllQuotes() throws Exception, RemoteException; ++ public Collection getAllQuotes() throws Exception; + + /** + * Update the stock quote price and volume for the specified stock symbol +@@ -175,7 +173,7 @@ + * @param price the updated quote price + * @return the QuoteDataBean describing the stock + */ +- public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception, RemoteException; ++ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception; + + + /** +@@ -185,7 +183,7 @@ + * @param userID the customer requesting the portfolio + * @return Collection of the users portfolio of stock holdings + */ +- public Collection getHoldings(String userID) throws Exception, RemoteException; ++ public Collection getHoldings(String userID) throws Exception; + + /** + * Return a specific user stock holding identifed by the holdingID +@@ -193,7 +191,7 @@ + * @param holdingID the holdingID to return + * @return a HoldingDataBean describing the holding + */ +- public HoldingDataBean getHolding(Integer holdingID) throws Exception, RemoteException; ++ public HoldingDataBean getHolding(Integer holdingID) throws Exception; + + /** + * Return an AccountDataBean object for userID describing the account +@@ -202,7 +200,7 @@ + * @return User account data in AccountDataBean + */ + public AccountDataBean getAccountData(String userID) +- throws Exception, RemoteException; ++ throws Exception; + + /** + * Return an AccountProfileDataBean for userID providing the users profile +@@ -210,7 +208,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean getAccountProfileData(String userID) throws Exception, RemoteException; ++ public AccountProfileDataBean getAccountProfileData(String userID) throws Exception; + + /** + * Update userID's account profile information using the provided AccountProfileDataBean object +@@ -218,7 +216,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception, RemoteException; ++ public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception; + + + /** +@@ -228,7 +226,7 @@ + * @param password the password entered by the customer for authentication + * @return User account data in AccountDataBean + */ +- public AccountDataBean login(String userID, String password) throws Exception, RemoteException; ++ public AccountDataBean login(String userID, String password) throws Exception; + + /** + * Logout the given user +@@ -237,7 +235,7 @@ + * @return the login status + */ + +- public void logout(String userID) throws Exception, RemoteException; ++ public void logout(String userID) throws Exception; + + /** + * Register a new Trade customer. +@@ -259,7 +257,7 @@ + String address, + String email, + String creditcard, +- BigDecimal openBalance) throws Exception, RemoteException; ++ BigDecimal openBalance) throws Exception; + + + /** +@@ -271,6 +269,6 @@ + * + * return statistics for this benchmark run + */ +- public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception, RemoteException; ++ public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception; + } + +Index: src/main/resources/META-INF/ibm-ejb-jar-bnd.xml +=================================================================== +--- src/main/resources/META-INF/ibm-ejb-jar-bnd.xml (revision 0) ++++ src/main/resources/META-INF/ibm-ejb-jar-bnd.xml (revision 0) +@@ -0,0 +1,28 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file + +Property changes on: src\main\resources\META-INF\ibm-ejb-jar-bnd.xml +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0) +@@ -0,0 +1,27 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.CollectionAttribute; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.AccountDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:48:10 CDT 2010") ++public class AccountDataBean_ { ++ public static volatile SingularAttribute accountID; ++ public static volatile SingularAttribute balance; ++ public static volatile SingularAttribute creationDate; ++ public static volatile CollectionAttribute holdings; ++ public static volatile SingularAttribute lastLogin; ++ public static volatile SingularAttribute loginCount; ++ public static volatile SingularAttribute logoutCount; ++ public static volatile SingularAttribute openBalance; ++ public static volatile CollectionAttribute orders; ++ public static volatile SingularAttribute profile; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\AccountDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/resources/META-INF/ejb-jar.xml +=================================================================== +--- src/main/resources/META-INF/ejb-jar.xml (revision 935418) ++++ src/main/resources/META-INF/ejb-jar.xml (working copy) +@@ -25,4 +25,13 @@ + entity, session and message driven beans using annotations. The inline annotations + can be overriden by modifing this file. + --> ++ ++ ++ TradeBrokerQueue ++ ++ ++ TradeStreamerTopic ++ ++ ++ + +Index: src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0) +@@ -0,0 +1,22 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.HoldingDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:50:36 CDT 2010") ++public class HoldingDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute holdingID; ++ public static volatile SingularAttribute purchaseDate; ++ public static volatile SingularAttribute purchasePrice; ++ public static volatile SingularAttribute quantity; ++ public static volatile SingularAttribute quote; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\HoldingDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (revision 935418) ++++ src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (working copy) +@@ -18,10 +18,15 @@ + package org.apache.geronimo.samples.daytrader.ejb3; + + import org.apache.geronimo.samples.daytrader.AccountDataBean; ++import org.apache.geronimo.samples.daytrader.AccountDataBean_; + import org.apache.geronimo.samples.daytrader.AccountProfileDataBean; ++import org.apache.geronimo.samples.daytrader.AccountProfileDataBean_; + import org.apache.geronimo.samples.daytrader.HoldingDataBean; ++import org.apache.geronimo.samples.daytrader.HoldingDataBean_; + import org.apache.geronimo.samples.daytrader.OrderDataBean; ++import org.apache.geronimo.samples.daytrader.OrderDataBean_; + import org.apache.geronimo.samples.daytrader.QuoteDataBean; ++import org.apache.geronimo.samples.daytrader.QuoteDataBean_; + import org.apache.geronimo.samples.daytrader.TradeConfig; + import org.apache.geronimo.samples.daytrader.TradeAction; + import org.apache.geronimo.samples.daytrader.RunStatsDataBean; +@@ -43,6 +48,13 @@ + import javax.persistence.EntityManager; + import javax.persistence.PersistenceContext; + import javax.persistence.Query; ++import javax.persistence.TypedQuery; ++import javax.persistence.criteria.CriteriaBuilder; ++import javax.persistence.criteria.CriteriaQuery; ++import javax.persistence.criteria.ParameterExpression; ++import javax.persistence.criteria.Path; ++import javax.persistence.criteria.Predicate; ++import javax.persistence.criteria.Root; + import javax.transaction.HeuristicMixedException; + import javax.transaction.HeuristicRollbackException; + import javax.transaction.NotSupportedException; +@@ -51,6 +63,8 @@ + import org.apache.geronimo.samples.daytrader.util.FinancialUtils; + import org.apache.geronimo.samples.daytrader.util.Log; + import org.apache.geronimo.samples.daytrader.util.MDBStats; ++import org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery; ++import org.apache.openjpa.persistence.query.QueryBuilder; + + @Stateless + @TransactionAttribute(TransactionAttributeType.REQUIRED) +@@ -89,8 +103,14 @@ + // ordered by their change in value + Collection quotes; + +- Query query = entityManager.createNamedQuery("quoteejb.quotesByChange"); +- quotes = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q WHERE q.symbol LIKE 's:1__' ORDER BY q.change1 DESC ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qdb = c.from(QuoteDataBean.class); ++ c.where(cb.like(qdb.get(QuoteDataBean_.symbol), "s:1__")); ++ c.orderBy(cb.desc(qdb.get(QuoteDataBean_.change1))); ++ quotes = entityManager.createQuery(c).getResultList(); + + QuoteDataBean[] quoteArray = (QuoteDataBean[]) quotes.toArray(new QuoteDataBean[quotes.size()]); + ArrayList topGainers = new ArrayList(5); +@@ -356,12 +376,25 @@ + + // Get the primary keys for all the closed Orders for this + // account. +- Query query = entityManager.createNamedQuery("orderejb.closedOrders"); +- query.setParameter("userID", userID); +- Collection results = query.getResultList(); +- Iterator itr = results.iterator(); +- +- // Spin through the orders to populate the lazy quote fields ++ ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT o FROM orderejb o WHERE o.orderStatus = 'closed' AND o.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(OrderDataBean.class); ++ Root odb = c.from(OrderDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path acct = odb.get(OrderDataBean_.account); ++ Path profile = acct.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ Predicate closedCondition = cb.equal(odb.get(OrderDataBean_.orderStatus), "closed"); ++ Predicate uidCondition = cb.equal(uid, uidParm); ++ Predicate condition = cb.and(closedCondition, uidCondition); ++ c.where(condition); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection results = q.setParameter(uidParm, userID).getResultList(); ++ ++ Iterator itr = results.iterator(); ++ // Spin through the orders to populate the lazy quote fields + while (itr.hasNext()){ + OrderDataBean thisOrder = (OrderDataBean)itr.next(); + thisOrder.getQuote(); +@@ -427,8 +460,13 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getAllQuotes"); + +- Query query = entityManager.createNamedQuery("quoteejb.allQuotes"); +- return query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qbd = c.from(QuoteDataBean.class); ++ TypedQuery q = entityManager.createQuery(c); ++ return q.getResultList(); + } + + public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) { +@@ -463,6 +501,7 @@ + + quote.setPrice(newPrice); + quote.setVolume(quote.getVolume() + sharesTraded); ++ quote.setChange(newPrice.subtract(quote.getOpen()).doubleValue()); + entityManager.merge(quote); + + // TODO find out if requires new here is really intended -- it is backwards, +@@ -477,9 +516,22 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getHoldings", userID); + +- Query query = entityManager.createNamedQuery("holdingejb.holdingsByUserID"); +- query.setParameter("userID", userID); +- Collection holdings = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT h FROM holdingejb h where h.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(HoldingDataBean.class); ++ Root hdb = c.from(HoldingDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path account = hdb.get(HoldingDataBean_.account); ++ Path profile = account.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ // The following 'select' method is not needed, since it is the default. It is just shown for ++ // illustrative purposes. ++ c.select(hdb); ++ c.where(cb.equal(uid, uidParm)); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection holdings = q.setParameter(uidParm, userID).getResultList(); ++ + /* + * Inflate the lazy data memebers + */ +Index: src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (revision 935418) ++++ src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (working copy) +@@ -38,7 +38,7 @@ + public static final int EJB3 = 0; + public static final int DIRECT = 1; + public static final int SESSION3 = 2; +- public static int runTimeMode = DIRECT; ++ public static int runTimeMode = EJB3; + + /* Trade JPA Layer parameters */ + public static String[] jpaLayerNames = {"OpenJPA", "Hibernate"}; +Index: pom.xml +=================================================================== +--- pom.xml (revision 935418) ++++ pom.xml (working copy) +@@ -54,7 +54,8 @@ + + + org.apache.geronimo.specs +- geronimo-jpa_3.0_spec ++ geronimo-jpa_2.0_spec ++ 1.1 + provided + + +@@ -80,6 +81,7 @@ + + org.apache.openjpa + openjpa ++ 2.0.0 + provided + + +Index: src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java +=================================================================== +--- src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0) ++++ src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0) +@@ -0,0 +1,23 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.QuoteDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:51:22 CDT 2010") ++public class QuoteDataBean_ { ++ public static volatile SingularAttribute change1; ++ public static volatile SingularAttribute companyName; ++ public static volatile SingularAttribute high; ++ public static volatile SingularAttribute low; ++ public static volatile SingularAttribute open1; ++ public static volatile SingularAttribute price; ++ public static volatile SingularAttribute symbol; ++ public static volatile SingularAttribute volume; ++} + +Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\QuoteDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +#P daytrader-web +Index: src/main/webapp/WEB-INF/web.xml +=================================================================== +--- src/main/webapp/WEB-INF/web.xml (revision 935418) ++++ src/main/webapp/WEB-INF/web.xml (working copy) +@@ -82,7 +82,7 @@ + + Sets the default RuntimeMode. Legal values include EJB and Direct + runTimeMode +- DIRECT ++ Full EJB3 + + + Sets the default Order Processing Mode. Legal values include Synchronous, Asynchronous_1-Phase and Asynchronous_2-Phase +Index: src/main/webapp/WEB-INF/ibm-web-bnd.xml +=================================================================== +--- src/main/webapp/WEB-INF/ibm-web-bnd.xml (revision 0) ++++ src/main/webapp/WEB-INF/ibm-web-bnd.xml (revision 0) +@@ -0,0 +1,16 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +Property changes on: src\main\webapp\WEB-INF\ibm-web-bnd.xml +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/main/webapp/WEB-INF/ibm-web-ext.xml +=================================================================== +--- src/main/webapp/WEB-INF/ibm-web-ext.xml (revision 0) ++++ src/main/webapp/WEB-INF/ibm-web-ext.xml (revision 0) +@@ -0,0 +1,10 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +Property changes on: src\main\webapp\WEB-INF\ibm-web-ext.xml +___________________________________________________________________ +Added: svn:eol-style + + native + Added: websites/staging/openjpa/trunk/content/artifacts/enhance.xml ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/enhance.xml (added) +++ websites/staging/openjpa/trunk/content/artifacts/enhance.xml Sun Dec 9 13:13:35 2012 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Added: websites/staging/openjpa/trunk/content/artifacts/pom.xml ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/pom.xml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/openjpa/trunk/content/automated-builds.html ============================================================================== --- websites/staging/openjpa/trunk/content/automated-builds.html (added) +++ websites/staging/openjpa/trunk/content/automated-builds.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

We're using the Jenkins build server for continuous builds for several of +the OpenJPA code streams and some of the artifacts in the Tools subproject.

+

+

Jenkins Jobs - OpenJPA

+

OpenJPA 1.2.x build and deploy + - This build runs on the Ubuntu build agents and is set up to check SVN +for updates once every hour at 45 minutes past the hour and deploy +artifacts.

+

OpenJPA 1.3.0-SNAPSHOT build and deploy + - This build runs on the Ubuntu build agents and is set up to check SVN +for updates once every hour at 30 minutes past the hour and deploy +artifacts.

+

OpenJPA 2.0.x build and deploy + - This build runs on the Ubuntu build agents and is set up to check SVN +for updates once a day at 07:45 (UTC) and deploy artifacts.

+

OpenJPA trunk build + - This build runs on the Windows build agent and is set up to check SVN +for updates twice every hour at 0 and 30 minutes past the hour.

+

OpenJPA trunk build and deploy + - This build runs on the Ubuntu build agents and is set up to check SVN +for updates once a day at 06:45 (UTC) and deploy artifacts.

+

+

Jenkins Jobs - OpenJPA Tools

+

OpenJPA Tools trunk build and deploy + - This build runs on the Ubuntu build agents and is set up to check SVN +for updates once every hour at 55 minutes past the hour and deploy +artifacts.

+

+

Email Notifications

+

Email notifications to commits@openjpa are generated by Jenkins for build +failures and when builds are back to normal.

+

+

Jenkins Info

+

If you're interested in the Jenkins services or would like to request an +account on the server, checkout the Jenkins wiki + for more information. The builds.apache.org server uses the Apache LDAP +for authentication, just like repository.apache.org and issues.apache.org.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/banner.html ============================================================================== --- websites/staging/openjpa/trunk/content/banner.html (added) +++ websites/staging/openjpa/trunk/content/banner.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+
+ + +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10181-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:14:37 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E74F3E0BA for ; Sun, 9 Dec 2012 13:14:37 +0000 (UTC) Received: (qmail 83397 invoked by uid 500); 9 Dec 2012 13:14:37 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 83363 invoked by uid 500); 9 Dec 2012 13:14:37 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 83355 invoked by uid 99); 9 Dec 2012 13:14:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3B4682388906 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [2/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.3B4682388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/apidiscussionfollowup.html ============================================================================== --- websites/staging/openjpa/trunk/content/apidiscussionfollowup.html (added) +++ websites/staging/openjpa/trunk/content/apidiscussionfollowup.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

After our meeting, Patrick did some analysis of our current API and where +we might want to take it. Here are some initial observations. Please +comment as appropriate.

+
    +
  • +

    OpenJPAEntityManager extends EntityTransaction; should it?

    +
      +
    • clr no, I like your idea below to add an OpenJPAEntityTransaction + interface, so users could do OpenJPAEntityTransaction tx = + (OpenJPAEntityTransaction)em.getTransaction();
    • +
    +
  • +
  • +

    StoreCache, QueryResultCache, Extent, FetchPlan, Generator, OpenJPAQuery +all have getDelegate() calls that return an underlying kernel +implementation detail. Maybe these should be pushed down to theh impl +classes only?

    +
      +
    • clr I agree these don't belong in OpenJPAEntityManager
    • +
    +
  • +
  • +

    OpenJPAEntityManager and OpenJPAEntityManagerFactory both have a +getConfiguration() method. Maybe this should be pushed down to the impl +classes only?

    +
      +
    • clr I don't know when I would use the Configuration, so no opinion on this +one.
    • +
    +
  • +
  • +

    OpenJPAEntityManager.getManagedRuntime() should be pushed down to impl +only

    +
      +
    • clr I agree
    • +
    +
  • +
  • +

    The following methods in OpenJPAPersistence return things that are not +currently part of what I consider a user-focused API:

    +
    toBrokerFactory()
    +toBroker()
    +toEntityManagerFactory()
    +toEntityManager()
    +getMetaData()
    +
    + + +
      +
    • clr I agree.
    • +
    +
  • +
  • +

    We have a bunch of methods in OpenJPAEntityManager that seem like they +should belong on a new OpenJPAEntityTransaction interface:

    +
    public void commitAndResume();
    +public void rollbackAndResume();
    +public void setRollbackOnly(); (already part of EntityTransaction)
    +public void setRollbackOnly(Throwable cause);
    +public Throwable getRollbackCause();
    +public boolean isStoreActive();
    +public void setSavepoint(String name);
    +public void rollbackToSavepoint();
    +public void rollbackToSavepoint(String name);
    +public void releaseSavepoint();
    +public void preFlush();
    +
    + + +
      +
    • clr All of these seem like transaction-focused methods that belong in +OpenJPAEntityTransaction...
    • +
    • pcl: I moved the commit / rollback / rollbackOnly stuff into +OpenJPAEntityTransaction, but things are trickier for the rest of the +methods: you can only call EM.getTransaction() when not in a JTA context, +and these other methods are valuable in a JTA env as well as a non-JTA env. +So, we can either leave them on OpenJPAEM or create some other interface +for them.
    • +
    +
  • +
  • +

    I don't like the OpenJPAEntityManager.setLargeTransaction() method name - +I'd like to rename it to setTrackChangesByType() instead, since it better +reflects what the method does. (We can easily deprecate the old method if +desired.)

    +
      +
    • clr I kinda like setLargeTransaction. It's more "task-oriented". +pcl: The thing is that if you are using large transactions, you might want +to call either (or both) setLargeTx() and setPopulateDataCache(), depending +on the nature of the tx workload.
    • +
    +
  • +
  • +

    I think that it might make sense to move +OpenJPAEntityManager.setPopulateDataCache() to FetchPlan, and rename +FetchPlan.setQueryResultCache() to setPopulateQueryResultCache(). (We can +easily deprecate the old methods if desired.)

    +
      +
    • clr No opinion here.
    • +
    +
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/apply-an-eclipse-patch.html ============================================================================== --- websites/staging/openjpa/trunk/content/apply-an-eclipse-patch.html (added) +++ websites/staging/openjpa/trunk/content/apply-an-eclipse-patch.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Apply an Eclipse Patch to DayTrader

+

You can apply an Eclipse patch to DayTrader for the Criteria API changes

+

+

Setting up Eclipse

+

First install eclipse by going to http:/www.eclipse.org + and downloading a version of it. These instructions assume version 3.5. +Unzip the downloaded file into a directory. You can start eclipse by +running eclipse.exe in the eclipse directory.

+

Next install subclipse, the Subversion Eclipse Plugin:

+
    +
  1. In Eclipse, go to Help -> Install New software
  2. +
  3. Click on Add button - Enter Subclipse for Name and http://subclipse.tigris.org/update_1.6.x for location
  4. +
  5. Select the Subclipse Plugin and click Next -> Next
  6. +
  7. Read and accept the license and click Finish
  8. +
+

Generate eclipse files for the DayTrader project. From the +DayTrader/branches/2.1.3 directory, type "mvn eclipse:eclipse"

+

Set the M2_REPO classpath variable in Eclipse:

+
    +
  1. Go to Window -> Preferences -> Java -> Build Path -> Classpath Variables
  2. +
  3. Add a new variable called M2_REPO, set to the maven repository directory..
  4. +
+

Import DayTrader projects into Eclipse.

+
    +
  1. From Eclipse, Click on File -> Import...
  2. +
  3. Under the General folder, select Existing Projects into Workspace and click on Next.
  4. +
  5. Enter the root directory of DayTrader/branches/2.1.3
  6. +
  7. Select all projects and click Finish
  8. +
+

+

Applying the Patch

+

Replace the following files in your local file system copy of DayTrader:

+
    +
  • the pom.xml file in the root (Daytrader/branches/2.1.3) directory with pom.xml.
  • +
  • for Geronimo only - the createDerbyDB.bat\|.sh file in the DayTrader/branches/2.1.3/bin/dbscripts/derby directory with the appropriate one of the following: createDerbyDB.bat or createDerbyDB.sh
  • +
+

Apply these changes:

+
    +
  1. Re-run "mvn eclipse:eclipse" from your Daytrader/branches/2.1.3 directory.
  2. +
  3. Refresh your eclipse workspace.
  4. +
+

Apply the eclipse based patch using the following:

+
    +
  1. Download the appropriate patch: 
      +
    1. for Geronimo -  daytrader_geronimo_eclipse.patch
    2. +
    3. for WebSphere - daytrader_websphere_eclipse.patch
    4. +
    +
  2. +
  3. In the Package Explorer view, select all daytrader projects
  4. +
  5. Right click and select Team -> Apply Patch
  6. +
  7. Enter the path to the downloaded patch and click Finish
  8. +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/architecture-notes.html ============================================================================== --- websites/staging/openjpa/trunk/content/architecture-notes.html (added) +++ websites/staging/openjpa/trunk/content/architecture-notes.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

OpenJPA Architecture notes:

+

Design point: object persistence; ORM but other stores also supported by +the architecture

+

domain model: user's responsibility; other areas are OpenJPA

+

persistence kernel is central part

+

delegates to other stores via data cache store

+

front ends, kernel, back ends

+

query parse tree is general purpose, with several query generators

+

openjpa.kernel:

+

dirty tracking, state management, lazy loading

+

only keeps track of the fact that a field has changed, not the previous value unless retainValues flag is set

+

supports managed relationships (rectifying domain model at commit or flush)

+

two types of managed relationships (inverse vs. dependent)

+

query parser written in JJTree (extension of javacc but generates AST Nodes)

+

openjpa.datacache:

+

query cache might not be optimal depending on the query: if there is a rich fetch plan but data is already cached from a previous query

+

openjpa.enhance:

+

now optional but performance costs

+

enhancer allows lazy loading of all fields; and dirty tracking

+

lifecycle management, instance factory should be separated from dirty tracking and field management

+

openjpa.meta:

+

used at enhancement time, runtime, schema generation

+

distinguishes between persistence metadata and mapping metadata

+

openjpa.persistence:

+

binding to JPA specification

+

openjpa.lib.jdbc:

+

wrappers to work around driver-specific bugs

+

BrokerFactory:

+

abstract class extended by store-specific factory

+

Broker: +Hibernate Session, JDO PersistenceManager analog

+

OpenJPAStateManager:

+

internal transient object identity is used for newly-persistent instances

+

OpenJPA also supports JDO datastore identity

+

if user asks for the id, the instance is flushed to get the id if needed (unless not using agent)

+

StoreManager:

+

tight relationship with Broker, e.g. for relationship loading

+

the link between Broker and StoreManager has a cache decorator to involve the data cache and query cache

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/artifacts/JPA 2.0 Bean Validation 20090717.pdf ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/JPA 2.0 Bean Validation 20090717.pdf ------------------------------------------------------------------------------ svn:mime-type = application/pdf Added: websites/staging/openjpa/trunk/content/artifacts/JPA XMLColumn mapping.ppt ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/JPA XMLColumn mapping.ppt ------------------------------------------------------------------------------ svn:mime-type = application/vnd.ms-office Added: websites/staging/openjpa/trunk/content/artifacts/OpenJPA-code-style-template.xml ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/OpenJPA-code-style-template.xml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/openjpa/trunk/content/artifacts/OpenJPA-eclipse-galileo-formatting.xml ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/OpenJPA-eclipse-galileo-formatting.xml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/openjpa/trunk/content/artifacts/OpenJPA-formatting-preferences.xml ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/OpenJPA-formatting-preferences.xml ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/openjpa/trunk/content/artifacts/OpenJPAWebAppTutorial.zip ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/artifacts/OpenJPAWebAppTutorial.zip ------------------------------------------------------------------------------ svn:mime-type = application/zip Added: websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.bat ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.bat (added) +++ websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.bat Sun Dec 9 13:13:35 2012 @@ -0,0 +1,45 @@ +@REM Licensed to the Apache Software Foundation (ASF) under one or more +@REM contributor license agreements. See the NOTICE file distributed with +@REM this work for additional information regarding copyright ownership. +@REM The ASF licenses this file to You under the Apache License, Version 2.0 +@REM (the "License"); you may not use this file except in compliance with +@REM the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. + +@echo off + +if not "%JAVA_HOME%" == "" goto JAVA_OK +@echo Please define the JAVA_HOME environment variable. +@goto END +:JAVA_OK + +if not "%GERONIMO_HOME%" == "" goto GERONIMO_OK +@echo Please define the GERONIMO_HOME environment variable. +@goto END +:GERONIMO_OK + +set DERBY_PATH=%GERONIMO_HOME%\repository\org\apache\derby +@REM set DERBY_VER=10.4.1.3 +set DERBY_VER=10.5.3.0_1 +set CLASSPATH=%DERBY_PATH%\derby\%DERBY_VER%\derby-%DERBY_VER%.jar +set CLASSPATH=%CLASSPATH%;%DERBY_PATH%\derbynet\%DERBY_VER%\derbynet-%DERBY_VER%.jar +set CLASSPATH=%CLASSPATH%;%DERBY_PATH%\derbytools\%DERBY_VER%\derbytools-%DERBY_VER%.jar +set CLASSPATH=%CLASSPATH%;%DERBY_PATH%\derbyclient\%DERBY_VER%\derbyclient-%DERBY_VER%.jar + +@echo "Invoking IJ command line tool to create the database and tables...please wait" + +"%JAVA_HOME%\bin\java" -Dij.driver=org.apache.derby.jdbc.ClientDriver -Dij.protocol=jdbc:derby://localhost:1527/ org.apache.derby.tools.ij < Table.ddl + +@REM The following command launches the interactive ij command line utility +@REM java -Dij.driver=org.apache.derby.jdbc.ClientDriver -Dij.protocol=jdbc:derby://localhost:1527/ org.apache.derby.tools.ij + +@echo Table creation complete + +:END Added: websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.sh ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.sh (added) +++ websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.sh Sun Dec 9 13:13:35 2012 @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if [ "${JAVA_HOME}" = "" ] +then + echo "Please define the JAVA_HOME environment variable." + exit +fi + +if [ "${GERONIMO_HOME}" = "" ] +then + echo "Please define the GERONIMO_HOME environment variable." + exit +fi + +export DERBY_PATH=${GERONIMO_HOME}/repository/org/apache/derby +export DERBY_VER=10.5.3.0_1 +export CLASSPATH=${DERBY_PATH}/derby/${DERBY_VER}/derby-${DERBY_VER}.jar +export CLASSPATH=${CLASSPATH}:${DERBY_PATH}/derbynet/${DERBY_VER}/derbynet-${DERBY_VER}.jar +export CLASSPATH=${CLASSPATH}:${DERBY_PATH}/derbytools/${DERBY_VER}/derbytools-${DERBY_VER}.jar +export CLASSPATH=${CLASSPATH}:${DERBY_PATH}/derbyclient/${DERBY_VER}/derbyclient-${DERBY_VER}.jar + +echo "Invoking IJ command line tool to create the database and tables...please wait" + +${JAVA_HOME}/bin/java -Dij.driver=org.apache.derby.jdbc.ClientDriver -Dij.protocol=jdbc:derby://localhost:1527/ org.apache.derby.tools.ij < Table.ddl + +# The following command launches the interactive ij command line utility +#${JAVA_HOME}/bin/java -Dij.driver=org.apache.derby.jdbc.ClientDriver -Dij.protocol=jdbc:derby://localhost:1527/ org.apache.derby.tools.ij + +echo "Table creation complete" Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo.patch ============================================================================== --- websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo.patch (added) +++ websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo.patch Sun Dec 9 13:13:35 2012 @@ -0,0 +1,637 @@ +Index: pom.xml +=================================================================== +--- pom.xml (revision 948077) ++++ pom.xml (working copy) +@@ -189,6 +189,18 @@ + + +
++ ++ ++ org.apache.geronimo.specs ++ geronimo-jpa_2.0_spec ++ 1.0 ++ ++ ++ ++ org.apache.openjpa ++ openjpa ++ 2.0.0 ++ + + + org.apache.activemq +Index: bin/dbscripts/derby/createDerbyDB.bat +=================================================================== +--- bin/dbscripts/derby/createDerbyDB.bat (revision 935418) ++++ bin/dbscripts/derby/createDerbyDB.bat (working copy) +@@ -26,7 +26,8 @@ + :GERONIMO_OK + + set DERBY_PATH=%GERONIMO_HOME%\repository\org\apache\derby +-set DERBY_VER=10.4.1.3 ++@REM set DERBY_VER=10.4.1.3 ++set DERBY_VER=10.5.3.0_1 + set CLASSPATH=%DERBY_PATH%\derby\%DERBY_VER%\derby-%DERBY_VER%.jar + set CLASSPATH=%CLASSPATH%;%DERBY_PATH%\derbynet\%DERBY_VER%\derbynet-%DERBY_VER%.jar + set CLASSPATH=%CLASSPATH%;%DERBY_PATH%\derbytools\%DERBY_VER%\derbytools-%DERBY_VER%.jar +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (revision 935418) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (working copy) +@@ -18,8 +18,6 @@ + + + import java.math.BigDecimal; +-import java.rmi.Remote; +-import java.rmi.RemoteException; + import java.util.Collection; + + /** +@@ -33,7 +31,7 @@ + * @see TradeDirect + * + */ +-public interface TradeServices extends Remote { ++public interface TradeServices { + + /** + * Compute and return a snapshot of the current market conditions +@@ -44,7 +42,7 @@ + * + * @return A snapshot of the current market summary + */ +- public MarketSummaryDataBean getMarketSummary() throws Exception, RemoteException; ++ public MarketSummaryDataBean getMarketSummary() throws Exception; + + + /** +@@ -61,7 +59,7 @@ + */ + + +- public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception; + + /** + * Sell a stock holding and removed the holding for the given user. +@@ -72,7 +70,7 @@ + * @param holdingID the users holding to be sold + * @return OrderDataBean providing the status of the newly created sell order + */ +- public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception, RemoteException; ++ public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception; + + + /** +@@ -87,7 +85,7 @@ + * @param orderID the Order being queued for processing + * @return OrderDataBean providing the status of the completed order + */ +- public void queueOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void queueOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Complete the Order identefied by orderID +@@ -102,7 +100,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception; + + /** + * Cancel the Order identefied by orderID +@@ -113,7 +111,7 @@ + * @param orderID the Order to complete + * @return OrderDataBean providing the status of the completed order + */ +- public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException; ++ public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception; + + + /** +@@ -123,7 +121,7 @@ + * @param orderID the order which has completed + * + */ +- public void orderCompleted(String userID, Integer orderID) throws Exception, RemoteException; ++ public void orderCompleted(String userID, Integer orderID) throws Exception; + + + /** +@@ -132,7 +130,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getOrders(String userID) throws Exception, RemoteException; ++ public Collection getOrders(String userID) throws Exception; + + /** + * Get the collection of completed orders for a given account that need to be alerted to the user +@@ -140,7 +138,7 @@ + * @param userID the customer account to retrieve orders for + * @return Collection OrderDataBeans providing detailed order information + */ +- public Collection getClosedOrders(String userID) throws Exception, RemoteException; ++ public Collection getClosedOrders(String userID) throws Exception; + + + /** +@@ -151,7 +149,7 @@ + * @param details a short description of the stock or company + * @return a new QuoteDataBean or null if Quote could not be created + */ +- public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception, RemoteException; ++ public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception; + + /** + * Return a {@link QuoteDataBean} describing a current quote for the given stock symbol +@@ -159,14 +157,14 @@ + * @param symbol the stock symbol to retrieve the current Quote + * @return the QuoteDataBean + */ +- public QuoteDataBean getQuote(String symbol) throws Exception, RemoteException; ++ public QuoteDataBean getQuote(String symbol) throws Exception; + + /** + * Return a {@link java.util.Collection} of {@link QuoteDataBean} + * describing all current quotes + * @return A collection of QuoteDataBean + */ +- public Collection getAllQuotes() throws Exception, RemoteException; ++ public Collection getAllQuotes() throws Exception; + + /** + * Update the stock quote price and volume for the specified stock symbol +@@ -175,7 +173,7 @@ + * @param price the updated quote price + * @return the QuoteDataBean describing the stock + */ +- public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception, RemoteException; ++ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception; + + + /** +@@ -185,7 +183,7 @@ + * @param userID the customer requesting the portfolio + * @return Collection of the users portfolio of stock holdings + */ +- public Collection getHoldings(String userID) throws Exception, RemoteException; ++ public Collection getHoldings(String userID) throws Exception; + + /** + * Return a specific user stock holding identifed by the holdingID +@@ -193,7 +191,7 @@ + * @param holdingID the holdingID to return + * @return a HoldingDataBean describing the holding + */ +- public HoldingDataBean getHolding(Integer holdingID) throws Exception, RemoteException; ++ public HoldingDataBean getHolding(Integer holdingID) throws Exception; + + /** + * Return an AccountDataBean object for userID describing the account +@@ -202,7 +200,7 @@ + * @return User account data in AccountDataBean + */ + public AccountDataBean getAccountData(String userID) +- throws Exception, RemoteException; ++ throws Exception; + + /** + * Return an AccountProfileDataBean for userID providing the users profile +@@ -210,7 +208,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean getAccountProfileData(String userID) throws Exception, RemoteException; ++ public AccountProfileDataBean getAccountProfileData(String userID) throws Exception; + + /** + * Update userID's account profile information using the provided AccountProfileDataBean object +@@ -218,7 +216,7 @@ + * @param userID the account userID to lookup + * @param User account profile data in AccountProfileDataBean + */ +- public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception, RemoteException; ++ public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception; + + + /** +@@ -228,7 +226,7 @@ + * @param password the password entered by the customer for authentication + * @return User account data in AccountDataBean + */ +- public AccountDataBean login(String userID, String password) throws Exception, RemoteException; ++ public AccountDataBean login(String userID, String password) throws Exception; + + /** + * Logout the given user +@@ -237,7 +235,7 @@ + * @return the login status + */ + +- public void logout(String userID) throws Exception, RemoteException; ++ public void logout(String userID) throws Exception; + + /** + * Register a new Trade customer. +@@ -259,7 +257,7 @@ + String address, + String email, + String creditcard, +- BigDecimal openBalance) throws Exception, RemoteException; ++ BigDecimal openBalance) throws Exception; + + + /** +@@ -271,6 +269,6 @@ + * + * return statistics for this benchmark run + */ +- public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception, RemoteException; ++ public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception; + } + +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (revision 935418) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (working copy) +@@ -18,10 +18,15 @@ + package org.apache.geronimo.samples.daytrader.ejb3; + + import org.apache.geronimo.samples.daytrader.AccountDataBean; ++import org.apache.geronimo.samples.daytrader.AccountDataBean_; + import org.apache.geronimo.samples.daytrader.AccountProfileDataBean; ++import org.apache.geronimo.samples.daytrader.AccountProfileDataBean_; + import org.apache.geronimo.samples.daytrader.HoldingDataBean; ++import org.apache.geronimo.samples.daytrader.HoldingDataBean_; + import org.apache.geronimo.samples.daytrader.OrderDataBean; ++import org.apache.geronimo.samples.daytrader.OrderDataBean_; + import org.apache.geronimo.samples.daytrader.QuoteDataBean; ++import org.apache.geronimo.samples.daytrader.QuoteDataBean_; + import org.apache.geronimo.samples.daytrader.TradeConfig; + import org.apache.geronimo.samples.daytrader.TradeAction; + import org.apache.geronimo.samples.daytrader.RunStatsDataBean; +@@ -43,6 +48,13 @@ + import javax.persistence.EntityManager; + import javax.persistence.PersistenceContext; + import javax.persistence.Query; ++import javax.persistence.TypedQuery; ++import javax.persistence.criteria.CriteriaBuilder; ++import javax.persistence.criteria.CriteriaQuery; ++import javax.persistence.criteria.ParameterExpression; ++import javax.persistence.criteria.Path; ++import javax.persistence.criteria.Predicate; ++import javax.persistence.criteria.Root; + import javax.transaction.HeuristicMixedException; + import javax.transaction.HeuristicRollbackException; + import javax.transaction.NotSupportedException; +@@ -51,6 +63,8 @@ + import org.apache.geronimo.samples.daytrader.util.FinancialUtils; + import org.apache.geronimo.samples.daytrader.util.Log; + import org.apache.geronimo.samples.daytrader.util.MDBStats; ++import org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery; ++import org.apache.openjpa.persistence.query.QueryBuilder; + + @Stateless + @TransactionAttribute(TransactionAttributeType.REQUIRED) +@@ -89,8 +103,14 @@ + // ordered by their change in value + Collection quotes; + +- Query query = entityManager.createNamedQuery("quoteejb.quotesByChange"); +- quotes = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q WHERE q.symbol LIKE 's:1__' ORDER BY q.change1 DESC ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qdb = c.from(QuoteDataBean.class); ++ c.where(cb.like(qdb.get(QuoteDataBean_.symbol), "s:1__")); ++ c.orderBy(cb.desc(qdb.get(QuoteDataBean_.change1))); ++ quotes = entityManager.createQuery(c).getResultList(); + + QuoteDataBean[] quoteArray = (QuoteDataBean[]) quotes.toArray(new QuoteDataBean[quotes.size()]); + ArrayList topGainers = new ArrayList(5); +@@ -356,12 +376,25 @@ + + // Get the primary keys for all the closed Orders for this + // account. +- Query query = entityManager.createNamedQuery("orderejb.closedOrders"); +- query.setParameter("userID", userID); +- Collection results = query.getResultList(); +- Iterator itr = results.iterator(); +- +- // Spin through the orders to populate the lazy quote fields ++ ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT o FROM orderejb o WHERE o.orderStatus = 'closed' AND o.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(OrderDataBean.class); ++ Root odb = c.from(OrderDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path acct = odb.get(OrderDataBean_.account); ++ Path profile = acct.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ Predicate closedCondition = cb.equal(odb.get(OrderDataBean_.orderStatus), "closed"); ++ Predicate uidCondition = cb.equal(uid, uidParm); ++ Predicate condition = cb.and(closedCondition, uidCondition); ++ c.where(condition); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection results = q.setParameter(uidParm, userID).getResultList(); ++ ++ Iterator itr = results.iterator(); ++ // Spin through the orders to populate the lazy quote fields + while (itr.hasNext()){ + OrderDataBean thisOrder = (OrderDataBean)itr.next(); + thisOrder.getQuote(); +@@ -427,8 +460,13 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getAllQuotes"); + +- Query query = entityManager.createNamedQuery("quoteejb.allQuotes"); +- return query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT q FROM quoteejb q ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(QuoteDataBean.class); ++ Root qbd = c.from(QuoteDataBean.class); ++ TypedQuery q = entityManager.createQuery(c); ++ return q.getResultList(); + } + + public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) { +@@ -463,6 +501,7 @@ + + quote.setPrice(newPrice); + quote.setVolume(quote.getVolume() + sharesTraded); ++ quote.setChange(newPrice.subtract(quote.getOpen()).doubleValue()); + entityManager.merge(quote); + + // TODO find out if requires new here is really intended -- it is backwards, +@@ -477,9 +516,22 @@ + if (Log.doTrace()) + Log.trace("TradeSLSBBean:getHoldings", userID); + +- Query query = entityManager.createNamedQuery("holdingejb.holdingsByUserID"); +- query.setParameter("userID", userID); +- Collection holdings = query.getResultList(); ++ // Demonstration of the JPA criteria query API for the following JPQL: ++ // SELECT h FROM holdingejb h where h.account.profile.userID = :userID ++ CriteriaBuilder cb = entityManager.getCriteriaBuilder(); ++ CriteriaQuery c = cb.createQuery(HoldingDataBean.class); ++ Root hdb = c.from(HoldingDataBean.class); ++ ParameterExpression uidParm = cb.parameter(String.class); ++ Path account = hdb.get(HoldingDataBean_.account); ++ Path profile = account.get(AccountDataBean_.profile); ++ Path uid = profile.get(AccountProfileDataBean_.userID); ++ // The following 'select' method is not needed, since it is the default. It is just shown for ++ // illustrative purposes. ++ c.select(hdb); ++ c.where(cb.equal(uid, uidParm)); ++ TypedQuery q = entityManager.createQuery(c); ++ Collection holdings = q.setParameter(uidParm, userID).getResultList(); ++ + /* + * Inflate the lazy data memebers + */ +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0) +@@ -0,0 +1,22 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.HoldingDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:50:36 CDT 2010") ++public class HoldingDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute holdingID; ++ public static volatile SingularAttribute purchaseDate; ++ public static volatile SingularAttribute purchasePrice; ++ public static volatile SingularAttribute quantity; ++ public static volatile SingularAttribute quote; ++} + +Property changes on: modules\ejb\src\main\java\org\apache\geronimo\samples\daytrader\HoldingDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0) +@@ -0,0 +1,27 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.CollectionAttribute; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.AccountDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:48:10 CDT 2010") ++public class AccountDataBean_ { ++ public static volatile SingularAttribute accountID; ++ public static volatile SingularAttribute balance; ++ public static volatile SingularAttribute creationDate; ++ public static volatile CollectionAttribute holdings; ++ public static volatile SingularAttribute lastLogin; ++ public static volatile SingularAttribute loginCount; ++ public static volatile SingularAttribute logoutCount; ++ public static volatile SingularAttribute openBalance; ++ public static volatile CollectionAttribute orders; ++ public static volatile SingularAttribute profile; ++} + +Property changes on: modules\ejb\src\main\java\org\apache\geronimo\samples\daytrader\AccountDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0) +@@ -0,0 +1,23 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.QuoteDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:51:22 CDT 2010") ++public class QuoteDataBean_ { ++ public static volatile SingularAttribute change1; ++ public static volatile SingularAttribute companyName; ++ public static volatile SingularAttribute high; ++ public static volatile SingularAttribute low; ++ public static volatile SingularAttribute open1; ++ public static volatile SingularAttribute price; ++ public static volatile SingularAttribute symbol; ++ public static volatile SingularAttribute volume; ++} + +Property changes on: modules\ejb\src\main\java\org\apache\geronimo\samples\daytrader\QuoteDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (revision 935418) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (working copy) +@@ -38,7 +38,7 @@ + public static final int EJB3 = 0; + public static final int DIRECT = 1; + public static final int SESSION3 = 2; +- public static int runTimeMode = DIRECT; ++ public static int runTimeMode = EJB3; + + /* Trade JPA Layer parameters */ + public static String[] jpaLayerNames = {"OpenJPA", "Hibernate"}; +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0) +@@ -0,0 +1,26 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import java.math.BigDecimal; ++import java.util.Date; ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.OrderDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:26:18 CDT 2010") ++public class OrderDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute completionDate; ++ public static volatile SingularAttribute openDate; ++ public static volatile SingularAttribute orderFee; ++ public static volatile SingularAttribute orderID; ++ public static volatile SingularAttribute orderStatus; ++ public static volatile SingularAttribute orderType; ++ public static volatile SingularAttribute price; ++ public static volatile SingularAttribute quantity; ++ public static volatile SingularAttribute quote; ++} + +Property changes on: modules\ejb\src\main\java\org\apache\geronimo\samples\daytrader\OrderDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java +=================================================================== +--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0) ++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0) +@@ -0,0 +1,21 @@ ++/** ++ * Generated by OpenJPA MetaModel Generator Tool. ++**/ ++ ++package org.apache.geronimo.samples.daytrader; ++ ++import javax.persistence.metamodel.SingularAttribute; ++ ++@javax.persistence.metamodel.StaticMetamodel ++(value=org.apache.geronimo.samples.daytrader.AccountProfileDataBean.class) ++@javax.annotation.Generated ++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 10:10:27 CDT 2010") ++public class AccountProfileDataBean_ { ++ public static volatile SingularAttribute account; ++ public static volatile SingularAttribute address; ++ public static volatile SingularAttribute creditCard; ++ public static volatile SingularAttribute email; ++ public static volatile SingularAttribute fullName; ++ public static volatile SingularAttribute passwd; ++ public static volatile SingularAttribute userID; ++} + +Property changes on: modules\ejb\src\main\java\org\apache\geronimo\samples\daytrader\AccountProfileDataBean_.java +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: modules/ejb/src/main/resources/META-INF/ejb-jar.xml +=================================================================== +--- modules/ejb/src/main/resources/META-INF/ejb-jar.xml (revision 935418) ++++ modules/ejb/src/main/resources/META-INF/ejb-jar.xml (working copy) +@@ -25,4 +25,13 @@ + entity, session and message driven beans using annotations. The inline annotations + can be overriden by modifing this file. + --> ++ ++ ++ TradeBrokerQueue ++ ++ ++ TradeStreamerTopic ++ ++ ++ + +Index: modules/ejb/pom.xml +=================================================================== +--- modules/ejb/pom.xml (revision 935418) ++++ modules/ejb/pom.xml (working copy) +@@ -54,7 +54,8 @@ + + + org.apache.geronimo.specs +- geronimo-jpa_3.0_spec ++ geronimo-jpa_2.0_spec ++ 1.1 + provided + + +@@ -80,6 +81,7 @@ + + org.apache.openjpa + openjpa ++ 2.0.0 + provided + + +Index: modules/web/src/main/webapp/WEB-INF/web.xml +=================================================================== +--- modules/web/src/main/webapp/WEB-INF/web.xml (revision 935418) ++++ modules/web/src/main/webapp/WEB-INF/web.xml (working copy) +@@ -82,7 +82,7 @@ + + Sets the default RuntimeMode. Legal values include EJB and Direct + runTimeMode +- DIRECT ++ Full EJB3 + + + Sets the default Order Processing Mode. Legal values include Synchronous, Asynchronous_1-Phase and Asynchronous_2-Phase Propchange: websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo.patch ------------------------------------------------------------------------------ svn:executable = * From commits-return-10182-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:14:38 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1780AE0BC for ; Sun, 9 Dec 2012 13:14:38 +0000 (UTC) Received: (qmail 83491 invoked by uid 500); 9 Dec 2012 13:14:37 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 83374 invoked by uid 500); 9 Dec 2012 13:14:37 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 83356 invoked by uid 99); 9 Dec 2012 13:14:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3601223888E7 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [1/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.3601223888E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Sun Dec 9 13:13:35 2012 New Revision: 841236 Log: Staging update by buildbot for openjpa Added: websites/staging/openjpa/trunk/content/ (with props) websites/staging/openjpa/trunk/content/2.1-roadmap.html websites/staging/openjpa/trunk/content/apache-nexus-release-process-(1.2.x-2.1.x).html websites/staging/openjpa/trunk/content/apidiscussionfollowup.html websites/staging/openjpa/trunk/content/apply-an-eclipse-patch.html websites/staging/openjpa/trunk/content/architecture-notes.html websites/staging/openjpa/trunk/content/artifacts/ websites/staging/openjpa/trunk/content/artifacts/JPA 2.0 Bean Validation 20090717.pdf (with props) websites/staging/openjpa/trunk/content/artifacts/JPA XMLColumn mapping.ppt (with props) websites/staging/openjpa/trunk/content/artifacts/OpenJPA-code-style-template.xml (with props) websites/staging/openjpa/trunk/content/artifacts/OpenJPA-eclipse-galileo-formatting.xml (with props) websites/staging/openjpa/trunk/content/artifacts/OpenJPA-formatting-preferences.xml (with props) websites/staging/openjpa/trunk/content/artifacts/OpenJPAWebAppTutorial.zip (with props) websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.bat websites/staging/openjpa/trunk/content/artifacts/createDerbyDB.sh websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo.patch (with props) websites/staging/openjpa/trunk/content/artifacts/daytrader_geronimo_eclipse.patch websites/staging/openjpa/trunk/content/artifacts/daytrader_singleServer.py (with props) websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch (with props) websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch websites/staging/openjpa/trunk/content/artifacts/enhance.xml websites/staging/openjpa/trunk/content/artifacts/pom.xml (with props) websites/staging/openjpa/trunk/content/automated-builds.html websites/staging/openjpa/trunk/content/banner.html websites/staging/openjpa/trunk/content/bean-validation-primer.html websites/staging/openjpa/trunk/content/begin-using-openjpa---the-basics.html websites/staging/openjpa/trunk/content/beginners-performance-guide.html websites/staging/openjpa/trunk/content/build-and-runtime-dependencies.html websites/staging/openjpa/trunk/content/building-and-running-openbooks.html websites/staging/openjpa/trunk/content/building.html websites/staging/openjpa/trunk/content/coding-standards.html websites/staging/openjpa/trunk/content/committers.html websites/staging/openjpa/trunk/content/community.html websites/staging/openjpa/trunk/content/css/ websites/staging/openjpa/trunk/content/css/type-settings-orig.css (with props) websites/staging/openjpa/trunk/content/css/type-settings.css (with props) websites/staging/openjpa/trunk/content/development-process.html websites/staging/openjpa/trunk/content/development.html websites/staging/openjpa/trunk/content/documentation.html websites/staging/openjpa/trunk/content/domain-model-browser.html websites/staging/openjpa/trunk/content/downloads.html websites/staging/openjpa/trunk/content/embeddable-samples.html websites/staging/openjpa/trunk/content/enhancement-with-ant.html websites/staging/openjpa/trunk/content/enhancement-with-eclipse.html websites/staging/openjpa/trunk/content/enhancement-with-maven.html websites/staging/openjpa/trunk/content/entity-enhancement.html websites/staging/openjpa/trunk/content/faq.html websites/staging/openjpa/trunk/content/fetch-statistics.html websites/staging/openjpa/trunk/content/findbugs-presentation-notes.html websites/staging/openjpa/trunk/content/found-a-bug.html websites/staging/openjpa/trunk/content/get-involved.html websites/staging/openjpa/trunk/content/getting-started.html websites/staging/openjpa/trunk/content/images/ websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot1.JPG (with props) websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot2.JPG (with props) websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot3.JPG (with props) websites/staging/openjpa/trunk/content/images/OpenTrader-login.gif (with props) websites/staging/openjpa/trunk/content/images/OpenTrader-screenshot.gif (with props) websites/staging/openjpa/trunk/content/images/asf_logo_wide2.png (with props) websites/staging/openjpa/trunk/content/images/check.gif (with props) websites/staging/openjpa/trunk/content/images/class_diagram.jpeg (with props) websites/staging/openjpa/trunk/content/images/datacache-plugin/ websites/staging/openjpa/trunk/content/images/datacache-plugin/pid.jpg (with props) websites/staging/openjpa/trunk/content/images/datacache-plugin/screen.jpg (with props) websites/staging/openjpa/trunk/content/images/deploymentModes.GIF (with props) websites/staging/openjpa/trunk/content/images/docs_16.gif (with props) websites/staging/openjpa/trunk/content/images/embeddables.jpeg (with props) websites/staging/openjpa/trunk/content/images/embeddables_entities.jpeg (with props) websites/staging/openjpa/trunk/content/images/header-bg3.png (with props) websites/staging/openjpa/trunk/content/images/ig_domain_model.gif (with props) websites/staging/openjpa/trunk/content/images/image001.jpg (with props) websites/staging/openjpa/trunk/content/images/image002.jpg (with props) websites/staging/openjpa/trunk/content/images/image003.jpg (with props) websites/staging/openjpa/trunk/content/images/image004.jpg (with props) websites/staging/openjpa/trunk/content/images/image005.jpg (with props) websites/staging/openjpa/trunk/content/images/image006.jpg (with props) websites/staging/openjpa/trunk/content/images/image007.jpg (with props) websites/staging/openjpa/trunk/content/images/image008.jpg (with props) websites/staging/openjpa/trunk/content/images/image009.jpg (with props) websites/staging/openjpa/trunk/content/images/image010.jpg (with props) websites/staging/openjpa/trunk/content/images/image011.jpg (with props) websites/staging/openjpa/trunk/content/images/image012.jpg (with props) websites/staging/openjpa/trunk/content/images/image013.jpg (with props) websites/staging/openjpa/trunk/content/images/image014.jpg (with props) websites/staging/openjpa/trunk/content/images/image015.jpg (with props) websites/staging/openjpa/trunk/content/images/image016.jpg (with props) websites/staging/openjpa/trunk/content/images/image017.jpg (with props) websites/staging/openjpa/trunk/content/images/image018.jpg (with props) websites/staging/openjpa/trunk/content/images/image019.jpg (with props) websites/staging/openjpa/trunk/content/images/image020.jpg (with props) websites/staging/openjpa/trunk/content/images/image021.jpg (with props) websites/staging/openjpa/trunk/content/images/image022.jpg (with props) websites/staging/openjpa/trunk/content/images/image023.jpg (with props) websites/staging/openjpa/trunk/content/images/image024.jpg (with props) websites/staging/openjpa/trunk/content/images/image025.jpg (with props) websites/staging/openjpa/trunk/content/images/image026.jpg (with props) websites/staging/openjpa/trunk/content/images/image027.jpg (with props) websites/staging/openjpa/trunk/content/images/information.gif (with props) websites/staging/openjpa/trunk/content/images/main.png (with props) websites/staging/openjpa/trunk/content/images/mmb.PNG (with props) websites/staging/openjpa/trunk/content/images/navigator.png (with props) websites/staging/openjpa/trunk/content/images/openjpa-logo.png (with props) websites/staging/openjpa/trunk/content/images/paint_200x150.png (with props) websites/staging/openjpa/trunk/content/images/schema.jpeg (with props) websites/staging/openjpa/trunk/content/images/targets.png (with props) websites/staging/openjpa/trunk/content/images/warning.gif (with props) websites/staging/openjpa/trunk/content/images/welcome-page.JPG (with props) websites/staging/openjpa/trunk/content/index.html websites/staging/openjpa/trunk/content/integration.html websites/staging/openjpa/trunk/content/intro.html websites/staging/openjpa/trunk/content/jconsole-datacache-plugin.html websites/staging/openjpa/trunk/content/jest-examples.html websites/staging/openjpa/trunk/content/jest-representation.html websites/staging/openjpa/trunk/content/jest-syntax.html websites/staging/openjpa/trunk/content/jest-transaction.html websites/staging/openjpa/trunk/content/jest-usage.html websites/staging/openjpa/trunk/content/jpa-2.0-development-process.html websites/staging/openjpa/trunk/content/jpa-2.0-iterations.html websites/staging/openjpa/trunk/content/jpa-2.0-presentations.html websites/staging/openjpa/trunk/content/jpa-2.0-roadmap.html websites/staging/openjpa/trunk/content/jpa-2.0-tasks.html websites/staging/openjpa/trunk/content/jpa-2.0-test-coverage.html websites/staging/openjpa/trunk/content/jpa-m2-demo.html websites/staging/openjpa/trunk/content/jsr-317-20081031-public-draft-tasks.html websites/staging/openjpa/trunk/content/license.html websites/staging/openjpa/trunk/content/logo-contest.html websites/staging/openjpa/trunk/content/mailing-lists.html websites/staging/openjpa/trunk/content/migration-tool.html websites/staging/openjpa/trunk/content/obtaining.html websites/staging/openjpa/trunk/content/openbooks---featuring-jpa-2.0.html websites/staging/openjpa/trunk/content/openjpa+email.html websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-2.html websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-3.html websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta.html websites/staging/openjpa/trunk/content/openjpa-2.0.0-early-access-2.html websites/staging/openjpa/trunk/content/openjpa-2.0.0-milestone-3.html websites/staging/openjpa/trunk/content/openjpa-2.0.0.html websites/staging/openjpa/trunk/content/openjpa-2.0.1.html websites/staging/openjpa/trunk/content/openjpa-2.1.0.html websites/staging/openjpa/trunk/content/openjpa-2.2.0.html websites/staging/openjpa/trunk/content/openjpa-confluence-user-groups.html websites/staging/openjpa/trunk/content/openjpa-development-resources.html websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-1.html websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-2.html websites/staging/openjpa/trunk/content/openjpa-logo-contest---run-off.html websites/staging/openjpa/trunk/content/openjpa-release-policy.html websites/staging/openjpa/trunk/content/openjpa-up-close-and-personal.html websites/staging/openjpa/trunk/content/openjpaeclipseenhancementbuilder.html websites/staging/openjpa/trunk/content/openjpaeclipseinstallation.html websites/staging/openjpa/trunk/content/openjpaeclipsetoolingdevandbuild.html websites/staging/openjpa/trunk/content/opentrader.html websites/staging/openjpa/trunk/content/opentraderarchitecture.html websites/staging/openjpa/trunk/content/opentraderbuild.html websites/staging/openjpa/trunk/content/opentraderclient.html websites/staging/openjpa/trunk/content/opentradercommunication.html websites/staging/openjpa/trunk/content/opentraderdeploy.html websites/staging/openjpa/trunk/content/opentraderenvironment.html websites/staging/openjpa/trunk/content/opentraderserver.html websites/staging/openjpa/trunk/content/overview.html websites/staging/openjpa/trunk/content/performance-guide.html websites/staging/openjpa/trunk/content/powered-by.html websites/staging/openjpa/trunk/content/privacy-policy.html websites/staging/openjpa/trunk/content/publishing-serp-to-maven-central-repository.html websites/staging/openjpa/trunk/content/query-notes.html websites/staging/openjpa/trunk/content/quick-start.html websites/staging/openjpa/trunk/content/recovering-from-a-vetoed-release.html websites/staging/openjpa/trunk/content/related-projects.html websites/staging/openjpa/trunk/content/release-management.html websites/staging/openjpa/trunk/content/release-setup.html websites/staging/openjpa/trunk/content/releasing-openjpa-1.0.x-or-1.1.x-(old-scp-steps).html websites/staging/openjpa/trunk/content/releasing-openjpa-1.2.x-(old-scp-steps).html websites/staging/openjpa/trunk/content/running-openjpa-examples.html websites/staging/openjpa/trunk/content/running-the-sun-tck-for-jpa.html websites/staging/openjpa/trunk/content/runtime-enhancement.html websites/staging/openjpa/trunk/content/samples.html websites/staging/openjpa/trunk/content/sampletemplate.html websites/staging/openjpa/trunk/content/sidenav-community.html websites/staging/openjpa/trunk/content/sidenav-development.html websites/staging/openjpa/trunk/content/sidenav-overview.html websites/staging/openjpa/trunk/content/sidenav-quick-links.html websites/staging/openjpa/trunk/content/site-index.html websites/staging/openjpa/trunk/content/source-code.html websites/staging/openjpa/trunk/content/testing.html websites/staging/openjpa/trunk/content/thanks.html websites/staging/openjpa/trunk/content/tools.html websites/staging/openjpa/trunk/content/top-navigation-bar.html websites/staging/openjpa/trunk/content/update-release-text-files.html websites/staging/openjpa/trunk/content/using-criteria-api-in-daytrader.html websites/staging/openjpa/trunk/content/verifying-release-signatures.html websites/staging/openjpa/trunk/content/websphere-application-server.html websites/staging/openjpa/trunk/content/whither-openjpa.html websites/staging/openjpa/trunk/content/writing-test-cases-for-openjpa.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ cms:source-revision = 1418933 Added: websites/staging/openjpa/trunk/content/2.1-roadmap.html ============================================================================== --- websites/staging/openjpa/trunk/content/2.1-roadmap.html (added) +++ websites/staging/openjpa/trunk/content/2.1-roadmap.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.1 Roadmap

+

We'll try to maintain this page with delivered and planned features for the +OpenJPA 2.1.0 release, so check back often.

+

+

Planned Features

+
    +
  • Built-in connection pooling for Java SE applications
      +
    • Inclusion of commons-dbcp in openjpa-all.jar and the binary distribution
    • +
    • Ability to configure or disable commons-dbcp
    • +
    +
  • +
  • Built-in Bean Validation Provider
      +
    • Inclusion of Apache Bean Validation Provider in openjpa-all.jar and the +binary distribution
    • +
    +
  • +
  • Additional Database Support
      +
    • Microsoft SQL Server 2008 R2
    • +
    • Microsoft SQL JDBC driver v3.0
    • +
    • IBM solidDB
    • +
    +
  • +
  • Additional Samples
      +
    • OpenBook
    • +
    • Image Gallery
    • +
    • OpenTrader
    • +
    +
  • +
  • Instrumentation and Platform MBean support
      +
    • Pluggable instrumentation support
    • +
    • Remote monitoring of OpenJPA's caches using JMX
    • +
    +
  • +
  • New Tools +
  • +
+

+

Migration Issues

+
    +
  • This release will officially drop support for Java SE 5. Anyone +requiring Java SE 5 support will have to continue using OpenJPA 2.0.x, +which is fully JPA 2.0 compliant.
  • +
+

+

Release Plan

+

A 2.1.x branch + is available in SVN and 2.1.0 release preparations are underway. The +OpenJPA team is planning to deliver a 2.1.0 release in late January, 2011.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/apache-nexus-release-process-(1.2.x-2.1.x).html ============================================================================== --- websites/staging/openjpa/trunk/content/apache-nexus-release-process-(1.2.x-2.1.x).html (added) +++ websites/staging/openjpa/trunk/content/apache-nexus-release-process-(1.2.x-2.1.x).html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,681 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Release Steps for OpenJPA 1.2.x - 2.1.x

+

We're starting to move our builds over to using the Apache Nexus repository (repository.apache.org) for releasing SNAPSHOT and release artifacts. +More details on releasing artifacts and using Nexus can be found on the Maven website at - http://maven.apache.org/developers/release/apache-release.html

+
    +
  1. +

    Environment setup for releasing artifacts (same for SNAPSHOTs and releases)

    +
      +
    1. +

      Increase the default Java heap available to Maven (required for Java SE 6)

      +
      export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m" xx
      +
      + + +
    2. +
    3. +

      Use the latest Sun 1.6.0 JDK (1.5.0 for 1.2.x and 1.3.x)

      +
    4. +
    5. Use Maven 2.2.1 or later (2.2.1 is required for release signing fixes)
    6. +
    7. Make sure the Release Setup steps have been performed.
    8. +
    +
  2. +
  3. +

    Prepare the source for release:

    +
      +
    1. Cleanup JIRA so the Fix Version in issues resolved since the last release includes this release version correctly. Also, transition any Resolved issues to the Closed state.
    2. +
    3. +

      Update the text files in a working copy of the openjpa-project subdir -

      +
        +
      1. Update the CHANGES.txt based on the Text release reports from JIRA.
          +
        1. Choose the release from the "Versions" tab in the [releases page|https://issues.apache.org/jira/browse/OPENJPA/fixforversion/]
        2. +
        3. Click "Release Notes" link in upper right.
        4. +
        +
      2. +
      3. Update the RELEASE-NOTES.html based on the HTML release reports from JIRA.
      4. +
      5. Review and update README.txt and BUILDING.txt if needed.
      6. +
      7. +

        Commit any changes back to svn -

        +
        $ svn commit -m "updating files for release"
        +
        + + +
      8. +
      +
    4. +
    5. +

      Stage any Roadmap or Release landing pages on the wiki.

      +
    6. +
    7. +

      Verify the source has the required headers before trying to release.

      +
      $ mvn apache-rat:check
      +
      + + +
    8. +
    9. +

      Perform a full build with tests

      +
      $ mvn clean install -Papache-release,docbook-profile,test-derby,bval
      +
      + + +
    10. +
    11. +

      Run the JPA 1.0 TCK (for 1.x) and JPA 2.0 TCK (for 2.x) to verify the latest code passes.

      +
    12. +
    13. +

      Perform a full build and deploy the SNAPSHOT artifacts

      +
      $ mvn clean deploy site site-deploy -Papache-release,docbook-profile,test-derby,bval -DskipTests
      +
      + + +
    14. +
    15. +

      Inspect the files in your local target directories to ensure:

      +
        +
      • All jars and zips include: LICENSE and NOTICE files
      • +
      • The NOTICE files cover all third-party included files (like XSD schemas)
      • +
      • The LICENSE files include any third-party licenses (like XSD schemas)
      • +
      • The openjpa and openjpa-all jars include the right packages.
      • +
      • The openjpa source and release distribution files have the right content.
      • +
      • All jars/zips/poms have .asc (PGP signature) and md5 files
      • +
      +
    16. +
    +
  4. +
  5. +

    For new major releases (like 2.0.0 to 2.1.0)

    +
      +
    1. +

      Create a sub-branch from which to make the release. Releasing from a branch will allow any cosmetic changes that need to be made for the release to be approved to be done without preventing other more disruptive advances in the trunk from potentially causing problems with the release. It also provides a future maintenance branch (like 2.0.x.) A branch can be made by running:

      +
      $ mvn release:branch -DbranchName=2.0.x -Dusername=svn.user -Dpassword=svn.password
      +
      + + +
    2. +
    +
  6. +
  7. +

    Checkout a clean copy of the trunk/branch to release using command line svn.

    +
      +
    1. +

      Do not use Eclipse to do the checkout. The extra dot (.) files created by Eclipse throws off the rat:check processing and will get included in the source distribution.

      +
      $ svn checkout https://svn.apache.org/repos/asf/openjpa/branches/2.0.x/ 2.0.1-rc1/
      +
      + + +

      Make sure you use https:// protocol because the following release:prepare step requires update to the svn repository.

      +
    2. +
    +
  8. +
  9. +

    (Optional) Do a dry run of the release:prepare step.

    +
      +
    1. +

      The dry run will not commit any changes back to SVN and gives you the opportunity to verify that the release process will complete as expected. You will be prompted for the following information :

      +
        +
      1. Release version - take the default - (default 2.0.1)
      2. +
      3. SCM release tag - DO NOT TAKE THE DEFAULT - (default openjpa-parent-2.0.1): : 2.0.1
      4. +
      5. New development version - take the default - (default 2.0.2-SNAPSHOT)
      6. +
      7. +

        optional if you have not specified a GPG passphrase in settings.xml you will be prompted for it.

        +
            $ mvn -Papache-release release:prepare -DdryRun=true
        +
        + + +
      8. +
      +

      + If you cancel a release:prepare before it updates the pom.xml versions, +then use the release:clean goal to just remove the extra files that were +created. If that doesn't help, try running mvn clean.

      +
    2. +
    3. +

      Verify that the release process completed as expected

      +
        +
      1. The release plugin will create pom.xml.tag files which contain the changes that would have been committed to SVN. The only differences between pom.xml.tag and it's corresponding pom.xml file should be the version number.
      2. +
      3. +

        If other formatting changes have been made you should review the changes and then commit them -

        +
         $ svn commit -m "fixing formatting for release"
        +
        + + +
      4. +
      5. +

        Assuming the .tag files look OK you may proceed and do any other validation you feel necessary. The following list may be helpful

        +
          +
        1. Check release.properties and make sure that the scm properties have the right version. Sometimes the scm location can be the previous version not the next version. *
        2. +
        3. verify signatures [Verifying release signatures|*verifySig]
        4. +
        +
      6. +
      +
    4. +
    5. +

      Once any failures or required updates have been committed to svn, rollback the release prepare files -

      +
      $ mvn -Papache-release release:rollback
      +
      + + +
    6. +
    +
  10. +
  11. +

    Prepare the release

    +
      +
    1. +

      Run the "release:prepare" step for real this time. You'll be prompted for the same version information and optionally your GPG passphrase again.

      +
      $ mvn release:prepare -Papache-release,docbook-profile,test-derbymem,bval -DskipTests \
      +      [-Dusername=svn.user -Dpassword=svn.password](-dusername=svn.user--dpassword=svn.password.html) \
      +      -DpreparationGoals="clean install"
      +
      + + +

      +Different arguments and steps are required as there are problems with the maven-jar-plugin and maven-release-plugin when using the test-jar goal. See http://jira.codehaus.org/browse/MJAR-68 and ,http://jira.codehaus.org/browse/MRELEASE-285.

      +
      $ mvn release:prepare -Papache-release,docbook-profile,test-derbymem,bval -DskipTests \
      +      -DpreparationGoals="clean install"
      +  ... Build failed....
      +$ mvn install -DskipTests
      +$ mvn release:prepare -Papache-release,docbook-profile,test-derbymem,bval -DskipTests \
      +      -DpreparationGoals="clean install"
      +
      + + +
      + +
    2. +
    +
  12. +
  13. +

    Backup (zip or tar) your local release candidate directory in case you need to rollback the release after the next step is performed.

    +
    cd ..
    +tar -czf 2.0.1-rc1-preRelease.tar.gz 2.0.1-rc1/
    +cd 2.0.1-rc1
    +
    + + +
  14. +
  15. +

    Perform the release

    +
      +
    1. +

      This step will create a maven staging repository and site for use in testing and voting. You will be prompted for your repository.apache.org and people.apache.org password several times if you have not added server profiles to your settings.xml. See [Release Setup] for more information.

      +
      $ mvn release:perform -Papache-release -Duser.name=<your_apache_uid>
      +
      + + +
    2. +
    3. +

      The maven-release-plugin is configured with goals "deploy site site-deploy" and will deploy the site files to a staging-site directory on people.apache.org.

      +
    4. +
    +
  16. +
  17. +

    Verify the release artifacts

    +
      +
    1. +

      Verify the HTML links in staging-site/index.html are correct

      +
        +
      1. Login to people.apache.org
      2. +
      3. +

        Edit public_html/openjpa/[release](release.html) /staging-site/index.html and updates the followings:

        +
        <a href="downloads/">Downloads</a>
        +  to
        +<a href="apache-openjpa/downloads/">Downloads</a>
        +
        +<a href="docs/index.html">docs/index.html</a>
        +  to
        +<a href="apache-openjpa/docs/index.html">docs/index.html</a>
        +
        + + +
      4. +
      +
    2. +
    3. +

      Login to Nexus

      +
    4. +
    5. Verify the staged artifacts in the nexus repo
        +
      1. Build Promotion --> Staging Repositories
      2. +
      3. Select/check org.apache.openjpa-xxx
      4. +
      5. In Browser tab, navigate through the artifact tree and make sure that all javadoc, sources, tests, jars, ... have .asc (GPG signature) and .md5files. See http://people.apache.org/~henkp/repo/faq.html and http://www.apache.org/dev/release-signing.html/#openpgp-ascii-detach-sig.
      6. +
      +
    6. +
    7. Close the nexus staging repo
        +
      1. Select/check org.apache.openjpa-xxx and select Close.
      2. +
      +
    8. +
    +
  18. +
  19. +

    Put the release candidate up for a vote

    +
      +
    1. +

      Create a VOTE email thread on dev@openjpa to record votes as replies, like -

      +
          To: dev@
      +    Subject: [VOTE](vote.html)
      +    Apache OpenJPA 2.0.1 Release Candidate
      +    I've created a 2.0.1 release candidate, with the following artifacts up for a vote:
      +    SVN source tag (rXXXXXX):
      +    https://svn.apache.org/repos/asf/openjpa/tags/2.0.1/
      +
      +    Maven staging repo:
      +    https://repository.apache.org/content/repositories/orgapacheopenjpa-XXX/
      +
      +    Source release:
      +    https://repository.apache.org/content/repositories/orgapacheopenjpa-XXX/\
      +          org/apache/openjpa/openjpa-parent/2.0.1/openjpa-parent-2.0.1-source-release.zip
      +
      +    Javadoc staging site:
      +    http://people.apache.org/~dwoods/openjpa/2.0.1/staging-site/apidocs/
      +
      +    PGP release keys (signed using D018E6B1):
      +    https://svn.apache.org/repos/asf/openjpa/KEYS
      +
      +    Vote will be open for 72 hours.
      +
      +    [ ](-.html)
      +    +1  approve
      +    [ ](-.html)
      +    +0  no opinion
      +    [ ](-.html)
      +    -1  disapprove (and reason why)
      +
      + + +
    2. +
    3. +

      Create a DISCUSS email thread on dev@ for any vote questions, like -

      +
          To: dev@
      +    Subject: [DISCUSS]
      +    Apache OpenJPA 2.0.1 Release Candidate
      +
      +    Discussion thread for vote on 2.0.1 release candidate, with SVN source tag
      +    (rXXXXXX).
      +
      +    For more information on the release process, checkout -
      +    http://www.apache.org/dev/release.html
      +    http://incubator.apache.org/guides/releasemanagement.html
      +
      +    Some of the things to check before voting are:
      +    - does "mvn apache-rat:check" pass on the source
      +    - can you build the contents of source-release.zip and svn tag
      +    - do all of the staged jars/zips contain the required LICENSE and NOTICE
      +    files
      +    - are all of the staged jars signed and the signature verifiable
      +    - is the signing key in the project's KEYS file and on a public server
      +    - does the release pass the TCK
      +
      + + +
    4. +
    5. +

      Perform a review of the release and cast your vote. See the following for more details on Apache releases -

      +
        +
      1. http://www.apache.org/dev/release.html
      2. +
      3. http://incubator.apache.org/guides/releasemanagement.html
      4. +
      +
    6. +
    7. A -1 vote does not necessarily mean that the vote must be redone, however it is usually a good idea to rollback the release if a -1 vote is received. See - *Recovering from a vetoed release
    8. +
    9. +

      After the vote has been open for at least 72 hours, has at least three +1 PMC votes and no -1 votes, then post the results to the vote thread by -

      +
        +
      1. +

        Reply to the initial email and prepend to the original subject -

        +
        [RESULTS]
        +
        + + +
      2. +
      3. +

        Include a list of everyone who voted +1, 0 or -1.

        +
      4. +
      +
    10. +
    +
  20. +
  21. +

    Finalizing a release

    +
      +
    1. Release the staged nexus artifacts -
        +
      1. https://repository.apache.org/index.html
      2. +
      3. Build Promotion --> Staging Repositories
      4. +
      5. Select/check org.apache.openjpa-xxx and select Release.
      6. +
      +
    2. +
    3. +

      Copy the staged site over to the openjpa/builds location on people.apache.org.

      +
        +
      1. +

        ssh to people.apache.org

        +
        $ mkdir /www/openjpa.apache.org/builds/2.0.1
        +$ cp -r ~/public_html/openjpa/2.0.1/staging-site/* /www/openjpa.apache.org/builds/2.0.1/
        +$ chmod -R g+w /www/openjpa.apache.org/builds/2.0.1
        +
        + + +
      2. +
      3. +

        Update the assemblies in the Downloads directory. For this, we'll just wget copies of the released assemblies with their signatures and hashes from the Apache repo:

        +
        $ cd /www/openjpa.apache.org/builds/2.0.1/apache-openjpa/downloads
        +wget [--no-check-certificate] https://repository.apache.org/content/repositories/releases/\
        +      org/apache/openjpa/apache-openjpa/2.0.1/apache-openjpa-2.0.1-source.zip
        +wget [--no-check-certificate] https://repository.apache.org/content/repositories/releases/\
        +      org/apache/openjpa/apache-openjpa/2.0.1/apache-openjpa-2.0.1-binary.zip
        +
        + + +

        Along with the .zip.asc, .zip.md5 and *.zip.sha1 for both ZIP files above.

        +
      4. +
      5. +

        copy the RELEASE-NOTES.html to the proper location

        +
        $ cd ...../2.0.1-rc1/
        +$ scp openjpa-project/RELEASE-NOTES.html allee8285@people.apache.org:\
        +      /www/openjpa.apache.org/builds/2.0.1/apache-openjpa
        +
        + + +
      6. +
      7. +

        verify that /www/openjpa.apache.org/builds/2.0.1/docs/manual is populated correctly by comparing it to a previous release.

        +
        $ rm /www/openjpa.apache.org/docs/latest
        +$ ln -fvs ../builds/2.0.1/apache-openjpa/docs/ /www/openjpa.apache.org/docs/latest
        +
        + + +
      8. +
      +
    4. +
    5. +

      Copy the distribution artifacts over to the distribution area.

      +
      mkdir /www/www.apache.org/dist/openjpa/2.0.1
      +cp /www/openjpa.apache.org/builds/2.0.1/apache-openjpa/downloads/* /www/www.apache.org/dist/openjpa/2.0.1/
      +chgrp -R openjpa /www/www.apache.org/dist/openjpa/2.0.1
      +chmod -R g+w /www/www.apache.org/dist/openjpa/2.0.1
      +
      + + +
        +
      1. +

        Optional: Remove the previous version from /dist. Ie if you're publishing 2.0.1 you would remove 2.0.0. Verify that the release being removed is in the distribution archives before removing.

        +
        $ ls -la /www/archive.apache.org/dist/openjpa/2.0.0/
        +$ rm -rf /www/openjpa.apache.org/dist/openjpa/2.0.0
        +
        + + +
      2. +
      +
    6. +
    7. +

      Update the JIRA Releases page to mark the version as "released", and set the date to the date that the release was approved. You may also need to make a new release entry for the next release.

      +
    8. +
    +
  22. +
  23. +

    Update wiki pages

    +
      +
    1. After the distribution and build files have been mirrored out to the external sites (takes about an hour), update the Downloads and Documentation pages with the new release.
    2. +
    3. Make a blog announcement on the OpenJPA wiki.
        +
      1. FIX ME!
      2. +
      +
    4. +
    +
  24. +
  25. +

    Announcing the release

    +
      +
    1. +

      FIX MEEEE After the Maven mirrors have had time to update (24 hours to be on the safe side) and the wiki updates have been exported and mirrored to the external website, then it's time to announce the release. Make an announcement about the release on the dev@, user@ and [mailto:announce@apache.org] list as per [the Apache Announcement Mailing Lists page|http://www.apache.org/foundation/mailinglists.html*foundation-announce] +)

      +

      +Make sure you send the announcement to announce@apache.org from your +user@apache.org. This can be achieved using gmail by setting the "From" +field to user@apche.org instead of user@gmail.com when sending the +announcement.

      +
    2. +
    +
  26. +
+

Recovering from a vetoed release

+
    +
  1. +

    Reply to the initial vote email and prepend to the original subject -

    +
    [CANCELED]
    +
    + + +
  2. +
  3. +

    Rollback the version upgrades in trunk by either -

    +
      +
    1. +

      Restore the 2.0.1-rc1.tar.gz and run

      +
      $ mvn -Papache-release release:rollback
      +
      + + +
    2. +
    3. +

      Manually revert the versions in trunk to the prior version and commit

      +
    4. +
    +
  4. +
  5. +

    Delete the svn tag created by the release:perform step -

    +
        $ svn del https://svn.apache.org/repos/asf/openjpa/tags/2.0.1 -m "rollback release attempt"
    +
    + + +
  6. +
  7. +

    Drop the nexus staging repo

    +
      +
    1. https://repository.apache.org/index.html
    2. +
    3. Enterprise --> Staging
    4. +
    5. Staging tab --> Name column --> org.apache.openjpa
    6. +
    7. Right click on the closed staging repo (org.apache.openjpa-XXX) and select Drop.
    8. +
    +
  8. +
  9. +

    Remove the staged site

    +
    $ ssh ${user.name}@people.apache.org 
    +$ cd ~/public_html/openjpa
    +$ rm -fr ${project.version}
    +
    + + +
  10. +
  11. +

    Make the required updates that caused the vote to be canceled

    +
  12. +
  13. Spin another release candidate!
  14. +
+

+

Verifying release signatures

+

On unix platforms the following command can be executed -

+
for file in `find . -type f -iname '*.asc'`
+do
+    gpg --verify ${file} 
+done
+
+ + +

You'll need to look at the output to ensure it contains only good +signatures -

+
gpg: Good signature from ...
+gpg: Signature made ...
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10183-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:14:39 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 91B62E0BE for ; Sun, 9 Dec 2012 13:14:39 +0000 (UTC) Received: (qmail 83581 invoked by uid 500); 9 Dec 2012 13:14:39 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 83538 invoked by uid 500); 9 Dec 2012 13:14:39 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 83531 invoked by uid 99); 9 Dec 2012 13:14:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 57A932388B56 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [5/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.57A932388B56@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/bean-validation-primer.html ============================================================================== --- websites/staging/openjpa/trunk/content/bean-validation-primer.html (added) +++ websites/staging/openjpa/trunk/content/bean-validation-primer.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

OpenJPA Bean Validation Primer

+

A new feature defined by the JPA 2.0 specification is the ability to +seamlessly integrate with a JSR-303 + bean validation provider. With minimal effort, OpenJPA 2.0 + can be coupled with a JSR-303 + validation provider to provide runtime data validation. By combining +these two technologies, you get a standardized persistence solution with +the added ability to perform standardized java bean validation.

+

+

What is Bean Validation?

+

Most applications, especially those that gather input from a user, contain +a significant amount of code to perform data validation. It is typically +custom code, fragmented and littered throughout the application. Worse, +there may be duplicate validation code at the presentation (Web) , business +(EJB), and persistence layers. The task of keeping duplicate code in synch +can be especially problematic. A slight modification in the code at one +layer can lead to an unforseen breakage in another.

+

The Bean Validation API was designed to provide a standardized method for +validating data within Java beans. As an added feature, it seemlessly +integrates with several JEE6 technologies including JPA 2.0 +, JCA 1.6 +, and JSF 2.0 +. Additionally, JEE6 complaint servers are required to support bean +validation and must include a validation provider. While a JEE6 +environment provides some simplified packaging and configuration benefits, +bean validation works equally well in a JSE environment. For simplicity, +this primer will use a JSE environment, but the example code could be used +within a JEE6 environment with very few modifications.

+

While the JSR-303 specification + is very feature rich and extensible, there are three core concepts that +will be of most interest to the majority of users: constraints, constraint +violation handling, and the validator itself. If you are running in an +integrated environment like JPA, you will rarely have to concern yourself +with the validator; simplifying things even further.

+

+

Validation Constraints

+

Constraints are a fundamental component of bean validation. Constraints +can be placed on Java beans and/or fields and properties (collectively +labeled attributes in JPA terminology) to constrain the data within the +bean. A constraint can either be defined using annotations or XML. The +bean validation specification defines a small set of constraints that must +be included with every validation provider. This small set covers most +types of simple validation in addition to a powerful regular expression +based validator. If the built-in constraints don't fit the bill, you can +very easily build your own custom validators and matching constraints. +Let's start by looking at some simple constraints and then move to creating +some custom constraints.

+

+

Constraining an Entity

+

For the purposes of an example, let's start building the JPA domain model +for a digital image storage system. For the sake of simplicity, we'll start +with a simple entity "Image". An Image + has an ID, image type, file name, and image data. Our system has a +requirement that the image type must be specified and the image file name +must include a valid JPEG or GIF extension. The code below shows the +annotated Image entity with some built-in bean validation constraints +applied.

+
package org.apache.openjpa.example.gallery.model;
+
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+@Entity
+public class Image {
+
+    private long id;
+    private ImageType type;
+    private String fileName;
+    private byte[] data;
+
+    @Id
+    @GeneratedValue
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    @NotNull(message="Image type must be specified.")
+    @Enumerated(EnumType.STRING)
+    public ImageType getType() {
+        return type;
+    }
+
+    public void setType(ImageType type) {
+        this.type = type;
+    }
+
+    @Pattern(regexp = ".*\\.jpg|.*\\.jpeg|.*\\.gif",
+             message="Only images of type JPEG or GIF are supported.")
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    public byte[] getData() {
+        return data;
+    }
+
+    public void setData(byte[] data) {
+        this.data = data;
+    }
+}
+
+ + +

The Image + class uses two built in constraints @NotNull and @Pattern. The @NotNull +constraint ensures that an ImageType + is specified and @Pattern constraint uses regular expression pattern +matching to ensure the image file name is suffixed with a supported image +format. Each constraint has corresponding validation logic that gets +executed at runtime when the Image entity is validated. If either +constraint is not met, the JPA provider will throw a +ConstraintViolationException with the defined message. The JSR-303 specification + also makes provisions for the use of a variable within the message +attribute. The variable references a keyed message in a resource bundle. +That allows for environment specific messages and localization of messages. + See the JSR-303 specification +, section 4.1.3 for additional details regarding the customization and +localization of messages.

+

+

Custom Constraints and Validators

+

If the built-in constraints do not meet your needs, you can create your own +custom validators and constraints. In our previous example, the Image +entity used the @Pattern constraint to validate the file name of the image. + However, it did no constraint checking on the actual image data itself. A +pattern-based constraint could potentially be used, but this is rather +inflexible and will get messy. A custom constraint and validator provides +a more robust and flexible solution. First, let's create a custom method +level constraint annotation named ImageContent.

+
package org.apache.openjpa.example.gallery.constraint;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+import org.apache.openjpa.example.gallery.model.ImageType;
+
+@Documented
+@Constraint(validatedBy = ImageContentValidator.class)
+@Target({ METHOD, FIELD })
+@Retention(RUNTIME)
+public @interface ImageContent {
+    String message() default "Image data is not a supported format.";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+    ImageType[] value() default { ImageType.GIF, ImageType.JPEG };
+}
+
+ + +

Now, let's create the validator class, ImageContentValidator +. The logic within this validator gets executed by validation provider +when the constraint is validated. Notice, the validator class is bound to +the constraint annotation via the validatedBy attribute on the @Constraint +annotation.

+
package org.apache.openjpa.example.gallery.constraint;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+import org.apache.openjpa.example.gallery.model.ImageType;
+
+/**
+ * Simple check that file format is of a supported type
+ */
+public class ImageContentValidator implements ConstraintValidator<ImageContent, byte[] {
+    private List<ImageType> allowedTypes = null;
+    /**
+     * Configure the constraint validator based on the image
+     * types it should support.
+     * @param constraint the constraint definition
+     */
+    public void initialize(ImageContent constraint) {
+        allowedTypes = Arrays.asList(constraint.value());
+    }
+
+    /**
+     * Validate a specified value.
+     */
+    public boolean isValid(byte[] value, ConstraintValidatorContext context) {
+        if (value == null) {
+            return false;
+        }
+        // Verify the GIF header is either GIF87 or GIF89
+        if (allowedTypes.contains(ImageType.GIF)) {
+            String gifHeader = new String(value, 0, 6);
+            if (value.length >= 6 &&
+            (gifHeader.equalsIgnoreCase("GIF87a") ||
+             gifHeader.equalsIgnoreCase("GIF89a"))) {
+            return true;
+            }
+        }
+        // Verify the JPEG begins with SOI & ends with EOI
+        if (allowedTypes.contains(ImageType.JPEG)) {
+            if (value.length >= 4 &&
+                value[0] == 0xff && value[1] == 0xd8 &&
+                value[value.length - 2] == 0xff &&
+                value[value.length -1] == 0xd9) {
+                return true;
+            }
+        }
+        // Unknown file format
+        return false;
+    }
+}
+
+ + +

Finally, let's apply the new constraint to the getData() method on our +Image class.

+
    @ImageContent
+    public byte[] getData() {
+        return data;
+    }
+
+ + +

When validation of the "data" attribute occurs, the isValid() method in our ImageContentValidator + will fire. This method contains logic for performing simple validation of + the format of the binary image data. A potentially overlooked feature in +the ImageContentValidator + is that it can also validate for a specific image type. By definition, it +accepts for JPEG or GIF formats, but it can also validate for a specific +format. For example, by changing the annotation to:

+
    @ImageContent(ImageType.JPEG)
+    public byte[] getData() {
+        return data;
+    }
+
+ + +

instructs the validator to only permit image data with valid JPEG content.

+

+

Type-level Constraints

+

The examples thus far have shown the use of validation constraints on +individual attributes. That is sufficient in many cases, but validation +logic often needs to consider combinations of attributes when validating an +entity. For example, the constraints applied to the Image entity validate +that an image type is set (not null), the extension on the image file name +are of a supported type, and the data format is correct for the indicated +type. But, for example, it will not collectively validate that a file named +"img0.gif" is of type GIF and the format of the data is for a valid GIF +image. There are several options to provide collective validation. One +option is to create subclasses of Image, JPEGImage and GIFImage, with +constraints geared for each of these types. Another, less invasive and +simpler option is a type-level constraint. Let's modify our Image class to +use a custom type-level constraint. Here is the updated Image entity with +the new type-level constraint.

+
package org.apache.openjpa.example.gallery.model;
+
+import javax.persistence.Embedded;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+import org.apache.openjpa.example.gallery.constraint.ImageConstraint;
+import org.apache.openjpa.example.gallery.constraint.SequencedImageGroup;
+
+@Entity
+@ImageConstraint(groups=ImageGroup.class)
+public class Image {
+
+    private long id;
+    private ImageType type;
+    private String fileName;
+    private byte[] data;
+
+    @Id
+    @GeneratedValue
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    @NotNull(message="Image type must be specified.")
+    @Enumerated(EnumType.STRING)
+    public ImageType getType() {
+        return type;
+    }
+
+    public void setType(ImageType type) {
+        this.type = type;
+    }
+
+    @NotNull(message="Image file name must not be null.")
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    @NotNull(message="Image data must not be null.")
+    public byte[] getData() {
+        return data;
+    }
+
+    public void setData(byte[] data) {
+        this.data = data;
+    }
+}
+
+ + +

Notice that the @Pattern and @ImageContent were replaced by @NotNull +constraints. The new class level constraint will perform the duties +previously performed by @Pattern and @ImageContent. The @NotNull +constraints have been added as a first level check. If these constraints +succeed, the type level validator @ImageConstraint will fire, providing +complex validation. Sequenced validation is provided using validation +groups and group sequences. These concepts will be explained shortly.

+

Here is the code for the new ImageConstraint + annotation:

+
package org.apache.openjpa.example.gallery.constraint;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+import org.apache.openjpa.example.gallery.model.ImageType;
+
+@Documented
+@Constraint(validatedBy = ImageValidator.class)
+@Target({ TYPE })
+@Retention(RUNTIME)
+public @interface ImageConstraint {
+    String message() default "Image data is not a supported format.";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+    ImageType[] value() default { ImageType.GIF, ImageType.JPEG };
+}
+
+ + +

Unlike the ImageContent + constraint, ImageConstraint + is targeted for a TYPE. This allows this annotation to be applied at a +type level (class or interface). This constraint has a new validator +class, ImageValidator +.

+
package org.apache.openjpa.example.gallery.constraint;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+import org.apache.openjpa.example.gallery.model.Image;
+import org.apache.openjpa.example.gallery.model.ImageType;
+
+/**
+ * Simple check that an Image is consistent in type, name, and format.
+ */
+public class ImageValidator implements ConstraintValidator<ImageConstraint,Image> {
+    private List<ImageType> allowedTypes = null;
+    /**
+     * Configure the constraint validator based on the image
+     * types it should support.
+     * @param constraint the constraint definition
+     */
+    public void initialize(ImageConstraint constraint) {
+        allowedTypes = Arrays.asList(constraint.value());
+    }
+
+    /**
+     * Validate a specified value.
+     */
+    public boolean isValid(Image value, ConstraintValidatorContext context) {
+        if (value == null) {
+            return true;
+        }
+
+        // All these fields will be pre-validated with @NotNull constraints
+        // so they are safe to use without null checks.
+        byte[] data = value.getData();
+        String fileName = value.getFileName();
+        ImageType type = value.getType();
+
+        // Verify the GIF type is correct, has the correct extension and
+        // the data header is either GIF87 or GIF89
+        if (allowedTypes.contains(ImageType.GIF) &&
+            type == ImageType.GIF &&
+            fileName.endsWith(".gif")) {
+            if (data != null && data.length >= 6) {
+                String gifHeader = new String(data, 0, 6);
+                if (gifHeader.equalsIgnoreCase("GIF87a") ||
+                     gifHeader.equalsIgnoreCase("GIF89a")) {
+                    return true;
+                }
+            }
+        }
+        // Verify the JPEG type is correct, has the correct extension and
+        // the data begins with SOI & ends with EOI markers
+        if (allowedTypes.contains(ImageType.JPEG) &&
+            value.getType() == ImageType.JPEG &&
+            (fileName.endsWith(".jpg") ||
+             fileName.endsWith(".jpeg"))) {
+            if (data.length >= 4 &&
+                data[0] == 0xff && data[1] == 0xd8 &&
+                data[data.length - 2] == 0xff &&
+                data[data.length - 1] == 0xd9) {
+                return true;
+            }
+        }
+        // Unknown file format
+        return false;
+    }
+}
+
+ + +

One thing that must be considered in a JPA environment is the load state of +the attributes of an entity when doing type-level validation. Simply +accessing attributes can have some side effects. If the attribute is +marked LAZY fetch it may get loaded in order to perform validation. If the +attribute is not loaded and cannot be loaded (for several reasons, most +likely due to detachment) you'll be validating inconsistent data. The JPA +2.0 specification provides a utility interface to help in these situations. + It can be obtained statically so squirreling away a copy of the JPA entity +manager is not necessary. Here is an example of how PersistenceUtil could +be used in the ImageValidator.

+
    byte[] data = value.getData();
+    PersistenceUtil putil = Persistence.getPersistenceUtil();
+    if (!putil.isLoaded(value, "data")) {
+        // don't validate the data
+    }
+
+ + +

+

The Complete Domain Model

+

Now that some of the basics of bean validation are covered, let's finish up +the domain model for our simple application and then get into JPA specifics +through an example.

+

ig_domain_model.gif

+

The persistent types Album +, Creator +, and Location + are new to the domain model. An Album entity contains a reference to +collection of its Image entities. The Creator entity contains a reference +to the Album album entities the image Creator contributed to and a +reference to the Image entities they've created. This provides full +navigational capabilities to and from each of the entities in the domain. +An embeddable, Location, has been added to Image to allow location +information to be stored along with the Image.

+

The Album and Creator entities have a few built-in constraints and are +pretty run of the mill. The embeddable Location + is a bit more interesting in that it demonstrates the use of the @Valid +annotation to validate embedded objects. In order to embed location into +an image a new field and corresponding persistent properties were added to +the Image class:

+
    private Location location;
+
+    @Valid
+    @Embedded
+    public Location getLocation() {
+        return location;
+    }
+
+    public void setLocation(Location location) {
+        this.location = location;
+    }
+
+ + +

Notice the use of the @Valid annotation. This provides chained validation +of embeddables within a JPA environment. Thus, when Image is validated, +any constraints on the Location it references are also validated. If +@Valid was not specified, Location would not get validated. In a JPA +environment, chained validation via @Valid is only available for +embeddables. Referenced entities and collections of entities are validated +separately in order to prevent circular validation.

+

+

Validation Groups

+

Bean validation uses validation groups to determine what and when +validation occurs. There are no special interfaces to implement or +annotations to apply in order to create a validation group. A validation +group is denoted simply by a class definition. However, it is strongly +recommended that simple interfaces are used. This is a best practice since +it makes validation groups more usable in multiple environments. Whereas, +if a class or entity definition were used as a validation group, it may +pollute the object model of another application by bringing in domain +classes and logic that do not make sense for the application. By default, +if a validation group or multiple groups is not specified on an individual +constraint, it will be validated using the +javax.validation.groups.Default group. Creating a custom group is as +simple as creating a new interface definition.

+
package org.apache.openjpa.example.gallery.constraint;
+
+public interface ImageGroup {
+
+}
+
+ + +

This new ImageGroup + validation group can now be applied to a constraint.

+
@ImageContent(groups={Default.class,ImageGroup.class})
+public byte[] getData() {
+    return data;
+}
+
+ + +

This @ImageContent constraint in this example will validate when either or +both the Default and/or ImageGroup + group is/are validated.

+

By default there is no order applied or short circuiting behavior when +validation occurs. Validation ordering and short circuiting is an +extremely useful function that can be achieved by defining a group +sequence. A group sequence is defined via the @GroupSequence annotation +with an ordered array of validation groups. When the group sequence is +validated, the constraints supplied in its grouping are validated in the +order they are specified. In addition, if a constraint within a group +fails, the groups that follow will not be validated. This allows +lightweight validation such as @NotNull or @Size constraints to validate +before heavyweight constraints. The Image class uses a group sequence to +validate its lightweight @NotNull constraints (which use the Default +validation group) before validating its heavyweight constraint +@ImageValidator (which validates when the ImageGroup) is validated. +Sequenced validation can be accomplished by defining a new validation +group.

+
package org.apache.openjpa.example.gallery.constraint;
+
+import javax.validation.GroupSequence;
+import javax.validation.groups.Default;
+
+@GroupSequence({Default.class, ImageGroup.class})
+public interface SequencedImageGroup {
+
+}
+
+ + +

This group is then specified during validation. How to specify which +groups will be validated in a JPA environment is explained in the sections +to follow.

+

+

JPA Integration

+

The JPA 2.0 specification makes integration with JSR-303 very simple. In a +JSE environment all you need to do is provide the JSR-303 API and a JSR-303 +bean validation provider on your runtime classpath and bean validation is +enabled by default. OpenJPA adds one additional caveat. With OpenJPA you +must also be using a version 2.0 persistence.xml file. A version 1.0 +persistence.xml provides no means to configure bean validation. Requiring +a version 2.0 persistence.xml prevents a pure JPA 1.0 application from +incurring the validation startup and runtime costs. This is important +given that there is no standard means for a 1.0-based application to +disable validation. Besides adding the necessary bean validation jars to +your classpath, enabling validation in an existing 1.0 application may be +as simple as modifying the root element of your persistence.xml to:

+
<?xml version="1.0" encoding="UTF-8"?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
+    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+    version="2.0" >
+...
+</persistence>
+
+ + + +
+ **NOTE**
+While the JPA 2.0 specification is backward compatible +with JPA 1.0, there are some OpenJPA specific extensions that are not. By +switching to a 2.0 persistence.xml, in some cases you may need to specify +compatibility flags in order to get OpenJPA 1.0 behavior. See the [migration considerations](http://openjpa.apache.org/builds/latest/docs/manual/migration_considerations.html) +section of the [OpenJPA 2.x manual](http://openjpa.apache.org/builds/latest/docs/manual/main.html) +for additional information. +
+ +

+

Validation Modes

+

Bean validation provides three modes of operation within the JPA +environment: auto, callback, and none. As you may have guessed, +none disables bean validation for a particular persistence unit. The +auto mode, which is the default, enables bean validation if a validation +provider is available within the classpath. When callback mode is +specified, a bean validation provider must be available for use by the JPA +provider. If not, the JPA provider will throw an exception upon +instantiation of a new JPA entity manager factory. While auto mode +simplifies deployment, it can lead to problems if validation is +unexpectedly not taking place due to a configuration problem. It is a good +practice to use either none or callback mode explicitly in order to get +consistent behavior. In addition, if none is specified, OpenJPA will do +optimization at startup and will not attempt to perform unexpected +validation. Explicitly disabling validation is especially important in a +JEE6 environment where the container is mandated to provide a validation +provider. Thus, unless specified, a JPA 2.0 app running in a container +will have validation enabled. This will add additional processing during +lifecycle events. We'll get to lifecycle events shortly.

+

There are two means to configure validation modes in JPA 2.0. Perhaps the +simplest is to add a validation-mode element to your persistence.xml with +the desired validation mode.

+
    <persistence-unit name="auto-validation">
+        ...
+        <!-- Validation modes: AUTO, CALLBACK, NONE -->
+        <validation-mode>AUTO</validation-mode>
+        ...
+    </persistence-unit>
+
+ + +

In addition, the validation mode can be configured programmatically by +specifying the javax.persistence.validation.mode property with value +auto, callback, or none when creating a new JPA entity manager +factory.

+
    Map<String, String> props = new HashMap<String,String>();
+    props.put("javax.persistence.validation.mode", "callback");
+    EntityManagerFactory emf = 
+        Persistence.createEntityManagerFactory("validation", props);
+
+ + +

+

Validation in JPA

+

We've covered the basics of constraints and validation configuration, now +on to actually doing some validation within JPA. Bean validation within +JPA occurs during JPA's lifecycle event processing. If enabled, validation +will occur at the final stage of the PrePersist, PreUpdate, and PreRemove +lifecycle events. Validation will occur only after all user defined +lifecycle events, since some of those events may modify the entity that is +being validated. By default, JPA enables validation for the Default +validation group for PrePersist and PreUpdate lifecycle events. If you +need to validate other Validation groups or enable validation for the +PreRemove event you can specify the validation groups to validate for each +lifecycle event in the persistence.xml +.

+
   <persistence-unit name="non-default-validation-groups">
+    <class>my.Entity</class>
+    <validation-mode>CALLBACK</validation-mode>
+    <properties>
+        <property name="javax.persistence.validation.group.pre-persist"
+            value="org.apache.openjpa.example.gallery.constraint.SequencedImageGroup"/>
+        <property name="javax.persistence.validation.group.pre-update"
+            value="org.apache.openjpa.example.gallery.constraint.SequencedImageGroup"/>
+        <property name="javax.persistence.validation.group.pre-remove"
+            value="javax.validation.groups.Default"/>
+    </properties>
+</persistence-unit>
+
+ + +

Now that we've gone through validation basics and JPA configuration +options, the validation part is a piece of cake. In general, you simply +need to handle validation exceptions that may result from various JPA +operations. Here are some simple examples for the persist, update, and +remove operations. We'll get to more in-depth exception handling in a +moment.

+
    EntityManagerFactory emf = 
+        Persistence.createEntityManagerFactory("BeanValidation");
+    EntityManager em = emf.createEntityManager();
+
+    Location loc = new Location();
+    loc.setCity("Rochester");
+    loc.setState("MN");
+    loc.setZipCode("55901");
+    loc.setCountry("USA");
+
+    // Create an Image with non-matching type and file extension
+    Image img = new Image();
+    img.setType(ImageType.JPEG);
+    img.setFileName("Winter_01.gif");
+    loadImage(img);
+    img.setLocation(loc);
+
+    // *** PERSIST ***
+    try {
+        em.getTransaction().begin();
+        // Persist the entity with non-matching extension and type
+        em.persist(img);
+    } catch (ConstraintViolationException cve) {
+        // Transaction was marked for rollback, roll it back and
+        // start a new one
+        em.getTransaction().rollback();
+        em.getTransaction().begin();
+        // Fix the file type and re-try the persist.
+        img.setType(ImageType.GIF);
+        em.persist(img);
+        em.getTransaction().commit();
+    }
+
+    // *** UPDATE ***
+    try {
+        em.getTransaction().begin();
+        // Modify the file name to a non-matching file name 
+        // and commit to trigger an update
+        img.setFileName("Winter_01.jpg");
+        em.getTransaction().commit();
+    }  catch (ConstraintViolationException cve) {
+        // Handle the exception.  The commit failed so the transaction
+        // was already rolled back.
+        handleConstraintViolation(cve);
+    }
+    // The update failure caused img to be detached. It must be merged back 
+    // into the persistence context.
+    img = em.merge(img);
+
+    // *** REMOVE ***
+    em.getTransaction().begin();
+    try {
+        // Remove the type and commit to trigger removal

[... 237 lines stripped ...]


From commits-return-10184-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org  Sun Dec  9 13:14:52 2012
Return-Path: 
X-Original-To: apmail-openjpa-commits-archive@www.apache.org
Delivered-To: apmail-openjpa-commits-archive@www.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 048F8E0C0
	for ; Sun,  9 Dec 2012 13:14:52 +0000 (UTC)
Received: (qmail 84021 invoked by uid 500); 9 Dec 2012 13:14:51 -0000
Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org
Received: (qmail 83995 invoked by uid 500); 9 Dec 2012 13:14:51 -0000
Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm
Precedence: bulk
List-Help: 
List-Unsubscribe: 
List-Post: 
List-Id: 
Reply-To: dev@openjpa.apache.org
Delivered-To: mailing list commits@openjpa.apache.org
Received: (qmail 83967 invoked by uid 99); 9 Dec 2012 13:14:51 -0000
Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:51 +0000
X-ASF-Spam-Status: No, hits=-2000.0 required=5.0
	tests=ALL_TRUSTED
X-Spam-Check-By: apache.org
Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:44 +0000
Received: from eris.apache.org (localhost [127.0.0.1])
	by eris.apache.org (Postfix) with ESMTP id 5FC792388BCD
	for ; Sun,  9 Dec 2012 13:13:58 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: svn commit: r841236 [7/35] - in /websites/staging/openjpa/trunk/content: ./
 artifacts/ css/ images/ images/datacache-plugin/
Date: Sun, 09 Dec 2012 13:13:50 -0000
To: commits@openjpa.apache.org
From: buildbot@apache.org
X-Mailer: svnmailer-1.0.8-patched
Message-Id: <20121209131358.5FC792388BCD@eris.apache.org>
X-Virus-Checked: Checked by ClamAV on apache.org

Added: websites/staging/openjpa/trunk/content/build-and-runtime-dependencies.html
==============================================================================
--- websites/staging/openjpa/trunk/content/build-and-runtime-dependencies.html (added)
+++ websites/staging/openjpa/trunk/content/build-and-runtime-dependencies.html Sun Dec  9 13:13:35 2012
@@ -0,0 +1,358 @@
+
+
+
+    
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+
+        
+            Apache OpenJPA --
+        
+    
+    
+        
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Java versions

+
    +
  • OpenJPA trunk (i.e. OpenJPA 2.2.0 currently) and 2.1.x branch require JDK 1.6.
  • +
  • OpenJPA 2.0.x branch requires JDK 1.6 or 1.5. Note that some functionality that requires JDK 1.6 will not be available if you choose to build with JDK 1.5.
  • +
  • Building javadoc from 2.0.x branch or newer requires JDK 1.6.
  • +
  • OpenJPA 1.3.x, 1.2.x and 1.1.x branches require JDK 1.5.
  • +
  • OpenJPA 1.0.x branch requires JDK 1.5 or 1.4.
  • +
+

+

Maven versions

+
    +
  • Trunk, 2.1.x and 2.0.x branches require Maven 2.2.1.
  • +
  • 1.3.x, 1.2.x, 1.1.x and 1.0.x branches require Maven 2.0.9.
  • +
+

+

Runtime Dependencies

+

The binary release download of OpenJPA +apache-openjpa--binary.zip includes all of the code needed to +run in a stand-alone Java SE JVM or within a Java EE application server.

+

+

OpenJPA 1.0.x - 1.2.x Releases

+

The binary download includes the following required OpenJPA core artifact:

+
    +
  • openjpa-.jar
  • +
+

and the following required runtime dependencies under the lib/ directory:

+
    +
  • commons-collections-3.2.jar
  • +
  • commons-lang-2.1.jar
  • +
  • commons-pool-1.3.jar
  • +
  • serp-1.13.1.jar
  • +
+

The following artifacts under lib/ are only required for Java SE +environments, as a Java EE application server should provide an +implementation:

+
    +
  • geronimo-jpa_3.0_spec-1.0.jar
  • +
  • geronimo-jta_1.1_spec-1.1.jar
  • +
+

The following artifact under lib/ is optional, as you should include the +JDBC driver artifacts required by your database provider and supported + by OpenJPA:

+
    +
  • derby-10.2.2.0.jar
  • +
+

+

OpenJPA 1.3.0 SNAPSHOT Branch

+

The binary download includes the following required OpenJPA core artifact:

+
    +
  • openjpa-.jar
  • +
+

and the following required runtime dependencies under the lib/ directory:

+
    +
  • commons-collections-3.2.1.jar
  • +
  • commons-lang-2.1.jar
  • +
  • commons-pool-1.5.3.jar
  • +
  • serp-1.13.1.jar
  • +
+

The following artifacts under lib/ are only required for Java SE +environments, as a Java EE application server should provide an +implementation:

+
    +
  • geronimo-jms_1.1_spec-1.1.1.jar
  • +
  • geronimo-jpa_1.0_spec-1.1.2.jar
  • +
  • geronimo-jta_1.1_spec-1.1.1.jar
  • +
+

The following artifact under lib/ is optional, as you should include the +JDBC driver artifacts required by your database provider and supported + by OpenJPA:

+
    +
  • derby-10.2.2.0.jar
  • +
+

The binary download also contains an artifact which includes the OpenJPA +core code plus all of the runtime dependencies for Java SE environments:

+
    +
  • openjpa-all-.jar
  • +
+

which in turn includes classes from the following packages:

+
    +
  • commons-collections-3.2.1.jar
  • +
  • commons-lang-2.1.jar
  • +
  • commons-logging-1.0.4.jar
  • +
  • commons-pool-1.5.3.jar
  • +
  • geronimo-jms_1.1_spec-1.1.1.jar
  • +
  • geronimo-jpa_1.0_spec-1.1.2.jar
  • +
  • geronimo-jta_1.1_spec-1.1.1.jar
  • +
  • serp-1.13.1.jar
  • +
+

+

OpenJPA 2.0.x Releases

+

The binary download includes the following required OpenJPA core artifact:

+
    +
  • openjpa-.jar
  • +
+

and the following required runtime dependencies under the lib/ directory:

+
    +
  • commons-collections-3.2.1.jar
  • +
  • commons-lang-2.1.jar
  • +
  • commons-pool-1.5.3.jar
  • +
  • serp-1.13.1.jar
  • +
+

The following artifacts under lib/ are only required for Java SE +environments, as a Java EE application server should provide an +implementation:

+
    +
  • geronimo-jms_1.1_spec-1.1.1.jar
  • +
  • geronimo-jpa_2.0_spec-1.0.jar
  • +
  • geronimo-jta_1.1_spec-1.1.1.jar
  • +
+

The following artifact under lib/ is optional, as you should include the +JDBC driver artifacts required by your database provider and supported + by OpenJPA:

+
    +
  • derby-10.5.3.0_1.jar
  • +
+

The binary download also contains an artifact which includes the OpenJPA +core code plus all of the runtime dependencies for Java SE environments:

+
    +
  • openjpa-all-.jar
  • +
+

which in turn includes classes from the following packages:

+
    +
  • commons-collections-3.2.1.jar
  • +
  • commons-lang-2.1.jar
  • +
  • commons-logging-1.0.4.jar
  • +
  • commons-pool-1.5.3.jar
  • +
  • geronimo-jms_1.1_spec-1.1.1.jar
  • +
  • geronimo-jpa_2.0_spec-1.0.jar
  • +
  • geronimo-jta_1.1_spec-1.1.1.jar
  • +
  • serp-1.13.1.jar
  • +
+

+

OpenJPA 2.1.x Releases and OpenJPA 2.2.0 SNAPSHOT Branch

+

The binary download includes the following required OpenJPA core artifact:

+
    +
  • openjpa-.jar
  • +
+

and the following required runtime dependencies under the lib/ directory:

+
    +
  • commons-collections-3.2.1.jar
  • +
  • commons-lang-2.4.jar
  • +
  • commons-pool-1.5.4.jar
  • +
  • serp-1.13.1.jar
  • +
+

The following artifacts under lib/ are only required for Java SE +environments, as a Java EE application server should provide an +implementation:

+
    +
  • geronimo-jms_1.1_spec-1.1.1.jar
  • +
  • geronimo-jpa_2.0_spec-1.1.jar
  • +
  • geronimo-jta_1.1_spec-1.1.1.jar
  • +
+

The following artifact under lib/ is optional, as you should include the +JDBC driver artifacts required by your database provider and supported + by OpenJPA:

+
    +
  • derby-10.5.3.0_1.jar
  • +
+

The following artifacts under lib/ are optional and can be used for bean +validation:

+
    +
  • commons-beanutils-1.8.3.jar
  • +
  • org.apache.bval.bundle-0.2-incubating.jar
  • +
+

The binary download also contains an artifact which includes the OpenJPA +core code plus all of the runtime dependencies for Java SE environments:

+
    +
  • openjpa-all-.jar
  • +
+

which in turn includes classes from the following packages:

+
    +
  • commons-beanutils-1.8.3.jar
  • +
  • commons-collections-3.2.1.jar
  • +
  • commons-lang-2.4.jar
  • +
  • commons-logging-1.0.4.jar
  • +
  • commons-pool-1.5.4.jar
  • +
  • geronimo-jms_1.1_spec-1.1.1.jar
  • +
  • geronimo-jpa_2.0_spec-1.1.jar
  • +
  • geronimo-jta_1.1_spec-1.1.1.jar
  • +
  • org.apache.bval.bundle-0.2-incubating.jar
  • +
  • serp-1.13.1.jar
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/building-and-running-openbooks.html ============================================================================== --- websites/staging/openjpa/trunk/content/building-and-running-openbooks.html (added) +++ websites/staging/openjpa/trunk/content/building-and-running-openbooks.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Instructions to download and run OpenBooks Demo

+

OpenBooks comes with

+
    +
  • complete source code
  • +
  • build scripts to demonstrate how to build a typical OpenJPA application and package it for JSE or JEE environment
  • +
  • scripts to run OpenBooks in on your local database installation.
  • +
+

Follow the simple instructions below to build and run OpenBooks:

+

+

Download Instructions

+

OpenBooks can be checked out from OpenJPA repository.

+

$ svn co https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-examples/openbooks.

+

will check out the source code and build scripts of OpenBooks in current +directory.

+

OpenBooks requires following software environment to run:

+
    +
  • Java Runtime version 6.0 or higher
  • +
  • OpenJPA Libraries version 2.0 or higher
  • +
  • Ant version 1.6 or higher
  • +
  • Any JDBC complaint database supported by OpenJPA (embedded Derby is the default).
  • +
+

+

Configure build and run environment

+

OpenBooks builds with Ant. The Ant build script is somewhat involved +because OpenBooks can be built and packaged either as a JSE (Swing based) +application or a JEE Web Application. By default, OpenBooks is built as a +JSE application.

+

OpenBooks can be built in JSE and JEE mode -- and to keep things simple the +common build steps are available in main build script build.xml while +JSE and JEE specific packaging steps are described in separate +build.jse.xml and build.jee.xml, respectively. Furthermore, for +JEE, the deployment step is further refined for each application server. +See build.jee.was.xml and build.jee.liberty.xml for build and +installation steps for WebSphere Application Server and the Liberty Profile +for WAS, respectively.

+

Before you run a build, configure the build environment by editing +openjpa-examples/openbooks/build.properties. Essentially, you need to

+
    +
  • Point openjpa.lib variable to the local directory where OpenJPA class +library(ies) reside. Notice that the variable points to a directory and not +a *.jar file. All *.jar files found under the directory are +included in compilation classpath. OpenJPA version 2.0, however, is also +available with all its runtime dependencies (such as JPA specification API, +Apache Commons Collections and others) packaged together in a single +library (lib).
  • +
+

Note: Access to the OpenJPA class libraries is easier if you have a +Maven repository (.m2) available on your system.  In this case, all +that is required is to update the openjpa.version variable to point at +the proper OpenJPA SNAPSHOT version.

+
    +
  • Ideally, a JPA-compliant application should not require +provider-specific library during compilation. OpenBooks persistent domain +model and application logic also does not use any OpenJPA specific +features, but OpenJPA libraries are still used during compilation because +bytecode for persistent entities are enhanced as a post-compilation step. +This bytecode enhancement is not essential but an important step for using +OpenJPA.
  • +
+

The next step is to configure runtime configuration descriptors and +environment variables.

+
    +
  • +

    JSE

    +
      +
    • Edit persistence.xml located in openjpa-examples/openbooks/src/main/resources/META-INF directory. Modify the javax.persistence.jdbc.driver and javax.persistence.jdbc.url property to suit your local database and its driver.
    • +
    • Edit openjpa-examples/openbooks/run.properties to specify location +of OpenJPA class libraries and JDBC Driver used in runtime classpath. Here +again, the use of the openjpa.version variable with a Maven repository +makes the library and jdbc driver configuration easy.
    • +
    +
  • +
  • +

    JEE

    +
      +
    • You may already have a JTA data source configured and registered in +JNDI. Of course, then the appropriate configuration is to be edited +accordingly in the and +clauses. See persistence.jee.was.xml for WebSphere environment, or * persistence.jee.liberty.xml* for the Liberty Profile.
    • +
    • OpenJPA library and JDBC drivers are configured in JEE server and hence +variables in this file are irrelevant.
    • +
    • More information on the build and installation of the OpenBooks example +for application servers can be found in the WebSphere Application Server + and Liberty Profile + deployment sections.
    • +
    +
  • +
+

Both build.properties and run.properties files are commented +in-place on what is to be edited.

+

+

Build OpenBooks from source

+

Once you have configured the environment, simply issue (from the +openjpa-examples/openbooks directory):

+

$ ant

+

or

+

$ ant -Dbuild.mode=jee

+

The default target of the ant script will

+
    +
  • generate metamodel classes (required for Criteria API)
  • +
  • compile the source code
  • +
  • enhance the persistence domain model
  • +
  • package the application based on the build.mode as a Swing-based application or a Web Application Archive.
  • +
  • copy the deployable artifacts to target and target/openbooks directories relative to the current directory.
  • +
+

+

Deploy OpenBooks in an Application Server

+

Deployment techniques and configuration vary across JEE compliant +application servers. Hence, OpenBooks does not provide an uber-deployment +script for all application server. Instead, application server specific +steps are encoded in separate build scripts for each application server. +Using generic build as described in the previous section, the +target/openbooks.war web archive needs to be deployed manually.

+

+

WebSphere Application Server

+

For WebSphere Application Server, automated build scripts are available in +build.jee.was.xml. WebSphere deployment needs to be triggered by +ws_ant utility as follows

+

$ ws_ant -Dbuild.mode=jee -Dappserver=was -Dwas.home=<WAS_HOME>

+

where <WAS_HOME> denotes the root directory where WAS V7 with JPA 2.0 +feature pack has been installed (at a minimum). Yes, OpenBooks requires +features defined by the JPA 2.0 specification, thus the use of the WAS V7 +JPA 2.0 feature pack is a minimum requirement. Further information on this +feature pack is available here + or WebSphere in general.

+

The WebSphere specific build will configure appropriate JTA data sources +using a python script (found under openbooks/scripts/ directory before +deploying OpenBooks as a web application. The script assumes a single +server instance. If multiple profiles exist, the script will use the first +server profile.

+

+

Liberty Profile in WebSphere Application Server v8.5

+

For the Liberty Profile in WebSphere Application Server v8.5, automated +build scripts are available in build.jee.liberty.xml. Liberty Profile +deployment is very easy and needs to be triggered by ant as follows

+

$ ant -Dbuild.mode=jee -Dappserver=liberty -Dliberty.home=<WAS_HOME>/wlp -Dliberty.server=<server name>

+

where \<WAS_HOME> denotes the root directory where WAS v8.5 has been +installed, and is the name of your Liberty Profile server. +Instead of specifying these two variables, liberty.home and +liberty.server, you could modify the build variables in the +build.jee.liberty.xml file.
+

+

By specifying liberty.home and liberty.server, the ant script will +attempt to "deploy" the resulting openbooks.war application to the +designated Liberty server. Additional configuration of your Liberty server +may be required before OpenBooks will work. For example, you will need to +specify the jpa-2.0 and jdbc-4.0 features in your server.xml. You +will also need to define the JTA datasources used by the OpenBooks +application via your server.xml file. Examples of a derby configuration +can be found in the openbooks/scripts/liberty directory.

+

Additional information on the Liberty Profile can be found here +. General WebSphere information can be found here.

+

+

Run OpenBooks

+

If you have built OpenBooks for JSE, then go to the +openjpa-examples/openbooks/target/openbooks directory.

+

Invoke the Ant script to run OpenBooks

+

$ ant -f run.xml

+

If you have built OpenBooks for JEE, a Web Application Archive +openbooks.war will be created in openjpa-examples/openbooks/target +directory. You need to deploy openbooks.war to a JEE Application +Server. Once deployed, you can point a browser to Application Server URL

+

http:// < app server host >:/openbooks/

+

For example,

+

http://localhost:9080/openbooks/

+

to access OpenBooks as a web application.

+

+

Populate OpenBooks Database

+

OpenBooks checks for existing data at first connection to the database. If +the database is empty, the schema is defined and populated with initial +data. However, you can explicitly populate the database in JSE build.

+

Note: By default, the OpenBooks example uses and populates an Embedded +Derby instance on "first touch". So, no further configuration or loading +is required for the default configuration.

+

Edit load.properties to specify load parameters such as number of Books +etc. OpenBooks uses this data to populate a database with some sample data. +This example file has some typical values. If you are satisfied with it, +you can leave them as it is. Then invoke the Ant script

+

$ ant -f run.xml load

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10185-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:14:54 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6F5E4E0C2 for ; Sun, 9 Dec 2012 13:14:54 +0000 (UTC) Received: (qmail 84136 invoked by uid 500); 9 Dec 2012 13:14:54 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84110 invoked by uid 500); 9 Dec 2012 13:14:54 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84103 invoked by uid 99); 9 Dec 2012 13:14:54 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:54 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,URIBL_DBL_REDIR X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:44 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 5B08E2388BA4 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [6/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.5B08E2388BA4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/begin-using-openjpa---the-basics.html ============================================================================== --- websites/staging/openjpa/trunk/content/begin-using-openjpa---the-basics.html (added) +++ websites/staging/openjpa/trunk/content/begin-using-openjpa---the-basics.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,962 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Introduction

+

OpenJPA is an open source implementation of the Java JPA (Java Persistence +API) specification from Apache. JPA provides an agnostic Java-based API for +storing and retrieving information to a backend database. It has a +canonical query language named Java Persistence Query Language, or JPQL, +that blends with the programming methods of Java and eliminates the need to +tailor database queries for a particular database. However, JPA also +supports native SQL which can be used for quick ports with a known backend +database. This tutorial is designed to walk you through the steps of +setting up a simple web application to use OpenJPA +Geronimo and to transact the derby database that comes with Geronimo. The +tutorial code uses a simple Java Server Page (JSP), backed up by some basic +classes. It displays a table of inventory items and categories. In this +tutorial, we will not dive into details regarding the JSP code. Its purpose +is to be a window through which you can examine OpenJPA.  The intended +audience for this tutorial is those with some knowledge and understanding +of the Java programming language and who are just beginning with OpenJPA. +To start, you must download the following requirements and install them on +your computer. For the purposes of this tutorial, we are using Eclipse as +the IDE and Microsoft Windows as the operating system of choice. 

+

+

Prerequisites

+

Geronimo V2.2: You can get it here +. Download this file and unzip it to a permanent location. There is no +installer. The server will run from the command line.

+

Java (J2SE) V1.6: This tutorial was developed and tested with Java V1.6. +If you don't already have Java V1.6 you can get the IBM JDK here + or the Sun JDK here +.

+

Eclipse V3.2 or later: This version has annotation support included. +Annotations play a large role in OpenJPA.  Download +Eclipse 3.2 or later.

+

Apache OpenJPA library: For the purpose of implementing this tutorial you +can select +OpenJPA v1.2 or greater. You can download Apache OpenJPA + from the Apache site. Note that the Milestone (openjpa-all-2.0.0-M3.jar as +of this writing) is an early release of OpenJPA 2.0 and may have some +instabilities. No issues have been noted for the usage in this tutorial.

+

The tutorial code files: These files + are provided with this tutorial. You will add them to your Eclipse +project.

+

+

Setup and Running the Sample

+

Now, that you have all the prerequisites for this tutorial downloaded and +installed, the following sections will walk you through the Eclipse project +setup and the OpenJPA configuration. Make sure you read through and follow +each part carefully.  

+

+

Setting up Eclipse

+

After installing Eclipse, create a new project in a dedicated workspace for +the tutorial. Complete the following setup instructions: First, make sure +your Eclipse environment is updated and has the Geronimo plugin. If you do +not know how to do that, follow the instructions found at the Geronimo website +.

+
    +
  1. +

    Create a new Java project in Eclipse called, "OpenJPATutorial".

    +
      +
    • +

      From the menu, select: File->New->Enterprise Application Project. (If +Enterprise Application Project is not available as an option, select +Project and then choose Enterprise Application Project from the +list. Then click on the Next button). +When the New Project settings dialog appears, use the following settings:

      +

      +
    • +
    +
  2. +
  3. +

    Under the Target Runtime section, select Apache Geronimo v2.2.

    +
      +
    • If you do not already have Geronimo setup in Eclipse then you will have +to do so now. Click on the New... button.
    • +
    • +

      If Apache Geronimo v2.2 does not appear in the list under Apache, +click the Download additional server adapters link at the top right of +the dialog. If the adapter does not appear in that list then follow the directions from the Geronimo site.

      +

      +
    • +
    • +

      Select Apache->Apache Geronimo v2.2

      +
    • +
    • +

      Click Next.

      +

      +
    • +
    • +

      Set the JRE to jre6 if it is not already set.

      +
    • +
    • Browse for the install directory of Geronimo v2.2 on your system.
    • +
    • +

      Click Finish. You should see the following:

      +

      +
    • +
    +
  4. +
  5. +

    Now, click the Next button. You should see this:

    +

    +
      +
    • Check the Generate application.xml deployment descriptor option.
    • +
    • +

      Click the New Module... button:

      +

      +
    • +
    • +

      De-select Create default modules.

      +
    • +
    • Select the Web option.
    • +
    • +

      Click Next.

      +

      +
    • +
    • +

      Click Finish. You will see the following:

      +

      +
    • +
    • +

      Click Finish.

      +
    • +
    +
  6. +
  7. +

    Now, your Project Explorer should look like this (partially expanded):

    +

    +
      +
    • +

      If you double-click on the Deployment Descriptor: OpenJPATutorial, you +should see the application.xml open:

      +

      +
    • +
    +
  8. +
  9. +

    Now we will bring in the sample code. The easiest way to add the sample +code is to find the source provided with this tutorial and copy it to +the src folder under the OpenJPATutorialWeb folder in your project +directory in Windows Explorer:

    +

    +
      +
    • +

      Now go back to Eclipse. Right-click on the OpenJPATutorialWeb folder +in the Project Explorer view and select Refresh, or press the F5 key on +your keyboard. Now you will see this:

      +

      +

      Notice that all the source files compile without error. That is because +Geronimo comes with OpenJPA v1.1 built in.

      +
    • +
    +
  10. +
  11. +

    Now copy the index.jsp file from the tutorial into the Web Content directory under the Project directory in Windows Explorer:
    +

    +


    +

    +
      +
    • +

      Got to the Project Explorer and refresh the project. You should see this:
      +

      +

      +
    • +
    +
  12. +
+

+

Running and Configuring Geronimo and Derby

+

Geronimo has no installer and runs from the command line. Here are some +quick instructions to get you started.

+
    +
  1. In Windows, open a command prompt and navigate to the Geronimo bin +directory.
  2. +
  3. +

    Type the command:

    +
    start-server
    +
    + + +

    +

    Press the Enter key.

    +

    +
  4. +
  5. +

    Open a web browser and go to the address:

    +

    http://localhost:8080/console
    +

    +

    +

    The default password is manager.

    +
  6. +
  7. +

    You will come to the Welcome page. On the left menu, at the bottom, find +the section for the Embedded DB. This is the Derby database control +page.

    +


    +

    +
  8. +
  9. +

    Click on the link for the DB Manager

    +
  10. +
  11. You will see two sections: DB Viewer and Run SQL.
  12. +
  13. +

    In the Run SQL section, in the text field labeled Create DB, type in +StoreSystem. This is the name of the database that the OpenJPA sample is +configured to transact.

    +


    +

    +
  14. +
  15. +

    Click on the Create button. You should now see the +StoreSystem database appear in +the DB Viewer section.

    +


    +

    +
  16. +
  17. +

    We are now ready to deploy and run the sample code.

    +
  18. +
+

+

Running and Deploying the Sample Code in Geronimo

+

The sample code provided with this tutorial is working code. It is a simple +inventory database program that shows items and categories. But even this +simple example requires the ability to add, edit and delete entries. It +requires the ability to sort and filter database queries and it requires +the identification of the relationship of the items to the categories. In +this example, the relationship is one to many. Knowing that relationship +is important to how the code is written. Before we analyze the code and +OpenJPA, we will first deploy the sample and see it work. To deploy the +sample code follow these instructions:

+
    +
  1. +

    In Eclipse, in the Project Explorer, right click on the OpenJPATutorial +project and select: Export->EAR file.

    +


    +

    +
  2. +
  3. +

    In the Ear Export dialog, find a convenient place to put the +exported EAR file.

    +
  4. +
  5. +

    Check the Overwrite existing file check box.

    +


    +

    +
  6. +
  7. +

    Click Finish.

    +
  8. +
  9. +

    Go out to Windows Explorer and copy the file TutorialDeploymentPlan.xml +to the location of the exported ear. This is the deployment plan that +Geronimo requires to deploy the application.

    +


    +

    +
  10. +
  11. +

    Open the Geronimo console in a web browser and log in.

    +
  12. +
  13. In the Console Navigation menu on the left, under the Applications +section, click on the Deploy New item.
  14. +
  15. +

    Browse to the location of the exported EAR file and the deployment plan +XML file.

    +


    +

    +
  16. +
  17. +

    Click on the Install button. You should see this.

    +


    +

    +
  18. +
  19. +

    In the Console Navigation menu on the left, under the Applications +section, click on the Web App WARs item.

    +
      +
    • +

      Notice that the OpenJPATutorial application is now listed and that there +is a clickable link under the URL heading:

      +


      +

      +
    • +
    +
  20. +
  21. +

    Click on the link OpenJPATutorial and now you should see this:

    +


    +

    +

    Each of the buttons will execute OpenJPA code. The lists are filled by +running queries on the Derby database.

    +
      +
    • Add a some categories and items
    • +
    • Make sure you test each of the buttons and see the results.
    • +
    +
  22. +
+

+

Examining the Sample Code

+

Now that everything is set up and you have seen it work, let's look more +closely at the parts of the code that use OpenJPA. The JSP code is just a +prop to explore OpenJPA and we will not examine it.The sample application +source code is provided for this tutorial and you may run as-is with no +customizations. However, you have the option of reproducing the code +manually using the following explanations. Whichever method you choose, +locate the code that corresponds to explanations as you follow along.

+
    +
  • Java code: This tutorial comes with the following java source files:
      +
    • index.jsp: This is the interface code only. It does call into other +classes but it does not use any OpenJPA code directly.
    • +
    • InventoryEntityBroker.java: This class contains methods that +encapsulate the OpenJPA handling code. It is provided as a way to separate +OpenJPA functionality from the web interface.
    • +
    • InventoryItem.java: This is an OpenJPA Entity class file. This file is +an example of a simple OpenJPA Entity with a relationship.
    • +
    • InventoryCategory.java: This is an OpenJPA Entity class file. This file +is an example of a simple OpenJPA Entity with a relationship.
    • +
    +
  • +
  • +

    Persistence code: Each entity concept that would be a database table will +be its own class. In this case, the tables are called "InventoryItem" and +"InventoryCategory". Annotations in the Java file will associate the +properties with the database columns. The annotation, +@Column, maps the property name to the column name +for synchronization with the database. If the table corresponding tables do +not exist, OpenJPA can use these annotations to create the tables' schema +dynamically based on the property type and length.

    +

    InventoryCategory.java

    +
    package tutorial;
    +import java.util.List;
    +
    +import javax.persistence.CascadeType;
    +import javax.persistence.Column;
    +import javax.persistence.Entity;
    +import javax.persistence.GeneratedValue;
    +import javax.persistence.GenerationType;
    +import javax.persistence.Id;
    +import javax.persistence.OneToMany;
    +import javax.persistence.Version;
    +
    +@Entity
    +public class InventoryCategory
    +{
    +   private int version;
    +   private int id;
    +
    +   private String categoryName;
    +   private String categoryDescription;
    +
    +   List<InventoryItem> items;
    +
    +   public InventoryCategory(){}
    +
    +   @Column(name = "categoryName")
    +   public String getCategoryName()
    +   {
    +      return categoryName;
    +   }
    +
    +   public void setCategoryName(String name)
    +   {
    +      this.categoryName = name;
    +   }
    +
    +   @Column(name = "itemDescription")
    +   public String getCategoryDescription()
    +   {
    +      return categoryDescription;
    +   }
    +
    +   public void setCategoryDescription(String description)
    +   {
    +      this.categoryDescription = description;
    +   }
    +
    +   @Version
    +   @Column(name = "version_field")
    +   // not required
    +   public int getVersion()
    +   {
    +       return version;
    +   }
    +
    +   public void setVersion(int version)
    +   {
    +      this.version = version;
    +   }
    +
    +   @Id
    +   @GeneratedValue(strategy = GenerationType.AUTO)
    +   public int getId()
    +   {
    +      return id;
    +   }
    +
    +   public void setId(int id)
    +   {
    +      this.id = id;
    +   }
    +
    +   @OneToMany(targetEntity=tutorial.InventoryItem.class,
    +      cascade=CascadeType.ALL,
    +      mappedBy="category")
    +   public List<InventoryItem> getItems()
    +   {
    +      return items;
    +   }
    +
    +   public void setItems(List<InventoryItem> items)
    +   {
    +      this.items = items;
    +   }
    +
    +   public void addItem(InventoryItem item)
    +   {
    +      this.items.add(item);
    +   }
    +}
    +
    + + +
    + +

    +
    + Note

    +In this example, the property annotations ( +@Column, @Version, and +@Id) are placed on the getter methods. They can +alternatively be placed on the property declarations. For more information +on these annotations and to see what other annotations are in OpenJPA, see +the Apache OpenJPA 2.0 User's Guide: Chapter 5 +
      +
    • The annotated class and property declarations are all that are required. +
    • The @Id annotation is needed as the unique +identifier (primary key) for each record. +
    • The @Version annotation is common practice. It +ensures data integrity during merges and acts as an optimistic concurrency +control. +
    • Every property must have both a getter and a setter and the standard case +convention must be observed. +          Ã¯Â¿Â½  +
        +
      • Correct: public void setCategoryName(String name) +          Ã¯Â¿Â½  +
      • Incorrect: public void setcategoryname(String name) +
      +
    +

    +
  • +
  • +

    Persistence.xml: JPA requires the use of a XML file called the +"persistence.xml" that describes how to access the data. The XML file must +be created in the META-INF directory. The META-INF directory containing the +persistence.xml must be located with the source files.

    +


    +

    +

    In the following example, the file only requires a few fields.

    +

    META-INF/persistence.xml

    +
    <persistence xmlns=http://java.sun.com/xml/ns/persistence
    +    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
    +    version="1.0">
    +<persistence-unit name="InventorySystem" transaction-type="RESOURCE_LOCAL">
    +    <class>tutorial.InventoryItem</class>
    +    <class>tutorial.InventoryCategory</class>
    +    <properties>
    +        <property name="openjpa.jdbc.SynchronizeMappings" 
    +                 value="buildSchema"/>
    +        <property name="openjpa.ConnectionURL" 
    +                 value="jdbc:derby://localhost:1527/StoreSystem"/>
    +        <property name="openjpa.ConnectionDriverName" 
    +                 value="org.apache.derby.jdbc.ClientDriver"/>
    +    </properties>
    + </persistence-unit>
    +
    + + +

    +

    +
  • +
  • +

    The following elements are specific to this tutorial:

    +
      +
    • persistence-unit: the name is the table name to bind. In this case +it is 'person'.
    • +
    • class: the java class that is bound to the table 'person'.
    • +
    • property: openjpa.jdbc.SynchronizeMappings: This tells OpenJPA to +automatically create the table with the class definition if a table does +not already exist.
    • +
    • property: openjpa.ConnectionURL: The URL of the database connection.
    • +
    • property: openjpa.ConnectionDriverName: the class name of the JDBC +driver for Derby. This must be available via the classpath. In this +tutorial, the driver is built into Geronimo so no extra actions are needed.
    • +
    +
  • +
  • +

    A complete explanation of the persistence.xml is in the Apache OpenJPAV2.0 user's Guide: Chapter 6

    +
  • +
  • +

    Create the Entity Manager. In the provided code, the EntityManager is a +property of the InventoryEntityBroker class. The Entity Manager controls +the interaction with the database. You must use the Entity Manager to start +or access transactions or to send queries.

    +
      +
    • +

      The following code must be added before using any of the persistence +APIs (If you are using the provided sample code, this is already included):

      +
      EntityManagerFactory factory = Persistence.
      +    createEntityManagerFactory("InventorySystem", System.getProperties());
      +
      +EntityManager em = factory.createEntityManager();
      +
      + + +
    • +
    • +

      Note that the name, "InventorySystem", is the same +one identified in the persistence.xml.

      +
    • +
    • This code can be placed just before a query or transaction or they can +be class properties.
    • +
    • +

      Regardless of the scope, the EntityManager and the EntityManagerFactory +should be closed when they are no longer needed:

      +
        ...
      +  em.close();
      +  factory.close();
      +  ...
      +
      + + +
    • +
    • +

      The EntityManagerFactory and EntityManager full descriptions are in the +following OpenJPA documentation:

      + +
    • +
    +
  • +
  • +

    DB interface class. In this example, the InventoryEntityBroker class +contains all the OpenJPA database interaction code. This is not required +but it is a good idea for keeping the functionality componentized. For +example, if you want to pull all of the records from the InventoryItem +table, the code would look like this:

    +

    InventoryEntityBroker.java

    +
    ...
    +List<Person> getAllItems()
    +{
    +     Query q = em.createQuery("SELECT item FROM InventoryItem item");
    +
    +     return (List<InventoryItem>)q.getResultList();
    +}
    +...
    +
    + + +
    + +

    index.jsp

    +
    ...
    +List<InventoryItem> itemList = getAllItems();
    +...
    +
    + + +
    + +
      +
    • All of the specific APIs are described in the OpenJPA javadoc
    • +
    • Notice that the Query is not standard SQL. It is actually JPQL, which is +a specialized form of query language specifically designed for JPA.
        +
      • In the JPQL statement, "SELECT item FROM InventoryItem +item", notice that InventoryItem has the same case as the class +InventoryItem.
      • +
      • JPQL uses java objects in the query and not the database table names. +The statement identifies the variable for InventoryItem as +"item".
      • +
      • JPQL provides an object oriented query language that is independent of +the database being queried.  So, regardless of which database being +used, the JPQL does not change.  The JPA runtime takes care of doing +the translation from the object world to the desired relational database.
      • +
      • For more information on JPQL, check out this Java Persistence Query Language reference
      • +
      +
    • +
    +
  • +
  • +

    Also in the InventoryEntityBroker is code to add entries the database +tables. Since you did not create a table for InventoryItem in the +StoreSystem database in Derby, OpenJPA 2.0 will create the table the first +time an "add" is attempted.

    +
      +
    • +

      Consider the following code:

      +

      InventoryEntityBroker

      +
      ...
      +void addItem(String name, String description, float price, int categoryID)
      +{
      +    InventoryItem item = new InventoryItem();
      +    item.setName(name);
      +    item.setDescription(description);
      +    ...
      +
      +    em.persist(item);
      +}
      +...
      +
      + + +
      + +

      You can then call the addItem() method in another part of the code. The +EntityManager.persist() method will throw an exception if a transaction has +not been started. The transaction must be committed by calling the +Transaction.commit() method after all updates have been applied or else the +changes will not be saved to the database:

      +
      ...
      +em.getTransaction().begin();
      +
      +addItem(...);
      +
      +em.getTransaction().commit();
      +...
      +
      + + +
        +
      • When this is executed the first time it will use the annotations to +create the Person table, then OpenJPA 2.0 will populate it with the +provided data.
      • +
      • Note the use of the getTransaction() method to start an update and then +to commit it. The concept is the same as in any database transaction +processing.
      • +
      • Also note that while the getAllItems() function requires a JPQL SELECT +query, the update type actions have APIs.
      • +
      • Take a look in the InventoryEntityBroker code at the addItem(), +updateItem() and deleteItem() functions and note the simplicity of these +operations.
      • +
      +
    • +
    +
  • +
  • +

    An important aspect of relational databases is, of course, the +relationships. The basic relationship types are: one to many, many to one, +and many to many. OpenJPA provides annotations to identify the related +fields. +Open the source file, InventoryCategory.java in Eclipse and find the +following code:

    +

    InventoryCategory.java

    +
        ...
    +    @OneToMany(targetEntity=tutorial.InventoryItem.class,
    +        cascade=CascadeType.ALL,
    +        mappedBy="category")
    +    public List<InventoryItem> getItems()
    +    {
    +        return items;
    +    }
    +    ...
    +
    + + +
      +
    • +

      The annotation @OneToMany identifies that:

      +
        +
      • This object has a one-to-many relationship with +targetEntity=tutorial.InventoryItem.class. Meaning that one +InventoryCategory can have many InventoryItems associated with it.
      • +
      • The property of InventoryItem that specifies the +InventoryCategory it is associated with is mappedBy="category". In other +words, InventoryItem has a class property of type InventoryCategory named +"category".\ Now open the source file, +InventoryItem.java and find the following code:
      • +
      +

      InventoryItem.java

      +
      ...
      +@ManyToOne
      +@JoinColumn(name="CAT_ID", nullable=false)
      +public InventoryCategory getCategory()
      +{
      +    return category;
      +}
      +...
      +
      + + +
        +
      • The annotation @ManyToOne identifies that:
      • +
      • This object has a many-to-one relationship with the InventoryCategory +object. Meaning that there many InventoryItems can reference the same +InventoryCategory
      • +
      +
    • +
    • +

      The annotation @JoinColumn identifies that:

      +
        +
      • The column in the database table that holds the InventoryCategory +reference by the attribute: +name="CAT_ID".
      • +
      +
    • +
    +
  • +
+ +
+ Remember
+These annotations contribute to the creation of the tables and the +relationships. It is important to put as much thought into how these +objects relate to each other as you would if you were designing the +database tables because you are designing the database tables. +You can see more about the relationship annotations at the Apache OpenJPA +site. The  documentation is here +. +
+ +

+

Summary

+

This was a very basic example of how to use OpenJPA with Geronimo and +Derby. However, many applications that require database persistence do not +use much more than the basic functionality demonstrated in this tutorial. +The purpose of this was to be a primer. Aside from the setup of the server +and database, we went through the creation of a persistence.xml file, the +basics of the OpenJPA Entity, and EntityManager and some of the +functionality.

+

Exercises

+

Using this sample code as a base, try to do some of the following:

+
    +
  • Add additional fields to the InventoryItem Entity.
  • +
  • Create a Customer Entity and establish a one-to-many relationship with +the InventoryItems as one customer having purchased many items.
  • +
  • Since several customers could have purchased the same items and an item +could have been purchased by many customers, use the documentation to +create a many-to-many relationship using @ManyToMany*.
  • +
+

*To make these changes you may have to delete the existing database +tables so that they can recreated with the new relationship fields.

+

+

References

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/beginners-performance-guide.html ============================================================================== --- websites/staging/openjpa/trunk/content/beginners-performance-guide.html (added) +++ websites/staging/openjpa/trunk/content/beginners-performance-guide.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

OpenJPA Beginners Performance Guide

+

This guide is targeted at new users of OpenJPA that would like to know some +of the important performance tuning properties. Please do not mistake this +for an exhaustive tuning guide. This is just enough information to make a +developer dangerous, not lethal.

+

+

Enhancement

+

OpenJPA uses byte-code weaving technologies to enhance user created Entity +class objects at build time or dynamically at run time. This allows us to +efficiently handle these objects.

+

Follow the Entity Enhancement instructions on how to properly enhance your Entities.

+

OpenJPA also has a feature that will auto-generate new subclasses or proxy +objects that front the user's Entity objects at run time, but this feature +is not recommended for use. There are numerous functional issues reported +and it doesn't perform nearly as well. If you ever see the following +message you are using the non-recommended subclassing approach to +enhancement.

+
+

3328 pu_name INFO [main] openjpa.Enhance - Creating subclass for "[ class +org.apache.openjpa.entity.E1 , class org.apache.openjpa.entity.E2 ]". This +means that your application will be less efficient and will consume more +memory than it would if you ran the OpenJPA enhancer. Additionally, lazy +loading will not be available for one-to-one and many-to-one persistent +attributes in types using field access; they will be loaded eagerly +instead.

+
+

It is recommended to set the following property to ensure that you don't +use this enhancement approach.

+
<properties> 
+    <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
+<properties>
+
+ + +

+

Connection Pooling

+

As of the 2.1.0 release OpenJPA bundles Apache Commons DBCP + as part of the binary download. When running in JSE environments a default +connection pool will be plugged in with the provided database configuration +properties (Once OPENJPA-1764 + is completed) . Most JEE container environments should provide some level +of connection pooling.

+

In releases prior to 2.1.0 add DBCP to your classpath and use the following +example to figure out how to configure pooling.

+
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
+    <persistence-unit name="example-derby" transaction-type="RESOURCE_LOCAL">
+    <properties>
+        <property name="openjpa.ConnectionProperties" 
+        value="DriverClassName=org.apache.derby.jdbc.ClientDriver,
+          Url=jdbc:derby://localhost:1527/database, 
+          MaxActive=100, 
+          MaxWait=10000, 
+          TestOnBorrow=true, 
+          Username=user, 
+          Password=secret"/>
+        <property name="openjpa.ConnectionDriverName" 
+        value="org.apache.commons.dbcp.BasicDataSource"/>
+    </properties>
+    </persistence-unit>
+</persistence>
+
+ + +

+

Caching

+
<properties> 
+    <property name="openjpa.DataCache" value="true"/>
+    <property name="openjpa.QueryCache" value="true"/>
+<properties>
+
+ + +

Insert details about what those two properties give me.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10186-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:01 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 51DD8E0C5 for ; Sun, 9 Dec 2012 13:15:01 +0000 (UTC) Received: (qmail 84407 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84373 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84344 invoked by uid 99); 9 Dec 2012 13:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 655D22388C02 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [8/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.655D22388C02@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/building.html ============================================================================== --- websites/staging/openjpa/trunk/content/building.html (added) +++ websites/staging/openjpa/trunk/content/building.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,731 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Contents

+ +

+

Building OpenJPA

+

See Build and Runtime Dependencies + for details on the required Java levels.

+

+

Maven

+

+

Command Line Builds

+

These instructions describe how to check out the current OpenJPA source +code (from the Subversion source code management repository) and build it +(using the Apache Maven 2 build tool). They are written for use from the +console, and are known to work on Linux, Mac OSX and Windows.

+
    +
  1. Ensure that you have Java installed and in your path by running: java +-fullversion
  2. +
  3. 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 text like Apache Maven 2.2.1 (r801777; +2009-08-06 21:16:01+0200)
  4. +
  5. Install Subversion v1.4.x or newer from http://subversion.apache.org/. +If it is installed correctly, typing the following command should output +help information: svn help or svn --version
  6. +
  7. Create a new directory you want to do your work in, then change to that +directory from the console.
  8. +
  9. Check out the sources by running: svn co +https://svn.apache.org/repos/asf/openjpa/trunk openjpa-trunk. It will +check out the sources to the openjpa-trunk directory. More information on +checking out the OpenJPA sources can be found on the Source Code + page.
  10. +
  11. Change to the openjpa-trunk directory, which has already been created in +the previous step.
  12. +
  13. +

    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>
    +
    + + +
  14. +
+

If any tests fail, and you want to ignore the failures, instead run:

+
mvn package -DfailIfNoTests=false
+
+  or
+
+mvn package -DskipTests
+
+ + +

An example session is as follows:

+
$ cd /tmp/
+
+$ java -version
+
+java version "1.6.0"
+Java(TM) SE Runtime Environment (build 1.6.0-b105)
+Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
+
+$ mvn -v
+
+Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
+Java version: 1.6.0
+Java home: /alt/sun160/jre
+Default locale: en_US, platform encoding: UTF-8
+OS name: "linux" version: "2.6.18-1.2798.fc6" arch: "i386" Family: "unix"
+
+$ svn --version
+
+svn, version 1.4.3 (r23084)
+   compiled Jan 18 2007, 07:47:40
+
+$ 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 compile
+
+[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 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: [compile]
+[INFO] ------------------------------------------------------------------------
+
+ ...
+
+[INFO]
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] ------------------------------------------------------------------------
+[INFO] OpenJPA Parent POM .................................... SUCCESS [1:23.143s]
+[INFO] OpenJPA Utilities Library ............................. SUCCESS [13.749s]
+[INFO] OpenJPA Kernel ........................................ SUCCESS [19.251s]
+[INFO] OpenJPA JDBC .......................................... SUCCESS [14.351s]
+[INFO] OpenJPA Persistence ................................... SUCCESS [10.254s]
+[INFO] OpenJPA Persistence JDBC .............................. SUCCESS [46.774s]
+[INFO] OpenJPA Persistence Locking Tests ..................... SUCCESS [15.183s]
+[INFO] OpenJPA XML Store ..................................... SUCCESS [11.788s]
+[INFO] OpenJPA Slice ......................................... SUCCESS [4.437s]
+[INFO] OpenJPA JEST .......................................... SUCCESS [4.854s]
+[INFO] OpenJPA Aggregate Jar ................................. SUCCESS [10.729s]
+[INFO] OpenJPA Aggregate Jar with Dependencies ............... SUCCESS [6.761s]
+[INFO] OpenJPA Project Docs and Assemblies ................... SUCCESS [1:41.937s]
+[INFO] OpenJPA Examples ...................................... SUCCESS [0.663s]
+[INFO] OpenJPA Examples - Simple ............................. SUCCESS [1.475s]
+[INFO] OpenJPA Examples - image-gallery ...................... SUCCESS [3.920s]
+[INFO] OpenJPA Examples - OpenBooks .......................... SUCCESS [12.961s]
+[INFO] OpenJPA Integration Tests ............................. SUCCESS [0.381s]
+[INFO] OpenJPA Integration Tests - Daytrader ................. SUCCESS [7.565s]
+[INFO] OpenJPA Integration Tests - Examples .................. SUCCESS [0.269s]
+[INFO] OpenJPA Integration Tests - SLF4JLogFactory ........... SUCCESS [1.977s]
+[INFO] OpenJPA Integration Tests - JPA TCK ................... SUCCESS [0.248s]
+[INFO] OpenJPA Integration Tests - Bean Validation ........... SUCCESS [3.213s]
+[INFO] OpenJPA Integration Tests - JMX Platform MBeans ....... SUCCESS [7.729s]
+[INFO] ------------------------------------------------------------------------
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 6 minutes 26 seconds
+[INFO] Finished at: Sun Jan 30 19:43:50 CET 2011
+[INFO] Final Memory: 92M/158M
+[INFO] ------------------------------------------------------------------------
+
+$ mvn package -DskipTests
+
+[INFO] Scanning for projects...
+
+...
+
+[INFO] Building zip:/tmp/trunk/openjpa-project/target/site/downloads/apache-openjpa-2.2.0-SNAPSHOT-binary.zip
+
+...
+
+$ ls -lh openjpa-project/target/site/downloads/
+
+total 40M
+-rw-r--r-- 1 milosz milosz 15M Jan 30 19:41 apache-openjpa-2.2.0-SNAPSHOT-binary.zip
+-rw-r--r-- 1 milosz milosz 25M Jan 30 19:43 apache-openjpa-2.2.0-SNAPSHOT-source.zip
+
+ + +

+

Executing various Maven build tasks

+

+
Running just the "TestPersistence" test case
+
mvn test -Dtest=TestPersistence
+
+ + +

+
Running tests with Java 2 security enabled
+
mvn test -Penable-security
+
+ + +

+
Building and running only the examples included in the distribution
+
mvn -DskipTests -Pexamples-profile integration-test
+
+ + +

+
Building just the javadoc
+

First install the jars:

+
mvn install -DskipTests
+
+ + +

Then build the javadoc:

+
mvn package -DskipTests -Pjavadoc-profile
+
+ + +

The javadoc will be output to target/site/apidocs/index.html.

+

+
Building just the docbook documentation
+
set MAVEN_OPTS=-Xmx512m
+mvn -f openjpa-project/pom.xml process-resources -Pdocbook-profile
+
+ + +

The manual HTML will be output to openjpa-project/target/manual/manual.html.

+

+
Building with JDK 1.4 module verification (only for versions of OpenJPA prior to svn revision 640685)
+
mvn compile -Djava14.jar=C:\Program Files\Java\j2re1.4.2_07\lib\rt.jar compile
+
+ + +

Specifying the "java14.jar" system property will cause the +JDK-1.4-dependent modules to be compiled with the value as the +bootclasspath to the compiler. This can be useful to ensure that +modifications and additions do not violate the JDK version restriction of +the module. Since the runtime jar location is platform, version, and +installation dependent, the exact location of the runtime jar will vary, +which is why it needs to be manually specified.

+

+

Eclipse with Command-line Maven utilities

+
    +
  1. Checkout the source as described above
  2. +
  3. Build the source using Maven as described above
  4. +
  5. +

    Create the Eclipse Metadata -

    +
    mvn eclipse:eclipse
    +
    + + +
      +
    1. +

      If this is the first project in your workspace to use maven artifacts you need to create a classpath variable named M2_REPO which contains the full path to your local repository. The eclipse plugin can do this for you with the following command

      +
      mvn eclipse:configure-workspace -Declipse.workspace=${path to your workspace}
      +
      + + +
    2. +
    +
  6. +
  7. +

    Start Eclipse (3.2 - 3.4 SR2 are known to work) and create a new +workspace

    +
  8. +
  9. +

    Import the OpenJPA projects, by:

    +
      +
    • Select File --> Import... --> General - Existing Projects into Workspace --> Next
    • +
    • Select root directory =
    • +
    • Deselect the openjpa-examples project
    • +
    • Press Finish
    • +
    +
  10. +
  11. +

    A few fixups will be required to remove the errors that exist in the +imported projects...

    +
      +
    • +

      openjpa-kernel -> Properties -> Java Build Path -> Source -> Add Folders

      +
        +
      • add target/generated-sources/javacc
      • +
      +
    • +
    • +

      openjpa-jdbc -> Properties -> Java Build Path -> Libraries -> JRE System Library -> Edit

      +
        +
      • change this to a Java 6 JRE to remove these errors (see below if you can not use Java SE 6)
      • +
      +
    • +
    • +

      openjpa-persistence -> Properties -> Java Build Path -> Libraries -> JRE System Library -> Edit

      +
        +
      • change this to a Java 6 JRE to remove these errors (see below if you +can not use Java SE 6)
      • +
      +
    • +
    • +

      openjpa-persistence-jdbc -> Properties -> Java Build Path -> Libraries +-> JRE System Library -> Edit

      +
        +
      • change this to a Java 6 JRE to remove these errors (see below if you +can not use Java SE 6)
      • +
      +
    • +
    • +

      openjpa-examples. Open up src/main/java and select ReverseMapping +folder. Right mouse click.

      +
        +
      • Select Build Path -> Exclude
      • +
      +
    • +
    +
  12. +
  13. +

    For each imported project, you'll need to edit the build properties to +remove an incorrect dependency:

    +
      +
    • Project --> Properties --> Java Build Path --> Source
    • +
    • Remove openjpa-project from the list of source folders
    • +
    +
  14. +
+

For Java SE 5 users building from the 2.0.x branch, you will need to +exclude some Java SE 6 specific classes by performing the following steps +for the source:

+
    +
  1. Open the Properties for openjpa-persistence
  2. +
  3. Select Java Build Path --> Source
  4. +
  5. +

    Edit the openjpa-persistence/src/main/java --> Excluded setting to +include the following:

    +
    org/apache/openjpa/persistence/meta/AnnotationProcessor6.java
    +org/apache/openjpa/persistence/meta/CompileTimeLogger.java
    +org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java
    +
    + + +
  6. +
+

+

Eclipse with M2Eclipse plugin

+
    +
  1. Checkout the source as described above
  2. +
  3. Build the source using Maven as described above
  4. +
  5. Start Eclipse (3.5 Galileo is recommended) and create a new workspace
  6. +
  7. +

    Good references for this M2Eclipse plugin (need to install the plugin +into your Eclipse environment)

    + +
  8. +
  9. +

    Import the OpenJPA projects, by:

    +
      +
    • Select File --> Import... --> General -> Maven Projects --> Next
    • +
    • Select root directory =
    • +
    • All of the pom.xml files should be pre-selected for the svn checkout +location
    • +
    • You can affect the naming convention used for the generated Eclipse projects (one for each Maven module). Click on Advanced and fill in the Name Template field. I prefer "TRUNK-[artifactId](artifactid.html) +" since it helps with workspace organization, but it's your choice.
    • +
    • Press Finish
    • +
    • Note: You may get a popup internal error at the end of this Import +processing. Not sure what the problem is, but it doesn't seem to affect +the usage.
    • +
    +
  10. +
  11. +

    A few fixups will be required to remove the errors that exist in the +imported projects...

    +
      +
    • openjpa-kernel -> Properties -> Java Build Path -> Source -> Add Folders
        +
      • add target/generated-sources/javacc
      • +
      +
    • +
    • openjpa-jdbc -> Properties -> Java Build Path -> Libraries -> JRE System +Library -> Edit
        +
      • change this to a Java 6 JRE to remove these errors (see below if you +can not use Java SE 6)
      • +
      +
    • +
    • openjpa-persistence -> Properties -> Java Build Path -> Libraries -> JRE +System Library -> Edit
        +
      • change this to a Java 6 JRE to remove these errors (see below if you +can not use Java SE 6)
      • +
      +
    • +
    • openjpa-persistence-jdbc -> Properties -> Java Build Path -> Libraries +-> JRE System Library -> Edit
        +
      • change this to a Java 6 JRE to remove these errors (see below if you +can not use Java SE 6)
      • +
      +
    • +
    • openjpa-examples. Open up src/main/java and select ReverseMapping +folder. Right mouse click.
        +
      • Select Build Path -> Exclude
      • +
      +
    • +
    +
  12. +
+

For Java SE 5 users building from the 2.0.x branch, you will need to +exclude some Java SE 6 specific classes by performing the following steps +for the source:

+
    +
  1. Open the Properties for BR20-openjpa-persistence (or whatever your naming +convention is)
  2. +
  3. Select Java Build Path --> Source
  4. +
  5. +

    Edit the openjpa-persistence/src/main/java --> Excluded setting to +include the following:

    +
    org/apache/openjpa/persistence/meta/AnnotationProcessor6.java
    +org/apache/openjpa/persistence/meta/CompileTimeLogger.java
    +org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java
    +
    + + +
  6. +
+

+

Common 2.x Build Problems

+

+

Wrong Maven Level

+

Example Maven output -

+
[INFO] [enforcer:enforce {execution: default}]
+[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
+Detected Maven Version: 2.0.10 is not in the allowed range [2.2.1,).
+[INFO] ------------------------------------------------------------------------
+[ERROR] BUILD ERROR
+[INFO] ------------------------------------------------------------------------
+[INFO] Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.
+
+ + +

Solution - Upgrade to Maven 2.2.1 or later

+

+

Wrong Java Level

+

Example Maven output -

+
[INFO] [enforcer:enforce {execution: default}]
+[WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
+Detected JDK Version: 1.5.0-19 is not in the allowed range [1.6,).
+[INFO] ------------------------------------------------------------------------
+[ERROR] BUILD ERROR
+[INFO] ------------------------------------------------------------------------
+[INFO] Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.
+
+ + +

Solution - Upgrade to latest Sun JDK 1.6.0 or IBM 6 SDK

+

Note - OpenJDK and Java SE 7 are not supported at this time.

+

+

Missing License Headers

+

Example Maven output -

+
. . .
+[INFO] ------------------------------------------------------------------------
+[INFO] Building OpenJPA Parent POM
+[INFO]    task-segment: [clean, install]
+[INFO] ------------------------------------------------------------------------
+. . .
+[INFO] [enforcer:enforce {execution: default}]
+[INFO] [source:test-jar {execution: attach-sources}]
+[INFO] [ianal:verify-legal-files {execution: default}]
+[INFO] [apache-rat:check {execution: default}]
+[INFO] Exclude: **/javax.persistence.spi.PersistenceProvider
+[INFO] Exclude: **/javax.annotation.processing.Processor
+[INFO] Exclude: **/*.rsrc
+[INFO] Exclude: **/org.apache.openjpa.revision.properties
+[INFO] Exclude: scripts/*.list
+[INFO] Exclude: scripts/*.options
+[INFO] Exclude: scripts/*.dict
+[INFO] Exclude: **/.*/**
+[INFO] Exclude: **/target/**/*
+[INFO] Exclude: **/dependency-reduced-pom.xml
+[INFO] Exclude: **/*.log
+[INFO] Exclude: **/maven-eclipse.xml
+[INFO] Exclude: **/rat.txt
+[INFO] Exclude: **/internal-repository/**
+[INFO] ------------------------------------------------------------------------
+[ERROR] BUILD FAILURE
+[INFO] ------------------------------------------------------------------------
+[INFO] Too many unapproved licenses: 1
+[INFO] ------------------------------------------------------------------------
+
+ + +

For the module that failed to build (which in the case above is the root +pom.xml) open the target/rat.txt file and search for any "????" +occurrences, like -

+
. . .
+*****************************************************
+  Files with Apache License headers will be marked AL
+  Binary files (which do not require AL headers) will be marked B
+  Compressed archives will be marked A
+  Notices, licenses etc will be marked N
+  N LICENSE.txt
+  N NOTICE.txt
+  AL    openjpa/pom.xml
+  AL    openjpa/src/main/appended-resources/META-INF/LICENSE.vm
+  AL    openjpa/src/main/appended-resources/META-INF/NOTICE.vm
+ !????? OPENJPA-1621.patch
+. . .
+
+ + +

Solution - either add the missing ASL 2.0 license header, remove the file +from your local working directory (if it is a temporary file that should +not be added to svn), or ask on the dev@openjpa list if the file can be +added to the exclude list for the apache-rat checks.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/coding-standards.html ============================================================================== --- websites/staging/openjpa/trunk/content/coding-standards.html (added) +++ websites/staging/openjpa/trunk/content/coding-standards.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Coding Standards

+

+

ASF Requirements

+

+ +

Please see http://www.apache.org/legal/src-headers.html + for details of the following summary.

+

Apache does not require you to assign ownership or copyright for any +patches that you submit via the above process. You retain ownership for all +such patches. But Apache does require you to grant Apache a license to use +the patch. To do this for new files, do not include a copyright statement +in the file but include this license as comments in the header of your +source contribution - http://www.apache.org/legal/src-headers.html#headers +If you require that distributions of the project include your copyright +notice, you should include with your patch an update to the NOTICE file at +trunk/openjpa-project/NOTICE.txt documenting for which files you are +notifying your copyright.

+

+

License and Notice files

+

Please see http://www.apache.org/licenses/ + for details of the following summary.

+

All release artifacts published by an Apache project (JAR/WAR/EAR, zip, +tar, ...) must include License and Notice files. A Disclaimer file must be +included for any artifacts included form the incubator.

+

+

General Formatting Conventions

+

OpenJPA adheres to Sun's Code Conventions for the Java Programming +Language, which is available at http://java.sun.com/docs/codeconv/

+
    +
  1. Maximum line length is 120 characters (this is a deviation from the Java +standards).
  2. +
  3. Use spaces instead of tabs.
  4. +
  5. Indendation size is 4 spaces.
  6. +
  7. Do not insert a new line before opening brace. Insert a new line before +closing brace.
  8. +
  9. Use fully qualified import statements, i.e. do not use asterisks.
  10. +
+

+

Eclipse Users

+

+

Formatter Profile

+

The profile can be downloaded from here - OpenJPA-formatting-preferences.xml +Updated 2009-06-29 (Eclipse Galileo) OpenJPA-eclipse-galileo-formatting.xml

+
    +
  1. Window -> Preferences
  2. +
  3. Java -> Code Style -> Formatter
  4. +
  5. Click on import and select the OpenJPA-formatting-preferences.xml file +downloaded above.
  6. +
  7. Press OK after importing
  8. +
+

+

Code Template

+

The latest version with the required ASL header format can be downloaded +here - OpenJPA-code-style-template.xml

+
    +
  1. Window -> Preferences
  2. +
  3. Java -> Code Style -> Code Templates
  4. +
  5. Click on import and select the OpenJPA-code-style-template.xml file +downloaded above.
  6. +
  7. Press OK after importing
  8. +
+

+

Submitting a Patch

+

If you make changes to OpenJPA, and would like to contribute the to the +project, you should create a patch via svn and post it to the OpenJPA JIRA issue tracker +. To create a patch, simply execute the following command:

+
$> svn diff > your-changes.patch
+
+ + +

Note: You may also use Eclipse to create a patch (Team -> Create +Patch...), but this may require committers to modify the patch to match +their project layout (workspace per branch or all branches in one +workspace) and some committers may not be using Eclipse/Subclipse.

+

+

TestCases

+

When we make a change it's generally a good idea to include a jUnit +testcase which demonstrates the desired behavior. Changes that only affect +a specific database or only operate in a certain environment (ie DB2 on +Z/OS, or only when used with SunOne) are exceptions to the rule.

+

The testcase should be self validating via jUnit asserts. Writing messages +to system.err or system.out is discouraged - they lead to the impression +that some manual interpretation of the results must be done. Messages like +these are useful when developing the tests or when diagnosing problems but +should not be committed.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10188-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:01 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 80B0EE0C6 for ; Sun, 9 Dec 2012 13:15:01 +0000 (UTC) Received: (qmail 84485 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84442 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84345 invoked by uid 99); 9 Dec 2012 13:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:54 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 77D472388C79 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [11/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.77D472388C79@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/downloads.html ============================================================================== --- websites/staging/openjpa/trunk/content/downloads.html (added) +++ websites/staging/openjpa/trunk/content/downloads.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

OpenJPA Downloads

+

Use the links below to download a distribution of Apache OpenJPA. It is +good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA binaries, see the Obtaining + page. For information on building OpenJPA from source, see the [Building] + page.

+

+

Official JPA 2.0 Releases

+

These releases implement the JSR-317 Java Persistence 2.0 + specification and pass the JPA 2.0 TCK.

+

+

2.2.x Releases

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Download Release Date Checksum Signatures
OpenJPA 2.2.1 Binary apache-openjpa-2.2.1-binary.zip 1 November 2012 MD5 PGP
OpenJPA 2.2.1 Source apache-openjpa-2.2.1-source.zip + 1 November 2012 MD5 + PGP +
OpenJPA 2.2.1 Release Notes RELEASE-NOTES.html + 1 November 2012
OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP
OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip + 20 February 2012 MD5 + PGP +
OpenJPA 2.2.0 Release Notes RELEASE-NOTES.html + 20 February 2012
+ +

+

2.1.x Releases

+ + + + + + + + + + + + + + + + + + + + + +
Download Release Date Checksum Signatures
OpenJPA 2.1.1 Binary apache-openjpa-2.1.1-binary.zip + 25 July 2011 + MD5 + PGP +
OpenJPA 2.1.1 Source apache-openjpa-2.1.1-source.zip + 25 July 2011 MD5 + PGP +
OpenJPA 2.1.1 Release Notes RELEASE-NOTES.html + 25 July 2011
OpenJPA 2.1.0 Binary apache-openjpa-2.1.0-binary.zip + 21 February 2011 MD5 + PGP +
OpenJPA 2.1.0 Source apache-openjpa-2.1.0-source.zip + 21 February 2011 MD5 + PGP +
OpenJPA 2.1.0 Release Notes RELEASE-NOTES.html + 21 February 2011
+ +

+

2.0.x Releases

+ + + + + + + + + + + + + + + + + + + + + + +
Download Release Date Checksum Signatures
OpenJPA 2.0.1 Binary apache-openjpa-2.0.1-binary.zip + 30 August 2010 MD5 + PGP +
OpenJPA 2.0.1 Source apache-openjpa-2.0.1-source.zip + 30 August 2010 MD5 + PGP +
OpenJPA 2.0.1 Release Notes RELEASE-NOTES.html + 30 August 2010
OpenJPA 2.0.0 Binary apache-openjpa-2.0.0-binary.zip + 22 April 2010 MD5 + PGP +
OpenJPA 2.0.0 Source apache-openjpa-2.0.0-source.zip + 22 April 2010 MD5 + PGP +
OpenJPA 2.0.0 Release Notes RELEASE-NOTES.html + 22 April 2010
+ +

+

Official JPA 1.0 Releases

+

These releases implement the JSR-220 Java Persistence 1.0 + specification and pass the Sun JPA 1.0b Technology Compatibility Kit.

+

+

1.2.x Releases

+ + + + + + + + + + + + + + + + + + + + + + + +
Download Release Date Signatures Release Notes
OpenJPA 1.2.2 apache-openjpa-1.2.2-binary.zip + 18 Jan 2010 PGP + Release Notes +
OpenJPA 1.2.2 Source Code apache-openjpa-1.2.2-source.zip + 18 Jan 2010 PGP +
OpenJPA 1.2.1 apache-openjpa-1.2.1-binary.zip + 18 Mar 2009 PGP + Release Notes +
OpenJPA 1.2.1 Source Code apache-openjpa-1.2.1-source.zip + 18 Mar 2009 PGP +
OpenJPA 1.2.0 apache-openjpa-1.2.0-binary.zip + 14 Aug 2008 PGP + Release Notes +
OpenJPA 1.2.0 Source Code apache-openjpa-1.2.0-source.zip + 14 Aug 2008 PGP +
+ +

+

1.1.x Releases

+ + + + + + + + + +
Download Release Date Signatures Release Notes
OpenJPA 1.1.0 apache-openjpa-1.1.0-binary.zip + 22 May 2008 PGP + Release Notes +
OpenJPA 1.1.0 Source Code apache-openjpa-1.1.0-source.zip + 22 May 2008 PGP +
+ +

+

1.0.x Releases

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Download Release Date Signatures Release Notes
OpenJPA 1.0.4 apache-openjpa-1.0.4-binary.zip + 18 Jan 2010 PGP + Release Notes +
OpenJPA 1.0.4 Source Code apache-openjpa-1.0.4-source.zip + 18 Jan 2010 PGP +
OpenJPA 1.0.3 apache-openjpa-1.0.3-binary.zip + 18 Feb 2008 PGP + Release Notes +
OpenJPA 1.0.3 Source Code apache-openjpa-1.0.3-source.zip + 18 Feb 2008 PGP +
OpenJPA 1.0.2 apache-openjpa-1.0.2-binary.zip + 18 Feb 2008 PGP + Release Notes +
OpenJPA 1.0.2 Source Code apache-openjpa-1.0.2-source.zip + 18 Feb 2008 PGP +
OpenJPA 1.0.1 apache-openjpa-1.0.1-binary.zip + 9 Nov 2007 PGP + Release Notes +
OpenJPA 1.0.1 Source Code apache-openjpa-1.0.1-source.zip + 9 Nov 2007 PGP +
OpenJPA 1.0.0 apache-openjpa-1.0.0-binary.zip + 28 Aug 2007 PGP + Release Notes +
OpenJPA 1.0.0 Source Code apache-openjpa-1.0.0-source.zip + 28 Au 2007 PGP +
+ +

+

Nightly Snapshots

+

These distributions are built and deployed nightly, and contain up-to-date +fixes and improvements. However, their stability cannot be guaranteed. Use +at your own risk.

+

Snapshot builds for all active releases are published to the Apache snapshot repository.

+

Version 1.2.x, 1.3.x, 2.0.x, 2.1.x and trunk (2.2.x as of this writing) +can be found in the snapshot repository on repository.apache.org. A maven +project can access this snapshot repository by adding the following +repository in pom.xml:

+
<repository>
+    <id>apache.snapshots</id>
+    <name>Apache Snapshot Repository</name>
+    <url>http://repository.apache.org/snapshots</url>
+    <releases>
+    <enabled>false</enabled>
+    </releases>
+</repository>
+
+ + +

For versions 1.0.x, and 1.1.x you can find the snapshots on people.apache.org.

+

A maven project can access the snapshot builds by adding the following repository in pom.xml :

+
<repository>
+    <id>people.apache.org.snapshots</id>
+    <name>people.apache.org.snapshots</name>
+    <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+</repository>
+
+ + +

Pre-packaged binaries for SNAPSHOT releases are available in the +snapshot repository at the following locations:

+ + + + + + + + + + + + + + + + +
SNAPSHOT version binaries source
2.2.0 apache-openjpa-2.2.0-SNAPSHOT-binary.zip + apache-openjpa-2.2.0-SNAPSHOT-source.zip +
2.1.2 apache-openjpa-2.1.2-SNAPSHOT-binary.zip + apache-openjpa-2.1.2-SNAPSHOT-source.zip +
2.0.2 apache-openjpa-2.0.2-SNAPSHOT-binary.zip + apache-openjpa-2.0.2-SNAPSHOT-source.zip +
1.3.0 apache-openjpa-1.3.0-SNAPSHOT-binary.zip + apache-openjpa-1.3.0-SNAPSHOT-source.zip +
1.2.3 apache-openjpa-1.2.3-SNAPSHOT-binary.zip + apache-openjpa-1.2.3-SNAPSHOT-source.zip +
1.1.1 apache-openjpa-1.1.1-SNAPSHOT-binary.zip + apache-openjpa-1.1.1-SNAPSHOT-source.zip +
1.0.5 apache-openjpa-1.0.5-SNAPSHOT-binary.zip + apache-openjpa-1.0.5-SNAPSHOT-source.zip +
+ +

For the 1.2.x, 1.3.x, 2.0.x, 2.1.x and 2.2.x SNAPSHOTs, please scroll down +to the bottom of the artifact list to grab the latest ones, as we're +letting Maven create timestamped artifacts when publishing to the new +Apache Nexus repo.

+

+

Older incubating Releases

+ + + + + + + + + + + + + + +
Download Release Date Signatures
OpenJPA 0.9.7 openjpa-project-0.9.7-incubating-binary.zip + 27 April 2007 MD5 +PGP +
OpenJPA 0.9.7 Source Code openjpa-project-0.9.7-incubating-source.zip + 27 April 2007 MD5 +PGP +
OpenJPA 0.9.6 openjpa-project-0.9.6-incubating-binary.zip + 29 November 2006 MD5 +PGP +
OpenJPA 0.9.6 Source Code openjpa-project-0.9.6-incubating-source.zip + 29 November 2006 MD5 +PGP +
+ +

+

Verifying Release Version and Revision

+

OpenJPA jar is self-describing and after downloading a release or nightly +snapshot, you can find out the revision number included in the build by:

+
% java -jar your/path/to/openjpa.jar
+
+ + +

which will print the version and revision numbers, for example:

+
OpenJPA 2.1.0-SNAPSHOT
+version id: openjpa-2.1.0-SNAPSHOT-r422266:935231
+Apache svn revision: 422266:935231
+
+ + +

which designates that the nightly build includes Apache SVN revision +935231 as the latest.

+

+

Verifying Releases

+

We strongly recommend you verify the integrity of the downloaded files with +both PGP and MD5. The PGP signatures can be verified using PGP + or GPG +. First download the KEYS + as well as the *.asc signature file for the particular distribution. +Make sure you get these files from the main distribution directory, rather +than from a mirror. Then verify the signatures using one of the following +sets of commands:

+

+

Verifying Release Files using the pgpk Utility

+
% pgpk -a KEYS
+% pgpv openjpa-*.zip.asc
+
+ + +

+

Verifying Release Files using the pgp Utility

+
% pgp -ka KEYS
+% pgp openjpa-*.zip.asc
+
+ + +

+

Verifying Release Files using the gpg Utility

+
% gpg --import KEYS
+% gpg --verify openjpa-*.zip.asc
+
+ + +

Alternatively, you can verify the checksums on the files. Unix programs +called md5/sha1 or md5sum/sha1sum are included in many unix +distributions. *sum is also available as part of GNU Textutils +. Windows users can get binary md5 programs from [here|http://www.fourmilab.ch/md5/] + or here +. fsum + supports MD5 and SHA1.

+
+

+(**) asm-3.2.jar can be found from http://search.maven.org/remotecontent?filepath=asm/asm/3.2/asm-3.2.jar +.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/embeddable-samples.html ============================================================================== --- websites/staging/openjpa/trunk/content/embeddable-samples.html (added) +++ websites/staging/openjpa/trunk/content/embeddable-samples.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Embeddable classes

+

An entity may use other fine-grained classes to represent entity state. +Instances of these classes, unlike entity instances, do not have persistent +identity of their own. Instead, they exist only as part of the state of the +entity to which they belong. (From 2.0 Proposed Final Draft March 13, 2009 +-- do I need to provide footnote or something?)

+

In short, an embeddable is a seperation of data into a Java class that +relies on the owning Entity for it's identity. Many(most) times an +embeddable resides in the same database row as the owning Entity.

+

Review the getting started + page on how to run the samples.

+

+

Samples

+

+ + + +
Schema

+ + + +
Class diagram
+
+ + +

+

Collections of Embeddables

+

In the code snippet below, there is a User Entity which has a collection of +Embedded addresses.

+

Address.java|borderStyle=solid

+
@Embeddable
+public class Address {
+    @Basic
+    private String street;
+    @Basic
+    private String city;
+    @Basic
+    private String state;
+    @Basic
+    private Integer zip;
+
+    public Address(){
+    }
+//...
+}
+
+ + +


+

User.java|borderStyle=solid
+ @Entity + public class User { + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private int id;

+
    @ElementCollection
+    @CollectionTable(name="user_address")
+    private Set<Address> addresses = new HashSet<Address>();
+
+    public User(){
+    }
+//...
+}
+
+ + +


+

JPQL.java|borderStyle=solid

+
...
+// Select Entity based off a query over a collection of embeddables
+Query q = em.createQuery("SELECT u FROM User u , in (u.addresses) a WHERE a.state='xx'");
+// TODO -- add more!
+...
+
+ + +

+

Relationships from Embeddables

+

In the code snippet below, there is an Address embeddable with a ManyToOne +relationship to a Coordinates Entity.

+

Address.java|borderStyle=solid

+
@Embeddable
+public class Address {
+    @Basic
+    private String street;
+    @Basic
+    private String city;
+    @Basic
+    private String state;
+    @Basic
+    private Integer zip;
+
+    @ManyToOne(cascade=CascadeType.ALL)
+    Coordinates coordinates;
+
+    public Address(){
+    }
+//...
+}
+
+ + +

Coordinates .java|borderStyle=solid

+
@Entity
+public class Coordinates {
+    @Id
+    @GeneratedValue(strategy=GenerationType.IDENTITY)
+    int id;
+
+    @Basic
+    double longitude;
+    @Basic
+    double latitude;
+    public Coordinates(){
+    }
+    public Coordinates(double lon, double lat){
+        longitude=lon;
+        latitude=lat;
+    }
+//...
+}
+
+ + +

JPQL.java|borderStyle=solid

+
...
+// Embedded -> relationship traversal
+Query q = em.createQuery("SELECT u FROM User u , in (u.addresses) a WHERE a.coordinates.longitude=xxx");
+// TODO -- add more!
+...
+
+ + +

+

Nested Embeddables

+

In the code snippet below, there is a User Entity which has an embedded +ContactInfo. ContactInfo contains two other embeddeded embeddables, Address +and Phone.

+

Address.java|borderStyle=solid

+
@Embeddable
+public class Address {
+    @Basic
+    private String street;
+    @Basic
+    private String city;
+    @Basic
+    private String state;
+    @Basic
+    private Integer zip;
+
+    public Address(){
+    }
+//...
+}
+
+ + +

Phone.java|borderStyle=solid

+
@Embeddable
+public class Phone {
+    @Basic
+    private String phone_number;
+    @Basic
+    private String phone_type;
+//...
+}
+
+ + +

ContactInfo.java|borderStyle=solid

+
@Embeddable
+public class ContactInfo {
+    public ContactInfo(){   
+    }
+
+    @Embedded
+    Address homeAddress;
+
+    @Embedded
+    Phone homePhone;
+//...
+}
+
+ + +

User.java|borderStyle=solid

+
@Entity
+public class User {
+    @Id
+    @GeneratedValue(strategy=GenerationType.IDENTITY)
+    private int id;
+    @Embedded
+    ContactInfo contactInfo;
+
+    public User(){
+    }
+//...
+}
+
+ + +

JPQL.java|borderStyle=solid

+
...
+// Nested embeddables traversal
+Query q = em.createQuery("SELECT u FROM User u WHERE u.contactInfo.homePhone.number='507-555-5555' " +
+    "AND u.contactInfo.homePhone.type='cell'");
+// TODO -- add more!
+...
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/enhancement-with-ant.html ============================================================================== --- websites/staging/openjpa/trunk/content/enhancement-with-ant.html (added) +++ websites/staging/openjpa/trunk/content/enhancement-with-ant.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

The following shows how to define a OpenJPA enhancer task and how to invoke +the task in ANT.

+

First you'll need to compile the Entites. (Note: as a prereq to running the +enhance task, I copied my persistence.xml file to my /build directory. You +might not need to do this, but the persistence.xml has to be in the +classpath.)

+

Next you'll need to configure the enhancer task and a classpath where the +task can be found.

+

The final step is to call the enhance task. A snippet is provided below:

+
    <path id="jpa.enhancement.classpath">
+        <pathelement location="bin"/>
+
+        <!-- lib contains all of the jars that came with the OpenJPA binary download -->
+        <fileset dir="lib">
+        <include name="**/*.jar"/>
+        </fileset>
+    </path>
+
+    <target name="enhance" depends="build">
+    <!-- This is a bit of a hack, but I needed to copy the persistence.xml file from my src dir
+        to the build dir when we run enhancement -->
+    <copy includeemptydirs="false" todir="bin">
+        <fileset dir="src" excludes="**/*.launch, **/*.java"/>
+    </copy>
+
+    <!-- define the openjpac task -->
+    <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
+        <classpath refid="jpa.enhancement.classpath"/>
+    </taskdef>
+
+    <!-- invoke enhancer the enhancer -->
+    <openjpac>
+        <classpath refid="jpa.enhancement.classpath"/>
+    </openjpac>
+    <echo message="Enhancing complete."/>
+    </target>
+
+ + +

The persistence.xml doesn't have to be complete. The required elements are +the persistence-unit (any legal name will do), and the provider (you have +to identify openjpa). You can identify the classes to be enhanced either in +this file or in the enhancer task ant project.

+
    <?xml version="1.0" encoding="UTF-8"?>
+    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" 
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
+        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+        <persistence-unit name="enhance" transaction-type="RESOURCE_LOCAL">
+
+            <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+            <class>com.egg.sample.model.Employee</class>
+        </persistence-unit>
+   </persistence>
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10189-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:03 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AB1C0E0C9 for ; Sun, 9 Dec 2012 13:15:01 +0000 (UTC) Received: (qmail 84606 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84451 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84347 invoked by uid 99); 9 Dec 2012 13:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:54 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 7EC0F2388C7D for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [13/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.7EC0F2388C7D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/fetch-statistics.html ============================================================================== --- websites/staging/openjpa/trunk/content/fetch-statistics.html (added) +++ websites/staging/openjpa/trunk/content/fetch-statistics.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Fetch Statistics

+

The OpenJPA Fetch Statistics Tool (FST) monitors persistent field access +and helps determine which fields in an application are not used. This tool +is a development / test time tool that can help a developer properly tune +an application.

+

+

Note

+
    +
  • +

    Currently, FST only works with runtime enhancement (javaagent or in JEE +container hook).

    +
  • +
  • +

    The persistent fields which satisfy all the following conditions will be +tracked :

    +
      +
    • The field is fetched eagerly.
    • +
    • The field is not a primary key.
    • +
    • The field is not defined as a version field.
    • +
    +
  • +
+

+

Download

+

The latest OpenJPA FST jar file can be download from the SNAPSHOT Repository + or can be built from the source code in [svn|https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-tools/openjpa-fetch-statistics/] + by using Maven 2.2.1 and Java SE 6.

+

+

Configuration

+
    +
  • JSE - Append the path of openjpa-fetch-statistics-version-SNAPSHOT.jar +file to the classpath prior to lanuching the JVM.
  • +
  • Websphere Application Server
  • +
  • OSGi -- ?? -- Probably need another module that creates a proper bundle.
  • +
+

+

Statistics Collecting and Monitoring

+

There will be a large performance impact when running this tooling. It is +not supported, nor recommended for production use. This tool should not be +used on a production machine.

+
    +
  • When this tool is configured, it will be active for all persistence units +in the JVM. Statistics will be dumped via the openjpa.Runtime channel with +the INFO level every 10 minutes, or when the JVM terminates.
  • +
+

Example output

+
    [7/13/12 9:05:44:265 CDT](7/13/12-9:05:44:265-cdt.html)
+     00000072 Runtime   I   CWWJP9990I: openjpa.Runtime: Info: Successfully collected fetch statistics from Entities [org.apache.openjpa.test.Address]. The following fields are
+    FetchType.EAGER and were never fetched [ total 7 ] : 
+    org.apache.openjpa.test.Address.city
+    org.apache.openjpa.test.Address.country
+    org.apache.openjpa.test.Address.phone
+    org.apache.openjpa.test.Address.state
+    org.apache.openjpa.test.Address.street1
+    org.apache.openjpa.test.Address.street2
+    org.apache.openjpa.test.Address.zip
+
+ + +

+

Configuration removal

+
    +
  • Stop the JVM and reverse the steps completed to configure the tool.
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/findbugs-presentation-notes.html ============================================================================== --- websites/staging/openjpa/trunk/content/findbugs-presentation-notes.html (added) +++ websites/staging/openjpa/trunk/content/findbugs-presentation-notes.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Bill Pugh

+

(side note: compiling with "-target jsr14" will allow us to use generics +and compile to JDK 1.4 usable code)

+

Static analysis + Analyzes program w/out executing + Not a replacement for testing

+

Find bugs that are one step removed from a syntax error

+

Finding different categories of problems

+

"Embrace and fix your dumb mistakes"

+

Bad method calls: not using return parameters, not throwing newly +constructed exceptions, + etc.

+

OpenJPA 38 issues (35 critical)

+

Checks for null when subsequent actions would cause an NPE (numerous found +in OpenJPA)

+

Bad practices, like hashCode() w/out equals()

+

Feedback about API-specific findbugs detectors (e.g., for JPA) would be +appreciated

+

OpenJPA is "good" to "average" in the number of bugs found.

+

OpenJPA:

+

SimpleDateFormat is not thread-safe

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/found-a-bug.html ============================================================================== --- websites/staging/openjpa/trunk/content/found-a-bug.html (added) +++ websites/staging/openjpa/trunk/content/found-a-bug.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Found a Bug?

+

If you think you've found a problem with OpenJPA, there are several ways to +proceed.

+

You can begin by raising the issue on the OpenJPA User or Developer mailing +lists (see Mailing Lists +).

+

You can also search JIRA, our issue-tracking system, to see if the problem +has already been noted (visit JIRA +). If the issue is not listed there, you can add a new JIRA issue +describing it. Please include detailed steps to reproduce the problem.

+

If you have a fix for the issue, you can generate a patch file to send the +fix to us. You need to check out the current source code from Subversion +(see Source Code +), make the necessary changes (see [Coding Standards] +), and then do a full build with all tests enabled (see [Building] +) and make sure the unit tests runs as expected (try {{maven clean +install}} to run a full build), and of course, confirm that the problem is +actually fixed. Then, go to the root directory of your OpenJPA checkout, +and run a command like {{svn diff > +OPENJPA--.patch}} to generate a patch file.

+

To submit a patch, create an issue in JIRA that describes the problem, add +your patch file as an attachment (don't forget to select the "Grant license +to ASF for inclusion in ASF works" option), and then edit the JIRA to +select the Patch Available + check box. Please include detailed steps to reproduce the problem in the +issue description, and a test case in the patch where possible (see [Testing] +).

+

For larger contributions, like new features or more complex bug fixes, you +should also have an Individual Contributor License Agreement + on file with the ASF.

+

Thanks for working with us to improve Apache OpenJPA!

+

+

Reporting Security Vulnerabilities

+

The Apache Software Foundation takes a very active stance in eliminating +security problems and denial of service attacks against the code we +provide.

+

We strongly encourage folks to report any such problems discovered in +OpenJPA to our private PMC mailing list mailto:private@openjpa.apache.org + first, before disclosing them in a public forum.

+

Please note that the private PMC mailing list should only be used for +reporting undisclosed security vulnerabilities and managing the process of +fixing such vulnerabilities until they are made public. We will not accept +regular bug reports or other general user queries at this address.

+

If you need to report a bug that is already a disclosed security +vulnerability, please use the regular bug reporting process above.

+

Questions about:

+
    +
  • how to securely configure OpenJPA
  • +
  • if a vulnerability applies to your particular application or OpenJPA level
  • +
  • obtaining further information on a published vulnerability
  • +
  • availability of patches and/or new releases
  • +
+

should be address to the users mailing list. Please see the Mailing Lists + page for details of how to subscribe.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/get-involved.html ============================================================================== --- websites/staging/openjpa/trunk/content/get-involved.html (added) +++ websites/staging/openjpa/trunk/content/get-involved.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Join the Apache OpenJPA Community

+

The Apache OpenJPA project is being built by the open source community for +the open source community - we welcome your input and contributions!

+

+

What we are looking for

+
    +
  • Source code and fixes contributions
  • +
  • Test cases for issues encountered during application development
  • +
  • Documentation assistance
  • +
  • Product and feature suggestions
  • +
  • Detailed and constructive feedback
  • +
  • Articles and whitepapers
  • +
+

+

How do I Contribute?

+
    +
  • To discuss Apache OpenJPA topics check out the Mailing lists +.
  • +
  • Bugs and other issues can be posted on the project JIRA +.
  • +
+

+

I have encountered an issue with OpenJPA. What do I do now?

+
    +
  • Post a message to OpenJPA User's list to discuss the issue.
  • +
  • Search existing issues + to see whether someone had already encountered the same issue.
  • +
  • If this issue is never encountered before, create a JIRA issue +.
  • +
  • Develop a test case to demonstrate the issue. Here are some useful tips and guidelines + on how to develop a test case to contribute to OpenJPA repository.
  • +
  • Attach the new test to JIRA issue.
  • +
  • Check out the Found a Bug + page for more details on creating and submitting patches.
  • +
+

+

I have encountered an issue with OpenJPA and have fixed it in the

+

OpenJPA source code. How do I get the changes into OpenJPA?

+
    +
  • Create a JIRA issue + that describes the changes you've made (you'll need an Apache JIRA account +to do this).
  • +
  • Check out the OpenJPA source code and make your changes.
  • +
  • Create test cases to validate your changes. Here are some useful tips and guidelines + on how to develop a test case to contribute to OpenJPA repository.
  • +
  • 'svn add' any new files.
  • +
  • Run 'mvn test -Dtest=' to validate your change. You need +to specify the test to run by its simple name without package name.
  • +
  • Run the checkin tests by running 'mvn test' for any possible +regression. This should take 20-50 minutes or so depending on the release +branch.
  • +
  • Check out the Found a Bug + page for more details on creating and submitting patches.
  • +
  • Wait for a committer to review and check in your changes.
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/getting-started.html ============================================================================== --- websites/staging/openjpa/trunk/content/getting-started.html (added) +++ websites/staging/openjpa/trunk/content/getting-started.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Notes

+

These instructions detail the steps required to run a give sample for a number of different environments. You can substitute any of the directories in the [binary download](binary-download.html) +\examples\ directory for hellojpa in the instructions below to run a +different sample.

+

+

Getting Started with the Eclipse

+
    +
  1. Download the OpenJPA binary release from the downloads + page and unpack it by double-clicking it.
  2. +
  3. Launch Eclipse (this sample was tested with Eclipse 3.2.1, but any recent +version should work).
  4. +
  5. Select the File menu, traverse to the New sub-menu, and select +Project.
  6. +
  7. On the Select a wizard page, select Java Project from Existing Ant +Buildfile, then click the Next button.
  8. +
  9. Hit the Browse button next to the Ant Buildfile field, and navigate +to the unpacked OpenJPA zip file on the desktop, then traverse through +examples, then hellojpa, and select the build.xml file and hit the +Open button.
  10. +
  11. Hit the Finish button on the wizard.
  12. +
  13. A new project will open, containing the OpenJPA jar and all its +dependencies.
  14. +
  15. On the Package Explorer, expand the top-level folder, then the +examples folder, then hellojpa.
  16. +
  17. Select the build.xml file in the hellojpa folder (note that there is +also a build.xml file in the parent folder, which should not be +selected). Right-click the build.xml file, and select the Run As +sub-menu, then select Ant Build.
  18. +
  19. The database will be initialized (using the stand-alone Derby database, +which is included with the OpenJPA distribution) and the Main.java class +will be run. In the Console, you should see the text Hello +Persistence!.
  20. +
  21. Congratulations! You have run your first sample program using OpenJPA. +Examine the Main.java example program, as well as the Message.java +entity class, play with them by adding fields and working on new +persistence operations. Have fun!
  22. +
+

+

Getting Started with the Console

+
    +
  1. Ensure that you have Apache Ant + installed (this sample was tested with ant 1.6.5, but any recent version +should work).
  2. +
  3. Download the OpenJPA binary release from the downloads + page and unpack it by double-clicking it.
  4. +
  5. Launch a console, such as cmd.exe on Windows, Terminal.app on Mac, or +xterm on UNIX.
  6. +
  7. Change directories to the Desktop, then cd to the unpacked OpenJPA +folder.
  8. +
  9. cd to the examples subdirectory, then to the hellojpa subdirectory.
  10. +
  11. Run ant, which will compile the classes and run the sample application. +At the end of the build, you should see the text Hello Persistence!.
  12. +
  13. Congratulations! You have run your first sample program using OpenJPA. +Examine the Main.java example program, as well as the Message.java +entity class, play with them by adding fields and working on new +persistence operations. Have fun!
  14. +
+

+

Getting Started with Netbeans

+
    +
  1. Download the OpenJPA binary release from the downloads + page and unpack it by double-clicking it.
  2. +
  3. Launch Netbeans (this sample was tested with Netbeans 5.5, but any recent +version should work).
  4. +
  5. Select the File menu and select New Project.
  6. +
  7. On the New Project page, select Category:General Projects:Java +Project with Existing Ant Script, then click the Next button.
  8. +
  9. Press the Browse button next to the Location field, and navigate to +the unpacked OpenJPA directory
  10. +
  11. Press the Browse button next to the Build Script field, and navigate +to the unpacked OpenJPA directory through examples, then hellojpa, and +select the build.xml file and press the Open button.
  12. +
  13. Type a name for the project, press Set as Main Project and press the +Next button on the wizard.
  14. +
  15. Press Next to accept the Build and Run Actions.
  16. +
  17. On the Source Package Folders page, press Add Folder, select the +examples folder, and press Next.
  18. +
  19. On the Java Sources Classpath page, press Add JAR/Folder and select +the openjpa-x.x.x/lib/geronimo-jpa_3.0_spec-1.0.jar which contains the JPA +API classes which is used to compile against.
  20. +
  21. Press Finish
  22. +
  23. A new project will open, containing the OpenJPA jar and the examples +source files.
  24. +
  25. On the Package Explorer, expand the top-level folder, then the +examples folder, then hellojpa.
  26. +
  27. Navigate to the build.xml file in the hellojpa folder (note that +there is also a build.xml file in the parent folder, which should not be +used). Right-click the build.xml file, and select the Run Target +sub-menu, then select run.
  28. +
  29. The database will be initialized (using the stand-alone Derby database, +which is included with the OpenJPA distribution) and the Main.java class +will be run. In the Console, you should see the text Hello +Persistence!.
  30. +
  31. Congratulations! You have run your first sample program using OpenJPA. +Examine the Main.java example program, as well as the Message.java +entity class, play with them by adding fields and working on new +persistence operations. Have fun!
  32. +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot1.JPG ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot1.JPG ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot2.JPG ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot2.JPG ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot3.JPG ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/OpenBooks.ScreenShot3.JPG ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/OpenTrader-login.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/OpenTrader-login.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/OpenTrader-screenshot.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/OpenTrader-screenshot.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/asf_logo_wide2.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/asf_logo_wide2.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/check.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/check.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/class_diagram.jpeg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/class_diagram.jpeg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/datacache-plugin/pid.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/datacache-plugin/pid.jpg ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/openjpa/trunk/content/images/datacache-plugin/pid.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/datacache-plugin/screen.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/datacache-plugin/screen.jpg ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/openjpa/trunk/content/images/datacache-plugin/screen.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/deploymentModes.GIF ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/deploymentModes.GIF ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/docs_16.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/docs_16.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/embeddables.jpeg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/embeddables.jpeg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/embeddables_entities.jpeg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/embeddables_entities.jpeg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/header-bg3.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/header-bg3.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/ig_domain_model.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/ig_domain_model.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/image001.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image001.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image002.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image002.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image003.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image003.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image004.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image004.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image005.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image005.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image006.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image006.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image007.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image007.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image008.jpg ============================================================================== Binary file - no diff available. From commits-return-10190-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:03 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D5063E0CC for ; Sun, 9 Dec 2012 13:15:01 +0000 (UTC) Received: (qmail 84692 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84466 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84343 invoked by uid 99); 9 Dec 2012 13:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:56 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 8C3492388C80 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [15/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.8C3492388C80@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/jest-examples.html ============================================================================== --- websites/staging/openjpa/trunk/content/jest-examples.html (added) +++ websites/staging/openjpa/trunk/content/jest-examples.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JEST in Action

+

+

+

Description of a Simple JEST-enabled Web Application

+

A sample is available to demonstrate JEST usage. You will find the example +in OpenJPA code repository under openjpa-examples/jest tree with its +source code and deployment descriptors WEB-INF/web.xml and +META-INF/persistence.xml. The example is a simple servlet +demo.SimpleApp that instantiates a persistent unit named estdemo +and populates a database with few sample records of two persistent entities +demo.Actor and demo.Movie.
+

+

+

Persistence Unit Initialization

+

The following code from demo.SimpleApp shows the initialization +process at the servlet's init() method.

+

Simple Servlet initializes a pooled Persistent Unit

+
public class SimpleApp extends HttpServlet {
+    EntityManagerFactory _emf;
+    private static String UNIT_NAME = "jestdemo";
+
+    @Override 
+    public void init(ServletConfig config) throws ServletException {
+       super.init(config);
+        config.getServletContext().log("Initializing persistence unit [" + UNIT_NAME + "]");
+        try {
+            Map<String,Object> props = new HashMap<String, Object>();
+            props.put("openjpa.EntityManagerFactoryPool", "true");
+            _emf = Persistence.createEntityManagerFactory(UNIT_NAME,props);
+            new DataLoader().populate(_emf.createEntityManager());
+        } catch (Exception e) {
+            throw new ServletException(e);
+        }
+        config.getServletContext().log("Initialized with persistence unit [" + UNIT_NAME + "]");
+    }
+
+ + +

It is important to notice that the persistent unit is instantiated so +that the EntityManagerFactory is pooled by OpenJPA. The way to achieve +that is to set configuration property openjpa.EntityManagerFactoryPool +to true. It is also important to note that this property is recognized +only when passed via runtime and not if it were specified in +META-INF/persistence.xml unlike other OpenJPA configuration properties.

+

Besides instantiating the persistent unit, the servlet does not do anything +else other than serving a welcome index.html web page as its +doGet() method shows:

+

Simple Servlet that only serves a single index.html page

+
/**
+ * The only response by this application is an <code>index.html</code> file.
+ */
+@Override
+protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+        throws ServletException, IOException {
+    resp.setContentType("text/html");
+    OutputStream out = resp.getOutputStream();
+    InputStream in = getClass().getResourceAsStream("index.html");
+    for (int c = 0; (c = in.read()) != -1;) {
+        out.write((char)c);
+    }
+}
+
+ + +

+

Deployment Descriptor to enable JEST

+

The sample web application deploys demo.SimpleApp servlet and JEST +servlet. The essential aspect of the deployment descriptor +WEB-INF/web.xml is shown below

+

web.xml deployment descriptor (edited version)

+
<web-app version="2.4" 
+      xmlns="http://java.sun.com/xml/ns/j2ee" 
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    <display-name>Demo Application with JEST Servlet</display-name>  
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+    <servlet>
+        <servlet-name>demo</servlet-name>
+        <servlet-class>demo.SimpleApp</servlet-class>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>demo</servlet-name>
+        <url-pattern>/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet>
+        <servlet-name>jest</servlet-name>   
+        <servlet-class>org.apache.openjpa.persistence.jest.JESTServlet</servlet-class>
+        <init-param>
+            <param-name>persistence.unit</param-name>
+            <param-value>jestdemo</param-value>
+        </init-param>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>jest</servlet-name>
+        <url-pattern>/jest/*</url-pattern>
+    </servlet-mapping>
+
+</web-app>
+
+ + +

Discovery of Persistent Unit

+

As can be seen in WEB-INF/web.xml above, the JEST servlet +org.apache.openjpa.persistence.jest.JESTServlet needs to know the +persistent unit name jestdemo to discover the actual +EntityManagerFactory instantiated by its sibling demo.SimpleApp +servlet. This discovery of an EntityManagerFactory instantiated by +another component is possible because the said + EntityManagerFactory is being pooled by OpenJPA. A more general +discovery mechanics where JEST can discover a EntityManagerFactory +instantiated and injected by the container + would be available in future.

+

Building the sample application

+

An Ant build script build.xml is provided and a build.properties to +adjust for local settings. To suit your local environment, please edit the +build.properties for OpenJPA library and META-INF/persistence.xml +for database specifics. The supplied build file compiles two persistent +domain classes demo.Actor and demo.Movie, enhanced them and +packages them in an web archive demo.war. The script assumes that the +OpenJPA library and the JDBC driver (the sample persistence descriptor uses +MySQL, by deafult) are available in shared library of the Servlet Container +and hence does not package these libraries in the web archive +demo.war.

+

Deploying the sample application

+

The next step is to deploy this simple web archive demo.war in a +Servlet Container such as Tomcat or a a JEE container. We do not describe +these steps because they are fairly standard.
+

+

JEST in action

+

Once the sample web application is deployed, say in Tomcat running on +localhost:8080, open the web browser http://localhost:8080/demo and +you should see the web page served by demo.SimpleApp. This step +initializes demo.SimpleApp and hence the persistence unit jestdemo.

+

Now, if you go to URL http://localhost:8080/demo/jest/, the JEST +welcome page will be displayed -- which is JavaScript enabled web page that +demonstrates currently available JEST facilities such as finding or +querying for instances.
+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jest-representation.html ============================================================================== --- websites/staging/openjpa/trunk/content/jest-representation.html (added) +++ websites/staging/openjpa/trunk/content/jest-representation.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JEST response is either XML or JSON.

+

+

XML Representation

+

JEST represents persistent Java object graph in a schema-compliant XML. The +schema is metamodel-driven and hence invariant to particular domain model. +The schema jest-instance.xsd is as follows:

+

Metamodel-driven schema for JEST XML
+ + + +

+
    <xsd:annotation>
+        <xsd:documentation><![CDATA[
+ Describes closure of managed persistence instance.
+ Each instance is described by all its loaded persistent attribute.
+ The related instances are resolved within the document root.
+ Document root represents zero or more instances.
+
+ The file must be named "jest-instance.xsd".
+     ]]>
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <!-- The root element of the document contains zero or more instances         -->
+    <xsd:element name="instances">
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element name="uri"         minOccurs="1" maxOccurs="1" type="xsd:anyURI"/>
+                <xsd:element name="description" minOccurs="0" maxOccurs="1" type="xsd:string"/>
+                <xsd:element name="instance"    minOccurs="0" maxOccurs="unbounded" type="instance-type" />
+            </xsd:sequence>
+            <xsd:attribute name="version" type="xsd:string" />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- The root element for a single instance. Children of this element are persistent attribute -->
+    <!-- Persistent Attributes occur in order. The order is determined by the attribute category.  -->
+    <!-- Attribute category is determined by the enumerated PersistentAttributeType defined in     -->
+    <!-- javax.persistence.metamodel and then further refined by id, version, lob and enum.       -->
+    <!-- See org.apache.openjpa.persistence.jest.MetamodelHelper for further details.         -->
+    <xsd:complexType name="instance-type">
+        <xsd:sequence>
+            <xsd:element name="id"                 type="basic-attr-type"      
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="version"            type="basic-attr-type"      
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="basic"              type="basic-attr-type"      
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="enum"               type="basic-attr-type"      
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="embedded"           type="instance-type"        
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="lob"                type="lob-attr-type"        
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="one-to-one"         type="singular-attr-type"   
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="many-to-one"        type="singular-attr-type"   
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="element-collection" type="collection-attr-type" 
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="one-to-many"        type="collection-attr-type" 
+                            minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="many-to-many"       type="map-attr-type"        
+                            minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID" use="required" />
+    </xsd:complexType>
+
+    <!-- A reference to another instance within the same(?) document -->
+    <xsd:complexType name="ref-type">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:string">
+                <xsd:attribute name="id" type="xsd:IDREF"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- A null reference               -->
+    <xsd:complexType name="ref-null">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:string">
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- Basic Attribute has a name and its runtime type   -->
+    <!-- non-null value appears as text content.           -->
+    <!-- null value appears as attribute with empty text . -->
+    <xsd:complexType name="basic-attr-type">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:string">
+                <xsd:attribute name="name" type="xsd:string" use="required" />
+                <xsd:attribute name="type" type="xsd:string" use="required" />
+                <xsd:attribute name="null" type="xsd:boolean" />
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- Large Binary Objects (LOB) represented as hex array -->
+    <xsd:complexType name="lob-attr-type">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:hexBinary">
+                <xsd:attribute name="name" type="xsd:string" use="required" />
+                <xsd:attribute name="type" type="xsd:string" use="required" />
+                <xsd:attribute name="null" type="xsd:boolean" />
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- Singular attribute is a reference to another instance or a null reference. -->
+    <xsd:complexType name="singular-attr-type">
+        <xsd:choice>
+            <xsd:element name="null" type="ref-null" />
+            <xsd:element name="ref"  type="ref-type" />
+        </xsd:choice>
+        <xsd:attribute name="name" type="xsd:string" use="required" />
+        <xsd:attribute name="type" type="xsd:string" use="required" />
+    </xsd:complexType>
+
+    <!-- Collection attributes list their members with their runtime type -->
+    <!-- Members can be basic or other managed instance    -->
+    <xsd:complexType name="collection-attr-type">
+        <xsd:sequence>
+            <xsd:element name="member" type="member-type" minOccurs="0" maxOccurs="unbounded" />
+        </xsd:sequence>
+        <xsd:attribute name="name"        type="xsd:string" use="required" />
+        <xsd:attribute name="type"        type="xsd:string" use="required" />
+        <xsd:attribute name="member-type" type="xsd:string" use="required" />
+    </xsd:complexType>
+
+    <!-- Map attributes list their entries with runtime type of key and value    -->
+    <!-- Both key and value can be independently basic or other managed instance -->
+    <xsd:complexType name="map-attr-type">
+        <xsd:sequence>
+            <xsd:element name="entry" type="entry-type" />
+        </xsd:sequence>
+        <xsd:attribute name="name"       type="xsd:string" use="required" />
+        <xsd:attribute name="type"       type="xsd:string" use="required" />
+        <xsd:attribute name="key-type"   type="xsd:string" use="required" />
+        <xsd:attribute name="value-type" type="xsd:string" use="required" />
+    </xsd:complexType>
+
+    <!-- Value of a member of basic type. -->
+    <xsd:complexType name="basic-value-type">
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:string">
+                <xsd:attribute name="null" type="xsd:boolean" />
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- Value of a member of a collection/map -->
+    <xsd:complexType name="member-type">
+        <xsd:choice>
+            <xsd:element name="basic" type="basic-value-type" />
+            <xsd:element name="null"  type="ref-null" />
+            <xsd:element name="ref"   type="ref-type" />
+        </xsd:choice>
+    </xsd:complexType>
+
+    <!-- Denotes entry of a map element -->
+    <xsd:complexType name="entry-type">
+        <xsd:sequence>
+            <xsd:element name="key"   type="member-type" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="value" type="member-type" minOccurs="1" maxOccurs="1" />
+        </xsd:sequence>
+    </xsd:complexType>
+
+</xsd:schema>
+
+ + +

Example of a serialized object graph

+

The example shows a Person (primary key p1) who is her own partner.

+

Example of Object Graph with Circular Reference

+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<instances>
+  <instance id="Person-p1">
+    <basic name="id" type="String">p1</basic>
+    <basic name="dob" type="Date">Fri Sep 08 00:00:00 CDT 1989</basic>
+    <basic name="firstName" type="String">Mary</basic>
+    <basic name="gender" type="Gender">Female</basic>
+
+    <basic name="lastName" type="String">Smith</basic>
+    <singular name="address" type="Address">
+      <instance id="Address-101">
+    <basic name="id" type="long">101</basic>
+    <basic name="country" type="String">C1</basic>
+    <basic name="state" type="String">State1</basic>
+    <basic name="street" type="String">Street1</basic>
+
+    <basic name="zip" type="int">10001</basic>
+      </instance>
+    </singular>
+    <singular name="partner" type="Person">
+      <ref id="Person-p1"/>
+    </singular>
+  </instance>
+</instances>
+
+ + +

+

JSON Representation

+

String-based representation of persistent Java object graphs in either XML +or more succinct JSON form has to address the critical issue of circular +reference, because persistent object graphs +often contains circular reference. JSON, at this point of writing, does not +address circular reference. Hence JEST introduces special semantics within +JSON format to refer to +instances in a serialized graph. However, the enhanced JSON can be parsed +by standard JSON parsers.

+

Enhanced JSON representation in JEST introduces two special fields named +$id and $ref to address circular reference. Each JSON object +carries a $id field whose value is the persistent identity of the +corresponding entity. When JSON serialization encounters a circular +reference a
+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jest-syntax.html ============================================================================== --- websites/staging/openjpa/trunk/content/jest-syntax.html (added) +++ websites/staging/openjpa/trunk/content/jest-syntax.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JEST URI Syntax

+

JEST defines URI syntax to access persistent resources over HTTP.

+

For example, to find a persistent Person instance with primary key 1234 and +receive the result in JSON format will be:

+

http://www.example.com:8080/jest/find/format=json?type=Person&1234

+

The formal notation of a JEST URI is

+
  URI := http://{host}[:port]/{context}/{action}[/qualifier]* [?argument] [&argument]*
+
+ + +

The URI syntax rules, in the light of the above example, are as follows:

+
    +
  • +

    protocol is always http

    +
  • +
  • +

    host (www.example.com) and optional port number locates the +JEST servlet

    +
  • +
  • +

    context (jest) identifies the context path of the JEST servlet. +The context path is the servlet name + as specified in the web deployment descriptor for JEST servlet

    +
  • +
  • +

    action (find) is the first segment of the servlet path. + Allowed actions are find, query, domain, properties +etc.

    +
  • +
  • +

    zero or more qualifier may constitute the servlet path. Each +qualifier is separated by / character.

    +
  • +
  • A qualifier must have a key and an optional value.
  • +
  • The qualifier key and value, if present, are separated by = sign.
  • +
  • A qualifier key is a valid Java identifier. The exact key is +conditional on the action. For example, find action + accepts format qualifier, query action accepts single, +named, maxResult, firstResult, + format as qualifiers. + In the example above, format=json qualifies that the response of +find action be formatted as JSON.
  • +
  • +

    A qualifier may or may not have a value. For example, maxResult +qualifier for query action must have + an integer value while single qualifier does not.

    +
  • +
  • +

    zero or more argument may follow after the path by ? character.

    +
  • +
  • each argument is separated by & character
  • +
  • An argument has an optional key and must have a value.
  • +
  • +

    The argument key, if present, and value are separated by = sign.

    +
  • +
  • +

    some actions may enforce mandatory argument(s). For example, a find +action must have type argument + and at least one more argument for the primary key. A query action +must have q argument etc.

    +
  • +
+

+

List of supported actions, qualifiers and arguments

+

The following sections tabulates the currently supported actions and +corresponding qualifiers and arguments. +A bold font denotes qualifier or argument as mandatory.

+

+

Action: find

+

Returns the result of a find() operation.
+

+ + + + + + +
qualifier-key qualifier-value Comment
format xml or json default is xml
plan name of one or more fetch +plan(s). Each name separated by comma character.
e.g. +find/plan=onlyBasicFields?type=Person&1234
where onlyBasicFields is +name of a pre-defined Fetch Group
+ + + + + + + + +
argument-key argument-value Comment
type entity name Fully-qualified Java class name or +alias of the entity
primary key value can be used for simple identity +without the id property name
e.g. /find?type=Person&1234
id property primary key value Used for compound primary keys
e.g. +/find?type=Person&firstName=John&lastName=Doe
+ +

+

Action : query

+

Returns the result of a Query.getResultList() or +Query.getSingleResult() operation.
+

+ + + + + + + + + +
qualifier-key qualifier-value Comment
format xml or json default is xml
plan name of one or more fetch plan(s). Each +name separated by comma character.
single enforces single instance as query result +
e.g. {{/query/single?q=select p from +Person p where p.name=:x&x=John}}
named interprets the q argument value as a +named query
e.g. +/query/named?q=PersonByName&x=John
where PersonByName is named query +with x its named parameter
+ + + + + + + + +
argument-key argument-value Comment
q JPQL or Named Query e.g. /query/named?q=AllPerson
or {{/query?q=select p from Person +p}}
e.g. {{/query?q=select p from +Person p where p.firstName=:x&x=John}}
bind parameter parameter value the values are converted to match +the target type
e.g. {{/query?q=select p from +Person p where p.gender=:g&g=MALE}}
+ +

+

Action : domain

+

Returns the domain model in XML format.

+

Accepts no qualifier. +Accepts no argument.

+

+

Action : properties

+

Returns the configuration properties in HTML format.

+

Accepts no qualifier. +Accepts no argument.

+

+

Formal syntax:

+
URI := http://{host}[:port]/{context}/{action}[/qualifier]* [?argument][&argument]*
+
+context         := JEST servlet context root
+action          := find|query|domain|properties
+qualifier       := qualifier-key[=qualifier-value]
+argument        := [argument-key=] argument-value
+qualifier-key   := any valid Java identifier 
+qualifier-value := string
+argument-key    := string 
+argument-value  := string
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10187-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:03 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9FD5EE0C8 for ; Sun, 9 Dec 2012 13:15:01 +0000 (UTC) Received: (qmail 84517 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84385 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84346 invoked by uid 99); 9 Dec 2012 13:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:56 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 816E12388C7E for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [14/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.816E12388C7E@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Propchange: websites/staging/openjpa/trunk/content/images/image008.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image009.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image009.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image010.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image010.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image011.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image011.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image012.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image012.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image013.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image013.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image014.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image014.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image015.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image015.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image016.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image016.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image017.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image017.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image018.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image018.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image019.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image019.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image020.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image020.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image021.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image021.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image022.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image022.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image023.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image023.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image024.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image024.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image025.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image025.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image026.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image026.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/image027.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/image027.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/information.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/information.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/main.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/main.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/mmb.PNG ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/mmb.PNG ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/navigator.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/navigator.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/openjpa-logo.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/openjpa-logo.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/paint_200x150.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/paint_200x150.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/schema.jpeg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/schema.jpeg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/targets.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/targets.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/warning.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/warning.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/openjpa/trunk/content/images/welcome-page.JPG ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/welcome-page.JPG ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/index.html ============================================================================== --- websites/staging/openjpa/trunk/content/index.html (added) +++ websites/staging/openjpa/trunk/content/index.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Welcome to the Apache OpenJPA project

+

Apache OpenJPA is a Java persistence project at The Apache Software Foundation + that can be used as a stand-alone POJO + persistence layer or integrated + into any Java EE compliant container and many other lightweight +frameworks, such as Tomcat and Spring.

+

The 1.x releases + (1.2.2 is the latest) are a production ready, feature-rich, compliant +implementation of the Java Persistence API (JPA) 1.0 part of the JSR-220 Enterprise Java Beans 3.0 + specification, which pass the Sun JPA 1.0b Technology Compatibility Kit.

+

The 2.x releases + (2.2.0 is the latest) are a production ready, compliant implementation of +the JSR-317 Java Persistence 2.0 + specification, which is backwards compatible to the JPA 1.0 specification +and passes the Sun JPA 2.0 Technology Compatibility Kit.

+

The upcoming 2.3 release is based off of the 2.2.x release stream and will +contain some additional features (TBD).

+

+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + +
  + Download Apache OpenJPA

+
 
+
+ + + + + + + + + + + + + + + +
  + Quick Start Guide

+
 
+
+ + + + + + + + + + + + + + + +
  + User's Guide

+
 
+

+

+

Events and News

+

+
+ + +

+

+ +

+ OpenJPA 2.2.0 Released +
+

+

+

The Apache OpenJPA community is proud to announce the release of OpenJPA 2.2.0.

+

Please visit our project website to learn more about Apache OpenJPA and
+ how to download or include our persistence provider in your builds.

+

http://openjpa.apache.org/

+

Thanks,
+ Apache OpenJPA PMC

+

+
+

+

+
+

+

+ + + +

+ OpenJPA 2.1.1 Released

+

+

+

+

The Apache OpenJPA community is proud to announce the maintenance
+ release of OpenJPA 2.1.1.

+

Please visit our project website to learn more about Apache OpenJPA and
+ how to download or include our persistence provider in your builds.

+

http://openjpa.apache.org/

+

Thanks,
+ Apache OpenJPA PMC

+
+
+

+

+
+ + + + + +

+

OpenJPA 2.1.0 Released + +

+

+

The Apache OpenJPA community is proud to announce the maintenance
+ release of OpenJPA 2.0.1. As with the prior 2.0.0 release, this
+ distribution is based on the final JSR 317 Java Persistence API, Version
+ 2.0 specification and passes the JPA 2.0 TCK.

+

Please visit our project website to learn more about Apache OpenJPA and
+ how to download or include our persistence provider in your builds.

+

http://openjpa.apache.org/

+

Thanks,
+ Apache OpenJPA PMC

+
+
+

+

+
+ +

+

+ + +

+ REST on OpenJPA +

+

+
+

JEST: REST on OpenJPA has been published as a featured article in IBM developerworks

+

Also there is an upcoming presentation on JEST in San Francisco Java User Group on February 8, 2011.

+

+

+

+

+

Resources

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/integration.html ============================================================================== --- websites/staging/openjpa/trunk/content/integration.html (added) +++ websites/staging/openjpa/trunk/content/integration.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Runtime Dependencies

+

The binary release download of OpenJPA includes all of the code needed to +run in a stand-alone Java SE JVM or within a Java EE application server.

+

See Build and Runtime Dependencies + for details on the required Java levels and runtime artifacts.

+

+

Integration with Apache TomEE

+

Apache TomEE is a distribution of Tomcat bundled with OpenJPA and the other necessary components to make it a Java EE 6 compliant Web Profile implementation. Apache TomEE 1.0.0 and later include OpenJPA 2.2.x. TomEE works in Eclipse using the Tomcat adapter and you can simply deploy a web archive that contains a persistence unit without the need to include OpenJPA in the webapp. Unlike putting OpenJPA in Tomcat, TomEE supports full container managed EntityManagers and JTA persistence units.

+

+

Integrating with Apache Geronimo:

+

Apache Geronimo + V2.0.2 through 2.1.3 include OpenJPA 1.0.x and you can simply deploy an +enterprise archive, web archive, or EJB-JAR that contains a persistence +unit. +Apache Geronimo V2.1.4 includes OpenJPA 1.2.x and you can simply deploy an +enterprise archive, web archive, or EJB-JAR that contains a persistence +unit.

+

+

Integrating with GlassFish:

+

Since GlassFish + implements the Java Persistence API 1.0 SPI, it is very easy to use +OpenJPA in Glassfish. See Sahoo's blog + for further details.

+

+

Integrating with Sun Java System Application Server 9.x:

+

Since Sun Java System Application Server is based on code from the GlassFish project +, the instructions to use OpenJPA in GlassFish and Sun Java System +Application Server remain the same.

+

+

Integrating with IBM WebSphere Application Server:

+

See IBM WebSphere Developer Technical Journal: Leveraging OpenJPA with WebSphere Application Server V6.1.

+

Also, WebSphere Application Server V6.1 can download and install the EJB3 Feature Pack +, which includes OpenJPA 1.0.x.

+

WebSphere Application Server V7.0 + includes OpenJPA 1.2.x and you can simply deploy an enterprise archive, web archive, or EJB-JAR that contains a persistence unit.
+

+

The WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API 2.0 + includes OpenJPA 2.0 and provides the use of the JPA 2.0 programming model +within Java EE5 and OSGi applications.

+

+

Integrating with IBM WebSphere Application Server Community Edition:

+

WebSphere Application Server Community Edition + V2.0.0.2 through 2.1.1.1 include OpenJPA 1.0.x and you can simply deploy +an enterprise archive, web archive, or EJB-JAR that contains a persistence unit.

+

WebSphere Application Server Community Edition V2.1.x releases after +V2.1.1.1 will include OpenJPA 1.2.x and you can simply deploy an enterprise +archive, web archive, or EJB-JAR that contains a persistence unit.

+

Integrating with JOnAS Application Server V 4.X (J2EE 1.4 / EJB2.1 Container):

+

OpenJPA can successfully be integrated with the JOnAS 4.x Application +server family. I succeeded in configuring OpenJPA to use managed JTA +transactions of JOnAS, which means that you can use OpenJPA in parallel to +EJB 2.1 CMP/BMP Entity Beans within the SAME container managed +transactions of your JOnAS Application Server. See Hans Prueller's blog entry + for further details.

+

+

Integrating with BEA Weblogic Server 10:

+

BEA WebLogic Server 10 + includes OpenJPA. To use OpenJPA in a WebLogic Server environment, you can +simply deploy an enterprise archive, web archive, or EJB-JAR that contains +a persistence unit. The default persistence provider in WebLogic Server is +OpenJPA + Kodo, so you can either leave the element out of your +persistence.xml file, or set it to +org.apache.openjpa.persistence.PersistenceProviderImpl.

+

BEA Kodo + is built on top of OpenJPA, and so includes the OpenJPA jars.

+

+

Integrating with Spring:

+

It is not necessary to configure a Spring loadTimeWeaver when using OpenJPA +build time enhancement. The following warning message will be logged by +OpenJPA when creating an EntityManagerFactory but it can be safely ignored.

+
+

WARN [main] while registering a ClassTransformer with PersistenceUnitInfo: name 'PuName', root URL [file:/.../]. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available.

+
+

Please see the Spring documentation + for more information.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/intro.html ============================================================================== --- websites/staging/openjpa/trunk/content/intro.html (added) +++ websites/staging/openjpa/trunk/content/intro.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Apache OpenJPA is a Java persistence project at The Apache Software Foundation + that can be used as a stand-alone POJO + persistence layer or integrated + into any Java EE compliant container and many other lightweight +frameworks, such as Tomcat and Spring.

+

The 1.x releases + (1.2.2 is the latest) are a production ready, feature-rich, compliant +implementation of the Java Persistence API (JPA) 1.0 part of the JSR-220 Enterprise Java Beans 3.0 + specification, which pass the Sun JPA 1.0b Technology Compatibility Kit.

+

The 2.x releases + (2.2.0 is the latest) are a production ready, compliant implementation of +the JSR-317 Java Persistence 2.0 + specification, which is backwards compatible to the JPA 1.0 specification +and passes the Sun JPA 2.0 Technology Compatibility Kit.

+

The upcoming 2.3 release is based off of the 2.2.x release stream and will +contain some additional features (TBD).

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jconsole-datacache-plugin.html ============================================================================== --- websites/staging/openjpa/trunk/content/jconsole-datacache-plugin.html (added) +++ websites/staging/openjpa/trunk/content/jconsole-datacache-plugin.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JConsole DataCache Plugin

+

This plugin is used to extend the JConsole that is bundled as part of the 1.5 JDK +.

+

+

Download

+

The latest OpenJPA Tools JAR file can be download from the SNAPSHOT Repository + or can be built from the source code in svn by using Maven 2.2.1 and Java SE 6.

+

+

JSE Usage

+

This description assumes your application is running the on same machine as JConsole and application JVM matches the JConsole JVM.

+
    +
  1. +

    Start an OpenJPA application with the following configuration properties +set:

    +
    <property name="openjpa.DataCache" value="true"/>
    +<property name="openjpa.Instrumentation" value="jmx(Instrument='DataCache')"/>
    +
    + + +
  2. +
  3. +

    Launch JConsole and provide the openjpa-tools.jar via the -pluginpath +switch.

    +
    > [java_home]\bin\jconsole -pluginpath [path_to_openjpa-tools.jar]
    +
    + + +
  4. +
  5. +

    Select the PID which corresponds to your application.

    +

    pid

    +
  6. +
  7. +

    If all goes well, at this point you should see a tab labeled DataCache-[pu_name]-[n]

    +

    screen

    +
  8. +
+

+

JEE Usage

+

// In progress +http://wasdynacache.blogspot.com/2010/03/getting-jconsole-working-with-websphere.html

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10191-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:05 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E9121E0CF for ; Sun, 9 Dec 2012 13:15:01 +0000 (UTC) Received: (qmail 84760 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84732 invoked by uid 500); 9 Dec 2012 13:15:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84534 invoked by uid 99); 9 Dec 2012 13:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:54 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 756B32388C5D for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [10/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.756B32388C5D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/development.html ============================================================================== --- websites/staging/openjpa/trunk/content/development.html (added) +++ websites/staging/openjpa/trunk/content/development.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA Development

+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/documentation.html ============================================================================== --- websites/staging/openjpa/trunk/content/documentation.html (added) +++ websites/staging/openjpa/trunk/content/documentation.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

OpenJPA Documentation

+

The online OpenJPA documentation can be found here.

+

+

Latest (2.3.0-SNAPSHOT)

+ + + + + + + + + + + + + + + + + + + + + +
VersionHTML ManualHTML Manual (Single Page)PDF ManualJavadocsSchema
Nightly build (trunk)manualmanualmanualjavadocschema
+ + +

+

OpenJPA 2.2.x releases

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
VersionHTML ManualHTML Manual (Single Page)PDF ManualJavadocs
OpenJPA 2.2.1-SNAPSHOTmanualmanualmanualjavadoc
OpenJPA 2.2.0manualmanualmanualjavadoc
+ + +

+

OpenJPA 2.1.x releases

+ + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 2.1.2-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 2.1.1 + manual + manual + manual + manual +
OpenJPA 2.1.0 + manual + manual + manual + javadoc +
+ +

+

OpenJPA 2.0.x releases

+ + + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 2.0.2-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 2.0.1 + manual + manual + manual + javadoc +
OpenJPA 2.0.0 + manual + manual + manual + javadoc +
OpenJPA 2.0.0-beta3 + manual + manual + manual + javadoc +
OpenJPA 2.0.0-beta2 + manual + manual + manual + javadoc +
OpenJPA 2.0.0-beta + manual + manual + manual + javadoc +
OpenJPA 2.0.0-M3 + manual + manual + manual + javadoc +
+ +

+

OpenJPA 1.3.x releases

+ + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.3.0-SNAPSHOT + manual + manual + manual + javadoc +
+ +

+

OpenJPA 1.2.x releases

+ + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.2.3-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 1.2.2 + manual + manual + manual + javadoc +
OpenJPA 1.2.1 + manual + manual + manual + javadoc +
OpenJPA 1.2.0 + manual + manual + manual + javadoc +
+ +

+

OpenJPA 1.1.x releases

+ + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.1.0 + manual + manual + manual + javadoc +
+ +

+

OpenJPA 1.0.x releases

+ + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.0.5-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 1.0.4 + manual + manual + manual + javadoc +
OpenJPA 1.0.3 + manual + manual + manual + javadoc +
OpenJPA 1.0.2 + manual + manual + manual + javadoc +
OpenJPA 1.0.1 + manual + manual + manual + javadoc +
OpenJPA 1.0.0 + manual + manual + manual + javadoc +
+ +

+

Incubating releases

+ + + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 0.9.7 + manual + javadoc +
OpenJPA 0.9.6 + manual + javadoc +
OpenJPA 0.9.0 + manual + javadoc +
+
+
+ + + +
+ +
+ +
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/domain-model-browser.html ============================================================================== --- websites/staging/openjpa/trunk/content/domain-model-browser.html (added) +++ websites/staging/openjpa/trunk/content/domain-model-browser.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Persistent Domain Browser

+

A graphic visualization of persistence domain classes.

+
$ java org.apache.openjpa.tools.metamodel.MetamodelBrowser
+
+ + +

+

Classpath

+

The runtime classpath must include

+
    +
  • OpenJPA runtime libraries
  • +
  • The parent directory of persistence unit descriptor (META-INF/persistence.xml)
  • +
  • The directory of compiled domain classes
  • +
+

+ * The persistence unit descriptor must enumerate the domain classes in its <class> tag. + * Database connection is not required. +

+

+

A typical snapshot

+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10192-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:05 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4FC26E0D1 for ; Sun, 9 Dec 2012 13:15:05 +0000 (UTC) Received: (qmail 84904 invoked by uid 500); 9 Dec 2012 13:15:05 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84878 invoked by uid 500); 9 Dec 2012 13:15:05 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84862 invoked by uid 99); 9 Dec 2012 13:15:04 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:04 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:56 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 70FDE2388C2D for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [9/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.70FDE2388C2D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/committers.html ============================================================================== --- websites/staging/openjpa/trunk/content/committers.html (added) +++ websites/staging/openjpa/trunk/content/committers.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

The people listed below have made significant contributions to OpenJPA by +working long and hard to make quality software for the rest of the world to +use.

+

If you would like to contribute to OpenJPA, please see the wiki to find +areas where you can contribute. If there is nothing in there that suits +your interest, but you still have ideas, please feel free to suggest them +on the mailing lists +.

+

If you would like to become a committer, please see the Get Involved +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name Organization PMC Member
Abe WhiteOracle Corporation
Albert LeeIBM Corporation
Brian McCallister
Bryan Noll
Catalina Wei IBM Corporation
Craig L Russell Oracle Corporation
David Ezzio Oracle Corporation
David Wisneski IBM Corporation
Dianne Richards IBM Corporation
Donald Woods Oracle Corporation
Eddie O'Neil
Fay Wang IBM Corporation
Geir Magnusson Jr.Gilt Groupe
Heath Thomann IBM Corporation
Helen Xu IBM Corporation
Jeremy Bauer IBM Corporation
Joe Grassel IBM Corporation
Kevin Sutter IBM Corporation
Marc Prud'hommeaux
Mark Struberg
Michael Dick
Milosz Tylenda
Patrick Linkskey
Ravi Palacherla Oracle Corporation
Rick CurtisIBM Corporation
Srinivasa Segu Oracle Corporation
Stephen Kim
Tim McConnell IBM Corporation
+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/community.html ============================================================================== --- websites/staging/openjpa/trunk/content/community.html (added) +++ websites/staging/openjpa/trunk/content/community.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/css/type-settings-orig.css ============================================================================== --- websites/staging/openjpa/trunk/content/css/type-settings-orig.css (added) +++ websites/staging/openjpa/trunk/content/css/type-settings-orig.css Sun Dec 9 13:13:35 2012 @@ -0,0 +1,1250 @@ +/********************************************************************* + CSS Elements that are part of the confluence rendered xhtml + *********************************************************************/ + +body, p, ul, ol, .bodytext, .stepfield { + font-family: verdana,arial,helvetica,sans-serif; + font-size: 14px; + font-size-adjust: none; + font-style: normal; + font-font-variant: normal; + font-weight: normal; +## line-height: 140% + color: #000000; +} + +ul, ol { + font-size: 12px; +} +td, table, tr { + font-family: verdana,arial,helvetica,sans-serif; + font-size: 10px; + font-size-adjust: none; + font-style: normal; + font-font-variant: normal; + font-weight: normal; + line-height: normal; + color: #000000; +} + +.note { + border-style: solid; + border-width: 1px; + border-color: #F0C000; + background-color: #FFFFCE; + text-align:left; + padding: 5px 5px 5px 5px +} + +table.sectionMacro td, table.sectionMacro td p { + font-size: 14px; +## line-height: 150%; +} + +.wiki-content { + padding: 10px; + padding-left: 45px; +## line-height: 200%; +} + +.monospaceInput { + font:12px monospace +} + +.wiki-content p, .commentblock p { + margin: 0px; + margin-top: 10px; + padding: 0px; +} + +.wiki-content-preview { + padding: 5px; + border-left: 1px solid #3c78b5; + border-right: 1px solid #3c78b5; +} + +a sup img { + width:0px; + height:0px; +} + +A:link, A:visited, A:active, A:hover { + color: #880055; + text-decoration: none; + font-weight: bold; +} + +A:active, A:hover { + text-decoration: underline; + #color: #202020; + color: #880055; +} + +ul, ol { + margin-left: 25px; + margin-top: 5px; + margin-bottom: 5px; + padding: 10px; +} + +ul li { +list-style-image: url("../images/small-bullet-red.png"); +} +ul li ul li{ +list-style-image: url("../images/small-bullet-gray.png"); +} + +pre { + padding: 0px; + margin-top: 5px; + margin-left: 15px; + margin-bottom: 5px; + margin-right: 5px; + text-align: left; + +} + +.helpheading { + font-weight: bold; + background-color: #D0D9BD; + border-bottom: 1px solid #3c78b5; + padding: 4px 4px 4px 4px; + margin: 0px; + margin-top: 10px; +} +.helpcontent { + padding: 4px 4px 20px 4px; + background-color: #f5f7f1; +} + +.code { + border: 1px dashed #3c78b5; + font-size: 11px; + font-family: Courier; + margin: 10px; + margin-left: 0px; + line-height: 13px; +} + +.focusedComment { + background: #ffffce; +} + +.commentBox, .focusedComment { + padding: 10px; + margin: 5px 0 5px 0; + border: 1px #bbb solid; +} + +.codeHeader { + background-color: #f0f0f0; + border-bottom: 1px dashed #3c78b5; + padding: 3px; + text-align: center; +} + +.codeContent { + text-align: left; + background-color: #f0f0f0; + padding: 3px; +} + +.preformatted { + border: 1px dashed #3c78b5; + font-size: 11px; + font-family: Courier; + margin: 10px; + line-height: 13px; +} + +.preformattedHeader { + background-color: #f0f0f0; + border-bottom: 1px dashed #3c78b5; + padding: 3px; + text-align: center; +} + +.preformattedContent { + background-color: #f0f0f0; + padding: 3px; +} + +.panel { + border: 1px dashed #3c78b5; + margin: 10px; + margin-top: 0px; +} + +.panelHeader { + background-color: #f0f0f0; + border-bottom: 1px dashed #3c78b5; + padding: 3px; + text-align: center; +} + +.panelContent { + background-color: #f0f0f0; + padding: 5px; +} + +.anonymousAlert { + background-color: #f0f0f0; + border: 1px dashed red; + font-size: 11px; + padding: 10px 5px 10px 5px; + margin: 4px; + line-height: 13px; +} + +.lockAlert { + background-color: #f0f0f0; + width: 50%; + border: 1px dashed red; + font-size: 11px; + padding: 10px 5px 10px 5px; + margin: 4px; + line-height: 13px; +} + + +.code-keyword { + color: #000091; + background-color: inherit; +} + +.code-object { + color: #910091; + background-color: inherit; +} + +.code-quote { + color: #009100; + background-color: inherit; +} + +.code-comment { + color: #808080; + background-color: inherit; +} + + +.code-xml .code-keyword { + color: inherit; + font-weight: bold; +} + +.code-tag { + color: #000091; + background-color: inherit; +} + +.breadcrumbs { + background-color: #f0f0f0; + border-color: #3c78b5; + border-width: 1px 0px 1px 0px; + border-style: solid; + font-size: 11px; + padding: 3px 0px 3px 0px; +} + +.navmenu { + border: 1px solid #ccc; +} + +.menuheading { + font-weight: bold; + background-color: #f0f0f0; + border-bottom: 1px solid #3c78b5; + padding: 4px 4px 2px 4px; +} + +.menuitems { + padding: 4px 4px 20px 4px; +} + +.rightpanel { + border-left: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + +#helpheading { + text-align: left; + font-weight: bold; + background-color: #D0D9BD; + border-bottom: 1px solid #3c78b5; + padding: 4px 4px 4px 4px; + margin: 0px; +} +#helpcontent { + padding: 4px 4px 4px 4px; + background-color: #f5f7f1; +} +.helptab-unselected { + font-weight: bold; + padding: 5px; + background-color: #f5f7f1; +} +.helptab-selected { + font-weight: bold; + background-color: #D0D9BD; + padding: 5px; +} +.helptabs { + margin: 0px; + background-color: #f5f7f1; + padding: 5px; +} +.infopanel-heading { + font-weight: bold; + padding: 4px 0px 2px 0px; +} + +.pagebody { +} + +.pageheader { + padding: 5px 5px 5px 0px; + border-bottom: 1px solid #3c78b5; +} + +.steptitle { + font-size: 18px; + font-weight: bold; + font-family: Arial, sans-serif; + color: #660033; + margin-bottom: 7px; +} + +.substeptitle { + font-size: 12px; + font-weight: bold; + font-family: Arial, sans-serif; + color: #660033; + margin: 2px 4px 4px 4px; + padding: 2px 4px 1px 4px; +} + +.stepdesc { + font-family: Verdana, arial, sans-serif; + font-size: 11px; + line-height: 16px; + font-weight: normal; + color: #666666; + margin-top: 7px; + margin-bottom: 7px; +} + +.steplabel { + font-weight: bold; + margin-right: 4px; + color: black; + float: left; + width: 15%; + text-align: right; +} + +.stepfield { + background: #f0f0f0; + padding: 5px; +} + +.submitButtons{ + margin-top:5px; + text-align:right; +} + +.formtitle { + font-size: 12px; + font-weight: bold; + font-family: Arial, sans-serif; + color: #660033; +} + +.sectionbottom { + border-bottom: 1px solid #3c78b5; +} + +.topRow { + border-top: 2px solid #3c78b5; +} + +.tabletitle { + font-size: 14px; + font-weight: bold; + font-family: Arial, sans-serif; + padding: 3px 0px 2px 0px; + margin: 8px 4px 2px 0px; + color: #660033; + border-bottom: 2px solid #3c78b5; +} +.pagesubheading { + display: none; + list-style-type: none; + list-style-image: none; + #background: transparent; + color: #666666; + font-size: 8px; + padding: 0px 0px 5px 0px; + #text-align: right; +} + +HR { + color: 3c78b5; + height: 1; +} + + +h1 A:link, h1 A:visited, h1 A:active { + text-decoration: none; +} + +h1 A:hover { + border-bottom: 1px dotted #660033; +} + +.wiki-content > :first-child, .commentblock > :first-child { + margin-top: 3px; +} + +.logocell { + padding: 10px; +} + +input { + font-family: verdana, geneva, arial, sans-serif; + font-size: 11px; + color: #000000; +} + +textarea, textarea.editor { + font-family: verdana, geneva, arial, sans-serif; + font-size: 11px; + color: #333333; +} + +.spacenametitle-printable { + font: 20px/25px Impact, Arial, Helvetica; + font-weight: 100; + color: #999999; + margin: 0px; +} +.spacenametitle-printable a { + text-decoration: none; + color: #999999; +} +.spacenametitle-printable a:visited { + text-decoration: none; + color: #999999; +} + +.blogDate { + list-style-type: none; + list-style-image: none; + display: none; + font-weight: bold; + text-decoration: none; + color: black; +} + +div.blogpost { + margin-left: 0px; +} + +div.blogpost div.wiki-content { + margin: 0px; + padding: 0px; + border-bottom: 2px solid #ddd; + border-left: 2px solid #ddd; + padding: 0 10px 5px; +} + +.blogSurtitle { + display: none; + list-style-type: none; + list-style-image: none; + #float: right; + background: transparent; + background: #f0f0f0; + margin: 1px 10px 10px 1px; +} + +.blogHeading { + background: #f0f0f0; + padding: 3px; + margin: 1px 1px 10px 1px; + border: 1px solid #ddd; + + font-size: 15px; + line-height: normal; + font-weight: bold; +} + +.blogHeading a { + text-decoration: none; + color: black; +} + +.endsection { + text-align: right; + color: #666666; + margin-top: 10px; + margin-bottom: 10px; + font-size: 8px; +} +.endsectionleftnav { + align: right; + color: #666666; + margin-top: 10px; +} + +h1, h2, h3, h4, h5, h6 { + font-family: Georgia,'Times New Roman',serif; + line-height: normal; + font-weight: bold; +} + +h1 { + border-bottom: 1px solid #808080; + padding: 2px; + margin: 36px 0px 4px -25px; + font-size: 20px; +} + +h2 { + border-bottom: 1px solid #a0a0a0; + padding: 2px; + margin: 27px 0px 4px -20px; + font-size: 18px; +} + +h3 { + border-bottom: 1px solid #c0c0c0; + padding: 2px; + margin: 21px 0px 4px -15px; + font-size: 16px; +} + +h4 { + border-bottom: 1px solid #c0c0c0; + padding: 2px; + margin: 18px 0px 4px -10px; + font-size: 15px; +} + +h4.search { + font-size: 12px; + line-height: normal; + font-weight: normal; + background-color: #f0f0f0; + padding: 4px; + margin: 18px 0px 4px 0px; +} + +h5 { + padding: 2px; + margin: 14px 0px 4px -5px; + font-size: 14px; +} + +h6 { + padding: 2px; + margin: 14px 0px 4px -5px; + font-size: 13px; +} + +.smallfont { + font-size: 10px; +} +.descfont { + font-size: 10px; + color: #666666; +} +.smallerfont { + font-size: 9px; +} +.smalltext { + color: #666666; + font-size: 10px; +} +.smalltext a { + color: #666666; +} +.smalltext-blue { + color: #3c78b5; + font-size: 10px; +} +.surtitle { + margin-left: 1px; + margin-bottom: 5px; + font-size: 14px; + color: #666666; +} + + +div.padded { padding: 4px; } +div.thickPadded { padding: 10px; } +h3.macrolibrariestitle { + margin: 0px 0px 0px 0px; +} + +div.centered { text-align: center; margin: 10px; } +div.centered table {margin: 0px auto; text-align: left; } + +.tableview table { + margin: 0; +} + +.tableview th { + text-align: left; + color: #660033; + font-size: 12px; + padding: 5px 0px 0px 5px; + border-bottom: 2px solid #3c78b5; +} +.tableview td { + text-align: left; + border-color: #ccc; + border-width: 0px 0px 1px 0px; + border-style: solid; + margin: 0; + padding: 4px 10px 4px 5px; +} + +.grid { + margin: 2px 0px 5px 0px; + border-collapse: collapse; +} +.grid th { + border: 1px solid #ccc; + padding: 2px 4px 2px 4px; + background: #f0f0f0; + text-align: center; +} +.grid td { + border: 1px solid #ccc; + padding: 3px 4px 3px 4px; +} +.gridHover { + background-color: #f9f9f9; +} + +td.infocell { + background-color: #f0f0f0; +} +.label { + font-weight: bold; + color: #660033; +} +.error { + background-color: #fcc; +} + +.errorBox { + background-color: #fcc; + border: 1px solid #c00; + padding: 5px; + margin: 5px; +} + +.errorMessage { + color: #c00; +} + +.success { + background-color: #dfd; +} + +.successBox { + background-color: #dfd; + border: 1px solid #090; + padding: 5px; + margin-top:5px; + margin-bottom:5px; +} + +blockquote { + padding-left: 10px; + padding-right: 10px; + margin-left: 5px; + margin-right: 0px; + border-left: 1px solid #3c78b5; +} + +table.confluenceTable +{ + margin: 5px; + border-collapse: collapse; +} + +/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */ +table.confluenceTable td.confluenceTd +{ + border-width: 1px; + border-style: solid; + border-color: #ccc; + padding: 3px 4px 3px 4px; +} + +/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */ +table.confluenceTable th.confluenceTh +{ + border-width: 1px; + border-style: solid; + border-color: #ccc; + padding: 3px 4px 3px 4px; + background-color: #f0f0f0; + text-align: center; +} + +td.confluenceTd +{ + border-width: 1px; + border-style: solid; + border-color: #ccc; + padding: 3px 4px 3px 4px; +} + +th.confluenceTh +{ + border-width: 1px; + border-style: solid; + border-color: #ccc; + padding: 3px 4px 3px 4px; + background-color: #f0f0f0; + text-align: center; +} + +DIV.small { + font-size: 9px; +} + +H1.pagename { + margin-top: 0px; +} + +IMG.inline {} + +.loginform { + margin: 5px; + border: 1px solid #ccc; +} + +/* The text how the "This is a preview" comment should be shown. */ +.previewnote { text-align: center; + font-size: 11px; + color: red; } + +/* How the preview content should be shown */ +.previewcontent { background: #E0E0E0; } + +/* How the system messages should be shown (DisplayMessage.jsp) */ +.messagecontent { background: #E0E0E0; } + +/* How the "This page has been modified..." -comment should be shown. */ +.conflictnote { } + +.createlink { + color: maroon; +} +a.createlink { + color: maroon; +} +.templateparameter { + font-size: 9px; + color: darkblue; +} + +.diffadded { + background: #ddffdd; + padding: 1px 1px 1px 4px; + border-left: 4px solid darkgreen; +} +.diffdeleted { + color: #999; + background: #ffdddd; + padding: 1px 1px 1px 4px; + border-left: 4px solid darkred; +} +.diffnochange { + padding: 1px 1px 1px 4px; + border-left: 4px solid lightgrey; +} +.differror { + background: brown; +} +.diff { + font-family: lucida console, courier new, fixed-width; + font-size: 12px; + line-height: 14px; +} +.diffaddedchars { + background-color:#99ff99; + font-weight:bolder; +} +.diffremovedchars { + background-color:#ff9999; + text-decoration: line-through; + font-weight:bolder; +} + +.greybackground { + background: #f0f0f0 +} + +.greybox { + border: 1px solid #ddd; + padding: 3px; + margin: 1px 1px 10px 1px; +} + +.borderedGreyBox { + border: 1px solid #cccccc; + background-color: #f0f0f0; + padding: 10px; +} + +.greyboxfilled { + border: 1px solid #ddd; + padding: 5px; + margin: 10px 1px 10px 1px; + background: #f0f0f0; +} + +.navBackgroundBox { + padding: 5px 5px 5px 5px; + font-size: 22px; + font-weight: bold; + font-family: Arial, sans-serif; + color: white; + background: #3c78b5; + text-decoration: none; +} + +.previewBoxTop { + background-color: #f0f0f0; + border-width: 1px 1px 0px 1px; + border-style: solid; + border-color: #3c78b5; + padding: 5px; + margin: 5px 0px 0px 0px; + text-align: center; +} +.previewContent { + background-color: #fff; + border-color: #3c78b5; + border-width: 0px 1px 0px 1px; + border-style: solid; + padding: 10px; + margin: 0px; +} +.previewBoxBottom { + background-color: #f0f0f0; + border-width: 0px 1px 1px 1px; + border-style: solid; + border-color: #3c78b5; + padding: 5px; + margin: 0px 0px 5px 0px; + text-align: center; +} + +.functionbox { + background-color: #f0f0f0; + border: 1px solid #3c78b5; + padding: 3px; + margin: 1px 1px 10px 1px; +} + +.functionbox-greyborder { + background-color: #f0f0f0; + border: 1px solid #ddd; + padding: 3px; + margin: 1px 1px 10px 1px; +} + +.search-highlight { + background-color: #ffffcc; +} + +/* normal (white) background */ +.rowNormal { + background-color: #ffffff; + } + +/* alternate (pale yellow) background */ +.rowAlternate { + background-color: #f7f7f7; +} + +/* used in the list attachments table */ +.rowAlternateNoBottomColor { + background-color: #f7f7f7; +} + +.rowAlternateNoBottomNoColor { +} + +.rowAlternateNoBottomColor td { + border-bottom: 0px; +} + +.rowAlternateNoBottomNoColor td { + border-bottom: 0px; +} + +/* row highlight (grey) background */ +.rowHighlight { + background-color: #f0f0f0; + +} + +TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; } +TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; } +TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; } + +TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; } +TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; } + +.toolbar { + margin: 0px; + border-collapse: collapse; +} + +.toolbar td { + border: 1px solid #ccc; + padding: 2px 2px 2px 2px; + color: #ccc; +} + +td.noformatting { + border-width: 0px; + border-style: none; + text-align: center; + padding: 0px; +} + +.commentblock { + margin: 12px 0 12px 0; +} + +/* + * Divs displaying the license information, if necessary. + */ +.license-eval, .license-none, .license-nonprofit { + border-top: 1px solid #bbbbbb; + text-align: center; + font-size: 10px; + font-family: Verdana, Arial, Helvetica, sans-serif; +} + +.license-eval, .license-none { + background-color: #ffcccc; +} + +.license-eval b, .license-none b { + color: #990000 +} + +.license-nonprofit { + background-color: #ffffff; +} + +/* + * The shadow at the bottom of the page between the main content and the + * "powered by" section. + */ +.bottomshadow { + height: 12px; + background-image: url("$req.contextPath/images/border/border_bottom.gif"); + background-repeat: repeat-x; +} + +/* + * Styling of the operations box + */ +.navmenu .operations li, .navmenu .operations ul { + list-style: none; + margin-left: 0; + padding-left: 0; +} + +.navmenu .operations ul { + margin-bottom: 9px; +} + +.navmenu .label { + font-weight: inherit; +} + +/* + * Styling of ops as a toolbar + */ +.toolbar div { + display: none; +} + +.toolbar .label { + display: none; +} + +.toolbar .operations { + display: block; +} + +.toolbar .operations ul { + display: inline; + list-style: none; + margin-left: 10px; + padding-left: 0; +} + +.toolbar .operations li { + list-style: none; + display: inline; +} + +.blogcalendar * { + font-family:verdana, arial, sans-serif; + font-size:x-small; + font-weight:normal; + line-height:140%; + padding:2px; +} + + +table.blogcalendar { + border: 1px solid #3c78b5; +} + +.blogcalendar th.calendarhead, a.calendarhead { + font-size:x-small; + font-weight:bold; + padding:2px; + text-transform:uppercase; + background-color: #3c78b5; + color: #ffffff; + letter-spacing: .3em; + text-transform: uppercase; +} + +.calendarhead:visited {color: white;} +.calendarhead:active {color: white;} +.calendarhead:hover {color: white;} + +/* warning panel */ +.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; } +/* alert panel */ +.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; } + +/* side menu highlighting (e.g. space content screen) */ +.optionPadded { padding: 2px; } +.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; } +.optionSelected a { font-weight: bold; text-decoration: none; color: black; } + +/* information macros */ +.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 15px; margin-bottom: 5px} +.warningMacro { text-align:left; } +.infoMacro { border-style: solid; border-width: 1px; border-color: #3c78b5; background-color: #D8E4F1; text-align:left; margin-top: 15px; margin-bottom: 5px} +.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 15px; margin-bottom: 5px} +.informationMacroPadding { padding: 5px 0 0 5px; } + +table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td { + border: none; +} +table.infoMacro p, table.warningMacro p, table.tipMacro p, table.noteMacro p, table.sectionMacro p { + font-size:x-small; +} +table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;} + + +div.headerField { + float: left; + width: auto; + height: 100%; +} + +.headerFloat { + margin-left: auto; + width: 50%; +} + +.headerFloatLeft { + float: left; + margin-right: 20px; + margin-bottom: 10px; +} + +#headerRow { + padding: 10px; +} + +/* Style for label heatmap. */ +.top10 a { + font-weight: bold; + font-size: 2em; + color: #660033; +} +.top25 a { + font-weight: bold; + font-size: 1.6em; + color: #660033; +} +.top50 a { + font-size: 1.4em; + color: #660033; +} +.top100 a { + font-size: 1.2em; + color: #660033; +} + +.heatmap { + list-style:none; + width: 95%; + margin: 0px auto; +} + +.heatmap a { + text-decoration:none; +} + +.heatmap a:hover { + text-decoration:underline; +} + +.heatmap li { + display: inline; +} + +.minitab { +padding: 3px 0px 3px 8px; +margin-left: 0; +margin-top: 1px; +margin-bottom: 0px; +border-bottom: 1px solid #3c78b5; +font: bold 9px Verdana, sans-serif; +text-decoration: none; +float:none; +} +.selectedminitab { +padding: 3px 0.5em; +margin-left: 3px; +margin-top: 1px; +border: 1px solid #3c78b5; +background: white; +border-bottom: 1px solid white; +color: #000000; +text-decoration: none; +} +.unselectedminitab { +padding: 3px 0.5em; +margin-left: 3px; +margin-top: 1px; +border: 1px solid #3c78b5; +border-bottom: none; +background: #3c78b5; +color: #ffffff; +text-decoration: none; +} + +a.unselectedminitab:hover { +color: #ffffff; +background: #660033; +border-color: #660033; +} + +a.unselectedminitab:link { color: white; } +a.unselectedminitab:visited { color: white; } + +a.selectedminitab:link { color: black; } +a.selectedminitab:visited { color: black; } + +.linkerror { background-color: #fcc;} + +a.labelOperationLink:link {text-decoration: underline} +a.labelOperationLink:active {text-decoration: underline} +a.labelOperationLink:visited {text-decoration: underline} +a.labelOperationLink:hover {text-decoration: underline} + +a.newLabel:link {background-color: #ddffdd} +a.newLabel:active {background-color: #ddffdd} +a.newLabel:visited {background-color: #ddffdd} +a.newLabel:hover {background-color: #ddffdd} + +ul.square {list-style-type: square} + +.inline-control-link { + background: #ffc; + font-size: 9px; + color: #666; + padding: 2px; + text-transform: uppercase; + text-decoration: none; +} + + +.inline-control-link a:link {text-decoration: none} +.inline-control-link a:active {text-decoration: none} +.inline-control-link a:visited {text-decoration: none} +.inline-control-link a:hover {text-decoration: none} + +.inline-control-link { + background: #ffc; + font-size: 9px; + color: #666; + padding: 2px; + text-transform: uppercase; + text-decoration: none; + cursor: pointer; +} + +div.auto_complete { + width: 350px; + background: #fff; +} +div.auto_complete ul { + border: 1px solid #888; + margin: 0; + padding: 0; + width: 100%; + list-style-type: none; +} +div.auto_complete ul li { + margin: 0; + padding: 3px; +} +div.auto_complete ul li.selected { + background-color: #ffb; +} +div.auto_complete ul strong.highlight { + color: #800; + margin: 0; + padding: 0; +} + +/******* Edit Page Styles *******/ +.toogleFormDiv{ + border:1px solid #A7A6AA; + background-color:white; + padding:5px; + margin-top: 5px; +} + +.toogleInfoDiv{ + border:1px solid #A7A6AA; + background-color:white; + display:none; + padding:5px; + margin-top: 10px; +} + +.inputSection{ + margin-bottom:20px; +} + +#editBox{ + border:1px solid lightgray; + background-color:#F0F0F0; +} + + + Propchange: websites/staging/openjpa/trunk/content/css/type-settings-orig.css ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/openjpa/trunk/content/css/type-settings.css ============================================================================== --- websites/staging/openjpa/trunk/content/css/type-settings.css (added) +++ websites/staging/openjpa/trunk/content/css/type-settings.css Sun Dec 9 13:13:35 2012 @@ -0,0 +1,109 @@ +/** + Override default elements +*/ + +h1, h2, h3 { + border-bottom: 1px dotted #660033; +} + +pre { + margin-top: 5px; + margin-left: 15px; + margin-bottom: 5px; + margin-right: 5px; + text-align: left; + + background-color: #f0f0f0; + padding: 3px; + border: 1px dashed #3c78b5; + font-size: 11px; + font-family: Courier; + line-height: 13px; +} + +body, p, ul, ol { + font-family: verdana,arial,helvetica,sans-serif; + font-size: 14px; + font-size-adjust: none; + font-style: normal; + font-font-variant: normal; + font-weight: normal; + color: #000000; +} + +ul, ol { + font-size: 12px; +} + +table, td, tr { + font-family: verdana,arial,helvetica,sans-serif; + font-size: 10px; + font-size-adjust: none; + font-style: normal; + font-font-variant: normal; + font-weight: normal; + line-height: normal; + color: #000000; +} + +table, td, th +{ + border-width: 0px; + border-style: solid; + border-color: #ccc; + padding: 3px 4px 3px 4px; +} + +th +{ + border-width: 1px; + background-color: #f0f0f0; +} + +A:link, A:visited, A:active, A:hover { + color: #880055; + text-decoration: none; + font-weight: bold; +} + +A:active, A:hover { + text-decoration: underline; + #color: #202020; + color: #880055; +} + +/** + Additional css class elements. Please ensure to keep this list alphabetized +*/ +.border +{ + border-bottom: 1px solid #bbbbbb; + border-right: 1px solid #bbbbbb; +} + +.info { + border-style: solid; + border-width: 1px; + border-color: #3c78b5; + background-color: #D8E4F1; + text-align:left; + padding: 5px 5px 5px 5px +} + +.note { + border-style: solid; + border-width: 1px; + border-color: #F0C000; + background-color: #FFFFCE; + text-align:left; + padding: 5px 5px 5px 5px +} + +.tip { + border-style: solid; + border-width: 1px; + border-color: #090; + background-color: #dfd; + text-align:left; + padding: 5px 5px 5px 5px +} Propchange: websites/staging/openjpa/trunk/content/css/type-settings.css ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/openjpa/trunk/content/development-process.html ============================================================================== --- websites/staging/openjpa/trunk/content/development-process.html (added) +++ websites/staging/openjpa/trunk/content/development-process.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

DRAFT OpenJPA Development Process

+

+

Tracking issues and changes

+
    +
  • A JIRA issue is required for any substantive change. +In order to keep the list of JIRA issues under control, it is expected that +any controversial issue or user request for a feature or design change be +discussed on the dev list prior to entering it into JIRA.
  • +
  • JIRA issues are not needed for small (e.g., typos) changes.
  • +
  • Issue discussions +The preferred place of discussion on issues is the JIRA created for the +task. If discussions occur on the dev list outside the JIRA, a link to the +beginning of the mail thread on the issue should be placed in the JIRA +issue so that users looking through JIRA can easily view the thread of +discussion on an issue. Please keep the Subject line the same so that the +email thread hangs together. If discussion occurs on the dev list, it's +also recommended that a summary/conclusion on the thread be recorded in the +JIRA issue itself.
  • +
+

+

Code Reviews

+
    +
  • +

    for public API changes:

    +

    RTC + These changes have potentially broad effects on developers and users, and +therefore will require a code review and vote. Since some of these changes +will affect the API docs ('specs'), everyone within the community is +encouraged to review and vote. The Committer votes are binding, but the +sentiment of the entire community will be strongly considered.

    +
  • +
  • +

    for all other changes:

    +

    CTR + Although CTR is what is specified, developers should feel comfortable +requesting the list for peer review before committing.

    +
  • +
+

+

Testing

+
    +
  • Developing test cases and running test suites are desired but not +required prior to an integration. If unit tests are created for a change, +the developer is encouraged to add them to the JIRA issue for sharing.
  • +
  • When fixing a bug, it is strongly encouraged to attach to the JIRA a test +case that fails prior to the fix and succeeds after the fix is applied. +When the fix is committed, the test case should be committed as well.
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10193-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:07 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E8B11E0D4 for ; Sun, 9 Dec 2012 13:15:06 +0000 (UTC) Received: (qmail 85025 invoked by uid 500); 9 Dec 2012 13:15:06 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 84981 invoked by uid 500); 9 Dec 2012 13:15:06 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 84973 invoked by uid 99); 9 Dec 2012 13:15:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,MANY_SPAN_IN_TEXT X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:14:57 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 7AD022388C7C for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [12/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.7AD022388C7C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/enhancement-with-eclipse.html ============================================================================== --- websites/staging/openjpa/trunk/content/enhancement-with-eclipse.html (added) +++ websites/staging/openjpa/trunk/content/enhancement-with-eclipse.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Enhancing Entities with Eclipse

+

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.

+

+

Custom ANT Builder

+

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.

+
/builder_project
+    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
+    commons-collections-3.2.jar
+    commons-lang-2.1.jar
+    commons-pool-1.3.jar
+    derby-10.2.2.0.jar
+    geronimo-jpa_2.0_spec-1.0-EA-SNAPSHOT.jar
+    geronimo-jta_1.1_spec-1.1.1.jar
+    openjpa-2.0.0-SNAPSHOT.jar
+    serp-1.13.1.jar
+/lib <- other libs
+
+ + +
    +
  1. 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.)
  2. +
  3. Right click on the Eclipse project that you want to enhance and click on +Properties.
  4. +
  5. Click on the builders filter, and Create a new Ant builder.
  6. +
  7. 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.
  8. +
  9. 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".
  10. +
  11. 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.
  12. +
  13. Click on the "Targets" tab along the top.
  14. +
  15. You need to set the enhance target to run as a part of "Manual Build" and +"Auto Build" (see screenshot #3 below.)
  16. +
+

+

+

+

+

OpenJPA Plugin for Eclipse

+

The OpenJPA Eclipse Tooling is a sub-project of the OpenJPA project. It +develops IDE tooling for OpenJPA as an Eclipse feature with plug-ins.

+

+The OpenJPA Eclipse Tooling does not have an official release as some known work-items still need to be addressed in OPENJPA-1412.

+

There are also some known bugs with the bytecode produced by the eclipse plugin (e.g. OPENJPA-1879, OPENJPA-1887).

+

Currently it provides an Eclipse Builder for OpenJPA Enhancement.

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/enhancement-with-maven.html ============================================================================== --- websites/staging/openjpa/trunk/content/enhancement-with-maven.html (added) +++ websites/staging/openjpa/trunk/content/enhancement-with-maven.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Using the openjpa-maven-plugin

+

The Maven plugin, formerly provided by the Codehaus project is now part of +OpenJPA 2.2.0. The plugins documentation can be found here + until it finds a permanent home one the openjpa site.

+

The previous versions of the plugin can be found at the Codehaus project

+

For example, to enhance you source entity classes after they have been +compiled (but exclude any POJO classes that rely upon orm.xml maappings), +add the openjpa-maven-plugin to the section of your pom.xml, like -

+
    <build>
+    ...
+    <plugin>
+        <groupId>org.apache.openjpa</groupId>
+        <artifactId>openjpa-maven-plugin</artifactId>
+        <version>2.2.0-SNAPSHOT</version>
+        <configuration>
+            <includes>**/entities/*.class</includes>
+            <excludes>**/entities/XML*.class</excludes>
+            <addDefaultConstructor>true</addDefaultConstructor>               
+            <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
+        </configuration>
+        <executions>
+            <execution>
+                <id>enhancer</id>
+                <phase>process-classes</phase>
+                <goals>
+                    <goal>enhance</goal>
+                </goals>
+            </execution>
+        </executions>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.openjpa</groupId>
+                <artifactId>openjpa</artifactId>
+                <!-- set the version to be the same as the level in your runtime -->
+                <version>1.2.2</version>
+            </dependency>
+        </dependencies>
+    </plugin>
+    ...
+    </build>
+
+ + +

There are other goals available to create the Entity to SQL mapping and +Entity to XML Schema mapping, which are documented under the Goals section + on the plugin website.

+

+

Using the maven-antrun-plugin

+

You can use the maven-antrun-plugin to launch the OpenJPA enhancer task +using ANT. The steps are nearly identical to the ones for Enhancing with ANT + (again, you may not need to move the persistence.xml file to the build +directory, but I did for this write-up).

+
<build>
+    <!-- Copy the persistence.xml file to the build dir -->
+    <!-- You can skip this step if you put the persistence.xml in src/main/resources/META-INF instead of src/main/java/META-INF -->
+    <resources>
+      <resource>
+        <directory> src/main/java </directory>
+        <includes>
+          <include> **/*.xml </include>
+          </includes>
+      </resource>
+    </resources>
+    <plugins>
+    .....        
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>1.2</version>
+        <executions>
+            <execution>
+               <phase>process-classes</phase>
+               <configuration>
+                  <tasks>
+                      <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="maven.compile.classpath"/>
+                      <openjpac>
+                         <classpath refid="maven.compile.classpath"/>
+                      </openjpac>
+                  </tasks>
+               </configuration>
+               <goals>
+                   <goal>run</goal>
+               </goals>
+            </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    ....
+ </build>
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/entity-enhancement.html ============================================================================== --- websites/staging/openjpa/trunk/content/entity-enhancement.html (added) +++ websites/staging/openjpa/trunk/content/entity-enhancement.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

What is Enhancement Anyway?

+

The JPA spec requires some type of monitoring of Entity objects, but the spec does not define how to implement this monitoring. Some JPA providers auto-generate new subclasses or proxy objects that front the user's Entity objects at runtime, while others use byte-code weaving technologies to enhance the actual Entity class objects. OpenJPA supports both mechanisms, but strongly suggests only using the byte-code weaving enhancement. The subclassing support (as provided by OpenJPA) +is not recommended (and is disabled by default in OpenJPA 2.0 and beyond).

+

For complete details on entity enhancement, please checkout the section in +the latest User's Guide on Enhancement +. The following sections will only cover the high-level concepts and the +ways to use the enhancer in different build and runtime setups.

+

+

Byte-code Weaving Enhancement?

+

Byte-code weaving is the preferred and recommended method of enhancement to use with OpenJPA. This byte-code enhancement can be performed at build-time or dynamically at run-time. Whichever approach is selected, the same enhancement processing is performed with the same level of functionality weaved into each Entity class.

+

+

Build Time Enhancement

+

Build time enhancement is the recommended method to use with OpenJPA, as it +it the fastest and most reliable method. Please follow the links below +based on yBuild time enhancement is probably the most common enhancement method to use with OpenJPA, especially in an automated JUnit test environment. The whole OpenJPA JUnit test bucket relies on build-time enhancement. Please follow the links below based on your development environment:

+ +

+

Dynamic Enhancement

+

Dynamic run-time enhancement with OpenJPA comes in several different flavors, depending on your environment. The preferred and most reliable method of dynamic enhancement is via the defined container hook in a Java EE and OSGi environments. In a JSE environment, there are a couple of choices for configuring or using dynamic enhancement. The choice will depend on your usage patterns.

+

+

Java EE and OSGi environments

+

The Java EE specifications outline a mechanism for plugging in a JPA transformer (byte code enhancer) into the container's classloading processing. Most Java EE application servers (for example, IBM's WebSphere Application Server) support this mechanism. In addition, several of the OSGi container providers (for example, WebSphere's OSGi container) have followed a similar path and provide this classloading hook for dynamic enhancement. If your container environment supports this mechanism with OpenJPA, this would be the preferred and easiest method of performing the byte-code enhancement.

+

+

JSE Environment

+
Explicit javaagent support
+

The recommended way get runtime enhancement for the JSE environment is to provide a javaagent when launching the JVM that OpenJPA is running in. This is a common method to use when executing individual JUnits in a development environment because it is very painless and easy. All that is required to get runtime enhancement is to specify the -javaagent:openjpa-all-2.2.0-SNAPSHOT.jar (as an example) on the JVM configuration.

+

More information can be found on the Runtime Enhancement page.

+
Implicit javaagent support
+

OPENJPA-952 + added the capability to have OpenJPA attempt to dynamically load the +javaagent enhancer. If you see the following message, OpenJPA loaded the +enhancer dynamically.

+
+

[java] 1453 jpa_app INFO [main] openjpa.Runtime - OpenJPA dynamically +loaded the class enhancer. Any classes that were not enhanced at build time +will be enhanced when the are loaded by the JVM.

+
+

This method of enhancement is intended for first time users or developers +as it has a number of caveats.

+
    +
  • It works with both the Sun/Oracle 1.6SDK and IBM 1.6JDK. The JRE is not sufficient.
  • +
  • If any unenhanced Entities are loaded by the JVM before an EntityManagerFactory is created, this method of enhancement will not work. If this condition is encountered, you will see the following warning:
  • +
+
+

[java] 1047 jpa_app WARN [main] openjpa.Enhance - Unenhanced classes were +detected even though the enhancer has ran. Ensure that the +EntityManagerFactory is created prior to creating any Entities.

+
+

If your application uses some other method of enhancement, this support can be explicitly disabled by setting the following property in your persistence.xml.

+
+ + +
+

+

Subclassing Enhancement

+

The use of OpenJPA's subclassing support is not recommended, and is disabled by default in OpenJPA 2.0 and beyond.

+

When running in a Java SE environment or in a non-Java EE 5 compliant container, OpenJPA can utilize runtime subclassing enhancement. The subclassing enhancement support was added originally as a convenience to new developers to reduce the amount of work to get a 'HelloWorld-ish' OpenJPA application working out of the box. It was never meant to run in production. So you're probably thinking that this sounds great! OpenJPA handles enhancement automatically for me and I can stop reading this post. Wrong! Subclassing has two major drawbacks. First off, it isn't nearly as fast as byte-code enhancement and the second drawback is that there are some documented functional problems when using the subclassing support. The moral of the story is, don't use this method of enhancement.

+

For reference, the property that enables/disables the subclassing support is openjpa.RuntimeUnenhancedClasses. The value "unsupported" is the recommended and default setting for this property.

+

Additional information regarding the subclassing enhancement can be found in the OpenJPA docs.

+

+

Author Attribution

+

The content for this page and sub-pages was adapted from content created by +OpenJPA contributor Rick Curtis from the following WebSphere and Java Persistence + blog entries:

+

http://webspherepersistence.blogspot.com/2009/02/openjpa-enhancement.html

+

http://webspherepersistence.blogspot.com/2009/04/openjpa-enhancement-eclipse-builder.html

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/faq.html ============================================================================== --- websites/staging/openjpa/trunk/content/faq.html (added) +++ websites/staging/openjpa/trunk/content/faq.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

General

+ +

+

What is OpenJPA?

+

OpenJPA is a 100% open-source implementation of the Java Persistence API +(JPA), which is the persistence component for EJB in the Java EE 5 specification +.

+

+

What is the history of OpenJPA?

+

OpenJPA has its roots in the popular Kodo product, which was created by SolarMetric, Inc. in 2001. BEA Systems, Inc. +purchased SolarMetric in November of 2005, and soon thereafter announced that they would be donating the bulk of the code to the Apache Software Foundation. OpenJPA is the result of that donation.

+

+

What is the current relationship between Kodo and OpenJPA?

+

Version 4.1 of Kodo will be based on the OpenJPA code base.

+

+

What is the current status of the project?

+

OpenJPA is a top-level project at the Apache Software Foundation.

+

+

Where can I download OpenJPA?

+

Look at the Downloads page.

+

+

Does OpenJPA work with my application server or container?

+

See Integration +.

+

+

How can I contribute to OpenJPA?

+

Check out the Get Involved + page.

+

+

How do I figure out which version of OpenJPA I am running?

+

You can get version number and other details of OpenJPA jar you are using +by:

+

+

How do I see the SQL that OpenJPA is executing?

+

OpenJPA provides configurable channel-based logging, as described in the +chapter on Logging +. The simplest example of enabling verbose logging is by using the +following property in your {{persistence.xml}} file:

+
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    version="1.0">
+    <persistence-unit name="example-logging"
+
+ + +

transaction-type="RESOURCE_LOCAL"> + + + + +

+

+

How do I enable connection pooling in OpenJPA?

+

As of the 2.1.0 release, OpenJPA includes the Apache DBCP + connection pool. You can also use any third-party connection pool that is +configurable via the JDBC DataSource API (which most are). The following +persistence.xml example shows how to use OpenJPA with a [Apache Derby|http://db.apache.org/derby/] + database and the [Apache DBCP|http://jakarta.apache.org/commons/dbcp/] + connection pool:

+
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        version="1.0">
+        <persistence-unit name="example-derby"
+            transaction-type="RESOURCE_LOCAL">
+        <properties>
+            <property name="openjpa.ConnectionProperties" 
+            value="DriverClassName=org.apache.derby.jdbc.ClientDriver,
+              Url=jdbc:derby://localhost:1527/database, 
+              MaxActive=100, 
+              MaxWait=10000, 
+              TestOnBorrow=true, 
+              Username=user, 
+              Password=secret"/>
+            <property name="openjpa.ConnectionDriverName" 
+            value="org.apache.commons.dbcp.BasicDataSource"/>
+        </properties>
+        </persistence-unit>
+    </persistence>
+
+ + +

See the documentation on Using a Third-Party DataSource for further details.

+


+

+

Can OpenJPA reorder SQL statements to satisfy database foreign key constraints?

+

Yes. OpenJPA can reorder and/or batch the SQL statements using different +configurable strategies. The default strategy is capable of reordering the +SQL statements to satisfy foreign key constraints. However ,you must tell +OpenJPA to read the existing foreign key information from the database +schema:

+
  <property name="openjpa.jdbc.SchemaFactory" value="native(ForeignKeys=true)"/>
+
+ + +

See the documentation on Schema Factory for further details.

+

+

Why OpenJPA is not creating foreign key constraints on the database tables?

+

By default, OpenJPA does not create foreign key constraints on new tables +that gets created according to O-R mapping annotation/descriptors. You can +change this default behavior via following configuration property :

+
  <property name="openjpa.jdbc.MappingDefaults" \
+           value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
+
+ + +

to create foreign key constraints on the database tables generated by OpenJPA.

+

+

Can OpenJPA map a one-sided one-many association without a cross table?

+

Yes. Standard JPA specification use a cross table to map one-sided +one-to-many relation without a {{mappedBy}} inverse side. Often, you would +like to create a one-to-many association based on an inverse foreign key +(logical or actual) in the table of the related type. OpenJPA supports this +mapping via {{@ElementJoinColumn}} annotation. The following example will +map the collection of {{LineItem}} of a {{Subscription}} via a foreign key +of {{LINEITEM}} table referring to primary key of {{SUBSCRIPTION}} table. + {code:JAVA} + package org.mag.subscribe;

+
import org.apache.openjpa.persistence.jdbc.*;
+
+@Entity
+public class LineItem {
+    // has no inverse relation to Subscription
+}
+
+@Entity
+@Table(name="SUB", schema="CNTRCT")
+public class Subscription {
+    @Id 
+    private long id;
+
+    @OneToMany
+    @ElementJoinColumn(name="SUB_ID", referencedColumnName="ID")
+    private Collection<LineItem> items;
+
+    ...
+}
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10194-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:17 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BC7B1E0D5 for ; Sun, 9 Dec 2012 13:15:16 +0000 (UTC) Received: (qmail 85276 invoked by uid 500); 9 Dec 2012 13:15:15 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 85227 invoked by uid 500); 9 Dec 2012 13:15:15 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 85216 invoked by uid 99); 9 Dec 2012 13:15:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:14 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:08 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 915B42388C8B for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [17/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.915B42388C8B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/jpa-2.0-iterations.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-2.0-iterations.html (added) +++ websites/staging/openjpa/trunk/content/jpa-2.0-iterations.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,1662 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JPA 2.0 Iterations and Tasks

+

+

Iteration Schedule and Content

+ + + +

Jump to #Task List

+
+

+

Milestone 1

+

The Milestone 1 release was never "officially" released, due to the JSR-317 +terms of use issues, but the files were tagged in svn and can be checked +out using:

+
svn co https://svn.apache.org/repos/asf/openjpa/branches/2.0.0-M1/
+
+ + +

+

Iteration 1 Summary - OPENJPA-800

+

+ +

+

+

+ +
+ Iteration 1 (Dec. 1, 2008 - Dec. 19, 2008) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-800 + + OpenJPA 2.0 iteration 1 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 1, OpenJPA includes many new JPA 2.0 +(based on the 10/31/2008 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • The current level of JPA 2.0 API. You can compile against and use +implemented methods of the new API. Unimplemented methods will throw an +UnsupportedOperationException.
  • +
  • Validation using the current JPA 2.0 orm and persistence schemas. +Version 2.0 persistence and orm files will validate using these new +schemas. Metadata elements provided in iteration 1 (collection-table and +element-collection) will validate and can be specified in XML.
  • +
  • Support for nested embeddables. An embeddable can now be nested within +another embeddable.
  • +
  • Support for relationships within embeddables. Embeddables can now +contain relationships.
  • +
  • Collections of embeddables and basic types through the use of +ElementCollection and CollectionTable. Element collections and collection +tables can be specified using annotations or in a version 2.0 orm XML.
  • +
  • Support for the Criteria API based on the current spec level, including +the new constructs; KEY(), VALUE(), and CASE(). OpenJPA also includes the +ability to convert queries constructed with the Criteria API to JPQL.
  • +
  • Support for JPA 2.0 JPQL. Compilation of JPA 2.0 JPQL statements and +execution of the new JPQL expressions including simple case expressions, +general case expressions, coalesce, and the nullif expression. In +addition, the select expression allows mathematical operations and the +result alias can be specified in the select expression and in the ORDER BY +clause. Execution of additional JPA 2.0 JPQL expressions will be added in +future iterations.
  • +
  • Native sequence generators allow the database schema name to be specified +on the annotation or in a version 2.0 orm XML.
  • +
+

+

Iteration 1a Summary - OPENJPA-831

+

+ +

+

+

+ +
+ Iteration 1a (Dec. 22, 2008 - Jan. 2, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-837 + + OpenJPA 2.0: Update OpenJPA documentation with new persistence schemas + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of the 1a iteration, the OpenJPA documentation has been +updated to contain the most current JPA 2.0 schemas.

+

+

Iteration 2 Summary - OPENJPA-807

+

+ +

+

+

+ +
+ Iteration 2 (Jan. 5, 2009 - Jan. 23, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-807 + + OpenJPA 2.0 iteration 2 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 2, OpenJPA includes several additional JPA +2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • Support for the JPA 2.0 level 2 cache interface. Operations on the +OpenJPA data cache are now available from the entity manager factory +through a standard JPA interface.
  • +
  • Support for use of order column through a JPA annotations or orm mapping +file elements. Existing OpenJPA support for order columns has been +extended to support the JPA standard OrderColumn definition. This +iteration supports a configurable base value attribue. Support for the +table and contiguous attributes will be provided in future iterations.
  • +
  • Enhanced map support. The use of Map collections has been significantly +enhanced. This iteration includes use of the new MapKeyClass, +MapKeyColumn, MapKeyJoinColumn, and MapKeyJoinColumns annotations and +corresponding orm mapping file elements.
  • +
  • Support for JPQL INDEX() function within a query projection or predicate. + Allows the index of ordered columns to be projected or used as part of a +query predicate. Projection is currently not supported for element +collection. This support will be added in a future iteration.
  • +
  • Support for entity TYPE() expression. Allows projection of or query +criteria based on entity type. OpenJPA does not currently allow selection +of an abstract entity type.
  • +
  • Support for new javax.persistence standard properties. Standard +properties such as javax.persistence.jdbc.driver can now be specified as +configuration properties.
  • +
+
+

+

Milestone 2

+

The Milestone 2 release will not be an official ASF release, but will be +created as a Early Access 2 SNAPSHOT branch due to the JSR-317 terms of use +restrictions. A distribution of the Early Access 2 SNAPSHOT is available here + for download or the code can be checked out from svn.

+

+ + + + +
+ + + + + +
Download Milestone 2
+
+
+

+

+ + + +
View SVN Files
+
+

+

+

Iteration 3 Summary - OPENJPA-808

+

+ +

+

+

+ +
+ Iteration 3 (Jan. 26, 2009 - Feb. 13, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-808 + + OpenJPA 2.0 iteration 3 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 3, OpenJPA includes several additional JPA +2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • Support for collection-valued parameters in JPQL using the IN expression. + A collection-valued parameter (List, Set, etc.) may now be used in +conjunction with the IN expression within the where clause of a JPQL +statement.
  • +
  • JPA specification level is available through OpenJPA configuration. The +JPA specification level of the provider can now be retrieved via the +openjpa.Specification property.
  • +
  • Support for derived identities including the use of MappedById. OpenJPA +now supports entities which have an identity that is derived from the id of +another identity for one-to-one and many-to-one relationships with a +parent-dependent type association.
  • +
  • Support for getSupportedProperties and getProperties methods on the +EntityManager and EntityManagerFactory. The active properties and their +values, in addition to the full set of supported properties can be +retrieved for the EntityManager and EntityManagerFactory.
  • +
  • The OrderColumn annotation and equivalent XML now allows the +specification of the table element. The table element can be used to +specify the join or collection table used to maintain the relationship.
  • +
  • Support for getHints and getSupportedHints on Query. The active hints +and their values, in addition to supported hints can be retrieved for a +Query.
  • +
+

+

Iteration 4 Summary - OPENJPA-875

+

+ +

+

+

+ +
+ Iteration 4 (Feb. 16, 2009 - Mar. 6, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-875 + + OpenJPA 2.0 iteration 4 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 4, OpenJPA includes several additional JPA +2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • Support new JPA LockModeType in find, lock and refresh methods in the +EntityManager interface. A new "mixed" lock manager is introduced +implementing the new mixed optimistic and pessimistic entity locking +semantics.
  • +
  • AttributeOverride enhanced to allow navigation of multiple levels of +embeddables, use with map keys and values, and use with element +collections.
  • +
  • AssociationOverride enhanced to support specification of of a join table +and override of embeddables within relationships.
  • +
  • Additional support of derived identities.
  • +
  • Support for general and qualified identification variables in JQPL +selections. KEY, ENTRY, and VALUE qualifiers +can now be used within the SELECT clause.
  • +
+

+

Iteration 5 Summary - OPENJPA-956

+

+ +

+

+

+ +
+ Iteration 5 (Mar. 9, 2009 - Apr. 3, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-956 + + OpenJPA 2.0 iteration 5 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 5, OpenJPA includes several additional JPA +2.0 (based on the 03/13/2009 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • Updated spec APIs and schemas based upon most current specification +draft. New, unimplemented methods will throw an +UnsupportedOperationException.
  • +
  • A lock timeout hint value can now be specified on applicable entity +manager and query methods.
  • +
  • Lock mode (including the new pessimistic lock modes) can be specified on +query methods and named queries. This allows for fine-grained locking +configuration at the method level.
  • +
  • The unwrap method can be used to get access to underlying OpenJPA entity +manager and query interfaces.
  • +
  • JPQL queries support the selection of KEY, VALUE, and ENTRY map values.
  • +
  • Single entities or an entity graph may be detached from the entity +manager. Specifying the new cascade type of DETACH or ALL on relationships +allows selective detachment of an entity graph.
  • +
  • The third argument of the JPQL SUBSTRING function is now optional.
  • +
  • JPQL queries have been enhanced to support the projection of element +collections.
  • +
  • JPQL queries have been enhanced to support nested embeddables and +relationships from embeddables.
  • +
+

+

Iteration 6 Summary - OPENJPA-1007

+

+ +

+

+

+ +
+ Iteration 6 (Apr. 6, 2009 - May 1, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1007 + + OpenJPA 2.0 iteration 6 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 6, OpenJPA includes several additional JPA +2.0 (based on the 03/13/2009 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • +

    Query timeout detection for additional databases. Query timeouts are more +accurately detected and reported in DB2, Oracle, SQL Server, and Informix.

    +
  • +
  • +

    Support for scalar expressions in JPQL subqueries. Scalar expressions +such as substring can now be used within a subquery.

    +
  • +
  • +

    Support for explicit access types on persistent types. The persistence +access method to use can now be specified on a per-type and field/method +level.

    +
  • +
  • +

    Updates to OrderColumn and EntityManager methods to match new spec draft.

    +
  • +
  • +

    JPQL queries now support key/value paths as arguments to scalar +functions. KEY() and VALUE() can now be used to indicate that a map key or +value should be used as an argument to a scalar function.

    +
  • +
+

+

Iteration 7 Summary - OPENJPA-1052

+

+ +

+

+

+ +
+ Iteration 7 (May 4, 2009 - May 29, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1052 + + OpenJPA 2.0 iteration 7 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 7, OpenJPA includes several additional JPA +2.0 (based on the 03/13/2009 spec draft) features. Here is a summary of the +new features provided by OpenJPA:

+
    +
  • New MapKeyEnumerated and MapKeyTemporal annotations and equivalent XML +elements for tagging the key of a map collection as either an enumerated or +temporal type.
  • +
  • Base support for JSR-303 Bean Validation including basic configuration +and lifecycle-based event validation.
  • +
  • Support the use of delimited identifiers within annotation attributes for +a subset of mapping annotations when using the Derby and DB2 databases. +Support for additional databases will be added in future iterations.
  • +
  • JPQL subqueries now support derived path expressions and the use of KEY() +on map collections.
  • +
  • OSGI bundle metadata has been added to the OpenJPA jar. This simplifies +the use of OpenJPA in an OSGi environment such as Apache Felix +.
  • +
  • OrderBy no longer requires name attribute when applied to a collection of +basic type.
  • +
+
+

+

Milestone 3

+

The Milestone 3 release is an official ASF release, but we encourage you to +upgrade to the final 2.0.0 as soon as possible after it is released. A +distribution of the Milestone 3 is available here + for download or the code can be checked out from svn.

+

+ + + + +
+ + + + + +
Download Milestone 3
+
+
+

+

+ + + +
View SVN Files
+
+

+

+

Iteration 8 Summary - OPENJPA-1105

+

+ +

+

+

+ +
+ Iteration 8 (June 1, 2009 - July 3, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1105 + + OpenJPA 2.0 iteration 8 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 8, OpenJPA includes several additional JPA +2.0 features and bug fixes. Here is a summary of the new features provided +by OpenJPA:

+
    +
  • Sub-project for JSR-303 (Bean Validation) testing with configurable bean +validation providers.
  • +
  • Automatic detection of bean validation providers.
  • +
  • Support for bean validation groups, configurable through standard +persistence.xml properties.
  • +
  • Bug fixes for attribute-overrides and embeddable processing.
  • +
  • Performance enhancements to class reflection utility. Provides 17% +performance gain in some benchmarks.
  • +
+

+

Iteration 9 Summary - OPENJPA-1152

+

+ +

+

+

+ +
+ Iteration 9 (July 6, 2009 - July 31, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1152 + + OpenJPA 2.0 iteration 9 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 9, OpenJPA includes several additional JPA +2.0 features and bug fixes. Here is a summary of the new features provided +by OpenJPA:

+
    +
  • Bean Validation support for validation groups. Specific validation +groups can be targeted for lifecycle events.
  • +
  • A TraversableResolver is now registered with the bean validator. The +resolver ensures that only loaded attributes are validated.
  • +
  • A PersistenceProviderResolver and PersistenceProviderResolverHolder are +available from the Geronimo Spec API. PersistenceProviderResolver can be +used to return the list of persistence providers available in the runtime +environment.
  • +
  • Availablility of ProviderUtil and PersistenceUnitUtil interfaces. These +interfaces provide methods to determine the load state of a persistent +entity or attribute. In addition, PersistenceUnitUtil can be used to get +the identifier of an entity.
  • +
  • Significant improvements to OpenJPA's subquery processing.
  • +
  • OpenJPA now includes the ability to use a pluggable encryption provider. +This provider can be used to support encrypted database passwords in the +persistence.xml. See the Encryption Provider + chapter in the documentation for more details.
  • +
+

+

Iteration 10 Summary - OPENJPA-1209

+

+ +

+

+

+ +
+ Iteration 10 (Aug. 3, 2009 - Aug. 28, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1209 + + OpenJPA 2.0 iteration 10 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 10, OpenJPA includes several additional +JPA 2.0 features and bug fixes. Here is a summary of the new features +provided by OpenJPA:

+
    +
  • Support for the Criteria and Metamodel API. The Criteria and Metamodel +API can be used in conjunction to create and execute strongly-typed +programmatic queries.
  • +
  • Metamodel source file generation. OpenJPA provides tooling to generate +metamodel source classes.
  • +
  • Support for the TypedQuery and Tuple interfaces. These interfaces are +provided to manipulate typed queries and their results.
  • +
  • Automatic setting of compatibility options based upon persistence +version. Compatibility options are configured based on persistence version +to provide backward compatibility for OpenJPA version 1.x applications.
  • +
  • Support for naming of unique constraints.
  • +
  • Lob, Temporal, and Enumeration can now be specified on element +collections.
  • +
  • JPQL now supports multiple constructors in the query projection list.
  • +
  • Support for the shared-cache-mode element in the persistence.xml. +Provides configuration/enablement options for L2 cache.
  • +
  • Support for Cacheable annotation and CacheStoreMode/CacheRetriveMode +properties. Allows per class configuration of L2 cacheing and +per-operation tuning of cache behavior.
  • +
  • Database updates including updates for Derby reserved words, usage of a +new version of commons-pool and commons-dbcp, and a new Derby network +server test profile.
  • +
  • Support for JDBC date, time, and timestamp literals within JPQL and +Criteria queries.
  • +
+

+

Iteration 11 Summary - OPENJPA-1268

+

+ +

+

+

+ +
+ Iteration 11 (Aug. 31, 2009 - Oct. 2, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1268 + + OpenJPA 2.0 iteration 11 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 11, OpenJPA includes several additional +JPA 2.0 features and bug fixes. Here is a summary of the new features +provided by OpenJPA:

+
    +
  • OpenJPA is based upon Proposed Final Draft 2 of JSR-317 +.
  • +
  • Support for cascading detach using cascade-detach as specified in the +orm.xml.
  • +
  • Assertion that relationships in MappedSuperclass are unidirectional.
  • +
  • OpenJPA was updated to the CR5 level of the bean validation +specification.
  • +
  • A new code sample which showcases the use of embeddables.
  • +
  • Corrected an XML encoding issue which occurred when using XML data with +SQL Server.
  • +
  • Many documentation updates.
  • +
  • Improved test coverage for many database platforms. The current test +matrix is available here +.
  • +
+
+

+

Milestone 4

+

+

Iteration 12 Summary - OPENJPA-1337

+

+ +

+

+

+ +
+ Iteration 12 (Oct. 5, 2009 - Oct. 30, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1337 + + OpenJPA 2.0 iteration 12 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 12, OpenJPA includes several additional +JPA 2.0 features +and bug fixes. Here is a summary of the new features provided by OpenJPA:

+
    +
  • Support for extended lock scope via the javax.persistence.lock.scope +property.
  • +
  • Support for the GA version of the JSR-303 + Bean Validation API.
  • +
  • Many documentation updates, notably for Criteria API and Metamodel +tooling.
  • +
  • More improvements to test coverage for additional database platforms. +The current test matrix is available here +.
  • +
+

+

Iteration 13 Summary - OPENJPA-1373

+

+ +

+

+

+ +
+ Iteration 13 (Nov. 2, 2009 - Dec. 4, 2009) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1373 + + OpenJPA 2.0 iteration 13 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 13, OpenJPA includes several additional +JPA 2.0 features +and bug fixes. Here is a summary of the new features provided by OpenJPA:

+
    +
  • Support for CacheRetrieveMode and CacheStoreMode on find and refresh +operations.
  • +
  • Support for find and refresh entity manager operations that accept +properties.
  • +
+

+

Iteration 14 Summary - OPENJPA-1426

+

+ +

+

+

+ +
+ Iteration 14 (Dec. 7, 2009 - Jan. 1, 2010) 

+

+   + + + +

+

+

+
 Issue Progress:  + + + + +
+ +
+
+

+

+ + + + +

+

+ + + +

+

+ +

+

+ + +
+  

+

+ Key + + Summary + + Assignee + + Pr + + Status +
1.
+ OPENJPA-1426 + + OpenJPA 2.0 iteration 14 primary task + + Jeremy Bauer + + Major + + ClosedClosed +

+

With the completion of iteration 13, OpenJPA includes several additional +JPA 2.0 features +and bug fixes. Here is a summary of the new features provided by OpenJPA:

+
    +
  • Support for delimited identifiers.
  • +
  • Added support for testing with JPA 2.0 TCK
  • +
+
+

+

Beta

+

The Beta release is an official ASF release and it passed the JPA 2.0 TCK, +but we encourage you to upgrade to the final 2.0.0 as soon as possible +after it is released. A distribution of the Beta is available here + for download or the code can be checked out from svn.

+

+ + + + +
+ + + + +

+

Download Beta
+
+
+ + + + + +
View SVN Files
+
+

+
+

+

Release Candidate

+

+

Remaining Work Items -

+
    +
  • Performance improvements
  • +
  • L2 Cache provider improvements
  • +
  • TBD
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jpa-2.0-presentations.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-2.0-presentations.html (added) +++ websites/staging/openjpa/trunk/content/jpa-2.0-presentations.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JPA 2.0 Presentations

+

We'll document the major new features of the JPA 2.0 specification and how +they are being implemented in OpenJPA on this page.

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10195-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:18 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C661FE0D7 for ; Sun, 9 Dec 2012 13:15:17 +0000 (UTC) Received: (qmail 85380 invoked by uid 500); 9 Dec 2012 13:15:17 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 85337 invoked by uid 500); 9 Dec 2012 13:15:16 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 85313 invoked by uid 99); 9 Dec 2012 13:15:16 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:09 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 8F1742388C8A for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [16/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.8F1742388C8A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/jest-transaction.html ============================================================================== --- websites/staging/openjpa/trunk/content/jest-transaction.html (added) +++ websites/staging/openjpa/trunk/content/jest-transaction.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

We have not figured that out yet!

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jest-usage.html ============================================================================== --- websites/staging/openjpa/trunk/content/jest-usage.html (added) +++ websites/staging/openjpa/trunk/content/jest-usage.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JEST facilities are available as a HTTP servlet, +org.apache.openjpa.persistence.jest.JESTServlet.

+

JESTServlet can be deployed in a servlet container e.g. Tomcat in two +possible modes: primary or auxiliary.

+

+

Deployment Modes

+

+

In primary mode, the JESTServlet itself instantiates a persistence +unit during initialization.

+

In auxiliary mode, the JESTServlet discovers a persistence unit used +by another component X. +The sibling component X must satisfy the following for JEST to discover +its persistent unit

+
    +
  • The component X and JESTServlet must belong to the same +deployment unit.
  • +
  • The component X must activate OpenJPA's native +EntityManagerFactory pool. The pool is activated by switching on +openjpa.EntityManagerFactoryPool configuration property to true. +This property is available only via runtime configuration. The following +code example ensures that OpenJPA's native EntityManagerFactory pool is +active.
  • +
+

Activation of OpenJPA's native EntityManagerFactory pool

+
Map<String,Object> props = new HashMap<String, Object>();
+props.put("openjpa.EntityManagerFactoryPool", "true");
+EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPU",props);
+
+ + +

JESTServlet accepts following initial configuration parameters

+ + + + + +
PropertyDescription
persistence.unitName of the persistent unit. Must be specified.
standalonetrue implies primary mode. Defaults to false.
debugtrue implies verbose tracing of HTTP requests. Defaults to false.
+ +

The following deployment descriptor WEB-INF/web.xml deploys +JESTServlet in auxiliary mode

+

JEST Deployment Descriptor in Auxiliary Mode

+
<web-app version="2.4" 
+        xmlns="http://java.sun.com/xml/ns/j2ee" 
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    <display-name>Demo Application with JEST Servlet</display-name>  
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+    <description>
+        An example of deploying a simple web application with JEST servlet.
+        This descriptor specifies the Demo Application servlet as well as JEST servlet.
+    </description>
+
+    <servlet>
+        <description> 
+            This is the Demo Application Servlet.
+            The servlet is mapped to URL pattern /app/* so this servlet can be accessed as
+                 http://host:port/demo/app/ 
+            where "demo" is the name of the deployed web application.
+
+            Assume that the Demo Application Servlet is using a persistence unit named 
+            'jestdemo'. The JEST Servlet will require the persistence unit name to
+            browse the Demo Application.              
+        </description>
+
+        <servlet-name>demo</servlet-name>
+        <servlet-class>demo.SimpleApp</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>demo</servlet-name>
+        <url-pattern>/*</url-pattern>
+    </servlet-mapping>
+
+    <!-- Deployment descriptor for JESTServlet.     -->
+    <servlet>
+        <description>
+            This is the JEST servlet. 
+            JEST Servlet needs to know the name of the persistence unit used by the 
+            Demo Application. The unit name is specified by mandatory "persistence.unit" 
+            parameter during initialization.
+
+            The JEST servlet is mapped to URL pattern /jest/* in servlet mapping section. 
+            So to access JEST servlet, use the following URI
+                http://host:port/demo/jest/
+            Notice the trailing forward slash character is significant. 
+        </description>
+        <servlet-name>jest</servlet-name>
+
+        <servlet-class>org.apache.openjpa.persistence.jest.JESTServlet</servlet-class>
+        <init-param>
+            <param-name>persistence.unit</param-name>
+            <param-value>jestdemo</param-value>
+        </init-param>
+        <init-param>
+            <param-name>debug</param-name>
+            <param-value>true</param-value>
+        </init-param>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>jest</servlet-name>
+        <url-pattern>/jest/*</url-pattern>
+    </servlet-mapping>
+</web-app>
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jpa-2.0-development-process.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-2.0-development-process.html (added) +++ websites/staging/openjpa/trunk/content/jpa-2.0-development-process.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JPA 2.0 Development Process

+

+

JPA 2.0 Roadmap

+

The OpenJPA roadmap and iteration detail for developing JPA 2.0 +functionality is documented here +. The process to be used for this development effort will be documented on +this Development Process page.

+

+

Overview

+

JPA 2.0 is currently being defined by the Java Community Process under JSR-317 +. The most recent public draft is dated 03/13/2009. Members of the Apache +OpenJPA project continue to monitor and actively participate in JSR-317. +OpenJPA has recently branched off its 1.x efforts and is targeting its next +release, OpenJPA 2.0, to in addition to providing new features, be fully +spec compliant with JPA 2.0. While the JPA 2.0 spec is still in the review +process, the OpenJPA project will begin implementing JPA 2.0 capabilities +as defined by the draft specification. This will help to ensure a timely +delivery of JPA 2.0 functionality in addition to providing experience-based +feedback to the JPA committee.

+

+

JPA 2.0 Highlights

+

The latest draft of the JPA 2.0 specification includes many updates to JPA, +from minor updates to major functional enhancements. Some of these updates +and enhancements include:

+
    +
  • Collections of embeddables and basic types
  • +
  • Derived Identity support
  • +
  • Relationship support within embeddables
  • +
  • Enhancements to persistent map collection support
  • +
  • Standard properties for query timeout and persistence configuration
  • +
  • Lock mode configuration on entity manager and query
  • +
  • Cache interface to access L2 cache
  • +
  • Criteria API for programmatic query definition
  • +
  • Many JPQL enhancements
  • +
+

+

Contributions

+

The OpenJPA 2.0 release needs contributions in the areas of development, +testing, and documentation. If you are simply interested in trying out new +capabilities of JPA 2.0, contributing to the test suite is a great way to +do that; while making a significant contribution to the project.

+

+

Process

+
    +
  • All new features, spec related or other improvements must have an +corresponding JIRA. Large items should be broken down into manageable +sub-tasks. The JIRA should include design details, decision rationality, +and testing information.
  • +
  • Use test driven development + (write tests before code). Test driven development can be extremely +beneficial for gaining an initial understanding the requirements of the +feature and will help ensure that the feature is adequately tested. Too +often, tests are the last thing to be written so they can end up incomplete +or worse yet, forgotten. Test driven development in OpenJPA is now more +feasible with the recent enhancement in OPENJPA-766 +.
  • +
  • Documentation updates/additions, when necessary, must accompany new +function.
  • +
  • As of iteration 5, OpenJPA 2.0 development will be based on four week +iterations (or sprints). Each iteration will include a set of new features +and enhancements. Features must have accompanying tests and documentation +and go through a code review. A feature must fit within the iteration +period. Larger and/or complex tasks may need to be broken down such that +they can be contributed as individual, consumable features. For example, +JPA 2.0 defines relationship support within an embedded. If this task is +deemed complex due to the need to support multiple relationship types, +relationship type one-to-one could be made available in one iteration and +the many-to-one relationship type could be added in subsequent iteration.
  • +
  • A call for participation will be posted prior to the start of each +iteration. An iteration plan will be composed based on who can participate +and what they plan to contribute.
  • +
  • Code reviews will be conducted using the standard Commit-Then-Review +(CTR) process (for OpenJPA committers), unless a pre-commit code review is +specifically requested. Artifacts submitted by non-committers must be +reviewed before they are committed.
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10196-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:19 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D69B4E0DA for ; Sun, 9 Dec 2012 13:15:18 +0000 (UTC) Received: (qmail 85485 invoked by uid 500); 9 Dec 2012 13:15:18 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 85455 invoked by uid 500); 9 Dec 2012 13:15:18 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 85432 invoked by uid 99); 9 Dec 2012 13:15:17 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:17 +0000 X-ASF-Spam-Status: No, hits=-1998.0 required=5.0 tests=ALL_TRUSTED,FB_GET_MEDS,T_FRT_STOCK2 X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 97DD82388C91 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [19/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.97DD82388C91@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/jsr-317-20081031-public-draft-tasks.html ============================================================================== --- websites/staging/openjpa/trunk/content/jsr-317-20081031-public-draft-tasks.html (added) +++ websites/staging/openjpa/trunk/content/jsr-317-20081031-public-draft-tasks.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

JPA 2.0 Spec Features based on JSR-317 10/31/2008 public draft

+

For the most recent task list see the JPA 2.0 Roadmap +.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status JIRA(s) Effort Summary JPA 2.0 Spec Reference(s)
Complete OPENJPA-782 + Medium Support for nested embeddables 2.5
Complete OPENJPA-782 + Medium Support for collections of embeddables and basic types 2.2, +2.6, 2.7.2
In Progress OPENJPA-926 + Medium Support persistent access types including @Access annotation +and AccessType enum and XML 2.3, 10.1.1, 10.1.2
Complete OPENJPA-871 + High Support derived identity 2.4.1
Complete OPENJPA-782 + Medium Support relationships within embeddables 2.5, 10.1.22, +10.1.24, 10.1.25, 10.1.33, 10.1.34
Complete OPENJPA-851 + Low Enhanced map collection support 2.7
Complete OPENJPA-870 + Medium Support orphanRemoval attribute on relationships 2.9, +10.1.33, 10.1.34
In Progress OPENJPA-962 + Medium New database object naming conventions (delimited-identifiers) + 2.13
Complete OPENJPA-891 + Medium Support LockTypeModes on EntityManager find and refresh +operations 3.1.1
Not Started Low Support vendor specific hints +on EntityManager find and refresh operations 3.1.1
Complete OPENJPA-885 + Low Support clear method on EntityManager, including new +CascadeType.CLEAR 3.1.1, 3.2.6, 10.1.24, 10.1.25
Complete OPENJPA-849 + Low Add metadata-type getter methods to EntityManager 3.1.1
Complete OPENJPA-891 + Medium Meet new concurrency requirements, including supporting four +new lock mode types 3.4
Complete OPENJPA-957 + Low Support lock timeout hint on applicable methods 3.4.4.3
Complete OPENJPA-959 + Medium Support setLockMode and getLockMode methods on Query 3.6
Complete OPENJPA-960 + Low Support EntityManager and Query unwrap 3.6
Complete OPENJPA-990 + Low setHint should return IllegalArgumentException for invalid +query/lock timeout values 3.6.1
Not Started Medium Throw new JPA 2.0 unchecked +exceptions on entity manager operations 3.7, 3.1
In Progress OPENJPA-806 + High Criteria API Ch. 5
Not Started Low Basic EntityManagerFactory +interface updates, new exceptions, properties and metadata methods 6.4
Complete OPENJPA-809 + Low Support Cache Interface 6.10
Complete OPENJPA-850 + Low Support standard provider properties in persistence.xml 7.2.1.7
Complete OPENJPA-972 + Low Support standard provider properties in PersistenceProvider class + 8.1.3.1
Complete OPENJPA-850 + Medium Support standard provider properties in Persistence class +8.2.1
Complete OPENJPA-958 + Medium Support lockMode on @NamedQuery 9.3.1
Not Started Low Ignore query hints that are +not recognized in all locations where query hints can be specified - log +warning? 9.3
Complete OPENJPA-937 + Medium @AssociationOverride updates 10.1.2
Complete OPENJPA-930 + Medium @AttributeOverride updates 10.1.4
Complete OPENJPA-782 + Low Support @CollectionTable annotation 10.1.7, 2.7.2
Complete OPENJPA-782 + Low Support @ElementCollection annotation and XML 10.1.11, 10.1.35
Complete OPENJPA-871 + High Support for derived identity with @IdClass 10.1.18, 2.4.1
Not Started Low Review @JoinColumn elements +for behavioral changes 10.1.20
Complete OPENJPA-851 + Low Support @MapKeyClass annotation and XML 10.1.27, 10.1.26
Complete OPENJPA-851 + Low Support @MapKeyColumn annotation and XML 10.1.28, 2.7.1
Complete OPENJPA-851 + Medium Support @MapKeyJoinColumn annotation and XML 10.1.29
Complete OPENJPA-851 + Low Support @MapKeyJoinColumns annotation and XML 10.1.30
Complete OPENJPA-871 + Low Support @MappedById annotation and XML 10.1.31
Not Started Low Review @OrderBy for behavioral +changes 10.1.35
Complete OPENJPA-803 + Low Update SequenceGenerator to support schema and catalog 10.1.41
Complete OPENJPA-823 + Low Use 2.0 versions of xsd's for validation, maintain 1.0 support +11.3, 7.3
Complete OPENJPA-837 + Low Update OpenJPA documentation with new persistence schemas 11.3, +7.3
Complete OPENJPA-961 + Low Projection of element collection from JPQL query 2.2, 2.6, 2.7.2 +
+
+
+ + + +
+ +
+ +
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10197-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:24 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 14E4EE0DF for ; Sun, 9 Dec 2012 13:15:24 +0000 (UTC) Received: (qmail 85803 invoked by uid 500); 9 Dec 2012 13:15:23 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 85663 invoked by uid 500); 9 Dec 2012 13:15:22 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 85650 invoked by uid 99); 9 Dec 2012 13:15:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:22 +0000 X-ASF-Spam-Status: No, hits=-1998.0 required=5.0 tests=ALL_TRUSTED,FB_GET_MEDS X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 94E0F2388C90 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [18/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.94E0F2388C90@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/jpa-2.0-roadmap.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-2.0-roadmap.html (added) +++ websites/staging/openjpa/trunk/content/jpa-2.0-roadmap.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JPA 2.0 Road Map

+

Apache OpenJPA 2.0.0 is being developed in trunk and will be a JPA 2.0 +certified release of the JSR-317 + specification.

+

+

Development Process

+

The process that OpenJPA will be following for developing JPA 2.0 +functionality is documented here +. The specific roadmap and iteration details will be documented on this +Roadmap page.

+

+

Test Coverage

+

For a list of databases being tested and current status, checkout the JPA 2.0 Test Coverage + page.

+

+

Presentations

+

Take a look at the JPA 2.0 Presentations + page for more details on the major new features of the JPA 2.0 +specification and how they are being implemented in OpenJPA.

+

+

Iteration Schedule and Content

+

The Iteration content can be found on the JPA 2.0 Iterations + page.

+
    +
  • +

    Milestone 1

    +
      +
    • Iteration 1 (Dec. 1, 2008 - Dec. 19, 2008) - OPENJPA-800
    • +
    • Iteration 1a (Dec. 22, 2008 - Jan. 2, 2009) - OPENJPA-831
    • +
    • Iteration 2 (Jan. 5, 2009 - Jan. 23, 2009) - OPENJPA-807
    • +
    +
  • +
  • +

    Milestone 2

    +
      +
    • Iteration 3 (Jan. 26, 2009 - Feb. 13, 2009) - OPENJPA-808
    • +
    • Iteration 4 (Feb. 16, 2009 - Mar. 6, 2009) - OPENJPA-875
    • +
    • Iteration 5 (Mar. 9, 2009 - Apr. 3, 2009) - OPENJPA-956
    • +
    • Iteration 6 (Apr. 6, 2009 - May 1, 2009) - OPENJPA-1007
    • +
    • Iteration 7 (May 4, 2009 - May 29, 2009) - OPENJPA-1052
    • +
    +
  • +
  • +

    Milestone 3

    + +
  • +
  • +

    Beta

    + +
  • +
  • +

    Beta 2 - Released Feb. 27, 2010

    +
  • +
  • 2.0.x Branch - March 22, 2010
  • +
  • [Beta 3]#beta3) - Released March 29, 2010
  • +
  • Release Candidate - started April 11, 2010
  • +
  • 2.0.0 - Released April 22, 2010
  • +
+

+

Iteration Tasks

+

The individual tasks and status can be fond on the JPA 2.0 Tasks + page.

+
+

+

Releases

+

+

2.0.0

+

The OpenJPA 2.0.0 + release is an official ASF release and passed the final JPA 2.0 TCK. A +distribution of the release is available here + for download or the code can be checked out from svn.

+

+ + + + +
+ + + + + +
Download 2.0.0
+
+
+ + + + + +
View SVN Files

+
+

+

+
+

+

Beta 3

+

The OpenJPA 2.0.0 Beta 3 + release is an official ASF release and passed the final JPA 2.0 TCK, but +we still encourage you to upgrade to the final 2.0.0 as soon as possible +after it is released. A distribution of the Beta is available here + for download or the code can be checked out from svn.

+
+

+

Beta 2

+

The OpenJPA 2.0.0 Beta 2 + release is an official ASF release and passed the final JPA 2.0 TCK, but +we still encourage you to upgrade to the final 2.0.0 as soon as possible +after it is released. A distribution of the Beta is available here + for download or the code can be checked out from svn.

+
+

+

Beta

+

The OpenJPA 2.0.0 Beta + release is an official ASF release and passed the final JPA 2.0 TCK, but +we still encourage you to upgrade to the final 2.0.0 as soon as possible +after it is released. A distribution of the Beta is available here + for download or the code can be checked out from svn.

+
+

Milestone 3 +

The OpenJPA 2.0.0 Milestone 3 + release is an official ASF release, but it implements an early access +version of the JPA 2.0 specification and we encourage you to upgrade to the +final 2.0.0 as soon as possible after it is released. A distribution of +the Milestone 3 is available for download + or the code can be checked out from svn +.

+
+

+

Milestone 2

+

The Milestone 2 release will not be an official ASF release, but will be +created as a Early Access 2 SNAPSHOT branch due to the JSR-317 terms of use +restrictions. A distribution of the Early Access 2 SNAPSHOT is available +for download + or the code can be checked out from svn +.

+
+

+

Milestone 1

+

The Milestone 1 release was never "officially" released, due to the JSR-317 +terms of use issues, but the files were tagged and can be checked out from svn +.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jpa-2.0-tasks.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-2.0-tasks.html (added) +++ websites/staging/openjpa/trunk/content/jpa-2.0-tasks.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,369 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0 Tasks

+

+

JPA 2.0 Spec Features

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status JIRA(s) Effort Summary Area JPA 2.0 Spec +Reference(s)
Complete OPENJPA-1358 + Low Added find method that accepts properties (no lock mode) EM +3.1.1
Complete OPENJPA-1358 + Low New refresh method that accepts properties (no lock mode) EM +3.1.1
Complete OPENJPA-1358 + Low Verify cache mode properties support on find, refresh and Query +Cache 3.7.2
Complete OPENJPA-1306 + Medium Added new javax.persistence.lock.scope property Locking +3.4.3
Complete OPENJPA-1253 + Medium Review @JoinColumn elements for behavioral changes Mapping +11.1.21
Complete OPENJPA-1306 + Medium Review clarifications to locking modes Locking 3.4.3
Complete Low Review chapter on deployment and +bootstrapping contracts for updates. General Ch 9
Complete OPENJPA-1270 + Low Assert that relationships defined in a mapped superclass must be +unidirectional. General 2.11.2
Complete Spec updated TBD New JPQL reserved +identifiers. JPQL 4.4.1
Complete OPENJPA-1069 + Low Review @OrderBy for behavioral changes Mapping 11.1.38
Complete OPENJPA-1274 + Low Test CascadeType.DETACH via orm.xml Testing 12.3
Complete Routine JPQL BNF update Low Updated +single_valued_path_expression definition JPQL 4.4.4
Complete Routine JPQL BNF update Low New JPQL +reserved identifiers should not be used as result variables JPQL 4.4.1 +
Complete OPENJPA-1272 + Low attribute-override and association-override available from +element-collection XML schema type Mapping 12.3
Complete OPENJPA-1271 + Medium Support for CacheRetrieveMode and CacheStoreMode properties. +Cache 3.7.2
Complete OPENJPA-1264 + Low Cacheable attribute added to entity element in orm.xml Cache +12.2.3.3, 12.3
Complete OPENJPA-1264 + Medium Cacheable annotation Cache 3.7, 11.1.7
Complete OPENJPA-1266 + Low Support for JDBC escape sequence for date/time literals (6/19 rev) + JPQL 4.6.1
Complete OPENJPA-1240 + Low Allow Lob, Temporal, Enumerated annotations to be applied to +element collections annotations and in XML. Mapping 11.1.16, 11.1.24, +11.1.47
Complete OPENJPA-1264 + Low Cache mode elements added to persistence.xml Cache 3.7.1, +3.7.2, 8.3
Complete OPENJPA-1228 + Low Default value change of exclude-unlisted-classes element General + 8.2.1.6.1 (7/23)
Complete OPENJPA-1251 + Low EntityManagerFactory getProperties returns Map of + EMF 7.4
Complete OPENJPA-1251 + Medium Added setProperty method EM 3.1.1
Complete OPENJPA-1013 + High Build strictly-typed Criteria API Criteria Ch 6
Complete OPENJPA-1014 + High Build weakly-typed Criteria API Criteria Ch 6
Complete OPENJPA-1180 + High Added getParameters, getParameterValue, getParameter methods to +Query interface Typed Parameters 3.8.1, 3.8.5
Complete OPENJPA-1009 + High Populate canonical meta-model for strictly typed Criteria Query +building Metamodel Ch 5
Complete OPENJPA-1010 + High Instantiate meta-model classes for JPA 2.0 from source code +annotations Metamodel Ch 5
Complete OPENJPA-1008 + High Generate meta-model for JPA 2.0 Metamodel Ch 5
Complete OPENJPA-1235 + Low Optional name element to UniqueConstraint annotation and +corresponding XML type. Mapping 11.1.49, 12.3
Complete OPENJPA-1107 + Medium Provide TraversableResolver for use with Bean Validation +Factory Spec API 3.6.1.2
Complete OPENJPA-1013 + Low Modified getQueryBuilder to return updated criteria query builder + EMF, Criteria 7.4
Complete OPENJPA-1010 + Low New getMetamodel method EMF, Metamodel 7.4
Complete OPENJPA-1191 + High Implement Typed Query interface Typed Query 3.8.1, 3.8.5
Complete OPENJPA-1191 + High Implement Tuple interface Typed Query 3.8.1, 3.8.5
Complete OPENJPA-1068 + High Support Bean Validation: Entity validation upon lifecycle events. + Bean Validation 3.6, 3.2.9
Complete OPENJPA-1082 + Low Validation target groups via persistence.xml or createEMF +properties Map Bean Validation 3.6.1.2, 8.3
Complete OPENJPA-1013 + Low Modified createQuery to accept updated criteria query definition +EM, Criteria 3.1.1
Complete OPENJPA-1013 + Low Modified getQueryBuilder to return updated criteria query builder + EM, Criteria 3.1.1.
Complete OPENJPA-995 + High Migrate existing Criteria Query implementation as OpenJPA +extension Criteria Ch 6
Complete OPENJPA-1069 + Medium OrderBy annotation applied to an element collection of basic +type doesn't require property or field name Mapping 11.1.38
Complete OPENJPA-1055 + Medium Added MapKeyEnumerated and MapKeyTemporal annotations and XML. + Mapping 11.1.30, 11.1.33, 12.3
Complete OPENJPA-937 + Medium Allow use of AssociationOverrides with mapped superclass +relationships. Mapping 11.1.2
Complete OPENJPA-926 + Medium Support persistent access types including @Access annotation +and AccessType enum and XML General 2.3, 11.1.1, 12.2.1.4, 12.2.2.4, +12.3
Complete OPENJPA-1034 + Low Remove contiguous and base elements from OrderColumn annotation +Mapping 11.1.39
Complete OPENJPA-1032 + Low Removal and revert behavior of getNamedParameters and +getPositionalParameters Query 3.8.1
Complete OPENJPA-1013 + Low Added getMetamodel method EM, Metamodel 3.1.1
Complete OPENJPA-773 + Low Renamed clear method to detach EM 3.1.1
Complete OPENJPA-773 + Low Changed target-entity attribute to target-class in +element-collection Mapping 12.3
Complete OPENJPA-773 + Low Update pessimistic lock mode names Locking 3.4.4
Complete OPENJPA-878 + Low Timeouts are in milliseconds. Query, Locking 3.8.8, 3.4.4.3
Complete OPENJPA-773 + Low Renamed cascade CLEAR to DETACH EM 3.1.1, 3.2.6
Complete OPENJPA-1077 + Low Validation-mode element support added to persistence.xml and to +createEMF properties Map Bean Validation 3.6.1.1, 8.3
Complete OPENJPA-1102 + Low Support application/container provided ValidatorFactory Bean +Validation 3.6.2
Complete OPENJPA-1076 + Medium PersistenceProviderResolver interface and +PersistenceProviderResolverHolder class Spec API 9.3
+ +

Task list for JSR-317 10/31/2008 public draft

+

+

Other Improvements

+ + + + + + + +
Status JIRA Summary
Not Started OPENJPA-1011 + Instantiate meta-model classes for JPA 2.0 from XML descriptors
Complete OPENJPA-766 + Tests that currently fail should be committed to the repository
Complete OPENJPA-5 + Allow compilation with JDK 6
Complete OPENJPA-1114 + Bean Validation APIs should be an optional runtime dependency
Complete OPENJPA-1113 + Reflection class performance improvement
+ +

+

General Tasks

+ + + + + + + + +
Status JIRA Summary
Not Started OPENJPA-837 + OpenJPA does not fully support database catalogs
Not Started OPENJPA-910 + Allow multiple keys for the same property to be specified at different +levels
Complete OPENJPA-773 + Upgrade to JPA 2 - umbrella task - includes updating spec API
Complete OPENJPA-757 + Map existing OpenJPA extensions to new features of JPA 2.0
Complete OPENJPA-1103 + Remove early-access disclaimer from the NOTICE files once the spec is +released
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jpa-2.0-test-coverage.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-2.0-test-coverage.html (added) +++ websites/staging/openjpa/trunk/content/jpa-2.0-test-coverage.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

JPA 2.0 Test Coverage

+

Starting with OpenJPA 2.0.0, we have split the supported databases + into verified and compatible categories. The automated database testing +performed by IBM and regular testing performed by the OpenJPA community in +the lists below, are used to determine which databases will be listed as +verified instead of just compatible.

+

+

Automated Database Coverage

+

JUnit results for OpenJPA supported databases being tested nightly by IBM +using Java SE 6 (either IBM SDK or Sun JDK).

+

(/) - All tests passed
+ (x) - Number of failing tests

+ + + + + + + + + + +
Database JDBC Driver M3 (I11 - 20091005) Beta (I14 - 20100125) + Beta2 (20100224) Beta3 (20100323)
Derby 10.2.2.0 Embedded (/) 2711 (/) 2904
Derby 10.5.3.0 Embedded (/) 3004 (/) 3049
DB2 9.5.2 JCC 3.50.152 2 (x) 1 (x) (/) 3004 1 (x)
HSQLDB 1.8.0.10 Embedded in-memory 13 (x) 12 (x) 12 (x) 16 (x) +
MySQL 5.0.67 JDBC 5.1.6 1 (x) (/) (/) 2 (x)
MS SQL Server 2005 SP3 (9.00.4035) sqljdbc4 2.0.1803.100 14 (x) 8 +(x) 8 (x) 10 (x)
MS SQL Server 2008 SP2 (10.0.2531) sqljdbc4 2.0.1803.100 14 (x) 5 +(x) 5 (x) 8 (x)
Oracle 10g Express (10.2.0.1.0) ojdbc14 10.2.0.1.0XE 5 (x) 3 (x) +5 (x) in locking 1 (x) + locking
+ +

+

Manual Database Coverage

+

If you regularly test OpenJPA 2.0.x against another DB vendor or level not +listed above and would like to share your results, then feel free to add +them below. All we ask, is that you provide as much of the details +requested below, so others can make their own decision on whether to use +one of these combinations in their environment.

+ + + + + + + + + +
Database JDBC Driver Java SVN Rev Results Submitter +Notes
Derby 10.3.3.0 (652961) Embedded Sun 1.6.0_15 r817831 (20090922) +2 (x) dwoods OPENJPA-1322 +
Derby 10.4.2.0 (689064) Embedded Sun 1.6.0_15 r817831 (20090922) +2 (x) dwoods OPENJPA-1322 +
Derby 10.5.3.0 (802917) Embedded Sun 1.6.0_15 r813659 (20090910) +1 (x) dwoods OPENJPA-1293 +
MS SQL Server 2008 (10.00.1600) jTDS 1.2.5 Sun 1.5.0_11-b03 r895453 +(20100103) 4 (x) mtylenda did not run locking tests
PostgreSQL 8.3.5 8.4 JDBC3 (build 701) Sun 1.5.0_11-b03 r885965 +(20091201) 31 (x) mtylenda AccessToUnderlyingConnectionAllowed DBCP +property set to true, 12 failures come from locking tests
H2 1.1.118 Embedded Sun 1.5.0_11-b03 r905001 (20100131) 48 (x) +mtylenda in-memory named database, 47 failures come from locking tests; +with MVCC option turned on there are 23 failures from locking tests, OPENJPA-1367 +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/jpa-m2-demo.html ============================================================================== --- websites/staging/openjpa/trunk/content/jpa-m2-demo.html (added) +++ websites/staging/openjpa/trunk/content/jpa-m2-demo.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

M2 Demo

+

We have created a demo that shows off a subset of the new features that +were added during the second milestone +. The code that is being demoed can be found in the openjpa-examples module +under the src/jpastore directory.

+

+

Domain Info

+

+ + +
schema.jpeg
class_diagram.jpeg

+

+

Video

+

+ +{HTML} + +{HTML} +

+ + + + +
+

+
+ + + +
+ +
+ +
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10198-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:34 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 773BFE0EA for ; Sun, 9 Dec 2012 13:15:34 +0000 (UTC) Received: (qmail 86617 invoked by uid 500); 9 Dec 2012 13:15:33 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86537 invoked by uid 500); 9 Dec 2012 13:15:32 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86477 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 9CF1E2388C92 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [20/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.9CF1E2388C92@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/license.html ============================================================================== --- websites/staging/openjpa/trunk/content/license.html (added) +++ websites/staging/openjpa/trunk/content/license.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Apache License v2.0

+
+ +
                           Apache License
+                      Version 2.0, January 2004
+                   http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+      Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+      stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+      that You distribute, all copyright, patent, trademark, and
+      attribution notices from the Source form of the Work,
+      excluding those notices that do not pertain to any part of
+      the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+      distribution, then any Derivative Works that You distribute must
+      include a readable copy of the attribution notices contained
+      within such NOTICE file, excluding those notices that do not
+      pertain to any part of the Derivative Works, in at least one
+      of the following places: within a NOTICE text file distributed
+      as part of the Derivative Works; within the Source form or
+      documentation, if provided along with the Derivative Works; or,
+      within a display generated by the Derivative Works, if and
+      wherever such third-party notices normally appear. The contents
+      of the NOTICE file are for informational purposes only and
+      do not modify the License. You may add Your own attribution
+      notices within Derivative Works that You distribute, alongside
+      or as an addendum to the NOTICE text from the Work, provided
+      that such additional attribution notices cannot be construed
+      as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ + +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/logo-contest.html ============================================================================== --- websites/staging/openjpa/trunk/content/logo-contest.html (added) +++ websites/staging/openjpa/trunk/content/logo-contest.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Announcing the OpenJPA Logo Contest

+

+
    +
  • Submissions accepted through June 30, 2009*
  • +
  • Round 1 Voting runs from July 1 through July 8*
  • +
  • Round 2 Voting runs from July 9 through July 14*
  • +
  • New - Run-off Voting runs from July 15 through July 21*
  • +
  • Winner Will be announced on or after July 22*
  • +
+

+

Contest Rules

+
    +
  • Submission Guidelines:
      +
    • Anyone can submit one or more logos, as long as they own the IP rights.
    • +
    • All submissions must be licensed as ASL 2.0 +.
    • +
    • Submitted designs must include a logo for the website banner, which +should be no more than 150 pixels high and 500 pixels wide.
    • +
    • Images should be submitted in PNG (preferred) or JPG format and +optionally in other formats (like PSD for future editing/resizing.)
    • +
    • Submissions can be made by:
        +
      • Editing this wiki page and adding your logo (only available to OpenJPA +contributors and committers)
      • +
      • Provide a URL to the files on a public website
      • +
      • Attached to OPENJPA-1134 + JIRA
      • +
      • Submitted by email to dev@openjpa.apache.org with a subject header that starts with [LOGO](logo.html) + so they can be added to this page.
      • +
      +
    • +
    +
  • +
  • Voting:
      +
    • Will occur from July 1 through July 14 and may include multiple rounds +of voting.
        +
      • Initial Round - July 1 through 23:59 GMT on July 9
      • +
      • Finalist Round (top 5) - July 10 through 23:59 GMT on July 14
      • +
      • Run-off Round (if final vote ends in a tie) - July 15 through 23:59 GMT +on July 21
      • +
      +
    • +
    • Anyone can submit a vote, but the OpenJPA PMC will have the final say on +which logo is selected.
    • +
    • Vote on your top three choices (or less) but you cannot vote for the +same logo for multiple choices (like first, second and third.)
        +
      • First = 3 pts.
      • +
      • Second = 2 pts.
      • +
      • Third = 1 pt.
      • +
      +
    • +
    +
  • +
  • Winner:
      +
    • Will be announced on or after July 15 and will be expected to have a CLA +on file with the ASF before their logo will be used.
    • +
    • Attribution will be in the form of a news posting, email announcement to +the OpenJPA mailing lists and inclusion on the website Thanks + page.
    • +
    +
  • +
+

+

Logo Submissions

+

The results of the first round of voting can be found at - OpenJPA Logo Contest - Round 1

+

The results of the second round of voting can be found at - OpenJPA Logo Contest - Round 2

+

The results of the run-off round of voting can be found at - OpenJPA Logo Contest - Run-off

+

The winning logo was:

+

https://issues.apache.org/jira/secure/attachment/12414244/openjpa-logo1.png

+

The logo has been attached to OPENJPA-1134 + by Donald, who is an OpenJPA committer, using ASL 2.0.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10201-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:35 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4DACCE0EC for ; Sun, 9 Dec 2012 13:15:35 +0000 (UTC) Received: (qmail 86769 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86586 invoked by uid 500); 9 Dec 2012 13:15:33 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86478 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-1996.2 required=5.0 tests=ALL_TRUSTED,FRT_APPROV,URI_HEX X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A11402388C93 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [21/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.A11402388C93@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/mailing-lists.html ============================================================================== --- websites/staging/openjpa/trunk/content/mailing-lists.html (added) +++ websites/staging/openjpa/trunk/content/mailing-lists.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Project Mailing Lists

+

OpenJPA mailing lists for users, developers and committers are hosted by Nabble forum.
+You can view the current posts, subscribe or unsubscribe, post messages or browse the archives.

+ + + + + + + + + + + + + + +
View Recent PostsSubscribeUnsubscribePost a MessageBrowse Archive Feeds
OpenJPA User List + users-subscribe + users-unsubscribe + users + mail-archives.apache.org
or Nabble +
RSS +
OpenJPA Developer List + dev-subscribe + dev-unsubscribe + dev + mail-archives.apache.org
or Nabble +
RSS +
OpenJPA Commits List + commits-subscribe + commits-unsubscribe + commits + mail-archives.apache.org
Nabble +
RSS +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/migration-tool.html ============================================================================== --- websites/staging/openjpa/trunk/content/migration-tool.html (added) +++ websites/staging/openjpa/trunk/content/migration-tool.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

Migration Tool

+

This command-line utility translates proprietary mapping descriptors to +standard JPA mapping descriptors.

+

+

Download

+

The latest OpenJPA Tools JAR file can be download from the SNAPSHOT Repository + or can be built from the source code in svn + by using Maven 2.2.1 and Java SE 6.

+

+

Usage:

+
  $ java org.apache.openjpa.tools.MigrationTool -input xyz.xml [-output xyz.orm.xml] [-actions migration-actions.xml]  [-verbose true]
+
+ + +

where

+ + + + + + + + + + + + + +
-input input location of the proprietary XML mapping descriptor +resource. The resource is looked up in the current classpath. If not +located as a resource, then looked up as an input file in relative to the +current directory. This option is mandatory +
-output output location of the translated mapping descriptor file. This +option is not mandatory. If unspecified, the output is simply printed on +the standard console. +
-actions the actions to be performed on every element of the input +descriptor elements. These actions are specified as XML elements compliant +to a XML schema. A template of these actions for a _subset_ of Hibernate elements is +included in migration-actions.xml. +This option is not mandatory. The archetype for translating Hibernate +mapping descriptor is used as a default. +
-verboseprints detailed trace of what the tool is doing. This option is +not mandatory. If unspecified, detailed messages are not printed.
+ +

+

Discussion

+

This tool takes each top-level element of the input mapping descriptor and +applies one or more actions to translate it to a standard JPA mapping +descriptor. +For example, consider the input fragment

+
<class name="com.approuter.deploy.Project" table="PROJECTS" select-before-update="false">
+  <id name="id" type="java.lang.Long" column="ID">
+    <generator class="native" />
+  </id>
+</class>
+
+ + +

This fragment will be translated by the tool as follows:

+
<entity class="com.approuter.deploy.Project">
+    <table name="PROJECTS"/>
+    <attributes>
+      <id name="id">
+         <column name="ID"/>
+         <generated-value strategy="AUTO"/>
+      </id>
+    </attributes>
+</entity>
+
+ + +

The series of actions that translated this fragments are as follows:

+
    +
  • The input element is translated to element.
  • +
  • The name attribute of input element is translated to class attribute. The value of the attribute remained intact.
  • +
  • the table attribute of input element is translated to a new element . The value of the table attribute appeared as name attribute in the translated element. +
  • the attribute select-before-update is ignored as it does not have a direct counterpart in standard JPA mapping descriptor. Actually this attribute controls runtime behavior and it is debatable whether a mapping descriptor is the proper place for such an attribute.
  • +
  • a new element appeared in the translated document which had no equivalent counterpart in the original document.
  • +
  • the column attribute of input element is translated to a new element . The value of the column attribute appeared as name attribute in the translated element.
  • +
  • the input element is translated to element.
  • +
  • the class attribute of input element is translated to a strategy attribute. The value of the attribute is translated from native to AUTO.
  • + +

    The translation was carried out by a series of generic, parameterized actions. The actions are specified in migration-actions.xml. Here is a snippet from that archetype to define those generic actions and their parameters.

    +
    <actions for="class">
    +    <rename-node to="entity"/>
    +    <rename-attr from="name" to="class"/>
    +    <promote-attr from="table" to="table" as="name"/>
    +    <ignore-attr name="select-before-update"/>
    +    <ignore-attr name="type"/>
    +    <insert-node name="attributes"/>
    +</actions>
    +<actions for="id">
    +    <rename-node to="id"/>
    +    <rename-attr from="name" to="name"/>
    +    <promote-attr from="column" to="column" as="name">
    +        <consume-attr from="length" to="length"/>
    +        <consume-attr from="unique" to="unique"/>
    +    </promote-attr>
    +    <ignore-attr name="type"/>
    +</actions>
    +<actions for="generator">
    +    <rename-node to="generated-value"/>
    +    <rename-attr from="class" to="strategy">
    +        <map-value from="native"   to="AUTO"/>
    +        <map-value from="assigned" to="IDENTITY"/>
    +     </rename-attr>
    +</actions>
    +
    + + +

    The schema that specifies what actions are supported and their parameters are defined in a XML schema.

    +

    + This tool is at experimental stage of development and does not cater to +all possible variations that such a translation may require. However, that +is why the design allows new custom actions be defined and applied to cater +to more complex use cases. +

    + + + + +
    +
    +
+ + + +
+ +
+ +
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/obtaining.html ============================================================================== --- websites/staging/openjpa/trunk/content/obtaining.html (added) +++ websites/staging/openjpa/trunk/content/obtaining.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA official releases can be downloaded at the Downloads + page.

+

Released binaries can also by accessed from Maven pom.xml files by pointing +them to the repository at +http://people.apache.org/repo/m2-incubating-repository. An example pom.xml +that will use the 0.9.0-incubating release is as follows:

+
<?xml version="1.0" encoding="UTF-8"?>
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>some-project</groupId>
+    <artifactId>some-project</artifactId>
+    <packaging>jar</packaging>
+    <name>My Project</name>
+    <version>1.0.0</version>
+    <repositories>
+    <repository>
+        <id>central</id>
+        <url>http://www.ibiblio.org/maven2</url>
+    </repository>
+    <repository>
+        <id>apache-snapshots</id>          
+        <url>http://people.apache.org/repo/m2-incubating-repository</url>
+    </repository>
+    </repositories>
+    <dependencies>
+    <dependency>
+        <groupId>org.apache.openjpa</groupId>
+        <artifactId>openjpa-all</artifactId>
+        <version>0.9.6-incubating</version>
+    </dependency>
+    </dependencies>
+</project>
+
+ + +

Also, there is a snapshot repository set up for maven located at http://people.apache.org/repo/m2-snapshot-repository/org/apache/openjpa/ + where development snapshot jars will be stored. Maven projects can be +configured to depend on the openjpa snapshots by setting up their pom.xml +as follows:

+
+
+

Update Version

+

In the example below replace 0.9.8-SNAPSHOT with the version you wish to +use. Ex. 1.2.0, or 1.3.0-SNAPSHOT

+
+
+
<?xml version="1.0" encoding="UTF-8"?>
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>some-project</groupId>
+    <artifactId>some-project</artifactId>
+    <packaging>jar</packaging>
+    <name>My Project</name>
+    <version>1.0.0</version>
+    <repositories>
+    <repository>
+        <id>central</id>
+        <url>http://www.ibiblio.org/maven2</url>
+    </repository>
+    <repository>
+        <id>apache-snapshots</id>
+        <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+    </repository>
+    </repositories>
+    <dependencies>
+    <dependency>
+        <groupId>org.apache.openjpa</groupId>
+        <artifactId>openjpa-all</artifactId>
+        <version>0.9.8-incubating-SNAPSHOT</version>
+    </dependency>
+    </dependencies>
+</project>
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openbooks---featuring-jpa-2.0.html ============================================================================== --- websites/staging/openjpa/trunk/content/openbooks---featuring-jpa-2.0.html (added) +++ websites/staging/openjpa/trunk/content/openbooks---featuring-jpa-2.0.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenBooks is a sample (and perhaps, simple) application featuring some of +the new features in JPA 2.0. +This demonstration features usage of new JPA 2.0 features such as

+
    +
  • Criteria Query
  • +
  • Compound, Derived identity
  • +
  • Orphan Delete
  • +
  • Persistent Domain Model API
  • +
+

The sample application shows essential build and packaging steps for both +as

+
    +
  • a Swing-based JSE application and
  • +
  • a typical Web Application Archive (*.war) ready to be deployed in a +Java Enterprise container.
    +
  • +
+

OpenBooks demonstrates few useful practices in domain modeling such as +composite persistent relations, +isolating immutable state for better cache utilization, immutable +relationship etc. Architecturally, +OpenBooks uses a design pattern to enable the same persistence service be +used inside and outside +a managed environment. Such patterns vastly speeds up develop-test-debug +cycle for persistence and +object-relation mapping functionality outside a container.
+

+

+

Availability

+

The source code and build script for OpenBooks is available in OpenJPA +SubVersion repository under openjpa-examples/openbooks

+

To access the source code

+
$ svn co https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-examples/openbooks
+
+ + +

+

Building

+
    +
  • Follow the instruction + to build and run OpenBooks. +These instructions can also be found also in index.html at the OpenBooks root directory.
  • +
+

Here are few screen shots of OpenBooks running as a Swing Application.

+

+

Selecting and Purchasing Books

+

OpenBooks.ScreenShot1.JPG

+

+

Persistent Domain Model (as a Powerpoint Slide)

+

OpenBooks.ScreenShot2.JPG

+

+

Browsing the same domain model via Metamodel API

+

OpenBooks.ScreenShot3.JPG

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa+email.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa+email.html (added) +++ websites/staging/openjpa/trunk/content/openjpa+email.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA email aliases

+

+

dev@openjpa.apache.org

+

This alias is primarily for the developers on the OpenJPA project.

+

To subscribe, send mail to mailto:dev-subscribe@openjpa.apache.org
+To unsubscribe, send mail to mailto:dev-unsubscribe@openjpa.apache.org
+Archives can be found at http://mail-archives.apache.org/mod_mbox/openjpa-dev

+

+

users@openjpa.apache.org

+

This alias is primarily for users of OpenJPA.

+

To subscribe, send mail to users-subscribe@openjpa.apache.org
+To unsubscribe, send mail to users-unsubscribe@openjpa.apache.org
+Archives can be found at http://mail-archives.apache.org/mod_mbox/openjpa-users

+

+

commits@openjpa.apache.org

+

This alias tracks all changes to the OpenJPA svn repository.

+

To subscribe, send mail to commits-subscribe@openjpa.apache.org
+To unsubscribe, send mail to commits-unsubscribe@openjpa.apache.org
+Archives can be found at http://mail-archives.apache.org/mod_mbox/openjpa-commits

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10199-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:36 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 56981E0F3 for ; Sun, 9 Dec 2012 13:15:35 +0000 (UTC) Received: (qmail 86773 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86556 invoked by uid 500); 9 Dec 2012 13:15:33 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86479 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 23ABC2388CA7 for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [28/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.23ABC2388CA7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/privacy-policy.html ============================================================================== --- websites/staging/openjpa/trunk/content/privacy-policy.html (added) +++ websites/staging/openjpa/trunk/content/privacy-policy.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

All materials provided on the Apache OpenJPA website (openjpa.apache.org) +is Copyright © 2005-2009, The Apache Software Foundation and Licensed under ASL 2.0 +.

+

Privacy Policy - Last Updated: April 29, 2009

+

Information about your use of this website is collected using server access logs + and a tracking cookie. The collected information consists of the following:

+
    +
  • The IP address from which you access the website;
  • +
  • The type of browser and operating system you use to access our site;
  • +
  • The date and time you access our site;
  • +
  • The pages you visit; and
  • +
  • The addresses of pages from where you followed a link to our site.
  • +
+

Part of this information is gathered using a tracking cookie set by the Google Analytics + service and handled by Google as described in their privacy policy +. See your browser documentation for instructions on how to disable the +cookie if you prefer not to share this data with Google.

+

We use the gathered information to help us make our site more useful to +visitors and to better understand how and when our site is used. We do not +track or collect personally identifiable information or associate gathered +data with any personally identifying information from other sources.

+

By using this website, you consent to the collection of this data in the +manner and for the purpose described above.

+

Occasionally, at our discretion, we may include links to other third party +content or services on our website. These third party sites have separate +and independent privacy policies and therefore we have no responsibility or +liability for the content and activities of these linked sites.

+

If we make changes to our privacy policy, we will send a notification to +our mailing lists users@openjpa.apache.org and dev@openjpa.apache.org +along with updating the "Last Updated" date at the top of this page.

+

If there are any questions regarding this privacy policy, you can contact +us on the following mailing list private@openjpa.apache.org.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/publishing-serp-to-maven-central-repository.html ============================================================================== --- websites/staging/openjpa/trunk/content/publishing-serp-to-maven-central-repository.html (added) +++ websites/staging/openjpa/trunk/content/publishing-serp-to-maven-central-repository.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Publishing Serp to Maven Central Repository

+

+

Serp Project

+

Serp is used by OpenJPA for the bytecode enhancement processing. It is +maintained as a SourceForge project +. Serp has been a very solid third-party dependent software project. +OpenJPA has had a dependency on Serp v1.13.1 for a long time. Recently, a +problem was discovered JIRA OPENJPA-2240 which +required an update to Serp. Eventually, it was determined that this +problem was resolved in the 1.14.1 version of Serp. Unfortunately, the +last version of Serp that was published to Maven Central was version +1.13.1. This page discusses how to get an updated Serp release into the +Maven Central repository.

+

SourceForge Serp: https://sourceforge.net/projects/serp/
+Serp homepage: http://serp.sourceforge.net
+Serp sourcecode: http://serp.cvs.sourceforge.net/serp

+

+

Maven Instructions

+

The easiest way to get the updated artifacts for Serp 1.14.1 into Maven +Central was to follow the instructions on this page: +https://docs.sonatype.org/display/Repository/Uploading+3rd-party+Artifacts+to+The+Central+Repository. + You will need a GPG utility and signature (instructions on that page). +You will also need a login for Sonatype's Nexus server (instructions also +on that page).

+

Since this exercise shouldn't be a common occurrence, I just went the +manual route and signed each of the artifacts that were built into my local +repository:

+
> gpg -ab serp-1.14.1-javadoc.jar
+> gpg -ab serp-1.14.1.jar
+> gpg -ab serp-1.14.1-sources.jar
+> gpg -ab serp-1.14.1.pom
+
+ + +

And, then I created a bundle:

+
> jar -cvf serp-1.14.1-bundle.jar serp-*
+
+ + +

The bundle contained:

+
Archive:  serp-1.14.1-bundle.jar
+  Length     Date   Time    Name
+ --------    ----   ----    ----
+    0  09-04-12 15:23   META-INF/
+       62  09-04-12 15:23   META-INF/MANIFEST.MF
+   962397  09-04-12 15:21   serp-1.14.1-javadoc.jar
+      499  09-04-12 15:22   serp-1.14.1-javadoc.jar.asc
+   140576  09-04-12 15:21   serp-1.14.1-sources.jar
+      499  09-04-12 15:21   serp-1.14.1-sources.jar.asc
+   206638  09-04-12 15:21   serp-1.14.1.jar
+      499  09-04-12 15:22   serp-1.14.1.jar.asc
+     5508  09-04-12 15:21   serp-1.14.1.pom
+      499  09-04-12 15:23   serp-1.14.1.pom.asc
+ --------           -------
+  1317177           10 files
+
+ + +

This bundle is what I uploaded to the Sonatype Staging repository as +outlined on that wiki page +.

+ +
+ Not documented..
One process point that was not documented on that +wiki page +was the need for a JIRA to be created against the OSSRH project (Open +Source Project Repository Hosting). This JIRA should include the Central +Repository staging URL that is provided after you upload the bundle. +Here's an example JIRA + that worked for me. If all else fails, contact Joel Orlina, +jorlina@sonatype.com. +
+ +

+

Serp Code Updates

+

In order to create the -javadoc and -sources jar files, I had to make a +couple of minor updates to the existing pom file for serp 1.14.1. I +committed these changes to HEAD (1.14.2 snapshot) for future reference:

+
    <plugin>
+      <artifactId>maven-source-plugin</artifactId>
+      <executions>
+        <execution>
+        <id>attach-sources</id>
+        <goals>
+            <goal>jar</goal>
+        </goals>
+        </execution>
+      </executions>
+    </plugin>
+
+    <plugin>
+      <artifactId>maven-javadoc-plugin</artifactId>
+      <executions>
+        <execution>
+        <id>attach-javadoc</id>
+        <goals>
+          <goal>jar</goal>
+        </goals>
+        </execution>
+      </executions>
+    </plugin>
+
+ + +

If we continue to require changes to Serp, we may want to do more extensive +changes in the maven processing to make it easier to deploy the artifacts. +Several of the deployment locations in the pom.xml no longer exist. I made +a couple of updates, but the permissions don't show up right, so the +deployment step is still manual.

+

Another idea would be to consume Serp into OpenJPA as an Apache +sub-project... That might be the best long-term solution. But, I will +leave that for another day.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/query-notes.html ============================================================================== --- websites/staging/openjpa/trunk/content/query-notes.html (added) +++ websites/staging/openjpa/trunk/content/query-notes.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+
+name conflict: QueryImpl from JDBC vs. QueryImpl from kernel
+openjpa.kernel.jpql.JPQLParser
+joins are done by SelectImpl
+subselects have some issues especially with non-relationship 
+src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt has rules
+all queries always have a "candidate class" 
+openjpa.jdbc.kernel.exps.JDBCExpressionFactory implements
+openjpa.kernel.exps.ExpressionFactory
+openjpa.kernel.exps.InMemoryExpressionFactory implements
+openjpa.kernel.exps.ExpressionFactory
+can do in memory filtering by downcasting the JPA Query instance and
+passing it a collection to filter
+can traverse entity parameters via :param.firstname or
+:param.relationship.deptname
+DBDictionary contains fields that can be customized per database type
+JPQLExpressionBuilder does semantic analysis by walking the syntax tree and
+generating the semantic tree
+SQLFactoryImpl constructs the SQL for the query
+SQLBuffer is the result of applying DBDictionary rules to the semantic tree
+Can append SQLBuffer to another SQLBuffer for e.g. subselects
+SQLBuffer is almost a StringBuffer
+ResultSetResult will call ResultSet.getInt etc.
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/quick-start.html ============================================================================== --- websites/staging/openjpa/trunk/content/quick-start.html (added) +++ websites/staging/openjpa/trunk/content/quick-start.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Quick Start Guide

+

We know it can be hard to find the right help sometimes and search engines +can be overwhelming, so we will try to put the most commonly asked for +topics with some overview and links to more in-depth resources here for you +to checkout, before wasting your time searching through our Documentation + and [Mailing Lists] + for help.

+

+

Runtime Dependencies

+

To use OpenJPA as a stand-alone Java component or with a lightweight +non-Java EE framework, please refer to the following Build and Runtime Dependencies + page for the supported levels of Java SE.

+

To use OpenJPA in a Java EE application server, please refer to the +following Integration + page for the known platforms that either include OpenJPA or have been +tested with OpenJPA.

+

+

JPA Examples

+

OpenJPA provides some simple examples as part of the binary distribution on +the Downloads + page. The following [Samples] + page provides quick start instructions on how to build and run these +samples, along with pointers to other JPA samples from the Apache Geronimo +project.

+

+

Enhancing Entities

+

The JPA spec requires some type of monitoring of Entity objects, but the +spec does not define how to implement this monitoring. Some JPA providers +auto-generate new subclasses or proxy objects that front the user's Entity +objects at runtime, while others use byte-code weaving technologies to +enhance the actual Entity class objects at build time. OpenJPA supports +both enhancement + methods, but strongly suggests only using the build time enhancement. +The following [Entity Enhancement] + page includes more details on both enhancement types, along with examples +on how to setup build time enhancement in ANT, Maven and Eclipse +environments.

+

+

Tools

+

OpenJPA provides several design-time and runtime tools, to perform such +tasks as entity enhancement, schema mapping, generating metamodel classes +and to help migrate from other JPA providers. Please checkout the Tools + page for more details.

+

+

FAQ

+

Some common questions concerning the history, architecture and usage of +OpenJPA can be found on the FAQ + page.

+

+

Take the Red Pill

+

If you want to dive into the rabbit-hole (Hey, It's open source!), then +checkout the Found a Bug + page, which covers everything from posting questions to our mailing lists, +to getting the source code and building it, and creating bug patches....

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/recovering-from-a-vetoed-release.html ============================================================================== --- websites/staging/openjpa/trunk/content/recovering-from-a-vetoed-release.html (added) +++ websites/staging/openjpa/trunk/content/recovering-from-a-vetoed-release.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Recovering from a bad release or a vetoed release

+

Recovering from a bad release actually isn't that difficult. You'll have to delete the bad tag in SVN and rollback the version numbers in all of our pom.xml files.

+

+

Delete the tag in svn

+
$ svn del https://svn.apache.org/repos/asf/openjpa/tags/1.2.0 -m "Rollback release"
+
+ + +

Rollback version numbers

+

If you have perl installed you can do this in a single command for example to rollback from 1.2.1-SNAPSHOT to 1.2.0-SNAPSHOT

+
$ perl -pi -e "s;<version>1.2.1-SNAPSHOT</version>;<version>1.2.0-SNAPSHOT</version>;g" \
+    pom.xml */pom.xml */*/pom.xml
+
+ + +

If you do not have perl installed you can use a similar tool to edit multiple files or edit them all by hand.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10202-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:36 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 55A5AE0F2 for ; Sun, 9 Dec 2012 13:15:35 +0000 (UTC) Received: (qmail 86774 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86677 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86480 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 1F8202388CA6 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [27/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.1F8202388CA6@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/opentraderdeploy.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentraderdeploy.html (added) +++ websites/staging/openjpa/trunk/content/opentraderdeploy.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentraderenvironment.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentraderenvironment.html (added) +++ websites/staging/openjpa/trunk/content/opentraderenvironment.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

What do we need to download

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentraderserver.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentraderserver.html (added) +++ websites/staging/openjpa/trunk/content/opentraderserver.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Describe the server

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/overview.html ============================================================================== --- websites/staging/openjpa/trunk/content/overview.html (added) +++ websites/staging/openjpa/trunk/content/overview.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Overview

+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/performance-guide.html ============================================================================== --- websites/staging/openjpa/trunk/content/performance-guide.html (added) +++ websites/staging/openjpa/trunk/content/performance-guide.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

OpenJPA Performance Guide

+

OpenJPA has numerous configuration properties that apply to many different +use cases. The complete list of properties can be found in the most current user manual +. The remainder of this guide is going to walk through the properties that +will generally provide the most performance improvement.

+

+

Caching

+

+

DataCache

+
    +
  • Link to tuning ?
  • +
+

+

QueryCache

+
    +
  • Link to tuning ?
  • +
+

+

JPA 2.0 Caching

+

+

Using MBean performance monitor

+
    +
  • ?
  • +
+

+

Database Connection Pooling

+

+

Enhancement

+

+

MetaDataRepository

+

+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/powered-by.html ============================================================================== --- websites/staging/openjpa/trunk/content/powered-by.html (added) +++ websites/staging/openjpa/trunk/content/powered-by.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

This page list products and companies that are currently using OpenJPA.

+ + + + + + + + + + + + + + + + +
Compass + is a first class open source Java Search Engine Framework, enabling the +power of Search Engine semantics to your application stack decoratively. +Compass has "native" integration with OpenJPA by working in an "embedded" +mode within it.
!EasyBeans +: EasyBeans is an open source, lightweight and modular EJB3 container +hosted by the OW2 consortium +. EasyBeans is the EJB container of the JOnAS application server +. EasyBeans can be integrated in application servers like Apache Tomcat + or Jetty +. There is a version provided as OSGi bundles. Supporting several +persistence providers, since the 1.0 RC1 release, OpenJPA is the default +persistence provider in some packages.
Geronimo +: The Apache Geronimo project is a free Java EE certified application +server developed by the Apache Software Foundation and distributed under +the Apache license. The goal of the Geronimo project is to produce a server +runtime framework that pulls together the best Open Source alternatives to +create runtimes that meet the needs of developers and system +administrators. OpenJPA 1.0.x is shipped as part of Geronimo 2.0.x through +2.1.3, while OpenJPA 1.2.x is included starting with 2.1.4.
IBM WebSphere Application Server V8.5 is a Java EE 6 certified application server which includes OpenJPA 2.2.x, allowing users to simply deploy an enterprise archive, web archive, or EJB-JAR that contains a persistence unit. +IBM WebSphere Application Server V8.0 is a Java EE 6 certified application server which includes OpenJPA 2.1.x, allowing users to simply deploy an enterprise archive, web archive, or EJB-JAR that contains a persistence unit. +Feature Pack for OSGi Applications and JPA 2.0 for WebSphere Application Server v7.0 This OSGi / JPA 2.0 Feature Pack delivers JPA 2.0 functionality (based on OpenJPA 2.0.x) for existing Java EE 5 users on WebSphere Application Server v7.0. +IBM WebSphere Application Server V7.0 is a Java EE 5 certified application server which includes OpenJPA 1.2.x, allowing users to simply deploy an enterprise archive, web archive, or EJB-JAR that contains a persistence unit. +Feature Pack for EJB 3.0 for IBM WebSphere Application Server V6.1: The Feature Pack for EJB 3.0 delivers several new Java EE 5 technologies, including EJB 3.0 and Java™ Persistence API (JPA based on OpenJPA 1.0.x), for existing Java EE 1.4 users on WebSphere Application Server V6.1. +IBM WebSphere Application Server Community Edition V2.1 + is a Java EE 5 certified application server based on Apache Geronimo +, which includes OpenJPA.| +
James +: The Apache James Project delivers a rich set of open source modules and +libraries, written in Java, related to Internet mail communication which +build into an advanced enterprise mail server. OpenJPA is used in one of +the mailbox persistence mechanisms.
ODE +: ODE (Orchestration Director Engine) is an Apache project to develop an +open-source, Apache-licensed, implementation of the WS-BPEL specification. +ODE is a choreography engine allowing you to develop processes to call +services in a well-defined manner. OpenJPA 0.9.7 is included in versions +1.0 and 1.1, OpenJPA 1.1.0 is included in version 1.2, and OpenJPA 1.2.1 is +included in version 1.3.
OpenMeetings +: OpenMeetings is a free browser-based software that allows you to set up +instantly a conference in the Web.
Oracle WebLogic ServerOracle WebLogic Server +: WebLogic Server 10 uses Kodo as the default JPA implementation, and for +various internal services. Kodo, in turn, includes OpenJPA.
Syncope +: Apache Syncope is an Open Source system for managing digital identities +in enterprise environments, implemented in JEE technology and released +under Apache 2.0 license. OpenJPA is managing the persistence layer and +allows Syncope to run on a wide variety of DBMS.
TomEE +: OpenEJB/TomEE is an open source, modular, configurable, and extendable +EJB Container System and EJB Server. OpenJPA is included with OpenEJB +version 3.0 and later.
Tuscany +: Apache Tuscany simplifies the task of developing SOA solutions by +providing a comprehensive infrastructure for SOA development and management +that is based on Service Component Architecture (SCA) standard.
+
+
+ + + +
+ +
+ +
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10200-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:37 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 58AF6E0F5 for ; Sun, 9 Dec 2012 13:15:35 +0000 (UTC) Received: (qmail 86756 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86572 invoked by uid 500); 9 Dec 2012 13:15:33 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86476 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4FE432388CAE for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [32/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.4FE432388CAE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/sidenav-development.html ============================================================================== --- websites/staging/openjpa/trunk/content/sidenav-development.html (added) +++ websites/staging/openjpa/trunk/content/sidenav-development.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + + +
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/sidenav-overview.html ============================================================================== --- websites/staging/openjpa/trunk/content/sidenav-overview.html (added) +++ websites/staging/openjpa/trunk/content/sidenav-overview.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + + +
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/sidenav-quick-links.html ============================================================================== --- websites/staging/openjpa/trunk/content/sidenav-quick-links.html (added) +++ websites/staging/openjpa/trunk/content/sidenav-quick-links.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + + +
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10205-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:38 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B6739E0F9 for ; Sun, 9 Dec 2012 13:15:37 +0000 (UTC) Received: (qmail 87106 invoked by uid 500); 9 Dec 2012 13:15:35 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86931 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86534 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C2B7A2388CA1 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [23/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.C2B7A2388CA1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/openjpa-2.0.0-milestone-3.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.0-milestone-3.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.0-milestone-3.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.0 Milestone 3

+

The Apache OpenJPA community is proud to provide a Milestone 3 distribution +of OpenJPA 2.0. This distribution is based on the 20090922 Proposed Final +Draft 2 of the JSR-317 JPA 2.0 specification. Included are many +enhancements, fixes, and new functionality; giving developers early access +to many key features of JPA 2.0. Some of the key features included in this +distribution:

+
    +
  • JSR-317 JPA 2.0 + support based on the Proposed Final Draft 2 (20090922) of the APIs and +schemas.
  • +
  • JSR-303 Bean Validation + support based on the 1.0.CR5 level of the APIs and schema.
  • +
  • No Bean Validation API or provider is included with OpenJPA, but either +the Hibernate RI v4.0.0 CR1 + or Agimatec Validation v0.9.3 + can be used.
  • +
  • Many documentation updates and automatic setting of compatibility options +based on persistence version.
  • +
  • Support for the Criteria and Metamodel API, which can be used together to +create and execute strongly-typed programmatic queries.
  • +
  • Metamodel source file generation.
  • +
  • Support for cascading detach using cascade-detach as specified in the +orm.xml.
  • +
  • Assertion that relationships in MappedSuperclass are unidirectional.
  • +
  • Support for the TypedQuery and Tuple interfaces.
  • +
  • Support for naming of unique constraints.
  • +
  • Lob, Temporal, and Enumeration can now be specified on element +collections.
  • +
  • JPQL now supports multiple constructors in the query projection list.
  • +
  • Support for the shared-cache-mode element in the persistence.xml.
  • +
  • Support for Cacheable annotation and CacheStoreMode/CacheRetriveMode +properties.
  • +
  • Support for JDBC date, time, and timestamp literals within JPQL and +Criteria queries.
  • +
  • Significant improvements to OpenJPA's subquery processing.
  • +
  • Performance enhancements to class reflection utility.
  • +
  • OpenJPA now includes the ability to use a pluggable encryption provider.
  • +
  • New example which showcases the use of embeddables.
  • +
  • Improved test coverage + for many database platforms and separation of database support into +verified and compatible categories.
  • +
  • Many more...
    +
  • +
+

This early access distribution is based upon the contributions provided in +development iterations 8 through 12, as defined in the JPA 2.0 Roadmap +. The JPA 2.0 Roadmap + contains a complete list of features and feature summaries, including what +is on deck for future iterations.

+

+ +

Apache OpenJPA was developed by The Apache Software Foundation http://www.apache.org/ + and is licensed under [Apache License 2.0|http://www.apache.org/licenses/LICENSE-2.0] +. +Copyright (C) 2006-2009 Apache Software Foundation. +Apache and the Apache feather logo are trademarks of Apache Software +Foundation.

+

Apache OpenJPA is bundled with the schemas from the JPA specifications, by +Sun Microsystems and licensed under the CDDL 1.0. The source code is +available at: https://glassfish.dev.java.net/source/browse/glassfish/

+

Please review the LICENSE + and [NOTICE|http://openjpa.apache.org/builds/2.0.0-M3/apache-openjpa-2.0.0-M3/NOTICE.txt] + files in svn, source or binary distributions for more details.

+

{note} +This is an implementation of an early-draft specification developed under +the Java Community Process (JCP). The code is untested and presumed not to +be a compatible implementation of the JSR-317 Java Persistence API, Version +2.0 specification. We encourage you to migrate to an implementation of the +JSR-317 Java Persistence API, Version 2.0 specification that has been +tested and verified to be compatible as soon as such an implementation is +available, and we encourage you to retain this notice in any implementation +of JSR-317 Java Persistence API, Version 2.0 specification that you +distribute. +{note}

+

+

Downloads

+

Use the links below to download the artifacts or source for Apache OpenJPA +2.0.0 Milestone 3. It is always good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA artifacts for use within Maven or ANT +builds, see the Obtaining + page. For information on building OpenJPA from source, see the Building + page.

+

+

Binary Assemblies

+ + + +
Description Download Signatures
OpenJPA 2.0.0 Milestone 3 apache-openjpa-2.0.0-M3-binary.zip + PGP +
+ +

+

Source Assemblies

+ + + + + +
Description Download Signatures
OpenJPA 2.0.0 Milestone 3 Source Code apache-openjpa-2.0.0-M3-source.zip + PGP +
Geronimo JPA 2.0 PFD2 source code geronimo-jpa_2.0_spec-1.0-PFD2-sources.jar + PGP +
Geronimo Validation 1.0 Early Access Spec source code geronimo-validation_1.0_spec-1.0-CR5-sources.jar + PGP +
+ +

+

Other Resources

+

+

Documentation

+ +

+

Quick Start

+ +

+

Support

+ +

+

Maven Artifacts

+ +

+

SVN Source Branches

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-2.0.0.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.0.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.0.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.0

+

The Apache OpenJPA community is proud to announce the release of Apache +OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK, while remaining backwards +compatible with prior releases based on the Java Persistence API (JPA 1.0) +part of Java Community Process JSR-220 (Enterprise JavaBeans 3.0). +Included are many enhancements, fixes, and new functionality; giving +developers access to all the new features of JPA 2.0, including:

+
    +
  • Access Types - expanded to allow specification on a per-persistent type +basis or on individual attributes.
  • +
  • Embeddables - expanded to include collections of embeddables, nested +embeddables, and embeddables containing relationships to other entities.
  • +
  • Enhanced Map Collections - expanded to support ElementCollection and new +annotations for MapKeyColumn, MapKeyClass and MapKeyJoinColumn
  • +
  • Derived Identities - enables the ID of an entity to be derived from +another entity, which provides for parent-to-dependent relationships
  • +
  • Query API - methods to get typed query parameters and results, supported +and in-effect hints and lock mode getter/setter
  • +
  • Locking - official support for Pessimistic locking (included in prior +OpenJPA releases) along with LockModeType properties and hint
  • +
  • JPQL Updates -
      +
    • Embeddables support for path expressions to nested Embeddables and +Embeddables with relationships
    • +
    • Enhanced Map Collection support for ElementCollection and new query +expressions for KEY, ENTRY, VALUE
    • +
    • Support for CASE and TYPE expressions along with IN expressions for +Collection parameters
    • +
    • Support for native date/time/timestamp literals
    • +
    • Support for INDEX expressions on an OrderColumn
    • +
    +
  • +
  • L2 Cache -
      +
    • Provides cache operations such as entity eviction and cache mode +behaviors to use, bypass or refresh items
    • +
    • Per-entity annotation to specify whether an entity should be cached
    • +
    +
  • +
  • Bean Validation - supports using a JSR 303 implementation for entity +validation for persist and remove operations
  • +
  • Metamodel API -
      +
    • Provides API to dynamically retrieve metamodel information for a +persistence unit
    • +
    • Used with Criteria API to generate and execute type safe queries
    • +
    • Supports dynamic or static generation of the metamodel
    • +
    +
  • +
  • Criteria API -
      +
    • Provides programmatic construction of queries using an object based +query graph
    • +
    • Operates on Metamodel objects to provide compile-time type safety +enforcement
    • +
    +
  • +
  • EntityManagerFactory API - updated for new L2 Cache, Properties, Criteria +and Metamodel APIs
  • +
  • EntityManager API - updated for new Query and Query Result APIs, Hints, +Properties, LockModeType, and Detach
  • +
  • OSGi - support for the Persistence Unit Service Specification 1.0 in the +OSGi Service Platform Release 4 Enterprise Version 4.2 specifications has +been provided by integration with the Apache Aries JPA module
  • +
  • And many more...
    +
  • +
+

This distribution is based upon the contributions provided in all of the +development iterations for 2.0, as defined in the OpenJPA 2.0 Roadmap +.

+

Additional information on the OpenJPA project may be found at the project web site +.

+
+

+

Downloads

+

Use the links below to download the artifacts or source for Apache OpenJPA +2.0.0. It is always good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA artifacts for use within Maven or ANT +builds, see the Obtaining + page. For information on building OpenJPA from source, see the Building + page.

+ + + + +
Description Download Checksums Signatures
OpenJPA 2.0.0 Binary [apache-openjpa-2.0.0-binary.zip](http://archive.apache.org/dist/openjpa/2.0.0/apache-openjpa-2.0.0-binary.zip) + [MD5http://archive.apache.org/dist/openjpa/2.0.0/apache-openjpa-2.0.0-binary.zip.md5] + [PGPhttp://archive.apache.org/dist/openjpa/2.0.0/apache-openjpa-2.0.0-binary.zip.asc] +
OpenJPA 2.0.0 Source Code [apache-openjpa-2.0.0-source.zip](-http://archive.apache.org/dist/openjpa/2.0.0/apache-openjpa-2.0.0-source.zip.html) + [MD5http://archive.apache.org/dist/openjpa/2.0.0/apache-openjpa-2.0.0-source.zip.md5] + [PGPhttp://archive.apache.org/dist/openjpa/2.0.0/apache-openjpa-2.0.0-source.zip.asc] +
+ +
+

+

Other Resources

+

+

Documentation

+ +

+

Quick Start

+ +

+

Support

+ +

+

Maven Artifacts

+ +

+

SVN Source Branches

+ +
+

+ +

Apache OpenJPA was developed by The Apache Software Foundation + and is licensed under Apache License 2.0 +. +Copyright 2006,2010 The Apache Software Foundation.

+

Apache OpenJPA is bundled with the schemas from the JPA specifications, by +Sun Microsystems and licensed under the CDDL 1.0. The source code is +available at: https://glassfish.dev.java.net/source/browse/glassfish/

+

Please review the LICENSE + and NOTICE + files in svn, source or binary distributions for more details.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-2.0.1.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.1.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.1.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.1

+

The Apache OpenJPA community is proud to announce the maintenance release +of Apache OpenJPA 2.0.1. As with the prior 2.0.0 release, this +distribution is based on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK, while remaining backwards +compatible with the prior 1.2.x releases based on the Java Persistence API +(JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans +3.0). For a list of all the new features of JPA 2.0, please checkout the OpenJPA 2.0.0 + release notes.

+

Additional information on the OpenJPA project may be found at the project web site +.

+

+

Changes in OpenJPA 2.0.1

+

+

Sub-task

+
    +
  • OPENJPA-1635 + Reduce lock contention in MetaDataRepository.processRegisteredClasses
  • +
  • OPENJPA-1638 + Add test variation to TestNamedQueryLockMode
  • +
+

+

Bug

+
    +
  • OPENJPA-1424 + Out of bounds exception using fetch plan
  • +
  • OPENJPA-1641 + SybaseDictionary should try both JDBC column names and Sybase specific +column names
  • +
  • OPENJPA-1668 + User's ''DBDictionary.sequenceSQL' setting not being honored on zOS
  • +
  • OPENJPA-1678 + SQL Parameter values may contain sensitive information and should not be +logged by default.
  • +
  • OPENJPA-1679 + Index name too long for DB2 zOS when schema is present
  • +
  • OPENJPA-1690 + DistinctResultList is not Serializable
  • +
  • OPENJPA-1704 + PCEnhancer incorrectly generates readExternal
  • +
  • OPENJPA-1713 + OutOfMemory caused by EntityManagerImpl.push/popFetchPlan processing
  • +
  • OPENJPA-1714 + Consider openjpa.Optimistic setting when calculating the default lock +mode to apply to a named query
  • +
  • OPENJPA-1715 + OpenJPA generates wrong SQL if a result variable that references an +aggregate expression is used in ORDER BY clause
  • +
  • OPENJPA-1719 + Prepared SQL cache ordering problem with subqueries.
  • +
  • OPENJPA-1722 + Problem serializing DistinctResultList when EntityManager is closed
  • +
  • OPENJPA-1737 + The openjpa-2.0.0.jar does not have its MANIFEST.MF has the first entry
  • +
  • OPENJPA-1742 + Recover if connectionFactory on EntityManagerFactory is invalid but cf +on EntityManager is valid.
  • +
  • OPENJPA-1749 + Throw exception if using datacache / synchronize mappings and specifying +datasource name at EM creation.
  • +
  • OPENJPA-1753 + TestMixedLockManagerLockPermutation: Timing issue determines the +pass/no-pass of the test case
  • +
+

+

Improvement

+
    +
  • OPENJPA-1637 + Upgrade to latest Geronimo Specs for JPA2 and Bean Validation
  • +
  • OPENJPA-1673 + Update MetaDataRepository docs
  • +
  • OPENJPA-1712 + Upgrade builds to use Apache hosted Nexus repo
  • +
  • OPENJPA-1735 + Mark commons-logging as provided in the build to remove transient maven +dependency
  • +
  • OPENJPA-1771 + Upgrade to latest Apache BVAL for testing and apache-rat plugin
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-2.1.0.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.1.0.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.1.0.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,530 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.1.0

+

The Apache OpenJPA community is proud to announce the release of Apache +OpenJPA 2.1.0. As with the prior 2.0.1 release, this distribution is based +on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK, while remaining backwards +compatible with the prior 1.2.x releases based on the Java Persistence API +(JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans +3.0). For a list of all the new features of JPA 2.0, please checkout the OpenJPA 2.0.1 + release notes.

+

Additional information on the OpenJPA project may be found at the project web site +.

+

+

Changes in OpenJPA 2.1.0

+

+

Sub-task

+
    +
  • OPENJPA-1214 - RelationFieldStrategy behaviour
  • +
  • OPENJPA-1247 - WriteBehindCallback sleepTime interval of one EMF +datacache adversely impacting other EMF datacache
  • +
  • OPENJPA-1311 - StoreCacheImpl
  • +
  • OPENJPA-1312 - SelectImpl
  • +
  • OPENJPA-1313 - RowManagerImpl
  • +
  • OPENJPA-1314 - QueryResultCacheImpl
  • +
  • OPENJPA-1316 - GeneratorImpl
  • +
  • OPENJPA-1317 - FetchPlanImpl
  • +
  • OPENJPA-1318 - org.apache.openjpa.persistence.ExtentImpl
  • +
  • OPENJPA-1320 - BrokerImpl
  • +
  • OPENJPA-1348 - Embeddable data not persisted when using WriteBehind +cache flush operation
  • +
  • OPENJPA-1635 - Reduce lock contention in +MetaDataRepository.processRegisteredClasses
  • +
  • OPENJPA-1638 - Add test variation to TestNamedQueryLockMode
  • +
  • OPENJPA-1730 - Bundle Apache Commons DBCP in our binary distribution
  • +
  • OPENJPA-1731 - Document and provide samples on how to use +commons-dbcp
  • +
  • OPENJPA-1764 - Automatically enable connection pooling in unmanaged +environments
  • +
  • OPENJPA-1821 - Upgrade to Commons DBCP 1.4
  • +
  • OPENJPA-1826 - Can we have a new type for ignoring values? +
  • +
+

Bug

+
    +
  • OPENJPA-398 - ConcurrentModificationException at +org.apache.openjpa.kernel.BrokerImpl
  • +
  • OPENJPA-526 - Insert text more than 4K bytes to Clob column causes +SQLException: Exhausted Resultset
  • +
  • OPENJPA-641 - ConcurrentModificationException with self-referring +entity-class when not running the enhancer
  • +
  • OPENJPA-1372 - Generating identifiers by using sequence table may +fail during sequence table initialization
  • +
  • OPENJPA-1424 - Out of bounds exception using fetch plan
  • +
  • OPENJPA-1454 - InstrumentationFactory crashes the tomcat +WebappClassLoader by injecting org.apache.openjpa classes into the +SystemClassLoader
  • +
  • OPENJPA-1501 - EntityManager.find may return multiple instances of +Entities with String identities if id value has trailing spaces.
  • +
  • OPENJPA-1508 - ArrayIndexOutOfBoundsException being thrown from +ClassMetaData.getExtraFieldDataIndex()
  • +
  • OPENJPA-1550 - When batchLimit=-1 or >1 and an exception is caused, +the params and failedObject are missing from the resultant exception.
  • +
  • OPENJPA-1582 - @OrderColumn(updatable=false) may have the order +column field updated
  • +
  • OPENJPA-1584 - PreparedQuery gives wrong result if query has subquery +and parameters are used in both main select and subselect
  • +
  • OPENJPA-1609 - PessimisticLockException instead of +LockTimeoutException thrown on DB2V9 for ZOS
  • +
  • OPENJPA-1613 - Exception thrown when enhancing a (property access) +class that has an abstract @MappedSuperclass with no annotated properties
  • +
  • OPENJPA-1626 - ParseException when specified name of QueryCache
  • +
  • OPENJPA-1627 - ORderBy with @ElementJoinColumn and EmbeddedId uses +wrong columns in SQL
  • +
  • OPENJPA-1634 - Loading JAXB meta data when using MetaDataRepository +preloading isn't thead safe.
  • +
  • OPENJPA-1641 - SybaseDictionary should try both JDBC column names and +Sybase specific column names
  • +
  • OPENJPA-1644 - Null field values after calling EntityManager.remove()
  • +
  • OPENJPA-1646 - DataCacheManager initialization still isn't thread +safe.
  • +
  • OPENJPA-1648 - Slice thread pool breaks down under high concurrency
  • +
  • OPENJPA-1662 - Type support has regressed in OpenJPA 2.0
  • +
  • OPENJPA-1665 - Problems when using auto incrementing colums that +start at zero
  • +
  • OPENJPA-1667 - Incorrect column type for LOB streaming in MySQL
  • +
  • OPENJPA-1668 - User's ''DBDictionary.sequenceSQL' setting not being +honored on zOS
  • +
  • OPENJPA-1670 - PCRegistry memory leak when using MetaDataRepository +preloading.
  • +
  • OPENJPA-1676 - PCClassFileTransformer.transform causing NPE when +class name is null
  • +
  • OPENJPA-1678 - SQL Parameter values may contain sensitive information +and should not be logged by default.
  • +
  • OPENJPA-1682 - TestSimpleXmlEntity.testId failed with invalid DB2 +create table SQL statement
  • +
  • OPENJPA-1683 - Why string encoding of OpenJPA Identity instances for +LongId differes from other built-in identity types?
  • +
  • OPENJPA-1685 - Comma delimited validation groups defined in +persistence.xml do not handle whitespace
  • +
  • OPENJPA-1689 - The mapping tool does not remove user created +sequences on PostgreSQL
  • +
  • OPENJPA-1690 - DistinctResultList is not Serializable
  • +
  • OPENJPA-1691 - Oracle XMLType column failed to insert/update when xml +contains more than 4000 characters
  • +
  • OPENJPA-1692 - Add post creation callback to BrokerFactory
  • +
  • OPENJPA-1695 - OutOfMemoryError from +CacheMarshallerImpl.setInputUrlFromResourceLocation.
  • +
  • OPENJPA-1696 - Type discriminator for polymorphic queries limited to +Single Table inheritance
  • +
  • OPENJPA-1697 - A EnumValueHandler strategy along with XmlType +annotation incorrectly mapped to XmlType in create table DDL
  • +
  • OPENJPA-1701 - Calling em.refresh(...) causes a WARNING message to be +logged
  • +
  • OPENJPA-1704 - PCEnhancer incorrectly generates readExternal
  • +
  • OPENJPA-1713 - OutOfMemory caused by +EntityManagerImpl.push/popFetchPlan processing
  • +
  • OPENJPA-1715 - OpenJPA generates wrong SQL if a result variable that +references an aggregate expression is used in ORDER BY clause
  • +
  • OPENJPA-1719 - Prepared SQL cache ordering problem with subqueries.
  • +
  • OPENJPA-1722 - Problem serializing DistinctResultList when +EntityManager is closed
  • +
  • OPENJPA-1726 - Clean up OpenJPA test case failures for PostgreSQL
  • +
  • OPENJPA-1727 - QueryCache TIMESTAMP eviction policy doesn't evict a +timed out query if it returns zero results.
  • +
  • OPENJPA-1736 - Mappings with foreign keys as identity fields +sometimes not resolved correctly
  • +
  • OPENJPA-1737 - The openjpa-2.0.0.jar does not have its MANIFEST.MF +has the first entry
  • +
  • OPENJPA-1738 - Prepared SQL query does not handle collection-valued +parameter of persistence-capable objects
  • +
  • OPENJPA-1740 - Type expression for entites using Joined table +strategy is not working properly
  • +
  • OPENJPA-1742 - Recover if connectionFactory on EntityManagerFactory +is invalid but cf on EntityManager is valid.
  • +
  • OPENJPA-1743 - Tool configuration does not support EMF anchors
  • +
  • OPENJPA-1749 - Throw exception if using datacache / synchronize +mappings and specifying datasource name at EM creation.
  • +
  • OPENJPA-1751 - New openbooks and image-gallery samples are not in the +binary assembly
  • +
  • OPENJPA-1752 - TestPessimisticLocks JUNIT test produced inconsistent +behavior with various backends
  • +
  • OPENJPA-1753 - TestMixedLockManagerLockPermutation: Timing issue +determines the pass/no-pass of the test case
  • +
  • OPENJPA-1757 - Em.refresh(..) not refreshing from the DB when +shared-cache-mode is set to ALL
  • +
  • OPENJPA-1765 - TableGenerator doesn't properly utilize all keys when +under heavy stress.
  • +
  • OPENJPA-1769 - Broker getObjectId(...) doesn't return a proper object +id for an Entity that is detached and has no DetachedStateManager
  • +
  • OPENJPA-1770 - Inconsistent behaviour when fetching an Entity that +has a null embeddable and the DataCache is enabled
  • +
  • OPENJPA-1784 - Map value updates not flushed
  • +
  • OPENJPA-1788 - Problem in Firebird 2.1 with sequence creation
  • +
  • OPENJPA-1790 - java.lang.VerifyError thrown when trying to commit +entity.
  • +
  • OPENJPA-1793 - @EmbeddedId class having only one field java.sql.Data
  • +
  • OPENJPA-1800 - Duplicate column created for sybase
  • +
  • OPENJPA-1801 - CacheStatistics misses are improperly calculated.
  • +
  • OPENJPA-1804 - NPE in MappingInfo.java line 1514
  • +
  • OPENJPA-1809 - Refresh of versioned entity locked with pessimistic +locking throws incorrect exception
  • +
  • OPENJPA-1810 - ClassCastException when using QueryCache and Criteria +API
  • +
  • OPENJPA-1811 - Dynamic load of enhancer agent on Mac OS X fails
  • +
  • OPENJPA-1814 - JPQL fails with Group By and Having +aggregate_expression IN (subquery)
  • +
  • OPENJPA-1818 - SQL-Syntax errors with h2
  • +
  • OPENJPA-1819 - ORDER BY will append additional column to the SELECT +clause which may potentialy cause ORA-00979 error
  • +
  • OPENJPA-1828 - Query with expression IN +(collection_valued_input_parameter) should report syntax error, correct +usange is IN collection_valued_input_parameter
  • +
  • OPENJPA-1830 - Deserialization of EMF causes connectionPassword to be +overwritten with Value.INVISIBLE
  • +
  • OPENJPA-1831 - DataSourceFactory manipulates queryTimeout which is +already in milliseconds
  • +
  • OPENJPA-1832 - Numeric is not a fixed size type for Sybase
  • +
  • OPENJPA-1835 - dummy is not a valid column name for Sybase
  • +
  • OPENJPA-1838 - Sybase can create Foriegn Keys
  • +
  • OPENJPA-1839 - TestXMLCustomerOrder failed against Oracle with +"ORA-01461: can bind a LONG value only for insert into a LONG column"
  • +
  • OPENJPA-1840 - QueryTimeoutException not thrown with Sybase
  • +
  • OPENJPA-1853 - iSeries DB2 problem with using +@GeneratedValue(strategy=GenerationType.IDENTITY)
  • +
  • OPENJPA-1856 - Executing bulk updates should evict stale data from +the DataCache
  • +
  • OPENJPA-1857 - Wrong exception is thrown when JoinColumn annotation +is not incorrectly specified
  • +
  • OPENJPA-1866 - +org.apache.openjpa.persistence.AnnotationPersistenceMetaDataSerializer +missing break on Switch
  • +
  • OPENJPA-1867 - ClassCastException when using DataCache
  • +
  • OPENJPA-1870 - Blob types override column definition from @Column +annotation with MySQL
  • +
  • OPENJPA-1874 - Handle Oracle specific XML column type with @Lob +annotation
  • +
  • OPENJPA-1877 - Treat Oracle XMLType columns as XML
  • +
  • OPENJPA-1881 - Create "completion" message for the Enhancement +processing
  • +
  • OPENJPA-1882 - NPE in DataCacheStoreManager when all types aren't +cached
  • +
  • OPENJPA-1886 - Query trace may contain sensitive information and +should not be logged by default.
  • +
  • OPENJPA-1890 - NPE is thrown when an Embeddable object is set more +than once to a managed entity
  • +
  • OPENJPA-1892 - NullPointerException thrown by the BrokerImpl.find() +if requesting an entity which is marked by the @Cacheable(false) annotation
  • +
  • OPENJPA-1893 - Missing join clause in query with collection-table +with two join-columns
  • +
  • OPENJPA-1894 - Performance Improvement for SelectImpl
  • +
  • OPENJPA-1896 - OpenJPA cannot store POJOs if a corresponding record +already exists
  • +
  • OPENJPA-1897 - Sybase reserved words may not be used as column names
  • +
  • OPENJPA-1898 - TestQueryMultiThreaded fails with OOME "unable to +create new native thread"
  • +
  • OPENJPA-1900 - ClassCastException when serializing an entity if +DetachedStateField=true
  • +
  • OPENJPA-1902 - SQLServer reserved words may not be used as +identifiers
  • +
  • OPENJPA-1904 - OptimisticLockException during +refresh(,PESSIMISTIC_) with eagar fetch on relationship fields
  • +
  • OPENJPA-1905 - jar-file validation should be deferred until after +OpenJPA is confirmed to be the application's chosen provider
  • +
  • OPENJPA-1906 - Issue info / warning message when connection retain +mode is always
  • +
  • OPENJPA-1909 - enhance unit tests with the correct persistence.xml
  • +
  • OPENJPA-1910 - openjpa uses application ClassLoader for resolving +BrokerFactory (revisited)
  • +
  • OPENJPA-1911 - InvalidStateException is thrown when merge an entity +with derived identiy
  • +
  • OPENJPA-1918 - MetaDataRepository.preload() ignores class loader +returned by PersistenceUnitInfo.getClassLoader()
  • +
  • OPENJPA-1923 - Allow flexible (non-standard) syntax for +collection-valued parameters in IN() expresseion of JPQL query
  • +
  • OPENJPA-1935 - Informix lock exceptions are not mapped properly by +OpenJPA
  • +
  • OPENJPA-1938 - Typo of time data type in SQLServerdictionary for +MSSQL 2008 +
  • +
+

Improvement

+
    +
  • OPENJPA-6 - OpenJPA doesn't meaningfully implement JDBC3, JDBC4 +methods in its delegates
  • +
  • OPENJPA-735 - Provide dictionary support for SolidDB
  • +
  • OPENJPA-1364 - Upgrade to latest commons-lang for required OSGi +metadata
  • +
  • OPENJPA-1378 - Provide LRU option for L2 data cache
  • +
  • OPENJPA-1563 - Better parameter validation on StoreCache.pinAll() +method
  • +
  • OPENJPA-1612 - Mapping an unsupported type
  • +
  • OPENJPA-1637 - Upgrade to latest Geronimo Specs for JPA2 and Bean +Validation
  • +
  • OPENJPA-1643 - Use container-managed data sources as Slice
  • +
  • OPENJPA-1649 - Refactor property processing for distributed Slice +configuration
  • +
  • OPENJPA-1673 - Update MetaDataRepository docs
  • +
  • OPENJPA-1699 - Streaming Lob support in DB2
  • +
  • OPENJPA-1700 - Use FindBugs to reduce coding errors
  • +
  • OPENJPA-1707 - A warning message should be logged when a down level +enhanced Entity is encountered.
  • +
  • OPENJPA-1708 - Excessive Info message on locking row in optimistic +transaction
  • +
  • OPENJPA-1712 - Upgrade builds to use Apache hosted Nexus repo
  • +
  • OPENJPA-1717 - CacheStatistics should not be collected by default in +FinderCache
  • +
  • OPENJPA-1723 - Improve the scalability of PreparedQueryCacheImpl
  • +
  • OPENJPA-1724 - Allow MappingTool to generate DDL SQL files in a +different encoding than the local JVM
  • +
  • OPENJPA-1729 - Simplified connection pooling
  • +
  • OPENJPA-1732 - LogFactory adapter for SLF4J
  • +
  • OPENJPA-1733 - Not meaningful message on bean validation valicator +configuration - "null" resaon
  • +
  • OPENJPA-1734 - Support the DynamicEnhnacer on IBM JDK
  • +
  • OPENJPA-1735 - Mark commons-logging as provided in the build to +remove transient maven dependency
  • +
  • OPENJPA-1739 - Add pluggable instrumentation and instrumentation +provider capabilities to OpenJPA
  • +
  • OPENJPA-1754 - Include Bean Validation API and Implementation in +openjpa-all and binary distribution
  • +
  • OPENJPA-1761 - Upgrade Commons Pool from 1.5.3 to 1.5.4
  • +
  • OPENJPA-1763 - Remove the requirement to configure +openjpa.RemoteCommitProvider when using the DataCache
  • +
  • OPENJPA-1771 - Upgrade to latest Apache BVAL for testing and +apache-rat plugin
  • +
  • OPENJPA-1776 - Allow slice distribution policy to delay the decision +to select the target slice
  • +
  • OPENJPA-1791 - Remove test-base and testsupport artifacts dependency +for *-test.jar creation
  • +
  • OPENJPA-1807 - Improved lifecycle tracing of EntityManager and +EntityManagerFactory
  • +
  • OPENJPA-1833 - Add build date/time, branch version/revision and +copyright to docs
  • +
  • OPENJPA-1836 - Update nightly-upload build script to use +key/passphrase
  • +
  • OPENJPA-1841 - Allow DBDictionary to optimize IS NOT NULL SQL for +specific data types.
  • +
  • OPENJPA-1844 - Create a JConsole plugin to display DataCache +statistics and help tune the cache
  • +
  • OPENJPA-1847 - Use a single connection when generating schema
  • +
  • OPENJPA-1855 - OpenJPA shouldn't silently ignore an invalid +javax.persistence.xxxx configuration property
  • +
  • OPENJPA-1858 - Cache a reference to MetaDataRepository in BrokerImpl
  • +
  • OPENJPA-1861 - Update maven plugins used in builds to support Maven +3.0
  • +
  • OPENJPA-1863 - update HSQL dictionary for HSQLDB 2.0
  • +
  • OPENJPA-1865 - Makes inefficient use of keySet iterator instead of +entrySet iterator
  • +
  • OPENJPA-1868 - Miscellaneous FindBugs suggested performance +improvements
  • +
  • OPENJPA-1871 - Makes inefficient use of keySet iterator instead of +entrySet iterator
  • +
  • OPENJPA-1872 - Optimize CacheMap read performance
  • +
  • OPENJPA-1885 - Improve persistAll to avoid redundant checked on each +instance
  • +
  • OPENJPA-1888 - Add generics to the Kernel
  • +
  • OPENJPA-1889 - Relax query binding parameter type-checking for enum +types
  • +
  • OPENJPA-1895 - Minor reflection performance improvement.
  • +
  • OPENJPA-1917 - Cache column alias in SelectImpl +
  • +
+

New Feature

+
    +
  • OPENJPA-1231 - Bean Validation sample
  • +
  • OPENJPA-1663 - Add a policy interface for targeting queries to subset +of slices
  • +
  • OPENJPA-1664 - Add a policy interface for targeting finder to a +subset of slices
  • +
  • OPENJPA-1681 - Produce JPA Bean Validation example and corresponding +documentation
  • +
  • OPENJPA-1759 - Add support for DATETIME2 with MS SQLServer
  • +
  • OPENJPA-1773 - New OpenTrader example
  • +
  • OPENJPA-1864 - MaxDB support +
  • +
+

Task

+
    +
  • OPENJPA-1786 - Upgrade to latest JPA 2.0 TCK
  • +
  • OPENJPA-1792 - Drop JDK5 support starting with OpenJPA 2.1 +
  • +
+

Test

+
    +
  • OPENJPA-33 - Need Query Engine test bucket
  • +
  • OPENJPA-1639 - Simple openjpa-xmlstore tests
  • +
  • OPENJPA-1660 - Add support to test with Apache Bean Validation +provider
  • +
  • OPENJPA-1842 - CachedEntityStatistics depends on @GeneratedValue +which is not supported in Oracle by default
  • +
  • OPENJPA-1848 - Update openjpa-integration-daytrader to perform user +tasks
  • +
  • OPENJPA-1849 - testExternalValues failed with ORA-01438 Oracle +exception
  • +
  • OPENJPA-1862 - Fix 2 test cases that cause failures on DB2 9.7
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10203-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:38 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B755AE0FA for ; Sun, 9 Dec 2012 13:15:37 +0000 (UTC) Received: (qmail 86951 invoked by uid 500); 9 Dec 2012 13:15:35 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86688 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86531 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 2DEED2388CA9 for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [29/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.2DEED2388CA9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/related-projects.html ============================================================================== --- websites/staging/openjpa/trunk/content/related-projects.html (added) +++ websites/staging/openjpa/trunk/content/related-projects.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+ +

TODO: More Links

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/release-management.html ============================================================================== --- websites/staging/openjpa/trunk/content/release-management.html (added) +++ websites/staging/openjpa/trunk/content/release-management.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Release Management

+

+

+

Where should I put my fix?

+

Fixes should be targeted and committed on trunk first. Any other open +releases are fair game, but may require approval from a release manager.

+

+

Regarding Release Managers

+

Once a formal release of OpenJPA has been approved, a release manager is assigned. The release manager is often (but not always) the same developer who performed the release. This release manager role is intended to be a long term branch maintainer who looks after the stability of a formal release.

+

The release manager(s) is(are) responsible for targeting fixes into a given version of OpenJPA.

+
    +
  • Release managers may indicate this by targeting a JIRA issue for their branch or may issue a blanket statement that any fix will be accepted.
  • +
  • In general only the release manager(s) should target a JIRA issue for a branch which they support.
      +
    • An exception to this rule is if the RM has committed changes for their branch and forgot to update the JIRA issue.
    • +
    +
  • +
  • Fixes should not be committed without RM approval. These changes may be reverted by the release manager.
  • +
+

+

Some general guidelines for release managers

+
    +
  • Fixes which are committed to an earlier release should also be present +"up-stream". Ie a fix for 1.0.x should also appear in 1.2.x.
  • +
  • Issues may not apply to every release, so the previous guideline may not +always apply.
  • +
+

+

Release Managers for active branches.

+

The current release managers for the active branches of OpenJPA are :

+ + + + + + + + + + + + +
branch internal release number release manager(s) Contact +Release Manager before committing
0.9.7-r547073 Srinivasa Segu Yes
1.0.x 1.0.5-SNAPSHOT Heath Thomann, Donald Woods Yes
1.1.x 1.1.1-SNAPSHOT Patrick Linskey, Abe White Yes
1.2.x 1.2.3-SNAPSHOT Heath Thomann, Donald Woods Yes
1.3.x 1.3.0-SNAPSHOT N/A \* No
2.0.x 2.0.2-SNAPSHOT Donald Woods, Heath Thomann Yes
2.1.x 2.1.1-SNAPSHOT Heath Thomann Yes
2.2.x 2.2.2-SNAPSHOT Albert Lee Yes
2.2.1.x 2.2.1.1-SNAPSHOT Heath Thomann, Albert Lee Yes
trunk 2.3.0-SNAPSHOT N/A \* No
+ +

* There are no formal releases for these branches.

+

+

Continuous Builds

+

We are using the Apache Hudson server for continuous builds of several releases. Please checkout the Automated Builds page for more details.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/release-setup.html ============================================================================== --- websites/staging/openjpa/trunk/content/release-setup.html (added) +++ websites/staging/openjpa/trunk/content/release-setup.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,458 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

These setup steps only need to be performed on a particular machine once.

+ +
+ Developers using Linux workstations can skip over the references to Cygwin. If using Windows, install cygwin, including **Utils/gnupg** and **Net/openssh** packages. +
+ +

+

Create and install a SSH key

+
    +
  1. Open a shell window. If using Windows, open a cygwin window.
  2. +
  3. +

    Use ssh-keygen to create an SSH key.

    +

    ssh-keygen dsa key type only accept 1024 bits; use rsa / 4096 bits instead.

    +
    $ ssh-keygen -t rsa -b 4096
    +
    + + +

    Program defaults should be fine. No passphrase is required for the ssh key generation. The keys will be saved in ~/.ssh/id_rsa (private) and ~/.ssh/id_rsa.pub (public).

    +

    +
    + See Authenticating By Public Key(OpenSSH) for a good description on why and how to perform this task. +

    +
  4. +
  5. +

    scp your SSH public key ~/.ssh/id_rsa.pub created in last step to ~/id_rsa.pub on people.apache.org.

    +
    $ cd ~/.ssh
    +$ scp id_rsa.pub <your userid>@people.apache.org:id_rsa.pub
    +
    + + +

    You will be prompted for your password.

    +
  6. +
  7. +

    Use ssh to login to people.apache.org

    +
    $ cd ~
    +$ ssh <your userid>@people.apache.org
    +
    + + +

    At this point, you will still be prompted for your password.

    +
  8. +
  9. +

    Create a ~/.ssh folder in your home directory on people.apache.org and change its file mode to 700.

    +
    $ mkdir ~/.ssh
    +$ chmod 700 ~/.ssh
    +
    + + +
  10. +
  11. +

    Move or append ~/id_rsa.pub to ~/.ssh/authorized_keys and change its file mode to 600.
    +

    +
    $ mv ~/id_rsa.pub ~/.ssh/authorized_keys
    + or
    +$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    +$ chmod 600 ~/.ssh/authorized_keys
    +
    + + +

    +
    +

    + +
  12. +

    Each public key in the {{authorized_keys}} spans only one line. For example:

    +
      "{{ssh-dss AAAAB3NzaC1kc3MAAA ..... agBmmfZ9uAbSqA== dsa-key-20071107}}"
    +
    + + +
  13. +
  14. +

    '#' in the first column is a comment line. +

  15. +
  16. +
  17. +

    Exit out of this ssh session.

    +
  18. +
  19. +

    Start a new ssh session. No login should be required this time due to the private ssh key on your local box matching up with the public ssh key in your home directory (~/.ssh).

    +
    $ ssh <your userid>@people.apache.org
    +
    + + +

    +
    + If you are still prompted for a password, then you have not set up the ssh keys properly. Review the steps above and ensure that all of the steps were followed properly. Or, maybe the instructions are still not quite right and they still need some adjusting. In that case, please update the instructions accordingly. :-) +

    +
  20. +
+

+

Create a GPG key

+
    +
  1. Open a shell window. If using Windows, open a cygwin window. + +
    + +
  2. +

    The generated keys are stored in:

    +
      +
    • *nix - $HOME/.gnupg
    • +
    • Windows XP - %HOME%\Application Data\gnupg
    • +
    • Windows 7 - C:\ProgramData\GNU\etc\gnupg
    • +
    +
  3. +
  4. +

    "gpg --version" shows the GnuPG's home location.

    +
  5. +
  6. Follow the latest steps and guides on the ASF website at http://www.apache.org/dev/openpgp.html#generate-key as you need to disable using SHA1 and new keys should be 4096 bits.
  7. +
  8. +

    Append the following text to gpg.conf.

    +
    personal-digest-preferences SHA512
    +cert-digest-algo SHA512
    +default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 \
    +    ZLIB BZIP2 ZIP Uncompressed
    +
    + + +
      +
    • +

      If you are using an existing gpg certificate, update your current certificate with the above preference using:

      +
      leealber@jpadev:~/.gnupg$ gpg --edit-key Albert Lee
      +Secret key is available.
      +
      +pub  1024D/8007117F  created: 2007-11-05  expires: never       usage: SC  
      +             trust: ultimate      validity: ultimate
      +sub  2048g/8D910F8A  created: 2007-11-05  expires: never       usage: E   
      +[ultimate] (1). Albert Lee (CODE SIGNING KEY) <allee8285@apache.org>
      +
      +Invalid command  (try "help")
      +
      +Command> showpref
      +[ultimate] (1). Albert Lee (CODE SIGNING KEY) <allee8285@apache.org>
      +     Cipher: AES256, AES192, AES, CAST5, 3DES
      +     Digest: SHA512, SHA384, SHA256, SHA224, SHA1
      +     Compression: ZLIB, BZIP2, ZIP, Uncompressed
      +     Features: MDC, Keyserver no-modify
      +
      +Command> setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB \
      +    BZIP2 ZIP Uncompressed
      +Set preference list to:
      +     Cipher: AES256, AES192, AES, CAST5, 3DES
      +     Digest: SHA512, SHA384, SHA256, SHA224, SHA1
      +     Compression: ZLIB, BZIP2, ZIP, Uncompressed
      +     Features: MDC, Keyserver no-modify
      +Really update the preferences? (y/N) y
      +
      +pub  1024D/8007117F  created: 2007-11-05  expires: never       usage: SC  
      +             trust: ultimate      validity: ultimate
      +sub  2048g/8D910F8A  created: 2007-11-05  expires: never       usage: E   
      +[ultimate] (1). Albert Lee (CODE SIGNING KEY) <allee8285@apache.org>
      +
      +Command>
      +
      + + +

  9. +
  10. + + +
  11. +

    Generate a key-pair with gpg, using default key kind ("DSA and Elgamal") and ELG-E keys size (2048).

    +
    $ gpg --gen-key
    +
    + + +

    The program's default values should be fine. For the "Real Name" enter your full name (ie. Stan Programmer). For the "e-mail address" enter your apache address (ie. sprogrammer@apache.org). You will also be required to enter a "passphrase" for the GPG key generation. Keep track of this as you will need this for the Release processing.

    +

    +
    +Save the content in this subdirectory to a safe media. This contains your private key used to sign all the release materials. +

    +
  12. +
  13. +

    Backup your cygwin home directory to another media

    +
  14. +
  15. +

    Append your public key to {{https://svn.apache.org/repos/asf/openjpa/KEYS +}} and http://www.apache.org/dist/openjpa/KEYS. See the commands describe at the beginning of this KEYS file to perform this task. The gpg key-pair is used to sign the published artifacts for the releases.

    +
    $ ( gpg --list-sigs <Real Name> && gpg --armor --export <Real Name> ) >> KEYS
    +
    + + +

    +
    +

    +
      +
    • +

      The {{https://svn.apache.org/repos/asf/openjpa/KEYS }} file is updated via normal svn commit procedures.

      +
      svn co https://svn.apache.org/repos/asf/openjpa --depth empty
      +cd openjpa
      +svn up KEYS
      +( gpg --list-sigs <Real Name> && gpg --armor --export <Real Name> ) >> KEYS
      +svn commit KEYS --message "update gpg public key for ME."
      +
      + + +
    • +
    • +

      The one under www.apache.org/dist/ has to be manually updated.

      +
      scp KEYS yourid@people.apache.org:/www/www.apache.org/dist/openjpa/KEYS
      +
      + + +
    • +
    +

    +
  16. +
  17. +

    Submit your public key to a key server. E.g. http://pgp.surfnet.nl:11371/ or http://pgp.mit.edu/

    +
  18. +
  19. +

    Following the instructions in http://people.apache.org/~henkp/trust/ and ask multiple (at least 3) current Apache committers to sign your public key.

    +
  20. +
+

Update Maven settings for our servers

+
    +
  1. +

    Create a settings.xml under .m2

    +
    <settings xmlns="http://maven.apache.org/POM/4.0.0"
    +      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    +      http://maven.apache.org/xsd/settings-1.0.0.xsd">
    +  <servers>
    +    <!-- SCP settings for people.apache.org -->
    +    <server>
    +      <id>people.apache.org</id>
    +      <username>$USERNAME</username>
    +      <privateKey>$PATH_TO_PRIVATE_KEY</privateKey>
    +      <passphrase>$SSH_PASSPHRASE</passphrase>
    +      <directoryPermissions>775</directoryPermissions>
    +      <filePermissions>644</filePermissions>
    +      <!-- following is only for Windows only
    +        <configuration>
    +          <sshExecutable>plink</sshExecutable>
    +          <scpExecutable>pscp</scpExecutable>
    +          <scpArgs>-2Bp</scpArgs>
    +          <sshArgs>-2</sshArgs>
    +        </configuration>
    +      -->
    +    </server>
    +    <!-- ASF Nexus settings -->
    +    <server>
    +      <id>apache.snapshots.https</id>
    +      <username>$USERNAME</username>
    +      <password>$APACHE_LDAP_PWD</password>
    +    </server>
    +    <server>
    +      <id>apache.releases.https</id>
    +      <username>$USERNAME</username>
    +      <password>$APACHE_LDAP_PWD</password>
    +    </server>
    +  </servers> 
    +  <profiles>
    +    <profile>
    +      <id>apache-release</id>
    +      <properties>
    +        <site.deploy.user.name>$USERNAME</site.deploy.user.name>
    +        <gpg.passphrase>$GPG_PASSPHRASE</gpg.passphrase>
    +      </properties>
    +    </profile>
    +    <profile>
    +      <id>gpg-passphrase</id>
    +      <properties>
    +        <gpg.passphrase>$GPG_PASSPHRASE</gpg.passphrase>
    +      </properties>
    +    </profile>
    +  </profiles>
    +</settings>
    +
    + + +
  2. +
+

+
+

+
    +
  • $USERNAME is the remote username on people.apache.org, not your local userid.
  • +
  • $PATH_TO_PRIVATE_KEY is the path to the private key generated for ssh. E.g. /home/yourLocalUserId/.ssh/id_rsa. For Windows' cygwin users, you will need to enter the full cygwin path: /cygdrive/c/cygwin/home/yourLocalUserId/.ssh/id_rsa.
  • +
  • $SSH_PASSPHRASE for the supplied $PATH_TO_PRIVATE_KEY. If you don't use this in your settings.xml file, then you will be prompted for it during the Release processing.
  • +
  • $GPG_PASSPHRASE is pass phase for the GPG key.
  • +
  • $APACHE_LDAP_PWD is your Apache LDAP password, which is shared between SVN and password login for people.apache.org. +
+ +

+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10206-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:39 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BB527E0FC for ; Sun, 9 Dec 2012 13:15:37 +0000 (UTC) Received: (qmail 87123 invoked by uid 500); 9 Dec 2012 13:15:35 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86957 invoked by uid 500); 9 Dec 2012 13:15:35 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86533 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id BC2A72388C9E for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [22/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.BC2A72388C9E@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-2.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-2.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-2.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.0 Beta 2

+

The Apache OpenJPA community is proud to release a Beta 2 distribution of +OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK. Included are many enhancements, +fixes, and new functionality; giving developers access to all the new +features of JPA 2.0, including:

+
    +
  • Access Types - expanded to allow specification on a per-persistent type +basis or on individual attributes.
  • +
  • Embeddables - expanded to include collections of embeddables, nested +embeddables, and embeddables containing relationships to other entities.
  • +
  • Enhanced Map Collections - expanded to support ElementCollection and new +annotations for MapKeyColumn, MapKeyClass and MapKeyJoinColumn
  • +
  • Derived Identities - enables the ID of an entity to be derived from +another entity, which provides for parent-to-dependent relationships
  • +
  • Query API - methods to get typed query parameters and results, supported +and in-effect hints and lock mode getter/setter
  • +
  • Locking - official support for Pessimistic locking (included in prior +OpenJPA releases) along with LockModeType properties and hint
  • +
  • JPQL Updates -
      +
    • Embeddables support for path expressions to nested Embeddables and +Embeddables with relationships
    • +
    • Enhanced Map Collection support for ElementCollection and new query +expressions for KEY, ENTRY, VALUE
    • +
    • Support for CASE and TYPE expressions along with IN expressions for +Collection parameters
    • +
    • Support for native date/time/timestamp literals
    • +
    • Support for INDEX expressions on an OrderColumn
    • +
    +
  • +
  • L2 Cache -
      +
    • Provides cache operations such as entity eviction and cache mode +behaviors to use, bypass or refresh items
    • +
    • Per-entity annotation to specify whether an entity should be cached
    • +
    +
  • +
  • Bean Validation - supports using a JSR 303 implementation for entity +validation for persist and remove operations
  • +
  • Metamodel API -
      +
    • Provides API to dynamically retrieve metamodel information for a +persistence unit
    • +
    • Currently limited to persistent state and relationships
    • +
    • Used with Criteria API to generate and execute type safe queries
    • +
    • Supports dynamic or static generation of the metamodel
    • +
    +
  • +
  • Criteria API -
      +
    • Provides programmatic construction of queries using an object based +query graph
    • +
    • Operates on Metamodel objects to provide compile-time type safety +enforcement
    • +
    +
  • +
  • EntityManagerFactory API - updated for new L2 Cache, Properties, Criteria +and Metamodel APIs
  • +
  • EntityManager API - updated for new Query and Query Result APIs, Hints, +Properties, LockModeType, and Detach
  • +
  • And many more...
    +
  • +
+

This distribution is based upon the contributions provided since the beta +release, as defined in the JPA 2.0 Roadmap +, which contains a complete list of included features, including what is on +deck for future iterations.

+
+

+

Downloads

+

Use the links below to download the artifacts or source for Apache OpenJPA +2.0.0 Beta 2. It is always good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA artifacts for use within Maven or ANT +builds, see the Obtaining + page. For information on building OpenJPA from source, see the Building + page.

+

+

Binary Assemblies

+ + + +
Description Download Signatures
OpenJPA 2.0.0 Beta 2 apache-openjpa-2.0.0-beta2-binary.zip + PGP +
+ +

+

Source Assemblies

+ + + + + +
Description Download Signatures
OpenJPA 2.0.0 Beta 2 Source Code apache-openjpa-2.0.0-beta2-source.zip + PGP +
Geronimo JPA 2.0 Spec API v1.0 source code geronimo-jpa_2.0_spec-1.0-sources.jar + PGP +
Geronimo Bean Validation 1.0 Spec API v1.0 source code geronimo-validation_1.0_spec-1.0-sources.jar + PGP +
+ +
+

+

Other Resources

+

+

Documentation

+ +

+

Quick Start

+ +

+

Support

+ +

+

Maven Artifacts

+ +

+

SVN Source Branches

+ +
+

+ +

Apache OpenJPA was developed by The Apache Software Foundation + and is licensed under Apache License 2.0 +. +Copyright 2006,2010 The Apache Software Foundation. +Apache, the Apache feather logo and OpenJPA are trademarks of Apache +Software Foundation.

+

Apache OpenJPA is bundled with the schemas from the JPA specifications, by +Sun Microsystems and licensed under the CDDL 1.0. The source code is +available at: https://glassfish.dev.java.net/source/browse/glassfish/

+

Please review the LICENSE + and NOTICE + files in svn, source or binary distributions for more details.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-3.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-3.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta-3.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.0 Beta 3

+

The Apache OpenJPA community is proud to release a Beta 3 distribution of +OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK. Included are many enhancements, +fixes, and new functionality; giving developers access to all the new +features of JPA 2.0, including:

+
    +
  • Access Types - expanded to allow specification on a per-persistent type +basis or on individual attributes.
  • +
  • Embeddables - expanded to include collections of embeddables, nested +embeddables, and embeddables containing relationships to other entities.
  • +
  • Enhanced Map Collections - expanded to support ElementCollection and new +annotations for MapKeyColumn, MapKeyClass and MapKeyJoinColumn
  • +
  • Derived Identities - enables the ID of an entity to be derived from +another entity, which provides for parent-to-dependent relationships
  • +
  • Query API - methods to get typed query parameters and results, supported +and in-effect hints and lock mode getter/setter
  • +
  • Locking - official support for Pessimistic locking (included in prior +OpenJPA releases) along with LockModeType properties and hint
  • +
  • JPQL Updates -
      +
    • Embeddables support for path expressions to nested Embeddables and +Embeddables with relationships
    • +
    • Enhanced Map Collection support for ElementCollection and new query +expressions for KEY, ENTRY, VALUE
    • +
    • Support for CASE and TYPE expressions along with IN expressions for +Collection parameters
    • +
    • Support for native date/time/timestamp literals
    • +
    • Support for INDEX expressions on an OrderColumn
    • +
    +
  • +
  • L2 Cache -
      +
    • Provides cache operations such as entity eviction and cache mode +behaviors to use, bypass or refresh items
    • +
    • Per-entity annotation to specify whether an entity should be cached
    • +
    +
  • +
  • Bean Validation - supports using a JSR 303 implementation for entity +validation for persist and remove operations
  • +
  • Metamodel API -
      +
    • Provides API to dynamically retrieve metamodel information for a +persistence unit
    • +
    • Currently limited to persistent state and relationships
    • +
    • Used with Criteria API to generate and execute type safe queries
    • +
    • Supports dynamic or static generation of the metamodel
    • +
    +
  • +
  • Criteria API -
      +
    • Provides programmatic construction of queries using an object based +query graph
    • +
    • Operates on Metamodel objects to provide compile-time type safety +enforcement
    • +
    +
  • +
  • EntityManagerFactory API - updated for new L2 Cache, Properties, Criteria +and Metamodel APIs
  • +
  • EntityManager API - updated for new Query and Query Result APIs, Hints, +Properties, LockModeType, and Detach
  • +
  • And many more...
    +
  • +
+

This distribution is based upon the contributions provided since the Beta 2 +release, as defined in the OpenJPA 2.0 Roadmap +, which contains a complete list of included features, including what is on +deck for future iterations.

+
+

+

Downloads

+

Use the links below to download the artifacts or source for Apache OpenJPA +2.0.0 Beta 3. It is always good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA artifacts for use within Maven or ANT +builds, see the Obtaining + page. For information on building OpenJPA from source, see the Building + page.

+

+

Binary Assemblies

+ + + +
Description Download Signatures
OpenJPA 2.0.0 Beta 3 apache-openjpa-2.0.0-beta3-binary.zip + PGP +
+ +

+

Source Assemblies

+ + + + + +
Description Download Signatures
OpenJPA 2.0.0 Beta 3 Source Code apache-openjpa-2.0.0-beta3-source.zip + PGP +
Geronimo JPA 2.0 Spec API v1.0 source code geronimo-jpa_2.0_spec-1.0-sources.jar + PGP +
Geronimo Bean Validation 1.0 Spec API v1.0 source code geronimo-validation_1.0_spec-1.0-sources.jar + PGP +
+ +
+

+

Other Resources

+

+

Documentation

+ +

+

Quick Start

+ +

+

Support

+ +

+

Maven Artifacts

+ +

+

SVN Source Branches

+ +
+

+ +

Apache OpenJPA was developed by The Apache Software Foundation + and is licensed under Apache License 2.0 +. +Copyright 2006,2010 The Apache Software Foundation. +Apache, the Apache feather logo and OpenJPA are trademarks of Apache +Software Foundation.

+

Apache OpenJPA is bundled with the schemas from the JPA specifications, by +Sun Microsystems and licensed under the CDDL 1.0. The source code is +available at: https://glassfish.dev.java.net/source/browse/glassfish/

+

Please review the LICENSE + and NOTICE + files in svn, source or binary distributions for more details.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.0-beta.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.0 Beta

+

The Apache OpenJPA community is proud to release a Beta distribution of +OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK. Included are many enhancements, +fixes, and new functionality; giving developers access to all the new +features of JPA 2.0, including:

+
    +
  • Access Types - expanded to allow specification on a per-persistent type +basis or on individual attributes.
  • +
  • Embeddables - expanded to include collections of embeddables, nested +embeddables, and embeddables containing relationships to other entities.
  • +
  • Enhanced Map Collections - expanded to support ElementCollection and new +annotations for MapKeyColumn, MapKeyClass and MapKeyJoinColumn
  • +
  • Derived Identities - enables the ID of an entity to be derived from +another entity, which provides for parent-to-dependent relationships
  • +
  • Query API - methods to get typed query parameters and results, supported +and in-effect hints and lock mode getter/setter
  • +
  • Locking - official support for Pessimistic locking (included in prior +OpenJPA releases) along with LockModeType properties and hint
  • +
  • JPQL Updates -
      +
    • Embeddables support for path expressions to nested Embeddables and +Embeddables with relationships
    • +
    • Enhanced Map Collection support for ElementCollection and new query +expressions for KEY, ENTRY, VALUE
    • +
    • Support for CASE and TYPE expressions along with IN expressions for +Collection parameters
    • +
    • Support for native date/time/timestamp literals
    • +
    • Support for INDEX expressions on an OrderColumn
    • +
    +
  • +
  • L2 Cache -
      +
    • Provides cache operations such as entity eviction and cache mode +behaviors to use, bypass or refresh items
    • +
    • Per-entity annotation to specify whether an entity should be cached
    • +
    +
  • +
  • Bean Validation - supports using a JSR 303 implementation for entity +validation for persist and remove operations
  • +
  • Metamodel API -
      +
    • Provides API to dynamically retrieve metamodel information for a +persistence unit
    • +
    • Currently limited to persistent state and relationships
    • +
    • Used with Criteria API to generate and execute type safe queries
    • +
    • Supports dynamic or static generation of the metamodel
    • +
    +
  • +
  • Criteria API -
      +
    • Provides programmatic construction of queries using an object based +query graph
    • +
    • Operates on Metamodel objects to provide compile-time type safety +enforcement
    • +
    +
  • +
  • EntityManagerFactory API - updated for new L2 Cache, Properties, Criteria +and Metamodel APIs
  • +
  • EntityManager API - updated for new Query and Query Result APIs, Hints, +Properties, LockModeType, and Detach
  • +
  • And many more...
    +
  • +
+

This beta distribution is based upon the contributions provided in +development iterations 1 through 14, as defined in the JPA 2.0 Roadmap +, which contains a complete list of included features, including what is on +deck for future iterations.

+
+

+

Downloads

+

Use the links below to download the artifacts or source for Apache OpenJPA +2.0.0 Beta. It is always good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA artifacts for use within Maven or ANT +builds, see the Obtaining + page. For information on building OpenJPA from source, see the Building + page.

+

+

Binary Assemblies

+ + + +
Description Download Signatures
OpenJPA 2.0.0 Beta apache-openjpa-2.0.0-beta-binary.zip + PGP +
+ +

+

Source Assemblies

+ + + + + +
Description Download Signatures
OpenJPA 2.0.0 Beta Source Code apache-openjpa-2.0.0-beta-source.zip + PGP +
Geronimo JPA 2.0 Spec API v1.0 source code geronimo-jpa_2.0_spec-1.0-sources.jar + PGP +
Geronimo Bean Validation 1.0 Spec API v1.0 source code geronimo-validation_1.0_spec-1.0-sources.jar + PGP +
+ +
+

+

Other Resources

+

+

Documentation

+ +

+

Quick Start

+ +

+

Support

+ +

+

Maven Artifacts

+ +

+

SVN Source Branches

+ +
+

+ +

Apache OpenJPA was developed by The Apache Software Foundation + and is licensed under Apache License 2.0 +. +Copyright 2006,2010 The Apache Software Foundation. +Apache, the Apache feather logo and OpenJPA are trademarks of Apache +Software Foundation.

+

Apache OpenJPA is bundled with the schemas from the JPA specifications, by +Sun Microsystems and licensed under the CDDL 1.0. The source code is +available at: https://glassfish.dev.java.net/source/browse/glassfish/

+

Please review the LICENSE + and NOTICE + files in svn, source or binary distributions for more details.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-2.0.0-early-access-2.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.0.0-early-access-2.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.0.0-early-access-2.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.0.0 Early Access 2

+

The Apache OpenJPA community is proud to provide an early access +distribution of OpenJPA 2.0. This distribution is based on the 03/13/2009 +draft of the JPA 2.0/JSR-317 specification. Included are many +enhancements, fixes, and new functionality; giving developers early access +to many key features of JPA 2.0. Some of the key features included in this +distribution:

+
    +
  • JPA 2.0 API and persistence and orm schemas
  • +
  • Support for nested embeddables and relationships within embeddables
  • +
  • Support for collections of embeddables and basic types
  • +
  • A programmatic query construction API based upon the 10/2008 revision of +the JSR-317 specification
  • +
  • A standardized Level 2 cache interface
  • +
  • Enhanced map collection support
  • +
  • Support for standard javax.persistence configuration properties
  • +
  • A new prepared query cache for the caching of the SQL underlying JPQL and +find queries
  • +
  • Support for derived identities
  • +
  • The ability to specify an order column on ordered collections
  • +
  • Significant enhancements to JPQL
  • +
  • Automatic orphan removal
  • +
  • Support for individual entity detachment, including the ability to +cascade
  • +
  • Methods to retrieve active and all supported properties on the entity +manager and entity manager factory
  • +
  • New lock modes, including pessimistic locking on a per entity manager and +query method level
  • +
  • Support for query and lock timeout hints on a per entity manager and +query method level
  • +
  • Specification of explicit persistent access type on persistent classes +and attributes
  • +
  • Many more...
    +
  • +
+

This early access distribution is based upon the contributions provided in +development iterations through iteration 7, as defined in the JPA 2.0 Roadmap +. The JPA 2.0 Roadmap + contains a complete list of features and feature summaries, including what +is on deck for future iterations.

+

+ +

Apache OpenJPA was developed by The Apache Software Foundation http://www.apache.org/ + and is licensed under Apache License 2.0 +. +Copyright © 2006-2009 Apache Software Foundation. +Apache and the Apache feather logo are trademarks of Apache Software +Foundation.

+

Apache OpenJPA is bundled with the schemas from the JPA specification, by +Sun Microsystems and licensed under the CDDL 1.0. The source code is +available at: https://glassfish.dev.java.net/source/browse/glassfish/

+

Please review the LICENSE + and NOTICE + files in svn, source or binary distributions for more details.

+ +
+ This is an implementation of an early-draft specification developed under +the Java Community Process (JCP) and is *made available for testing and +evaluation purposes only*. The code is not compatible with any +specification of the JCP. +
+ +

+

Downloads

+

Use the links below to download the artifacts or source for Apache OpenJPA +2.0.0 Early Access 2. It is always good practice to verify the integrity + of the distribution files.

+

For information on obtaining OpenJPA artifacts for use within Maven or ANT +builds, see the Obtaining + page. For information on building OpenJPA from source, see the [Building] + page.

+

+

Binary Assemblies

+ + + +
Description Download Signatures
OpenJPA 2.0.0 Early Access 2 runtime apache-openjpa-2.0.0-EA2-SNAPSHOT-binary.zip + MD5 +
+ +

+

Source Assemblies

+ + + + + +
Description Download Signatures
OpenJPA 2.0.0 Early Access 2 source code apache-openjpa-2.0.0-EA2-SNAPSHOT-source.zip + MD5 +
Geronimo JPA 2.0 Early Access Spec source code geronimo-jpa_2.0_spec-1.0-EA2-SNAPSHOT-sources.jar + MD5 +
Geronimo Validation 1.0 Early Access Spec source code geronimo-validation_1.0_spec-1.0-EA-SNAPSHOT-sources.jar + MD5 +
+ +

+

Other Resources

+

+

Documentation

+ +

+

Quick Start

+ +

+

Support

+ +

+

Maven Artifacts

+ +

+

SVN Source Branches

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10207-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:39 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BE10DE0FE for ; Sun, 9 Dec 2012 13:15:37 +0000 (UTC) Received: (qmail 87157 invoked by uid 500); 9 Dec 2012 13:15:36 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87080 invoked by uid 500); 9 Dec 2012 13:15:35 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86541 invoked by uid 99); 9 Dec 2012 13:15:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:33 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:23 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 632922388CB3 for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [34/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.632922388CB3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/testing.html ============================================================================== --- websites/staging/openjpa/trunk/content/testing.html (added) +++ websites/staging/openjpa/trunk/content/testing.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Running and Writing Tests with OpenJPA

+

OpenJPA's unit tests are written using JUnit. For a template for a simple +test case, see the code for TestPersistence.java +.

+

If you want to contribute your own test case then follow the guidelines +.

+

Once you have downloaded and built OpenJPA (see Building +), you can run individual tests using the "test" goal to maven. For +example:

+
mvn test -DfailIfNoTests=false -Dtest=TestPersistence
+
+ + +

+
+ By default Maven will fail if there are no testcases found in any +module you build. The examples solve this by specifying +-DfailIfNoTests=false but you can also change your personal default by +adding the following to ${user.home}/.m2/settings.xml :

+
    <profile>
+        <id>enable-no-tests</id>
+        <activation>
+        <activeByDefault>true</activeByDefault>
+        </activation>
+        <properties>
+        <failIfNoTests>false</failIfNoTests>
+        </properties>
+    </profile>
+
+ + +

+

To get more debugging information (e.g., to see the SQL that is being +executed against the database), you can enable trace-level logging from the +command line using the "openjpa.Log" system property. For example:

+
$ mvn test -DfailIfNoTests=false -Dtest=TestPersistence -Dopenjpa.Log=DefaultLevel=TRACE
+
+[INFO] Scanning for projects...
+[INFO] Reactor build order: 
+...
+690  test  TRACE  [main] openjpa.jdbc.SQL - <t 4261185, conn 3061987> executing prepstmnt 12659709 
+   INSERT INTO AllFieldTypes (id, arrayOfStrings, booleanField, byteField, charField, dateField, 
+   doubleField, floatField, intField, longField, shortField, stringField) 
+   VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 601, (null) null, (int) 0, (byte) 0, 
+   (int) 0, (null) null, (double) 0.0, (float) 0.0, (int) 0, (long) 0, (short) 0, (null) nu
 ll]
+701  test  TRACE  [main] openjpa.jdbc.SQL - <t 4261185, conn 3061987> [11 ms] spent
+701  test  TRACE  [main] openjpa.jdbc.JDBC - <t 4261185, conn 3061987> [0 ms] commit
+702  test  TRACE  [main] openjpa.jdbc.JDBC - <t 4261185, conn 0> [0 ms] close
+...
+$
+
+ + +

+

Setting additional Log parameters

+

There are several parameters that are used by OpenJPA Log. Here are some +that might be of value when debugging test cases. Note that the logger +names are case sensitive while the log levels are not.

+
    +
  • DefaultLevel sets the level for all loggers that are not otherwise set
  • +
  • file sets the file name for logging output
  • +
  • Enhance logs messages from the enhancer
  • +
  • Metadata logs messages from the metadata processor
  • +
  • Tool logs messages from the schema synchronization tool
  • +
  • SQL logs messages from the SQL generator
  • +
  • JDBC logs messages related to JDBC
  • +
  • Schema logs messages related to schema
  • +
  • Runtime logs messages related to runtime
  • +
  • Query logs messages related to queried
  • +
  • DataCache logs messages related to caching
  • +
+

Log levels specify the minimum log message that is output. All log messages +with a level higher than the log level set for a logger are output. So if +INFO is specified, log messages of level INFO, WARN, ERROR, and SEVERE are +output.

+
    +
  • TRACE
  • +
  • INFO
  • +
  • WARN
  • +
  • ERROR
  • +
  • FATAL
  • +
+

For example, to avoid enhancement warnings, get detailed SQL information, +and write the log data to a file:

+
mvn test -Dtest=TestPersistence -Dopenjpa.Log=Enhance=ERROR,SQL=TRACE,file=openjpa.log
+
+ + +

Testing against alternate databases

+

By default, OpenJPA uses the Derby +database for testing. The openjpa-persistence-jdbc/pom.xml POM +declares various pre-defined databases against which tests can be executed. +For example, to test against the stand-alone HSQLDB + database, you can run with the "test-hsqldb" profile:

+
mvn test -DfailIfNoTests=false -Dtest=TestPersistence -Ptest-hsqldb
+
+ + +

For databases that are not in the pre-defined list, you can manually +specify connection parameters to use for testing under the "test-custom" +profile. You will need to manually provide the driver class and specify all +of the connection parameters. For example, to test against Oracle, you +might run:

+
mvn test -DfailIfNoTests=false -Dtest=TestPersistence -Ptest-custom \
+  -Dopenjpa.custom.driverjar=$(pwd)/drivers/jdbc-oracle-10_2_0_1_0.jar \
+  -Dopenjpa.custom.driverclass=oracle.jdbc.driver.OracleDriver \
+  -Dopenjpa.custom.url=jdbc:oracle:thin:@HOST:PORT:DBNAME \
+  -Dopenjpa.custom.username=USERNAME \
+  -Dopenjpa.custom.password=PASSWORD
+
+ + +

If you frequently need to test against another database, you can +permanently declare the database connection parameters in the +~/.m2/settings.xml file under a custom profile. For example:

+
<settings>
+    <profiles>
+    <profile>
+        <id>test-oracle</id>
+        <properties>
+        <test-custom>true</test-custom>            
+        <openjpa.custom.driverjar>${user.home}/.m2/privaterepos/jdbc-oracle-10_2_0_1_0.jar</openjpa.custom.driverjar>
+        <openjpa.custom.driverclass>oracle.jdbc.driver.OracleDriver</openjpa.custom.driverclass>               
+        <openjpa.custom.url>jdbc:oracle:thin:@HOST:PORT:DBNAME</openjpa.custom.url>
+        <openjpa.custom.username>USERNAME</openjpa.custom.username>
+        <openjpa.custom.password>PASSWORD</openjpa.custom.password>
+        </properties>
+    </profile>
+    </profiles>
+</settings>
+
+ + +

This profile can then be executed by running:

+
mvn test -DfailIfNoTests=false -Dtest=TestPersistence -Ptest-custom,test-oracle
+
+ + +

+

Running JUnits in Eclipse

+

You'll probably want to setup a Debug Configuration in Eclipse for running +the JUnit testcases.

+
    +
  1. +

    Run --> Debug Configurations... Create a new JUnit configuration

    +

    eclipse_dbgcfg_1.png

    +
  2. +
  3. +

    For the Test tab - Give the configuration a Name, select a Project and +Test class, and you'll probably want to select the "Keep JUnit running..." +option.

    +

    eclipse_dbgcfg_2.png

    +
  4. +
  5. +

    For the Arguments tab - Press the Variables... button. This will allow us +to define variables that can be shared across other Release/Debug +Configurations within this workspace.

    +

    eclipse_dbgcfg_3.png

    +
  6. +
  7. +

    For the Select Variable window - Press the Edit Variables... button.

    +

    eclipse_dbgcfg_4.png

    +
  8. +
  9. +

    For the Preferences windows - Press New... to add two variables. + eclipse_dbgcfg_5.png

    +
    Name = openjpa.trace
    +Value = -Dopenjpa.Log=DefaultLevel=TRACE
    +Description = Set OpenJPA logging to TRACE
    +
    + + +

    eclipse_dbgcfg_6.png

    +
    Name = connect.derby
    +Value = -Dopenjpa.ConnectionDriverName=org.apache.derby.jdbc.EmbeddedDriver
    +    -Dopenjpa.ConnectionURL=jdbc:derby:target/database/openjpa-derby-database;create=true
    +Description = Connection properties for Derby
    +
    + + +

    eclipse_dbgcfg_7.png

    +
  10. +
  11. +

    After the above are created and saved, add the new variables as VM Arguments.

    +
    ${openjpa.trace}
    +${connect.derby}
    +
    + + +

    eclipse_dbgcfg_8.png

    +
  12. +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/thanks.html ============================================================================== --- websites/staging/openjpa/trunk/content/thanks.html (added) +++ websites/staging/openjpa/trunk/content/thanks.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

The Apache OpenJPA team would like to thank the following individuals and +organizations.

+

+

Apache Sponsors

+

Without those sponsors, the ASF would simply not exist or sustain its +activities : +http://www.apache.org/foundation/thanks.html

+

For those who want to know more about the Apache Sponsorship Program, +please check : +http://www.apache.org/foundation/sponsorship.html

+

Thanks !

+

+

Website Design

+

Marc Prud'hommeaux - Wiki template design based on Apache ActiveMQ template.

+

+ +

Donald R. Woods

+

+

Organizations who helped our project . . .

+ + + + + + + + +
Organization Donation type Organization Contact Apache Contact
ej-technologies jProfiler license Hannes Kegel, CTO Pinaki Poddar
+ +

+ +

Other Related Projects + that OpenJPA depends upon or uses.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/tools.html ============================================================================== --- websites/staging/openjpa/trunk/content/tools.html (added) +++ websites/staging/openjpa/trunk/content/tools.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Tools for OpenJPA

+

This page will host description of design-time and runtime tools for +OpenJPA. +The tools mentioned below are available as command-line utilities. In the +future, they may be made available as interactive graphical tools +integrated into popular IDEs such as Eclipse or IntelliJ.

+

+

Existing OpenJPA Tools

+

The OpenJPA distribution and runtime already comes with a series of useful +tools to:

+
    +
  • Entity Enhancement + for enhancing the bytecode of POJO domain classes
  • +
  • reverse map + a database schema to Java source code
  • +
  • create/synchronize + a Java persistent domain model to a database schema
  • +
  • generate + canonical metamodel classes for strictly-typed Criteria queries
  • +
+

+

Tools Under Development

+

A new OpenJPA Tools subproject has been created to deliver a new set of +tools that are decoupled from a specific OpenJPA release.

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/top-navigation-bar.html ============================================================================== --- websites/staging/openjpa/trunk/content/top-navigation-bar.html (added) +++ websites/staging/openjpa/trunk/content/top-navigation-bar.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/update-release-text-files.html ============================================================================== --- websites/staging/openjpa/trunk/content/update-release-text-files.html (added) +++ websites/staging/openjpa/trunk/content/update-release-text-files.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Updating release text files.

+

+

Obtaining the list of resolved issues from JIRA. 

+
    +
  1. Go to the main JIRA releases page at http://issues.apache.org/jira/browse/OPENJPA?report=com.sourcelabs.jira.plugin.portlet.releases:releases-projecttab
  2. +
  3. Under Unreleased find the version you're about to release and click on +"Release Notes". +Keep this page open since it contains a nice reference point for many of +the documents you will edit.
  4. +
+

+

Update text files

+
    +
  • openjpa-projects/CHANGES.txt
      +
    • Update the overview paragraph with the new version and a brief description of the release.
    • +
    • Remove the previous changes section and replace with a url to the location in SVN. This is similar to what HTTPD does in its CHANGES file
    • +
    • Create a new section : OpenJPA x.y.z changes and copy the JIRA issues resolved in this section. You may want to do some minor editing by hand to ensure the file respects the 80 character column width guideline.
    • +
    +
  • +
  • +

    openjpa-project/RELEASE-NOTES.html

    +
      +
    • Similar to CHANGES.txt you need to update the version number and provide a brief description of the release.
    • +
    • Remove the previous list of changes for the previous release. Replace this with a link to the last release's file in SVN.
    • +
    • Add a new section. This can be copied from the JIRA page with one exception (see the next step).
    • +
    • +

      Update the links at the top of the file. If you've copied changes from JIRA you'll see a section like this :

      +
       <h2> Bug </h2>
      +
      + + +

      Replace it with :

      +
       <h4><a name='Bug'>Bug</h4>
      +
      + + +

      You should also check the links at the top to make sure they are all valid.

      +
    • +
    +
  • +
  • +

    openjpa-project/NOTICE.txt +NOTICE.txt "usually" does not need to be updated. The exceptions are when a new dependency has been introduced (ie a new version of Serp) or if a new source file containing a copyright notice is introduced.

    +
  • +
  • +

    openjpa-project/LICENSE.txt +Similar to NOTICE.txt this file does not require updating in each release. It should contain the current version of the Apache license, and any other licenses mentioned in NOTICE.txt.

    +
  • +
  • +

    openjpa-project/README.txt +This file rarely needs updating - just make sure the URL is accurate.

    +
  • +
  • +

    openjpa-project/BUILDING.txt +This file rarely needs updating.

    +
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10204-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:39 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B2D47E0F7 for ; Sun, 9 Dec 2012 13:15:37 +0000 (UTC) Received: (qmail 86982 invoked by uid 500); 9 Dec 2012 13:15:35 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 86804 invoked by uid 500); 9 Dec 2012 13:15:34 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 86532 invoked by uid 99); 9 Dec 2012 13:15:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C5FA92388CA2 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [24/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.C5FA92388CA2@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/openjpa-2.2.0.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-2.2.0.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-2.2.0.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA 2.2.0

+

The Apache OpenJPA community is proud to announce the release of Apache +OpenJPA 2.2.0. As with the prior 2.1.0 release, this distribution is based +on the final JSR 317 Java Persistence API, Version 2.0 + specification and passes the JPA 2.0 TCK, while remaining backwards +compatible with the prior 1.2.x releases based on the Java Persistence API +(JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans +3.0). For a list of all the new features of JPA 2.0, please checkout the OpenJPA 2.1.0 + release notes.

+

Additional information on the OpenJPA project may be found at the project web site +.

+

+

Changes in OpenJPA 2.2.0

+

+

Sub-task

+
    +
  • OPENJPA-1593 - Create an OSGiManagedRuntime
  • +
  • OPENJPA-2081 - Provide subset of XML support for OpenJPA annotations
  • +
+

+

Bug

+
    +
  • OPENJPA-478 - Contradictory text in manual section 10.2.6. JPQL GROUP +BY, HAVING
  • +
  • OPENJPA-867 - Unexpected Behaviour of DBDictionary.indexOf() method
  • +
  • OPENJPA-1343 - Incorrect example of openjpa.Sequence property
  • +
  • OPENJPA-1376 - @SequenceGenerator allocationSize incorrect +implementation
  • +
  • OPENJPA-1650 - Adding a slice dynamically should be done via +persistence unit only
  • +
  • OPENJPA-1651 - Unique colums automatically defined as non-nullable +(part 2)
  • +
  • OPENJPA-1657 - Postgres connection throws NPE with null properties
  • +
  • OPENJPA-1686 - Persistence of Dynamic and Generic Type
  • +
  • OPENJPA-1725 - Schemaname wrongly included in +DBDictionary.checkNameLength after Tablename correctly truncated
  • +
  • OPENJPA-1746 - NullPointerException when a null value is set in the +properties map passed to Entity.createEntityManagerFactory
  • +
  • OPENJPA-1768 - StackOverflowError when finding an Entity with an +Eager ManyToMany relationship.
  • +
  • OPENJPA-1787 - Bean validation fails merging a new entity
  • +
  • OPENJPA-1845 - the prepared query cache doesn't currently work +correclty with 'SELECT IN' statements
  • +
  • OPENJPA-1856 - Executing bulk updates should evict stale data from +the DataCache
  • +
  • OPENJPA-1873 - EntityManager#merge sometimes passes wrong entity +values to @PostLoad EntityListeners
  • +
  • OPENJPA-1876 - Slow JDBC tests
  • +
  • OPENJPA-1896 - OpenJPA cannot store POJOs if a corresponding record +already exists
  • +
  • OPENJPA-1898 - TestQueryMultiThreaded fails with OOME "unable to +create new native thread"
  • +
  • OPENJPA-1900 - ClassCastException when serializing an entity if +DetachedStateField=true
  • +
  • OPENJPA-1901 - QueryCacheStoreQuery$CachedObjectId that is not +Serializable
  • +
  • OPENJPA-1902 - SQLServer reserved words may not be used as +identifiers
  • +
  • OPENJPA-1903 - Some queries only work the first time they are +executed
  • +
  • OPENJPA-1904 - OptimisticLockException during +refresh(,PESSIMISTIC_) with eagar fetch on relationship fields
  • +
  • OPENJPA-1905 - jar-file validation should be deferred until after +OpenJPA is confirmed to be the application's chosen provider
  • +
  • OPENJPA-1906 - Issue info / warning message when connection retain +mode is always
  • +
  • OPENJPA-1909 - enhance unit tests with the correct persistence.xml
  • +
  • OPENJPA-1910 - openjpa uses application ClassLoader for resolving +BrokerFactory (revisited)
  • +
  • OPENJPA-1911 - InvalidStateException is thrown when merge an entity +with derived identiy
  • +
  • OPENJPA-1912 - enhancer generates invalid code if fetch-groups is +activated
  • +
  • OPENJPA-1915 - missing license header
  • +
  • OPENJPA-1918 - MetaDataRepository.preload() ignores class loader +returned by PersistenceUnitInfo.getClassLoader()
  • +
  • OPENJPA-1923 - Allow flexible (non-standard) syntax for +collection-valued parameters in IN() expresseion of JPQL query
  • +
  • OPENJPA-1928 - Resolving factory method does not allow method +overriding
  • +
  • OPENJPA-1932 - Documentation corrections
  • +
  • OPENJPA-1935 - Informix lock exceptions are not mapped properly by +OpenJPA
  • +
  • OPENJPA-1938 - Typo of time data type in SQLServerdictionary for +MSSQL 2008
  • +
  • OPENJPA-1939 - index identifier max length for DB2 v9 is 128.
  • +
  • OPENJPA-1940 - ReverseMapping tool does not find primary keys with +Oracle
  • +
  • OPENJPA-1941 - Criteria query returns wrong result when query cache +is enabled
  • +
  • OPENJPA-1943 - Query timeout hint not honored consistently when +pessimistic lock is issued to database requires multi-statements locking +scheme
  • +
  • OPENJPA-1944 - Extra select statements executed when version column +is null.
  • +
  • OPENJPA-1951 - missing key "cant-set-value" in localizer properties +org.apache.openjpa.jdbc.meta.strats
  • +
  • OPENJPA-1953 - Copying data from inputStream to OuputStream needs +appropriate buffer size
  • +
  • OPENJPA-1954 - ArrayIndexOutOfBoundsException when querying on a +version field that is in a MappedSuperclass
  • +
  • OPENJPA-1957 - XML overriding column names for ArrayList attributes +causes exception.
  • +
  • OPENJPA-1958 - IndexOutOfBoundsException in +BatchingPreparedStatementManagerImpl
  • +
  • OPENJPA-1959 - RuntimeExceptionTranslator should be transient in +DelegatingQuery
  • +
  • OPENJPA-1960 - openjpa.InitializeEagerly breaks bean-validation +integration
  • +
  • OPENJPA-1965 - ClassCastException when using JAXB and MetaModel +annotation processor
  • +
  • OPENJPA-1968 - SQLServerDictionery not using DATETIME2 for jdbc +driver other than MS JDBC driver
  • +
  • OPENJPA-1969 - SQLServer / DataDirect SQLCode=HYT00 not handled
  • +
  • OPENJPA-1974 - StackOverflowError when performing multiple subquery +in collection field with eager fetch
  • +
  • OPENJPA-1975 - Only obtain default schema name when needed (DB2)
  • +
  • OPENJPA-1981 - Improper cleanup in SchemaGenerator
  • +
  • OPENJPA-1983 - Merge of lazily fetched fields, and merge of managed +entities deviates from spec
  • +
  • OPENJPA-1984 - Incorrect ViolationContraint getRootBean when removing +bean with embedded entity validation
  • +
  • OPENJPA-1985 - ClassCastException in max(Timestamp) function on +PostgreSQL
  • +
  • OPENJPA-1986 - Extra queries being generated when cascading a persist
  • +
  • OPENJPA-1987 - Postgres / Ingres does not support null table for +getImportedKeys
  • +
  • OPENJPA-1989 - *ToOne relationships specified as LAZY in xml aren't +honored
  • +
  • OPENJPA-1992 - java.lang.ArrayIndexOutOfBoundsException if positional +parameter are not started from 1
  • +
  • OPENJPA-1994 - Index is a reserved word for MySQL
  • +
  • OPENJPA-1996 - OpenJPA Samples fail on MacOS X
  • +
  • OPENJPA-1998 - NPE getTableNameForMetadata when running SchemaTool +reflect against Postgres DB
  • +
  • OPENJPA-2000 - Wrong PostgreSQL data type for REAL - "float8", must +be "float4"
  • +
  • OPENJPA-2005 - PostgresDictionary.isOwnedSequence needs a null check
  • +
  • OPENJPA-2006 - Sequence generated ids may fail to get assigned when +flushing a graph with bi-directional relationships
  • +
  • OPENJPA-2007 - Setting query hint "openjpa.FetchPlan.Isolation" +results in misleading warning
  • +
  • OPENJPA-2008 - OpenJPA does not work with native queries in a +distributed (Slice) environment
  • +
  • OPENJPA-2010 - Duplicate meta data warning logged due to parsing the +same location twice
  • +
  • OPENJPA-2011 - Prevent reparsing annotation metadata for queries
  • +
  • OPENJPA-2013 - columnDefinition for TEXT types ends up in wrong sql +statement
  • +
  • OPENJPA-2025]
  • +
  • Byte and Char[ should be treated as SingularAttributes, not lists by +the metamodel generator
  • +
  • OPENJPA-2027 - Metamodel genereated at runtime expects ListAttribute +for all arrays - not just PersistentCollections.
  • +
  • OPENJPA-2034 - Update H2 Database sql error codes as per the changes +in v1.3.154
  • +
  • OPENJPA-2036 - DynamicEnhancer should look for tools.jar in +java.home/lib for all JDKs, not just the IBM SDK.
  • +
  • OPENJPA-2039 - FKs for EAGER fields that are not in the current +fetchplan aren't selected
  • +
  • OPENJPA-2044 - Invalid header in MetaModel classes generated by +AnnotationProcessor
  • +
  • OPENJPA-2045 - NAME is a valid column name for H2 databases.
  • +
  • OPENJPA-2051 - Entities in a relationship are not properly cascaded +after a EntityManager.flush is executed.
  • +
  • OPENJPA-2056 - Postgres V9.1 issue with LIKE clause and Escape +Strings
  • +
  • OPENJPA-2059 - Missing localizer.properties for +org.apache.openjpa.persistence.util.SourceCode
  • +
  • OPENJPA-2060]
  • +
  • AnnotationProcess failed to generate metadata for List[ +attribute in entity
  • +
  • OPENJPA-2065 - JPA 2.0 Spec. Violation? +EntityManager#createNamedQuery(String, Class) bombs with non-entity Class +parameter
  • +
  • OPENJPA-2066 - Edge case in openJPA-1227. openJPA fails to create a +join and thus returns wrong data when a collection is selected from +superclass and another field is selected from subclass twoor more levels +down the hierarchy.
  • +
  • OPENJPA-2069 - Natvie sequence problems uncovered after OPENJPA-1376
  • +
  • OPENJPA-2070 - Error processing while populating Metamodel classes +needs improvement
  • +
  • OPENJPA-2071 - NPE during ResultPacker interface processing
  • +
  • OPENJPA-2073 - MappingTools requires live connection to DB2 server to +retrieve default schema name
  • +
  • OPENJPA-2076 - Minor fix-ups to messages
  • +
  • OPENJPA-2077 - Pom references to org.codehaus.mojo +openjpa-maven-plugin cause problems
  • +
  • OPENJPA-2083 - Unmapped fields silently treated as transient
  • +
  • OPENJPA-2100 - openjpa-maven-plugin fails to create SQL for entities +which contain enums
  • +
  • OPENJPA-2101 - PersistenceProductDerivation overwrites the +RemoteCommitProvider configuration
  • +
  • OPENJPA-2104 - BindParameter is not a valid query parameter as +processed in DBDictionary's setUnknown()
  • +
  • OPENJPA-2105 - Document changes no longer being uploaded
  • +
  • OPENJPA-2107 - ManagedCache conflict due adding an entity 2 times in +the same query.
  • +
  • OPENJPA-2117 - XML overriding column names for 1xM attributes causes +exception.
  • +
  • OPENJPA-2119 - Update org.apache.openjpa.persistence.util.SourceCode
  • +
  • OPENJPA-2122 - VerifyError with Java 7 when using javaagent or +dynamic container enhancement
  • +
  • OPENJPA-2124 - Use of XMLValueHandler results in a +NullPointerException when classloader does not provide package support
  • +
+

+

Improvement

+
    +
  • OPENJPA-302 - PCEnhancer needs target classes on classpath
  • +
  • OPENJPA-487 - Generated SUBSTRING SQL is ugly and inefficient
  • +
  • OPENJPA-758 - OpenJPA doesn't find ValueHandlers with an applicable +class loader
  • +
  • OPENJPA-1555 - SQLBuffer code cleanup
  • +
  • OPENJPA-1777 - Allow setting of diagonstic context for each slice in +a more flexible manner
  • +
  • OPENJPA-1778 - Improved error information for unenhanced classes.
  • +
  • OPENJPA-1798 - Improve messages in localize.properties
  • +
  • OPENJPA-1803 - Unwrap EntityManager to Connection
  • +
  • OPENJPA-1847 - Use a single connection when generating schema
  • +
  • OPENJPA-1863 - update HSQL dictionary for HSQLDB 2.0
  • +
  • OPENJPA-1917 - Cache column alias in SelectImpl
  • +
  • OPENJPA-1937 - Document OpenJPAEntityManager.evict methods
  • +
  • OPENJPA-1945 - Improve aspects of the OpenBooks sample
  • +
  • OPENJPA-1972 - DB2 V9.7 changed the default behavior concerning +blocking behavior with isolation levels greater then read uncommitted
  • +
  • OPENJPA-1990 - Skip getting extend exception text when running on DB2
  • +
  • OPENJPA-1999 - Optional support for non-sequential positional +parameters
  • +
  • OPENJPA-2014 - Allow proxies to stay in place when Detaching
  • +
  • OPENJPA-2020 - Make some members of StateManagerImpl protected to +allow for greater extensability
  • +
  • OPENJPA-2031 - Unable to import maven projects with m2e version 1.0
  • +
  • OPENJPA-2042 - Diagnostics for Application Managed +EntityManagerFactory leaks.
  • +
  • OPENJPA-2043 - OpenJPAId hashCode() value needs to be consistent +after serialization process
  • +
  • OPENJPA-2047 - Document the impact of Persistence Aware classes
  • +
  • OPENJPA-2068 - Improve performance of java.util.Calendar fields
  • +
  • OPENJPA-2075 - Abstract out parameter handling / validation from +org.apache.openjpa.persistence.QueryImpl to allow for greater extensibility
  • +
  • OPENJPA-2084 - Upgrade Derby dependency to 10.8.x
  • +
  • OPENJPA-2085 - Improve enhancement process to support JAVA 7 +compliant class file generation
  • +
  • OPENJPA-2087 - Remove or limit the use of the ConcreteClassGenerator
  • +
  • OPENJPA-2116 - Scrape the barrel for performance juice
  • +
  • OPENJPA-2120 - Add new option to eliminate reflection calls from +enhancer generated IdClass PC copy operations
  • +
  • OPENJPA-2128 - Add a boolean to FieldMetaData to denote whether or +not a field has a @EmbeddedId annotation.
  • +
  • OPENJPA-2130 - Enable Java 7 testing by allowing test cases to +compile targeting to 1.7
  • +
+

+

New Feature

+
    +
  • OPENJPA-184 - use DB2 Diagnostic interface to report extended error +diagnostics on SQL Exception
  • +
  • OPENJPA-1859 - Create a sample to demonstrate usage of JEST
  • +
  • OPENJPA-1934 - contribute an openjpa-maven-plugin
  • +
  • OPENJPA-2108 - Allow an option to terminate MappingTool-generated SQL +with a character other than semicolon
  • +
+

+

Task

+
    +
  • OPENJPA-1786 - Upgrade to latest JPA 2.0 TCK
  • +
  • OPENJPA-1834 - Upgrade trunk to use Deby 10.6.2.1 for junits
  • +
  • OPENJPA-1875 - Add generics to the Graph code
  • +
  • OPENJPA-2089 - upgrade bval to latest 0.3-incubating
  • +
  • OPENJPA-2091 - update docbook maven plugin
  • +
+

+

Test

+
    +
  • OPENJPA-2029 - Add PreparedQuery tests for non-sequential positional +parameters support
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-confluence-user-groups.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-confluence-user-groups.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-confluence-user-groups.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-development-resources.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-development-resources.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-development-resources.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Getting Involved

+

Most of the OpenJPA discussions happen on the mailto:dev@openjpa.apache.org + mailing list. For more details see OpenJPA mailing lists| +. For more general discussion about Apache mailing lists, see the Apache mailing lists + page.

+

+

Development Resources

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-1.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-1.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-1.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Logo Submissions

+

Logos submitted for Round #1 voting from July 1 - July 9:

+
    +
  1. - Georgi +Naplatanov - gosho_at_oles_biz
  2. +
  3. - Georgi +Naplatanov - gosho_at_oles_biz
  4. +
  5. - Georgi +Naplatanov - gosho_at_oles_biz
  6. +
  7. - Georgi +Naplatanov - gosho_at_oles_biz
  8. +
  9. - Georgi +Naplatanov - gosho_at_oles_biz
  10. +
  11. http://os.oles.biz/openjpa-logo-ideas/idea1.svg - Georgi Naplatanov - +gosho_at_oles_biz
  12. +
  13. + Donald Woods - dwoods_at_apache_org
  14. +
  15. + Pinaki Poddar - ppoddar_at_apache_org
  16. +
  17. + Pinaki Poddar - ppoddar_at_apache_org
  18. +
  19. + Donald Woods - dwoods_at_apache_org
  20. +
  21. + Donald Woods - dwoods_at_apache_org
  22. +
  23. + Donald Woods - dwoods_at_apache_org
  24. +
  25. + Donald Woods - dwoods_at_apache_org
  26. +
  27. + Donald Woods - dwoods_at_apache_org
  28. +
  29. + Donald Woods - dwoods_at_apache_org
  30. +
  31. + Pid - p_at_pidster_com
  32. +
  33. + Pid - p_at_pidster_com
  34. +
  35. + Donald Woods - dwoods_at_apache_org
  36. +
+

+

Votes

+ + + + + + + + + + + + + + + + +
Name Date First Second Third Comments
Albert Lee 20090702 #16 #14 #7
Ravi Palacheria 20090702 #15 #8 #9
Jeremy Bauer 20090702 #18 #16 #14
Daryl Stultz 20090702 #7 #2 #7 tighten up the kerning between +the P and A. #2 but I don't like the way the "apache project" is over the +circle.
Ognjen Blagojevic 20090703 #8 #7 #8 needs a bit softer letter +edges
David Beer 20090703 #16 #17 #18
C N Davies 20090703 #13 #4
Milosz Tylenda 20090705 #7 A could stay a bit closer to P
Kevin Sutter 20090706 #18 #13 #10 Thanks, Donald, for #18 +update.
Michael Dick 20090706 #7 #14 #15
Craig Russell 20090706 #14 #10 #7 I'd still like to see the "O" +with the feather and arrows used in #14, with the font (not the boxes and +bubbles) used in #13; any chance of seeing that one?
Donald Woods 20090707 #18 #16 #13
Pid 20090708 #17 #16 #18
Marco Schwarz 20090708 #14 #13 #7
+ +

+

Voting Results

+ + + + + + + + + + + + + + + + + + + + +
Logo First Second Third Total Points
1 0 0 0 0
2 0 1 0 2
3 0 0 0 0
4 0 1 0 2
5 0 0 0 0
6 0 0 0 0
7 3 1 3 14
8 1 1 0 5
9 0 0 1 1
10 0 1 1 3
11 0 0 0 0
12 0 0 0 0
13 1 2 1 8
14 2 2 1 11
15 1 0 1 4
16 2 3 0 12
17 1 1 0 5
18 3 0 2 11
+ +

First Round Winners: #7, #16, #18, #14, #13

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-2.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-2.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-logo-contest---round-2.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Logo Submissions

+

The results of the first round of voting can be found at - OpenJPA Logo Contest - Round 1

+

The following are the finalists for Round 2 of voting from July 9 - 14:

+
    +
  1. + #7 by Donald Woods - dwoods_at_apache_org
  2. +
  3. + #13 by Donald Woods - dwoods_at_apache_org
  4. +
  5. + #14 by Donald Woods - dwoods_at_apache_org
  6. +
  7. + #16 by Pid - p_at_pidster_com
  8. +
  9. + #18 by Donald Woods - dwoods_at_apache_org
  10. +
+

+

Votes

+ + + + + + + + + + +
Name First Second Third Comments
Donald Woods 1 2 4
Albert Lee 4 3 1
Kevin Sutter 2 5 4
Pid 4 1 5 The difference between 1 and 3 is slight. Perhaps they +should be unified (a vote for one is a vote for either)
C N Davies 4
Michael Dick 1 4 3
Daryl Stultz 1
Jeremy Bauer 1 4 5
+ +

+

Voting Results

+ + + + + + + +
Logo First Second Third Total Points
1 4 1 1 15
2 1 1 0 4
3 0 1 1 3
4 3 2 2 15
5 0 1 2 4
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10208-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:43 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 90FD4E101 for ; Sun, 9 Dec 2012 13:15:43 +0000 (UTC) Received: (qmail 87471 invoked by uid 500); 9 Dec 2012 13:15:42 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87449 invoked by uid 500); 9 Dec 2012 13:15:42 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 87432 invoked by uid 99); 9 Dec 2012 13:15:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:42 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:23 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 437AA2388CAD for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [31/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.437AA2388CAD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/running-openjpa-examples.html ============================================================================== --- websites/staging/openjpa/trunk/content/running-openjpa-examples.html (added) +++ websites/staging/openjpa/trunk/content/running-openjpa-examples.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Running the OpenJPA Examples

+

The examples are packaged so that they run after extracting the openjpa +binary distribution. Running directly from the source tree may take some +work (not documented here).

+
    +
  1. +

    Build the openjpa binaries

    +
    $ mvn clean install
    +
    + + +
  2. +
  3. +

    extract the binary distribution to a temporary directory

    +
    $ cd openjpa-project/target/site/downloads/
    +$ unzip -qq -d temp *binary*.zip
    +$ cd temp/$openjpa-version/examples
    +
    + + +
  4. +
  5. +

    run the helloJPA sample

    +
    $ cd hellojpa
    +$ ant
    +$ cd ..
    +
    + + +
  6. +
  7. +

    run the relations sample

    +
    $ cd relations
    +$ ant
    +$ cd ..
    +
    + + +
  8. +
  9. +

    run the reversemapping sample

    +

    +
    + Currently only works on unix platforms +

    +
    $ cd reversemapping
    +$ ant
    +$ cd ..
    +
    + + +
  10. +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/running-the-sun-tck-for-jpa.html ============================================================================== --- websites/staging/openjpa/trunk/content/running-the-sun-tck-for-jpa.html (added) +++ websites/staging/openjpa/trunk/content/running-the-sun-tck-for-jpa.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Running the Sun TCK for JPA

+

Sun's Technology Compatibility Kit for JPA is available to OpenJPA +committers (other TCKs are available to Apache committers in general).

+

+

Requesting access to the TCK

+
    +
  1. Review the section "Testing with TCKs" on the Apache JCP participation page
  2. +
  3. The OpenJPA project should request access (this has already been done).
  4. +
  5. Sign the Apache NDA.
  6. +
  7. Send the signed form to Geir Magnusson Jr. geirm@apache.org. + Per email with Geir a scan of the signed form is fine.
  8. +
  9. Geir will place a copy of the TCK in your private directory on +people.apache.org.
  10. +
+

The most up to date and complete information can be found on the Apache JCP participation page +.

+

Once you have a copy of the TCK you can execute the TCK bucket in maven.

+
    +
  1. copy the tck to ${user.home}/.m2/privaterepos/jpa-1_0b-tck.zip
  2. +
  3. +

    Enable the tck profile and run the integration-test maven goal :

    +
    $  mvn integration-test -Ptck-profile
    +
    + + +
  4. +
+

More information on running the TCK can be found in the pom file for the tck module

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/runtime-enhancement.html ============================================================================== --- websites/staging/openjpa/trunk/content/runtime-enhancement.html (added) +++ websites/staging/openjpa/trunk/content/runtime-enhancement.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

The first runtime enhancement method is to provide a javaagent when launching the JVM that OpenJPA is going run in.

+
-javaagent:<openjpa_jar_location>
+
+ + +

For Eclipse, specify the above javaagent value on the Run Configuration page.

+

For ANT, provide the javaagent value as a jvmarg when launching an application. Below is a snippet that shows how to pass in the javaagent when launching a Java SE application that uses OpenJPA.

+
    <path id="jpa.enhancement.classpath">
+        <pathelement location="bin"/>
+        <!-- lib contains all of the jars that came with the OpenJPA binary download -->
+        <fileset dir="lib">
+            <include name="**/*.jar"/>
+        </fileset>
+    </path>
+    ...
+    <target name="drive" depends="clean, build">
+        <echo message="Running test with run time enhancement."/>
+        <java classname="main.Driver" failonerror="true" fork="yes">
+            <jvmarg value="-javaagent:${openJPA-jar}"/>
+            <classpath refid="jpa.enhancement.classpath"/>
+        </java>
+    </target>
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/samples.html ============================================================================== --- websites/staging/openjpa/trunk/content/samples.html (added) +++ websites/staging/openjpa/trunk/content/samples.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

OpenJPA Examples

+

This page provides samples for OpenJPA. For further information, the documentation + provides comprehensive documentation on all aspects of configuring and +using OpenJPA. A template + is provided to describe how to build, deploy and run the samples. The +existing samples will be reformatted to fit the template. If you are +creating new samples, please adhere to the template.

+

For more information on using OpenJPA within a Java EE application server, +please see the Integration + page for more details.

+ +

+

OpenJPA ANT Examples

+

These are some short (5 minutes) quick start guides for OpenJPA using the +examples provided with the distribution. Most OpenJPA releases require Java +SE 5, but see Build and Runtime Dependencies + for more details.

+ +

+

Other Examples

+

Apache TomEE Examples

+ +

All the above examples are standalone projects, contain unit tests and working maven pom.xml files. Examples are run with every build and release of TomEE.

+

Apache Geronimo v2.1 Samples

+ +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/sampletemplate.html ============================================================================== --- websites/staging/openjpa/trunk/content/sampletemplate.html (added) +++ websites/staging/openjpa/trunk/content/sampletemplate.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

A template for OpenJPA Samples

+

+

Introduction

+

A paragraph describing the basic purpose of the presented sample. In +general, the purpose of a sample could be, but not limited to,

+
    +
  • to highlight some new feature introduced in a release (e.g. Bean +Validation or Criteria API)
  • +
  • to describe wiring between frameworks e.g. JSF and JPA, GWT and JPA
  • +
  • to demonstrate operation within a container e.g. OSGi, Spring, Tomcat +or JEE
  • +
  • a combination of the above
  • +
+

For example,
+ "this sample demonstrates usage of new Bean Validation API in a +multi-tier web application" +or "this sample integrates client-side Google Web Toolkit architecture with +sever-side JPA application".

+

The functional features of the samples such as "This OpenBooks example +can be used to place order and browse books" -- are not that important in +this context but can be mentioned.

+

+

Installation

+

State the availability of the sample. For example,

+
    +
  • +

    Is the distribution available as a downloadable archieve? If packaged +in an archieve, all source code, build instructions must be available in +the distribution itself. A README.txt should be inside and outside the +distribution.

    +
  • +
  • +

    Is the sample to be checked out from code repository? In such cases, +building the sample should be done with Ant or Maven. Prefer Ant to make +the dependencies and steps more visible.

    +
  • +
+

The steps in this section should be clear and concise for an user to +follow them to build, deploy and run the sample.

+

+

Environment

+

Enumerate the software artifacts required to build, deploy and run the +sample. The artifacts should be categorized into build time and run time +dependencies.

+

+

Configuration

+

Often building a sample will require the user to configure dependencies +(such as OpenJPA libraries or JDBC Driver), for his/her local environment. +The ANT build scripts for a sample must accept configurable properties via +build.properties or similar configurable mechanics. The properties +configuration file itself should be documented to explain the dependencies +and how the build script use them. Maven based build scripts can make these +dependencies more implicit and saves the user to explicitly satisfy such +dependencies. However, ANT based builds are preferred over Maven for the +samples, so that the build steps and dependencies are made more visible to +the user.

+

+

Best Practices

+

The samples, besides demonstration of a feature, are a suitable vehicle +of showing good development practices in JPA application programming model +such as persistent domain modeling or architectural practices. It is +recommended that such best practices be mentioned in several places:

+
    +
  • in the source code
  • +
  • build scripts
  • +
  • a separate document that enumerates them in one place.
  • +
+

+

Caveats

+

The complete develop-build-run cycle of a sample will often bring out the +special considerations. For example, reported common errors in deployment +in a container and their remedies or certain undesirable usage patterns. +The description of a sample should highlight these special considerations +rather than making the exercise appear as a series of perfectly easy steps. +The caveats can be further highlighted by linking them to relevant JIRA +issues or forum discussions or external blogs etc.
+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/sidenav-community.html ============================================================================== --- websites/staging/openjpa/trunk/content/sidenav-community.html (added) +++ websites/staging/openjpa/trunk/content/sidenav-community.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + + +
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10210-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:44 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 60D96E105 for ; Sun, 9 Dec 2012 13:15:44 +0000 (UTC) Received: (qmail 87658 invoked by uid 500); 9 Dec 2012 13:15:44 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87620 invoked by uid 500); 9 Dec 2012 13:15:43 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 87613 invoked by uid 99); 9 Dec 2012 13:15:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:23 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3E84A2388CAA for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [30/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.3E84A2388CAA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/releasing-openjpa-1.0.x-or-1.1.x-(old-scp-steps).html ============================================================================== --- websites/staging/openjpa/trunk/content/releasing-openjpa-1.0.x-or-1.1.x-(old-scp-steps).html (added) +++ websites/staging/openjpa/trunk/content/releasing-openjpa-1.0.x-or-1.1.x-(old-scp-steps).html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,706 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Making an OpenJPA 1.0.x or 1.1.x Release

+

These instructions guide the release manager through the steps of making an +official OpenJPA release.

+

+

Prerequisites

+
    +
  1. You should read the OpenJPA Release Policy + to decide on the name of the new release, based on the content.
  2. +
  3. You should read the Apache Release FAQ
  4. +
  5. You must have shell access to people.apache.org
  6. +
  7. You must have the following utilities installed on your local machine and +available in your path: +
  8. +
  9. For Windows users, install Cygwin + in addition to the above utilities
      +
    • Make sure the Net/openssh and Utils/gnupg packages are installed that +come with Cygwin installation.
    • +
    • Optional: Putty
    • +
    +
  10. +
+

+

Tasks that need to be performed for each release

+

{info}In the examples below, it is assumed that the release name will be +1.0.1, and that the current checked-in version name is 1.0.1-SNAPSHOT +and stored in the branch named 1.0.x.{info}

+

{code:none} +svn copy -m "OpenJPA Release 1.0.1 branch" \ + https://svn.apache.org/repos/asf/openjpa/branches/1.0.x \ + https://svn.apache.org/repos/asf/openjpa/branches/1.0.1

+
|| Monday, 12:02 | Check out a clean branch from which to build the
+
+ + +

release: \ + {code:none} + svn checkout https://svn.apache.org/repos/asf/openjpa/branches/1.0.1 + cd 1.0.1

+

{note}Make sure there is no space characters in the path to the build root subdirectory, i.e. "c:\OpenJPA 1.0.1 Release\build". See "#Space Character in Build Root Path +"{note} ||

+

{code:none} +perl -pi -e +"s;1.0.1-SNAPSHOT;1.0.1;g" \ + pom.xml /pom.xml /*/pom.xml

+
Update the {{<scm.dir>}} property in the top level pom.xml to the 1.0.1
+
+ + +

release. \ + Update the {{}} element in the top level pom.xml if new +committers are added or removed. This applies to the 1.0.x branch only. || + || Monday, 12:10 | Verify that LICENSE.txt contains up to date licenses for +any dependencies which are included in our distribution.\ Any jars or +source code which is included with the OpenJPA distribution that is not +covered by the Apache license must be noted in LICENSE.txt. Two examples of +this are the persistence and orm dtds (licensed under the CDDL) and Serp. +If any new non Apache dependencies have been introduced they will have to +be covered here as well. If any discrepancies are found update LICENSE.txt +and commit the changes. \ || + || Monday, 12:15 | Update BUILDING.txt, CHANGES.txt and RELEASE-NOTES.html +\ + * BUILDING.txt should be included in the source tarball and contains +instructions on how to build OpenJPA. Prior to shipping a release we should +ensure that those instructions are accurate. + * CHANGES.txt contains a text representation of all the changes which have +been made since the preceding release. Most of the contents of this file +can be generated through JIRA's release notes mechanism [here|http://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12310351] + * RELEASE-NOTES.html contains general information on the OpenJPA project as +well as an html version of the changes since the preceding version. The +html change log may also be generated via JIRA.\ + || + || Monday, 12:20 | Commit the POM changes \ + {code:none} + svn commit -m "Updated to version 1.0.1 for the release"

+

{code:none} +mvn clean install -Dtest=false

+
|| Monday, 12:23 | Now build the release locally, which will build and
+
+ + +

test, run the Apache [Release Audit Tool|http://mojo.codehaus.org/rat-maven-plugin/] + to verify license headers, generate the javadoc and docbook PDF and HTML, +run through the JPA TCK, build the source and binariy assemblies in +target/site/downloads/, and sign the release files. \ + {code:none} + export MAVEN_OPTS=-Xmx1000m + mvn --batch-mode deploy site \

+

-Ptck-profile,examples-profile,license-verify-profile,javadoc-profile,docbook-profile,sign-release +\ + -Djava14.jar=${JAVA_HOME}/../../1.4/Classes/classes.jar \ + -Dtck.zip=${HOME}/.m2/privaterepos/jpa-1_0b-tck.zip

+

{note} The examples-profile has problem running automatically in this +maven build task. You will need to run the examples manually. Run the maven +command without the examples-profile, then perform the following steps +to run the example:

+
mkdir openjpa-integration\examples\target\examples
+unzip target\site\downloads\apache-openjpa-1.0.1-binary.zip -d
+
+ + +

openjpa-integration\examples\target\examples + cd +openjpa-integration\examples\target\examples\apache-openjpa-1.0.1\examples\hellojpa + ant + cd ..\relations + ant + cd ..\reversemapping + ant

+

{note} ||

+

{code:none} +gpg --multifile --verify target/site/downloads/*.asc

+
|| Monday, 13:01 | Upload the release candidate to [http://openjpa.apache.org/builds/1.0.1/downloads/]
+
+ + +
+
\ +{code:none} +mvn site:deploy
+
+

Bear in mind that uploads to +people.apache.org/www/openjpa.apache.org/builds/ are not visible at http://openjpa.apache.org/builds + until after the hourly synchronization has taken place, as described at [http://www.apache.org/dev/project-site.html] +. +{warning}|| + + +

+

{code:none} +ssh people.apache.org +cp -r /www/openjpa.apache.org/builds/1.0.1/downloads/* +/www/www.apache.org/dist/openjpa/1.0.1 +chgrp -R openjpa /www/www.apache.org/dist/openjpa/1.0.1 +chmod -R g+w /www/www.apache.org/dist/openjpa/1.0.1

+
The OpenJPA binary release will be available via the link [http://www.apache.org/dyn/closer.cgi/openjpa/1.0.1/apache-openjpa-1.0.1-binary.zip]
+
+ + +

after 24 hours, as per the [Apache mirroring information|http://apache.org/dev/mirrors.html] +. + {warning}|| + || Thursday, 15:15 | Now that the release is locked down, convert the +writeable 1.0.1 branch to a (du jure) read-only tag: \ + {code:none} + svn mv -m "OpenJPA Release 1.0.1 tag" \ + https://svn.apache.org/repos/asf/openjpa/branches/1.0.1 \ + https://svn.apache.org/repos/asf/openjpa/tags/1.0.1

+

{code:none} +svn checkout https://svn.apache.org/repos/asf/openjpa/branches/1.0.x +cd 1.0.x +perl -pi -e +"s;1.0.1-SNAPSHOT;1.0.2-SNAPSHOT;g" \ + pom.xml /pom.xml /*/pom.xml +svn commit -m "Updating version in branch to 1.0.2-SNAPSHOT"

+
|| Thursday, 15:20 | Update the [http://cwiki.apache.org/openjpa/downloads.html]
+
+ + +

page with links to the download mirrors, using the existing entries as +templates. {note}All artifacts (apache-openjpa-1.0.1-binary.zip and +apache-openjpa-1.0.1-source.zip) must link to the mirrors, but +signatures (apache-openjpa-1.0.1-binary.zip.asc and +apache-openjpa-1.0.1-source.zip.asc) must not link to mirrors.{note}|| + || Thursday, 15:30 | The documentation on the server-side must manually be +extracted on people.apache.org, and the links at [http://openjpa.apache.org/documentation.html] + need to be updated with the new versions and the "latest" documentation +symbolic links need to be updated: \ + {code:none} + cd /www/openjpa.apache.org/builds/1.0.1/ + unzip downloads/apache-openjpa-1.0.1-binary.zip + rm /www/openjpa.apache.org/docs/latest + ln -fvs ../builds/1.0.1/apache-openjpa-1.0.1/docs/ +/www/openjpa.apache.org/docs/latest

+
Monday, 15:00 Start a vote for the release on the mailto:dev@openjpa.apache.org + mailing list. Votes made by committers and members of the OpenJPA project +are considered binding for this vote. For an example of the mail, see [this archived 1.0.0 votehttp://www.nabble.com/-VOTE--Approve-OpenJPA-1.0.0-release-%284th-attempt%29-p12305349.html] +
Tuesday, Wednesday While waiting for the vote to complete, perform +whatever manual review and testing on the release you deem appropriate.
+ + +{code:none} +svn co +http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-stage-plugin/ \ + /tmp/maven-stage-plugin +mvn -f /tmp/maven-stage-plugin/pom.xml clean install +for i in $(find openjpa-* -name m2-repository | egrep -v +"openjpa-project|openjpa-integration|openjpa-examples"); do + cd $i + mvn stage:copy -Dsource=file://. \ + +-Dtarget=scp://people.apache.org:/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 + cd - +done + + This process requires Maven 2.0.5. It is currently quite delicate and +error-prone. Once the *maven-stage-plugin* is released, it should be +possible to make it more automated. + {warning} + {info} + Window/Cygwin user: See [#Merging local repository to remote repository in Cygwin/Windows] + {info} + {info} + Linux users: You may need to change the '-Dsource=' option to read +'-Dsource=file:{}'. The file://{} syntax may result in errors creating the +wagon file with errors like: "Repository path +/openjpa-jdbc-5/target/site/m2-repository does not exist, and cannot be +created." + {info} + || Thursday, 16:00 | Update the [JIRA versions | https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310351] + page to mark the version as "released", and set the date to the date that +the release was approved. You may also need to make a new release entry for +the subsequent release.|| + || Friday, 16:00 | After the mirrors have had time to update (24 hours to +be on the safe side), make a [news announcement|http://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=openjpa] + on the OpenJPA wiki. {note}Once the news item is made, it won't show up on +the [front page|http://cwiki.apache.org/openjpa/] + unless you make some minor edit to the containing page (e.g., adding a +newline somewhere).{note} || + || Friday, 16:05 | Make an announcement about the release on the [mailto:users@openjpa.apache.org] + list (and, for major releases, on the [mailto:announce@apache.org] + list as per [the Apache Announcement Mailing Lists page|http://www.apache.org/foundation/mailinglists.html#foundation-announce] +). The announcement might look something like [this|http://www.nabble.com/-ANNOUNCE--Apache-OpenJPA-1.0.0-released-p12397604.html] +. || + || Friday, 16:10 | Make an announcement for the [freshmeat.net OpenJPA project|http://freshmeat.net/projects/openjpa/] + (optional) || + || Friday, 17:00 | Have a beer and enjoy your weekend while the world's +grateful programmers revel in yet another high-quality release of Apache +OpenJPA! || + + h2. One time setup + + These setup steps only need to be performed on a particular machine once. + {info}Developers using Linux workstations can skip over the references to +PuTTY and Cygwin + {info} + + h3. Create and install a SSH key + + || 1 | Install PuTTY || + || 2a | Use ssh-keygen to create a SSH key. + {info} See [Authenticating By Public Key (OpenSSH)|http://www.networknewz.com/networknewz-10-20030707AuthenticatingbyPublicKeyOpenSSH.html] + for a good description on why and how to perform this task. + {info} || + || 2b | In Windows platform, use PuttyGen to create a SSH key (see Putty +help for details). + {info} + * Use "*SSH-2 DSA*" key type and *1024*-bit key size. + * Copy the content of the "Public key for pasting...." and save it to a +file named {{authorized_keys}} for later use. + * The private key saved by PuTTYGen can only be used in Putty +configuration. + {info} || + || 3 | {{pscp}} your SSH public key {{authorized_keys}} saved in last step +to {{\~/authorized_keys}} || + || 4 | Use PuTTY to login to people.apache.org || + || 5 | Create a {{\~\.ssh}} folder and change its file mode to 700. + || 6 | Move or append {{\~/authorized_keys}} to {{\~/.ssh/authorized_keys}} +and change its file mode to 600. + {info} + * Each public key in the {{authorized_keys}} spans only one line. + ** For example: "{{ssh-dss AAAAB3NzaC1kc3MAAA ..... agBmmfZ9uAbSqA== +dsa-key-20071107}}" + * '#' in the first column is a comment line. + {info} || + || 7 | Configure putty to use your private key and save the session + {info} + Specify your private key in the "Connection -> SSH -> Auth" category in +Putty configuration. + {info} + || + + h3. Create a PGP key + + || 1 | Install cgywin, including *Utils/gnupg* and *Net/openssh* packages, or install gpg from {{[http://www.gnupg.org/(en)/download/index.html] +}} || + || 2 | Generate a key-pair with {{$ gpg \--gen-key}} using default key kind +("DSA and Elgamal") and ELG-E keys size (2048). + {info} + * The generated keys are stored in $HOME/.gnupg or %HOME%\Application +Data\gnupg subdirectory. + * Save the content in this subdirectory to a safe media. This contains your +private key used to sign all the OpenJPA release materials. + {info} || + || 3 | Backup your cygwin home directory to another media || + || 4 | Add your public key to {{[https://svn.apache.org/repos/asf/openjpa/site/docs/KEYS] +}} and {{/www/www.apache.org/dist/openjpa/KEYS}}. See the commands describe +at the beginning of this KEYS file to perform this task. The gpg key-pair +is used to sign the published artifacts for the OpenJPA releases. || + || 5 | Following the instructions in [http://people.apache.org/~henkp/trust/] + and ask someone in the OpenJPA project to sign your public key. || + || 6 | Submit your public key to a key server. E.g. [http://pgp.surfnet.nl:11371/] + or [http://pgp.mit.edu/] +|| + + h3. Update Maven settings for our servers + + || 1 | Create a settings.xml under .m2 (in your Document and Settings +folder in Windows) || + | | {code:xml|title=settings.xml|borderStyle=solid} + + + + people.apache.org + $USERNAME + $PATH_TO_PRIVATE_KEY + 775 + 644 + + + + +{info} +*$PATH_TO_PRIVATE_KEY* is the path to the private key generated for ssh. +E.g. /home/yourLocalUserId/.ssh/id_dsa. +{info} | + + +### Expose a copy of known hosts to Maven + +
+ + + + +
1 From cygwin, ssh to people.apache.org, save the public key if +prompted, and exit
cygwin will save the known hosts to your *\~/.ssh* folder, but the +script cannot access it there (from Windows)
2 From cygwin (not Windows) create another *.ssh* folder at (?)
3 Copy the *known_hosts* file to the new *.ssh* folder
+ + +## Troubleshooting + + +### Space Character in Build Root Path + + + +
org.apache.openjpa.revision.properties|borderStyle=solid
+ revision.number=Type 'svnversion --help' for usage. + openjpa.version=1.0.1 + +
Description If there are spaces in the path to the build root +subdirectory, the maven task uses to generate the revision number for the +org.apache.openjpa.revision.properties yields incorrect data. For example: +
+ +
Solution Rename the path and remove all spaces.
+ + +### Merging local repository to remote repository in Cygwin/Windows + + + + +Problem symptom: + + $ find . -name m2-repository -not -path "*openjpa-project*" \ + -exec mvn -f "c:/tmp/maven-stage-plugin/pom.xml" stage:copy \ + -Dsource=file://{} +-Dtarget=scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + [INFO] + Scanning for projects... + [INFO] + Searching repository for plugin with prefix: 'stage'. + ........ + [INFO] + Downloading file from the source repository: + [INFO] + ------------------------------------------------------------------------ + [ERROR] + BUILD ERROR + [INFO] + ------------------------------------------------------------------------ + [INFO] + Error copying repository from +file://./openjpa-all/target/site/m2-repository to \ + +scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository + +* Quote and use the drive name in the path. +Problem symptom: + + $ find /cygdrive/c/OpenJPA.1.0.1.Release/1.0.1 -name m2-repository -not +-path "*openjpa-project*" \ + -exec mvn -f /cygwin/c/tmp/maven-stage-plugin/pom.xml stage:copy \ + -Dsource=file://{} +-Dtarget=scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + [INFO] + Scanning for projects... + [INFO] + Searching repository for plugin with prefix: 'stage'. + ........ + [INFO] + Downloading file from the source repository: + [INFO] + ------------------------------------------------------------------------ + [ERROR] + BUILD ERROR + [INFO] + ------------------------------------------------------------------------ + [INFO] + Error copying repository from +file:///cygdrive/c/OpenJPA.1.0.1.Release/1.0.1/openjpa-all/target/site/m2-repository +to + +scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository + + Embedded error: Could not read from file: +c:\cygdrive\c\OpenJPA.1.0.1.Release\1.0.1\openjpa-all\target\site\m2-repository + \cygdrive\c\OpenJPA.1.0.1.Release\1.0.1\openjpa-all\target\site\m2-repository +(Access is denied.) + +* Specify the people.apache.org user id in the target property. +Problem symptom: + + $ find "c:/OpenJPA.1.0.1.Release/1.0.1" -name m2-repository -not -path +"*openjpa-project*" \ + -exec mvn -f "c:/tmp/maven-stage-plugin/pom.xml" stage:copy + -Dsource=file://{} +-Dtarget=scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + [INFO] + Scanning for projects... + [INFO] + Searching repository for plugin with prefix: 'stage'. + [INFO] + +---------------------------------------------------------------------------- + ........ + [INFO] + Downloading file from the source repository: +/org/apache/openjpa/openjpa/maven-metadata.xml.sha1 + [INFO] + Downloading metadata from the target repository. + Password:: ********* + ........ + Password:: ********* + [INFO] + ------------------------------------------------------------------------ + [ERROR] + BUILD ERROR + [INFO] + ------------------------------------------------------------------------ + [INFO] + Error copying repository from +file://c:/OpenJPA.1.0.1.Release/1.0.1/openjpa-all/target/site/m2-repository +to \ + +scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository + +
Description The "maven-stage-plugin" is very sensitive to the +parameters being passed to it, i.e. the source and target URL properties. +When this plugin is used under Cygwin, make sure the following practices +are used: +
+ +{note}For example: + + find "c:/OpenJPA.1.0.1.Release/1.0.1" -name m2-repository -not -path +"*openjpa-project*" \ + -exec mvn -f "c:/tmp/maven-stage-plugin/pom.xml" stage:copy \ + -Dsource=file://{} \ + +-Dtarget=scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + + +### Cygwin/Windows File Path + +
Solution As recommended in the descriptions. +
+ + +* Continue to use the Windows form of path name, e.g. *C:\a\b\c* +* Use *'/'* instead of *'\'* character as file separator, e.g. +*C:/a/b/c* +* Quote all path name using *'"'* character, e.g. "*C:/a/b/c*" +* Avoid using space characters in path name, e.g. +"*C:/OpenJPA.Release/1.0.1*" + || +
Description For Cygwin/Windows user: file and folder path names using +drive identifier (e.g. *C:\OpenJPA Release\1.0.1\* ) in commands can be +expressed as */cygwin/c/OpenJPA Release/1.0.1/*. This form of path name +specification may have inconsistent and undesirable behaviors.
Solution Consistently use the following naming conventions: +
+ + +### "Too many unapproved licenses:" + + + +1. Eclipse control files, .classpath, .project +1. User created log files || + +1. Don't use Eclipse's svn plugin to "Check out" files to a Eclipse project. +Simply use the svn command, as described in the release instructions. +1. Don't create, directly or indirectly, any files under the release build +tree. + || +
Description Encounter the "Too many unapproved licenses:" message +while running the "license-verify-profile" profile in "{{mvn deploy +site...}}" step. This is caused by extra artifacts in the build tree that +the license verification plugin does not recognized. Examples of these +artifacts are: +
Solution Avoid the followings: +
+ + +## Resources + +* Apache Apache [Release FAQ](http://www.apache.org/dev/release.html) +* [Signing Releases](http://apache.org/dev/release-signing.html) +* [Wendy's notes on Release Signing](http://wiki.wsmoak.net/cgi-bin/wiki.pl?ReleaseSigning) +* Apache [Mirroring Guidelines](http://apache.org/dev/mirrors.html) +* Struts [Release Instructions](http://cwiki.apache.org/WW/creating-and-signing-a-distribution.html) + (upon which these instructions are based) +

+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/releasing-openjpa-1.2.x-(old-scp-steps).html ============================================================================== --- websites/staging/openjpa/trunk/content/releasing-openjpa-1.2.x-(old-scp-steps).html (added) +++ websites/staging/openjpa/trunk/content/releasing-openjpa-1.2.x-(old-scp-steps).html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,851 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

{excerpt:hidden=true}Instructions for creating an official OpenJPA +release{excerpt} +

+

Releasing OpenJPA

+

These instructions guide the release manager through the steps of making an +official OpenJPA release.

+

Work in progress. Times are just guesses and some information may be +missing.

+

+

Prerequisites

+

// TODO MDD Still may need some work...

+
    +
  1. You should read the OpenJPA Release Policy + to decide on the name of the new release, based on the content.
  2. +
  3. You should read the Apache Release FAQ
  4. +
  5. You must have shell access to people.apache.org
  6. +
  7. You must have the following utilities installed on your local machine and +available in your path:
  8. +
  9. +
      +
    • Java SE 5.0 (for 1.2.x and 1.3.x) or Java SE 6 (for 2.0.x) (prefer Sun +JDK over IBM JDK)
    • +
    +
  10. +
  11. +
      +
    • Maven 2 + (at least version 2.0.10)
    • +
    +
  12. +
  13. +
      +
    • ssh + (cygwin covers this on Windows)
    • +
    +
  14. +
  15. +
      +
    • gnupg + (cygwin covers this on Windows)
    • +
    +
  16. +
  17. For Windows users, install Cygwin + in addition to the above utilities
  18. +
  19. +
      +
    • Make sure the Net/openssh and Utils/gnupg packages are installed that +come with Cygwin installation.
    • +
    +
  20. +
+

+

Tasks that need to be performed for each release

+

The example below uses 1.2.x as the new branch and 1.2.0 as the new +release.

+
    +
  • Cleanup JIRA so the Fix Version in issues resolved since the last release +includes this release version correctly.
  • +
  • Update the files in openjpa-project - + Update the CHANGES.txt and RELEASE_NOTES.html based on the Text and HTML +release reports from JIRA. + Review and update BUILDING.txt if needed.
  • +
  • Stage any Roadmap or Release landing pages on the wiki.
  • +
  • Use "mvn rat:check" to verify the source has the required headers before +trying to release.
  • +
  • +

    Perform a full build (IANAL + tests) and TCK runs before trying to +release.

    +
  • +
  • +

    set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=256m (especially for Java SE 6)

    +
  • +
  • +

    Use Sun JDK (if possible) +** If using IBM JDK, then also set the system property test.jvm.arguments +to -Xdump:none (Avoids OOM heap dumps on selected tests. These extra files +throw off the rat:check processing.) For example, +{code:none} +mvn -Dtest.jvm.arguments="-Xdump:none" ...

    +
      +
    • On Windows, use a cygwin window (vs a standard DOS prompt window) for the +Release processing.|| +|| Monday, 12:01 \ | ??? For new major releases (like 2.0.0) create a +sub-branch off of the parent branch from which to make the release. +Releasing from a branch will allow any cosmetic changes that need to be +made for the release to be approved to be done without preventing other +more disruptive advances in the trunk from potentially causing problems +with the release. A branch can be made by running: \ +{code:none} +$ mvn release:branch -DbranchName=1.2.x
    • +
    +
  • +
  • +

    Do not use Eclipse to do the checkout. The extra dot (.) files created +by Eclipse throws off the rat:check processing. +{code:none} $ svn checkout +https://svn.apache.org/repos/asf/openjpa/branches/1.2.x 1.2.x +$ cd 1.2.x {code}||

    +
  • +
+ + + +{code:none} $ svn commit -m "updating text files for 1.2.0 release" + + || Monday, 12:11 \\ | Do a dry run of the release plugin. The dry run will +not commit any changes back to SVN and gives you the opportunity to verify +that the release process will complete as expected. You will be prompted +for the following information : + # The new release number (default 1.2.0) + # The SCM tag (default apache-openjpa-1.2.0) *this should be changed to +just 1.2.0 + # The new development version (default 1.2.1) + # _optional_ if you have not specified a GPG passphrase in settings.xml you +will be prompted for it. + {code:none}$ mvn -Prelease,docbook-profile release:prepare -DdryRun=true + + [INFO] + [release:prepare] + [INFO] + Verifying that there are no local modifications... + [INFO] + Executing: svn --non-interactive status + [INFO] + Working directory: /home/mikedd/workspaces/temp/jpadev/branches/1.0.x + [INFO] + Checking dependencies and plugins for snapshots ... + What is the release version for "OpenJPA"? +(org.apache.openjpa:openjpa-parent) 1.2.0: : + What is SCM release tag or label for "OpenJPA"? +(org.apache.openjpa:openjpa-parent) openjpa-parent-1.2.0: : 1.2.0 + What is the new development version for "OpenJPA"? +(org.apache.openjpa:openjpa-parent) 1.2.1-SNAPSHOT: : + {code} || + || Monday, 12:30 \\ | Validate that the release process completed as +expected. The release plugin will create pom.xml.tag files which contain +the changes that would have been committed to SVN. The only differences +between pom.xml.tag and it's corresponding pom.xml file should be the +version number. If other formatting changes have been made you should +rollback the release and commit the changes manually. + {code:none}$ mvn -Prelease,docbook-profile release:rollback + # make changes + $ svn commit -m "fixing formatting for 1.2.0 release" {code} || + || Monday, 12:31 \\ | Assuming the .tag files look OK you may proceed and +do any other validation you feel necessary. The following list may be +helpful + * verify signatures [Verifying release signatures] + * run examples. [Running OpenJPA Examples] + * if you have access to the TCK, run it [Running the TCK] +|| + || Monday, 12:52 \\ | Prepare the release. You'll be prompted for the +version information and optionally your GPG passphrase again. + {code:none} $ mvn -Dmaven.test.execute=false -Prelease release:prepare +{code} + For the 2.0.x code, different steps are required as there are problems with +the maven-jar-plugin and maven-release-plugin when using the test-jar goal. + See [http://jira.codehaus.org/browse/MJAR-68] + and [http://jira.codehaus.org/browse/MRELEASE-285] +. + {code:none} $ mvn -DskipTests=true -Prelease release:prepare +-DpreparationGoals="clean install" + $ mvn clean install -Dtest=false -DfailIfNoTests=false +-Dmaven.test.execute=false + $ mvn -DskipTests=true -Prelease release:prepare -DpreparationGoals="clean +install" {code} || + || Monday, 13:12 \\ | Check release.properties and make sure that the scm +properties have the right version. Sometimes the scm location can be the +previous version not the next version. For example if the new version is +1.2.2 you shouldn't see 1.2.1 in the file. \\ + {note}Backup (zip or tar) your local directory in case you need to rollback +the release.{note} || + || Monday, 13:15 \\ | Perform the release. This step will create a maven +repository for use in testing on +people.apache.org:/home/userName/public_html/openjpa/newVersion. You will +may be prompted for your people.apache.org password several times if you +have not added a ssh key to .authorized_keys. [#One time setup#people.apache.org] +. + {code:none}$ mvn -Prelease,docbook-profile release:perform {code} + For the 2.0.x code, you'll need additional parameters, due to the test-jar +issues. + {code:none}$ mvn -Prelease,docbook-profile,test-derby release:perform +{code} + {info} If your local OS userid doesn't match your Apache userid, then +you'll have to set -Duser.name= on the cmdline and/or +update your release profile in settings.xml {info} || + || Monday, 13:40 \\ | Create and upload the site. This step also uploads +data to people.apache.org. + For 1.x releases: + {code:none} + $ cd target/checkout + $ mvn -Prelease,docbook-profile site site:deploy {code} + {warning} *For 2.x releases*, this step is not needed, as the +maven-release-plugin is configured with goals "deploy site site:deploy" +{warning} || + || Monday, 13:41 \\ | Unzip the binary archive the staging site directory + {code:none} + # ssh to people.apache.org + $ cd ~/public_html/openjpa/${pom.version}/staging-site + $ unzip -qq +apache-openjpa/downloads/apache-openjpa-${pom.version}-binary.zip + +Verify that the HTML links in staging-site/index.html are correct (usually +only the downloads and docs links need to be updated to be prefixed with +apache-openjpa/) + +See [http://people.apache.org/~henkp/repo/faq.html](http://people.apache.org/~henkp/repo/faq.html) + and [http://www.apache.org/dev/release-signing.html#openpgp-ascii-detach-sig] + {note} + +{code:none} $ mvn stage:copy +-Dsource="http://people.apache.org/~mikedd/openjpa/1.2.0/staging-repo" \ + +-Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" +\ + -Dversion=1.2.0 \ + -DtargetRepositoryId=apache.releases + + After the stage plugin completes it's a good idea to check the permissions +on the file system. + +$ ssh people.apache.org +$ cd +/www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/openjpa/ +$ ls -l openjpa-examples/1.2.0 + +1. if you see something like the following you probably need to change the +permissions. +1. *-rw-r--r--* 1 mikedd apcvs 59162 Jul 23 09:34 +openjpa-examples-1.2.0-javadoc.jar + +$ for file in `find +/www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/openjpa/ +-type d -iname '1.2.0'`\ + do \ + chmod -R g+w ${file} \ + done + +$ ls -l openjpa-examples/1.2.0 + +1. Now it should look something like this +1. *-rw-rw--r--* 1 mikedd apcvs 59162 Jul 23 09:34 +openjpa-examples-1.2.0-javadoc.jar + + || Thursday, 14:00 \\ | Copy build artifacts to the openjpa/builds location +on people.apache.org. + {code:none}# ssh to people.apache.org + $ cp -r ~/public_html/openjpa/1.2.0/staging-site/ +/www/openjpa.apache.org/builds/1.2.0 + $ chmod -R g+w /www/openjpa.apache.org/builds/1.2.0 + # verify that /www/openjpa.apache.org/builds/1.2.0/docs/manual is populated +correctly by comparing it to a previous release. + $ rm /www/openjpa.apache.org/docs/latest + $ ln -fvs ../builds/1.2.0/apache-openjpa/docs/ +/www/openjpa.apache.org/docs/latest {code} || + || Thursday, 14:10 \\ | Copy the distribution files to dist on +people.apache.org. + {code:none} + # ssh to people.apache.org + + # verify that md5 and sha1 files were generated for the download artifacts + ls /www/openjpa.apache.org/builds/1.2.0/apache-openjpa/downloads/*.md5 + ls /www/openjpa.apache.org/builds/1.2.0/apache-openjpa/downloads/*.sha1 + + # if no md5 and sha1 files are present, generate them. + # Alternatively you can copy the artifacts from the staging-repo directory +the checksums are generated there. + for file in `ls . ` + do + md5 -q ${file} > ${file}.md5 + sha1 -q ${file} > ${file}.sha1 + done + + mkdir /www/www.apache.org/dist/openjpa/1.2.0 + cp -r /www/openjpa.apache.org/builds/1.2.0/apache-openjpa/downloads/* +/www/www.apache.org/dist/openjpa/1.2.0 + chgrp -R openjpa /www/www.apache.org/dist/openjpa/1.2.0 + chmod -R g+w /www/www.apache.org/dist/openjpa/1.2.0 + + # remove the previous version from /dist. Ie if you're publishing 1.2.1 you +would remove 1.2.0. + # For this example we wouldn't remove anything, but for the next release +(1.2.1) we'd do the following : + $ rm -Rf /www/openjpa.apache.org/dist/openjpa/1.2.0 + +
+ + + + + + +
Thursday, 14:15 Update the [JIRA versions ](-https://issues.apache.org/jira/secure/project/manageversions.jspa?pid=12310351.html) + page to mark the version as "released", and set the date to the date that +the release was approved. You may also need to make a new release entry for +the subsequent release.
Friday, 14:15 After the mirrors have had time to update (24 hours to +be on the safe side) update the [Downloads](downloads.html) + and [Documentation] + pages with the new release
Friday, 14:15 Make a [news announcement](http://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=openjpa) + on the OpenJPA wiki. {info}Once the news item is made, it won't show up on +the [front pagehttp://cwiki.apache.org/openjpa/] + unless you make some minor edit to the containing page (e.g., adding a +newline somewhere).{info}
Friday, 14:15 Make an announcement about the release on the [mailto:users@openjpa.apache.org](mailto:users@openjpa.apache.org.html) + list (and, for major releases, on the [mailto:announce@apache.org] + list as per [the Apache Announcement Mailing Lists pagehttp://www.apache.org/foundation/mailinglists.html#foundation-announce] +). The announcement might look something like [thishttp://www.nabble.com/-ANNOUNCE--Apache-OpenJPA-1.0.0-released-p12397604.html] +.
Friday, 14:20 Make an announcement for the [freshmeat.net OpenJPA project](http://freshmeat.net/projects/openjpa/) + (optional)
Friday, 14:30 Have a beer and enjoy your weekend while the world's +grateful programmers revel in yet another high-quality release of Apache +OpenJPA!
+ + +## One time setup + +These setup steps only need to be performed on a particular machine once. +{info}Developers using Linux workstations can skip over the references to +Cygwin. If using Windows, install cygwin, including *Utils/gnupg* and +*Net/openssh* packages. +{info} + + +### Create and install a SSH key + + + + +{note}Follow the latest steps and guides on the ASF website at [http://www.apache.org/dev/openpgp.html#generate-key](http://www.apache.org/dev/openpgp.html#generate-key) + as you need to disable using SHA1 and new keys should be 4096 bits.{note} +{code:none} +$ ssh-keygen -t dsa + + * Program defaults should be fine. No passphrase is required for the ssh +key generation. The keys will be saved in ~/.ssh/id_dsa (private) and +~/.ssh/id_dsa.pub (public). + {info} See [Authenticating By Public Key (OpenSSH)|http://www.networknewz.com/networknewz-10-20030707AuthenticatingbyPublicKeyOpenSSH.html] + for a good description on why and how to perform this task. + {info} || + || 3 | {{scp}} your SSH public key ~/.ssh/id_dsa.pub created in last step +to ~/id_dsa.pub on people.apache.org. + {code:none} + $ cd ~/.ssh + $ scp id_dsa.pub @people.apache.org:id_dsa.pub + $ You will be prompted for your password. + +
1 Open a shell window. If using Windows, open a cygwin window.
2 Use ssh-keygen to create an SSH key. +
+ +{code:none} +$ cd ~ +$ ssh @people.apache.org + + * At this point, you will still be prompted for your password. || + || 5 | Create a ~/.ssh folder in your home directory on people.apache.org +and change its file mode to 700. + {code:none} + $ mkdir ~/.ssh + $ chmod 700 ~/.ssh + +
4 Use ssh to login to people.apache.org +
+ +{code:none} +$ mv ~/id_dsa.pub ~/.ssh/authorized_keys +$ chmod 600 ~/.ssh/authorized_keys + + {info} + * Each public key in the {{authorized_keys}} spans only one line. + ** For example: "{{ssh-dss AAAAB3NzaC1kc3MAAA ..... agBmmfZ9uAbSqA== +dsa-key-20071107}}" + * '#' in the first column is a comment line. + {info} || + || 7 | Exit out of this ssh session. || + || 8 | Start a new ssh session. No login should be required this time due +to the private ssh key on your local box matching up with the public ssh +key in your home directory (~/.ssh). + {code:none} + $ ssh @people.apache.org + +{info} +If you are still prompted for a password, then you have not set up the ssh +keys properly. Review the steps above and ensure that all of the steps +were followed properly. Or, maybe the instructions are still not quite +right and they still need some adjusting. In that case, please update the +instructions accordingly. :-) +{info} +
6 Move or append ~/id_dsa.pub to ~/.ssh/authorized_keys and change its +file mode to 600. +
+ +
+ + +### Create a GPG key + + + + +{code:none} +$ gpg --gen-key + + * The program's default values should be fine. For the "Real Name" enter +your full name (ie. Stan Programmer). For the "e-mail address" enter your +apache address (ie. sprogrammer@apache.org). You will also be required to +enter a "passphrase" for the GPG key generation. Keep track of this as you +will need this for the Release processing. + {info} + * The generated keys are stored in $HOME/.gnupg or %HOME%\Application +Data\gnupg subdirectory. + * Save the content in this subdirectory to a safe media. This contains your +private key used to sign all the OpenJPA release materials. + {info} || + || 3 | Backup your cygwin home directory to another media || + || 4 | Add your public key to {{[https://svn.apache.org/repos/asf/openjpa/site/docs/KEYS] +}} and {{http://www.apache.org/dist/openjpa/KEYS}}. See the commands +describe at the beginning of this KEYS file to perform this task. The gpg +key-pair is used to sign the published artifacts for the OpenJPA releases. + {code:none} + $ gpg --list-sigs && gpg --armor -- export + +{info}The {{[https://svn.apache.org/repos/asf/openjpa/site/docs/KEYS](https://svn.apache.org/repos/asf/openjpa/site/docs/KEYS) +}} file is updated via normal svn commit procedures. How the +*http://www.apache.org/dist/openjpa/KEYS* file gets updated is still a +mystery to me... +{info} || +
1 Open a shell window. If using Windows, open a cygwin window.
2 Generate a key-pair with gpg, using default key kind ("DSA and +Elgamal") and ELG-E keys size (2048). +
+ + +
5 Following the instructions in [http://people.apache.org/~henkp/trust/](http://people.apache.org/~henkp/trust/) + and ask someone in the OpenJPA project to sign your public key.
6 Submit your public key to a key server. E.g. [http://pgp.surfnet.nl:11371/](http://pgp.surfnet.nl:11371/) + or [http://pgp.mit.edu/] +
+ + +### Update Maven settings for our servers + + + + + + + + people.apache.org + $USERNAME + $PATH_TO_PRIVATE_KEY + 775 + 644 + + + + + {info} + * {{$USERNAME}} is the remote username on people.apache.org, not your local +userid. + * {{$PATH_TO_PRIVATE_KEY}} is the path to the private key generated for +ssh. E.g. /home/yourLocalUserId/.ssh/id_dsa. For Windows' cygwin users, +you will need to enter the full cygwin path: +/cygdrive/c/cygwin/home/yourLocalUserId/.ssh/id_dsa. + * You can also enter a PGP passphrase stanza: ... + If you don't use this in your settings.xml file, then you will be prompted +for it during the Release processing. + {info} | + + h3. Expose a copy of known hosts to Maven + {info} + Is this step even necessary? Due to the question mark below without an +explanation of the new location for this alternate .ssh folder, I never +performed these steps. And, the release process still seemed to work okay +for me... The next person to use these instructions can verify whether any +tricks had to be played with the .ssh folders... + {info} + + || 1 | From cygwin, ssh to people.apache.org, save the public key if +prompted, and exit || + | | cygwin will save the known hosts to your {{\~/.ssh}} folder, but the +script cannot access it there (from Windows) | + || 2 | From cygwin (not Windows) create another {{.ssh}} folder at (?) || + || 3 | Copy the {{known_hosts}} file to the new {{.ssh}} folder || + + h2. Troubleshooting + + h3. Space Character in Build Root Path + + || Description | If there are spaces in the path to the build root +subdirectory, the maven task uses to generate the revision number for the +org.apache.openjpa.revision.properties yields incorrect data. For example: + {code:title=org.apache.openjpa.revision.properties|borderStyle=solid} + revision.number=Type 'svnversion --help' for usage. + openjpa.version=1.0.1 + +
1 Create a settings.xml under .m2 (in your Document and Settings +folder in Windows)
{code:xmltitle=settings.xmlborderStyle=solid} +
+ +
Solution Rename the path and remove all spaces.
+ + +### Merging local repository to remote repository in Cygwin/Windows + + + + +Problem symptom: + + $ find . -name m2-repository -not -path "*openjpa-project*" \ + -exec mvn -f "c:/tmp/maven-stage-plugin/pom.xml" stage:copy \ + -Dsource=file://{} +-Dtarget=scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + [INFO] + Scanning for projects... + [INFO] + Searching repository for plugin with prefix: 'stage'. + ........ + [INFO] + Downloading file from the source repository: + [INFO] + ------------------------------------------------------------------------ + [ERROR] + BUILD ERROR + [INFO] + ------------------------------------------------------------------------ + [INFO] + Error copying repository from +file://./openjpa-all/target/site/m2-repository to \ + +scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository + +* Quote and use the drive name in the path. +Problem symptom: + + $ find /cygdrive/c/OpenJPA.1.0.1.Release/1.0.1 -name m2-repository -not +-path "*openjpa-project*" \ + -exec mvn -f /cygwin/c/tmp/maven-stage-plugin/pom.xml stage:copy \ + -Dsource=file://{} +-Dtarget=scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + [INFO] + Scanning for projects... + [INFO] + Searching repository for plugin with prefix: 'stage'. + ........ + [INFO] + Downloading file from the source repository: + [INFO] + ------------------------------------------------------------------------ + [ERROR] + BUILD ERROR + [INFO] + ------------------------------------------------------------------------ + [INFO] + Error copying repository from +file:///cygdrive/c/OpenJPA.1.0.1.Release/1.0.1/openjpa-all/target/site/m2-repository +to + +scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository + + Embedded error: Could not read from file: +c:\cygdrive\c\OpenJPA.1.0.1.Release\1.0.1\openjpa-all\target\site\m2-repository + \cygdrive\c\OpenJPA.1.0.1.Release\1.0.1\openjpa-all\target\site\m2-repository +(Access is denied.) + +* Specify the people.apache.org user id in the target property. +Problem symptom: + + $ find "c:/OpenJPA.1.0.1.Release/1.0.1" -name m2-repository -not -path +"*openjpa-project*" \ + -exec mvn -f "c:/tmp/maven-stage-plugin/pom.xml" stage:copy + -Dsource=file://{} +-Dtarget=scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + [INFO] + Scanning for projects... + [INFO] + Searching repository for plugin with prefix: 'stage'. + [INFO] + +---------------------------------------------------------------------------- + ........ + [INFO] + Downloading file from the source repository: +/org/apache/openjpa/openjpa/maven-metadata.xml.sha1 + [INFO] + Downloading metadata from the target repository. + Password:: ********* + ........ + Password:: ********* + [INFO] + ------------------------------------------------------------------------ + [ERROR] + BUILD ERROR + [INFO] + ------------------------------------------------------------------------ + [INFO] + Error copying repository from +file://c:/OpenJPA.1.0.1.Release/1.0.1/openjpa-all/target/site/m2-repository +to \ + +scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository + +
Description The "maven-stage-plugin" is very sensitive to the +parameters being passed to it, i.e. the source and target URL properties. +When this plugin is used under Cygwin, make sure the following practices +are used: +
+ +{note}For example: + + find "c:/OpenJPA.1.0.1.Release/1.0.1" -name m2-repository -not -path +"*openjpa-project*" \ + -exec mvn -f "c:/tmp/maven-stage-plugin/pom.xml" stage:copy \ + -Dsource=file://{} \ + +-Dtarget=scp://allee8285@people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository +\ + -Dversion=1.0.1 \; + + +### Cygwin/Windows File Path + +
Solution As recommended in the descriptions. +
+ + +* Continue to use the Windows form of path name, e.g. *C:\a\b\c* +* Use *'/'* instead of *'\'* character as file separator, e.g. +*C:/a/b/c* +* Quote all path name using *'"'* character, e.g. "*C:/a/b/c*" +* Avoid using space characters in path name, e.g. +"*C:/OpenJPA.Release/1.0.1*" + || +
Description For Cygwin/Windows user: file and folder path names using +drive identifier (e.g. *C:\OpenJPA Release\1.0.1\* ) in commands can be +expressed as */cygwin/c/OpenJPA Release/1.0.1/*. This form of path name +specification may have inconsistent and undesirable behaviors.
Solution Consistently use the following naming conventions: +
+ + +### "Too many unapproved licenses:" + + + +1. Eclipse control files, .classpath, .project +1. User created log files || + +1. Don't use Eclipse's svn plugin to "Check out" files to a Eclipse project. +Simply use the svn command, as described in the release instructions. +1. Don't create, directly or indirectly, any files under the release build +tree. +1. Don't use the IBM JDK. By default, the IBM JDK will create heap dumps +when hitting the OOM condition in some of our tests. These extra files +throw off the rat:check processing. If you must use the IBM JDK, then also +set MAVEN_OPTS=-Xdump:none. + || +
Description Encounter the "Too many unapproved licenses:" message +while running the "license-verify-profile" profile in "{{mvn deploy +site...}}" step. This is caused by extra artifacts in the build tree that +the license verification plugin does not recognized. Examples of these +artifacts are: +
Solution Avoid the followings: +
+ + +## Resources + +* Apache Apache [Release FAQ](http://www.apache.org/dev/release.html) +* [Signing Releases](http://apache.org/dev/release-signing.html) +* [Wendy's notes on Release Signing](http://wiki.wsmoak.net/cgi-bin/wiki.pl?ReleaseSigning) +* Apache [Mirroring Guidelines](http://apache.org/dev/mirrors.html) +* Struts [Release Instructions](http://cwiki.apache.org/WW/creating-and-signing-a-distribution.html) + (upon which these instructions are based) +
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10209-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:44 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B3638E103 for ; Sun, 9 Dec 2012 13:15:43 +0000 (UTC) Received: (qmail 87577 invoked by uid 500); 9 Dec 2012 13:15:43 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87534 invoked by uid 500); 9 Dec 2012 13:15:43 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 87515 invoked by uid 99); 9 Dec 2012 13:15:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,NORMAL_HTTP_TO_IP,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:23 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id D32C22388CA4 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [26/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.D32C22388CA4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/openjpaeclipsetoolingdevandbuild.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpaeclipsetoolingdevandbuild.html (added) +++ websites/staging/openjpa/trunk/content/openjpaeclipsetoolingdevandbuild.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA Eclipse Tooling

+

+

How to develop on and build the OpenJPA Eclipse Tooling

+

+

IDE

+
    +
  1. get Eclipse with PDE
  2. +
  3. check out the https://svn.apache.org/repos/asf/openjpa/devtools/trunk/ +(not just the individual project directories, but really the trunk, so that +you also have the pom.xml at the root...). If you use Subversive (or +Subclipse) from within Eclipse to do the check-out, you'll have to remove +the project from the workspace again after checkout, without delete on +disk, so that you can import the individual projects in the next step.
  4. +
  5. open the individual projects in Eclipse +(org.apache.openjpa.eclipse.feature, org.apache.openjpa, +org.apache.openjpa.eclipse, openjpa-eclipse-testproject, +org.apache.openjpa.eclipse.tests, org.apache.openjpa.eclipse.site) - +requires correct .project and .classpath files currently missing from +SVN
  6. +
+

+

Headless Maven-based build (without requiring Eclipse IDE)

+
    +
  1. download Maven 3.0 from http://maven.apache.org/download.html. Please +note and make sure you do get & use Maven 3.0 (latest at the time of +writing this Maven 3.0-alpha-6), and not just a Maven 2.2.1, which will NOT +WORK.
  2. +
  3. check-out the https://svn.apache.org/repos/asf/openjpa/devtools/trunk/ +(not just the individual project directories, but really the trunk, so that +you also have the pom.xml at the root...)
  4. +
  5. do a "mvn install" at the root. This will be VERY SLOW at first +invocation, as it downloads LOT'S (really; including many Eclipse +artefacts) into your local maven repo. Subsequent calls will as usual be +much faster.
  6. +
  7. in the directory "org.apache.openjpa.eclipse.site/target/site" there will +be a completely ready Eclipse Update Site (which is what gets be pushed to +some HTTP server and the URL of which is given to end-users to install the +whole thing)
  8. +
+

This should ideally be set-up on a public build server, e.g. on the +http://hudson.zones.apache.org/hudson/ ?

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentrader.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentrader.html (added) +++ websites/staging/openjpa/trunk/content/opentrader.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

h1. OpenTrader: a transactional, web application with Google Web Toolkit, +OpenJPA/Slice on Tomcat

+

OpenTrader-login.gif

+

OpenTrader is a sample web application to demonstrate integration of Google +Web Toolkit (GWT) and OpenJPA running in Tomcat Servlet Container. These +pages describe various aspects of this end-to-end application. The +following sections are fairly independent of each other and can be followed +as such based on your interest.

+ +

GWT takes a position that is a significantly unique among the multitude of +frameworks available to build a browser based client. GWT framework is +based on several key concepts:

+
    +
  • an asynchronous RPC protocol for communication between web client and +server. Such asynchronous RPC is popularized by AJAX (Asynchronous +JavaScript and XML) since last several years.
  • +
  • a cross-compiler that converts Java to JavaScript. This is the most +critical component in the framework as it allows the client be written +completely in Java. Besides adding a comfort layer for Java developers, the +cross-compiler solves one of the most complex issue of browser based +clients namely cross-browser compatibility. The cross-compiler generates +separate JavaScript targeted to prominent browsers and the framework knows +to activate the appropriate JavaScript based on the particular browser a +client is using.
  • +
  • a library of interactive visual widgets such as dialog boxes, +combo-boxes, tables etc. This Java based library realizes the widget as the +elements of a Document Object Model (DOM) for a browser to render them in +HTML. For example, an instance of com.google.gwt.user.client.ui.FlexTable +urns into a <table> in the +displayed HTML page by the framework. The widget library not only provides +rendering support, it also comes with a event dispatching model for the +client application to handle the user interaction.
  • +
+

OpenTrader - the sample example described in these pages - demonstrates how +to develop a GWT client for a transactional, server application based on +Java Persistence API (JPA). This example is somewhat more involved than a +typical AddressBook example in terms of the complexity of the domain model, +the transactional functions of the server as well as the interaction +between multiple widgets in the client. Also the sample application covers +a realistic use case where the core server application is defined +independent of both GWT and JPA -- and then demonstrates how these two +technologies are used to implement an end-to-end service running inside a +Tomcat Servlet Container.

+

Follow the steps to view OpenTrader source code, build the application, +deploy it in your favorite application container and run it in your +favorite browser.

+

+

1. Get the source code

+

OpenTrader source code is available as one of the OpenJPA examples. +Checkout the source files in a directory.

+

$ svn checkout https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-examples/opentrader

+

The source tree comes with

+
    +
  • Ant build script: build.xml and build.properties
  • +
  • Java source code for OpenTrader application under src/main/java
  • +
  • GWT module descriptor : OpenTrader.gwt.xml under src/main/java/org/apache/openjpa/trader
  • +
  • Persistence descriptor : persistence.xml under src/main/resources/META-INF
  • +
  • web descriptor : web.xml under src/main/resources/WEB-INF
  • +
  • cascading style sheet : OpenTrader.css under src/main/resources/css
  • +
+

+

2. Build

+

To build OpenTrader you will require following other libraries.

+
    +
  • Google Web Toolkit: We have built it with GWT version 2.0.4 which +can be downloaded from here +.
  • +
  • cobogw widget library: Provides rounded panel not using them seems +to be too un-cool. Download version 1.3.1 from here +.
  • +
  • and, of course, OpenJPA libraries: OpenJPA now comes with all its +dependencies neatly packaged in a single jar including the JPA API. +Download from this site +.
  • +
+

2.1 Configure build environment

+

Edit build.properties to point to the dependent libraries you +have downloaded. The file contains the instructions as comments.

+

2.2 Compile with Ant

+

Compile the application. Compilation involves three separate +compilation process. First the plain old javac compilation. Followed by +GWT cross-compiler that translates Java code into JavaScript. And finally +OpenJPA compilation that adds few bytecodes to the persistent classes to +manage their persistent behavior (which is also known as bytecode +enhancement).

+
$ ant compile
+
+ + +

GWT Compiler takes ages. Even though it only compiles for a single +browser (FireFox). This is controlled by the following directives in the +module descriptor OpenTrader.gwt.xml

+
<set-property name="user.agent" value="gecko1_8"/>
+
+ + +

+

3. Run

+

You can run either in hosted mode - an environment provided by GWT to +run within a Jetty container - or in a proper servlet container such as +Tomcat, Geronimo or GlassFish or even heavy-duty ones such as WebSphere or +Weblogic. In either case, you have to configure the persistence.xml +found under src/main/resources/META-INF. This descriptor specifies the +database used by OpenTrader.

+
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
+<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/exchange"/>
+<property name="openjpa.ConnectionUserName" value="whoami"/>
+<property name="openjpa.ConnectionPassword" value="secret"/>
+
+ + +

Also edit the jdbc.driver in build.properties for the +driver/database you have selected.

+

Now, for hosted mode, simply fire Ant as

+
 $ ant devmode
+
+ + +

This should again take a very long time and pop open a horrible looking +Swing console titled GWT Development Mode. Go to Development Mode tab +and click Launch Default Browser. On my FireFox browser, that opens up +the page +http://127.0.0.1:8888/OpenTrader.html?gwt.codesvr=127.0.0.1:9997. If +all goes well, at this point your browser will prompt you with a welcome +dialog box

+

OpenTrader-login.gif

+

Once you have entered OpenTrader, the browser application looks like

+

OpenTrader-screenshot.gif

+

In this page, you can place a trade offer to sell or buy some stocks. To +really commit a trade you will need a matching offer. Now as a trader offer +can only match to another trader's offer, you need to open another browser +page with a different name. In FireFox, the tab will show the Trader name. +Now if one Trader makes an offer that match another Trader's offer, then +clicking the Sell or Buy button will commit the trade and will +appear on the Trading History Window. Also notice the Server Log window. +That will display SQL issued for every action by the server. You will also +notice SQL being logged even if you are not pressing any buttons. Thatis +because the Market Data Panel (the one in th etop-left corner) is +refreshing the market prices for the Stocks by a periodic call to the +server. As the stock prices change, that change is reflected on the +gain/loss column of the waiting trade offers. All this dynamic partial +update occurs in the same browser page -- that is what GWT offers.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentraderarchitecture.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentraderarchitecture.html (added) +++ websites/staging/openjpa/trunk/content/opentraderarchitecture.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

State the design goals
+Describe the architecture

+

One of the good practices of software development is to start with a set of +basic requirements and then express these requirements more formally +through a set the interfaces. So let us begin by listing the requirements +for OpenTrader sample.
+

+
    +
  • a trader can offer to buy or sell stocks at a certain price
  • +
  • an offer to sell(buy) a stock can be matched with matching offer(s) to +buy(sell)
  • +
  • a pair of matching buy/sell offer can be committed as a trade
  • +
+

Besides the functional requirements, let us define some non-functional +goals

+
    +
  • the trader will access the service from a browser
  • +
  • the service will use a relational database to record the committed trades
  • +
+

and then some purely technical goals

+
    +
  • the browser-based client will be implemented using Google Web Toolkit
  • +
  • the service will be implemented using Java Persistence API
  • +
+

GWT takes a position that is a significantly unique among the multitude of +frameworks available to build a browser based client. GWT framework is +based on several key concepts:

+
    +
  • an asynchronous RPC protocol for communication between web client and +server. Such asynchronous RPC is popularized by AJAX (Asynchronous +JavaScript and XML) since last several years.
  • +
  • a cross-compiler that converts Java to JavaScript. This is the most +critical component in the framework as it allows the client be written +completely in Java. Besides adding a comfort layer for Java developers, the +cross-compiler solves one of the most complex issue of browser based +clients namely cross-browser compatibility. The cross-compiler generates +separate JavaScript targeted to prominent browsers and the framework knows +to activate the appropriate JavaScript based on the particular browser a +client is using.
  • +
  • a library of interactive visual widgets such as dialog boxes, +combo-boxes, tables etc. This Java based library realizes the widget as the +elements of a Document Object Model (DOM) for a browser to render them in +HTML. For example, an instance of com.google.gwt.user.client.ui.FlexTable +urns into a <table> in the displayed HTML page by the framework. The widget +library not only provides rendering support, it also comes with a event +dispatching model for the client application to handle the user +interaction.
  • +
+

OpenTrader - the sample example described in these pages - demonstrates how +to develop a GWT client for a transactional, server application based on +Java Persistence API (JPA). This example is somewhat more involved than a +typical AddressBook example in terms of the complexity of the domain model, +the transactional functions of the server as well as the interaction +between multiple widgets in the client. Also the sample application covers +a realistic use case where the core server application is defined +independent of both GWT and JPA – and then demonstrates how these two +technologies are used to implement an end-to-end service running inside a +Tomcat Servlet Container.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentraderbuild.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentraderbuild.html (added) +++ websites/staging/openjpa/trunk/content/opentraderbuild.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Build instructions

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentraderclient.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentraderclient.html (added) +++ websites/staging/openjpa/trunk/content/opentraderclient.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Describe the client side development

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/opentradercommunication.html ============================================================================== --- websites/staging/openjpa/trunk/content/opentradercommunication.html (added) +++ websites/staging/openjpa/trunk/content/opentradercommunication.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Describe the communication between client and server +between client communications

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10211-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:44 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id DF26BE107 for ; Sun, 9 Dec 2012 13:15:44 +0000 (UTC) Received: (qmail 87745 invoked by uid 500); 9 Dec 2012 13:15:44 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87713 invoked by uid 500); 9 Dec 2012 13:15:44 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 87696 invoked by uid 99); 9 Dec 2012 13:15:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:44 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:23 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id CA1122388CA3 for ; Sun, 9 Dec 2012 13:13:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [25/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131358.CA1122388CA3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/openjpa-logo-contest---run-off.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-logo-contest---run-off.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-logo-contest---run-off.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Logo Submissions

+

The results of the first round of voting can be found at - OpenJPA Logo Contest - Round 1

+

The results of the second round of voting can be found at - OpenJPA Logo Contest - Round 2

+

The following are the finalists for a run-off round of voting. +Please only submit one vote and each vote will only count for 1 point.

+
    +
  1. + #7, #1 by Donald Woods - dwoods_at_apache_org
  2. +
  3. + #16, #4 by Pid - p_at_pidster_com
  4. +
+

+

Votes

+ + + + + + + + + + + + + + + + + + +
Name Vote Comments
Donald Woods 1
Kevin Sutter 1
Albert Lee 2
Jeremy Bauer 1
Marco Schwartz 1
Daryl Stultz 1
Pinaki Poddar 2
Pid 2
Rick Curtis 2
Michael Simons 1
Craig Russell 1
Umberto Carrara 1
C N Davies 2
Tim Watts 2
Peter Henderson 1
Ognjen Blagojevic 1
+ +

+

Voting Results

+ + + + +
Logo Votes
1 10
2 6
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-release-policy.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-release-policy.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-release-policy.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA Release Policy

+

+

Release Numbering

+

The release number consists of three digits separated by decimal points, +followed by an optional status e.g. 2.1.6-beta2. The first digit is the +major release number; the second is the minor release number; the third is +the patch number. The optional status is an indicator of the release +status, e.g. -alpha2, -rc1, etc. Generally, the status indicator is only +used for major releases, e.g. 1.0.0-rc1 but is available for any release at +the release manager's discretion.

+

+

SNAPSHOT Releases

+

During development of a release, nightly builds are typically done and +published under the SNAPSHOT rubric. The SNAPSHOT will contain the latest +result of building the release, regardless of the release status. For +example, while developing release 2.1.6, the version 2.1.6-SNAPSHOT will be +the latest result even though the status changes from -alpha, -alpha2, +-beta, -beta2, -rc1, -rc2. The last nightly before release would still be +2.1.6-SNAPSHOT.

+

+

Backward Compatibility

+

Backward compatibility means that user programs compiled against one +release will still compile and execute with another release. Generally, the +objective is to maintain backward compatibility for minor releases and +patch releases but not major releases. For example, 2.1.5 will execute when +run with e.g. 2.1.6 but there is no guarantee that the reverse is true, +i.e. that user programs compiled against 2.1.6 will compile or run against +2.1.5.

+

+

Major Release

+

Major releases have the minor and patch numbers set to 0. Major releases +contain functionality changes compared to earlier major releases and may +break backward compatibility if necessary. Once a major release is issued, +a branch is created for maintenance, replacing the patch number with "x".

+

+

Minor Release

+

Minor releases have the patch number set to 0. Minor releases contain +functionality changes compared to earlier minor releases within the same +major release, but do not break backward compatibility.

+

+

Patch Release

+

Patch releases contain bug fixes compared to the previous patch, minor, or +major release on which they are built. Patch releases increment the patch +number compared to the most recent patch release. Backward compatibility is +maintained.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpa-up-close-and-personal.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpa-up-close-and-personal.html (added) +++ websites/staging/openjpa/trunk/content/openjpa-up-close-and-personal.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + +
+ + +
+

+

Summer 2007 Meeting Information

+

The meeting is on the 6th and 7th of August, 2007.

+

+

Agenda

+

+

Monday 6 August

+

+ + + + + + + + +
TimeTitleDescriptionPresenterSponsorPresentation
9:30 - 10:00Introductions
10:00 - 12:00OpenJPA ArchitectureHigh-level walk-through of OpenJPA architecture, including all the maven modules and the major internal abstractions.Patrick Linskey / Abe WhitePatrick LinskeyMicrosoft PowerPoint
+Notes
12:00 - 1:00LunchBEA Cafeteria or elsewhere in the area
1:00 - 2:30FindBugs PresentationDiscussion with Bill Pugh (FindBugs) about how best to use FindBugs on OpenJPA, including a focus on how to use it for "new" bugs as code changes come in, vs. fixing the issues that already exist.Bill PughCraig Russellnotes +
3:00 - 4:30Query ProcessorThere are a lot of query JIRA issues; some background might enable more people to help outMarc Prud'hommeauxCraig RussellMicrosoft PowerPoint
+ Apple Keynote +
5:00 - 5:30Day One Wrap-UpFigure out how we want to change the schedule +for the next day
7:00 - ???Dinner and SocializingPresumably in San Jose Patrick +Linskey

+

+

Tuesday 7 August

+

+ + + + + + + + + + + + +
TimeTitleDescriptionPresenterSponsorPresentation
9:30 - 10:00Day Two Kick-Off / New Agenda Item ReviewDiscuss what we'd +like to talk about today, what we'd like to focus on that came up +yesterday, and other topics that have occurred to people since yesterday +
10:00 - 10:30JIRA triage Craig Russell
10:30 - 11:00XML column support Catalina WeiPatrick Linskey JPA XMLColumn Mapping.ppt +
11:30 - 12:00API Design and Forwards-CompatibilityOpenJPA has a number of APIs that we expect to be visible to developers. These should be stable over time, and should be well-designed to meet the needs of our developers. This is currently not always the case (OpenJPAEntityManagerFactory extends a billion interfaces, for example, our event frameworks sometimes require code changes for people who implement the event interfaces, and we use a combination of enums and symbolic constants even in our org.apache.openjpa.persistence interfaces). I'd like to discuss this to raise awareness about the issue, and also discuss how to improve things in the short term. I'd also like to bring up the idea of an API jar that should contain enough for the average development team to link against.Patrick LinskeyPatrick LinskeyAPIDiscussionFollowUp +
12:00 - 1:00LunchBEA Cafeteria or elsewhere in the area
1:30 - 2:00FluidSDO bindings to OpenJPAPinaki Poddar
2:15 - 2:45Where to next?OpenJPA 1.0, OpenJPA 1.1, JPA 2.0, SDO, etc. +
3:00 - 3:45JoinsThere are a lot of issues around joins. In particular, +subqueries seem to have issues. Discuss.Abe White
4:00 - 4:30Metadata ResolutionMetadata lookup, classloaders, static +caches, etc.
4:30 - 5:30Update pathwayUpdates, statement batching, reordering, etc. +
5:30 - 6:00Wrap-Up

+ + +
???mappingtoolWhat do the options do? What about new options?
+ +

The sponsor is the person proposing the agenda item, and is responsible for +making sure that a given agenda item actually happens. The sponsor is not +necessarily the person actually presenting / leading the discussion for a +given item.

+

+

Venue

+

BEA headquarters in San Jose + (near SJC) +2315 North First Street +San Jose, CA

+

There is plenty of parking. The meeting room is in Building 1, which is the +further-south building, abutting both First Street and Charcot Avenue. If +you drive up First Street from the south, your best bet is to turn left on +Charcot and then right into the parking lot. The receptionist in Building 1 +will point you in the direction of the conference room.

+

We have wireless internet available, so it should be easy to stay in touch +in the break periods. Hopefully, all the sessions will be sufficiently +riveting that nobody will be playing around on the internets during the +sessions.

+

Dial-in information:

+
+

Toll Free Dial-In Number (US & Canada): (866) 484-4232
+International Dial-In Number: (702) 894-2358
+Conference Code: 1774023

+

Webex information for day 1:
+Meeting number: 923 554 073
+Meeting password: openjpa
+https://bea.webex.com/bea/j.php?ED=94343937&UID=0

+

Webex information for day 2:
+Meeting number: 924 199 496
+Meeting password: openjpa
+https://bea.webex.com/bea/j.php?ED=94344132&UID=0

+
+

If you're new to webex meetings and plan to join via webex, it's probably a +good idea to go to that link ahead of time to get things set up.

+

+

Attendee List / Local Transportation Logistics

+ + + + + + + + + + + + + + + + + + + + + +
AttendeeLocationCarpool needed?Carpool spaceLodging
Patrick LinskeySan JoseNo 0 Crowne Plaza 282 Almaden Blvd.
Craig RussellMountain View No
Marc Prud'hommeauxSan JoseNo Crowne Plaza 282 Almaden Blvd.
Christoph BusslerSan JoseNo
Pinaki PoddarSan FranciscoYes Galleria Park, 191 Sutter Street
Bill Pugh Palo Alto No No
Michael Dick Remote (Rochester, MN) No No
Albert Lee Remote (Rochester, MN) No No
Teresa Kan Remote (Rochester, MN) No No
Kevin Sutter Remote (Rochester, MN) No No Tuesday, Aug 07, Only +
Joe Weinstein Moraga CA No No
David Wisneski San Jose CA No No No
Catalina Wei San Jose CA No No No
Daniel Lee San Jose CA No No No
Aditi Das San Francisco CA No No No
+
+
+ + + +
+ +
+ +
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpaeclipseenhancementbuilder.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpaeclipseenhancementbuilder.html (added) +++ websites/staging/openjpa/trunk/content/openjpaeclipseenhancementbuilder.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA Eclipse Tooling

+

+

How to use the OpenJPA Eclipse Tooling Builder for Bytecode Enhancement

+

Once you have installed the OpenJPA Eclipse tooling +, here is how to add the Bytecode Enhancement Builder to a Java project:

+
    +
  1. right-click on Project, click "Add/Remove Bytecode Enhancer"
  2. +
  3. in the Enable OpenJPA dialog which will be shown: (TBD: Attach screenshot +here, once ugly OPENJPA-1521 + is resolved?)
      +
    1. choose if OpenJPA libraries should be added to project, this will copy +the OpenJPA JARs from the Eclipse plug-in into a lib directory of the Java +project, and add them as Referenced Libraries. (In a normal existing +project you'll already have them via Maven or whatever so you'll not use / +want to deactivate this; for new or test projects this is convenient.)
    2. +
    3. choose enhancement options, if you need any. These are the same options as the CLI PCEnhancer supports +.
    4. +
    +
  4. +
  5. menu Project > Properties (or right-click on Project > Properties) should +now show the "OpenJPA PC-Enhancer Project Builder" added after the usual +"Java Builder"
  6. +
  7. when Eclipse builds (compiles) the project, classes will now be byte-code +enhanced
  8. +
+

+

Known Limitations

+
    +
  • persistence.xml is ignored, the plug-in / builder only looks for +annotations (@Entity, @MappedSuperclass, @Embeddable, @ManagedInterface) to +decide if a class actually needs enhancement
  • +
  • any error markers (the lines shown in the Problems view) are on the +.class resource, instead of on the source .java class, which would be more +convenient
  • +
  • the Builder runs even on classes which are red and compilation issues, +because the Eclipse compiler still tries to produce a .class file, and may +log weird error messages in that case
  • +
+

+

Troubleshooting, Tips & Recommendations

+
    +
  • +

    If the Builder has trouble during enhancement, it normally logs useful +messages / exception stack traces to the Eclipse Error Log. Use menu Window +> Show View > Error Log to display it. If you don't have the Error Log +view, this could be because you have an Eclipse with the PDE (Plug-in +Development Environment), get that. The Eclipse Error Log can also be +exported from this view, e.g. to send it to the mailing list. Further +debugging & informational log messages can be enabled via the .project +file, see below.

    +
  • +
  • +

    If your Eclipse dies due to "java.lang.OutOfMemoryError: Java heap space" +/ "java.lang.OutOfMemoryError: PermGen space" issues, you may need to add +e.g. "-XX:PermSize=64m -XX:MaxPermSize=256m -Xms128m -Xmx512m" to your +eclipse.ini (each option on a separate line) for the enhancement builder

    +
  • +
  • +

    In order to be sure that you're actually using build time enhancement, +and not enhancing dynamically at run-time, you may wish to set the +openjpa.RuntimeUnenhancedClasses=unsupported property in your +persistence.xml or wherever you bootstrap OpenJPA (see Omitting the OpenJPA enhancer +)

    +
  • +
+

+

Options

+
    +
  • +

    More verbose logging for the Builder can be enabled via a configuration +option in .project. This option is only intended for troubleshooting & +debugging, because it seems to significantly (!) slow down the builder, and +something goes wrong with the Progress view (Monitor stuff) causing it to +not update correctly anymore, and appear to keep running (although it's +not).

    +
    <projectDescription>
    +...
    +<buildSpec>
    +...
    +<buildCommand>
    +    <name>org.apache.openjpa.eclipse.OpenJPAEnhancerBuilder</name>
    +    <arguments>
    +    <dictionary>
    +        <key>debugLogs</key>
    +        <value>true</value>
    +    </dictionary>
    +
    + + +

    The debugLogs = true will lead to message such as these to be shown in the +Error Log (the order sometimes appears to get messed up) :

    +
    OpenJPA Enhancement (Full Build, collecting resources) took 0ms, found 3 classes potentially needing enhancement
    +OpenJPA Enhancer ran on but did not have to bytecode enhance /test-project/bin/ch.vorburger.jpa/SomeEntityTest.class
    +OpenJPA Enhancer ran on and actually bytecode enhanced /test-project/bin/ch.vorburger.jpa/SomeEntity.class
    +OpenJPA Enhancer ran on but did not have to bytecode enhance /test-again/bin/ch.vorburger.jpa/NotToEnhance.class
    +OpenJPA Enhancement (Full Build) took 47ms, for 3 potential classes, of which 1 were actually enhanced
    +
    + + +
  • +
  • +

    The builder has been written with efficiency in mind and underwent some +profiling & optimization, e.g. it correctly does only Incremental Builds +when possible. However, for projects with a lot of classes, this Builder +may slow down the project. This is because it still has to byte-code +inspect (load and analyze) each .class to determine if it needs +enhancement. If the JPA entities in your project follow some naming +convention (e.g. all ending in *Entity, or all in a certain package), then +the builder can be configured to "match" only certain classes using +Ant-like patterns, by manually adding the following to the existing +.project file of the Eclipse Java project:

    +
    <projectDescription>
    +...
    +<buildSpec>
    +...
    +<buildCommand>
    +    <name>org.apache.openjpa.eclipse.OpenJPAEnhancerBuilder</name>
    +    <arguments>
    +    <dictionary>
    +        <key>include1</key>
    +        <value>**/*Entity.class</value>
    +    </dictionary>
    +    <dictionary>
    +        <key>include2</key>
    +        <value>**/*EntityRef.class</value>
    +    </dictionary>
    +
    + + +
  • +
  • +

    The above two options can be mixed by adding several <dictionary> inside the <arguments>.

    +
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/openjpaeclipseinstallation.html ============================================================================== --- websites/staging/openjpa/trunk/content/openjpaeclipseinstallation.html (added) +++ websites/staging/openjpa/trunk/content/openjpaeclipseinstallation.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

OpenJPA Eclipse Tooling

+

+ Eclipse Update Site is + the current Update Site of the OpenJPA Eclipse Tooling. (It will probably still change.)

+

+

How to install the OpenJPA Eclipse Tooling

+
    +
  1. Get Eclipse min. version 3.4
  2. +
  3. Install the OpenJPA Eclipse Tooling feature from the URL shown above
      +
    1. For Eclipse v3.4:
        +
      1. menu Help > Software Updates, click "Add Site..."
      2. +
      3. Copy/paste the URL above into Location, and "OK"
      4. +
      5. Check the OpenJPA Eclipse Feature, and "Install..."
      6. +
      7. Click "Next", accept the terms of the license agreement, Finish.
      8. +
      9. Restart Eclipse
      10. +
      +
    2. +
    3. For Eclipse v3.5:
        +
      1. TBD
      2. +
      +
    4. +
    +
  4. +
  5. FYI, menu Help > About > Plug-in Details should now show plug-ins with names "OpenJPA ..."
  6. +
  7. Go to How to use the OpenJPA Eclipse Tooling Builder for Bytecode Enhancement to see how to use this thing
  8. +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10212-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:46 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 300BAE108 for ; Sun, 9 Dec 2012 13:15:45 +0000 (UTC) Received: (qmail 87819 invoked by uid 500); 9 Dec 2012 13:15:45 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87791 invoked by uid 500); 9 Dec 2012 13:15:45 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 87783 invoked by uid 99); 9 Dec 2012 13:15:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:44 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:24 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 58C802388CB2 for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [33/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.58C802388CB2@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/site-index.html ============================================================================== --- websites/staging/openjpa/trunk/content/site-index.html (added) +++ websites/staging/openjpa/trunk/content/site-index.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,750 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Space Index

+

+ + + + + + + + + + + + + +

+

+ +

+

+ + +

+

+

+

+ + + + +

+

+ + +

+

+

+

+

+

+

+ + + + + + +
+

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +
0-9 ... 1A ... 5B ... 7C ... 4D ... 7E ... 6
F ... 3G ... 2H ... 0I ... 4J ... 9K ... 0
L ... 2M ... 2N ... 0O ... 29P ... 3Q ... 2
R ... 9S ... 9T ... 4U ... 2V ... 1W ... 3
X ... 0Y ... 0Z ... 0!@#$ ... 0  
+

0-9

+

+ 2.1 Roadmap +
+

OpenJPA 2.1 Roadmap We'll try to maintain this page with delivered and planned features for the OpenJPA 2.1.0 release, so check back often. Planned Features Builtin connection pooling for Java SE applications Inclusion of commonsdbcp in openjpaall.jar and the binary distribution ...
+

A

+

+ Apache Nexus Release Process (1.2.x-2.1.x) +
+

We're starting to move our builds over to using the Apache Nexus repository (repository.apache.org) for releasing SNAPSHOT and release artifacts. More details on releasing artifacts and using Nexus can be found on the Maven website at http://maven.apache.org/developers/release/apacherelease.html ...

+

+ APIDiscussionFollowUp +
+

After our meeting, Patrick did some analysis of our current API and where we might want to take it. Here are some initial observations. Please comment as appropriate. OpenJPAEntityManager extends EntityTransaction; should it? clr no, I like your ...

+

+ Apply an Eclipse Patch +
+

Apply an Eclipse Patch to DayTrader You can apply an Eclipse patch to DayTrader for the Criteria API changes Setting up Eclipse First install eclipse by going to&nbsp;http:/www.eclipse.org http://www.eclipse.org and downloading a version of it. These instructions ...

+

+ Architecture Notes +
+

OpenJPA Architecture notes: Design point: object persistence; ORM but other stores also supported by the architecture domain model: user's responsibility; other areas are OpenJPA persistence kernel is central part delegates to other stores via data cache ...

+

+ Automated Builds +
+

We're using the Apache Hudson build server for continuous builds for several of the OpenJPA code streams and some of the artifacts in the Tools subproject. Hudson Jobs OpenJPA OpenJPA 1.2.x build and deploy http://hudson.apache.org/hudson/job/OpenJPA12x/ This build runs on the Ubuntu ...
+

B

+

+ Banner +
+

div id="headerbackground"> <div id="openjpalogo"> <a style="float:left; width:280px;display:block;textindent:5000px;textdecoration:none;lineheight:60px; margintop:10px; marginleft:100px;" href="http://openjpa.apache.org">OpenJPA</a> </div> <div id ...

+

+ Bean Validation Primer +
+

OpenJPA Bean Validation Primer A new feature defined by the JPA 2.0 specification is the ability to seamlessly integrate with a JSR303 http://jcp.org/en/jsr/detail?id=303 bean validation provider. With minimal effort, OpenJPA 2.0 http://openjpa.apache.org ...

+

+ Begin using OpenJPA - The Basics +
+

Introduction OpenJPA is an open source implementation of the Java JPA (Java Persistence API) specification from Apache. JPA provides an agnostic Javabased API for storing and retrieving information to a backend database. It has a canonical query language named ...

+

+ Beginners Performance Guide +
+

Intro to tuning OpenJPA OpenJPA Beginners Performance Guide This guide is targeted at new users of OpenJPA that would like to know some of the important performance tuning properties. Please do not mistake this for an exhaustive tuning guide. This is just enough information ...

+

+ Build and Runtime Dependencies +
+

OpenJPA Build and Runtime Dependencies Java versions Trunk (i.e. OpenJPA 2.1.0 currently) and 2.0.x branch require JDK 1.6 or 1.5. Note that some functionality that requires JDK 1.6 will not be available if you choose to build with JDK 1.5. Building ...

+

+ Building +
+

How to build OpenJPA from source Contents Building OpenJPA See Build and Runtime Dependencies for details on the required Java levels. Maven Command Line Builds These instructions describe how to check out the current OpenJPA source code (from ...

+

+ Building and Running OpenBooks +
+

Instructions to download and run OpenBooks Demo OpenBooks comes with complete source code build scripts to demonstrate how to build a typical OpenJPA application and package it for JSE or JEE environment scripts to run OpenBooks in on your local database installation. Follow ...
+

C

+

+ Coding Standards +
+

Coding standards for OpenJPA source code Coding Standards ASF Requirements Copyright notices for submitted patches Please see http://www.apache.org/legal/srcheaders.html for details of the following summary. Apache does not require you to assign ownership or copyright for any ...

+

+ Committers +
+

List of people with commit access to the OpenJPA repository The people listed below have made significant contributions to OpenJPA by working long and hard to make quality software for the rest of the world to use. If you would like to contribute to OpenJPA, please see ...

+

+ Community +
+

OpenJPA Community Links

+

+ Community Top Link +
+

Community

+

D

+

+ Development +
+

OpenJPA Development OpenJPA Development

+

+ Development Process +
+

DRAFT OpenJPA Development Process Tracking issues and changes A JIRA issue is required for any substantive change. In order to keep the list of JIRA issues under control, it is expected that any controversial issue or user request for a feature or design change be discussed ...

+

+ Development Top Link +
+

Development

+

+ Documentation +
+

OpenJPA Documentation OpenJPA Documentation The online OpenJPA documentation can be found here. Latest (2.1.0SNAPSHOT) Version HTML Manual HTML Manual (Single Page) PDF Manual Javadocs Nightly build (trunk) manual http://openjpa.apache.org/builds/latest ...

+

+ Documentation Top Link +
+

Documentation

+

+ Downloads +
+

Downloads for the OpenJPA project OpenJPA Downloads Use the links below to download a distribution of Apache OpenJPA. It is good practice to verify the integrity #Verifying Releases of the distribution files. For information on obtaining OpenJPA binaries, see the Obtaining page. For information on building OpenJPA ...

+

+ Downloads Top Link +
+

Downloads
+

E

+

+ Embeddable samples +
+

Embeddable samples Embeddable classes An entity may use other finegrained classes to represent entity state. Instances of these classes, unlike entity instances, do not have persistent identity of their own. Instead, they exist only as part of the state of the entity ...

+

+ Enhancement with ANT +
+

following shows how to define a OpenJPA enhancer task and how to invoke the task in ANT. First you'll need to compile the Entites. (Note: as a prereq to running the enhance task, I copied my persistence.xml file to my /build directory. You ...

+

+ Enhancement with Eclipse +
+

Enhancing Entities with Eclipse 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 ...

+

+ Enhancement with Maven +
+

Using the openjpamavenplugin There is a Maven plugin provided by the Codehaus project http://mojo.codehaus.org/openjpamavenplugin/index.html, which uses OpenJPA to enhance entities during a Maven build. For example, to enhance you source entity classes after they have been compiled (but exclude ...

+

+ Entity Enhancement +
+

How to enhance entity classes What is Enhancement Anyway? The JPA spec requires some type of monitoring of Entity objects, but the spec does not define how to implement this monitoring. Some JPA providers autogenerate new subclasses or proxy objects that front ...

+

+ Events and News +
+

OpenJPA related events News Archive
+

F

+

+ FAQ +
+

Frequently Asked Questions about the OpenJPA project FAQ General What is OpenJPA? OpenJPA is a 100% opensource implementation of the Java Persistence API (JPA), which is the persistence component for EJB in the Java EE 5 specification http://java.sun.com/javaee/. What ...

+

+ FindBugs Presentation Notes +
+

Bill Pugh (side note: compiling with "target jsr14" will allow us to use generics and compile to JDK 1.4 usable code) Static analysis Analyzes program w/out executing Not a replacement for testing Find bugs that are one step removed ...

+

+ Found a Bug +
+

How to report a bug you find in OpenJPA Found a Bug? If you think you've found a problem with OpenJPA, there are several ways to proceed. You can begin by raising the issue on the OpenJPA User or Developer mailing lists (see Mailing Lists ...
+

G

+

+ Get Involved +
+

Information on getting involved with the OpenJPA project Join the Apache OpenJPA Community The Apache OpenJPA project is being built by the open source community for the open source community we welcome your input and contributions! What we are looking for Source code ...

+

+ Getting started +
+

Notes These instructions detail the steps required to run a give sample for a number of different environments. You can substitute any of the directories in the \binary download\examples\ directory for hellojpa in the instructions below to run a different sample. Getting Started with the Eclipse # Download ...
+

H

+

I

+

+ Index +
+

Welcome to Apache OpenJPA \ \ News Events and News \ \ Resources Quick Start Guide to OpenJPA Quick Start Obtaining OpenJPA Obtaining OpenJPA Documentation Documentation Integration with Containers and Application Servers Integration Enhancing entities with Maven2 Entity Enhancement OpenJPA ...

+

+ Index Top Link +
+

Index

+

+ Integration +
+

How to integrate OpenJPA with various containers and application servers Runtime Dependencies The binary release download of OpenJPA includes all of the code needed to run in a standalone Java SE JVM or within a Java EE application server. See Build and Runtime ...

+

+ Intro +
+

Apache OpenJPA is a Java persistence project at The Apache Software Foundation http://apache.org that can be used as a standalone POJO http://en.wikipedia.org/wiki/POJO persistence layer or integrated Integration into any Java EE compliant container and many other lightweight ...
+

J

+

+ Javadoc +
+

OpenJPA Documentation

+

+ JPA 2.0 Development Process +
+

JPA 2.0 Development Process JPA 2.0 Roadmap The OpenJPA roadmap and iteration detail for developing JPA 2.0 functionality is documented here JPA 2.0 Roadmap. The process to be used for this development effort will be documented on this Development Process page. Overview JPA ...

+

+ JPA 2.0 Iterations +
+

set( $jira = $rss.fetch("https://issues.apache.org/jira/sr/jira.issueviews:searchrequestxml/temp/SearchRequest.xml?pid=12310351&status=1&status=5&status=6&version=12314148&version=12313483&version=12313624&version=12314149&version=12314019&version ...

+

+ JPA 2.0 Presentations +
+

JPA 2.0 Presentations We'll document the major new features of the JPA 2.0 specification and how they are being implemented in OpenJPA on this page. Bean Validation Integration in JPA 2.0 JPA 2.0 Bean Validation 20090717.pdf (20090717) by Jeremy Bauer and Donald ...

+

+ JPA 2.0 Roadmap +
+

JPA 2.0 Road Map Apache OpenJPA 2.0.0 is being developed in trunk and will be a JPA 2.0 certified release of the JSR317 http://jcp.org/en/jsr/detail?id=317 specification. Development Process The process that OpenJPA will be following for developing JPA ...

+

+ JPA 2.0 Tasks +
+

OpenJPA 2.0 Tasks JPA 2.0 Spec Features Status JIRA(s) Effort Summary Area JPA 2.0 Spec Reference(s) Complete OPENJPA962 https://issues.apache.org/jira/browse/OPENJPA962 \ OPENJPA1115 https://issues.apache.org/jira/browse/OPENJPA1115 Medium New database ...

+

+ JPA 2.0 Test Coverage +
+

JPA 2.0 Test Coverage Starting with OpenJPA 2.0.0, we have split the supported databases http://openjpa.apache.org/builds/latest/docs/manual/supporteddatabases.html into verified and compatible categories. The automated database testing performed by IBM and regular testing performed ...

+

+ JPA M2 Demo +
+

M2 Demo We have created a demo that shows off a subset of the new features that were added during the second milestone Release Management#Milestone 2. The code that is being demoed can be found in the openjpaexamples module under the src/jpastore ...

+

+ JSR-317 20081031 Public Draft Tasks +
+

JPA 2.0 Spec Features based on JSR317 10/31/2008 public draft For the most recent task list see the JPA 2.0 Roadmap JPA 2.0 Roadmap. Status JIRA(s) Effort Summary JPA 2.0 Spec Reference(s) Complete OPENJPA782 ...
+

K

+

L

+

+ License +
+

OpenJPA license: Apache License v2.0 Apache License v2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use ...

+

+ Logo Contest +
+

Apache OpenJPA Logo Contest Rules and Submissions Announcing the OpenJPA Logo Contest! !paint200x150.png align=left! Submissions accepted through June 30, 2009 Round 1 Voting runs from July 1 through July 8 Round ...
+

M

+

+ Mailing Lists +
+

Mailing lists for OpenJPA discussions Project Mailing Lists OpenJPA mailing lists for users, developers and committers are hosted by Nabble http://n2.nabble.com/OpenJPAf208410.html forum. You can view the current posts, subscribe or unsubscribe, post messages or browse the archives ...

+

+ Migration Tool +
+

Migration Tool This commandline utility translates proprietary mapping descriptors to standard JPA mapping descriptors. Download The latest OpenJPA Tools JAR file can be download from the SNAPSHOT Repository https://repository.apache.org/content/repositories/snapshots/org/apache ...
+

N

+

O

+

+ Obtaining +
+

How to obtain OpenJPA OpenJPA official releases can be downloaded at the Downloads page. Released binaries can also by accessed from Maven pom.xml files by pointing them to the repository at http://people.apache.org/repo/m2incubatingrepository . An example pom.xml that will use the 0.9.0incubating ...

+

+ OpenBooks - Featuring JPA 2.0 +
+

OpenBooks is a sample (and perhaps, simple) application featuring some of the new features in JPA 2.0. This demonstration features usage of new JPA 2.0 features such as Criteria Query Compound, Derived identity Orphan Delete Persistent Domain Model API The sample ...

+

+ OpenJPA 2.0.0 +
+

OpenJPA 2.0.0 The Apache OpenJPA community is proud to announce the release of Apache OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 http://jcp.org/en/jsr/detail?id=317 specification and passes ...

+

+ OpenJPA 2.0.0 Beta +
+

OpenJPA 2.0.0 Beta The Apache OpenJPA community is proud to release a Beta distribution of OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 http://jcp.org/en/jsr/detail?id=317 specification ...

+

+ OpenJPA 2.0.0 Beta 2 +
+

OpenJPA 2.0.0 Beta 2 The Apache OpenJPA community is proud to release a Beta 2 distribution of OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 http://jcp.org/en/jsr/detail?id ...

+

+ OpenJPA 2.0.0 Beta 3 +
+

OpenJPA 2.0.0 Beta 3 The Apache OpenJPA community is proud to release a Beta 3 distribution of OpenJPA 2.0.0. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 http://jcp.org/en/jsr/detail?id ...

+

+ OpenJPA 2.0.0 Early Access 2 +
+

OpenJPA 2.0.0 Early Access 2 OpenJPA 2.0.0 Early Access 2 The Apache OpenJPA community is proud to provide an early access distribution of OpenJPA 2.0. This distribution is based on the 03/13/2009 draft of the JPA 2.0/JSR317 specification. Included are many ...

+

+ OpenJPA 2.0.0 Milestone 3 +
+

OpenJPA 2.0.0 Milestone 3 OpenJPA 2.0.0 Milestone 3 The Apache OpenJPA community is proud to provide a Milestone 3 distribution of OpenJPA 2.0. This distribution is based on the 20090922 Proposed Final Draft 2 of the JSR317 JPA 2.0 specification. Included ...

+

+ OpenJPA 2.0.1 +
+

OpenJPA 2.0.1 The Apache OpenJPA community is proud to announce the maintenance release of Apache OpenJPA 2.0.1. As with the prior 2.0.0 release, this distribution is based on the final JSR 317 Java Persistence API, Version 2.0 http://jcp.org/en/jsr/detail ...

+

+ OpenJPA Confluence User Groups +
+

+

+ OpenJPA Development Resources +
+

Getting Involved Most of the OpenJPA discussions happen on the mailto:dev@openjpa.apache.org mailing list. For more details see OpenJPA mailing lists OpenJPAEmail. For more general discussion about Apache mailing lists, see the Apache mailing lists http://www.apache.org ...

+

+ OpenJPA Logo Contest - Round 1 +
+

Logo Submissions Logos submitted for Round #1 voting from July 1 July 9: # !http://os.oles.biz/openjpalogoideas/variant1.png vspace=5! Georgi Naplatanov goshoatolesbiz # !http://os.oles.biz/openjpalogoideas/variant2.png vspace=5! Georgi Naplatanov goshoatolesbiz # !http://os.oles.biz ...

+

+ OpenJPA Logo Contest - Round 2 +
+

Logo Submissions The results of the first round of voting can be found at OpenJPA Logo Contest Round 1 The following are the finalists for Round 2 of voting from July 9 14: # !http://people.apache.org/dwoods/openjpa/logos/openjpalogo1.png vspace=5! #7 ...

+

+ OpenJPA Logo Contest - Run-off +
+

Logo Submissions The results of the first round of voting can be found at OpenJPA Logo Contest Round 1 The results of the second round of voting can be found at OpenJPA Logo Contest Round 2 The following are the finalists for a runoff round of voting. Please ...

+

+ OpenJPA Release Policy +
+

OpenJPA Release Policy Release Numbering The release number consists of three digits separated by decimal points, followed by an optional status e.g. 2.1.6beta2. The first digit is the major release number; the second is the minor release number; the third is the patch ...

+

+ OpenJPA Up Close and Personal +
+

Summer 2007 Meeting Information The meeting is on the 6th and 7th of August, 2007. Agenda Monday 6 August Time Title Description Presenter Sponsor Presentation 9:30 10:00 Introductions 10:00 12:00 OpenJPA Architecture ...

+

+ OpenJPA+Email +
+

OpenJPA email aliases dev@openjpa.apache.org This alias is primarily for the developers on the OpenJPA project. To subscribe, send mail to mailto:devsubscribe@openjpa.apache.org To unsubscribe, send mail to mailto:devunsubscribe@openjpa.apache.org Archives can be found at http://mailarchives.apache.org/modmbox/openjpadev users@openjpa.apache.org This alias is primarily for users ...

+

+ OpenJPAEclipseEnhancementBuilder +
+

OpenJPA Eclipse Tooling How to use the OpenJPA Eclipse Tooling Builder for Bytecode Enhancement Once you have installed the OpenJPA Eclipse tooling OpenJPAEclipseInstallation, here is how to add the Bytecode Enhancement Builder to a Java project: # rightclick on Project, click ...

+

+ OpenJPAEclipseInstallation +
+

OpenJPA Eclipse Tooling http://people.apache.org/dwoods/openjpa/devtools/updatesite/ is the current Update Site of the OpenJPA Eclipse Tooling. (It will probably still change.) How to install the OpenJPA Eclipse Tooling # Get Eclipse min. version 3.4 # Install the OpenJPA ...

+

+ OpenJPAEclipseToolingDevAndBuild +
+

OpenJPA Eclipse Tooling How to develop on and build the OpenJPA Eclipse Tooling IDE # get Eclipse with PDE # check out the https://svn.apache.org/repos/asf/openjpa/devtools/trunk/ (not just the individual project directories, but really the trunk, so that you ...

+

+ OpenTrader +
+

OpenTrader: a transactional, web application with Google Web Toolkit, OpenJPA/Slice on Tomcat !OpenTraderlogin.gif! OpenTrader is a sample web application to demonstrate integration of Google Web Toolkit (GWT) and OpenJPA running in Tomcat Servlet Container. These pages describe various aspects ...

+

+ OpenTraderArchitecture +
+

State the design goals Describe the architecture One of the good practices of software development is to start with a set of basic requirements and then express these requirements more formally through a set the interfaces. So let us begin by listing the requirements for OpenTrader sample. a trader ...

+

+ OpenTraderBuild +
+

Build instructions

+

+ OpenTraderClient +
+

Describe the client side development

+

+ OpenTraderCommunication +
+

Describe the communication between client and server between client communications

+

+ OpenTraderDeploy +
+

+

+ OpenTraderEnvironment +
+

What do we need to download

+

+ OpenTraderServer +
+

Describe the server

+

+ Overview +
+

Overview Overview
+

P

+

+ Performance guide +
+

OpenJPA Performance Guide OpenJPA Performance Guide OpenJPA has numerous configuration properties that apply to many different use cases. The complete list of properties can be found in the most current user manual http://openjpa.apache.org/builds/latest/docs ...

+

+ Powered By +
+

Other products and projects using OpenJPA This page list products and companies that are currently using OpenJPA. !http://activemq.apache.org/images/activemqlogo.png! ActiveMQ http://activemq.apache.org: Apache ActiveMQ is the most popular and powerful open source Message Broker which supports ...

+

+ Privacy Policy +
+

All materials provided on the Apache OpenJPA website (openjpa.apache.org) is Copyright © 20052009, The Apache Software Foundation and Licensed under ASL 2.0 http://www.apache.org/licenses/LICENSE2.0. Privacy Policy Last Updated: April 29, 2009 Information about your use ...
+

Q

+

+ Query Notes +
+

name conflict: QueryImpl from JDBC vs. QueryImpl from kernel openjpa.kernel.jpql.JPQLParser joins are done by SelectImpl subselects have some issues especially with nonrelationship src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt has rules ...

+

+ Quick Start +
+

Getting Started with OpenJPA Quick Start Guide We know it can be hard to find the right help sometimes and search engines can be overwhelming, so we will try to put the most commonly asked for topics with some overview and links to more ...
+

R

+

+ Recovering from a vetoed release +
+

Recovering from a bad release or a vetoed release Recovering from a bad release actually isn't that difficult. You'll have to delete the bad tag in SVN and rollback the version numbers in all of our pom.xml files. Delete the tag in svn $ svn ...

+

+ Related Projects +
+

Projects related to OpenJPA JDO http://db.apache.org/jdo/ TODO: More Links

+

+ Release Management +
+

Release Management Where should I put my fix? Fixes should be targeted and committed on trunk first. Any other open releases are fair game, but may require approval from a release manager. Regarding Release Managers Once ...

+

+ Release Setup +
+

setup steps only need to be performed on a particular machine once. Developers using Linux workstations can skip over the references to Cygwin. If using Windows, install cygwin, including Utils/gnupg and Net/openssh packages. Create and install a SSH ...

+

+ Releasing OpenJPA 1.0.x or 1.1.x (Old SCP Steps) +
+

Instructions for creating an official OpenJPA release Making an OpenJPA 1.0.x or 1.1.x Release These instructions guide the release manager through the steps of making an official OpenJPA release. Prerequisites # You should read the OpenJPA Release Policy ...

+

+ Releasing OpenJPA 1.2.x (Old SCP Steps) +
+

Instructions for creating an official OpenJPA release Releasing OpenJPA These instructions guide the release manager through the steps of making an official OpenJPA release. Work in progress. Times are just guesses and some information may be missing. Prerequisites // TODO ...

+

+ Running OpenJPA Examples +
+

Running the OpenJPA Examples The examples are packaged so that they run after extracting the openjpa binary distribution. Running directly from the source tree may take some work (not documented here). # Build the openjpa binaries $ mvn clean install # extract ...

+

+ Running the Sun TCK for JPA +
+

Running the Sun TCK for JPA Sun's Technology Compatibility Kit for JPA is available to OpenJPA committers (other TCKs are available to Apache committers in general). Requesting access to the TCK # Review the section "Testing with TCKs" on theApache JCP participation page http ...

+

+ Runtime Enhancement +
+

first runtime enhancement method is to provide a javaagent when launching the JVM that OpenJPA is going run in. javaagent:<openjpajarlocation> For Eclipse, specify the above javaagent value on the Run Configuration page. For ANT, provide the javaagent value as a jvmarg when launching an ...
+

S

+

+ Samples +
+

OpenJPA Examples OpenJPA Examples This page provides samples for OpenJPA. For further information, the documentation provides comprehensive documentation on all aspects of configuring and using OpenJPA. For more information on using OpenJPA within a Java EE application server, please see ...

+ + +

+ SideNav Community +
+

Events and News Found a Bug? Get Involved Mailing Lists Committers Integration Powered By Thanks

+

+ SideNav Development +
+

Issue Tracker http://issues.apache.org/jira/browse/OPENJPA Source Code Testing Tools Samples Release Management

+

+ SideNav Overview +
+

Quick Start Documentation Downloads Site Index License Privacy Policy

+

+ SideNav Quick Links +
+

Home Index License ASF http://apache.org Downloads Site Map

+

+ Site Index +
+

+

+

+ Source Code +
+

Source code access Source Code OpenJPA uses Subversion http://subversion.apache.org/ to manage its source code. Instructions on Subversion use can be found here http://svnbook.redbean.com. Web Access The source code for OpenJPA can be freely browsed ...
+

T

+

+ Testing +
+

Running and Writing Writing Test Cases For OpenJPA OpenJPA unit tests Running and Writing Writing Test Cases For OpenJPA Tests with OpenJPA OpenJPA's unit tests are written using JUnit. For a template for a simple test case, see the code for TestPersistence.java ...

+

+ Thanks +
+

Thanks to helpful people and organizations The Apache OpenJPA team would like to thank the following individuals and organizations. Apache Sponsors Without those sponsors, the ASF would simply not exist or sustain its activities : http://www.apache.org/foundation/thanks.html For those ...

+

+ Tools +
+

Tools for OpenJPA This page will host description of designtime and runtime tools for OpenJPA. The tools mentioned below are available as commandline utilities. In the future, they may be made available as interactive graphical tools integrated into popular IDEs such as Eclipse or IntelliJ. Existing OpenJPA Tools ...

+

+ Top Navigation Bar +
+

+

U

+

+ Update release text files +
+

Instructions for updating .text files shipped with OpenJPA Updating release text files. Obtaining the list of resolved issues from JIRA.&nbsp; # Go to the main JIRA releases page at http://issues.apache.org/jira/browse/OPENJPA?report=com.sourcelabs.jira.plugin.portlet.releases:releasesprojecttab ...

+

+ Using Criteria API in DayTrader +
+

Using Criteria API in DayTrader A current DayTrader project implementation in Apache Geronimo contains several JPQL queries. These can easily be converted to JPA Criteria API queries. A sample with this conversion can be created to run on either the Apache Geronimo server ...
+

V

+

+ Verifying release signatures +
+

unix platforms the following command can be executed : for file in find . type f iname '.asc' do gpg verify $ done You'll need to look at the output contains only good signaturesie : gpg: Good signature from "Michael Dick ...
+

W

+

+ Whither OpenJPA +
+

Discussion topics: OpenJPA 1.0, OpenJPA 1.1, JPA 2.0, SDO, etc. JPA 2.0: Any of OpenJPA members on the expert group? Patrick will be on the EG. There will be a lurker list set up by each EG member for internal discussions. Does Apache ...

+

+ Wiki +
+

TODO

+

+ Writing Test Cases For OpenJPA +
+

Tips on writing TestCase for OpenJPA You are welcome to contribute new test cases. Following are few suggestions and guidelines on how to contribute new test case to OpenJPA repository of 2000 test cases spread across 400 classes. Unit Tests ...
+

X

+

Y

+

Z

+

!@#$

+

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/source-code.html ============================================================================== --- websites/staging/openjpa/trunk/content/source-code.html (added) +++ websites/staging/openjpa/trunk/content/source-code.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

+

Source Code

+

OpenJPA uses Subversion + to manage its source code. Instructions on Subversion use can be found here +.

+

+

Web Access

+

The source code for OpenJPA can be freely browsed at http://svn.apache.org/viewvc/openjpa/ +. The source code can also be searched and browsed using Cenqua's FishEye +product at http://fisheye6.cenqua.com/browse/openjpa +.

+

+

Anonymous access

+

OpenJPA source can be checked out anonymously with this command:

+
$> svn checkout http://svn.apache.org/repos/asf/openjpa/trunk openjpa
+
+ + +

+

Developer Access

+

Everyone can access the OpenJPA Subversion repository via HTTPS, but +OpenJPA Committers must checkout the Subversion repository via HTTPS in +order to make updates, which will prompt for your ASF uid/pwd.

+
$> svn checkout https://svn.apache.org/repos/asf/openjpa/trunk openjpa
+
+ + +

+

Compiling Source

+

Once you've got the code you'll probably want to build it; for instructions +see Building +.

+

We also have Automated Builds + setup for several branches of OpenJPA.

+

+

Source Coding Standards

+

The community has agreed upon some common code formatting standards, which +we request that everyone follows when contributing patches and checking in +changes to the svn repository. Some of these are enforced during the +build, like 120 character line length by using the Checkstyle plugin and +checking for required ASL 2.0 source headers by using the apache-rat +plugin. Please checkout the Coding Standards + page for more details.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10213-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Sun Dec 9 13:15:47 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1CE32E10A for ; Sun, 9 Dec 2012 13:15:47 +0000 (UTC) Received: (qmail 87910 invoked by uid 500); 9 Dec 2012 13:15:46 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 87887 invoked by uid 500); 9 Dec 2012 13:15:46 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 87878 invoked by uid 99); 9 Dec 2012 13:15:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2012 13:15:34 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 6B4132388CB4 for ; Sun, 9 Dec 2012 13:13:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r841236 [35/35] - in /websites/staging/openjpa/trunk/content: ./ artifacts/ css/ images/ images/datacache-plugin/ Date: Sun, 09 Dec 2012 13:13:50 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121209131359.6B4132388CB4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: websites/staging/openjpa/trunk/content/using-criteria-api-in-daytrader.html ============================================================================== --- websites/staging/openjpa/trunk/content/using-criteria-api-in-daytrader.html (added) +++ websites/staging/openjpa/trunk/content/using-criteria-api-in-daytrader.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Using Criteria API in DayTrader

+

A current DayTrader project implementation in Apache Geronimo contains +several JPQL queries. These can easily be converted to JPA Criteria API +queries. A sample with this conversion can be created to run on either the +Apache Geronimo server or the WebSphere Application Server with the +built-in Derby database.

+

+

Downloading DayTrader

+

You must have Subversion installed in order to download the DayTrader implementation.Subversion can be downloaded from http://subversion.apache.org/packages.html +. Use the 2.1.3 version of DayTrader for this sample. Follow the following steps:

+
    +
  1. Create a root directory for the download. For this example, we will use a directory called DayTrader.
  2. +
  3. Create subdirectories branches/2.1.3 under the DayTrader directory
  4. +
  5. cd to DayTrader
  6. +
  7. +

    Issue the following subversion command:

    +
    svn checkout https://svn.apache.org/repos/asf/geronimo/daytrader/branches/2.1.3 branches/2.1.3 .
    +
    + + +
  8. +
+

+

Build DayTrader

+

You must have maven installed in order to build DayTrader. Maven can be downloaded from http://maven.apache.org/download.html. Unzip the file to a directory and run mvn.bat\|.sh in the bin +subdirectory to install. Add the bin subdirectory to you system path.

+

Maven needs a repository. Typically it is at the following:

+
    +
  • Windows - C:\Documents and Settings\<userid>.m2\repository
  • +
  • Linux/unix - \~/.m2/repository
  • +
+

From the DayTrader/branches/2.1.3 directory, type "mvn clean install" to build the project. (Note: If you see errors that say "java.util.zip.ZipException: error in opening zip file", ignore them for this exercise.)

+

+

Apply the DayTrader Patch

+

The following patch can be applied using a system or downloaded patch utility. (For example, you can get a patch utility for Windows from http://gnuwin32.sourceforge.net/packages/patch.htm +.)

+ +

Download the appropriate patch and go to the DayTrader/branches.2.1.3 +directory to apply it. For example, with the patch utility mentioned above, +you can type:

+
patch \-p0 \-i <path-to>/daytrader_geronimo.patch
+
+ + +

After you have applied the patch, you can see the changes from JPQL to the Criteria API in the java class org.apache.geronimo.samples.daytrader.ejb3.TradeSLSBBean. The changes are in the following 4 methods:

+
    +
  • getMarketSummary()
  • +
  • getClosedOrders()
  • +
  • getAllQuotes()
  • +
  • getHoldings()
  • +
+

(Note: If you view these changes in eclipse, and you have previously run +"mvn eclipse:eclipse" to setup eclipse projects, you'll have to run this +command again in order for this file to compile.)

+

You can also Apply an Eclipse Patch

+

+

Re-create the DayTrader ear file

+

From the DayTrader/branches/2.1.3 directory, type "mvn clean install" to build the project.

+

+

Run DayTrader on Geronimo

+

This writeup assumes some familiarity with Apache Geronimo. The download +and documentation can be found at http://geronimo.apache.org.

+

Install and start the Geronimo server.

+

Add jpa2 plugins from repository http://geronimo.apache.org/plugins/openjpa2. One way to do this is the following:

+
    +
  1. Go to the Geronimo console at http://:8080/console and logon
  2. +
  3. Select plugins
  4. +
  5. Click on Add Repository and add http://geronimo.apache.org/plugins/openjpa2
  6. +
  7. Click on Update Repository List
  8. +
  9. Make sure the new repository is selected. Then click on Show Plugins in selected repository. On that panel:
      +
    1. Select GeronimoPlugins, OpenJPA2::CAR 2.1.3-SNAPSHOT and GeronimoPlugins, OpenJPA2::Deployer 2.1.3-SNAPSHOT
    2. +
    3. Click on Install
    4. +
    +
  10. +
  11. On the next screen, click on Install
  12. +
+

Deploy the DayTrader application. This can be done through the console as follows:

+
    +
  1. Click on Deploy New
  2. +
  3. For Archive, browse to DayTrader/branches/2.1.3/modules/ear/target/daytrader-ear-2.1.3.ear
  4. +
  5. For Plan, browse to DayTrader/branches/2.1.3/plans/dayTrader-derby-plan.xml
  6. +
  7. Check Start app after install
  8. +
  9. Click on Install
  10. +
+

Re-start the server.

+

Make sure that the system module, org.apache.geronimo.configs/axis-deployer/2.1.5/car, is running.

+

Run DayTrader:

+
    +
  1. Go to http://:8080/daytrader/
  2. +
  3. Click on the Configuration tab and click on (Re)-create DayTrader Database Tables and Indexes
  4. +
  5. Click on the Configuration  tab and click on (Re)-populate DayTrader Database
  6. +
  7. Click on the Trading & Portfolios tab, login, and start trading
  8. +
+

+

Run DayTrader on WebSphere

+

This writeup assumes some familiarity with WebSphere. Also, the script that +is provided assumes a local unmanaged node with a single server.

+

At a minimum, the WebSphere Application Server must be at version 7.0.0.9. +You must also have installed the Feature Pack for OSGi Applications and +Java Persistence API 2.0. Make sure you have a profile that is augmented +for JPA 2.0 function.

+

Download the following jython script. This script is used to configure the +objects needed by DayTrader (data sources, JMS queues and topics) and +install the application.

+

daytrader_singleServer.py

+

Within the bin directory of the augmented profile:

+
    +
  1. Start the server.
  2. +
  3. +

    Run the script using the following command:

    +
    wsadmin -f <location ofdaytrader_singleServer.py> <script options>
    +
    + + +

    You can display the list of available script options by specifying the option "--help".

    +
  4. +
  5. +

    Re-start the server.

    +
  6. +
+

Run DayTrader

+
    +
  1. On a web browser, go to http://localhost:/daytrader/(The default application port is 9080. But, you may have a different one if you created a new profile.)
  2. +
  3. Click on the Configuration tab and click on (Re)-create DayTrader Database Tables and Indexes
  4. +
  5. Click on the Configuration  tab and click on (Re)-populate DayTrader Database
  6. +
  7. Click on the Trading & Portfolios tab, login, and start trading
  8. +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/verifying-release-signatures.html ============================================================================== --- websites/staging/openjpa/trunk/content/verifying-release-signatures.html (added) +++ websites/staging/openjpa/trunk/content/verifying-release-signatures.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

On unix platforms the following command can be executed :

+
for file in `find . -type f -iname '*.asc'`
+do
+    gpg --verify ${file} 
+done
+
+ + +

You'll need to look at the output contains only good signaturesie :

+
        gpg: Good signature from "Michael Dick (CODE SIGNING KEY) <mikedd@apache.org>"
+        gpg: Signature made Tue 12 Jan 2010 05:30:17 PM CST using RSA key ID 7412AD2C
+        gpg: Good signature from "Michael Dick (CODE SIGNING KEY) <mikedd@apache.org>"
+        gpg: Signature made Tue 12 Jan 2010 05:30:18 PM CST using RSA key ID 7412AD2C
+        gpg: Good signature from "Michael Dick (CODE SIGNING KEY) <mikedd@apache.org>"
+        gpg: Signature made Tue 12 Jan 2010 05:30:17 PM CST using RSA key ID 7412AD2C
+        gpg: Good signature from "Michael Dick (CODE SIGNING KEY) <mikedd@apache.org>"
+
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/websphere-application-server.html ============================================================================== --- websites/staging/openjpa/trunk/content/websphere-application-server.html (added) +++ websites/staging/openjpa/trunk/content/websphere-application-server.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Fetch Statistic Tool Usage for Websphere Application Server

+

+

Download

+
    +
  • The latest OpenJPA Tools JAR file can be download from the SNAPSHOT Repository + or can be built from the source code in svn + by using Maven 2.2.1 and Java SE 6.
  • +
+

+

Configuration

+
    +
  • Put openjpa-fetch-statistics-VERSION-was.jar into the WAS_HOME\plugins +directory.
  • +
  • Run WAS_HOME\bin\osgiCfgInit.sh(bat) to clear the osgi cache.
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/whither-openjpa.html ============================================================================== --- websites/staging/openjpa/trunk/content/whither-openjpa.html (added) +++ websites/staging/openjpa/trunk/content/whither-openjpa.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Discussion topics: OpenJPA 1.0, OpenJPA 1.1, JPA 2.0, SDO, etc.

+
    +
  • +

    JPA 2.0: Any of OpenJPA members on the expert group?

    +

    Patrick will be on the EG. There will be a lurker list set up by each EG +member for internal discussions.

    +
  • +
  • +

    Does Apache want to have representation on the JPA 2.0 EG? There would be +an advantage for OpenJPA community members who are not privy to an internal +lurker alias, to be able to participate in the discussion.

    +

    AI: Craig poll the openjpa community to see if they want to participate +under NDA in the EG under rules established by the Spec Lead. If positive, +discuss with Apache JCP representative how to do it. We would need a closed +Apache-JPA mail alias for discussion and an EG representative to forward +comments to the expert group.

    +
  • +
  • +

    Roadmap for OpenJPA. It would be nice to have an idea of when releases +should come out.

    +

    What about picking a date, for example, August 20 for branching the +release. Everyone who wants a bug fixed for the release, do it by then. +Marc has volunteered to be release manager. He goes on vacation August 31 +so if the release is delayed beyond that point, someone else needs to push +it. AI Craig propose a release date and strategy to the community.

    +
  • +
  • +

    What about the next releases?

    +

    Craig earlier volunteered to start the roadmap discussion.

    +
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + Added: websites/staging/openjpa/trunk/content/writing-test-cases-for-openjpa.html ============================================================================== --- websites/staging/openjpa/trunk/content/writing-test-cases-for-openjpa.html (added) +++ websites/staging/openjpa/trunk/content/writing-test-cases-for-openjpa.html Sun Dec 9 13:13:35 2012 @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + Apache OpenJPA -- + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ OpenJPA Logo + +   + + ASF Logo +
+ + +
+ +
+ + + + + + + + + +
+ + +
+

+

Tips on writing TestCase for OpenJPA

+

You are welcome to contribute new test cases. Following are few suggestions +and guidelines on how to contribute new test case to OpenJPA repository of +2000 test cases spread across 400 classes.

+

Inherit from OpenJPA TestCases

+

Unit Tests are JUnit Tests. The base JUnit test case implementation +org.junit.TestCase has been extended to facilitate common +initialization steps or configuration settings for unit testing OpenJPA. +The inheritance hierarchy is: +

+        
+            junit.framework.TestCase
+               +-- org.apache.openjpa.persistence.test.PersistenceTestCase
+                   +-- org.apache.openjpa.persistence.test.SingleEMFTestCase
+                  +-- org.apache.openjpa.persistence.test.SQLListenerTestCase
+        
+
+As a test developer, you should inherit your test class from one of the +extended TestCases. In general, SingleEMFTestCase is a good candidate +to inherit from. If your test needs to analyze or count number of SQL +statements, SQLListenerTestCase should be your choice.

+

Use correct name and package for test case and entity classes

+
    +
  • Test case should be in a separate sub-package of +org.apache.openjpa.persistence. or org.apache.openjpa.persistence.jdbc.*
  • +
  • Test case class names must start with "Test" e.g. TestEagerFetch
  • +
  • There are hundreds of testable entity classes. But if your test requires +new entity classes, place them in the same package as that of the new Test +cases.
  • +
+

setUp() and tearDown()}

+
    +
  • OpenJPA TestCases augment the setUp() method to accept a list of +arguments. In this list, you should specify:
  • +
  • the entity classes used by your test
  • +
  • the critical configuration properties
  • +
  • +

    CLEAR_TABLES or DROP_TABLES : these are constants declared in +the superclass which clears the existing rows or drops the tables +altogether.

    +
  • +
  • +

    The following is an example setUp() method +

    +        
    +            public void setUp() throws Exception {
    +                super.setUp(CLEAR_TABLES,               // clears records for domain classes
    +                  Candidate.class, Election.class,      // registers Candidate and Election as persistence-capable entity
    +                  "openjpa.Multithreaded", "true",      // sets configuration property as name-value pairs
    +                  "openjpa.Log", "SQL=TRACE");     
    + } +
    +

    +
  • +
  • +

    Notice that some configuration parameters can be set in the setUp() +method of test program itself. This is recommended for properties that are +important for your test. The non-critical parameters such as database +connection properties (unless your test is about some specific aspect of a +particular database) are better be specified in +META-INF/persistence.xml. The persistence name can be specified by +overwriting the following method: +

    +        
    +        protected String getPersistenceUnitName() {
    +                return "test-eager-fetch";
    +        }
    +        
    +

    +
  • +
  • +

    SingleEMFTestCase ensures that tearDown() method deletes all rows +for the domain classes involved in your test. You may want the database +records to remain for analysis especially when tests are failing. In that +case, you may consider suppressing the superclass behavior of +tearDown() by simply nullifying the method as +

    +        
    +            public void tearDown() throws Exception {
    +                 // avoids super class to delete all records
    +            }
    +        
    +

    +
  • +
+

Annotate O-R Mapping

+

Prefer annotation over XML Descriptors for O-R Mapping because that helps +to collocate relevant information. Unless, of course, the test is specific +about variations in behavior across annotation and XML Descriptors.

+

Use JUnit assert*() methods

+

For verification, use many assertion methods provided by JUnit e.g. +assertEquals() or assertTrue() rather than depending on printing +trace with System.out.println(). If you want to trace generated SQL or +other runtime information, use appropriate openjpa.Log property +settings.

+

Create JIRA Issue

+

Create a JIRA issue. Refer to the JIRA issue in the comments section of the +new test case.

+

ASF License

+

Remember to include ASF License header in the comment section of all the +new source or resource files.

+

Attach the test to JIRA Issue

+

Package all the *.java files related to your test case in a JAR file and +attach it to JIRA issue you have created. +You must check in the radio button Grant license to ASF for inclusion in +ASF works that appears near the bottom of Attach File JIRA page.

+
+
+
+
+
+
+
+
+ +
+
+
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under Apache License 2.0.
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
+ Other names may be trademarks of their respective owners.
+
+ + + + + + From commits-return-10214-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 16:03:59 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 70743D82C for ; Mon, 10 Dec 2012 16:03:59 +0000 (UTC) Received: (qmail 78365 invoked by uid 500); 10 Dec 2012 16:03:59 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 78290 invoked by uid 500); 10 Dec 2012 16:03:58 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 78274 invoked by uid 99); 10 Dec 2012 16:03:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 16:03:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 16:03:56 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 38D3C2388906 for ; Mon, 10 Dec 2012 16:03:35 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841439 - /websites/production/openjpa/content/ Date: Mon, 10 Dec 2012 16:03:35 -0000 To: commits@openjpa.apache.org From: joes@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210160335.38D3C2388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: joes Date: Mon Dec 10 16:03:34 2012 New Revision: 841439 Log: Publishing svnmucc operation to openjpa site by joes Added: websites/production/openjpa/content/ - copied from r841438, websites/staging/openjpa/trunk/content/ From commits-return-10215-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 18:52:34 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 13C2CD846 for ; Mon, 10 Dec 2012 18:52:34 +0000 (UTC) Received: (qmail 31215 invoked by uid 500); 10 Dec 2012 18:52:34 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 31202 invoked by uid 500); 10 Dec 2012 18:52:33 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 31192 invoked by uid 99); 10 Dec 2012 18:52:33 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 18:52:33 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 18:52:31 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 304CE2388AA9; Mon, 10 Dec 2012 18:52:10 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419659 - in /openjpa/branches/2.0.x: ./ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Date: Mon, 10 Dec 2012 18:52:09 -0000 To: commits@openjpa.apache.org From: hthomann@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210185210.304CE2388AA9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hthomann Date: Mon Dec 10 18:52:09 2012 New Revision: 1419659 URL: http://svn.apache.org/viewvc?rev=1419659&view=rev Log: OPENJPA-2284: Save NPE while parsing cascade - back ported to 2.0.x Pinaki's commit to trunk. Modified: openjpa/branches/2.0.x/ (props changed) openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Propchange: openjpa/branches/2.0.x/ ------------------------------------------------------------------------------ Merged /openjpa/trunk:r1416742 Modified: openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1419659&r1=1419658&r2=1419659&view=diff ============================================================================== --- openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original) +++ openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Mon Dec 10 18:52:09 2012 @@ -1229,10 +1229,8 @@ public class XMLPersistenceMetaDataParse return; ValueMetaData vmd = fmd; - switch (_strategy) { - case ONE_MANY: - case MANY_MANY: - vmd = fmd.getElement(); + if (_strategy == ONE_MANY || _strategy == MANY_MANY) { + vmd = fmd.getElement(); } for (CascadeType cascade : cascades) { switch (cascade) { From commits-return-10216-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 19:49:45 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 37787DC9A for ; Mon, 10 Dec 2012 19:49:45 +0000 (UTC) Received: (qmail 52149 invoked by uid 500); 10 Dec 2012 19:49:45 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 52123 invoked by uid 500); 10 Dec 2012 19:49:45 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 52116 invoked by uid 99); 10 Dec 2012 19:49:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 19:49:45 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 19:49:42 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 1081D2388A4A; Mon, 10 Dec 2012 19:49:22 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419706 - /openjpa/site/trunk/content/documentation.mdtext Date: Mon, 10 Dec 2012 19:49:21 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210194922.1081D2388A4A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 19:49:21 2012 New Revision: 1419706 URL: http://svn.apache.org/viewvc?rev=1419706&view=rev Log: CMS commit to openjpa by kwsutter Modified: openjpa/site/trunk/content/documentation.mdtext Modified: openjpa/site/trunk/content/documentation.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/documentation.mdtext?rev=1419706&r1=1419705&r2=1419706&view=diff ============================================================================== --- openjpa/site/trunk/content/documentation.mdtext (original) +++ openjpa/site/trunk/content/documentation.mdtext Mon Dec 10 19:49:21 2012 @@ -1,256 +1,256 @@ -Title: Documentation - - -# OpenJPA Documentation - -The online OpenJPA documentation can be found here. - - -## Latest (2.3.0-SNAPSHOT) - - -| Version | HTML Manual | HTML Manual (Single Page) | PDF Manual | Javadocs | Schema | -| ------- | ----------- | ------------------------- | ---------- | -------- | ------ | -| Nightly build (trunk) | [manual](http://openjpa.apache.org/builds/latest/docs/docbook/manual/main.html)| [manual](http://openjpa.apache.org/builds/latest/docs/docbook/manual.html)| [manual](http://openjpa.apache.org/builds/latest/docs/docbook/manual.pdf)| [javadoc](http://openjpa.apache.org/builds/latest/docs/javadoc/index.html)| [schema](http://openjpa.apache.org/builds/latest/docs/schema/) | - - - - -## OpenJPA 2.2.x releases - -| Version | HTML Manual | HTML Manual (Single Page) | PDF Manual | Javadocs | -| ------- | ----------- | ------------------------- | ---------- | -------- | -| OpenJPA 2.2.1-SNAPSHOT | [manual](http://openjpa.apache.org/builds/apache-openjpa-2.2.1-SNAPSHOT/docs/docbook/manual/main.html) | [manual](http://openjpa.apache.org/builds/apache-openjpa-2.2.1-SNAPSHOT/docs/docbook/manual.html) | [manual](http://openjpa.apache.org/builds/apache-openjpa-2.2.1-SNAPSHOT/docs/docbook/manual.pdf) | [javadoc](http://openjpa.apache.org/builds/apache-openjpa-2.2.1-SNAPSHOT/docs/javadoc/index.html) | -| OpenJPA 2.2.0 | [manual](http://openjpa.apache.org/builds/2.2.0/apache-openjpa/docs/main.html) | [manual](http://openjpa.apache.org/builds/2.2.0/apache-openjpa/docs/manual.html) | [manual](http://openjpa.apache.org/builds/2.2.0/apache-openjpa/docs/manual.pdf) | [javadoc](http://openjpa.apache.org/builds/2.2.0/apidocs/index.html) | - - - - -## OpenJPA 2.1.x releases - - - - - - -
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 2.1.2-SNAPSHOT - manual - manual - manual - javadoc -
OpenJPA 2.1.1 - manual - manual - manual - manual -
OpenJPA 2.1.0 - manual - manual - manual - javadoc -
- - -## OpenJPA 2.0.x releases - - - - - - - - - - -
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 2.0.2-SNAPSHOT - manual - manual - manual - javadoc -
OpenJPA 2.0.1 - manual - manual - manual - javadoc -
OpenJPA 2.0.0 - manual - manual - manual - javadoc -
OpenJPA 2.0.0-beta3 - manual - manual - manual - javadoc -
OpenJPA 2.0.0-beta2 - manual - manual - manual - javadoc -
OpenJPA 2.0.0-beta - manual - manual - manual - javadoc -
OpenJPA 2.0.0-M3 - manual - manual - manual - javadoc -
- - - -## OpenJPA 1.3.x releases - - - - -
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 1.3.0-SNAPSHOT - manual - manual - manual - javadoc -
- - - -## OpenJPA 1.2.x releases - - - - - - - -
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 1.2.3-SNAPSHOT - manual - manual - manual - javadoc -
OpenJPA 1.2.2 - manual - manual - manual - javadoc -
OpenJPA 1.2.1 - manual - manual - manual - javadoc -
OpenJPA 1.2.0 - manual - manual - manual - javadoc -
- - -## OpenJPA 1.1.x releases - - - - -
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 1.1.0 - manual - manual - manual - javadoc -
- - -## OpenJPA 1.0.x releases - - - - - - - - - -
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 1.0.5-SNAPSHOT - manual - manual - manual - javadoc -
OpenJPA 1.0.4 - manual - manual - manual - javadoc -
OpenJPA 1.0.3 - manual - manual - manual - javadoc -
OpenJPA 1.0.2 - manual - manual - manual - javadoc -
OpenJPA 1.0.1 - manual - manual - manual - javadoc -
OpenJPA 1.0.0 - manual - manual - manual - javadoc -
- - -## Incubating releases - - - - - - +Title: Documentation + + +# OpenJPA Documentation + +The online OpenJPA documentation can be found here. + + +## Latest (2.3.0-SNAPSHOT) + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual -Javadocs
OpenJPA 0.9.7 - manual - javadoc -
OpenJPA 0.9.6 - manual - javadoc -
OpenJPA 0.9.0 - manual - javadoc -
+ + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs Schema
Nightly build (trunk) + manual + manual + manual + javadoc + schema +
+ + +## OpenJPA 2.2.x releases + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 2.2.1-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 2.2.0 + manual + manual + manual + javadoc +
+ + + +## OpenJPA 2.1.x releases + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 2.1.2-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 2.1.1 + manual + manual + manual + manual +
OpenJPA 2.1.0 + manual + manual + manual + javadoc +
+ + +## OpenJPA 2.0.x releases + + + + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 2.0.2-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 2.0.1 + manual + manual + manual + javadoc +
OpenJPA 2.0.0 + manual + manual + manual + javadoc +
OpenJPA 2.0.0-beta3 + manual + manual + manual + javadoc +
OpenJPA 2.0.0-beta2 + manual + manual + manual + javadoc +
OpenJPA 2.0.0-beta + manual + manual + manual + javadoc +
OpenJPA 2.0.0-M3 + manual + manual + manual + javadoc +
+ + + +## OpenJPA 1.3.x releases + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.3.0-SNAPSHOT + manual + manual + manual + javadoc +
+ + + +## OpenJPA 1.2.x releases + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.2.3-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 1.2.2 + manual + manual + manual + javadoc +
OpenJPA 1.2.1 + manual + manual + manual + javadoc +
OpenJPA 1.2.0 + manual + manual + manual + javadoc +
+ + +## OpenJPA 1.1.x releases + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.1.0 + manual + manual + manual + javadoc +
+ + +## OpenJPA 1.0.x releases + + + + + + + + + +
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 1.0.5-SNAPSHOT + manual + manual + manual + javadoc +
OpenJPA 1.0.4 + manual + manual + manual + javadoc +
OpenJPA 1.0.3 + manual + manual + manual + javadoc +
OpenJPA 1.0.2 + manual + manual + manual + javadoc +
OpenJPA 1.0.1 + manual + manual + manual + javadoc +
OpenJPA 1.0.0 + manual + manual + manual + javadoc +
+ + +## Incubating releases + + + + + + From commits-return-10217-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 19:49:53 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 61C35DC9F for ; Mon, 10 Dec 2012 19:49:53 +0000 (UTC) Received: (qmail 52455 invoked by uid 500); 10 Dec 2012 19:49:53 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 52436 invoked by uid 500); 10 Dec 2012 19:49:53 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 52429 invoked by uid 99); 10 Dec 2012 19:49:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 19:49:53 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 19:49:50 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E66282388AB9 for ; Mon, 10 Dec 2012 19:49:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841509 - in /websites/staging/openjpa/trunk/content: ./ documentation.html Date: Mon, 10 Dec 2012 19:49:28 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210194928.E66282388AB9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Mon Dec 10 19:49:28 2012 New Revision: 841509 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/documentation.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Mon Dec 10 19:49:28 2012 @@ -1 +1 @@ -1418933 +1419706 Modified: websites/staging/openjpa/trunk/content/documentation.html ============================================================================== --- websites/staging/openjpa/trunk/content/documentation.html (original) +++ websites/staging/openjpa/trunk/content/documentation.html Mon Dec 10 19:49:28 2012 @@ -22,7 +22,7 @@ limitations under the License. - + @@ -68,7 +68,7 @@ limitations under the License.
@@ -141,29 +141,12 @@ limitations under the License.

The online OpenJPA documentation can be found here.

Latest (2.3.0-SNAPSHOT)

-
Version HTML Manual HTML Manual (Single Page) PDF Manual +Javadocs
OpenJPA 0.9.7 + manual + javadoc +
OpenJPA 0.9.6 + manual + javadoc +
OpenJPA 0.9.0 + manual + javadoc +
- - - - - - - - - - - - - - - - - - - - -
VersionHTML ManualHTML Manual (Single Page)PDF ManualJavadocsSchema
Nightly build (trunk)manualmanualmanualjavadocschema
- + @@ -175,38 +158,16 @@ Javadocs
Version HTML Manual HTML Manual (Single Page) PDF Manual Javadocs Schema
Schema
schema
--->

OpenJPA 2.2.x releases

- - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionHTML ManualHTML Manual (Single Page)PDF ManualJavadocs
OpenJPA 2.2.1-SNAPSHOTmanualmanualmanualjavadoc
OpenJPA 2.2.0manualmanualmanualjavadoc
+ @@ -223,7 +184,6 @@ Javadocs
Version HTML Manual HTML Manual (Single Page) PDF Manual Javadocs
javadoc
--->

OpenJPA 2.1.x releases

From commits-return-10218-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 19:50:42 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8CF72DCAC for ; Mon, 10 Dec 2012 19:50:42 +0000 (UTC) Received: (qmail 55754 invoked by uid 500); 10 Dec 2012 19:50:42 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 55732 invoked by uid 500); 10 Dec 2012 19:50:42 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 55725 invoked by uid 99); 10 Dec 2012 19:50:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 19:50:42 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 19:50:41 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 893BE23889BB for ; Mon, 10 Dec 2012 19:50:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841510 - /websites/production/openjpa/content/ Date: Mon, 10 Dec 2012 19:50:21 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210195021.893BE23889BB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 19:50:21 2012 New Revision: 841510 Log: Publishing svnmucc operation to openjpa site by kwsutter Added: websites/production/openjpa/content/ - copied from r841509, websites/staging/openjpa/trunk/content/ From commits-return-10219-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 20:12:26 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AB532DE0F for ; Mon, 10 Dec 2012 20:12:26 +0000 (UTC) Received: (qmail 35600 invoked by uid 500); 10 Dec 2012 20:12:26 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 35566 invoked by uid 500); 10 Dec 2012 20:12:26 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 35546 invoked by uid 99); 10 Dec 2012 20:12:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:12:26 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:12:23 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E1EC023888CD; Mon, 10 Dec 2012 20:12:01 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419716 - /openjpa/site/trunk/content/found-a-bug.mdtext Date: Mon, 10 Dec 2012 20:12:01 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210201201.E1EC023888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 20:12:01 2012 New Revision: 1419716 URL: http://svn.apache.org/viewvc?rev=1419716&view=rev Log: clean up links and references Modified: openjpa/site/trunk/content/found-a-bug.mdtext Modified: openjpa/site/trunk/content/found-a-bug.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/found-a-bug.mdtext?rev=1419716&r1=1419715&r2=1419716&view=diff ============================================================================== --- openjpa/site/trunk/content/found-a-bug.mdtext (original) +++ openjpa/site/trunk/content/found-a-bug.mdtext Mon Dec 10 20:12:01 2012 @@ -1,73 +1,79 @@ -Title: Found a Bug - - - -## Found a Bug? - -If you think you've found a problem with OpenJPA, there are several ways to -proceed. - -You can begin by raising the issue on the OpenJPA User or Developer mailing -lists (see [Mailing Lists](mailing-lists.html) -). - -You can also search JIRA, our issue-tracking system, to see if the problem -has already been noted (visit [JIRA](http://issues.apache.org/jira/browse/OPENJPA) -). If the issue is not listed there, you can add a new JIRA issue -describing it. Please include detailed steps to reproduce the problem. - -If you have a fix for the issue, you can generate a patch file to send the -fix to us. You need to check out the current source code from Subversion -(see [Source Code](source-code.html) -), make the necessary changes (see [Coding Standards] -), and then do a full build with all tests enabled (see [Building] -) and make sure the unit tests runs as expected (try {{maven clean -install}} to run a full build), and of course, confirm that the problem is -actually fixed. Then, go to the root directory of your OpenJPA checkout, -and run a command like {{svn diff > -OPENJPA--.patch}} to generate a patch file. - -To submit a patch, create an issue in JIRA that describes the problem, add -your patch file as an attachment (don't forget to select the "Grant license -to ASF for inclusion in ASF works" option), and then edit the JIRA to -select the [Patch Available](https://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12313253) - check box. Please include detailed steps to reproduce the problem in the -issue description, and a test case in the patch where possible (see [Testing] -). - -For larger contributions, like new features or more complex bug fixes, you -should also have an [Individual Contributor License Agreement](http://www.apache.org/licenses/#clas) - on file with the ASF. - - -Thanks for working with us to improve Apache OpenJPA! - - -## Reporting Security Vulnerabilities - -The Apache Software Foundation takes a very active stance in eliminating -security problems and denial of service attacks against the code we -provide. - -We strongly encourage folks to report any such problems discovered in -OpenJPA to our private PMC mailing list [mailto:private@openjpa.apache.org](mailto:private@openjpa.apache.org.html) - first, before disclosing them in a public forum. - -Please note that the private PMC mailing list should only be used for -reporting undisclosed security vulnerabilities and managing the process of -fixing such vulnerabilities until they are made public. We will not accept -regular bug reports or other general user queries at this address. - -If you need to report a bug that is already a disclosed security -vulnerability, please use the regular bug reporting process above. - -Questions about: - -* how to securely configure OpenJPA -* if a vulnerability applies to your particular application or OpenJPA level -* obtaining further information on a published vulnerability -* availability of patches and/or new releases - -should be address to the users mailing list. Please see the [Mailing Lists](mailing-lists.html) - page for details of how to subscribe. - +Title: Found a Bug + + + + +## Found a Bug? + +If you think you've found a problem with OpenJPA, there are several ways to +proceed. + +You can begin by raising the issue on the OpenJPA User or Developer mailing +lists (see [Mailing Lists](mailing-lists.html) +). + +You can also search JIRA, our issue-tracking system, to see if the problem +has already been noted (visit [JIRA](http://issues.apache.org/jira/browse/OPENJPA) +). If the issue is not listed there, you can add a new JIRA issue +describing it. Please include detailed steps to reproduce the problem. + +If you have a fix for the issue, you can generate a patch file to send the +fix to us. You need to check out the current source code from Subversion +(see [Source Code](source-code.html) +), make the necessary changes (see [Coding Standards](coding-standards.html) +), and then do a full build with all tests enabled (see [Building](building.html) +) and make sure the unit tests runs as expected (try to run a full build), + + maven clean install + +and of course, confirm that the problem is +actually fixed. Then, go to the root directory of your OpenJPA checkout, +and run a command like + + svn diff > OPENJPA--.patch + +to generate a patch file. + +To submit a patch, create an issue in JIRA that describes the problem, add +your patch file as an attachment (don't forget to select the "Grant license +to ASF for inclusion in ASF works" option), and then edit the JIRA to +select the [Patch Available](https://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12313253) + check box. Please include detailed steps to reproduce the problem in the +issue description, and a test case in the patch where possible (see [Testing](testing.html)). + +For larger contributions, like new features or more complex bug fixes, you +should also have an [Individual Contributor License Agreement](http://www.apache.org/licenses/#clas) + on file with the ASF. + + +Thanks for working with us to improve Apache OpenJPA! + + +## Reporting Security Vulnerabilities + +The Apache Software Foundation takes a very active stance in eliminating +security problems and denial of service attacks against the code we +provide. + +We strongly encourage folks to report any such problems discovered in +OpenJPA to our private PMC mailing list [mailto:private@openjpa.apache.org](mailto:private@openjpa.apache.org.html) + first, before disclosing them in a public forum. + +Please note that the private PMC mailing list should only be used for +reporting undisclosed security vulnerabilities and managing the process of +fixing such vulnerabilities until they are made public. We will not accept +regular bug reports or other general user queries at this address. + +If you need to report a bug that is already a disclosed security +vulnerability, please use the regular bug reporting process above. + +Questions about: + +* how to securely configure OpenJPA +* if a vulnerability applies to your particular application or OpenJPA level +* obtaining further information on a published vulnerability +* availability of patches and/or new releases + +should be address to the users mailing list. Please see the [Mailing Lists](mailing-lists.html) + page for details of how to subscribe. + From commits-return-10220-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 20:12:28 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D7732DE13 for ; Mon, 10 Dec 2012 20:12:28 +0000 (UTC) Received: (qmail 35735 invoked by uid 500); 10 Dec 2012 20:12:28 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 35682 invoked by uid 500); 10 Dec 2012 20:12:28 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 35675 invoked by uid 99); 10 Dec 2012 20:12:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:12:28 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:12:27 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 358F02388AB9 for ; Mon, 10 Dec 2012 20:12:07 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841512 - in /websites/staging/openjpa/trunk/content: ./ found-a-bug.html Date: Mon, 10 Dec 2012 20:12:07 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210201207.358F02388AB9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Mon Dec 10 20:12:06 2012 New Revision: 841512 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/found-a-bug.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Mon Dec 10 20:12:06 2012 @@ -1 +1 @@ -1419706 +1419716 Modified: websites/staging/openjpa/trunk/content/found-a-bug.html ============================================================================== --- websites/staging/openjpa/trunk/content/found-a-bug.html (original) +++ websites/staging/openjpa/trunk/content/found-a-bug.html Mon Dec 10 20:12:06 2012 @@ -22,7 +22,7 @@ limitations under the License. - + @@ -68,7 +68,7 @@ limitations under the License.
@@ -151,20 +151,27 @@ describing it. Please include detailed s

If you have a fix for the issue, you can generate a patch file to send the fix to us. You need to check out the current source code from Subversion (see Source Code -), make the necessary changes (see [Coding Standards] -), and then do a full build with all tests enabled (see [Building] -) and make sure the unit tests runs as expected (try {{maven clean -install}} to run a full build), and of course, confirm that the problem is +), make the necessary changes (see Coding Standards +), and then do a full build with all tests enabled (see Building +) and make sure the unit tests runs as expected (try to run a full build),

+
 maven clean install
+
+ + +

and of course, confirm that the problem is actually fixed. Then, go to the root directory of your OpenJPA checkout, -and run a command like {{svn diff > -OPENJPA--.patch}} to generate a patch file.

+and run a command like

+
 svn diff > OPENJPA-<JIRA_NUMBER>-<BRANCH_ID>.patch
+
+ + +

to generate a patch file.

To submit a patch, create an issue in JIRA that describes the problem, add your patch file as an attachment (don't forget to select the "Grant license to ASF for inclusion in ASF works" option), and then edit the JIRA to select the Patch Available check box. Please include detailed steps to reproduce the problem in the -issue description, and a test case in the patch where possible (see [Testing] -).

+issue description, and a test case in the patch where possible (see Testing).

For larger contributions, like new features or more complex bug fixes, you should also have an Individual Contributor License Agreement on file with the ASF.

From commits-return-10221-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 20:13:04 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0BEA1DE1E for ; Mon, 10 Dec 2012 20:13:04 +0000 (UTC) Received: (qmail 38185 invoked by uid 500); 10 Dec 2012 20:13:04 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 38140 invoked by uid 500); 10 Dec 2012 20:13:03 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 38129 invoked by uid 99); 10 Dec 2012 20:13:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:13:03 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:13:01 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id ED4C923888CD for ; Mon, 10 Dec 2012 20:12:40 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841513 - /websites/production/openjpa/content/ Date: Mon, 10 Dec 2012 20:12:40 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210201240.ED4C923888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 20:12:40 2012 New Revision: 841513 Log: Publishing svnmucc operation to openjpa site by kwsutter Added: websites/production/openjpa/content/ - copied from r841512, websites/staging/openjpa/trunk/content/ From commits-return-10222-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 20:32:23 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 72373D025 for ; Mon, 10 Dec 2012 20:32:23 +0000 (UTC) Received: (qmail 2557 invoked by uid 500); 10 Dec 2012 20:32:23 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 2514 invoked by uid 500); 10 Dec 2012 20:32:23 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 2506 invoked by uid 99); 10 Dec 2012 20:32:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:32:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:32:21 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 392FB2388AB9; Mon, 10 Dec 2012 20:32:00 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419734 - in /openjpa/branches/2.1.x: ./ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Date: Mon, 10 Dec 2012 20:31:59 -0000 To: commits@openjpa.apache.org From: hthomann@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210203200.392FB2388AB9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hthomann Date: Mon Dec 10 20:31:59 2012 New Revision: 1419734 URL: http://svn.apache.org/viewvc?rev=1419734&view=rev Log: OPENJPA-2284: Save NPE while parsing cascade - back ported to 2.1.x Pinaki's commit to trunk. Modified: openjpa/branches/2.1.x/ (props changed) openjpa/branches/2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Propchange: openjpa/branches/2.1.x/ ------------------------------------------------------------------------------ Merged /openjpa/branches/2.0.x:r1419659 Merged /openjpa/trunk:r1416742 Modified: openjpa/branches/2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1419734&r1=1419733&r2=1419734&view=diff ============================================================================== --- openjpa/branches/2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original) +++ openjpa/branches/2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Mon Dec 10 20:31:59 2012 @@ -1230,10 +1230,8 @@ public class XMLPersistenceMetaDataParse return; ValueMetaData vmd = fmd; - switch (_strategy) { - case ONE_MANY: - case MANY_MANY: - vmd = fmd.getElement(); + if (_strategy == ONE_MANY || _strategy == MANY_MANY) { + vmd = fmd.getElement(); } for (CascadeType cascade : cascades) { switch (cascade) { From commits-return-10223-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 20:36:27 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7D9EDD053 for ; Mon, 10 Dec 2012 20:36:27 +0000 (UTC) Received: (qmail 18140 invoked by uid 500); 10 Dec 2012 20:36:27 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 18117 invoked by uid 500); 10 Dec 2012 20:36:27 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 18109 invoked by uid 99); 10 Dec 2012 20:36:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:36:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:36:26 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 5E6E22388ABB; Mon, 10 Dec 2012 20:36:06 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419739 - in /openjpa/branches/2.2.1.x: ./ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Date: Mon, 10 Dec 2012 20:36:06 -0000 To: commits@openjpa.apache.org From: hthomann@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210203606.5E6E22388ABB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hthomann Date: Mon Dec 10 20:36:05 2012 New Revision: 1419739 URL: http://svn.apache.org/viewvc?rev=1419739&view=rev Log: OPENJPA-2284: Save NPE while parsing cascade - back ported to 2.2.1.x Pinaki's commit to trunk. Modified: openjpa/branches/2.2.1.x/ (props changed) openjpa/branches/2.2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Propchange: openjpa/branches/2.2.1.x/ ------------------------------------------------------------------------------ Merged /openjpa/branches/2.0.x:r1419659 Merged /openjpa/trunk:r1416742 Modified: openjpa/branches/2.2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1419739&r1=1419738&r2=1419739&view=diff ============================================================================== --- openjpa/branches/2.2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original) +++ openjpa/branches/2.2.1.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Mon Dec 10 20:36:05 2012 @@ -1361,10 +1361,8 @@ public class XMLPersistenceMetaDataParse return; ValueMetaData vmd = fmd; - switch (_strategy) { - case ONE_MANY: - case MANY_MANY: - vmd = fmd.getElement(); + if (_strategy == ONE_MANY || _strategy == MANY_MANY) { + vmd = fmd.getElement(); } for (CascadeType cascade : cascades) { switch (cascade) { From commits-return-10224-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 20:42:51 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B31EFD0F3 for ; Mon, 10 Dec 2012 20:42:51 +0000 (UTC) Received: (qmail 46610 invoked by uid 500); 10 Dec 2012 20:42:51 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 46543 invoked by uid 500); 10 Dec 2012 20:42:51 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 46534 invoked by uid 99); 10 Dec 2012 20:42:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:42:51 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 20:42:49 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 704DD2388AB9; Mon, 10 Dec 2012 20:42:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419745 - in /openjpa/branches/2.2.x: ./ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Date: Mon, 10 Dec 2012 20:42:28 -0000 To: commits@openjpa.apache.org From: hthomann@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210204228.704DD2388AB9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hthomann Date: Mon Dec 10 20:42:27 2012 New Revision: 1419745 URL: http://svn.apache.org/viewvc?rev=1419745&view=rev Log: OPENJPA-2284: Save NPE while parsing cascade - back ported to 2.2.x Pinaki's commit to trunk. Modified: openjpa/branches/2.2.x/ (props changed) openjpa/branches/2.2.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Propchange: openjpa/branches/2.2.x/ ------------------------------------------------------------------------------ Merged /openjpa/trunk:r1416742 Modified: openjpa/branches/2.2.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1419745&r1=1419744&r2=1419745&view=diff ============================================================================== --- openjpa/branches/2.2.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original) +++ openjpa/branches/2.2.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Mon Dec 10 20:42:27 2012 @@ -1361,10 +1361,8 @@ public class XMLPersistenceMetaDataParse return; ValueMetaData vmd = fmd; - switch (_strategy) { - case ONE_MANY: - case MANY_MANY: - vmd = fmd.getElement(); + if (_strategy == ONE_MANY || _strategy == MANY_MANY) { + vmd = fmd.getElement(); } for (CascadeType cascade : cascades) { switch (cascade) { From commits-return-10225-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:09:00 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E09B4DA64 for ; Mon, 10 Dec 2012 22:09:00 +0000 (UTC) Received: (qmail 75084 invoked by uid 500); 10 Dec 2012 22:09:00 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 75068 invoked by uid 500); 10 Dec 2012 22:09:00 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 75060 invoked by uid 99); 10 Dec 2012 22:09:00 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:09:00 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:08:57 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4308B23888E7; Mon, 10 Dec 2012 22:08:36 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419830 - /openjpa/site/trunk/content/quick-start.mdtext Date: Mon, 10 Dec 2012 22:08:36 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210220836.4308B23888E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 22:08:35 2012 New Revision: 1419830 URL: http://svn.apache.org/viewvc?rev=1419830&view=rev Log: Clarifying text in Quick Start for Entity Enhancement Modified: openjpa/site/trunk/content/quick-start.mdtext Modified: openjpa/site/trunk/content/quick-start.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/quick-start.mdtext?rev=1419830&r1=1419829&r2=1419830&view=diff ============================================================================== --- openjpa/site/trunk/content/quick-start.mdtext (original) +++ openjpa/site/trunk/content/quick-start.mdtext Mon Dec 10 22:08:35 2012 @@ -1,84 +1,84 @@ -Title: Quick Start - - - -Quick Start Guide -============================= - -We know it can be hard to find the right help sometimes and search engines -can be overwhelming, so we will try to put the most commonly asked for -topics with some overview and links to more in-depth resources here for you -to checkout, before wasting your time searching through our [Documentation](documentation.html) - and [Mailing Lists] - for help. - - - - -## Runtime Dependencies - -To use OpenJPA as a stand-alone Java component or with a lightweight -non-Java EE framework, please refer to the following [Build and Runtime Dependencies](build-and-runtime-dependencies.html) - page for the supported levels of Java SE. - -To use OpenJPA in a Java EE application server, please refer to the -following [Integration](integration.html) - page for the known platforms that either include OpenJPA or have been -tested with OpenJPA. - - - -## JPA Examples - -OpenJPA provides some simple examples as part of the binary distribution on -the [Downloads](downloads.html) - page. The following [Samples] - page provides quick start instructions on how to build and run these -samples, along with pointers to other JPA samples from the Apache Geronimo -project. - - - -## Enhancing Entities - -The JPA spec requires some type of monitoring of Entity objects, but the -spec does not define how to implement this monitoring. Some JPA providers -auto-generate new subclasses or proxy objects that front the user's Entity -objects at *runtime*, while others use byte-code weaving technologies to -enhance the actual Entity class objects at __build time__. OpenJPA supports -both [enhancement](entity-enhancement.html) - methods, but strongly suggests only using the __build time__ enhancement. -The following [Entity Enhancement] - page includes more details on both enhancement types, along with examples -on how to setup *build time* enhancement in ANT, Maven and Eclipse -environments. - - - -## Tools - -OpenJPA provides several design-time and runtime tools, to perform such -tasks as entity enhancement, schema mapping, generating metamodel classes -and to help migrate from other JPA providers. Please checkout the [Tools](tools.html) - page for more details. - - - -## FAQ - -Some common questions concerning the history, architecture and usage of -OpenJPA can be found on the [FAQ](faq.html) - page. - - - -## Take the Red Pill - -If you want to dive into the rabbit-hole (Hey, It's open source!), then -checkout the [Found a Bug](found-a-bug.html) - page, which covers everything from posting questions to our mailing lists, -to getting the source code and building it, and creating bug patches.... - - - - +Title: Quick Start + + + +Quick Start Guide +============================= + +We know it can be hard to find the right help sometimes and search engines +can be overwhelming, so we will try to put the most commonly asked for +topics with some overview and links to more in-depth resources here for you +to checkout, before wasting your time searching through our [Documentation](documentation.html) + and [Mailing Lists] + for help. + + + + +## Runtime Dependencies + +To use OpenJPA as a stand-alone Java component or with a lightweight +non-Java EE framework, please refer to the following [Build and Runtime Dependencies](build-and-runtime-dependencies.html) + page for the supported levels of Java SE. + +To use OpenJPA in a Java EE application server, please refer to the +following [Integration](integration.html) + page for the known platforms that either include OpenJPA or have been +tested with OpenJPA. + + + +## JPA Examples + +OpenJPA provides some simple examples as part of the binary distribution on +the [Downloads](downloads.html) + page. The following [Samples] + page provides quick start instructions on how to build and run these +samples, along with pointers to other JPA samples from the Apache Geronimo +project. + + + +## Enhancing Entities + +The JPA spec requires some type of monitoring of Entity objects, but the +spec does not define how to implement this monitoring. Some JPA providers +dynamically generate new subclasses or proxy objects that front the user's Entity +objects, while others use *byte-code weaving* technologies to +enhance the actual Entity class objects. OpenJPA supports +both [enhancement](entity-enhancement.html) + methods, but strongly suggests using the *byte-code weaving* enhancement. +The following [Entity Enhancement](entity-enhancement.html) + page includes more details on both enhancement types, along with examples +on how to setup *build time* enhancement in ANT, Maven and Eclipse +environments. + + + +## Tools + +OpenJPA provides several design-time and runtime tools, to perform such +tasks as entity enhancement, schema mapping, generating metamodel classes +and to help migrate from other JPA providers. Please checkout the [Tools](tools.html) + page for more details. + + + +## FAQ + +Some common questions concerning the history, architecture and usage of +OpenJPA can be found on the [FAQ](faq.html) + page. + + + +## Take the Red Pill + +If you want to dive into the rabbit-hole (Hey, It's open source!), then +checkout the [Found a Bug](found-a-bug.html) + page, which covers everything from posting questions to our mailing lists, +to getting the source code and building it, and creating bug patches.... + + + + From commits-return-10226-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:09:15 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1AE16DA68 for ; Mon, 10 Dec 2012 22:09:15 +0000 (UTC) Received: (qmail 76444 invoked by uid 500); 10 Dec 2012 22:09:15 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 76422 invoked by uid 500); 10 Dec 2012 22:09:15 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 76413 invoked by uid 99); 10 Dec 2012 22:09:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:09:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:09:13 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 671DC238899C for ; Mon, 10 Dec 2012 22:08:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841561 - in /websites/staging/openjpa/trunk/content: ./ quick-start.html Date: Mon, 10 Dec 2012 22:08:53 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210220853.671DC238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Mon Dec 10 22:08:52 2012 New Revision: 841561 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/quick-start.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Mon Dec 10 22:08:52 2012 @@ -1 +1 @@ -1419716 +1419830 Modified: websites/staging/openjpa/trunk/content/quick-start.html ============================================================================== --- websites/staging/openjpa/trunk/content/quick-start.html (original) +++ websites/staging/openjpa/trunk/content/quick-start.html Mon Dec 10 22:08:52 2012 @@ -22,7 +22,7 @@ limitations under the License. - + @@ -68,7 +68,7 @@ limitations under the License.
@@ -165,12 +165,12 @@ project.

Enhancing Entities

The JPA spec requires some type of monitoring of Entity objects, but the spec does not define how to implement this monitoring. Some JPA providers -auto-generate new subclasses or proxy objects that front the user's Entity -objects at runtime, while others use byte-code weaving technologies to -enhance the actual Entity class objects at build time. OpenJPA supports +dynamically generate new subclasses or proxy objects that front the user's Entity +objects, while others use byte-code weaving technologies to +enhance the actual Entity class objects. OpenJPA supports both enhancement - methods, but strongly suggests only using the build time enhancement. -The following [Entity Enhancement] + methods, but strongly suggests using the byte-code weaving enhancement. +The following Entity Enhancement page includes more details on both enhancement types, along with examples on how to setup build time enhancement in ANT, Maven and Eclipse environments.

From commits-return-10227-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:10:23 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 750EADAF9 for ; Mon, 10 Dec 2012 22:10:23 +0000 (UTC) Received: (qmail 98024 invoked by uid 500); 10 Dec 2012 22:10:23 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 98004 invoked by uid 500); 10 Dec 2012 22:10:23 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 97993 invoked by uid 99); 10 Dec 2012 22:10:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:10:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:10:18 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id D880F23888E7 for ; Mon, 10 Dec 2012 22:09:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841562 - /websites/production/openjpa/content/ Date: Mon, 10 Dec 2012 22:09:57 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210220957.D880F23888E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 22:09:57 2012 New Revision: 841562 Log: Publishing svnmucc operation to openjpa site by kwsutter Added: websites/production/openjpa/content/ - copied from r841561, websites/staging/openjpa/trunk/content/ From commits-return-10228-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:45:00 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C9431DEE7 for ; Mon, 10 Dec 2012 22:45:00 +0000 (UTC) Received: (qmail 67636 invoked by uid 500); 10 Dec 2012 22:45:00 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 67616 invoked by uid 500); 10 Dec 2012 22:45:00 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 67609 invoked by uid 99); 10 Dec 2012 22:45:00 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:45:00 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:44:54 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 6EA092388906; Mon, 10 Dec 2012 22:44:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1419851 - /openjpa/site/trunk/content/images/fotolia/ Date: Mon, 10 Dec 2012 22:44:32 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210224432.6EA092388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 22:44:30 2012 New Revision: 1419851 URL: http://svn.apache.org/viewvc?rev=1419851&view=rev Log: Integrating fotolia images into content folder... Added: openjpa/site/trunk/content/images/fotolia/ openjpa/site/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_S.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_7197687_S.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Clock.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Document.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Download.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Information.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Mail.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Search.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_Question.png (with props) openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg (with props) openjpa/site/trunk/content/images/fotolia/License.html openjpa/site/trunk/content/images/fotolia/Readme.txt Added: openjpa/site/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_S.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_S.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_S.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_7197687_S.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_7197687_S.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_7197687_S.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Clock.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Clock.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Clock.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Document.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Document.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Document.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Download.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Download.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Download.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Information.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Information.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Information.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Mail.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Mail.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Mail.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Search.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Search.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_Search.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_Question.png URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_Question.png?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_Question.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg?rev=1419851&view=auto ============================================================================== Binary file - no diff available. Propchange: openjpa/site/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openjpa/site/trunk/content/images/fotolia/License.html URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/License.html?rev=1419851&view=auto ============================================================================== --- openjpa/site/trunk/content/images/fotolia/License.html (added) +++ openjpa/site/trunk/content/images/fotolia/License.html Mon Dec 10 22:44:30 2012 @@ -0,0 +1,330 @@ + + + + +Contract : sell / default license + + + + +
+

Content download agreement (Standard License)

+ + +

+This agreement (this "Agreement") shall be binding upon Fotolia LLC ("Fotolia") and any member (the "Non-Exclusive Downloading Member") who downloads a photograph, illustration, image or other pictorial or graphic work (the "Work") from the + +Fotolia.com + + website. The Non-Exclusive Downloading Member acknowledges and agrees that he or she shall be bound by the terms and conditions of this Agreement and that this Agreement applies to each Work that the Non-Exclusive Downloading Member downloads. +

+ +

+ +1. +No Sale +

+ +

+The Non-Exclusive Downloading Member acknowledges and agrees that this Agreement does not effectuate any sale of the Work. Except for the rights specifically sublicensed under this Agreement, the Non-Exclusive Downloading Member shall not have any right, title or interest in or to, and in any event shall have no ownership of, the Work, including any copyright and other intellectual property rights. +

+ +

+ +2. +Sublicense +

+

+Subject to the terms and conditions of this Agreement, Fotolia hereby grants to the Non-Exclusive Downloading Member a non-exclusive, perpetual, worldwide, non-transferable sublicense to use, reproduce or display the Work an unlimited number of times in the authorized media solely for (a) personal or educational purposes and (b) in connection with the operation of a business. +However, the Non-Exclusive Downloading Member shall have no right to sell or distribute for sale the Work or any reproductions thereof, whether alone or incorporated or together with or onto any item of merchandise or other work of authorship, in any media or format now or hereafter known which primary value lies in the Work itself. The Non-Exclusive Downloading Member shall have no right to grant further sublicenses. +The Non-Exclusive Downloading Member shall have the right to transfer files containing the Work or permitted derivative works to direct clients, customers, and employees, or have the Work reproduced by subcontractors, provided that such subcontractors agree to abide by the restrictions of this agreement. In the normal course of workflow, the Non-Exclusive Downloading Member may also convey to a third party (such as a printer) temporary copies of the Work that are integral to the work product and without which the work product could not be completed. Third parties and subcontractors shall have no further or additional rights to use the Work and cannot access or extract it from any other file provided. +The Non-Eclusive Downloading Member may create a digital library, network configuration or similar arrangement to allow the Work to be viewed by their employees, partners and clients. +The Non-Exclusive Downloading Member shall pay to Fotolia a sublicense fee in accordance with Fotolia"s + +Standard pricing and payment policies + +. Notwithstanding anything to the contrary contained in this Agreement, with respect to electronic formats, the Non-Exclusive Downloading Member"s reproduction, distribution or display of the Work shall be limited to a resolution of 640 ? 480 pixels in website uses (regardless of the resolution of the Work available for downloading from the + +Fotolia.com + + website), and shall be limited to the resolution available for downloading from the + +Fotolia.com + + website in other electronic uses. For clarification purposes but subject to the foregoing restrictions, it is intended that this sublicense shall permit use, reproduction and display of the Work in or for a business or commercial setting or circumstances, display in an office or other place of business, on advertising and promotion materials, and the like. +

+ +

+In addition, the Non-Exclusive Downloading Member shall have the right to create modified and derivative works based upon the original Work (derivative works within the meaning of the USA Copyright Act which incorporates but is not substantially similar to the original Work ) . The permitted use of the modified and derivative works includes all the uses permitted to the Non-Exclusive Downloading Member with respect to the original work as well as for the derivative works in items for re-sale including t-shirts, mugs, calendars, posters mouse pads and alike +

+ +

+ +3. +Restrictions +

+ +

+Notwithstanding anything to the contrary contained in this Agreement, and without limitation to any aforementioned restrictions, the Non-Exclusive Downloading Member acknowledges, agrees and warrants that he or she shall not: +

+ +

+(a) sublicense, sell, assign, convey or transfer any of it"s rights under this agreement. Sell, license or distribute the Work or any modified Work as stand-alone files or as part of an online database or any other database, or any derivative product containing the Work in such way that would allow a third party to download, extract or access the Image as a stand-alone file; +

+ +

+(b) share the Work with any other person or entity except as expressly permitted under this Agreement; +

+ +

+(c) post the Work online in downloadable format, post the Work on an electronic bulletin board, or enable the Work to be distributed via mobile telephone devices. Include the Work in any electronic template or application, including those that are web based, where the purpose is to create multiple impressions of an electronic or printed product, including but not limited to website design, presentation templates, electronic greeting cards, business cards or any other electronic or printed matter; +

+ +

+(d) download or store the Work on more than one computer at the same time, except that the Non-Exclusive Downloading Member may make a single backup copy to be stored on media separate from the single permitted computer; +

+ +

+(e) use, reproduce, distribute or display the Work in connection with design template applications intended for resale; +

+ +

+(f) use, reproduce, distribute or display the Work in connection with any goods or services intended for resale or distribution which primary value lies in the work itself, including, without limitation, mugs, t-shirts, posters, greeting cards, posters or other merchandise, and any of the foregoing in "print on demand" or tangible or electronic formats, as applicable; +

+ +

+(g) use, reproduce, distribute or display the Work (including, without limitation, by itself or in combination with any other work of authorship) in any manner that is libelous or slanderous or otherwise defamatory, obscene or indecent; +

+ +

+(h) remove any notice of copyright, trademark or other intellectual property right, or other information that may appear on, embedded in, or in connection with the Work in its original downloaded form, it being understood that the Non-Exclusive Downloading Member shall reproduce any and all such notices in any backup copy of the file comprising the Work that the Downloading Member makes; +

+ +

+(i) incorporate the Work into a trademark or service mark; +

+ +

+(j) take any action in connection with the Work that violates any law, regulation or statute in an applicable jurisdiction; +

+ +

+(k) Use the Work in an editorial manner, without the following credit adjacent to the Image: "© [Photographer's name] / [Name of the agency providing the Image].; +

+ +

+(l) take any action in connection with the Work that violates or infringes the intellectual property or other rights of any person or entity, including, without limitation, the moral rights of the creator of the Work and the rights of any person who, or any person whose property, appears in the Work; or +

+ +

+(m) take any action in connection with the Work that associates it or the creator of the Work, or the persons or property appearing in the Work (if any), with any political, religious, economic or other opinion-based movements or parties. +

+ +

+(n) use the Work in a way that places any person in the photo in a bad light or depicts them in a way that they may find offensive - this includes, but is not limited to: +

(1) the use of Images in pornography;

+

(2) tobacco ads;

+

(3) ads for adult entertainment clubs or similar venues, or for escort, dating or similar services;

+

(4) political endorsements;

+

(5) advertisements for pharmaceutical products, including, but not limited to personal hygiene or birth control products; and

+

(6) uses that are defamatory, or contain otherwise unlawful, offensive or immoral content.

+

+ + +

+ +4. +Payments and Pricing +

+ +

+As indicated above, the Non-Exclusive Downloading Member shall pay to Fotolia a sublicense fee in accordance with Fotolia's + +Standard pricing and payment policies + +. +

+ +

+ +5. +Ownership and Retention of Rights +

+ +

+The Non-Exclusive Downloading Member acknowledges and agrees that Fotolia and/or its licensor retains all rights, title and interest in and to the Work (except for the rights granted pursuant to this Agreement), and that neither title nor any ownership interest in or to the Work is transferred to the Non-Exclusive Downloading Member by virtue of this Agreement. Fotolia and/or its licensor (as applicable) shall also retain the right to use, reproduce or display the Work solely to demonstrate the Work as part of his or her professional portfolio. Without any limitation to any other rights that Fotolia may retain, Fotolia shall continue to have the right to use the Work for internal archival and reference purposes. +

+ +

+ +6. +Representations and Warranties +

+ +

+In addition to the representations and warranties made by the Non-Exclusive Downloading Member above, each of Fotolia and the Non-Exclusive Downloading Member hereby represent and warrant that it, or he or she, has the right to enter into this Agreement. +

+ +

+ +7. +Indemnification +

+ +

+The Non-Exclusive Downloading Member agrees to indemnify, defend and hold harmless Fotolia and its affiliates, and their respective officers, directors, employees, owners, agents, representatives, licensors and (sub)licensees (collectively, "Indemnitees") from and against all claims, expenses (including attorney fees) or other liability arising from the Non-Exclusive Downloading Member"s breach of any of his or her representations, warranties or obligations under this Agreement, and from any and all uses of the Work, including, without limitation, any claims or actions based on infringement or violation of intellectual property rights, libel or slander or other defamation, right of privacy or "false light", right of publicity or blurring or distortion or alteration whether or not intentional. Fotolia shall have the right, in its sole discretion, to control the defense of any claim, action or matter subject to indemnification by the Non-Exclusive Downloading Member with coun sel of its own choosing. The Non-Exclusive Downloading Member shall fully cooperate with Fotolia in the defense of any such claim, action or matter. +

+ +

+ +8. +Limitations and Disclaimer +

+ +

+The Non-Exclusive Downloading Member agrees that neither Fotolia nor its affiliates, nor any of their respective officers, directors, employees, owners, agents, representatives, licensors and (sub)licensees (other than the Downloading Member), shall be liable for any damages, whether direct, incidental, indirect or consequential, arising from any use or non-use of the Work, even if such parties have been advised, or advised of the possibility, of such damages. +

+

+ +The Non-Exclusive Downloading Member acknowledges that Fotolia generally does not have releases for the trademarks, logos or other intellectual property of other parties that may be depicted in some Works. The procuring of such releases is the responsibility of the Non-Exclusive Downloading Member. + +

+ + + +

+ +The Non-Exclusive Downloading Member acknowledges that Fotolia generally does not have releases from property owners, manufacturers or designers of commercial products such as (without limitation) automobiles, aircraft, packaged products, designer clothing, etc. that are depicted in some Works. It is generally not possible for any stock image library or artist to get blanket releases for such products, but they can often be obtained on a case-by-case basis. The procuring of such releases is the responsibility of the Non-Exclusive Downloading Member. + +

+ +

+THE WORK IS PROVIDED "AS IS" AND, EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER PARTY MAKES ANY REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +

+ +

+ +9. +Term and Termination +

+ +

+This Agreement shall continue in perpetuity unless terminated in accordance with this Section 9. Fotolia may at any time terminate this Agreement with respect to any Work in the event of any breach by the Non-Exclusive Downloading Member of any of his or her representations, warranties or obligations under this Agreement. The Non-Exclusive Downloading Member may at any time terminate this Agreement. Each of Fotolia and the Non-Exclusive Downloading Member shall notify the other in the event it, he or she terminates this Agreement. Fotolia shall also have the right, in its sole discretion, to deny the downloading of any Work from the + +Fotolia.com + + website. Upon termination of a license for any particular Work, the Non-Exclusive Downloading Member shall immediately cease using such Work, destroy, or upon the request of Fotolia return the Work to Fotolia, delete or remove the Work from its permises, computer systems and storage (electronic and physical), and shall ensure that its clients and customers do likewise. +

+ +

+ +10. +Effect of Termination +

+ +

+Upon the termination of this Agreement, the Non-Exclusive Downloading Member shall cease using the Work and destroy all copies of the Work, and all derivative works and related materials (if any), in his or her possession or control. At Fotolia"s request, the Non-Exclusive Downloading Member shall certify in writing to such destruction of the Work, derivative works and/or related materials. Termination of this Agreement shall not relieve the Non-Exclusive Downloading Member from any payment obligations that may have arisen prior to such termination. The provisions of Sections 1, 4, 5, 6, 7, 8, 10 and 11 shall survive the termination of this Agreement. +

+ +

+ +11. +Miscellaneous +

+

+This Agreement shall be governed by and construed in accordance with the laws of the State of New York, without regard to any conflict of laws principles. Any legal action, suit or proceeding arising out of or relating to this Agreement shall be instituted in a court of competent subject matter jurisdiction in the federal or state courts of the State of New York, and the Non-Exclusive Downloading Member and Fotolia each submit to the personal jurisdiction of such court and waive any right each might otherwise have to claim lack of personal jurisdiction or inconvenience of forum. +

+ +

+The relationship between Fotolia and the Non-Exclusive Downloading Member under this Agreement is that of independent contractors. For clarification purposes, the parties are not joint ventures, partners, principal and agent, or employer and employee. Neither party shall have the power to bind or obligate the other in any manner. +

+ +

+The Non-Exclusive Downloading Member agrees that he or she shall be responsible for all use, sales, value-added and similar taxes and duties imposed by any governing authority in any jurisdiction in connection with the license granted to him or her under this Agreement. +

+ +

+No waiver on the part of Fotolia to exercise any power, right, privilege or remedy under this Agreement, and no delay on the part of Fotolia to exercise any such power, right, privilege or remedy, shall preclude any other or further exercise thereof or of any other power, right, privilege or remedy. +

+ +

+Except with respect to any trademark rights, all rights and licenses granted by Fotolia under or pursuant to this Agreement are for all purposes of Section 365(n) of Title 11 of the United States Code ("Title 11"), licenses of rights to "intellectual property" as defined in Title 11. Fotolia agrees that, in the event of commencement of bankruptcy proceedings by or against Fotolia under Title 11, the Non-Exclusive Downloading Member, as licensee of such rights under this Agreement, shall retain and may fully exercise all of its rights under this Agreement (including the license granted under this Agreement) and all of its rights and elections under Title 11. +

+ +

+Fotolia shall have the right, in its sole discretion, to assign any or all of its rights or obligations under this Agreement. The Non-Exclusive Downloading Member shall have no right to assign any of his or her rights or obligations under this Agreement. +

+ +

+This Agreement shall be inure to the benefit of, and be binding upon, Fotolia and the Non-Exclusive Downloading Member, and their respective successors and assigns. Nothing in this Agreement, express or implied, is intended to confer upon any person or entity, other than Fotolia and the Non-Exclusive Downloading Member, and their respective successors and assigns, any rights, remedies, obligations or liabilities under or by reason of this Agreement. +

+ +

+Whenever the context so requires, the singular number shall include the plural and vice versa, and the masculine, feminine and neutral genders shall include each other. +

+ +

+If any term or provision of this Agreement is invalid, illegal or unenforceable, all other terms and conditions of this Agreement shall nevertheless remain in full force and effect. +

+ +

+The underlined headings contained in this Agreement are for convenience of reference only and shall not affect in any way the meaning or interpretation of this Agreement +

+
+ Added: openjpa/site/trunk/content/images/fotolia/Readme.txt URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/images/fotolia/Readme.txt?rev=1419851&view=auto ============================================================================== --- openjpa/site/trunk/content/images/fotolia/Readme.txt (added) +++ openjpa/site/trunk/content/images/fotolia/Readme.txt Mon Dec 10 22:44:30 2012 @@ -0,0 +1,31 @@ +Images in this directory are covered by the Fotolia Standard License + http://www.fotolia.com/Contract/View/XS + +Summary of License - +Files available on Fotolia can be used on all kinds of media: + WEB + * website and blog illustration + * Creation of newsletters, banners, icons... + * Creation of all kinds of professional digital documents (ex : slide show presentations) + + PRINT + * Creation of advertising media (magazines, booklets, billboards...) + * Magazines and press article illustration + * Creation of all kinds of professional printed documents + + VIDEO + * Illustrations on TV shows, TV advertising... + * Movie illustrations or decorations + * Illustration of professional animated documents + * Illustration on web videos + +PRODUCTS + * Packaging illustration + * advertising product illustration + + +Uses that require an Extended License to be purchased: + * Creation of templates (websites or others) intended for resale + * Posters and other kinds of decorations for resale + * Creation of derivative products (posters, t-shirts...) intended for resale + From commits-return-10229-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:45:07 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C5AFCDEEB for ; Mon, 10 Dec 2012 22:45:07 +0000 (UTC) Received: (qmail 68353 invoked by uid 500); 10 Dec 2012 22:45:07 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 68324 invoked by uid 500); 10 Dec 2012 22:45:07 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 68316 invoked by uid 99); 10 Dec 2012 22:45:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:45:07 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:45:05 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E05E62388AB9 for ; Mon, 10 Dec 2012 22:44:45 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841572 - in /websites/staging/openjpa/trunk/content: ./ images/fotolia/ Date: Mon, 10 Dec 2012 22:44:45 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210224445.E05E62388AB9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Mon Dec 10 22:44:43 2012 New Revision: 841572 Log: Staging update by buildbot for openjpa Added: websites/staging/openjpa/trunk/content/images/fotolia/ websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197680_S.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197687_S.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Clock.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Document.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Download.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Information.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Mail.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Search.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9175117_Question.png (with props) websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg (with props) websites/staging/openjpa/trunk/content/images/fotolia/License.html (with props) websites/staging/openjpa/trunk/content/images/fotolia/Readme.txt Modified: websites/staging/openjpa/trunk/content/ (props changed) Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Mon Dec 10 22:44:43 2012 @@ -1 +1 @@ -1419830 +1419851 Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_12810317_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_13132861_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_Paint_100x75.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_Paint_200x150.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_2604600_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197680_S.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197680_S.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197680_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197687_S.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_7197687_S.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Clock.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Clock.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Document.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Document.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Download.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Download.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Information.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Information.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Mail.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Mail.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Pencil.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Search.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_Search.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9174675_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9175117_Question.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9175117_Question.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/Fotolia_9175117_XS.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/openjpa/trunk/content/images/fotolia/License.html ============================================================================== Binary file - no diff available. Propchange: websites/staging/openjpa/trunk/content/images/fotolia/License.html ------------------------------------------------------------------------------ svn:mime-type = application/xml Added: websites/staging/openjpa/trunk/content/images/fotolia/Readme.txt ============================================================================== --- websites/staging/openjpa/trunk/content/images/fotolia/Readme.txt (added) +++ websites/staging/openjpa/trunk/content/images/fotolia/Readme.txt Mon Dec 10 22:44:43 2012 @@ -0,0 +1,31 @@ +Images in this directory are covered by the Fotolia Standard License + http://www.fotolia.com/Contract/View/XS + +Summary of License - +Files available on Fotolia can be used on all kinds of media: + WEB + * website and blog illustration + * Creation of newsletters, banners, icons... + * Creation of all kinds of professional digital documents (ex : slide show presentations) + + PRINT + * Creation of advertising media (magazines, booklets, billboards...) + * Magazines and press article illustration + * Creation of all kinds of professional printed documents + + VIDEO + * Illustrations on TV shows, TV advertising... + * Movie illustrations or decorations + * Illustration of professional animated documents + * Illustration on web videos + +PRODUCTS + * Packaging illustration + * advertising product illustration + + +Uses that require an Extended License to be purchased: + * Creation of templates (websites or others) intended for resale + * Posters and other kinds of decorations for resale + * Creation of derivative products (posters, t-shirts...) intended for resale + From commits-return-10230-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:57:56 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 40571DF52 for ; Mon, 10 Dec 2012 22:57:56 +0000 (UTC) Received: (qmail 8958 invoked by uid 500); 10 Dec 2012 22:57:56 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 8898 invoked by uid 500); 10 Dec 2012 22:57:56 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 8888 invoked by uid 99); 10 Dec 2012 22:57:56 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:57:56 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:57:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 793252388906; Mon, 10 Dec 2012 22:57:33 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1419859 - /openjpa/site/trunk/content/index.mdtext Date: Mon, 10 Dec 2012 22:57:33 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210225733.793252388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 22:57:32 2012 New Revision: 1419859 URL: http://svn.apache.org/viewvc?rev=1419859&view=rev Log: Updated icons Modified: openjpa/site/trunk/content/index.mdtext Modified: openjpa/site/trunk/content/index.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/index.mdtext?rev=1419859&r1=1419858&r2=1419859&view=diff ============================================================================== --- openjpa/site/trunk/content/index.mdtext (original) +++ openjpa/site/trunk/content/index.mdtext Mon Dec 10 22:57:32 2012 @@ -1,230 +1,231 @@ -Title: Index - - -## Welcome to the Apache OpenJPA project - -Apache OpenJPA is a Java persistence project at [The Apache Software Foundation](http://apache.org) - that can be used as a stand-alone [POJO](http://en.wikipedia.org/wiki/POJO) - persistence layer or [integrated](integration.html) - into any Java EE compliant container and many other lightweight -frameworks, such as Tomcat and Spring. - -The [1.x releases](downloads.html) - (1.2.2 is the latest) are a production ready, feature-rich, compliant -implementation of the Java Persistence API (JPA) 1.0 part of the [JSR-220 Enterprise Java Beans 3.0](http://jcp.org/en/jsr/detail?id=220) - specification, which pass the Sun JPA 1.0b Technology Compatibility Kit. - -The [2.x releases](downloads.html) - (2.2.0 is the latest) are a production ready, compliant implementation of -the [JSR-317 Java Persistence 2.0](http://jcp.org/en/jsr/detail?id=317) - specification, which is backwards compatible to the JPA 1.0 specification -and passes the Sun JPA 2.0 Technology Compatibility Kit. - -The upcoming 2.3 release is based off of the 2.2.x release stream and will -contain some additional features (TBD). - - - - - - - - - - -
- - - - - - - - - - - - - - - -
  - Download Apache OpenJPA
-
 
-
- - - - - - - - - - - - - - - -
  - Quick Start Guide
-
 
-
- - - - - - - - - - - - - - - -
  - User's Guide
-
 
-
- - - -## [Events and News](events-and-news.html) - -
-
- - - - - - - - OpenJPA 2.2.0 Released - -
- - -
-

The Apache OpenJPA community is proud to announce the release of OpenJPA 2.2.0.

- -

Please visit our project website to learn more about Apache OpenJPA and
- how to download or include our persistence provider in your builds.

- -

http://openjpa.apache.org/

- -

Thanks,
- Apache OpenJPA PMC

- -
-
-
- -
-
- - - - - - - - OpenJPA 2.1.1 Released - - -
- -
- - -

The Apache OpenJPA community is proud to announce the maintenance
- release of OpenJPA 2.1.1.

- -

Please visit our project website to learn more about Apache OpenJPA and
- how to download or include our persistence provider in your builds.

- -

http://openjpa.apache.org/

- -

Thanks,
- Apache OpenJPA PMC

-
-
-
- - -
-
- - - - - - - - OpenJPA 2.1.0 Released - -
- -
-

The Apache OpenJPA community is proud to announce the maintenance
- release of OpenJPA 2.0.1. As with the prior 2.0.0 release, this
- distribution is based on the final JSR 317 Java Persistence API, Version
- 2.0 specification and passes the JPA 2.0 TCK.

- -

Please visit our project website to learn more about Apache OpenJPA and
- how to download or include our persistence provider in your builds.

- -

http://openjpa.apache.org/

- - -

Thanks,
- Apache OpenJPA PMC

-
-
-
- -
-
- - - - - - - - REST on OpenJPA - - -
-
-

JEST: REST on OpenJPA has been published as a featured article in IBM developerworks

- -

Also there is an upcoming presentation on JEST in San Francisco Java User Group on February 8, 2011.

-
- -
-
- - - -## Resources - -* [Quick Start Guide to OpenJPA](quick-start.html) -* [Obtaining OpenJPA](obtaining.html) -* [OpenJPA Documentation](documentation.html) -* [Integration with Containers and Application Servers](integration.html) -* [Enhancing entities with Maven2](entity-enhancement.html) -* OpenJPA can be browsed (and checked out using [SVN](http://subversion.tigris.org/) - from): [http://svn.apache.org/repos/asf/openjpa/trunk/] -* Bugs and other issues can be reported at: [http://issues.apache.org/jira/browse/OPENJPA](http://issues.apache.org/jira/browse/OPENJPA) -* Development questions can be addressed to: [mailto:dev@openjpa.apache.org](mailto:dev@openjpa.apache.org.html) - ([archives|http://mail-archives.apache.org/mod_mbox/openjpa-dev/]) -* [OpenJPA development resources](openjpa-development-resources.html) - - - - +Title: Index + + + +## Welcome to the Apache OpenJPA project + +Apache OpenJPA is a Java persistence project at [The Apache Software Foundation](http://apache.org) + that can be used as a stand-alone [POJO](http://en.wikipedia.org/wiki/POJO) + persistence layer or [integrated](integration.html) + into any Java EE compliant container and many other lightweight +frameworks, such as Tomcat and Spring. + +The [1.x releases](downloads.html) + (1.2.2 is the latest) are a production ready, feature-rich, compliant +implementation of the Java Persistence API (JPA) 1.0 part of the [JSR-220 Enterprise Java Beans 3.0](http://jcp.org/en/jsr/detail?id=220) + specification, which pass the Sun JPA 1.0b Technology Compatibility Kit. + +The [2.x releases](downloads.html) + (2.2.0 is the latest) are a production ready, compliant implementation of +the [JSR-317 Java Persistence 2.0](http://jcp.org/en/jsr/detail?id=317) + specification, which is backwards compatible to the JPA 1.0 specification +and passes the Sun JPA 2.0 Technology Compatibility Kit. + +The upcoming 2.3 release is based off of the 2.2.x release stream and will +contain some additional features (TBD). + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
  + Download Apache OpenJPA
+
 
+
+ + + + + + + + + + + + + + + +
  + Quick Start Guide
+
 
+
+ + + + + + + + + + + + + + + +
  + User's Guide
+
 
+
+ + + +## [Events and News](events-and-news.html) + +
+
+ + + + + + + + OpenJPA 2.2.0 Released + +
+ + +
+

The Apache OpenJPA community is proud to announce the release of OpenJPA 2.2.0.

+ +

Please visit our project website to learn more about Apache OpenJPA and
+ how to download or include our persistence provider in your builds.

+ +

http://openjpa.apache.org/

+ +

Thanks,
+ Apache OpenJPA PMC

+ +
+
+
+ +
+
+ + + + + + + + OpenJPA 2.1.1 Released + + +
+ +
+ + +

The Apache OpenJPA community is proud to announce the maintenance
+ release of OpenJPA 2.1.1.

+ +

Please visit our project website to learn more about Apache OpenJPA and
+ how to download or include our persistence provider in your builds.

+ +

http://openjpa.apache.org/

+ +

Thanks,
+ Apache OpenJPA PMC

+
+
+
+ + +
+
+ + + + + + + + OpenJPA 2.1.0 Released + +
+ +
+

The Apache OpenJPA community is proud to announce the maintenance
+ release of OpenJPA 2.0.1. As with the prior 2.0.0 release, this
+ distribution is based on the final JSR 317 Java Persistence API, Version
+ 2.0 specification and passes the JPA 2.0 TCK.

+ +

Please visit our project website to learn more about Apache OpenJPA and
+ how to download or include our persistence provider in your builds.

+ +

http://openjpa.apache.org/

+ + +

Thanks,
+ Apache OpenJPA PMC

+
+
+
+ +
+
+ + + + + + + + REST on OpenJPA + + +
+
+

JEST: REST on OpenJPA has been published as a featured article in IBM developerworks

+ +

Also there is an upcoming presentation on JEST in San Francisco Java User Group on February 8, 2011.

+
+ +
+
+ + + +## Resources + +* [Quick Start Guide to OpenJPA](quick-start.html) +* [Obtaining OpenJPA](obtaining.html) +* [OpenJPA Documentation](documentation.html) +* [Integration with Containers and Application Servers](integration.html) +* [Enhancing entities with Maven2](entity-enhancement.html) +* OpenJPA can be browsed (and checked out using [SVN](http://subversion.tigris.org/) + from): [http://svn.apache.org/repos/asf/openjpa/trunk/](http://svn.apache.org/repos/asf/openjpa/trunk/) +* Bugs and other issues can be reported at: [http://issues.apache.org/jira/browse/OPENJPA](http://issues.apache.org/jira/browse/OPENJPA) +* Development questions can be addressed to: [mailto:dev@openjpa.apache.org](mailto:dev@openjpa.apache.org.html) + ([archives|http://mail-archives.apache.org/mod_mbox/openjpa-dev/]) +* [OpenJPA development resources](openjpa-development-resources.html) + + + + From commits-return-10231-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:58:01 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 84B4EDF54 for ; Mon, 10 Dec 2012 22:58:01 +0000 (UTC) Received: (qmail 9111 invoked by uid 500); 10 Dec 2012 22:58:01 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 9084 invoked by uid 500); 10 Dec 2012 22:58:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 9075 invoked by uid 99); 10 Dec 2012 22:58:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:58:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:57:59 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C09032388AB9 for ; Mon, 10 Dec 2012 22:57:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841578 - in /websites/staging/openjpa/trunk/content: ./ index.html Date: Mon, 10 Dec 2012 22:57:39 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210225739.C09032388AB9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Mon Dec 10 22:57:38 2012 New Revision: 841578 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/index.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Mon Dec 10 22:57:38 2012 @@ -1 +1 @@ -1419851 +1419859 Modified: websites/staging/openjpa/trunk/content/index.html ============================================================================== --- websites/staging/openjpa/trunk/content/index.html (original) +++ websites/staging/openjpa/trunk/content/index.html Mon Dec 10 22:57:38 2012 @@ -22,7 +22,7 @@ limitations under the License. - + @@ -160,7 +160,7 @@ contain some additional features (TBD).
- + @@ -181,7 +181,7 @@ contain some additional features (TBD).
- + @@ -202,7 +202,7 @@ contain some additional features (TBD). - + - - + + - - - + - - + + - - - + - - + -
- + @@ -227,7 +227,7 @@ contain some additional features (TBD).
-

+

@@ -248,7 +248,7 @@ contain some additional features (TBD).

- +

@@ -294,7 +294,7 @@ contain some additional features (TBD).

-

+

@@ -316,7 +316,7 @@ contain some additional features (TBD).
  • Integration with Containers and Application Servers
  • Enhancing entities with Maven2
  • OpenJPA can be browsed (and checked out using SVN - from): [http://svn.apache.org/repos/asf/openjpa/trunk/]
  • + from): http://svn.apache.org/repos/asf/openjpa/trunk/
  • Bugs and other issues can be reported at: http://issues.apache.org/jira/browse/OPENJPA
  • Development questions can be addressed to: mailto:dev@openjpa.apache.org ([archives|http://mail-archives.apache.org/mod_mbox/openjpa-dev/])
  • From commits-return-10232-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Dec 10 22:58:44 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 64ACCDF5B for ; Mon, 10 Dec 2012 22:58:44 +0000 (UTC) Received: (qmail 10450 invoked by uid 500); 10 Dec 2012 22:58:44 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 10415 invoked by uid 500); 10 Dec 2012 22:58:44 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 10408 invoked by uid 99); 10 Dec 2012 22:58:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:58:44 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Dec 2012 22:58:41 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 1A9782388B45 for ; Mon, 10 Dec 2012 22:58:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841580 - /websites/production/openjpa/content/ Date: Mon, 10 Dec 2012 22:58:21 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121210225821.1A9782388B45@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Mon Dec 10 22:58:20 2012 New Revision: 841580 Log: Publishing svnmucc operation to openjpa site by kwsutter Added: websites/production/openjpa/content/ - copied from r841579, websites/staging/openjpa/trunk/content/ From commits-return-10233-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 07:23:05 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B464ED991 for ; Tue, 11 Dec 2012 07:23:05 +0000 (UTC) Received: (qmail 85495 invoked by uid 500); 11 Dec 2012 07:23:05 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 85292 invoked by uid 500); 11 Dec 2012 07:23:01 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 85251 invoked by uid 99); 11 Dec 2012 07:22:59 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 07:22:59 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 07:22:56 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id 09979C00E8 for ; Tue, 11 Dec 2012 07:22:35 +0000 (UTC) Date: Tue, 11 Dec 2012 07:22:35 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <49723074.1497.1355210555037.JavaMail.hudson@aegis> Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_OpenJPA-21x-?= =?UTF-8?Q?deploy_=C2=BB_OpenJPA_Persistence_JDBC_#111?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA Persistence JDBC X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See ------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 97 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 2547 source files to [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4663) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$29.run(J2DoPrivHelper.java:688) at org.apache.openjpa.lib.util.J2DoPrivHelper$29.run(J2DoPrivHelper.java:686) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.1.2-SNAPSHOT/openjpa-persistence-jdbc-2.1.2-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :86: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 minutes 37 seconds [INFO] Finished at: Tue Dec 11 07:22:33 UTC 2012 [INFO] Final Memory: 110M/502M [INFO] ------------------------------------------------------------------------ From commits-return-10234-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 07:23:07 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BEE10D992 for ; Tue, 11 Dec 2012 07:23:05 +0000 (UTC) Received: (qmail 85494 invoked by uid 500); 11 Dec 2012 07:23:05 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 85384 invoked by uid 500); 11 Dec 2012 07:23:05 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 85311 invoked by uid 99); 11 Dec 2012 07:23:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 07:23:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 07:22:57 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id 09C9AC00EF for ; Tue, 11 Dec 2012 07:22:36 +0000 (UTC) Date: Tue, 11 Dec 2012 07:22:36 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <2005257548.1498.1355210556038.JavaMail.hudson@aegis> Subject: Build failed in Jenkins: OpenJPA-21x-deploy #111 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA-21x-deploy X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See Changes: [hthomann] OPENJPA-2284: Save NPE while parsing cascade - back ported to 2.1.x Pinaki's commit to trunk. ------------------------------------------ [...truncated 5886 lines...] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.124 sec Running org.apache.openjpa.jdbc.kernel.TestUpdateManagerFlushException Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec Running org.apache.openjpa.jdbc.sql.TestDictionaryFactory Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 16, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-jdbc-2.1.2-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-jdbc-2.1.2-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-jdbc/2.1.2-SNAPSHOT/openjpa-jdbc-2.1.2-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-jdbc/2.1.2-SNAPSHOT/openjpa-jdbc-2.1.2-SNAPSHOT-tests.jar [INFO] [deploy:deploy {execution: default-deploy}] [INFO] Retrieving previous build number from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '9053b56c19387dce2dde8eca9a944e63f8e15c60'; remote = 'da4153f737138da25c97199f07ce224745dec3aa' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '9053b56c19387dce2dde8eca9a944e63f8e15c60'; remote = 'da4153f737138da25c97199f07ce224745dec3aa' - IGNORING Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-jdbc/2.1.2-SNAPSHOT/openjpa-jdbc-2.1.2-20121211.072023-45.jar 1383K uploaded (openjpa-jdbc-2.1.2-20121211.072023-45.jar) [INFO] Retrieving previous metadata from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '9053b56c19387dce2dde8eca9a944e63f8e15c60'; remote = 'da4153f737138da25c97199f07ce224745dec3aa' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '9053b56c19387dce2dde8eca9a944e63f8e15c60'; remote = 'da4153f737138da25c97199f07ce224745dec3aa' - IGNORING [INFO] Uploading repository metadata for: 'snapshot org.apache.openjpa:openjpa-jdbc:2.1.2-SNAPSHOT' [INFO] Uploading project information for openjpa-jdbc 2.1.2-20121211.072023-45 [INFO] Retrieving previous metadata from apache.snapshots.https [INFO] Uploading repository metadata for: 'artifact org.apache.openjpa:openjpa-jdbc' [INFO] Retrieving previous build number from apache.snapshots.https Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-jdbc/2.1.2-SNAPSHOT/openjpa-jdbc-2.1.2-20121211.072023-45-tests.jar 33K uploaded (openjpa-jdbc-2.1.2-20121211.072023-45-tests.jar) [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-jdbc/2.1.2-SNAPSHOT/openjpa-jdbc-2.1.2-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-jdbc/2.1.2-20121211.072023-45/openjpa-jdbc-2.1.2-20121211.072023-45.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-jdbc/2.1.2-20121211.072023-45/openjpa-jdbc-2.1.2-20121211.072023-45-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 11 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 232 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 2 source files to [WARNING] DEPRECATED [systemProperties]: Use systemPropertyVariables instead. [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.openjpa.persistence.TestEnumToKernelConstantMappings Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 sec Running org.apache.openjpa.persistence.TestPersistenceProductDerivation Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.315 sec Results : Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-persistence-2.1.2-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-persistence-2.1.2-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-persistence/2.1.2-SNAPSHOT/openjpa-persistence-2.1.2-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-persistence/2.1.2-SNAPSHOT/openjpa-persistence-2.1.2-SNAPSHOT-tests.jar [INFO] [deploy:deploy {execution: default-deploy}] [INFO] Retrieving previous build number from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'ec86c7c740e2d8a147f6aaf64ab925f04d7be6bf'; remote = '4acd3be563760262ac6cc4dadbb9ef862e032b3e' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'ec86c7c740e2d8a147f6aaf64ab925f04d7be6bf'; remote = '4acd3be563760262ac6cc4dadbb9ef862e032b3e' - IGNORING Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-persistence/2.1.2-SNAPSHOT/openjpa-persistence-2.1.2-20121211.072023-45.jar 786K uploaded (openjpa-persistence-2.1.2-20121211.072023-45.jar) [INFO] Uploading project information for openjpa-persistence 2.1.2-20121211.072023-45 [INFO] Retrieving previous metadata from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'ec86c7c740e2d8a147f6aaf64ab925f04d7be6bf'; remote = '4acd3be563760262ac6cc4dadbb9ef862e032b3e' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'ec86c7c740e2d8a147f6aaf64ab925f04d7be6bf'; remote = '4acd3be563760262ac6cc4dadbb9ef862e032b3e' - IGNORING [INFO] Uploading repository metadata for: 'snapshot org.apache.openjpa:openjpa-persistence:2.1.2-SNAPSHOT' [INFO] Retrieving previous metadata from apache.snapshots.https [INFO] Uploading repository metadata for: 'artifact org.apache.openjpa:openjpa-persistence' [INFO] Retrieving previous build number from apache.snapshots.https Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-persistence/2.1.2-SNAPSHOT/openjpa-persistence-2.1.2-20121211.072023-45-tests.jar 29K uploaded (openjpa-persistence-2.1.2-20121211.072023-45-tests.jar) [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-persistence/2.1.2-SNAPSHOT/openjpa-persistence-2.1.2-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-persistence/2.1.2-20121211.072023-45/openjpa-persistence-2.1.2-20121211.072023-45.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-persistence/2.1.2-20121211.072023-45/openjpa-persistence-2.1.2-20121211.072023-45-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 97 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 2547 source files to [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4663) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$29.run(J2DoPrivHelper.java:688) at org.apache.openjpa.lib.util.J2DoPrivHelper$29.run(J2DoPrivHelper.java:686) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-21x-deploy/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-11_07-19-21/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.1.2-SNAPSHOT/openjpa-persistence-jdbc-2.1.2-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :86: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 minutes 37 seconds [INFO] Finished at: Tue Dec 11 07:22:33 UTC 2012 [INFO] Final Memory: 110M/502M [INFO] ------------------------------------------------------------------------ Sending e-mails to: commits@openjpa.apache.org channel stopped From commits-return-10235-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 18:22:41 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 355C0D3EF for ; Tue, 11 Dec 2012 18:22:41 +0000 (UTC) Received: (qmail 96940 invoked by uid 500); 11 Dec 2012 18:22:41 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 96891 invoked by uid 500); 11 Dec 2012 18:22:40 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 96884 invoked by uid 99); 11 Dec 2012 18:22:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 18:22:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 18:22:38 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 13E07238899C; Tue, 11 Dec 2012 18:22:17 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420321 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java Date: Tue, 11 Dec 2012 18:22:16 -0000 To: commits@openjpa.apache.org From: ppoddar@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211182217.13E07238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ppoddar Date: Tue Dec 11 18:22:15 2012 New Revision: 1420321 URL: http://svn.apache.org/viewvc?rev=1420321&view=rev Log: OPENJPA-2304: Protect the expressin list for concurrent access Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java?rev=1420321&r1=1420320&r2=1420321&view=diff ============================================================================== --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java Tue Dec 11 18:22:15 2012 @@ -19,6 +19,7 @@ package org.apache.openjpa.persistence.criteria; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; @@ -48,10 +49,10 @@ abstract class PredicateImpl extends Exp public static final Predicate TRUE = new Expressions.Equal(ONE,ONE); public static final Predicate FALSE = new Expressions.NotEqual(ONE,ONE); - protected final List _exps = new ArrayList(); + protected final List _exps = Collections.synchronizedList(new ArrayList()); private final BooleanOperator _op; private boolean _negated = false; - + /** * An AND predicate with no arguments. */ From commits-return-10236-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 18:24:19 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B7CFCD5D5 for ; Tue, 11 Dec 2012 18:24:19 +0000 (UTC) Received: (qmail 3973 invoked by uid 500); 11 Dec 2012 18:24:19 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 3917 invoked by uid 500); 11 Dec 2012 18:24:19 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 3907 invoked by uid 99); 11 Dec 2012 18:24:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 18:24:19 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 18:24:18 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4E44523889BF; Tue, 11 Dec 2012 18:23:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420324 - in /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta: AnnotationProcessor6.java SourceAnnotationHandler.java Date: Tue, 11 Dec 2012 18:23:57 -0000 To: commits@openjpa.apache.org From: ppoddar@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211182358.4E44523889BF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ppoddar Date: Tue Dec 11 18:23:50 2012 New Revision: 1420324 URL: http://svn.apache.org/viewvc?rev=1420324&view=rev Log: OPENJPA-2305: Change inheritance hierarchy of generated canonical metamodel Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java?rev=1420324&r1=1420323&r2=1420324&view=diff ============================================================================== --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java Tue Dec 11 18:23:50 2012 @@ -103,7 +103,6 @@ import org.apache.openjpa.persistence.ut "openjpa.header", "openjpa.metamodel" }) -@SupportedSourceVersion(RELEASE_6) public class AnnotationProcessor6 extends AbstractProcessor { private SourceAnnotationHandler handler; @@ -206,6 +205,7 @@ public class AnnotationProcessor6 extend */ @Override public boolean process(Set annos, RoundEnvironment roundEnv) { + System.err.println("Activated " + this.getClass().getName()); if (active && !roundEnv.processingOver()) { Set elements = roundEnv.getRootElements(); for (Element e : elements) { @@ -226,25 +226,24 @@ public class AnnotationProcessor6 extend if (!handler.isAnnotatedAsEntity(e)) { return false; } - + Elements eUtils = processingEnv.getElementUtils(); String originalClass = eUtils.getBinaryName((TypeElement) e).toString(); String originalSimpleClass = e.getSimpleName().toString(); String metaClass = factory.getMetaModelClassName(originalClass); - + SourceCode source = new SourceCode(metaClass); comment(source); annotate(source, originalClass); - TypeElement supCls = handler.getPersistentSupertype(e); - if (supCls != null) { - String superName = factory.getMetaModelClassName(supCls.toString()); - source.getTopLevelClass().setSuper(superName); - } try { PrintWriter writer = createSourceFile(originalClass, metaClass, e); SourceCode.Class modelClass = source.getTopLevelClass(); - Set members = handler.getPersistentMembers(e); - + Set members = handler.getPersistentMembers(e); + TypeElement supCls = handler.getPersistentSupertype(e); + while (supCls != null) { + members.addAll(handler.getPersistentMembers(supCls)); + supCls = handler.getPersistentSupertype(supCls); + } for (Element m : members) { boolean isPersistentCollection = m.getAnnotation(PersistentCollection.class) != null; Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java?rev=1420324&r1=1420323&r2=1420324&view=diff ============================================================================== --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/SourceAnnotationHandler.java Tue Dec 11 18:23:50 2012 @@ -41,6 +41,7 @@ import javax.lang.model.element.TypeElem import javax.lang.model.element.VariableElement; import javax.lang.model.type.ArrayType; import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.NoType; import javax.lang.model.type.PrimitiveType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; @@ -651,11 +652,11 @@ public class SourceAnnotationHandler } public TypeElement getPersistentSupertype(TypeElement cls) { + if (cls == null) return null; TypeMirror sup = cls.getSuperclass(); - if (sup == null || isRootObject(sup)) + if (sup == null || sup.getKind() == TypeKind.NONE || isRootObject(sup)) return null; - TypeElement supe = - (TypeElement) processingEnv.getTypeUtils().asElement(sup); + TypeElement supe = (TypeElement) processingEnv.getTypeUtils().asElement(sup); if (isAnnotatedAsEntity(supe)) return supe; return getPersistentSupertype(supe); From commits-return-10237-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 20:14:25 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 01B29DC62 for ; Tue, 11 Dec 2012 20:14:25 +0000 (UTC) Received: (qmail 80491 invoked by uid 500); 11 Dec 2012 20:14:24 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 80467 invoked by uid 500); 11 Dec 2012 20:14:24 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 80459 invoked by uid 99); 11 Dec 2012 20:14:24 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:14:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:14:21 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id 45A88C00AE for ; Tue, 11 Dec 2012 20:14:00 +0000 (UTC) Date: Tue, 11 Dec 2012 20:14:00 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <1139560602.1729.1355256840268.JavaMail.hudson@aegis> Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_OpenJPA-tr?= =?UTF-8?Q?unk_=C2=BB_OpenJPA_Persistence_JDBC_#805?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA Persistence JDBC X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See ------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, install] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2702 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 105 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4864) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:710) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:708) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.3.0-SNAPSHOT/openjpa-persistence-jdbc-2.3.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :89: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 minutes 49 seconds [INFO] Finished at: Tue Dec 11 20:13:59 UTC 2012 [INFO] Final Memory: 113M/567M [INFO] ------------------------------------------------------------------------ From commits-return-10238-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 20:14:27 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E49FFDC70 for ; Tue, 11 Dec 2012 20:14:27 +0000 (UTC) Received: (qmail 80646 invoked by uid 500); 11 Dec 2012 20:14:27 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 80616 invoked by uid 500); 11 Dec 2012 20:14:27 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 80609 invoked by uid 99); 11 Dec 2012 20:14:27 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:14:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:14:23 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id D1986C00E8 for ; Tue, 11 Dec 2012 20:14:01 +0000 (UTC) Date: Tue, 11 Dec 2012 20:14:01 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <1929508019.1730.1355256841857.JavaMail.hudson@aegis> Subject: Build failed in Jenkins: OpenJPA-trunk #805 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA-trunk X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See Changes: [ppoddar] OPENJPA-2305: Change inheritance hierarchy of generated canonical metamodel [ppoddar] OPENJPA-2304: Protect the expressin list for concurrent access ------------------------------------------ [...truncated 6398 lines...] [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 357 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 7 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [WARNING] DEPRECATED [systemProperties]: Use systemPropertyVariables instead. [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.openjpa.jdbc.sql.identifier.TestDBIdentifiers Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.052 sec Running org.apache.openjpa.jdbc.meta.TestMappingDefaultsImpl 9 INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.OracleDictionary". Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.245 sec Running org.apache.openjpa.jdbc.sql.TestDBDictionaryGeneratedSQL Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.19 sec Running org.apache.openjpa.jdbc.sql.TestDB2Dictionary Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.139 sec Running org.apache.openjpa.jdbc.sql.TestMySQLDictionary Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.096 sec Running org.apache.openjpa.jdbc.kernel.TestUpdateManagerFlushException Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec Running org.apache.openjpa.jdbc.sql.TestDictionaryFactory Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 21, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-jdbc-2.3.0-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence [INFO] task-segment: [clean, install] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 14 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 233 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [WARNING] DEPRECATED [systemProperties]: Use systemPropertyVariables instead. [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.openjpa.persistence.TestEnumToKernelConstantMappings Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 sec Running org.apache.openjpa.persistence.TestPersistenceProductDerivation Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.397 sec Results : Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-persistence-2.3.0-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/0/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, install] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2702 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 105 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4864) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:710) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:708) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-11_20-10-20/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.3.0-SNAPSHOT/openjpa-persistence-jdbc-2.3.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :89: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 minutes 49 seconds [INFO] Finished at: Tue Dec 11 20:13:59 UTC 2012 [INFO] Final Memory: 113M/567M [INFO] ------------------------------------------------------------------------ Sending e-mails to: commits@openjpa.apache.org channel stopped From commits-return-10239-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 20:49:43 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D07DCDFA5 for ; Tue, 11 Dec 2012 20:49:43 +0000 (UTC) Received: (qmail 19123 invoked by uid 500); 11 Dec 2012 20:49:43 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 19101 invoked by uid 500); 11 Dec 2012 20:49:43 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 19090 invoked by uid 99); 11 Dec 2012 20:49:43 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:49:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:49:42 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id AFCFC23889E0 for ; Tue, 11 Dec 2012 20:49:22 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841780 - in /websites/staging/openjpa/trunk/content: ./ downloads.html Date: Tue, 11 Dec 2012 20:49:22 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211204922.AFCFC23889E0@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Tue Dec 11 20:49:21 2012 New Revision: 841780 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/downloads.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Dec 11 20:49:21 2012 @@ -1 +1 @@ -1419859 +1420398 Modified: websites/staging/openjpa/trunk/content/downloads.html ============================================================================== --- websites/staging/openjpa/trunk/content/downloads.html (original) +++ websites/staging/openjpa/trunk/content/downloads.html Tue Dec 11 20:49:21 2012 @@ -22,7 +22,7 @@ limitations under the License. - + @@ -68,7 +68,7 @@ limitations under the License.
    @@ -140,7 +140,7 @@ limitations under the License.

    OpenJPA Downloads

    Use the links below to download a distribution of Apache OpenJPA. It is -good practice to verify the integrity +good practice to verify the integrity of the distribution files.

    For information on obtaining OpenJPA binaries, see the Obtaining page. For information on building OpenJPA from source, see the [Building] From commits-return-10240-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 20:49:46 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9F5C1DFA6 for ; Tue, 11 Dec 2012 20:49:46 +0000 (UTC) Received: (qmail 19279 invoked by uid 500); 11 Dec 2012 20:49:46 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 19251 invoked by uid 500); 11 Dec 2012 20:49:46 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 19244 invoked by uid 99); 11 Dec 2012 20:49:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:49:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:49:37 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 8D0172388906; Tue, 11 Dec 2012 20:49:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420397 - /openjpa/site/trunk/content/downloads.mdtext Date: Tue, 11 Dec 2012 20:49:15 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211204915.8D0172388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 20:49:13 2012 New Revision: 1420397 URL: http://svn.apache.org/viewvc?rev=1420397&view=rev Log: OPENJPA-2306. cleaned up link for verifying-releases Modified: openjpa/site/trunk/content/downloads.mdtext Modified: openjpa/site/trunk/content/downloads.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/downloads.mdtext?rev=1420397&r1=1420396&r2=1420397&view=diff ============================================================================== --- openjpa/site/trunk/content/downloads.mdtext (original) +++ openjpa/site/trunk/content/downloads.mdtext Tue Dec 11 20:49:13 2012 @@ -1,447 +1,448 @@ -Title: Downloads - - - -# OpenJPA Downloads - -Use the links below to download a distribution of Apache OpenJPA. It is -good practice to [verify the integrity](#verifying-releases.html) - of the distribution files. - -For information on obtaining OpenJPA binaries, see the [Obtaining](obtaining.html) - page. For information on building OpenJPA from source, see the [Building] - page. - - -## Official JPA 2.0 Releases - -These releases implement the [JSR-317 Java Persistence 2.0](http://jcp.org/en/jsr/detail?id=317) - specification and pass the JPA 2.0 TCK. - - -### 2.2.x Releases - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Download Release Date Checksum Signatures
    OpenJPA 2.2.1 Binary apache-openjpa-2.2.1-binary.zip 1 November 2012 MD5 PGP
    OpenJPA 2.2.1 Source apache-openjpa-2.2.1-source.zip - 1 November 2012 MD5 - PGP -
    OpenJPA 2.2.1 Release Notes RELEASE-NOTES.html - 1 November 2012
    OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP
    OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip - 20 February 2012 MD5 - PGP -
    OpenJPA 2.2.0 Release Notes RELEASE-NOTES.html - 20 February 2012
    - - -### 2.1.x Releases - - - - - - - - - - - - - - - - - - - - - - -
    Download Release Date Checksum Signatures
    OpenJPA 2.1.1 Binary apache-openjpa-2.1.1-binary.zip - 25 July 2011 - MD5 - PGP -
    OpenJPA 2.1.1 Source apache-openjpa-2.1.1-source.zip - 25 July 2011 MD5 - PGP -
    OpenJPA 2.1.1 Release Notes RELEASE-NOTES.html - 25 July 2011
    OpenJPA 2.1.0 Binary apache-openjpa-2.1.0-binary.zip - 21 February 2011 MD5 - PGP -
    OpenJPA 2.1.0 Source apache-openjpa-2.1.0-source.zip - 21 February 2011 MD5 - PGP -
    OpenJPA 2.1.0 Release Notes RELEASE-NOTES.html - 21 February 2011
    - - -### 2.0.x Releases - - - - - - - - - - - - - - - - - - - - - - - -
    Download Release Date Checksum Signatures
    OpenJPA 2.0.1 Binary apache-openjpa-2.0.1-binary.zip - 30 August 2010 MD5 - PGP -
    OpenJPA 2.0.1 Source apache-openjpa-2.0.1-source.zip - 30 August 2010 MD5 - PGP -
    OpenJPA 2.0.1 Release Notes RELEASE-NOTES.html - 30 August 2010
    OpenJPA 2.0.0 Binary apache-openjpa-2.0.0-binary.zip - 22 April 2010 MD5 - PGP -
    OpenJPA 2.0.0 Source apache-openjpa-2.0.0-source.zip - 22 April 2010 MD5 - PGP -
    OpenJPA 2.0.0 Release Notes RELEASE-NOTES.html - 22 April 2010
    - - - -## Official JPA 1.0 Releases - -These releases implement the [JSR-220 Java Persistence 1.0](http://jcp.org/en/jsr/detail?id=220) - specification and pass the Sun JPA 1.0b Technology Compatibility Kit. - - -### 1.2.x Releases - - - - - - - - - - - - - - - - - - - - - - - - -
    Download Release Date Signatures Release Notes
    OpenJPA 1.2.2 apache-openjpa-1.2.2-binary.zip - 18 Jan 2010 PGP - Release Notes -
    OpenJPA 1.2.2 Source Code apache-openjpa-1.2.2-source.zip - 18 Jan 2010 PGP -
    OpenJPA 1.2.1 apache-openjpa-1.2.1-binary.zip - 18 Mar 2009 PGP - Release Notes -
    OpenJPA 1.2.1 Source Code apache-openjpa-1.2.1-source.zip - 18 Mar 2009 PGP -
    OpenJPA 1.2.0 apache-openjpa-1.2.0-binary.zip - 14 Aug 2008 PGP - Release Notes -
    OpenJPA 1.2.0 Source Code apache-openjpa-1.2.0-source.zip - 14 Aug 2008 PGP -
    - - -### 1.1.x Releases - - - - - - - - - - -
    Download Release Date Signatures Release Notes
    OpenJPA 1.1.0 apache-openjpa-1.1.0-binary.zip - 22 May 2008 PGP - Release Notes -
    OpenJPA 1.1.0 Source Code apache-openjpa-1.1.0-source.zip - 22 May 2008 PGP -
    - - -### 1.0.x Releases - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Download Release Date Signatures Release Notes
    OpenJPA 1.0.4 apache-openjpa-1.0.4-binary.zip - 18 Jan 2010 PGP - Release Notes -
    OpenJPA 1.0.4 Source Code apache-openjpa-1.0.4-source.zip - 18 Jan 2010 PGP -
    OpenJPA 1.0.3 apache-openjpa-1.0.3-binary.zip - 18 Feb 2008 PGP - Release Notes -
    OpenJPA 1.0.3 Source Code apache-openjpa-1.0.3-source.zip - 18 Feb 2008 PGP -
    OpenJPA 1.0.2 apache-openjpa-1.0.2-binary.zip - 18 Feb 2008 PGP - Release Notes -
    OpenJPA 1.0.2 Source Code apache-openjpa-1.0.2-source.zip - 18 Feb 2008 PGP -
    OpenJPA 1.0.1 apache-openjpa-1.0.1-binary.zip - 9 Nov 2007 PGP - Release Notes -
    OpenJPA 1.0.1 Source Code apache-openjpa-1.0.1-source.zip - 9 Nov 2007 PGP -
    OpenJPA 1.0.0 apache-openjpa-1.0.0-binary.zip - 28 Aug 2007 PGP - Release Notes -
    OpenJPA 1.0.0 Source Code apache-openjpa-1.0.0-source.zip - 28 Au 2007 PGP -
    - - -## Nightly Snapshots - -These distributions are built and deployed nightly, and contain up-to-date -fixes and improvements. However, their stability cannot be guaranteed. Use -at your own risk. - -### Snapshot builds for all active releases are published to the Apache snapshot repository. - -**Version 1.2.x, 1.3.x, 2.0.x, 2.1.x and trunk (2.2.x as of this writing) -can be found in the snapshot repository on repository.apache.org. A maven -project can access this snapshot repository by adding the following -repository in pom.xml:** - - - apache.snapshots - Apache Snapshot Repository - http://repository.apache.org/snapshots - - false - - - - -**For versions 1.0.x, and 1.1.x you can find the snapshots on people.apache.org.** - -A maven project can access the snapshot builds by adding the following repository in pom.xml : - - - people.apache.org.snapshots - people.apache.org.snapshots - http://people.apache.org/repo/m2-snapshot-repository - - - -**Pre-packaged binaries for SNAPSHOT releases are available in the -snapshot repository at the following locations:** - - - - - - - - - - - - - - - - - -
    SNAPSHOT version binaries source
    2.2.0 apache-openjpa-2.2.0-SNAPSHOT-binary.zip - apache-openjpa-2.2.0-SNAPSHOT-source.zip -
    2.1.2 apache-openjpa-2.1.2-SNAPSHOT-binary.zip - apache-openjpa-2.1.2-SNAPSHOT-source.zip -
    2.0.2 apache-openjpa-2.0.2-SNAPSHOT-binary.zip - apache-openjpa-2.0.2-SNAPSHOT-source.zip -
    1.3.0 apache-openjpa-1.3.0-SNAPSHOT-binary.zip - apache-openjpa-1.3.0-SNAPSHOT-source.zip -
    1.2.3 apache-openjpa-1.2.3-SNAPSHOT-binary.zip - apache-openjpa-1.2.3-SNAPSHOT-source.zip -
    1.1.1 apache-openjpa-1.1.1-SNAPSHOT-binary.zip - apache-openjpa-1.1.1-SNAPSHOT-source.zip -
    1.0.5 apache-openjpa-1.0.5-SNAPSHOT-binary.zip - apache-openjpa-1.0.5-SNAPSHOT-source.zip -
    - -For the 1.2.x, 1.3.x, 2.0.x, 2.1.x and 2.2.x SNAPSHOTs, please scroll down -to the bottom of the artifact list to grab the latest ones, as we're -letting Maven create timestamped artifacts when publishing to the new -Apache Nexus repo. - - -## Older incubating Releases - - - - - - - - - - - - - - - -
    Download Release Date Signatures
    OpenJPA 0.9.7 openjpa-project-0.9.7-incubating-binary.zip - 27 April 2007 MD5 -PGP -
    OpenJPA 0.9.7 Source Code openjpa-project-0.9.7-incubating-source.zip - 27 April 2007 MD5 -PGP -
    OpenJPA 0.9.6 openjpa-project-0.9.6-incubating-binary.zip - 29 November 2006 MD5 -PGP -
    OpenJPA 0.9.6 Source Code openjpa-project-0.9.6-incubating-source.zip - 29 November 2006 MD5 -PGP -
    - - - -## Verifying Release Version and Revision - -OpenJPA jar is self-describing and after downloading a release or nightly -snapshot, you can find out the revision number included in the build by: - - % java -jar your/path/to/openjpa.jar - -which will print the version and revision numbers, for example: - - OpenJPA 2.1.0-SNAPSHOT - version id: openjpa-2.1.0-SNAPSHOT-r422266:935231 - Apache svn revision: 422266:935231 - -which designates that the nightly build includes Apache SVN revision -*935231* as the latest. - - -## Verifying Releases - -We strongly recommend you verify the integrity of the downloaded files with -both PGP and MD5. The PGP signatures can be verified using [PGP](http://www.pgpi.org/) - or [GPG](http://www.gnupg.org/) -. First download the [KEYS](http://apache.org/dist/openjpa/KEYS) - as well as the *\*.asc* signature file for the particular distribution. -Make sure you get these files from the main distribution directory, rather -than from a mirror. Then verify the signatures using one of the following -sets of commands: - - -#### Verifying Release Files using the pgpk Utility - - % pgpk -a KEYS - % pgpv openjpa-*.zip.asc - - - -#### Verifying Release Files using the pgp Utility - - % pgp -ka KEYS - % pgp openjpa-*.zip.asc - - - -#### Verifying Release Files using the gpg Utility - - % gpg --import KEYS - % gpg --verify openjpa-*.zip.asc - - -Alternatively, you can verify the checksums on the files. Unix programs -called *md5*/*sha1* or *md5sum*/*sha1sum* are included in many unix -distributions. \*sum is also available as part of [GNU Textutils](http://www.gnu.org/software/textutils/textutils.html) -. Windows users can get binary md5 programs from [here|http://www.fourmilab.ch/md5/] - or [here](http://www.pc-tools.net/win32/freeware/console/) -. [fsum](http://www.slavasoft.com/fsum/) - supports MD5 and SHA1. - ----- - -**(\*\*)** asm-3.2.jar can be found from -. +Title: Downloads + + + + +# OpenJPA Downloads + +Use the links below to download a distribution of Apache OpenJPA. It is +good practice to [verify the integrity](#verifying-releases) + of the distribution files. + +For information on obtaining OpenJPA binaries, see the [Obtaining](obtaining.html) + page. For information on building OpenJPA from source, see the [Building] + page. + + +## Official JPA 2.0 Releases + +These releases implement the [JSR-317 Java Persistence 2.0](http://jcp.org/en/jsr/detail?id=317) + specification and pass the JPA 2.0 TCK. + + +### 2.2.x Releases + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Download Release Date Checksum Signatures
    OpenJPA 2.2.1 Binary apache-openjpa-2.2.1-binary.zip 1 November 2012 MD5 PGP
    OpenJPA 2.2.1 Source apache-openjpa-2.2.1-source.zip + 1 November 2012 MD5 + PGP +
    OpenJPA 2.2.1 Release Notes RELEASE-NOTES.html + 1 November 2012
    OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP
    OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip + 20 February 2012 MD5 + PGP +
    OpenJPA 2.2.0 Release Notes RELEASE-NOTES.html + 20 February 2012
    + + +### 2.1.x Releases + + + + + + + + + + + + + + + + + + + + + + +
    Download Release Date Checksum Signatures
    OpenJPA 2.1.1 Binary apache-openjpa-2.1.1-binary.zip + 25 July 2011 + MD5 + PGP +
    OpenJPA 2.1.1 Source apache-openjpa-2.1.1-source.zip + 25 July 2011 MD5 + PGP +
    OpenJPA 2.1.1 Release Notes RELEASE-NOTES.html + 25 July 2011
    OpenJPA 2.1.0 Binary apache-openjpa-2.1.0-binary.zip + 21 February 2011 MD5 + PGP +
    OpenJPA 2.1.0 Source apache-openjpa-2.1.0-source.zip + 21 February 2011 MD5 + PGP +
    OpenJPA 2.1.0 Release Notes RELEASE-NOTES.html + 21 February 2011
    + + +### 2.0.x Releases + + + + + + + + + + + + + + + + + + + + + + + +
    Download Release Date Checksum Signatures
    OpenJPA 2.0.1 Binary apache-openjpa-2.0.1-binary.zip + 30 August 2010 MD5 + PGP +
    OpenJPA 2.0.1 Source apache-openjpa-2.0.1-source.zip + 30 August 2010 MD5 + PGP +
    OpenJPA 2.0.1 Release Notes RELEASE-NOTES.html + 30 August 2010
    OpenJPA 2.0.0 Binary apache-openjpa-2.0.0-binary.zip + 22 April 2010 MD5 + PGP +
    OpenJPA 2.0.0 Source apache-openjpa-2.0.0-source.zip + 22 April 2010 MD5 + PGP +
    OpenJPA 2.0.0 Release Notes RELEASE-NOTES.html + 22 April 2010
    + + + +## Official JPA 1.0 Releases + +These releases implement the [JSR-220 Java Persistence 1.0](http://jcp.org/en/jsr/detail?id=220) + specification and pass the Sun JPA 1.0b Technology Compatibility Kit. + + +### 1.2.x Releases + + + + + + + + + + + + + + + + + + + + + + + + +
    Download Release Date Signatures Release Notes
    OpenJPA 1.2.2 apache-openjpa-1.2.2-binary.zip + 18 Jan 2010 PGP + Release Notes +
    OpenJPA 1.2.2 Source Code apache-openjpa-1.2.2-source.zip + 18 Jan 2010 PGP +
    OpenJPA 1.2.1 apache-openjpa-1.2.1-binary.zip + 18 Mar 2009 PGP + Release Notes +
    OpenJPA 1.2.1 Source Code apache-openjpa-1.2.1-source.zip + 18 Mar 2009 PGP +
    OpenJPA 1.2.0 apache-openjpa-1.2.0-binary.zip + 14 Aug 2008 PGP + Release Notes +
    OpenJPA 1.2.0 Source Code apache-openjpa-1.2.0-source.zip + 14 Aug 2008 PGP +
    + + +### 1.1.x Releases + + + + + + + + + + +
    Download Release Date Signatures Release Notes
    OpenJPA 1.1.0 apache-openjpa-1.1.0-binary.zip + 22 May 2008 PGP + Release Notes +
    OpenJPA 1.1.0 Source Code apache-openjpa-1.1.0-source.zip + 22 May 2008 PGP +
    + + +### 1.0.x Releases + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Download Release Date Signatures Release Notes
    OpenJPA 1.0.4 apache-openjpa-1.0.4-binary.zip + 18 Jan 2010 PGP + Release Notes +
    OpenJPA 1.0.4 Source Code apache-openjpa-1.0.4-source.zip + 18 Jan 2010 PGP +
    OpenJPA 1.0.3 apache-openjpa-1.0.3-binary.zip + 18 Feb 2008 PGP + Release Notes +
    OpenJPA 1.0.3 Source Code apache-openjpa-1.0.3-source.zip + 18 Feb 2008 PGP +
    OpenJPA 1.0.2 apache-openjpa-1.0.2-binary.zip + 18 Feb 2008 PGP + Release Notes +
    OpenJPA 1.0.2 Source Code apache-openjpa-1.0.2-source.zip + 18 Feb 2008 PGP +
    OpenJPA 1.0.1 apache-openjpa-1.0.1-binary.zip + 9 Nov 2007 PGP + Release Notes +
    OpenJPA 1.0.1 Source Code apache-openjpa-1.0.1-source.zip + 9 Nov 2007 PGP +
    OpenJPA 1.0.0 apache-openjpa-1.0.0-binary.zip + 28 Aug 2007 PGP + Release Notes +
    OpenJPA 1.0.0 Source Code apache-openjpa-1.0.0-source.zip + 28 Au 2007 PGP +
    + + +## Nightly Snapshots + +These distributions are built and deployed nightly, and contain up-to-date +fixes and improvements. However, their stability cannot be guaranteed. Use +at your own risk. + +### Snapshot builds for all active releases are published to the Apache snapshot repository. + +**Version 1.2.x, 1.3.x, 2.0.x, 2.1.x and trunk (2.2.x as of this writing) +can be found in the snapshot repository on repository.apache.org. A maven +project can access this snapshot repository by adding the following +repository in pom.xml:** + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + + false + + + + +**For versions 1.0.x, and 1.1.x you can find the snapshots on people.apache.org.** + +A maven project can access the snapshot builds by adding the following repository in pom.xml : + + + people.apache.org.snapshots + people.apache.org.snapshots + http://people.apache.org/repo/m2-snapshot-repository + + + +**Pre-packaged binaries for SNAPSHOT releases are available in the +snapshot repository at the following locations:** + + + + + + + + + + + + + + + + + +
    SNAPSHOT version binaries source
    2.2.0 apache-openjpa-2.2.0-SNAPSHOT-binary.zip + apache-openjpa-2.2.0-SNAPSHOT-source.zip +
    2.1.2 apache-openjpa-2.1.2-SNAPSHOT-binary.zip + apache-openjpa-2.1.2-SNAPSHOT-source.zip +
    2.0.2 apache-openjpa-2.0.2-SNAPSHOT-binary.zip + apache-openjpa-2.0.2-SNAPSHOT-source.zip +
    1.3.0 apache-openjpa-1.3.0-SNAPSHOT-binary.zip + apache-openjpa-1.3.0-SNAPSHOT-source.zip +
    1.2.3 apache-openjpa-1.2.3-SNAPSHOT-binary.zip + apache-openjpa-1.2.3-SNAPSHOT-source.zip +
    1.1.1 apache-openjpa-1.1.1-SNAPSHOT-binary.zip + apache-openjpa-1.1.1-SNAPSHOT-source.zip +
    1.0.5 apache-openjpa-1.0.5-SNAPSHOT-binary.zip + apache-openjpa-1.0.5-SNAPSHOT-source.zip +
    + +For the 1.2.x, 1.3.x, 2.0.x, 2.1.x and 2.2.x SNAPSHOTs, please scroll down +to the bottom of the artifact list to grab the latest ones, as we're +letting Maven create timestamped artifacts when publishing to the new +Apache Nexus repo. + + +## Older incubating Releases + + + + + + + + + + + + + + + +
    Download Release Date Signatures
    OpenJPA 0.9.7 openjpa-project-0.9.7-incubating-binary.zip + 27 April 2007 MD5 +PGP +
    OpenJPA 0.9.7 Source Code openjpa-project-0.9.7-incubating-source.zip + 27 April 2007 MD5 +PGP +
    OpenJPA 0.9.6 openjpa-project-0.9.6-incubating-binary.zip + 29 November 2006 MD5 +PGP +
    OpenJPA 0.9.6 Source Code openjpa-project-0.9.6-incubating-source.zip + 29 November 2006 MD5 +PGP +
    + + + +## Verifying Release Version and Revision + +OpenJPA jar is self-describing and after downloading a release or nightly +snapshot, you can find out the revision number included in the build by: + + % java -jar your/path/to/openjpa.jar + +which will print the version and revision numbers, for example: + + OpenJPA 2.1.0-SNAPSHOT + version id: openjpa-2.1.0-SNAPSHOT-r422266:935231 + Apache svn revision: 422266:935231 + +which designates that the nightly build includes Apache SVN revision +*935231* as the latest. + + +## Verifying Releases + +We strongly recommend you verify the integrity of the downloaded files with +both PGP and MD5. The PGP signatures can be verified using [PGP](http://www.pgpi.org/) + or [GPG](http://www.gnupg.org/) +. First download the [KEYS](http://apache.org/dist/openjpa/KEYS) + as well as the *\*.asc* signature file for the particular distribution. +Make sure you get these files from the main distribution directory, rather +than from a mirror. Then verify the signatures using one of the following +sets of commands: + + +#### Verifying Release Files using the pgpk Utility + + % pgpk -a KEYS + % pgpv openjpa-*.zip.asc + + + +#### Verifying Release Files using the pgp Utility + + % pgp -ka KEYS + % pgp openjpa-*.zip.asc + + + +#### Verifying Release Files using the gpg Utility + + % gpg --import KEYS + % gpg --verify openjpa-*.zip.asc + + +Alternatively, you can verify the checksums on the files. Unix programs +called *md5*/*sha1* or *md5sum*/*sha1sum* are included in many unix +distributions. \*sum is also available as part of [GNU Textutils](http://www.gnu.org/software/textutils/textutils.html) +. Windows users can get binary md5 programs from [here|http://www.fourmilab.ch/md5/] + or [here](http://www.pc-tools.net/win32/freeware/console/) +. [fsum](http://www.slavasoft.com/fsum/) + supports MD5 and SHA1. + +---- + +**(\*\*)** asm-3.2.jar can be found from +. From commits-return-10241-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 20:50:16 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AD147DFAB for ; Tue, 11 Dec 2012 20:50:16 +0000 (UTC) Received: (qmail 20035 invoked by uid 500); 11 Dec 2012 20:50:16 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 20007 invoked by uid 500); 11 Dec 2012 20:50:16 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 20000 invoked by uid 99); 11 Dec 2012 20:50:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:50:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 20:50:15 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B87962388906 for ; Tue, 11 Dec 2012 20:49:55 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841781 - /websites/production/openjpa/content/ Date: Tue, 11 Dec 2012 20:49:55 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211204955.B87962388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 20:49:54 2012 New Revision: 841781 Log: Publishing svnmucc operation to openjpa site by kwsutter Added: websites/production/openjpa/content/ - copied from r841780, websites/staging/openjpa/trunk/content/ From commits-return-10242-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:18:18 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 45E13D1E0 for ; Tue, 11 Dec 2012 21:18:18 +0000 (UTC) Received: (qmail 16040 invoked by uid 500); 11 Dec 2012 21:18:18 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 15979 invoked by uid 500); 11 Dec 2012 21:18:18 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 15972 invoked by uid 99); 11 Dec 2012 21:18:18 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:18:18 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:18:17 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id D4738238899C; Tue, 11 Dec 2012 21:17:56 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420413 - /openjpa/site/trunk/content/downloads.mdtext Date: Tue, 11 Dec 2012 21:17:56 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211211756.D4738238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 21:17:55 2012 New Revision: 1420413 URL: http://svn.apache.org/viewvc?rev=1420413&view=rev Log: testing archive site Modified: openjpa/site/trunk/content/downloads.mdtext Modified: openjpa/site/trunk/content/downloads.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/downloads.mdtext?rev=1420413&r1=1420412&r2=1420413&view=diff ============================================================================== --- openjpa/site/trunk/content/downloads.mdtext (original) +++ openjpa/site/trunk/content/downloads.mdtext Tue Dec 11 21:17:55 2012 @@ -42,16 +42,16 @@ These releases implement the [JSR-317 Ja
    OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP MD5 PGP
    OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip + apache-openjpa-2.2.0-source.zip 20 February 2012 MD5 - PGP + MD5 + PGP
    OpenJPA 2.2.0 Release Notes RELEASE-NOTES.html From commits-return-10243-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:18:27 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A5901D1E2 for ; Tue, 11 Dec 2012 21:18:27 +0000 (UTC) Received: (qmail 16330 invoked by uid 500); 11 Dec 2012 21:18:27 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 16308 invoked by uid 500); 11 Dec 2012 21:18:27 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 16301 invoked by uid 99); 11 Dec 2012 21:18:27 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:18:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:18:25 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3AFBA2388AA6 for ; Tue, 11 Dec 2012 21:18:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841784 - in /websites/staging/openjpa/trunk/content: ./ downloads.html Date: Tue, 11 Dec 2012 21:18:03 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211211804.3AFBA2388AA6@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Tue Dec 11 21:18:02 2012 New Revision: 841784 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/downloads.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Dec 11 21:18:02 2012 @@ -1 +1 @@ -1420398 +1420413 Modified: websites/staging/openjpa/trunk/content/downloads.html ============================================================================== --- websites/staging/openjpa/trunk/content/downloads.html (original) +++ websites/staging/openjpa/trunk/content/downloads.html Tue Dec 11 21:18:02 2012 @@ -171,16 +171,16 @@ good practice to
    OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP MD5 PGP
    OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip + apache-openjpa-2.2.0-source.zip 20 February 2012 MD5 - PGP + MD5 + PGP
    OpenJPA 2.2.0 Release Notes RELEASE-NOTES.html From commits-return-10244-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:21:43 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 86C6DD210 for ; Tue, 11 Dec 2012 21:21:43 +0000 (UTC) Received: (qmail 29962 invoked by uid 500); 11 Dec 2012 21:21:43 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 29944 invoked by uid 500); 11 Dec 2012 21:21:43 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 29937 invoked by uid 99); 11 Dec 2012 21:21:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:21:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:21:41 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id EFFAA238896F; Tue, 11 Dec 2012 21:21:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420418 - /openjpa/site/trunk/content/downloads.mdtext Date: Tue, 11 Dec 2012 21:21:19 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211212119.EFFAA238896F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 21:21:07 2012 New Revision: 1420418 URL: http://svn.apache.org/viewvc?rev=1420418&view=rev Log: another test of archive site Modified: openjpa/site/trunk/content/downloads.mdtext Modified: openjpa/site/trunk/content/downloads.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/downloads.mdtext?rev=1420418&r1=1420417&r2=1420418&view=diff ============================================================================== --- openjpa/site/trunk/content/downloads.mdtext (original) +++ openjpa/site/trunk/content/downloads.mdtext Tue Dec 11 21:21:07 2012 @@ -42,13 +42,13 @@ These releases implement the [JSR-317 Ja
    OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP
    OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip + apache-openjpa-2.2.0-source.zip 20 February 2012 MD5 PGP From commits-return-10245-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:21:54 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E5920D212 for ; Tue, 11 Dec 2012 21:21:53 +0000 (UTC) Received: (qmail 30384 invoked by uid 500); 11 Dec 2012 21:21:53 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 30355 invoked by uid 500); 11 Dec 2012 21:21:53 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 30348 invoked by uid 99); 11 Dec 2012 21:21:53 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:21:53 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:21:52 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B7DEF238899C for ; Tue, 11 Dec 2012 21:21:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841786 - in /websites/staging/openjpa/trunk/content: ./ downloads.html Date: Tue, 11 Dec 2012 21:21:32 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211212132.B7DEF238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Tue Dec 11 21:21:31 2012 New Revision: 841786 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/downloads.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Dec 11 21:21:31 2012 @@ -1 +1 @@ -1420413 +1420418 Modified: websites/staging/openjpa/trunk/content/downloads.html ============================================================================== --- websites/staging/openjpa/trunk/content/downloads.html (original) +++ websites/staging/openjpa/trunk/content/downloads.html Tue Dec 11 21:21:31 2012 @@ -171,13 +171,13 @@ good practice to
    OpenJPA 2.2.0 Binary apache-openjpa-2.2.0-binary.zip (**) apache-openjpa-2.2.0-binary.zip (**) 20 February 2012 MD5 PGP
    OpenJPA 2.2.0 Source apache-openjpa-2.2.0-source.zip + apache-openjpa-2.2.0-source.zip 20 February 2012 MD5 PGP From commits-return-10246-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:26:32 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9554DD167 for ; Tue, 11 Dec 2012 21:26:32 +0000 (UTC) Received: (qmail 50204 invoked by uid 500); 11 Dec 2012 21:26:32 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 50146 invoked by uid 500); 11 Dec 2012 21:26:32 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 50139 invoked by uid 99); 11 Dec 2012 21:26:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:26:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:26:31 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id DF0B92388A91; Tue, 11 Dec 2012 21:26:10 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420423 - /openjpa/site/trunk/content/downloads.mdtext Date: Tue, 11 Dec 2012 21:26:10 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211212610.DF0B92388A91@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 21:26:09 2012 New Revision: 1420423 URL: http://svn.apache.org/viewvc?rev=1420423&view=rev Log: changed links of non-current releases to the archive.apache.org server Modified: openjpa/site/trunk/content/downloads.mdtext Modified: openjpa/site/trunk/content/downloads.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/downloads.mdtext?rev=1420423&r1=1420422&r2=1420423&view=diff ============================================================================== --- openjpa/site/trunk/content/downloads.mdtext (original) +++ openjpa/site/trunk/content/downloads.mdtext Tue Dec 11 21:26:09 2012 @@ -65,16 +65,16 @@ These releases implement the [JSR-317 Ja - - - - - - - - - - - - - -
    Download Release Date Checksum Signatures
    OpenJPA 2.1.1 Binary apache-openjpa-2.1.1-binary.zip + apache-openjpa-2.1.1-binary.zip 25 July 2011 - MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.1 Source apache-openjpa-2.1.1-source.zip + apache-openjpa-2.1.1-source.zip 25 July 2011 MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.1 Release Notes RELEASE-NOTES.html @@ -82,16 +82,16 @@ These releases implement the [JSR-317 Ja
    OpenJPA 2.1.0 Binary apache-openjpa-2.1.0-binary.zip + apache-openjpa-2.1.0-binary.zip 21 February 2011 MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.0 Source apache-openjpa-2.1.0-source.zip + apache-openjpa-2.1.0-source.zip 21 February 2011 MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.0 Release Notes RELEASE-NOTES.html From commits-return-10247-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:26:40 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D73E1D224 for ; Tue, 11 Dec 2012 21:26:40 +0000 (UTC) Received: (qmail 50723 invoked by uid 500); 11 Dec 2012 21:26:40 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 50704 invoked by uid 500); 11 Dec 2012 21:26:40 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 50695 invoked by uid 99); 11 Dec 2012 21:26:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:26:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:26:37 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 838982388ABA for ; Tue, 11 Dec 2012 21:26:16 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841788 - in /websites/staging/openjpa/trunk/content: ./ downloads.html Date: Tue, 11 Dec 2012 21:26:16 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211212616.838982388ABA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Tue Dec 11 21:26:15 2012 New Revision: 841788 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/downloads.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Dec 11 21:26:15 2012 @@ -1 +1 @@ -1420418 +1420423 Modified: websites/staging/openjpa/trunk/content/downloads.html ============================================================================== --- websites/staging/openjpa/trunk/content/downloads.html (original) +++ websites/staging/openjpa/trunk/content/downloads.html Tue Dec 11 21:26:15 2012 @@ -193,16 +193,16 @@ good practice to OpenJPA 2.1.1 Binary apache-openjpa-2.1.1-binary.zip + apache-openjpa-2.1.1-binary.zip 25 July 2011 - MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.1 Source apache-openjpa-2.1.1-source.zip + apache-openjpa-2.1.1-source.zip 25 July 2011 MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.1 Release Notes RELEASE-NOTES.html @@ -210,16 +210,16 @@ good practice to
    OpenJPA 2.1.0 Binary apache-openjpa-2.1.0-binary.zip + apache-openjpa-2.1.0-binary.zip 21 February 2011 MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.0 Source apache-openjpa-2.1.0-source.zip + apache-openjpa-2.1.0-source.zip 21 February 2011 MD5 - PGP + MD5 + PGP
    OpenJPA 2.1.0 Release Notes RELEASE-NOTES.html From commits-return-10248-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:27:02 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4F956D418 for ; Tue, 11 Dec 2012 21:27:02 +0000 (UTC) Received: (qmail 52223 invoked by uid 500); 11 Dec 2012 21:27:02 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 52194 invoked by uid 500); 11 Dec 2012 21:27:02 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 52187 invoked by uid 99); 11 Dec 2012 21:27:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:27:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:27:01 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 41949238899C; Tue, 11 Dec 2012 21:26:41 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1420424 - /openjpa/site/trunk/content/downloads.mdtext Date: Tue, 11 Dec 2012 21:26:41 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211212641.41949238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 21:26:40 2012 New Revision: 1420424 URL: http://svn.apache.org/viewvc?rev=1420424&view=rev Log: fixed "building" link Modified: openjpa/site/trunk/content/downloads.mdtext Modified: openjpa/site/trunk/content/downloads.mdtext URL: http://svn.apache.org/viewvc/openjpa/site/trunk/content/downloads.mdtext?rev=1420424&r1=1420423&r2=1420424&view=diff ============================================================================== --- openjpa/site/trunk/content/downloads.mdtext (original) +++ openjpa/site/trunk/content/downloads.mdtext Tue Dec 11 21:26:40 2012 @@ -10,7 +10,7 @@ good practice to [verify the integrity]( of the distribution files. For information on obtaining OpenJPA binaries, see the [Obtaining](obtaining.html) - page. For information on building OpenJPA from source, see the [Building] + page. For information on building OpenJPA from source, see the [Building](building.html) page. From commits-return-10249-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:27:11 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1051FD4F2 for ; Tue, 11 Dec 2012 21:27:11 +0000 (UTC) Received: (qmail 52464 invoked by uid 500); 11 Dec 2012 21:27:11 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 52438 invoked by uid 500); 11 Dec 2012 21:27:11 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 52431 invoked by uid 99); 11 Dec 2012 21:27:10 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:27:10 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:27:08 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id BF2C82388ABB for ; Tue, 11 Dec 2012 21:26:47 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841789 - in /websites/staging/openjpa/trunk/content: ./ downloads.html Date: Tue, 11 Dec 2012 21:26:47 -0000 To: commits@openjpa.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211212647.BF2C82388ABB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: buildbot Date: Tue Dec 11 21:26:46 2012 New Revision: 841789 Log: Staging update by buildbot for openjpa Modified: websites/staging/openjpa/trunk/content/ (props changed) websites/staging/openjpa/trunk/content/downloads.html Propchange: websites/staging/openjpa/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Dec 11 21:26:46 2012 @@ -1 +1 @@ -1420423 +1420424 Modified: websites/staging/openjpa/trunk/content/downloads.html ============================================================================== --- websites/staging/openjpa/trunk/content/downloads.html (original) +++ websites/staging/openjpa/trunk/content/downloads.html Tue Dec 11 21:26:46 2012 @@ -143,7 +143,7 @@ limitations under the License. good practice to verify the integrity of the distribution files.

    For information on obtaining OpenJPA binaries, see the Obtaining - page. For information on building OpenJPA from source, see the [Building] + page. For information on building OpenJPA from source, see the Building page.

    Official JPA 2.0 Releases

    From commits-return-10250-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Tue Dec 11 21:32:40 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9D1F2D417 for ; Tue, 11 Dec 2012 21:32:40 +0000 (UTC) Received: (qmail 67944 invoked by uid 500); 11 Dec 2012 21:32:40 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 67914 invoked by uid 500); 11 Dec 2012 21:32:40 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 67907 invoked by uid 99); 11 Dec 2012 21:32:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:32:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2012 21:32:38 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 5274D23888CD for ; Tue, 11 Dec 2012 21:32:17 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r841790 - /websites/production/openjpa/content/ Date: Tue, 11 Dec 2012 21:32:17 -0000 To: commits@openjpa.apache.org From: kwsutter@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121211213217.5274D23888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kwsutter Date: Tue Dec 11 21:32:16 2012 New Revision: 841790 Log: Publishing svnmucc operation to openjpa site by kwsutter Added: websites/production/openjpa/content/ - copied from r841789, websites/staging/openjpa/trunk/content/ From commits-return-10251-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Wed Dec 12 06:51:05 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6A441D1D8 for ; Wed, 12 Dec 2012 06:51:05 +0000 (UTC) Received: (qmail 66585 invoked by uid 500); 12 Dec 2012 06:51:05 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 66468 invoked by uid 500); 12 Dec 2012 06:51:02 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 66437 invoked by uid 99); 12 Dec 2012 06:51:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2012 06:51:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2012 06:51:00 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id BDAE1C00AE for ; Wed, 12 Dec 2012 06:50:39 +0000 (UTC) Date: Wed, 12 Dec 2012 06:50:39 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <2101524751.1912.1355295039688.JavaMail.hudson@aegis> In-Reply-To: <2052949712.277.1354603868857.JavaMail.hudson@aegis> References: <2052949712.277.1354603868857.JavaMail.hudson@aegis> Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_OpenJPA-trunk?= =?UTF-8?Q?-deploy_=C2=BB_OpenJPA_Persistence_JDBC_#348?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA Persistence JDBC X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See ------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting file set: (included: [**], excluded: []) [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2702 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 105 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4864) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:710) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:708) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.3.0-SNAPSHOT/openjpa-persistence-jdbc-2.3.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :89: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 minutes 20 seconds [INFO] Finished at: Wed Dec 12 06:50:38 UTC 2012 [INFO] Final Memory: 115M/592M [INFO] ------------------------------------------------------------------------ From commits-return-10252-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Wed Dec 12 06:51:05 2012 Return-Path: X-Original-To: apmail-openjpa-commits-archive@www.apache.org Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 72DD3D1DA for ; Wed, 12 Dec 2012 06:51:05 +0000 (UTC) Received: (qmail 66614 invoked by uid 500); 12 Dec 2012 06:51:05 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 66519 invoked by uid 500); 12 Dec 2012 06:51:05 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 66470 invoked by uid 99); 12 Dec 2012 06:51:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2012 06:51:03 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.8] (HELO aegis.apache.org) (140.211.11.8) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2012 06:51:01 +0000 Received: from aegis.apache.org (localhost [127.0.0.1]) by aegis.apache.org (Postfix) with ESMTP id 251B4C00E8 for ; Wed, 12 Dec 2012 06:50:41 +0000 (UTC) Date: Wed, 12 Dec 2012 06:50:41 +0000 (UTC) From: Apache Jenkins Server To: commits@openjpa.apache.org Message-ID: <1268791117.1913.1355295041150.JavaMail.hudson@aegis> In-Reply-To: <951672032.278.1354603870162.JavaMail.hudson@aegis> References: <951672032.278.1354603870162.JavaMail.hudson@aegis> Subject: Build failed in Jenkins: OpenJPA-trunk-deploy #348 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Jenkins-Job: OpenJPA-trunk-deploy X-Jenkins-Result: FAILURE X-Virus-Checked: Checked by ClamAV on apache.org See Changes: [ppoddar] OPENJPA-2305: Change inheritance hierarchy of generated canonical metamodel [ppoddar] OPENJPA-2304: Protect the expressin list for concurrent access ------------------------------------------ [...truncated 463 lines...] Results : Tests run: 21, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-jdbc-2.3.0-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT-tests.jar [INFO] [deploy:deploy {execution: default-deploy}] [INFO] Retrieving previous build number from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e3bbc288ae24d33c27b3418d8fb040998d195fd0'; remote = '041ab3acb56120a3c2294e3966ffbb60981ec232' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e3bbc288ae24d33c27b3418d8fb040998d195fd0'; remote = '041ab3acb56120a3c2294e3966ffbb60981ec232' - IGNORING Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-20121212.064817-99.jar 1387K uploaded (openjpa-jdbc-2.3.0-20121212.064817-99.jar) [INFO] Uploading project information for openjpa-jdbc 2.3.0-20121212.064817-99 [INFO] Retrieving previous metadata from apache.snapshots.https [INFO] Uploading repository metadata for: 'artifact org.apache.openjpa:openjpa-jdbc' [INFO] Retrieving previous metadata from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e3bbc288ae24d33c27b3418d8fb040998d195fd0'; remote = '041ab3acb56120a3c2294e3966ffbb60981ec232' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e3bbc288ae24d33c27b3418d8fb040998d195fd0'; remote = '041ab3acb56120a3c2294e3966ffbb60981ec232' - IGNORING [INFO] Uploading repository metadata for: 'snapshot org.apache.openjpa:openjpa-jdbc:2.3.0-SNAPSHOT' [INFO] Retrieving previous build number from apache.snapshots.https Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-20121212.064817-99-tests.jar 41K uploaded (openjpa-jdbc-2.3.0-20121212.064817-99-tests.jar) [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-SNAPSHOT/openjpa-jdbc-2.3.0-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-20121212.064817-99/openjpa-jdbc-2.3.0-20121212.064817-99.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-jdbc/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-jdbc/2.3.0-20121212.064817-99/openjpa-jdbc-2.3.0-20121212.064817-99-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting file set: (included: [**], excluded: []) [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 14 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 233 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [WARNING] DEPRECATED [systemProperties]: Use systemPropertyVariables instead. [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.openjpa.persistence.TestEnumToKernelConstantMappings Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.032 sec Running org.apache.openjpa.persistence.TestPersistenceProductDerivation Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.308 sec Results : Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 [JENKINS] Recording test results [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: [INFO] [jar:jar {execution: default-jar}] [INFO] [jar:test-jar {execution: attach-tests}] [INFO] Building jar: [INFO] [ianal:verify-legal-files {execution: default}] [INFO] Checking legal files in: openjpa-persistence-2.3.0-SNAPSHOT.jar [INFO] Checking legal files in: openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [INFO] [apache-rat:check {execution: default}] [INFO] Exclude: **/.*/** [INFO] Exclude: **/target/**/* [INFO] [install:install {execution: default-install}] [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.jar [INFO] Installing to /home/hudson/hudson-slave/maven-repositories/1/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT-tests.jar [INFO] [deploy:deploy {execution: default-deploy}] [INFO] Retrieving previous build number from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e98cbee0f56874980b766e23d29a98251aadbb4d'; remote = 'ddb5967ae26f08924bdad2c2d8c8e5a42a8053a8' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e98cbee0f56874980b766e23d29a98251aadbb4d'; remote = 'ddb5967ae26f08924bdad2c2d8c8e5a42a8053a8' - IGNORING Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-20121212.064817-99.jar 809K uploaded (openjpa-persistence-2.3.0-20121212.064817-99.jar) [INFO] Uploading project information for openjpa-persistence 2.3.0-20121212.064817-99 [INFO] Retrieving previous metadata from apache.snapshots.https [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e98cbee0f56874980b766e23d29a98251aadbb4d'; remote = 'ddb5967ae26f08924bdad2c2d8c8e5a42a8053a8' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'e98cbee0f56874980b766e23d29a98251aadbb4d'; remote = 'ddb5967ae26f08924bdad2c2d8c8e5a42a8053a8' - IGNORING [INFO] Uploading repository metadata for: 'snapshot org.apache.openjpa:openjpa-persistence:2.3.0-SNAPSHOT' [INFO] Retrieving previous metadata from apache.snapshots.https [INFO] Uploading repository metadata for: 'artifact org.apache.openjpa:openjpa-persistence' [INFO] Retrieving previous build number from apache.snapshots.https Uploading: https://repository.apache.org/content/repositories/snapshots/org/apache/openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-20121212.064817-99-tests.jar 29K uploaded (openjpa-persistence-2.3.0-20121212.064817-99-tests.jar) [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-persistence/2.3.0-SNAPSHOT/openjpa-persistence-2.3.0-SNAPSHOT.pom [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-persistence/2.3.0-20121212.064817-99/openjpa-persistence-2.3.0-20121212.064817-99.jar [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-persistence/2.3.0-20121212.064817-99/openjpa-persistence-2.3.0-20121212.064817-99-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] Building OpenJPA Persistence JDBC [INFO] task-segment: [clean, deploy] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] Deleting file set: (included: [**], excluded: []) [INFO] [buildnumber:create {execution: default}] [INFO] [enforcer:enforce {execution: default}] [INFO] [checkstyle:checkstyle {execution: default}] [INFO] Starting audit... Audit done. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [remote-resources:process {execution: default}] [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 65 source files to [INFO] [compiler:testCompile {execution: test-source-compile}] [INFO] Compiling 2702 source files to [INFO] [resources:testResources {execution: default-testResources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 105 resources [INFO] Copying 3 resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Nothing to compile - all classes are up to date [INFO] [antrun:run {execution: default}] [INFO] Executing tasks enhance: enhance.all.entities: [echo] running enhancer org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:226) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypes(ClassArgParser.java:161) at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4864) at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89) at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:184) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at hudson.maven.agent.Main.launch(Main.java:185) at hudson.maven.MavenBuilder.call(MavenBuilder.java:151) at hudson.maven.Maven2Builder.call(Maven2Builder.java:77) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:120) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:710) at org.apache.openjpa.lib.util.J2DoPrivHelper$30.run(J2DoPrivHelper.java:708) at java.security.AccessController.doPrivileged(Native Method) at org.apache.openjpa.lib.meta.ClassArgParser.getFromClassFile(ClassArgParser.java:306) at org.apache.openjpa.lib.meta.ClassArgParser.parseTypeNames(ClassArgParser.java:217) ... 69 more [JENKINS] Archiving to /home/hudson/hudson/jobs/OpenJPA-trunk-deploy/modules/org.apache.openjpa$openjpa-persistence-jdbc/builds/2012-12-12_06-46-42/archive/org.apache.openjpa/openjpa-persistence-jdbc/2.3.0-SNAPSHOT/openjpa-persistence-jdbc-2.3.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An Ant BuildException has occured: The following error occurred while executing this line: :51: The following error occurred while executing this line: :89: org.apache.commons.lang.exception.NestableRuntimeException: Error extracting class information from " (Too many open files) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 minutes 20 seconds [INFO] Finished at: Wed Dec 12 06:50:38 UTC 2012 [INFO] Final Memory: 115M/592M [INFO] ------------------------------------------------------------------------ Sending e-mails to: commits@openjpa.apache.org channel stopped