[jboss-cvs] JBossAS SVN: r105474 - in projects/metadata/common/trunk: src/main/java/org/jboss/metadata/annotation/creator/ws and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 1 09:08:00 EDT 2010
Author: richard.opalka at jboss.com
Date: 2010-06-01 09:07:59 -0400 (Tue, 01 Jun 2010)
New Revision: 105474
Modified:
projects/metadata/common/trunk/pom.xml
projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ws/WebServiceHandlerChainProcessor.java
Log:
[JBMETA-286] use HandlerChainsObjectFactory and JBossWS SPI meta data to properly handle incorrect namespace prefixes
Modified: projects/metadata/common/trunk/pom.xml
===================================================================
--- projects/metadata/common/trunk/pom.xml 2010-06-01 13:07:36 UTC (rev 105473)
+++ projects/metadata/common/trunk/pom.xml 2010-06-01 13:07:59 UTC (rev 105474)
@@ -153,7 +153,7 @@
<dependency>
<groupId>org.jboss.ws</groupId>
<artifactId>jbossws-spi</artifactId>
- <version>1.3.0.Beta4</version>
+ <version>1.3.0.GA</version>
</dependency>
<dependency>
Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ws/WebServiceHandlerChainProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ws/WebServiceHandlerChainProcessor.java 2010-06-01 13:07:36 UTC (rev 105473)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ws/WebServiceHandlerChainProcessor.java 2010-06-01 13:07:59 UTC (rev 105474)
@@ -30,6 +30,11 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
import javax.jws.HandlerChain;
@@ -38,8 +43,16 @@
import org.jboss.metadata.annotation.creator.Processor;
import org.jboss.metadata.annotation.creator.ProcessorUtils;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerChainMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerChainsMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.HandlerChainsObjectFactory;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainsMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedInitParamMetaData;
import org.jboss.xb.binding.JBossXBException;
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
@@ -133,9 +146,130 @@
throw new IllegalArgumentException("InputStream may not be null.");
Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
- return (ServiceReferenceHandlerChainsMetaData) unmarshaller.unmarshal(in, resolver);
+ UnifiedHandlerChainsMetaData handlerChainsUMDM = (UnifiedHandlerChainsMetaData)unmarshaller.unmarshal(in, new HandlerChainsObjectFactory(), null);
+ return this.transform(handlerChainsUMDM);
}
+ private ServiceReferenceHandlerChainsMetaData transform(final UnifiedHandlerChainsMetaData handlerChainsUMDM)
+ {
+ if (handlerChainsUMDM == null)
+ {
+ return null;
+ }
+
+ final List<ServiceReferenceHandlerChainMetaData> handlerChains = new LinkedList<ServiceReferenceHandlerChainMetaData>();
+
+ for (final UnifiedHandlerChainMetaData handlerChainUMDM : handlerChainsUMDM.getHandlerChains())
+ {
+ final ServiceReferenceHandlerChainMetaData newChainMD = transform(handlerChainUMDM);
+
+ if (newChainMD != null)
+ {
+ handlerChains.add(newChainMD);
+ }
+ }
+
+ if (handlerChains.size() == 0)
+ {
+ return null;
+ }
+
+ final ServiceReferenceHandlerChainsMetaData retVal = new ServiceReferenceHandlerChainsMetaData();
+ retVal.setHandlers(handlerChains);
+
+ return retVal;
+ }
+
+ private ServiceReferenceHandlerChainMetaData transform(final UnifiedHandlerChainMetaData handlerChainUMDM)
+ {
+ if (handlerChainUMDM == null || handlerChainUMDM.isExcluded())
+ {
+ return null;
+ }
+
+ final List<ServiceReferenceHandlerMetaData> handlers = new LinkedList<ServiceReferenceHandlerMetaData>();
+
+ for (final UnifiedHandlerMetaData handlerUMDM : handlerChainUMDM.getHandlers())
+ {
+ final ServiceReferenceHandlerMetaData newHandlerMD = this.transform(handlerUMDM);
+
+ if (newHandlerMD != null)
+ {
+ handlers.add(newHandlerMD);
+ }
+ }
+
+ if (handlers.size() == 0)
+ {
+ return null;
+ }
+
+ final ServiceReferenceHandlerChainMetaData retVal = new ServiceReferenceHandlerChainMetaData();
+ retVal.setPortNamePattern(handlerChainUMDM.getPortNamePattern());
+ retVal.setProtocolBindings(handlerChainUMDM.getProtocolBindings());
+ retVal.setServiceNamePattern(handlerChainUMDM.getServiceNamePattern());
+ retVal.setHandler(handlers);
+
+ return retVal;
+ }
+
+ @SuppressWarnings("unchecked")
+ private ServiceReferenceHandlerMetaData transform(final UnifiedHandlerMetaData handlerUMDM)
+ {
+ if (handlerUMDM == null)
+ {
+ return null;
+ }
+
+ final ServiceReferenceHandlerMetaData retVal = new ServiceReferenceHandlerMetaData();
+ retVal.setHandlerClass(handlerUMDM.getHandlerClass());
+ retVal.setHandlerName(handlerUMDM.getHandlerName());
+ retVal.setPortName(this.toList(handlerUMDM.getPortNames()));
+ retVal.setSoapHeader(this.toList(handlerUMDM.getSoapHeaders()));
+ retVal.setSoapRole(this.toList(handlerUMDM.getSoapRoles()));
+ retVal.setInitParam(this.transform(handlerUMDM.getInitParams()));
+
+ return retVal;
+ }
+
+ private List<ParamValueMetaData> transform(final List<UnifiedInitParamMetaData> initParams)
+ {
+ if (initParams == null || initParams.size() == 0)
+ {
+ return null;
+ }
+
+ final List<ParamValueMetaData> retVal = new LinkedList<ParamValueMetaData>();
+
+ for (final UnifiedInitParamMetaData initParamUMDM : initParams)
+ {
+ final ParamValueMetaData paramValueMD = new ParamValueMetaData();
+ paramValueMD.setParamName(initParamUMDM.getParamName());
+ paramValueMD.setParamValue(initParamUMDM.getParamValue());
+
+ retVal.add(paramValueMD);
+ }
+
+ return retVal;
+ }
+
+ @SuppressWarnings("unchecked")
+ private List toList(final Set set)
+ {
+ if (set == null)
+ {
+ return null;
+ }
+
+ List retVal = new LinkedList();
+ for (Iterator<E> i = set.iterator(); i.hasNext(); )
+ {
+ retVal.add(i.next());
+ }
+
+ return retVal;
+ }
+
/**
* Returns the InputStream of a specified file.
*
More information about the jboss-cvs-commits
mailing list