dain        2006/02/01 06:50:14

  Modified:    modules/openejb-builder/src/java/org/openejb/deployment/ant
                        DDLExporterTask.java
  Log:

  Major refactor
  Split container into an object to represent a deployed ejb and a set of 
shared containers which process invocations
  Introduced interface between CMP container and CMP engine
  
  Revision  Changes    Path
  1.4       +43 -36    
openejb/modules/openejb-builder/src/java/org/openejb/deployment/ant/DDLExporterTask.java
  
  Index: DDLExporterTask.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/ant/DDLExporterTask.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DDLExporterTask.java      24 Nov 2005 23:12:03 -0000      1.3
  +++ DDLExporterTask.java      1 Feb 2006 11:50:13 -0000       1.4
  @@ -52,40 +52,38 @@
   import java.io.OutputStream;

   import java.io.PrintWriter;

   import java.lang.reflect.Constructor;

  -

   import javax.sql.DataSource;

   

  -import org.apache.geronimo.common.DeploymentException;

  +import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;

  +import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext;

  +import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContextImpl;

  +import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;

   import org.apache.geronimo.schema.SchemaConversionUtils;

   import org.apache.geronimo.xbeans.j2ee.EjbJarType;

  -import org.apache.geronimo.xbeans.j2ee.EntityBeanType;

  -import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;

   import org.apache.tools.ant.AntClassLoader;

   import org.apache.tools.ant.BuildException;

   import org.apache.tools.ant.Task;

   import org.apache.tools.ant.types.Path;

   import org.apache.xmlbeans.XmlObject;

  -import org.openejb.deployment.Schemata;

  -import org.openejb.deployment.SchemataBuilder;

  -import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarType;

  +import org.openejb.deployment.CmpSchemaBuilder;

  +import org.openejb.deployment.TranqlCmpSchemaBuilder;

  +import org.openejb.entity.cmp.ModuleSchema;

  +import org.openejb.entity.cmp.TranqlSchemaBuilder;

   import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarDocument;

  -import org.openejb.xbeans.pkgen.EjbKeyGeneratorType;

  +import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarType;

   import org.tranql.ddl.DDLCommandBuilder;

   import org.tranql.ddl.DDLGenerator;

   import org.tranql.ddl.DDLGenerator.ExecutionStrategy;

   import org.tranql.ddl.DDLGenerator.GenerationStrategy;

   import org.tranql.ejb.EJBProxyFactory;

   import org.tranql.pkgenerator.PrimaryKeyGenerator;

  -import org.tranql.ql.QueryException;

  +import org.tranql.sql.SQLSchema;

   

   

   /**

  - *

    * @version $Revision$ $Date$

    */

   public class DDLExporterTask extends Task {

  -    private static String SCHEMA_NAME = "UNDEFINED";

  -

       private Path classpath;

       private EjbJarLocation ejbJarLocation;

       private OpenejbJarLocation openejbJarLocation;

  @@ -147,18 +145,8 @@
               throw new BuildException("type is required.");

           }

   

  -        SchemataBuilder schemataBuilder = new SchemataBuilder() {

  -            protected EJBProxyFactory buildEJBProxyFactory(EntityBeanType 
entityBean, String remoteInterfaceName, String homeInterfaceName, String 
localInterfaceName, String localHomeInterfaceName, ClassLoader cl) throws 
DeploymentException {

  -                return null;

  -            }

  -

  -            protected PrimaryKeyGenerator 
buildPKGenerator(EjbKeyGeneratorType config, Class pkClass) throws 
DeploymentException, QueryException {

  -                return null;

  -            }

  -        };

  -

           ClassLoader cl = new AntClassLoader(getClass().getClassLoader(), 
getProject(), classpath, true);

  -        Schemata schemata;

  +        SQLSchema sqlSchema;

           try {

               InputStream in = ejbJarLocation.getInputStream(project);

               XmlObject xmlObject;

  @@ -176,11 +164,30 @@
                   in.close();

               }

               OpenejbOpenejbJarType openejbJarType = (OpenejbOpenejbJarType)

  -                SchemaConversionUtils.getNestedObjectAsType(xmlObject,

  -                    OpenejbOpenejbJarDocument.type.getDocumentElementName(),

  -                    OpenejbOpenejbJarType.type);

  -

  -            schemata = schemataBuilder.buildSchemata(SCHEMA_NAME, 
ejbJarType, openejbJarType, null, cl);

  +                    SchemaConversionUtils.getNestedObjectAsType(xmlObject,

  +                            
OpenejbOpenejbJarDocument.type.getDocumentElementName(),

  +                            OpenejbOpenejbJarType.type);

  +

  +            // fake j2ee context

  +            J2eeContext moduleJ2eeContext = new 
