djencks     2005/09/06 04:29:36

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

  GERONIMO-966 GERONIMO-947 Split configurations up into smaller bits, merge 
default parentId from builders into built configurations
  
  Revision  Changes    Path
  1.54      +29 -31    
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.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- OpenEJBModuleBuilder.java 31 Aug 2005 01:40:31 -0000      1.53
  +++ OpenEJBModuleBuilder.java 6 Sep 2005 08:29:32 -0000       1.54
  @@ -51,76 +51,66 @@
   import java.io.File;
   import java.io.IOException;
   import java.lang.reflect.Constructor;
  +import java.net.MalformedURLException;
   import java.net.URI;
   import java.net.URISyntaxException;
   import java.net.URL;
  -import java.net.MalformedURLException;
   import java.security.Permissions;
  +import java.util.ArrayList;
  +import java.util.Collections;
   import java.util.HashMap;
   import java.util.HashSet;
  +import java.util.List;
   import java.util.Map;
   import java.util.Set;
  -import java.util.List;
  -import java.util.ArrayList;
  -import java.util.Collections;
  -import java.util.Collection;
  -import java.util.Iterator;
  +import java.util.Arrays;
   import java.util.jar.JarFile;
   import javax.management.MalformedObjectNameException;
   import javax.management.ObjectName;
  -import javax.naming.Reference;
   
   import org.apache.geronimo.common.DeploymentException;
  -import org.apache.geronimo.common.UnresolvedEJBRefException;
   import org.apache.geronimo.deployment.service.ServiceConfigBuilder;
   import org.apache.geronimo.deployment.util.DeploymentUtil;
   import org.apache.geronimo.deployment.xbeans.DependencyType;
   import org.apache.geronimo.deployment.xbeans.GbeanType;
  +import org.apache.geronimo.deployment.DeploymentContext;
   import org.apache.geronimo.gbean.GBeanData;
   import org.apache.geronimo.gbean.GBeanInfo;
   import org.apache.geronimo.gbean.GBeanInfoBuilder;
   import org.apache.geronimo.j2ee.deployment.EARContext;
   import org.apache.geronimo.j2ee.deployment.EJBModule;
  -import org.apache.geronimo.j2ee.deployment.EJBReferenceBuilder;
   import org.apache.geronimo.j2ee.deployment.Module;
   import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
   import org.apache.geronimo.j2ee.deployment.RefContext;
   import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
  -import org.apache.geronimo.j2ee.deployment.NamingContext;
   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.kernel.repository.Repository;
  -import org.apache.geronimo.kernel.Kernel;
   import org.apache.geronimo.kernel.GBeanNotFoundException;
  -import org.apache.geronimo.kernel.jmx.JMXUtil;
  +import org.apache.geronimo.kernel.Kernel;
  +import org.apache.geronimo.kernel.repository.Repository;
  +import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
   import org.apache.geronimo.schema.SchemaConversionUtils;
   import org.apache.geronimo.security.deployment.SecurityBuilder;
   import org.apache.geronimo.security.deployment.SecurityConfiguration;
   import org.apache.geronimo.security.jacc.ComponentPermissions;
  -import org.apache.geronimo.xbeans.geronimo.naming.GerResourceLocatorType;
   import org.apache.geronimo.xbeans.geronimo.naming.GerMessageDestinationType;
  +import org.apache.geronimo.xbeans.geronimo.naming.GerResourceLocatorType;
  +import org.apache.geronimo.xbeans.j2ee.AssemblyDescriptorType;
   import org.apache.geronimo.xbeans.j2ee.EjbJarDocument;
   import org.apache.geronimo.xbeans.j2ee.EjbJarType;
   import org.apache.geronimo.xbeans.j2ee.EnterpriseBeansType;
   import org.apache.geronimo.xbeans.j2ee.EntityBeanType;
  -import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
  -import org.apache.geronimo.xbeans.j2ee.MessageDrivenBeanType;
  -import org.apache.geronimo.xbeans.j2ee.WebAppType;
   import org.apache.geronimo.xbeans.j2ee.MessageDestinationType;
  -import org.apache.geronimo.xbeans.j2ee.AssemblyDescriptorType;
  -import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
  +import org.apache.geronimo.xbeans.j2ee.MessageDrivenBeanType;
  +import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
   import org.apache.xmlbeans.XmlException;
   import org.apache.xmlbeans.XmlObject;
   import org.openejb.EJBModuleImpl;
  -import org.openejb.corba.CORBAHandleDelegate;
  -import org.openejb.corba.proxy.CORBAProxyReference;
   import 
