You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by dw...@apache.org on 2010/01/20 21:53:58 UTC
svn commit: r901374 - in /openjpa/trunk: openjpa-persistence-jdbc/pom.xml
openjpa-persistence-locking/pom.xml
openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
openjpa-slice/pom.xml pom.xml
Author: dwoods
Date: Wed Jan 20 20:53:57 2010
New Revision: 901374
URL: http://svn.apache.org/viewvc?rev=901374&view=rev
Log:
OPENJPA-1374 Enable junits to be executed against an in-memory Derby 10.5.3.0 db. Moved common Derby profiles to the parent POM. Added new Derby props in o-p-j which knocked 2 mins off build time. Added a test-derbymem profile to use Derby 10.5.3.0 as in-memory DB, which reduced build time by 5 mins.
Modified:
openjpa/trunk/openjpa-persistence-jdbc/pom.xml
openjpa/trunk/openjpa-persistence-locking/pom.xml
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
openjpa/trunk/openjpa-slice/pom.xml
openjpa/trunk/pom.xml
Modified: openjpa/trunk/openjpa-persistence-jdbc/pom.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/pom.xml?rev=901374&r1=901373&r2=901374&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/pom.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/pom.xml Wed Jan 20 20:53:57 2010
@@ -99,77 +99,6 @@
</build>
</profile>
- <!-- Default profile for testing with embedded Apache Derby -->
- <profile>
- <!--
- Optionally, you can override the following properties:
- -Dderby.version=10.2.2.0
- -->
- <id>test-derby</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- <property>
- <name>test-derby</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>${derby.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <connection.driver.name>org.apache.derby.jdbc.EmbeddedDriver</connection.driver.name>
- <connection.url>jdbc:derby:target/database/openjpa-derby-database;create=true</connection.url>
- <connection.username />
- <connection.password />
- </properties>
- </profile>
-
- <!-- Profile for testing with Apache Derby network server -->
- <profile>
- <!--
- Example Derby Network Server profile.
- You must manually start a Derby network server instance and
- also set the following properties:
- -Dopenjpa.derbynet.url=jdbc:derby://<HOST>:<PORT>/<DBNAME>;\
- create=true
-
- Optionally, you can override the following properties:
- -Dopenjpa.derbynet.driver=org.apache.derby.jdbc.ClientXADataSource
- -Dopenjpa.derbynet.username=
- -Dopenjpa.derbynet.password=
- -Dderby.version=10.2.2.0
- -->
- <id>test-derbynet</id>
- <activation>
- <property>
- <name>test-derbynet</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derbyclient</artifactId>
- <version>${derby.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <openjpa.derbynet.url>jdbc:derby://localhost:1527/openjpa20;create=true;traceDirectory=target;traceFile=derby.log</openjpa.derbynet.url>
- <openjpa.derbynet.driver>org.apache.derby.jdbc.ClientDriver</openjpa.derbynet.driver>
- <!-- Note: commons-dbcp requires dummy values for uid/pwd -->
- <openjpa.derbynet.username>uid</openjpa.derbynet.username>
- <openjpa.derbynet.password>pwd</openjpa.derbynet.password>
- <connection.driver.name>${openjpa.derbynet.driver}</connection.driver.name>
- <connection.url>${openjpa.derbynet.url}</connection.url>
- <connection.username>${openjpa.derbynet.username}</connection.username>
- <connection.password>${openjpa.derbynet.password}</connection.password>
- </properties>
- </profile>
-
<!-- Profile for testing with HSQL DB -->
<profile>
<id>test-hsqldb</id>
@@ -1063,6 +992,14 @@
<value>${derby.locks.waitTimeout}</value>
</property>
<property>
+ <name>derby.storage.pageCacheSize</name>
+ <value>10000</value>
+ </property>
+ <property>
+ <name>derby.storage.initialPages</name>
+ <value>10</value>
+ </property>
+ <property>
<name>openjpa.ConnectionProperties</name>
<value>DriverClassName=${connection.driver.name},Url=${connection.url},Username=${connection.username},Password=${connection.password},${dbcp.args}</value>
</property>
Modified: openjpa/trunk/openjpa-persistence-locking/pom.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-locking/pom.xml?rev=901374&r1=901373&r2=901374&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-locking/pom.xml (original)
+++ openjpa/trunk/openjpa-persistence-locking/pom.xml Wed Jan 20 20:53:57 2010
@@ -101,77 +101,6 @@
</build>
</profile>
- <!-- Default profile for testing with embedded Apache Derby -->
- <profile>
- <!--
- Optionally, you can override the following properties:
- -Dderby.version=10.2.2.0
- -->
- <id>test-derby</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- <property>
- <name>test-derby</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>${derby.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <connection.driver.name>org.apache.derby.jdbc.EmbeddedDriver</connection.driver.name>
- <connection.url>jdbc:derby:target/database/openjpa-derby-database;create=true</connection.url>
- <connection.username />
- <connection.password />
- </properties>
- </profile>
-
- <!-- Profile for testing with Apache Derby network server -->
- <profile>
- <!--
- Example Derby Network Server profile.
- You must manually start a Derby network server instance and
- also set the following properties:
- -Dopenjpa.derbynet.url=jdbc:derby://<HOST>:<PORT>/<DBNAME>;\
- create=true
-
- Optionally, you can override the following properties:
- -Dopenjpa.derbynet.driver=org.apache.derby.jdbc.ClientXADataSource
- -Dopenjpa.derbynet.username=
- -Dopenjpa.derbynet.password=
- -Dderby.version=10.2.2.0
- -->
- <id>test-derbynet</id>
- <activation>
- <property>
- <name>test-derbynet</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derbyclient</artifactId>
- <version>${derby.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <openjpa.derbynet.url>jdbc:derby://localhost:1527/openjpa20;create=true;traceDirectory=target;traceFile=derby.log</openjpa.derbynet.url>
- <openjpa.derbynet.driver>org.apache.derby.jdbc.ClientDriver</openjpa.derbynet.driver>
- <!-- Note: commons-dbcp requires dummy values for uid/pwd -->
- <openjpa.derbynet.username>uid</openjpa.derbynet.username>
- <openjpa.derbynet.password>pwd</openjpa.derbynet.password>
- <connection.driver.name>${openjpa.derbynet.driver}</connection.driver.name>
- <connection.url>${openjpa.derbynet.url}</connection.url>
- <connection.username>${openjpa.derbynet.username}</connection.username>
- <connection.password>${openjpa.derbynet.password}</connection.password>
- </properties>
- </profile>
-
<!-- Profile for testing with HSQL DB -->
<profile>
<id>test-hsqldb</id>
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?rev=901374&r1=901373&r2=901374&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java Wed Jan 20 20:53:57 2010
@@ -93,12 +93,17 @@
_log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
pd.checkPuNameCollisions(_log,name);
- loadAgent(_log, conf);
+ // add enhancer
+ loadAgent(factory);
- // TODO - Can this be moved back to BrokerImpl.initialize()?
// Create appropriate LifecycleEventManager
- loadValidator(_log, conf);
+ loadValidator(factory);
+ // We need to wait to preload until after we get back a fully configured/instantiated
+ // BrokerFactory. This is because it is possible that someone has extended OpenJPA
+ // functions and they need to be allowed time to configure themselves before we go off and
+ // start instanting configurable objects (ie:openjpa.MetaDataRepository). Don't catch
+ // any exceptions here because we want to fail-fast.
preloadMetaDataRepository(factory);
return JPAFacadeHelper.toEntityManagerFactory(factory);
@@ -181,18 +186,17 @@
log.warn(_loc.get("transformer-registration-error", pui));
}
}
+
// Create appropriate LifecycleEventManager
- OpenJPAConfiguration conf = factory.getConfiguration();
- conf.setPersistenceUnitRootUrl(pui.getPersistenceUnitRootUrl());
- _log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
- loadValidator(_log, conf);
+ loadValidator(factory);
// We need to wait to preload until after we get back a fully configured/instantiated
// BrokerFactory. This is because it is possible that someone has extended OpenJPA
// functions and they need to be allowed time to configure themselves before we go off and
// start instanting configurable objects (ie:openjpa.MetaDataRepository). Don't catch
// any exceptions here because we want to fail-fast.
- preloadMetaDataRepository(factory);
+ preloadMetaDataRepository(factory);
+
return JPAFacadeHelper.toEntityManagerFactory(factory);
} catch (Exception e) {
throw PersistenceExceptions.toPersistenceException(e);
@@ -234,7 +238,7 @@
// We need to wait to preload until after we get back a fully configured/instantiated
// BrokerFactory. This is because it is possible that someone has extended OpenJPA
// functions and they need to be allowed time to configure themselves before we go off and
- // start instanting configurable objects (ie:openjpa.MetaDataRepository). Don't catch
+ // start instantiating configurable objects (ie:openjpa.MetaDataRepository). Don't catch
// any exceptions here because we want to fail-fast.
OpenJPAConfiguration conf = factory.getConfiguration();
Options o = Configurations.parseProperties(Configurations.getProperties(conf.getMetaDataRepository()));
@@ -285,11 +289,14 @@
/**
* This private worker method will attempt load the PCEnhancerAgent.
*/
- private void loadAgent(Log log, OpenJPAConfiguration conf) {
+ private void loadAgent(BrokerFactory factory) {
+ OpenJPAConfiguration conf = factory.getConfiguration();
+ Log log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
+
if (conf.getDynamicEnhancementAgent() == true) {
boolean res = PCEnhancerAgent.loadDynamicAgent(log);
- if(_log.isInfoEnabled() && res == true ){
- _log.info(_loc.get("dynamic-agent"));
+ if (log.isInfoEnabled() && res == true ){
+ log.info(_loc.get("dynamic-agent"));
}
}
}
@@ -302,10 +309,13 @@
* @param conf
* @throws if validation setup failed and was required by the config
*/
- private void loadValidator(Log log, OpenJPAConfiguration conf) {
+ private void loadValidator(BrokerFactory factory) {
+ OpenJPAConfiguration conf = factory.getConfiguration();
+ Log log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
+
if ((ValidationUtils.setupValidation(conf) == true) &&
- _log.isInfoEnabled()) {
- _log.info(_loc.get("vlem-creation-info"));
+ log.isInfoEnabled()) {
+ log.info(_loc.get("vlem-creation-info"));
}
}
Modified: openjpa/trunk/openjpa-slice/pom.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/pom.xml?rev=901374&r1=901373&r2=901374&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/pom.xml (original)
+++ openjpa/trunk/openjpa-slice/pom.xml Wed Jan 20 20:53:57 2010
@@ -63,29 +63,8 @@
</dependency>
</dependencies>
<profiles>
- <!-- Profile for testing with Apache Derby -->
- <profile>
- <id>test-derby</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- <property>
- <name>test-derby</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <connection.driver.name> org.apache.derby.jdbc.EmbeddedDriver </connection.driver.name>
- <connection.url> jdbc:derby:target/database/slice-derby-One;create=true </connection.url>
- <connection.username />
- <connection.password />
- </properties>
- </profile>
+ <!-- Default is to test with Embedded Derby, which is setup in
+ persistence.xml to create the required slices -->
<!-- Sample profile for testing with MySQL DB -->
<profile>
Modified: openjpa/trunk/pom.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/pom.xml?rev=901374&r1=901373&r2=901374&view=diff
==============================================================================
--- openjpa/trunk/pom.xml (original)
+++ openjpa/trunk/pom.xml Wed Jan 20 20:53:57 2010
@@ -111,7 +111,113 @@
<module>openjpa-integration</module>
<module>openjpa-all</module>
</modules>
+
<profiles>
+ <!-- =============== -->
+ <!-- Test Profiles -->
+ <!-- =============== -->
+ <!-- Default profile for testing with an embedded Apache Derby DB -->
+ <profile>
+ <!--
+ Optionally, you can override the following properties:
+ -Dderby.version=10.2.2.0
+ -->
+ <id>test-derby</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ <property>
+ <name>test-derby</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>${derby.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <connection.driver.name>org.apache.derby.jdbc.EmbeddedDriver</connection.driver.name>
+ <connection.url>jdbc:derby:target/database/openjpa-derby-database;create=true</connection.url>
+ <connection.username />
+ <connection.password />
+ </properties>
+ </profile>
+ <!-- Profile for testing with an In-Memory Apache Derby DB -->
+ <profile>
+ <!--
+ Optionally, you can override the following properties:
+ -Dderby.version=10.5.3.0_1
+ -->
+ <id>test-derbymem</id>
+ <activation>
+ <property>
+ <name>test-derbymem</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>${derby.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <derby.version>10.5.3.0_1</derby.version>
+ <connection.driver.name>org.apache.derby.jdbc.EmbeddedDriver</connection.driver.name>
+ <connection.url>jdbc:derby:memory:openjpa-derby-inmem-database;create=true</connection.url>
+ <connection.username />
+ <connection.password />
+ </properties>
+ </profile>
+ <!-- Profile for testing with Apache Derby DB network server -->
+ <profile>
+ <!--
+ Example Derby Network Server profile.
+ You must manually start a Derby network server instance and
+ also set the following properties:
+ -Dopenjpa.derbynet.url=jdbc:derby://<HOST>:<PORT>/<DBNAME>;\
+ create=true
+
+ Optionally, you can override the following properties:
+ -Dopenjpa.derbynet.driver=org.apache.derby.jdbc.ClientXADataSource
+ -Dopenjpa.derbynet.username=
+ -Dopenjpa.derbynet.password=
+ -Dderby.version=10.2.2.0
+ -->
+ <id>test-derbynet</id>
+ <activation>
+ <property>
+ <name>test-derbynet</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derbyclient</artifactId>
+ <version>${derby.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <openjpa.derbynet.url>jdbc:derby://localhost:1527/openjpa20;create=true;traceDirectory=target;traceFile=derby.log</openjpa.derbynet.url>
+ <openjpa.derbynet.driver>org.apache.derby.jdbc.ClientDriver</openjpa.derbynet.driver>
+ <!-- Note: commons-dbcp requires dummy values for uid/pwd -->
+ <openjpa.derbynet.username>uid</openjpa.derbynet.username>
+ <openjpa.derbynet.password>pwd</openjpa.derbynet.password>
+ <connection.driver.name>${openjpa.derbynet.driver}</connection.driver.name>
+ <connection.url>${openjpa.derbynet.url}</connection.url>
+ <connection.username>${openjpa.derbynet.username}</connection.username>
+ <connection.password>${openjpa.derbynet.password}</connection.password>
+ </properties>
+ </profile>
+
+
+ <!-- ================ -->
+ <!-- Build Profiles -->
+ <!-- ================ -->
<profile>
<id>release</id>
<activation>