djencks     2005/07/21 18:56:00

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

  GERONIMO-782 step 3. Use a template gbean for the ws link
  
  Revision  Changes    Path
  1.48      +17 -3     
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.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- OpenEJBModuleBuilder.java 21 Jul 2005 04:32:11 -0000      1.47
  +++ OpenEJBModuleBuilder.java 21 Jul 2005 22:56:00 -0000      1.48
  @@ -85,6 +85,8 @@
   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.schema.SchemaConversionUtils;
   import org.apache.geronimo.security.deployment.SecurityBuilder;
   import org.apache.geronimo.security.deployment.SecurityConfiguration;
  @@ -143,17 +145,27 @@
       private final TransactionImportPolicyBuilder 
transactionImportPolicyBuilder;
       private final Repository repository;
   
  -    public OpenEJBModuleBuilder(URI defaultParentId, ObjectName listener, 
WebServiceBuilder webServiceBuilder, Repository repository) {
  +    public OpenEJBModuleBuilder(URI defaultParentId, ObjectName listener, 
Object webServiceLinkTemplate, WebServiceBuilder webServiceBuilder, Repository 
repository, Kernel kernel) throws GBeanNotFoundException {
  +        this(defaultParentId, listener, getLinkData(kernel, 
webServiceLinkTemplate), webServiceBuilder, repository);
  +    }
  +
  +    public OpenEJBModuleBuilder(URI defaultParentId, ObjectName listener, 
GBeanData linkTemplate, WebServiceBuilder webServiceBuilder, Repository 
repository) {
           this.defaultParentId = defaultParentId;
           this.listener = listener;
           this.transactionImportPolicyBuilder = new 
NoDistributedTxTransactionImportPolicyBuilder();
           this.cmpEntityBuilder = new CMPEntityBuilder(this);
  -        this.sessionBuilder = new SessionBuilder(this, webServiceBuilder);
  +        this.sessionBuilder = new SessionBuilder(this, linkTemplate, 
webServiceBuilder);
           this.entityBuilder = new EntityBuilder(this);
           this.mdbBuilder = new MdbBuilder(this);
           this.repository = repository;
       }
   
  +    private static GBeanData getLinkData(Kernel kernel, Object 
webServiceLinkTemplate) throws GBeanNotFoundException {
  +        ObjectName webServiceLinkTemplateName = 
kernel.getProxyManager().getProxyTarget(webServiceLinkTemplate);
  +        GBeanData linkTemplate = 
kernel.getGBeanData(webServiceLinkTemplateName);
  +        return linkTemplate;
  +    }
  +
       public TransactionImportPolicyBuilder 
getTransactionImportPolicyBuilder() {
           return transactionImportPolicyBuilder;
       }
  @@ -613,12 +625,14 @@
           GBeanInfoBuilder infoBuilder = new 
GBeanInfoBuilder(OpenEJBModuleBuilder.class, NameFactory.MODULE_BUILDER);
           infoBuilder.addAttribute("defaultParentId", URI.class, true);
           infoBuilder.addAttribute("listener", ObjectName.class, true);
  +        infoBuilder.addReference("WebServiceLinkTemplate", Object.class, 
NameFactory.WEB_SERVICE_LINK);
           infoBuilder.addReference("WebServiceBuilder", 
WebServiceBuilder.class, NameFactory.MODULE_BUILDER);
           infoBuilder.addReference("Repository", Repository.class, 
NameFactory.GERONIMO_SERVICE);
           infoBuilder.addInterface(ModuleBuilder.class);
           infoBuilder.addInterface(EJBReferenceBuilder.class);
  +        infoBuilder.addAttribute("kernel", Kernel.class, false);
   
  -        infoBuilder.setConstructor(new String[]{"defaultParentId", 
"listener", "WebServiceBuilder", "Repository"});
  +        infoBuilder.setConstructor(new String[]{"defaultParentId", 
"listener", "WebServiceLinkTemplate", "WebServiceBuilder", "Repository", 
"kernel"});
           GBEAN_INFO = infoBuilder.getBeanInfo();
       }
   
  
  
  
  1.29      +9 -7      
openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java
  
  Index: SessionBuilder.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- SessionBuilder.java       21 Jul 2005 04:32:11 -0000      1.28
  +++ SessionBuilder.java       21 Jul 2005 22:56:00 -0000      1.29
  @@ -47,14 +47,14 @@
    */
   package org.openejb.deployment;
   
  +import java.net.MalformedURLException;
   import java.net.URI;
   import java.net.URL;
  -import java.net.MalformedURLException;
   import java.security.Permissions;
  +import java.util.HashMap;
   import java.util.List;
   import java.util.Map;
   import java.util.Set;
  -import java.util.HashMap;
   import java.util.jar.JarFile;
   import javax.management.MalformedObjectNameException;
   import javax.management.ObjectName;
  @@ -102,15 +102,16 @@
   import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
   import org.openejb.xbeans.ejbjar.OpenejbTssType;
   import org.openejb.xbeans.ejbjar.OpenejbWebServiceSecurityType;
  -import org.openejb.server.axis.WSContainerGBean;
   
   
   class SessionBuilder extends BeanBuilder {
   
       private final WebServiceBuilder webServiceBuilder;
  +    private final GBeanData linkDataTemplate;
   
  -    public SessionBuilder(OpenEJBModuleBuilder builder, WebServiceBuilder 
webServiceBuilder) {
  +    public SessionBuilder(OpenEJBModuleBuilder builder, GBeanData 
linkDataTemplate, WebServiceBuilder webServiceBuilder) {
           super(builder);
  +        this.linkDataTemplate = linkDataTemplate;
           this.webServiceBuilder = webServiceBuilder;
       }
   
  @@ -222,12 +223,13 @@
           } catch (MalformedObjectNameException e) {
               throw new DeploymentException("Could not construct web service 
link name", e);
           }
  -        //TODO get this from configuration object name
  -        GBeanData linkData = new GBeanData(linkName, 
WSContainerGBean.GBEAN_INFO);
   
  +        GBeanData linkData = new GBeanData(linkDataTemplate);
  +        linkData.setName(linkName);
           Object portInfo = portInfoMap.get(ejbName);
  +        //let the webServiceBuilder configure its part
           webServiceBuilder.configureEJB(linkData, jarFile, portInfo, cl);
  -
  +        //configure the security part and references
           if (webServiceSecurity != null) {
               linkData.setAttribute("securityRealmName", 
webServiceSecurity.getSecurityRealmName().trim());
               linkData.setAttribute("realmName", 
webServiceSecurity.getRealmName().trim());
  
  
  

Reply via email to