[jboss-cvs] JBossAS SVN: r76652 - trunk/webservices/src/main/org/jboss/wsf/container/jboss50/deployer.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 5 06:41:50 EDT 2008
Author: alessio.soldano at jboss.com
Date: 2008-08-05 06:41:48 -0400 (Tue, 05 Aug 2008)
New Revision: 76652
Modified:
trunk/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
Log:
[JBWS-2194] Using EJB container to get annotations
Modified: trunk/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
===================================================================
--- trunk/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java 2008-08-05 10:16:09 UTC (rev 76651)
+++ trunk/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java 2008-08-05 10:41:48 UTC (rev 76652)
@@ -25,6 +25,9 @@
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.ejb.deployers.EjbDeployment;
import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.ejb3.annotation.SecurityDomain;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -41,6 +44,8 @@
import java.util.Iterator;
import java.util.List;
+import javax.management.ObjectName;
+
/**
* This web service deployer for EJB. Adopts EJB deployments to
* {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration} an passes it to a chain of
@@ -60,6 +65,8 @@
addInput(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
addInput(EjbDeployment.class);
+
+ addInput(Ejb3Deployment.class);
// Input for the TomcatDeployer
addOutput(JBossWebMetaData.class);
@@ -74,16 +81,29 @@
JBossMetaData beans = (JBossMetaData)unit.getAttachment(
MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME
);
-
+ Ejb3Deployment ejb3Deployment = unit.getAttachment(Ejb3Deployment.class);
+
if(beans!=null)
{
- WebServiceDeploymentAdapter wsDeployment = new WebServiceDeploymentAdapter();
+ WebServiceDeploymentAdapter wsDeployment = new WebServiceDeploymentAdapter();
+
Iterator<JBossEnterpriseBeanMetaData> iterator = beans.getEnterpriseBeans().iterator();
while(iterator.hasNext())
{
JBossEnterpriseBeanMetaData ejb = iterator.next();
+ ObjectName objName = null;
+ try
+ {
+ objName = new ObjectName(ejb.determineContainerName());
+ }
+ catch (Exception e)
+ {
+ throw new DeploymentException(e);
+ }
+ EJBContainer ejbContainer = ejb3Deployment != null ? (EJBContainer)ejb3Deployment.getContainer(objName) : null;
+
if(ejb.getEjbClass()!=null)
- wsDeployment.getEndpoints().add( new WebServiceDeclarationAdapter(ejb, unit.getClassLoader()) );
+ wsDeployment.getEndpoints().add( new WebServiceDeclarationAdapter(ejb, ejbContainer, unit.getClassLoader()) );
else
log.warn("Ingore ejb deployment with null classname: " + ejb);
}
@@ -107,11 +127,13 @@
{
private JBossEnterpriseBeanMetaData ejbMetaData;
+ private EJBContainer ejbContainer;
private ClassLoader loader;
- public WebServiceDeclarationAdapter(JBossEnterpriseBeanMetaData ejbMetaData, ClassLoader loader)
+ public WebServiceDeclarationAdapter(JBossEnterpriseBeanMetaData ejbMetaData, EJBContainer ejbContainer, ClassLoader loader)
{
this.ejbMetaData = ejbMetaData;
+ this.ejbContainer = ejbContainer;
this.loader = loader;
}
@@ -132,30 +154,32 @@
public <T extends Annotation> T getAnnotation(Class<T> annotation)
{
- Class bean = getComponentClass();
- T result = null;
- if(bean.isAnnotationPresent(annotation))
+ T result = ejbContainer != null ? ejbContainer.getAnnotation(annotation) : null;
+ if (result == null)
{
- result = (T)bean.getAnnotation(annotation);
- }
-
- //[JBWS-2240] Workaround to have the port-component data available;
- //TODO: info coming from the descriptor still need to be handled properly
- if (PortComponentSpec.class.equals(annotation) && ejbMetaData instanceof JBossSessionBeanMetaData)
- {
- PortComponent pc = ((JBossSessionBeanMetaData)ejbMetaData).getPortComponent();
- if (pc != null)
+ Class bean = getComponentClass();
+ if(bean.isAnnotationPresent(annotation))
{
- PortComponentMD pcMetaData = new PortComponentMD();
- pcMetaData.setAuthMethod(pc.getAuthMethod());
- pcMetaData.setPortComponentName(pc.getPortComponentName());
- pcMetaData.setPortComponentURI(pc.getPortComponentURI());
- pcMetaData.setSecureWSDLAccess(pc.getSecureWSDLAccess());
- pcMetaData.setTransportGuarantee(pc.getTransportGuarantee());
- result = (T)pcMetaData;
+ result = (T)bean.getAnnotation(annotation);
}
+
+ //[JBWS-2240] Workaround to have the port-component data available;
+ //TODO: info coming from the descriptor still need to be handled properly
+ if (PortComponentSpec.class.equals(annotation) && ejbMetaData instanceof JBossSessionBeanMetaData)
+ {
+ PortComponent pc = ((JBossSessionBeanMetaData)ejbMetaData).getPortComponent();
+ if (pc != null)
+ {
+ PortComponentMD pcMetaData = new PortComponentMD();
+ pcMetaData.setAuthMethod(pc.getAuthMethod());
+ pcMetaData.setPortComponentName(pc.getPortComponentName());
+ pcMetaData.setPortComponentURI(pc.getPortComponentURI());
+ pcMetaData.setSecureWSDLAccess(pc.getSecureWSDLAccess());
+ pcMetaData.setTransportGuarantee(pc.getTransportGuarantee());
+ result = (T)pcMetaData;
+ }
+ }
}
-
return result;
}
More information about the jboss-cvs-commits
mailing list