org.openejb.deployment.corba.NoDistributedTxTransactionImportPolicyBuilder;
   import org.openejb.deployment.corba.TransactionImportPolicyBuilder;
   import org.openejb.deployment.pkgen.TranQLPKGenBuilder;
   import org.openejb.proxy.EJBProxyFactory;
  -import org.openejb.proxy.EJBProxyReference;
  -import org.openejb.proxy.ProxyInfo;
   import org.openejb.xbeans.ejbjar.OpenejbEntityBeanType;
   import org.openejb.xbeans.ejbjar.OpenejbMessageDrivenBeanType;
   import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarDocument;
  @@ -149,7 +139,7 @@
    */
   public class OpenEJBModuleBuilder implements ModuleBuilder {
   
  -    private final URI[] defaultParentId;
  +    private final List defaultParentId;
       private final ObjectName listener;
       private final CMPEntityBuilder cmpEntityBuilder;
       private final SessionBuilder sessionBuilder;
  @@ -158,13 +148,15 @@
       private final WebServiceBuilder webServiceBuilder;
       private final TransactionImportPolicyBuilder 
transactionImportPolicyBuilder;
       private final Repository repository;
  +    private final Kernel kernel;
  +    private static final String OPENEJBJAR_NAMESPACE = 
OpenejbOpenejbJarDocument.type.getDocumentElementName().getNamespaceURI();
   
       public OpenEJBModuleBuilder(URI[] defaultParentId, ObjectName listener, 
Object webServiceLinkTemplate, WebServiceBuilder webServiceBuilder, Repository 
repository, Kernel kernel) throws GBeanNotFoundException {
  -        this(defaultParentId, listener, getLinkData(kernel, 
webServiceLinkTemplate), webServiceBuilder, repository);
  +        this(defaultParentId, listener, getLinkData(kernel, 
webServiceLinkTemplate), webServiceBuilder, repository, kernel);
       }
   
  -    public OpenEJBModuleBuilder(URI[] defaultParentId, ObjectName listener, 
GBeanData linkTemplate, WebServiceBuilder webServiceBuilder, Repository 
repository) {
  -        this.defaultParentId = defaultParentId;
  +    public OpenEJBModuleBuilder(URI[] defaultParentId, ObjectName listener, 
GBeanData linkTemplate, WebServiceBuilder webServiceBuilder, Repository 
repository, Kernel kernel) {
  +        this.defaultParentId = defaultParentId == null? 
Collections.EMPTY_LIST: Arrays.asList(defaultParentId);
           this.listener = listener;
           this.transactionImportPolicyBuilder = new 
NoDistributedTxTransactionImportPolicyBuilder();
           this.cmpEntityBuilder = new CMPEntityBuilder(this);
  @@ -173,6 +165,7 @@
           this.mdbBuilder = new MdbBuilder(this);
           this.webServiceBuilder = webServiceBuilder;
           this.repository = repository;
  +        this.kernel = kernel;
       }
   
       private static GBeanData getLinkData(Kernel kernel, Object 
webServiceLinkTemplate) throws GBeanNotFoundException {
  @@ -230,9 +223,9 @@
               throw new DeploymentException("Invalid configId " + 
openejbJar.getConfigId(), e);
           }
   
  -        URI[] parentId = 
ServiceConfigBuilder.getParentID(openejbJar.getParentId(), 
openejbJar.getImportArray());
  -        if (parentId == null) {
  -            parentId = defaultParentId;
  +        List parentId = 
ServiceConfigBuilder.getParentID(openejbJar.getParentId(), 
openejbJar.getImportArray());
  +        if (parentId.isEmpty()) {
  +            parentId = new ArrayList(defaultParentId);
           }
   
           return new EJBModule(standAlone, configId, parentId, moduleFile, 
targetPath, ejbJar, openejbJar, specDD);
  @@ -309,6 +302,7 @@
       }
   
       public void installModule(JarFile earFile, EARContext earContext, Module 
module) throws DeploymentException {
  +        earContext.addParentId(defaultParentId);
           JarFile moduleFile = module.getModuleFile();
           try {
               // extract the ejbJar file into a standalone packed jar file and 
add the contents to the output
  @@ -575,6 +569,10 @@
           mdbBuilder.buildBeans(earContext, moduleJ2eeContext, cl, ejbModule, 
openejbBeans, transactionPolicyHelper, enterpriseBeans, componentPermissions, 
policyContextID);
   
           earContext.addSecurityContext(policyContextID, componentPermissions);
  +    }
  +
  +    public String getSchemaNamespace() {
  +        return OPENEJBJAR_NAMESPACE;
       }
   
       private static ObjectName getResourceContainerId(URI uri, 
GerResourceLocatorType resourceLocator, EARContext earContext) throws 
DeploymentException {
  
  
  

Reply via email to