ammulder 2005/07/07 17:37:08
Modified: modules/openejb-builder/src/test/org/openejb/deployment
AbstractDeploymentTest.java
CMPEntityBuilderTest.java
CMPEntityBuilderTestUtil.java
DeploymentTestSuite.java
Log:
Add option to configure PK generation via direct schema elements instead
of only using references to GBeans.
The old style configuration is still supported, though the syntax is
different (if you want to use a GBean reference, put it in a
key-generator/custom-generator element)
There's also a placeholder commented out of the XML Schema for key
generation using IDs inserted directly into the target table by the
database (using AUTO_INCREMENT columns or triggers) though that
requires additional features from TranQL before it works.
Revision Changes Path
1.5 +25 -1
openejb/modules/openejb-builder/src/test/org/openejb/deployment/AbstractDeploymentTest.java
Index: AbstractDeploymentTest.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/AbstractDeploymentTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractDeploymentTest.java 8 May 2005 19:37:14 -0000 1.4
+++ AbstractDeploymentTest.java 7 Jul 2005 21:37:08 -0000 1.5
@@ -165,6 +165,30 @@
assertEquals("MyFistName", cmp.getClass().getMethod("getFirstName",
null).invoke(cmp, null));
}
+ public void testPKGenCMP() throws Exception {
+ ObjectName cmpBeanName = ObjectName.getInstance(DOMAIN_NAME +
":j2eeType=EntityBean,J2EEServer=" + SERVER_NAME + ",J2EEApplication=" +
getJ2eeApplicationName() + ",EJBModule=" + getJ2eeModuleName() +
",name=PKGenCMPEntity");
+ assertRunning(getKernel(), cmpBeanName);
+
+ Object cmpHome = getKernel().getAttribute(cmpBeanName, "ejbHome");
+ assertTrue("Home is not an instance of EJBHome", cmpHome instanceof
EJBHome);
+ Object cmp = cmpHome.getClass().getMethod("create", new
Class[]{}).invoke(cmpHome, new Object[]{});
+
+ cmp.getClass().getMethod("setFirstName", new
Class[]{String.class}).invoke(cmp, new Object[]{"MyFistName"});
+ assertEquals("MyFistName", cmp.getClass().getMethod("getFirstName",
null).invoke(cmp, null));
+ }
+
+ public void testPKGenCMP2() throws Exception {
+ ObjectName cmpBeanName = ObjectName.getInstance(DOMAIN_NAME +
":j2eeType=EntityBean,J2EEServer=" + SERVER_NAME + ",J2EEApplication=" +
getJ2eeApplicationName() + ",EJBModule=" + getJ2eeModuleName() +
",name=PKGenCMPEntity");
+ assertRunning(getKernel(), cmpBeanName);
+
+ Object cmpHome = getKernel().getAttribute(cmpBeanName, "ejbHome");
+ assertTrue("Home is not an instance of EJBHome", cmpHome instanceof
EJBHome);
+ Object cmp = cmpHome.getClass().getMethod("create", new
Class[]{}).invoke(cmpHome, new Object[]{});
+
+ cmp.getClass().getMethod("setFirstName", new
Class[]{String.class}).invoke(cmp, new Object[]{"MyFistName"});
+ assertEquals("MyFistName", cmp.getClass().getMethod("getFirstName",
null).invoke(cmp, null));
+ }
+
public void testMDBContainer() throws Exception {
ObjectName mdbBeanName = ObjectName.getInstance(DOMAIN_NAME +
":j2eeType=MessageDrivenBean,J2EEServer=" + SERVER_NAME + ",J2EEApplication=" +
getJ2eeApplicationName() + ",EJBModule=" + getJ2eeModuleName() +
",name=SimpleMessageDriven");
assertRunning(getKernel(), mdbBeanName);
1.14 +8 -6
openejb/modules/openejb-builder/src/test/org/openejb/deployment/CMPEntityBuilderTest.java
Index: CMPEntityBuilderTest.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/CMPEntityBuilderTest.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- CMPEntityBuilderTest.java 25 Jun 2005 18:48:19 -0000 1.13
+++ CMPEntityBuilderTest.java 7 Jul 2005 21:37:08 -0000 1.14
@@ -69,9 +69,9 @@
import org.apache.geronimo.xbeans.j2ee.EjbJarDocument;
import org.apache.geronimo.xbeans.j2ee.EjbJarType;
import org.apache.xmlbeans.XmlObject;
-import org.openejb.corba.compiler.SkeletonGenerator;
import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarDocument;
import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarType;
+import org.openejb.deployment.pkgen.TranQLPKGenBuilder;
import org.tranql.cache.GlobalSchema;
import org.tranql.ejb.EJBSchema;
import org.tranql.schema.Association;
@@ -91,7 +91,6 @@
* */
public class CMPEntityBuilderTest extends TestCase {
private ObjectName listener = null;
- private SkeletonGenerator skeletonGenerator = null;
private Repository repository = null;
private Kernel kernel = null;
@@ -121,6 +120,7 @@
OpenEJBModuleBuilder moduleBuilder = new
OpenEJBModuleBuilder(KernelHelper.DEFAULT_PARENTID, listener, repository);
CMPEntityBuilder builder = new CMPEntityBuilder(moduleBuilder);
+ TranQLPKGenBuilder pkGen = new TranQLPKGenBuilder();
GlobalSchema globalSchema = new GlobalSchema("Test");
EJBSchema ejbSchema = new EJBSchema("Test");
@@ -141,7 +141,7 @@
null, null);
J2eeContext moduleJ2eeContext = new
J2eeContextImpl("geronimo.server", "TestGeronimoServer", "null",
NameFactory.EJB_MODULE, "MockModule", null, null);
ClassLoader cl = Thread.currentThread().getContextClassLoader();
- builder.buildCMPSchema(earContext, moduleJ2eeContext,
ejbJarType, openejbJarType, cl, ejbSchema, sqlSchema, globalSchema);
+ builder.buildCMPSchema(earContext, moduleJ2eeContext,
ejbJarType, openejbJarType, cl, ejbSchema, sqlSchema, globalSchema, pkGen,
null);
assertOneToOneEntity(ejbSchema.getEntity("A"),
ejbSchema.getEntity("B"));
assertOneToOneEntity(sqlSchema.getEntity("A"),
sqlSchema.getEntity("B"));
@@ -166,6 +166,7 @@
OpenEJBModuleBuilder moduleBuilder = new
OpenEJBModuleBuilder(KernelHelper.DEFAULT_PARENTID, listener, repository);
CMPEntityBuilder builder = new CMPEntityBuilder(moduleBuilder);
+ TranQLPKGenBuilder pkGen = new TranQLPKGenBuilder();
GlobalSchema globalSchema = new GlobalSchema("Test");
EJBSchema ejbSchema = new EJBSchema("Test");
@@ -187,7 +188,7 @@
J2eeContext moduleJ2eeContext = new
J2eeContextImpl("geronimo.server", "TestGeronimoServer", "null",
NameFactory.EJB_MODULE, "MockModule", null, null);
ClassLoader cl = Thread.currentThread().getContextClassLoader();
- builder.buildCMPSchema(earContext, moduleJ2eeContext,
ejbJarType, openejbJarType, cl, ejbSchema, sqlSchema, globalSchema);
+ builder.buildCMPSchema(earContext, moduleJ2eeContext,
ejbJarType, openejbJarType, cl, ejbSchema, sqlSchema, globalSchema, pkGen,
null);
assertOneToManyEntity(ejbSchema.getEntity("A"),
ejbSchema.getEntity("B"));
assertOneToManyEntity(sqlSchema.getEntity("A"),
sqlSchema.getEntity("B"));
@@ -212,6 +213,7 @@
OpenEJBModuleBuilder moduleBuilder = new
OpenEJBModuleBuilder(KernelHelper.DEFAULT_PARENTID, listener, repository);
CMPEntityBuilder builder = new CMPEntityBuilder(moduleBuilder);
+ TranQLPKGenBuilder pkGen = new TranQLPKGenBuilder();
GlobalSchema globalSchema = new GlobalSchema("Test");
EJBSchema ejbSchema = new EJBSchema("Test");
@@ -233,7 +235,7 @@
J2eeContext moduleJ2eeContext = new
J2eeContextImpl("geronimo.server", "TestGeronimoServer", "null",
NameFactory.EJB_MODULE, "MockModule", null, null);
ClassLoader cl = Thread.currentThread().getContextClassLoader();
- builder.buildCMPSchema(earContext, moduleJ2eeContext,
ejbJarType, openejbJarType, cl, ejbSchema, sqlSchema, globalSchema);
+ builder.buildCMPSchema(earContext, moduleJ2eeContext,
ejbJarType, openejbJarType, cl, ejbSchema, sqlSchema, globalSchema, pkGen,
null);
assertManyToManyEntity(ejbSchema.getEntity("A"),
ejbSchema.getEntity("B"));
assertManyToManyEntity(sqlSchema.getEntity("A"),
sqlSchema.getEntity("B"));
1.6 +5 -3
openejb/modules/openejb-builder/src/test/org/openejb/deployment/CMPEntityBuilderTestUtil.java
Index: CMPEntityBuilderTestUtil.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/CMPEntityBuilderTestUtil.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CMPEntityBuilderTestUtil.java 22 Jun 2005 11:27:22 -0000 1.5
+++ CMPEntityBuilderTestUtil.java 7 Jul 2005 21:37:08 -0000 1.6
@@ -48,12 +48,14 @@
package org.openejb.deployment;
+import javax.sql.DataSource;
import junit.framework.TestCase;
import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.j2ee.deployment.EARContext;
import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext;
import org.apache.geronimo.xbeans.j2ee.EjbJarType;
import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarType;
+import org.openejb.deployment.pkgen.PKGenBuilder;
import org.tranql.cache.GlobalSchema;
import org.tranql.ejb.EJBSchema;
import org.tranql.sql.SQLSchema;
@@ -78,8 +80,8 @@
this.delegate = new CMPEntityBuilder(builder);
}
- public void buildCMPSchema(EARContext earContext, J2eeContext
moduleJ2eeContext, EjbJarType ejbJar, OpenejbOpenejbJarType openejbEjbJar,
ClassLoader cl, EJBSchema ejbSchema, SQLSchema sqlSchema, GlobalSchema
globalSchema) throws DeploymentException {
- delegate.buildCMPSchema(earContext, moduleJ2eeContext, ejbJar,
openejbEjbJar, cl, ejbSchema, sqlSchema, globalSchema);
+ public void buildCMPSchema(EARContext earContext, J2eeContext
moduleJ2eeContext, EjbJarType ejbJar, OpenejbOpenejbJarType openejbEjbJar,
ClassLoader cl, EJBSchema ejbSchema, SQLSchema sqlSchema, GlobalSchema
globalSchema, PKGenBuilder pkGen, DataSource dataSource) throws
DeploymentException {
+ delegate.buildCMPSchema(earContext, moduleJ2eeContext, ejbJar,
openejbEjbJar, cl, ejbSchema, sqlSchema, globalSchema, pkGen, dataSource);
}
}
1.7 +4 -1
openejb/modules/openejb-builder/src/test/org/openejb/deployment/DeploymentTestSuite.java
Index: DeploymentTestSuite.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/DeploymentTestSuite.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DeploymentTestSuite.java 25 Jun 2005 18:48:20 -0000 1.6
+++ DeploymentTestSuite.java 7 Jul 2005 21:37:08 -0000 1.7
@@ -214,6 +214,9 @@
connection = dataSource.getConnection();
statement = connection.createStatement();
statement.execute("CREATE TABLE SIMPLECMP(ID INTEGER,
FIRSTNAME VARCHAR(50), LASTNAME VARCHAR(50))");
+ statement.execute("CREATE TABLE PKGENCMP(ID INTEGER,
FIRSTNAME VARCHAR(50), LASTNAME VARCHAR(50))");
+ statement.execute("CREATE TABLE PKGENCMP_SEQ(NAME
VARCHAR(50), VALUE INTEGER)");
+ statement.execute("CREATE TABLE PKGENCMP2(ID INTEGER,
FIRSTNAME VARCHAR(50), LASTNAME VARCHAR(50))");
} finally {
JDBCUtil.close(statement);
JDBCUtil.close(connection);