J2eeContextImpl("geronimo.server", "GeronimoServer", "null", 
NameFactory.EJB_MODULE, "Module", null, null);

  +

  +            // get the ModuleSchema

  +            CmpSchemaBuilder cmpSchemaBuilder = new TranqlCmpSchemaBuilder();

  +            ModuleSchema moduleSchema = 
cmpSchemaBuilder.buildModuleSchema(moduleJ2eeContext, "test", ejbJarType, 
openejbJarType, cl);

  +

  +            // build the tranql schema objects

  +            // use a subclass of the tranql builder that does not create pk 
generators or proxy factories

  +            TranqlSchemaBuilder tranqlSchemaBuilder = new 
TranqlSchemaBuilder(moduleSchema, null, null, null, cl) {

  +                protected PrimaryKeyGenerator 
configurePrimaryKeyGenerator(org.openejb.entity.cmp.PrimaryKeyGenerator 
primaryKeyGenerator, Class pkClass) {

  +                    return null;

  +                }

  +

  +                protected EJBProxyFactory buildEJBProxyFactory(String 
containerId, String remoteInterfaceName, String homeInterfaceName, String 
localInterfaceName, String localHomeInterfaceName, ClassLoader cl) {

  +                    return null;

  +                }

  +            };

  +            tranqlSchemaBuilder.buildSchema();

  +            sqlSchema = tranqlSchemaBuilder.getSqlSchema();

           } catch (Exception e) {

               throw new BuildException("Cannot read DD", e);

           }

  @@ -188,13 +195,13 @@
           DDLCommandBuilder builder;

           try {

               Class clazz = cl.loadClass(ddlCommandBuilder);

  -            Constructor ctr = clazz.getConstructor(new Class[] 
{DataSource.class});

  -            builder = (DDLCommandBuilder) ctr.newInstance(new Object[] 
{null});

  +            Constructor ctr = clazz.getConstructor(new 
Class[]{DataSource.class});

  +            builder = (DDLCommandBuilder) ctr.newInstance(new 
Object[]{null});

           } catch (Exception e) {

               throw new BuildException("Cannot create ddlCommandBuilder", e);

           }

   

  -        DDLGenerator generator = new DDLGenerator(schemata.getSqlSchema(), 
builder);

  +        DDLGenerator generator = new DDLGenerator(sqlSchema, builder);

           OutputStream out = null;

           try {

               out = new BufferedOutputStream(new FileOutputStream(output));

  @@ -205,9 +212,9 @@
               } else if (type.equals("create") || 
type.equals("create-constraint")) {

                   gen = new DDLGenerator.CreateStrategy(exec);

               } else if (type.equals("drop-create") || 
type.equals("drop-create-constraint")) {

  -                GenerationStrategy strategies[] = new GenerationStrategy[] {

  -                        new DDLGenerator.DropStrategy(exec),

  -                        new DDLGenerator.CreateStrategy(exec)

  +                GenerationStrategy strategies[] = new GenerationStrategy[]{

  +                    new DDLGenerator.DropStrategy(exec),

  +                    new DDLGenerator.CreateStrategy(exec)

                   };

                   gen = new DDLGenerator.SequenceStrategy(strategies, exec);

               } else {

  
  
  

Reply via email to