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