Author: richard.opalka(a)jboss.com
Date: 2009-07-24 11:17:53 -0400 (Fri, 24 Jul 2009)
New Revision: 10382
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSEJBAdapterDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSTypeDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/injection/InjectionMetaDataDeploymentAspect.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB21.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/ContainerMetaDataDeploymentAspect.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB21MetaDataBuilder.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB3MetaDataBuilder.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/JSEMetaDataBuilder.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB21.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB3.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/WebAppGeneratorDeploymentAspect.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebAppDeploymentAspect.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebMetaDataModifierImpl.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/util/Helper.java
Log:
[JBWS-2332] refactoring
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -101,7 +101,7 @@
if ( Helper.isWebServiceDeployment( unit ) )
{
log.debug( this.aspect.getClass() + " deploy: " + unit.getName() );
- final Deployment dep = unit.getAttachment( Deployment.class );
+ final Deployment dep = Helper.getRequiredAttachment( unit, Deployment.class );
this.aspect.start( dep );
}
}
@@ -118,7 +118,7 @@
if ( Helper.isWebServiceDeployment( unit ) )
{
log.debug( this.aspect.getClass() + " undeploy: " + unit.getName() );
- final Deployment dep = unit.getAttachment( Deployment.class );
+ final Deployment dep = Helper.getRequiredAttachment( unit, Deployment.class );
this.aspect.stop( dep );
}
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -123,9 +123,9 @@
private void newJaxrpcEjbDeployment( final DeploymentUnit unit )
{
final ArchiveDeployment dep = this.newDeployment( unit );
- final JBossMetaData jbmd = this.getAttachment( JBossMetaData.class, unit, dep );
- final WebservicesMetaData wsMetaData = this.getAttachment(
WebservicesMetaData.class, unit, dep );
- this.getAttachment( WebServiceDeployment.class, unit, dep );
+ final JBossMetaData jbmd = this.getAndPropagateAttachment( JBossMetaData.class,
unit, dep );
+ final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(
WebservicesMetaData.class, unit, dep );
+ this.getAndPropagateAttachment( WebServiceDeployment.class, unit, dep );
for ( WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions() )
{
@@ -151,21 +151,17 @@
private void newJaxwsEjbDeployment( final DeploymentUnit unit )
{
final ArchiveDeployment dep = this.newDeployment( unit );
- final WebServiceDeployment webServiceDeployment = this.getAttachment(
WebServiceDeployment.class, unit, dep );
+ this.getAndPropagateAttachment( WebServiceDeployment.class, unit, dep );
- final Iterator< WebServiceDeclaration > it =
webServiceDeployment.getServiceEndpoints().iterator();
- while ( it.hasNext() )
+ final Iterator< WebServiceDeclaration > ejbIterator = Helper.getJaxwsEjbs(
unit ).iterator();
+ while ( ejbIterator.hasNext() )
{
- final WebServiceDeclaration container = it.next();
+ final WebServiceDeclaration container = ejbIterator.next();
+ final String ejbName = container.getComponentName();
+ final String ejbClass = container.getComponentClassName();
- if ( Helper.isWebServiceBean( container ) )
- {
- final String ejbName = container.getComponentName();
- final String ejbClass = container.getComponentClassName();
-
- final Endpoint ep = this.createEndpoint( ejbClass, ejbName, dep );
- ep.setProperty( InvocationHandlerEJB3.CONTAINER_NAME,
container.getContainerName() );
- }
+ final Endpoint ep = this.createEndpoint( ejbClass, ejbName, dep );
+ ep.setProperty( InvocationHandlerEJB3.CONTAINER_NAME,
container.getContainerName() );
}
dep.addAttachment( DeploymentUnit.class, unit );
@@ -180,8 +176,8 @@
private void newJaxrpcJseDeployment( final DeploymentUnit unit )
{
final ArchiveDeployment dep = this.newDeployment( unit );
- final JBossWebMetaData webMetaData = this.getAttachment( JBossWebMetaData.class,
unit, dep );
- final WebservicesMetaData wsMetaData = this.getAttachment(
WebservicesMetaData.class, unit, dep );
+ final JBossWebMetaData webMetaData = this.getAndPropagateAttachment(
JBossWebMetaData.class, unit, dep );
+ final WebservicesMetaData wsMetaData = this.getAndPropagateAttachment(
WebservicesMetaData.class, unit, dep );
for ( WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions() )
{
@@ -207,7 +203,7 @@
private void newJaxwsJseDeployment( final DeploymentUnit unit )
{
final ArchiveDeployment dep = this.newDeployment( unit );
- this.getAttachment( JBossWebMetaData.class, unit, dep );
+ this.getAndPropagateAttachment( JBossWebMetaData.class, unit, dep );
final List< ServletMetaData > servlets = Helper.getJaxwsServlets( unit );
for ( ServletMetaData servlet : servlets )
@@ -263,7 +259,8 @@
dep.setRootFile( new VirtualFileAdaptor( ( ( VFSDeploymentUnit ) unit ).getRoot() )
);
dep.setRuntimeClassLoader( unit.getClassLoader() );
- dep.setType( unit.getAttachment( DeploymentType.class ) );
+ final DeploymentType deploymentType = Helper.getRequiredAttachment( unit,
DeploymentType.class );
+ dep.setType( deploymentType );
return dep;
}
@@ -306,9 +303,12 @@
* @param dep deployment
* @return attachment value if found in unit
*/
- private <A> A getAttachment( final Class< A > attachment, final
DeploymentUnit unit, final Deployment dep )
+ private <A> A getAndPropagateAttachment
+ (
+ final Class< A > attachment, final DeploymentUnit unit, final Deployment dep
+ )
{
- final A attachmentValue = unit.getAttachment( attachment );
+ final A attachmentValue = Helper.getOptionalAttachment( unit, attachment );
if ( attachmentValue != null )
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSEJBAdapterDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSEJBAdapterDeployer.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSEJBAdapterDeployer.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -39,6 +39,7 @@
import org.jboss.ejb3.Ejb3Deployment;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
@@ -80,7 +81,7 @@
final JBossMetaData mergedMD = ( JBossMetaData ) unit.getAttachment(
MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME
);
- final Ejb3Deployment ejb3Deployment = unit.getAttachment( Ejb3Deployment.class );
+ final Ejb3Deployment ejb3Deployment = Helper.getOptionalAttachment( unit,
Ejb3Deployment.class );
if ( mergedMD != null )
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSTypeDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSTypeDeployer.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/deployers/WSTypeDeployer.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -91,10 +91,10 @@
*/
private boolean isJaxrpcEjbDeployment( final DeploymentUnit unit )
{
- final boolean isJaxrpc = unit.getAttachment( WebservicesMetaData.class ) != null;
+ final boolean hasWebservicesMD = Helper.hasAttachment( unit,
WebservicesMetaData.class );
final boolean hasJBossMD = unit.getAllMetaData( JBossMetaData.class ).size() >
0;
- return isJaxrpc && hasJBossMD;
+ return hasWebservicesMD && hasJBossMD;
}
/**
@@ -105,10 +105,10 @@
*/
private boolean isJaxrpcJseDeployment( final DeploymentUnit unit )
{
- final boolean isJaxrpc = unit.getAttachment( WebservicesMetaData.class ) != null;
- final boolean hasJBossWebMD = unit.getAttachment( JBossWebMetaData.class ) !=
null;
+ final boolean hasWebservicesMD = Helper.hasAttachment( unit,
WebservicesMetaData.class );
+ final boolean hasJBossWebMD = Helper.hasAttachment( unit, JBossWebMetaData.class
);
- if ( isJaxrpc && hasJBossWebMD )
+ if ( hasWebservicesMD && hasJBossWebMD )
{
return Helper.getJaxrpcServlets( unit ).size() > 0;
}
@@ -124,11 +124,11 @@
*/
private boolean isJaxwsEjbDeployment( final DeploymentUnit unit )
{
- final boolean hasWSDeployment = unit.getAttachment( WebServiceDeployment.class ) !=
null;
+ final boolean hasWSDeployment = Helper.hasAttachment( unit,
WebServiceDeployment.class );
if ( hasWSDeployment )
{
- return Helper.isEjb3Deployment( unit );
+ return Helper.getJaxwsEjbs( unit ).size() > 0;
}
return false;
@@ -142,7 +142,7 @@
*/
private boolean isJaxwsJseDeployment( final DeploymentUnit unit )
{
- final boolean hasJBossWebMD = unit.getAttachment( JBossWebMetaData.class ) !=
null;
+ final boolean hasJBossWebMD = Helper.hasAttachment( unit, JBossWebMetaData.class
);
if ( hasJBossWebMD )
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/injection/InjectionMetaDataDeploymentAspect.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/injection/InjectionMetaDataDeploymentAspect.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/injection/InjectionMetaDataDeploymentAspect.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -73,14 +73,9 @@
{
super.start(dep);
- DeploymentUnit unit = dep.getAttachment(DeploymentUnit.class);
- if (unit == null)
- throw new IllegalStateException("DeploymentUnit not found");
+ DeploymentUnit unit = Helper.getRequiredAttachment( dep, DeploymentUnit.class );
+ JBossWebMetaData webMD = Helper.getRequiredAttachment( dep, JBossWebMetaData.class
);
- JBossWebMetaData webMD = dep.getAttachment(JBossWebMetaData.class);
- if (webMD == null)
- throw new IllegalStateException("JBossWebMetaData not found");
-
List<InjectionMetaData> injectionMD = new
LinkedList<InjectionMetaData>();
Map<Class<? extends Annotation>, ReferenceResolver> resolvers =
createResolvers(unit);
@@ -98,11 +93,10 @@
}
else if ( Helper.isJaxwsEjbDeployment( unit ) )
{
- JBossMetaData jbossMD = unit.getAttachment(JBossMetaData.class);
+ WebServiceDeployment webServiceDeployment = Helper.getRequiredAttachment(
unit, WebServiceDeployment.class );
+ JBossMetaData jbossMD = Helper.getRequiredAttachment( unit,
JBossMetaData.class );
JBossEnterpriseBeansMetaData jebMDs = jbossMD.getEnterpriseBeans();
- WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
-
Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
while (it.hasNext())
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB21.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB21.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB21.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -41,6 +41,7 @@
import org.jboss.security.SecurityContext;
import org.jboss.security.SecurityContextAssociation;
import org.jboss.webservices.integration.invocation.ServiceEndpointInterceptor;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.common.ObjectNameFactory;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
@@ -82,7 +83,7 @@
{
String ejbName = ep.getShortName();
Deployment dep = ep.getService().getDeployment();
- EJBArchiveMetaData apMetaData = dep.getAttachment(EJBArchiveMetaData.class);
+ EJBArchiveMetaData apMetaData = Helper.getRequiredAttachment( dep,
EJBArchiveMetaData.class );
EJBMetaData beanMetaData = (EJBMetaData)apMetaData.getBeanByEjbName(ejbName);
if (beanMetaData == null)
throw new WebServiceException("Cannot obtain ejb meta data for: " +
ejbName);
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/ContainerMetaDataDeploymentAspect.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/ContainerMetaDataDeploymentAspect.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/ContainerMetaDataDeploymentAspect.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -60,7 +60,7 @@
@Override
public void start( final Deployment dep )
{
- final DeploymentUnit unit = dep.getAttachment( DeploymentUnit.class );
+ final DeploymentUnit unit = Helper.getRequiredAttachment( dep, DeploymentUnit.class
);
if ( Helper.isJseDeployment( unit ) )
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB21MetaDataBuilder.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB21MetaDataBuilder.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB21MetaDataBuilder.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -36,6 +36,7 @@
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
import org.jboss.metadata.javaee.spec.PortComponent;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
@@ -56,7 +57,7 @@
EJBArchiveMetaData create(Deployment dep, DeploymentUnit unit)
{
- JBossMetaData jbossMetaData = unit.getAttachment(JBossMetaData.class);
+ JBossMetaData jbossMetaData = Helper.getRequiredAttachment( unit,
JBossMetaData.class );
dep.addAttachment(JBossMetaData.class, jbossMetaData);
EJBArchiveMetaData ejbMetaData = new EJBArchiveMetaData();
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB3MetaDataBuilder.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB3MetaDataBuilder.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/EJB3MetaDataBuilder.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -27,6 +27,7 @@
import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
@@ -53,12 +54,11 @@
{
EJBArchiveMetaData umd = new EJBArchiveMetaData();
- WebServiceDeployment webServiceDeployment =
dep.getAttachment(WebServiceDeployment.class);
+ WebServiceDeployment webServiceDeployment = Helper.getRequiredAttachment( dep,
WebServiceDeployment.class );
buildEnterpriseBeansMetaData(umd, webServiceDeployment);
- JBossMetaData jbMetaData = unit.getAttachment(JBossMetaData.class);
- if (jbMetaData != null)
- buildWebservicesMetaData(umd, jbMetaData);
+ JBossMetaData jbMetaData = Helper.getRequiredAttachment( unit, JBossMetaData.class
);
+ buildWebservicesMetaData(umd, jbMetaData);
return umd;
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/JSEMetaDataBuilder.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/JSEMetaDataBuilder.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/metadata/JSEMetaDataBuilder.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -41,6 +41,7 @@
import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData;
import org.jboss.wsf.spi.metadata.j2ee.JSESecurityMetaData;
@@ -61,12 +62,11 @@
{
String contextRoot = null;
- JBossWebMetaData jbossWebMetaData = unit.getAttachment(JBossWebMetaData.class);
- dep.addAttachment(JBossWebMetaData.class, jbossWebMetaData);
+ JBossWebMetaData jbossWebMetaData = Helper.getRequiredAttachment( unit,
JBossWebMetaData.class );
if (unit.getParent() != null)
{
- JBossAppMetaData appmd =
unit.getParent().getAttachment(JBossAppMetaData.class);
+ JBossAppMetaData appmd = Helper.getOptionalAttachment( unit.getParent(),
JBossAppMetaData.class );
if (appmd != null)
{
ModuleMetaData module = appmd.getModule(dep.getSimpleName());
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB21.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB21.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB21.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -25,6 +25,7 @@
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
@@ -32,15 +33,13 @@
* Handle web app security meta data for EJB21
*
* @author Thomas.Diesler(a)jboss.org
- * @since 12-May-2006
+ * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
*/
public class SecurityHandlerEJB21 implements SecurityHandler
{
public void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep)
{
- EJBArchiveMetaData ejbMetaData = dep.getAttachment(EJBArchiveMetaData.class);
- if (ejbMetaData == null)
- throw new IllegalStateException("Cannot obtain application meta
data");
+ EJBArchiveMetaData ejbMetaData = Helper.getRequiredAttachment( dep,
EJBArchiveMetaData.class );
String securityDomain = ejbMetaData.getSecurityDomain();
if (securityDomain != null)
@@ -54,7 +53,7 @@
public void addSecurityRoles(JBossWebMetaData webApp, Deployment dep)
{
- JBossMetaData jbmd = dep.getAttachment(JBossMetaData.class);
+ JBossMetaData jbmd = Helper.getRequiredAttachment( dep, JBossMetaData.class );
IAssemblyDescriptorMetaData assemblyDescriptor = jbmd.getAssemblyDescriptor();
if (assemblyDescriptor != null)
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB3.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB3.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/SecurityHandlerEJB3.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -25,6 +25,7 @@
import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
@@ -36,29 +37,26 @@
* Handle web app security meta data for EJB3
*
* @author Thomas.Diesler(a)jboss.org
- * @since 12-May-2006
+ * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
*/
public class SecurityHandlerEJB3 implements SecurityHandler
{
public void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep)
{
+ WebServiceDeployment webServiceDeployment = Helper.getRequiredAttachment( dep,
WebServiceDeployment.class );
String securityDomain = null;
+ Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
- WebServiceDeployment webServiceDeployment =
dep.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment != null)
+ while (it.hasNext())
{
- Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
+ WebServiceDeclaration container = it.next();
+ SecurityDomain anSecurityDomain =
container.getAnnotation(SecurityDomain.class);
+ if (anSecurityDomain != null)
{
- WebServiceDeclaration container = it.next();
- SecurityDomain anSecurityDomain =
container.getAnnotation(SecurityDomain.class);
- if (anSecurityDomain != null)
- {
- if (securityDomain != null &&
!securityDomain.equals(anSecurityDomain.value()))
- throw new IllegalStateException("Multiple security domains not
supported");
+ if (securityDomain != null &&
!securityDomain.equals(anSecurityDomain.value()))
+ throw new IllegalStateException("Multiple security domains not
supported");
- securityDomain = anSecurityDomain.value();
- }
+ securityDomain = anSecurityDomain.value();
}
}
@@ -73,25 +71,24 @@
public void addSecurityRoles(JBossWebMetaData webApp, Deployment dep)
{
- WebServiceDeployment webServiceDeployment =
dep.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment != null)
+ WebServiceDeployment webServiceDeployment = Helper.getRequiredAttachment( dep,
WebServiceDeployment.class );
+
+ Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
{
- Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
+ WebServiceDeclaration container = it.next();
+ RolesAllowed anRolesAllowed = container.getAnnotation(RolesAllowed.class);
+ if (anRolesAllowed != null)
{
- WebServiceDeclaration container = it.next();
- RolesAllowed anRolesAllowed = container.getAnnotation(RolesAllowed.class);
- if (anRolesAllowed != null)
+ SecurityRolesMetaData securityRoles = webApp.getSecurityRoles();
+ for (String roleName : anRolesAllowed.value())
{
- SecurityRolesMetaData securityRoles = webApp.getSecurityRoles();
- for (String roleName : anRolesAllowed.value())
- {
- SecurityRoleMetaData role = new SecurityRoleMetaData();
- role.setRoleName(roleName);
- securityRoles.add(role);
- }
+ SecurityRoleMetaData role = new SecurityRoleMetaData();
+ role.setRoleName(roleName);
+ securityRoles.add(role);
}
}
}
}
+
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/WebAppGeneratorDeploymentAspect.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/WebAppGeneratorDeploymentAspect.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/ejb/WebAppGeneratorDeploymentAspect.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -36,6 +36,7 @@
import org.jboss.metadata.web.spec.UserDataConstraintMetaData;
import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.annotation.WebContext;
import org.jboss.wsf.spi.deployment.ArchiveDeployment;
import org.jboss.wsf.spi.deployment.Deployment;
@@ -152,7 +153,7 @@
secureWSDLAccess = anWebContext.secureWSDLAccess();
}
- EJBArchiveMetaData appMetaData = dep.getAttachment(EJBArchiveMetaData.class);
+ EJBArchiveMetaData appMetaData = Helper.getOptionalAttachment( dep,
EJBArchiveMetaData.class );
if (appMetaData != null && appMetaData.getBeanByEjbName(ejbName) !=
null)
{
EJBMetaData bmd = appMetaData.getBeanByEjbName(ejbName);
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebAppDeploymentAspect.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebAppDeploymentAspect.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebAppDeploymentAspect.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -24,6 +24,7 @@
import javax.security.jacc.PolicyConfiguration;
import javax.security.jacc.PolicyConfigurationFactory;
import org.jboss.web.WebPermissionMapping;
+import org.jboss.webservices.integration.util.Helper;
import javax.xml.ws.WebServiceException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
@@ -50,37 +51,28 @@
public void start(Deployment dep)
{
- JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
- if (jbwmd == null)
- throw new WebServiceException("Cannot find web meta data");
+ final JBossWebMetaData jbwmd = Helper.getRequiredAttachment( dep,
JBossWebMetaData.class );
+ final DeploymentUnit unit = Helper.getRequiredAttachment( dep, DeploymentUnit.class
);
- DeploymentUnit unit = dep.getAttachment(DeploymentUnit.class);
- if (unit != null)
+ try
{
+ webMetaDataModifier.modifyMetaData(dep);
+
try
{
- webMetaDataModifier.modifyMetaData(dep);
-
- try
- {
- generateJACCPermissions(dep.getSimpleName(), jbwmd); // TODO: make it
another deployment aspect
- }
- catch (Exception e)
- {
- throw new RuntimeException("Exception generating JACC
perms:",e);
- }
-
- // Attaching it to the DeploymentUnit will cause a new webapp deployment
- unit.addAttachment(JBossWebMetaData.class, jbwmd);
+ generateJACCPermissions(dep.getSimpleName(), jbwmd); // TODO: make it another
deployment aspect
}
- catch (Exception ex)
+ catch (Exception e)
{
- WSFDeploymentException.rethrow(ex);
+ throw new RuntimeException("Exception generating JACC perms:",e);
}
+
+ // Attaching it to the DeploymentUnit will cause a new webapp deployment
+ unit.addAttachment(JBossWebMetaData.class, jbwmd);
}
- else
+ catch (Exception ex)
{
- throw new IllegalStateException("Cannot obtain deployment unit");
+ WSFDeploymentException.rethrow(ex);
}
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebMetaDataModifierImpl.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebMetaDataModifierImpl.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/tomcat/jse/WebMetaDataModifierImpl.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -26,6 +26,7 @@
import org.jboss.metadata.web.jboss.JBossServletMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.ListenerMetaData;
+import org.jboss.webservices.integration.util.Helper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.Endpoint;
@@ -48,9 +49,7 @@
public void modifyMetaData(Deployment dep)
{
- JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
- if (jbwmd == null)
- throw new WebServiceException("Cannot find web meta data");
+ JBossWebMetaData jbwmd = Helper.getRequiredAttachment( dep, JBossWebMetaData.class
);
try
{
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/util/Helper.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/util/Helper.java 2009-07-24
09:47:32 UTC (rev 10381)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/webservices/integration/util/Helper.java 2009-07-24
15:17:53 UTC (rev 10382)
@@ -31,12 +31,11 @@
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.logging.Logger;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossServletMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
@@ -48,16 +47,6 @@
public final class Helper
{
- /*
- * TODO: implement methods
- * * getRequiredAttachment( DeploymentUnit unit, Class<?> attachmentType )
- * * getRequiredAttachment( Deployment dep, Class<?> attachmentType )
- * both methods should throw exception if attachment not found
- * * getOptionalAttachment( DeploymentUnit unit, Class<?> attachmentType )
- * * getOptionalAttachment( Deployment dep, Class<?> attachmentType )
- * both methods will return null if attachment will not be found.
- */
-
/** Logger. */
private static final Logger LOG = Logger.getLogger( Helper.class );
@@ -77,7 +66,7 @@
*/
public static boolean isWebServiceDeployment( final DeploymentUnit unit )
{
- return unit.getAttachment( DeploymentType.class ) != null;
+ return Helper.getOptionalAttachment( unit, DeploymentType.class ) != null;
}
/**
@@ -88,7 +77,7 @@
*/
public static boolean isJaxrpcEjbDeployment( final DeploymentUnit unit )
{
- final DeploymentType deploymentType = unit.getAttachment( DeploymentType.class );
+ final DeploymentType deploymentType = Helper.getOptionalAttachment( unit,
DeploymentType.class );
return DeploymentType.JAXRPC_EJB21.equals( deploymentType );
}
@@ -101,7 +90,7 @@
*/
public static boolean isJaxrpcJseDeployment( final DeploymentUnit unit )
{
- final DeploymentType deploymentType = unit.getAttachment( DeploymentType.class );
+ final DeploymentType deploymentType = Helper.getOptionalAttachment( unit,
DeploymentType.class );
return DeploymentType.JAXRPC_JSE.equals( deploymentType );
}
@@ -114,7 +103,7 @@
*/
public static boolean isJaxwsEjbDeployment( final DeploymentUnit unit )
{
- final DeploymentType deploymentType = unit.getAttachment( DeploymentType.class );
+ final DeploymentType deploymentType = Helper.getOptionalAttachment( unit,
DeploymentType.class );
return DeploymentType.JAXWS_EJB3.equals( deploymentType );
}
@@ -127,7 +116,7 @@
*/
public static boolean isJaxwsJseDeployment( final DeploymentUnit unit )
{
- final DeploymentType deploymentType = unit.getAttachment( DeploymentType.class );
+ final DeploymentType deploymentType = Helper.getOptionalAttachment( unit,
DeploymentType.class );
return DeploymentType.JAXWS_JSE.equals( deploymentType );
}
@@ -210,33 +199,45 @@
return Helper.getWebServiceServlets( unit, false );
}
- public static boolean isWebServiceBean( final WebServiceDeclaration
ejbContainerAdapter )
+ /**
+ * Gets list of JAXWS EJBs meta data.
+ *
+ * @param unit deployment unit
+ * @return list of JAXWS EJBs meta data
+ */
+ public static List< WebServiceDeclaration > getJaxwsEjbs( final DeploymentUnit
unit )
{
- final boolean isWebService = ejbContainerAdapter.getAnnotation( WebService.class )
!= null;
- final boolean isWebServiceProvider = ejbContainerAdapter.getAnnotation(
WebServiceProvider.class ) != null;
+ final WebServiceDeployment wsDeployment = Helper.getRequiredAttachment( unit,
WebServiceDeployment.class );
+ final List< WebServiceDeclaration > endpoints = new ArrayList<
WebServiceDeclaration >();
- return isWebService || isWebServiceProvider;
- }
-
- // TODO: review why we don't detect WS deployments in WebServiceDeployment
creation process
- public static boolean isEjb3Deployment( final DeploymentUnit unit )
- {
- final WebServiceDeployment wsDeployment = unit.getAttachment(
WebServiceDeployment.class );
-
- final Iterator<WebServiceDeclaration> it =
wsDeployment.getServiceEndpoints().iterator();
- while ( it.hasNext() )
+ final Iterator< WebServiceDeclaration > ejbIterator =
wsDeployment.getServiceEndpoints().iterator();
+ while ( ejbIterator.hasNext() )
{
- final WebServiceDeclaration container = it.next();
- if ( Helper.isWebServiceBean( container ) )
+ final WebServiceDeclaration ejbContainer = ejbIterator.next();
+ if ( Helper.isWebServiceBean( ejbContainer ) )
{
- return true;
+ endpoints.add( ejbContainer );
}
}
- return false;
+ return endpoints;
}
/**
+ * Returns true if EJB container is webservice endpoint.
+ *
+ * @param ejbContainerAdapter EJB container adapter
+ * @return true if EJB container is webservice endpoint, false otherwise
+ */
+ public static boolean isWebServiceBean( final WebServiceDeclaration
ejbContainerAdapter )
+ {
+ final boolean isWebService = ejbContainerAdapter.getAnnotation( WebService.class )
!= null;
+ final boolean isWebServiceProvider = ejbContainerAdapter.getAnnotation(
WebServiceProvider.class ) != null;
+
+ return isWebService || isWebServiceProvider;
+ }
+
+ /**
* Returns endpoint class name.
*
* @param servletMD servlet meta data
@@ -249,6 +250,13 @@
return endpointClass != null ? endpointClass.trim() : null;
}
+ /**
+ * Returns servlet meta data for requested servlet name.
+ *
+ * @param jbossWebMD jboss web meta data
+ * @param servletName servlet name
+ * @return servlet meta data
+ */
public static ServletMetaData getServletForName( final JBossWebMetaData jbossWebMD,
final String servletName )
{
for ( JBossServletMetaData servlet : jbossWebMD.getServlets() )
@@ -263,6 +271,131 @@
}
/**
+ * Returns webservice endpoint class or null if passed servlet meta data belong to
either JSP or servlet instance.
+ *
+ * @param servletMD servlet meta data
+ * @param loader class loader
+ * @return webservice endpoint class or null
+ */
+ public static Class< ? > getEndpointClass( final ServletMetaData servletMD,
final ClassLoader loader )
+ {
+ final String endpointClassName = Helper.getEndpointName( servletMD );
+ final boolean notJSP = endpointClassName != null &&
endpointClassName.length() > 0;
+
+ if ( notJSP )
+ {
+ try
+ {
+ final Class< ? > endpointClass = loader.loadClass( endpointClassName
);
+ final boolean notServlet = !endpointClass.isAssignableFrom( Servlet.class );
+
+ if ( notServlet )
+ {
+ return endpointClass;
+ }
+ }
+ catch ( ClassNotFoundException cnfe )
+ {
+ Helper.LOG.warn( "Cannot load servlet class: " + endpointClassName,
cnfe );
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns required attachment value from deployment unit.
+ *
+ * @param <A> expected value
+ * @param unit deployment unit
+ * @param key attachment key
+ * @return required attachment
+ * @throws IllegalStateException if attachment value is null
+ */
+ public static <A> A getRequiredAttachment( final DeploymentUnit unit, final
Class< A > key )
+ {
+ final A value = unit.getAttachment( key );
+ if ( value == null )
+ {
+ Helper.LOG.error( "Cannot find attachment in deployment unit: " + key
);
+ throw new IllegalStateException();
+ }
+
+ return value;
+ }
+
+ /**
+ * Returns optional attachment value from deployment unit or null if not bound.
+ *
+ * @param <A> expected value
+ * @param unit deployment unit
+ * @param key attachment key
+ * @return optional attachment value or null
+ */
+ public static <A> A getOptionalAttachment( final DeploymentUnit unit, final
Class< A > key )
+ {
+ return unit.getAttachment( key );
+ }
+
+ /**
+ * Returns true if deployment unit have attachment value associated with the
<b>key</b>.
+ *
+ * @param unit deployment unit
+ * @param key attachment key
+ * @return true if contains attachment, false otherwise
+ */
+ public static boolean hasAttachment( final DeploymentUnit unit, final Class< ? >
key )
+ {
+ return Helper.getOptionalAttachment( unit, key ) != null;
+ }
+
+ /**
+ * Returns required attachment value from webservice deployment.
+ *
+ * @param <A> expected value
+ * @param dep webservice deployment
+ * @param key attachment key
+ * @return required attachment
+ * @throws IllegalStateException if attachment value is null
+ */
+ public static <A> A getRequiredAttachment( final Deployment dep, final Class<
A > key )
+ {
+ final A value = dep.getAttachment( key );
+ if ( value == null )
+ {
+ Helper.LOG.error( "Cannot find attachment in webservice deployment: "
+ key );
+ throw new IllegalStateException();
+ }
+
+ return value;
+ }
+
+ /**
+ * Returns optional attachment value from webservice deployment or null if not bound.
+ *
+ * @param <A> expected value
+ * @param dep webservice deployment
+ * @param key attachment key
+ * @return optional attachment value or null
+ */
+ public static <A> A getOptionalAttachment( final Deployment dep, final Class<
A > key )
+ {
+ return dep.getAttachment( key );
+ }
+
+ /**
+ * Returns true if webservice deployment have attachment value associated with the
<b>key</b>.
+ *
+ * @param dep webservice deployment
+ * @param key attachment key
+ * @return true if contains attachment, false otherwise
+ */
+ public static boolean hasAttachment( final Deployment dep, final Class< ? > key
)
+ {
+ return Helper.getOptionalAttachment( dep, key ) != null;
+ }
+
+ /**
* Gets list of JAXRPC or JAXWS servlets meta data.
*
* @param unit deployment unit
@@ -271,7 +404,7 @@
*/
private static List< ServletMetaData > getWebServiceServlets( final
DeploymentUnit unit, final boolean jaxws )
{
- final JBossWebMetaData jbossWebMD = unit.getAttachment( JBossWebMetaData.class );
+ final JBossWebMetaData jbossWebMD = Helper.getRequiredAttachment( unit,
JBossWebMetaData.class );
final ClassLoader loader = unit.getClassLoader();
final List< ServletMetaData > endpoints = new ArrayList< ServletMetaData
>();
@@ -298,37 +431,4 @@
return endpoints;
}
- /**
- * Returns webservice endpoint class or null if passed servlet meta data belong to
either JSP or servlet instance.
- *
- * @param servletMD servlet meta data
- * @param loader class loader
- * @return webservice endpoint class or null
- */
- private static Class< ? > getEndpointClass( final ServletMetaData servletMD,
final ClassLoader loader )
- {
- final String endpointClassName = Helper.getEndpointName( servletMD );
- final boolean notJSP = endpointClassName != null &&
endpointClassName.length() > 0;
-
- if ( notJSP )
- {
- try
- {
- final Class< ? > endpointClass = loader.loadClass( endpointClassName
);
- final boolean notServlet = !endpointClass.isAssignableFrom( Servlet.class );
-
- if ( notServlet )
- {
- return endpointClass;
- }
- }
- catch ( ClassNotFoundException cnfe )
- {
- Helper.LOG.warn( "Cannot load servlet class: " + endpointClassName,
cnfe );
- }
- }
-
- return null;
- }
-
}