Package org.jboss.ejb.deployers

Source Code of org.jboss.ejb.deployers.EjbDeployer

/*     */ package org.jboss.ejb.deployers;
/*     */
/*     */ import java.util.ArrayList;
/*     */ import java.util.HashSet;
/*     */ import java.util.Iterator;
/*     */ import java.util.List;
/*     */ import java.util.Set;
/*     */ import javax.management.MalformedObjectNameException;
/*     */ import javax.management.ObjectName;
/*     */ import org.jboss.aop.microcontainer.aspects.jmx.JMX;
/*     */ import org.jboss.deployers.spi.DeploymentException;
/*     */ import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
/*     */ import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
/*     */ import org.jboss.ejb.EjbModule;
/*     */ import org.jboss.metadata.ApplicationMetaData;
/*     */ import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
/*     */ import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
/*     */ import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
/*     */ import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
/*     */ import org.jboss.metadata.ejb.jboss.JBossMetaData;
/*     */ import org.jboss.security.ISecurityManagement;
/*     */ import org.jboss.system.metadata.ServiceAttributeMetaData;
/*     */ import org.jboss.system.metadata.ServiceConstructorMetaData;
/*     */ import org.jboss.system.metadata.ServiceDependencyMetaData;
/*     */ import org.jboss.system.metadata.ServiceDependencyValueMetaData;
/*     */ import org.jboss.system.metadata.ServiceMetaData;
/*     */
/*     */ @JMX(name="jboss.ejb:service=EJBDeployer", exposedInterface=EjbDeployerMBean.class)
/*     */ public class EjbDeployer extends AbstractSimpleVFSRealDeployer<JBossMetaData>
/*     */   implements EjbDeployerMBean
/*     */ {
/*     */   private String transactionManagerServiceName;
/*     */   private String webServiceName;
/*     */   private String ccmServiceName;
/*     */   private String timerServiceName;
/*     */   private boolean callByValue;
/*  73 */   private String unauthenticatedIdentity = null;
/*     */   private ISecurityManagement securityManagement;
/*     */   private String securityContextClassName;
/*     */   private String defaultSecurityDomain;
/*     */
/*     */   public EjbDeployer()
/*     */   {
/*  83 */     super(JBossMetaData.class);
/*  84 */     setOutput(ServiceMetaData.class);
/*     */   }
/*     */
/*     */   public String getTransactionManagerServiceName()
/*     */   {
/*  89 */     return this.transactionManagerServiceName;
/*     */   }
/*     */
/*     */   public void setTransactionManagerServiceName(String transactionManagerServiceName)
/*     */   {
/*  95 */     this.transactionManagerServiceName = transactionManagerServiceName;
/*     */   }
/*     */
/*     */   public String getWebServiceName()
/*     */   {
/* 100 */     return this.webServiceName;
/*     */   }
/*     */
/*     */   public void setWebServiceName(String webServiceName)
/*     */   {
/* 105 */     this.webServiceName = webServiceName;
/*     */   }
/*     */
/*     */   public String getCachedConnectionManagerName()
/*     */   {
/* 110 */     return this.ccmServiceName;
/*     */   }
/*     */
/*     */   public void setCachedConnectionManagerName(String ccmServiceName)
/*     */   {
/* 115 */     this.ccmServiceName = ccmServiceName;
/*     */   }
/*     */
/*     */   public String getTimerService()
/*     */   {
/* 120 */     return this.timerServiceName;
/*     */   }
/*     */
/*     */   public void setTimerServiceName(String timerServiceName)
/*     */   {
/* 125 */     this.timerServiceName = timerServiceName;
/*     */   }
/*     */
/*     */   public boolean isCallByValue()
/*     */   {
/* 131 */     return this.callByValue;
/*     */   }
/*     */
/*     */   public void setCallByValue(boolean callByValue)
/*     */   {
/* 136 */     this.callByValue = callByValue;
/*     */   }
/*     */
/*     */   public String getUnauthenticatedIdentity()
/*     */   {
/* 146 */     return this.unauthenticatedIdentity;
/*     */   }
/*     */
/*     */   public void setUnauthenticatedIdentity(String unauthenticatedIdentity)
/*     */   {
/* 155 */     this.unauthenticatedIdentity = unauthenticatedIdentity;
/*     */   }
/*     */
/*     */   public void setDefaultSecurityDomain(String defaultSecurityDomain)
/*     */   {
/* 160 */     this.defaultSecurityDomain = defaultSecurityDomain;
/*     */   }
/*     */
/*     */   public void setSecurityManagement(ISecurityManagement sm)
/*     */   {
/* 165 */     this.securityManagement = sm;
/*     */   }
/*     */
/*     */   public void setSecurityContextClassName(String securityContextClassName)
/*     */   {
/* 170 */     this.securityContextClassName = securityContextClassName;
/*     */   }
/*     */
/*     */   public void deploy(VFSDeploymentUnit unit, JBossMetaData deployment)
/*     */     throws DeploymentException
/*     */   {
/* 180 */     if ((!deployment.isEJB2x()) && (!deployment.isEJB1x())) {
/* 181 */       return;
/*     */     }
/* 183 */     ServiceMetaData ejbModule = new ServiceMetaData();
/* 184 */     ejbModule.setCode(EjbModule.class.getName());
/*     */
/* 188 */     ObjectName moduleObjectName = null;
/*     */     try
/*     */     {
/* 191 */       moduleObjectName = getObjectName(unit, deployment);
/*     */     }
/*     */     catch (MalformedObjectNameException e)
/*     */     {
/* 195 */       throw new DeploymentException("Failed to create EJB module " + unit.getName() + ": malformed EjbModule name", e);
/*     */     }
/*     */
/* 199 */     ejbModule.setObjectName(moduleObjectName);
/*     */
/* 201 */     ServiceConstructorMetaData ctor = new ServiceConstructorMetaData();
/* 202 */     ctor.setSignature(new String[] { VFSDeploymentUnit.class.getName(), ApplicationMetaData.class.getName() });
/*     */
/* 205 */     ApplicationMetaData legacyMD = new ApplicationMetaData(deployment);
/* 206 */     ctor.setParameters(new Object[] { unit, legacyMD });
/* 207 */     ejbModule.setConstructor(ctor);
/*     */
/* 210 */     List attrs = new ArrayList();
/* 211 */     ServiceAttributeMetaData attr = new ServiceAttributeMetaData();
/* 212 */     attr.setName("TransactionManagerFactory");
/* 213 */     ServiceDependencyValueMetaData dependencyValue = new ServiceDependencyValueMetaData();
/* 214 */     dependencyValue.setDependency(getTransactionManagerServiceName());
/* 215 */     dependencyValue.setProxyType("attribute");
/* 216 */     attr.setValue(dependencyValue);
/* 217 */     attrs.add(attr);
/*     */
/* 219 */     String wsName = getWebServiceName();
/* 220 */     if (wsName != null)
/*     */     {
/* 222 */       ServiceAttributeMetaData ws = new ServiceAttributeMetaData();
/* 223 */       ws.setName("WebServiceName");
/* 224 */       ServiceDependencyValueMetaData wsDepends = new ServiceDependencyValueMetaData();
/* 225 */       wsDepends.setDependency(wsName);
/* 226 */       ws.setValue(wsDepends);
/* 227 */       attrs.add(ws);
/*     */     }
/*     */
/* 230 */     ServiceAttributeMetaData tms = new ServiceAttributeMetaData();
/* 231 */     ServiceDependencyValueMetaData tmsDepends = new ServiceDependencyValueMetaData();
/* 232 */     tms.setName("TimerService");
/* 233 */     tmsDepends.setDependency(this.timerServiceName);
/* 234 */     tmsDepends.setProxyType("attribute");
/* 235 */     tms.setValue(tmsDepends);
/* 236 */     attrs.add(tms);
/*     */
/* 238 */     ejbModule.setAttributes(attrs);
/*     */
/* 240 */     List dependencies = new ArrayList();
/*     */
/* 243 */     if ((this.ccmServiceName != null) && (this.ccmServiceName.length() > 0))
/*     */     {
/* 245 */       ServiceDependencyMetaData ccm = new ServiceDependencyMetaData();
/* 246 */       ccm.setIDependOn(this.ccmServiceName);
/* 247 */       dependencies.add(ccm);
/*     */     }
/*     */
/* 250 */     JBossEnterpriseBeansMetaData beans = deployment.getEnterpriseBeans();
/* 251 */     Iterator beansIter = beans.iterator();
/* 252 */     HashSet invokerNames = new HashSet();
/* 253 */     HashSet beanDepends = new HashSet();
/* 254 */     while (beansIter.hasNext())
/*     */     {
/* 256 */       JBossEnterpriseBeanMetaData bmd = (JBossEnterpriseBeanMetaData)beansIter.next();
/* 257 */       Set depends = bmd.getDepends();
/* 258 */       if (depends != null)
/* 259 */         beanDepends.addAll(depends);
/* 260 */       String configName = bmd.getConfigurationName();
/* 261 */       ContainerConfigurationMetaData cmd = bmd.determineContainerConfiguration();
/* 262 */       Set invokers = cmd.getInvokerProxyBindingNames();
/* 263 */       if (invokers != null) {
/* 264 */         for (String iname : invokers)
/*     */         {
/* 266 */           InvokerProxyBindingMetaData imd = deployment.getInvokerProxyBinding(iname);
/* 267 */           if (imd == null)
/* 268 */             throw new DeploymentException("Failed to locate invoker: " + iname);
/* 269 */           String invokerName = imd.getInvokerMBean();
/* 270 */           if (invokerName.equalsIgnoreCase("default"))
/*     */           {
/*     */             continue;
/*     */           }
/*     */
/* 275 */           if (!invokerNames.contains(invokerName))
/*     */           {
/* 277 */             invokerNames.add(invokerName);
/* 278 */             ServiceDependencyMetaData invoker = new ServiceDependencyMetaData();
/* 279 */             invoker.setIDependOn(invokerName);
/* 280 */             dependencies.add(invoker);
/*     */           }
/*     */
/*     */         }
/*     */
/*     */       }
/*     */
/*     */     }
/*     */
/*     */     try
/*     */     {
/* 292 */       for (String depend : beanDepends)
/*     */       {
/* 294 */         ObjectName n = new ObjectName(depend);
/* 295 */         ServiceDependencyMetaData sdmd = new ServiceDependencyMetaData();
/* 296 */         sdmd.setIDependOn(n.toString());
/* 297 */         dependencies.add(sdmd);
/*     */       }
/*     */     }
/*     */     catch (MalformedObjectNameException e)
/*     */     {
/* 302 */       throw new DeploymentException(e);
/*     */     }
/* 304 */     ejbModule.setDependencies(dependencies);
/*     */
/* 306 */     unit.addAttachment(ServiceMetaData.class, ejbModule);
/*     */
/* 308 */     if (this.callByValue) {
/* 309 */       unit.addAttachment("EJB.callByValue", Boolean.TRUE, Boolean.class);
/*     */     }
/* 311 */     if (this.unauthenticatedIdentity != null) {
/* 312 */       unit.addAttachment("EJB.unauthenticatedIdentity", this.unauthenticatedIdentity, String.class);
/*     */     }
/* 314 */     if (this.securityManagement != null) {
/* 315 */       unit.addAttachment("EJB.securityManagement", this.securityManagement, ISecurityManagement.class);
/*     */     }
/* 317 */     if (this.securityContextClassName != null) {
/* 318 */       unit.addAttachment("EJB.securityContextClassName", this.securityContextClassName, String.class);
/*     */     }
/* 320 */     if (this.defaultSecurityDomain != null)
/* 321 */       unit.addAttachment("EJB.defaultSecurityDomain", this.defaultSecurityDomain, String.class);
/*     */   }
/*     */
/*     */   public void undeploy(VFSDeploymentUnit unit, JBossMetaData deployment)
/*     */   {
/*     */   }
/*     */
/*     */   protected ObjectName getObjectName(VFSDeploymentUnit unit, JBossMetaData metaData)
/*     */     throws MalformedObjectNameException
/*     */   {
/* 342 */     String name = metaData.getJmxName();
/* 343 */     if (name == null)
/*     */     {
/* 345 */       String unitShortName = unit.getName();
/* 346 */       if (unitShortName.endsWith("/"))
/*     */       {
/* 348 */         unitShortName = unitShortName.substring(0, unitShortName.length() - 1);
/*     */       }
/*     */
/* 351 */       if (unitShortName.endsWith("!"))
/*     */       {
/* 353 */         unitShortName = unitShortName.substring(0, unitShortName.length() - 1);
/*     */       }
/*     */
/* 356 */       unitShortName = unitShortName.substring(unitShortName.lastIndexOf("/") + 1);
/*     */
/* 358 */       unitShortName = ObjectName.quote(unitShortName);
/* 359 */       name = "jboss.j2ee:service=EjbModule,module=" + unitShortName;
/*     */     }
/*     */
/* 362 */     return new ObjectName(name);
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.ejb.deployers.EjbDeployer
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.ejb.deployers.EjbDeployer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.