djencks     2005/09/28 18:14:25

  Modified:    modules/openejb-builder/src/java/org/openejb/deployment
                        OpenEJBModuleBuilder.java OpenEJBSchemaUtils.java
  Log:

  GERONIMO-1027, GERONIMO-957.  Version our schemas, and provide specific jetty 
and tomcat schemas.  Schema processing cleanup.  A couple other minor fixes
  
  Revision  Changes    Path
  1.57      +18 -17    
openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java
  
  Index: OpenEJBModuleBuilder.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- OpenEJBModuleBuilder.java 13 Sep 2005 13:04:59 -0000      1.56
  +++ OpenEJBModuleBuilder.java 28 Sep 2005 22:14:25 -0000      1.57
  @@ -68,10 +68,12 @@
   
   import javax.management.MalformedObjectNameException;
   import javax.management.ObjectName;
  +import javax.xml.namespace.QName;
   
   import org.apache.geronimo.common.DeploymentException;
   import org.apache.geronimo.deployment.service.ServiceConfigBuilder;
   import org.apache.geronimo.deployment.util.DeploymentUtil;
  +import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
   import org.apache.geronimo.deployment.xbeans.DependencyType;
   import org.apache.geronimo.deployment.xbeans.GbeanType;
   import org.apache.geronimo.deployment.DeploymentContext;
  @@ -117,6 +119,7 @@
   import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarDocument;
   import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarType;
   import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
  +import org.openejb.xbeans.pkgen.EjbKeyGeneratorDocument;
   import org.tranql.cache.GlobalSchema;
   import org.tranql.ejb.EJBSchema;
   import org.tranql.ejb.TransactionManagerDelegate;
  @@ -144,6 +147,13 @@
       private final Kernel kernel;
       private static final String OPENEJBJAR_NAMESPACE = 
OpenejbOpenejbJarDocument.type.getDocumentElementName().getNamespaceURI();
   
  +    static {
  +        Map conversions = new HashMap();
  +        QName name = EjbKeyGeneratorDocument.type.getDocumentElementName();
  +        conversions.put(name.getLocalPart(), name.getNamespaceURI());
  +        SchemaConversionUtils.registerNamespaceConversions(conversions);
  +    }
  +
       public OpenEJBModuleBuilder(URI[] defaultParentId, ObjectName listener, 
Object webServiceLinkTemplate, WebServiceBuilder webServiceBuilder, Repository 
repository, Kernel kernel) throws GBeanNotFoundException {
           this(defaultParentId, listener, getLinkData(kernel, 
webServiceLinkTemplate), webServiceBuilder, repository, kernel);
       }
  @@ -200,7 +210,7 @@
           //there is a file named ejb-jar.xml in META-INF.  If we can't 
process it, it is an error.
           try {
               // parse it
  -            EjbJarDocument ejbJarDoc = 
SchemaConversionUtils.convertToEJBSchema(SchemaConversionUtils.parse(specDD));
  +            EjbJarDocument ejbJarDoc = 
SchemaConversionUtils.convertToEJBSchema(XmlBeansUtil.parse(specDD));
               ejbJar = ejbJarDoc.getEjbJar();
           } catch (XmlException e) {
               throw new DeploymentException("Error parsing ejb-jar.xml", e);
  @@ -226,35 +236,26 @@
   
       OpenejbOpenejbJarType getOpenejbJar(Object plan, JarFile moduleFile, 
boolean standAlone, String targetPath, EjbJarType ejbJar) throws 
DeploymentException {
           OpenejbOpenejbJarType openejbJar = null;
  +        XmlObject rawPlan = null;
           try {
               // load the openejb-jar.xml from either the supplied plan or 
from the earFile
               try {
                   if (plan instanceof XmlObject) {
  -                    openejbJar = (OpenejbOpenejbJarType) 
SchemaConversionUtils.getNestedObjectAsType((XmlObject) plan,
  -                            "openejb-jar",
  -                            OpenejbOpenejbJarType.type);
  +                    rawPlan = (XmlObject) plan;
                   } else {
  -                    OpenejbOpenejbJarDocument openejbJarDoc = null;
                       if (plan != null) {
  -                        openejbJarDoc = 
OpenejbOpenejbJarDocument.Factory.parse((File) plan);
  +                        rawPlan = XmlBeansUtil.parse(((File) plan).toURL());
                       } else {
                           URL path = DeploymentUtil.createJarURL(moduleFile, 
"META-INF/openejb-jar.xml");
  -                        openejbJarDoc = 
OpenejbOpenejbJarDocument.Factory.parse(path);
  -                    }
  -                    if (openejbJarDoc != null) {
  -                        openejbJar = openejbJarDoc.getOpenejbJar();
  +                        rawPlan = XmlBeansUtil.parse(path);
                       }
                   }
               } catch (IOException e) {
               }
   
               // if we got one extract, adjust, and validate it otherwise 
create a default one
  -            if (openejbJar != null) {
  -                openejbJar = (OpenejbOpenejbJarType) 
SchemaConversionUtils.convertToGeronimoNamingSchema(openejbJar);
  -                openejbJar = (OpenejbOpenejbJarType) 
SchemaConversionUtils.convertToGeronimoSecuritySchema(openejbJar);
  -                openejbJar = (OpenejbOpenejbJarType) 
SchemaConversionUtils.convertToGeronimoServiceSchema(openejbJar);
  -                openejbJar = (OpenejbOpenejbJarType) 
OpenEJBSchemaUtils.convertToPKGenSchema(openejbJar);
  -                SchemaConversionUtils.validateDD(openejbJar);
  +            if (rawPlan != null) {
  +                openejbJar = (OpenejbOpenejbJarType) 
SchemaConversionUtils.fixGeronimoSchema(rawPlan, "openejb-jar", 
OpenejbOpenejbJarType.type);
               } else {
                   String path;
                   if (standAlone) {
  
  
  
  1.2       +3 -3      
openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBSchemaUtils.java
  
  Index: OpenEJBSchemaUtils.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBSchemaUtils.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- OpenEJBSchemaUtils.java   9 Jul 2005 18:46:36 -0000       1.1
  +++ OpenEJBSchemaUtils.java   28 Sep 2005 22:14:25 -0000      1.2
  @@ -58,7 +58,7 @@
    * @version $Revision$ $Date$
    */
   public class OpenEJBSchemaUtils {
  -    private static final String OPENEJB_PKGEN_NAMESPACE = 
"http://www.openejb.org/xml/ns/pkgen";;
  +    private static final String OPENEJB_PKGEN_NAMESPACE = 
"http://www.openejb.org/xml/ns/pkgen-2.0";;
   
       /**
        * Finds any key-generator elements in the openejb-jar.xml file and
  @@ -66,7 +66,7 @@
        *
        * @param xmlObject The root of the openejb-jar.xml document
        * @return The adjusted openejb-jar.xml document
  -     */ 
  +     */
       public static XmlObject convertToPKGenSchema(XmlObject xmlObject) {
           XmlCursor cursor = xmlObject.newCursor();
           XmlCursor end = xmlObject.newCursor();
  
  
  

Reply via email to