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() ) {
  
  
  

Reply via email to