gdamour 2005/03/04 04:35:50
Modified: modules/openejb-builder/src/java/org/openejb/deployment
CMPContainerBuilder.java CMPEntityBuilder.java
Log:
o synch with the TranQL API updates, which allow to identify EJB having an
unknown primary key class; and
o argument of the findByPrimaryKey method must be declared as java.lang.Object
in the case of an EJB having an unknown primary key class.
Revision Changes Path
1.17 +3 -2
openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPContainerBuilder.java
Index: CMPContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPContainerBuilder.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- CMPContainerBuilder.java 2 Mar 2005 13:26:13 -0000 1.16
+++ CMPContainerBuilder.java 4 Mar 2005 09:35:50 -0000 1.17
@@ -256,7 +256,8 @@
QueryCommand remoteProxyLoad =
mapper.transform(remoteProxyLoadView.getQueryCommand());
remoteProxyLoadView = new QueryCommandView(remoteProxyLoad,
remoteProxyLoadView.getView());
- FinderEJBQLQuery pkFinder = new FinderEJBQLQuery("findByPrimaryKey",
new Class[] {ejb.getPrimaryKeyClass()}, "UNDEFINED");
+ Class pkClass = ejb.isUnknownPK() ? Object.class :
ejb.getPrimaryKeyClass();
+ FinderEJBQLQuery pkFinder = new FinderEJBQLQuery("findByPrimaryKey",
new Class[] {pkClass}, "UNDEFINED");
QueryCommandView views[] = new
QueryCommandView[]{localProxyLoadView, remoteProxyLoadView};
boolean found = false;
for (Iterator iter = finders.entrySet().iterator(); iter.hasNext();)
{
1.22 +7 -8
openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPEntityBuilder.java
Index: CMPEntityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPEntityBuilder.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- CMPEntityBuilder.java 3 Mar 2005 09:46:31 -0000 1.21
+++ CMPEntityBuilder.java 4 Mar 2005 09:35:50 -0000 1.22
@@ -195,12 +195,12 @@
throw new DeploymentException("Could not load cmp bean
class: ejbName=" + ejbName + " ejbClass=" +
getString(entityBean.getEjbClass()));
}
- boolean isUnknownPK = false;
+ boolean unknownPK = false;
Class pkClass;
try {
String pkClassName = getString(entityBean.getPrimKeyClass());
if ( pkClassName.equals("java.lang.Object") ) {
- isUnknownPK = true;
+ unknownPK = true;
if ( false ==
openEjbEntity.isSetAutomaticKeyGeneration() ) {
throw new DeploymentException("Automatic key
generation is not defined: ejbName=" + ejbName);
}
@@ -213,10 +213,11 @@
}
EJB ejb;
+ PrimaryKeyGeneratorDelegate keyGeneratorDelegate = null;
if ( openEjbEntity.isSetAutomaticKeyGeneration() ) {
AutomaticKeyGeneration keyGeneration =
openEjbEntity.getAutomaticKeyGeneration();
String generatorName = keyGeneration.getGeneratorName();
- PrimaryKeyGeneratorDelegate keyGeneratorDelegate =
(PrimaryKeyGeneratorDelegate) keyGenerators.get(generatorName);
+ keyGeneratorDelegate = (PrimaryKeyGeneratorDelegate)
keyGenerators.get(generatorName);
if ( null == keyGeneratorDelegate ) {
keyGeneratorDelegate = new PrimaryKeyGeneratorDelegate();
GBeanData keyGenerator;
@@ -233,15 +234,13 @@
keyGenerators.put(generatorName, keyGeneratorDelegate);
}
- ejb = new EJB(ejbName, abstractSchemaName, pkClass,
proxyFactory, keyGeneratorDelegate);
- } else {
- ejb = new EJB(ejbName, abstractSchemaName, pkClass,
proxyFactory);
}
+ ejb = new EJB(ejbName, abstractSchemaName, pkClass,
proxyFactory, keyGeneratorDelegate, unknownPK);
Table table = new Table(ejbName, openEjbEntity.getTableName());
Set pkFieldNames;
- if ( isUnknownPK && openEjbEntity.isSetPrimkeyField() ) {
+ if ( unknownPK && openEjbEntity.isSetPrimkeyField() ) {
pkFieldNames = new HashSet(1);
pkFieldNames.add(openEjbEntity.getPrimkeyField());
} else if ( false == entityBean.isSetPrimkeyField() ) {