[jboss-svn-commits] JBossWS SVN: r1187 - in branches/jbossws-1.0/src: main/java/org/jboss/ws/deployment main/java/org/jboss/ws/integration/jboss main/java/org/jboss/ws/jaxrpc main/java/org/jboss/ws/jaxrpc/handler main/java/org/jboss/ws/metadata main/java/org/jboss/ws/metadata/j2ee main/java/org/jboss/ws/server main/java/org/jboss/ws/tools/metadata test/ant test/java/org/jboss/test/ws/jaxrpc/samples/dynamichandler test/java/org/jboss/test/ws/jaxrpc/wsse test/resources/jaxrpc/jbws1121/WEB-INF test/resources/jaxrpc/samples/wssecurity/WEB-INF test/resources/jaxrpc/wsse/rpc test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 10 09:48:08 EDT 2006


Author: thomas.diesler at jboss.com
Date: 2006-10-10 09:47:37 -0400 (Tue, 10 Oct 2006)
New Revision: 1187

Added:
   branches/jbossws-1.0/src/test/resources/jaxrpc/jbws1121/WEB-INF/jboss-web.xml
   branches/jbossws-1.0/src/test/resources/jaxrpc/samples/wssecurity/WEB-INF/jboss-web.xml
   branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/
   branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml
Removed:
   branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml
Modified:
   branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB21.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB3.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderJSE.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/integration/jboss/JBossServiceEndpointServlet.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/ServiceObjectFactory.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/handler/HandlerDelegateJAXRPC.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ClientEndpointMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/FaultMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaDataJAXRPC.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/OperationMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServerEndpointMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/UnifiedMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/j2ee/UnifiedHandlerMetaData.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java
   branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java
   branches/jbossws-1.0/src/test/ant/build-jars-jaxrpc.xml
   branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/samples/dynamichandler/DynamicHandlerTestCase.java
   branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/wsse/NotEncodedTestCase.java
Log:
[JBWS-979] Security config not in sync with handler config

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -128,10 +128,9 @@
 
          buildMetaDataInternal(serviceMetaData, wsdlDefinitions, javaWsdlMapping, serviceRefMetaData);
 
-         // eagerly initialize
-         wsMetaData.eagerInitialize();
-
          log.debug("END buildMetaData: " + wsMetaData);
+         wsMetaData.eagerInitialize();
+         wsMetaData.validate();
          return serviceMetaData;
       }
       catch (RuntimeException rte)

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -248,6 +248,7 @@
          }
 
          log.debug("END buildMetaData: " + wsMetaData);
+         wsMetaData.validate();
          return wsMetaData;
       }
       catch (RuntimeException rte)

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB21.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB21.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB21.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -74,8 +74,9 @@
                setupEndpointFromAnnotations(wsMetaData, udi, beanClass, ejbName);
             }
          }
-
+         
          log.debug("END buildMetaData: " + wsMetaData);
+         wsMetaData.validate();
          return wsMetaData;
       }
       catch (RuntimeException rte)

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB3.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB3.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderEJB3.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -89,6 +89,7 @@
          }
 
          log.debug("END buildMetaData: " + wsMetaData);
+         wsMetaData.validate();
          return wsMetaData;
       }
       catch (RuntimeException rte)

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderJSE.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderJSE.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilderJSE.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -79,6 +79,7 @@
          }
 
          log.debug("END buildMetaData: " + wsMetaData);
+         wsMetaData.validate();
          return wsMetaData;
       }
       catch (RuntimeException rte)

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/integration/jboss/JBossServiceEndpointServlet.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/integration/jboss/JBossServiceEndpointServlet.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/integration/jboss/JBossServiceEndpointServlet.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -68,7 +68,7 @@
          sepMetaData.setConfigName(configName);
          sepMetaData.setConfigFile(configFile);
          
-         List<HandlerMetaData> sepHandlers = sepMetaData.getHandlers(HandlerType.ENDPOINT);
+         List<HandlerMetaData> sepHandlers = sepMetaData.getHandlerMetaData(HandlerType.ENDPOINT);
          sepMetaData.clearHandlers();
          
          // Add pre handlers

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/ServiceObjectFactory.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/ServiceObjectFactory.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/ServiceObjectFactory.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -286,14 +286,11 @@
 
          Set<String> handlerRoles = new HashSet<String>();
          ArrayList handlerInfos = new ArrayList();
-         for (HandlerMetaData handlerMetaData : epMetaData.getHandlers(HandlerType.ALL))
+         for (HandlerMetaData handlerMetaData : epMetaData.getHandlerMetaData(HandlerType.ALL))
          {
             HandlerMetaDataJAXRPC jaxrpcMetaData = (HandlerMetaDataJAXRPC)handlerMetaData;
             handlerRoles.addAll(jaxrpcMetaData.getSoapRoles());
 
-            ClassLoader cl = epMetaData.getClassLoader();
-            Class hClass = cl.loadClass(jaxrpcMetaData.getHandlerClass());
-
             HashMap hConfig = new HashMap();
             for (HandlerInitParam param : jaxrpcMetaData.getInitParams())
             {
@@ -304,6 +301,7 @@
             QName[] headerArr = new QName[headers.size()];
             headers.toArray(headerArr);
             
+            Class hClass = jaxrpcMetaData.getHandlerClass();
             hConfig.put(HandlerType.class.getName(), jaxrpcMetaData.getHandlerType());
             HandlerInfo info = new HandlerInfo(hClass, hConfig, headerArr);
 

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/handler/HandlerDelegateJAXRPC.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/handler/HandlerDelegateJAXRPC.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/jaxrpc/handler/HandlerDelegateJAXRPC.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -23,23 +23,27 @@
 
 // $Id$
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.handler.HandlerChain;
+import javax.xml.rpc.handler.HandlerInfo;
+
 import org.jboss.logging.Logger;
-import org.jboss.ws.WSException;
-import org.jboss.ws.xop.XOPContext;
 import org.jboss.ws.metadata.HandlerMetaData;
-import org.jboss.ws.metadata.HandlerMetaData.HandlerInitParam;
-import org.jboss.ws.metadata.HandlerMetaData.HandlerType;
 import org.jboss.ws.metadata.HandlerMetaDataJAXRPC;
 import org.jboss.ws.metadata.ServerEndpointMetaData;
+import org.jboss.ws.metadata.HandlerMetaData.HandlerInitParam;
+import org.jboss.ws.metadata.HandlerMetaData.HandlerType;
 import org.jboss.ws.server.HandlerDelegate;
 import org.jboss.ws.server.ServiceEndpointInfo;
 import org.jboss.ws.soap.MessageContextAssociation;
+import org.jboss.ws.xop.XOPContext;
 
-import javax.xml.namespace.QName;
-import javax.xml.rpc.handler.HandlerChain;
-import javax.xml.rpc.handler.HandlerInfo;
-import java.util.*;
-
 /** Delegates to JAXRPC handlers
  *
  * @author Thomas.Diesler at jboss.org
@@ -148,24 +152,11 @@
       List<HandlerInfo> hInfos = new ArrayList<HandlerInfo>();
 
       ServerEndpointMetaData sepMetaData = seInfo.getServerEndpointMetaData();
-      for (HandlerMetaData handlerMetaData : sepMetaData.getHandlers(type))
+      for (HandlerMetaData handlerMetaData : sepMetaData.getHandlerMetaData(type))
       {
          HandlerMetaDataJAXRPC jaxrpcMetaData = (HandlerMetaDataJAXRPC)handlerMetaData;
          handlerRoles.addAll(jaxrpcMetaData.getSoapRoles());
 
-         Class hClass;
-         String handlerClass = jaxrpcMetaData.getHandlerClass();
-         try
-         {
-            // Load the handler class using the deployments top level CL
-            ClassLoader classLoader = sepMetaData.getClassLoader();
-            hClass = classLoader.loadClass(handlerClass);
-         }
-         catch (ClassNotFoundException e)
-         {
-            throw new WSException("Cannot load handler class: " + handlerClass);
-         }
-
          HashMap<String, Object> hConfig = new HashMap<String, Object>();
          for (HandlerInitParam param : jaxrpcMetaData.getInitParams())
          {
@@ -176,6 +167,7 @@
          QName[] headerArr = new QName[headers.size()];
          headers.toArray(headerArr);
          
+         Class hClass = jaxrpcMetaData.getHandlerClass();
          hConfig.put(HandlerType.class.getName(), jaxrpcMetaData.getHandlerType());
          HandlerInfo info = new HandlerInfo(hClass, hConfig, headerArr);
 

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ClientEndpointMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ClientEndpointMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ClientEndpointMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -145,7 +145,7 @@
       {
          buffer.append("\n" + opMetaData);
       }
-      for (HandlerMetaData hdlMetaData : getHandlers(HandlerType.ALL))
+      for (HandlerMetaData hdlMetaData : getHandlerMetaData(HandlerType.ALL))
       {
          buffer.append("\n" + hdlMetaData);
       }

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -40,15 +40,9 @@
 import org.jboss.ws.WSException;
 import org.jboss.ws.common.CommonSOAPBinding;
 import org.jboss.ws.jaxrpc.Style;
-import org.jboss.ws.jaxrpc.TypeMappingImpl;
 import org.jboss.ws.jaxrpc.Use;
-import org.jboss.ws.jaxrpc.encoding.SOAPArrayDeserializerFactory;
-import org.jboss.ws.jaxrpc.encoding.SOAPArraySerializerFactory;
-import org.jboss.ws.jbossxb.JBossXBDeserializerFactory;
-import org.jboss.ws.jbossxb.JBossXBSerializerFactory;
 import org.jboss.ws.metadata.HandlerMetaData.HandlerType;
 import org.jboss.ws.metadata.config.WSCommonConfig;
-import org.jboss.ws.utils.JavaUtils;
 
 /**
  * A Service component describes a set of endpoints.
@@ -404,7 +398,7 @@
       handlersInitialized = false;
    }
 
-   public List<HandlerMetaData> getHandlers(HandlerType type)
+   public List<HandlerMetaData> getHandlerMetaData(HandlerType type)
    {
       List<HandlerMetaData> typeHandlers = new ArrayList<HandlerMetaData>();
       for (HandlerMetaData hmd : handlers)
@@ -425,61 +419,25 @@
       this.handlersInitialized = flag;
    }
 
+   public void validate()
+   {
+      for (HandlerMetaData handler : handlers)
+         handler.validate();
+      
+      for (OperationMetaData opMetaData : operations)
+         opMetaData.validate();
+   }
+   
    /**
     * @see UnifiedMetaData#eagerInitialize()
     */
    public void eagerInitialize()
    {
-      TypeMappingImpl typeMapping = serviceMetaData.getTypeMapping();
-      for (TypeMappingMetaData tmMetaData : serviceMetaData.getTypesMetaData().getTypeMappings())
-      {
-         String javaTypeName = tmMetaData.getJavaTypeName();
-         QName xmlType = tmMetaData.getXmlType();
-         if (xmlType != null)
-         {                       
-            List<Class> registeredTypes = typeMapping.getJavaTypes(xmlType);
-            
-            boolean registered = false;
-            for (Class current : registeredTypes) {
-               if (current.getName().equals(javaTypeName))
-               {
-                  registered = true;
-                  break;
-               }
-            }
-            
-            if (registered == false)
-            {
-               try
-               {
-                  ClassLoader classLoader = getClassLoader();
-                  Class javaType = JavaUtils.loadJavaType(javaTypeName, classLoader);
-                  
-                  if (JavaUtils.isPrimitive(javaTypeName))
-                     javaType = JavaUtils.getWrapperType(javaType);
-
-                  if (getEncodingStyle() == Use.ENCODED && javaType.isArray())
-                  {
-                     typeMapping.register(javaType, xmlType, new SOAPArraySerializerFactory(), new SOAPArrayDeserializerFactory());
-                  }
-                  else
-                  {
-                     typeMapping.register(javaType, xmlType, new JBossXBSerializerFactory(), new JBossXBDeserializerFactory());
-                  }
-               }
-               catch (ClassNotFoundException e)
-               {
-                  log.warn("Cannot load class for type: " + xmlType + "," + javaTypeName);
-               }
-            }
-         }
-      }
-
-      eagerInitializeOperations();
-   }
-
-   private void eagerInitializeOperations()
-   {
+      // Initialize handlers
+      for (HandlerMetaData handler : handlers)
+         handler.eagerInitialize();
+      
+      // Initialize operations
       seiClass = getServiceEndpointInterface();
       if (seiClass != null)
       {

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/FaultMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/FaultMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/FaultMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -111,6 +111,11 @@
       return tmpJavaType;
    }
 
+   public void validate()
+   {
+      // nothing to do
+   }
+   
    public void eagerInitialize()
    {
       javaType = getJavaType();

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -21,7 +21,7 @@
  */
 package org.jboss.ws.metadata;
 
-// $Id$
+// $Id:HandlerMetaData.java 915 2006-09-08 08:40:45Z thomas.diesler at jboss.com $
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -31,6 +31,10 @@
 
 import javax.xml.namespace.QName;
 
+import org.jboss.ws.WSException;
+import org.jboss.ws.wsse.jaxrpc.WSSecurityHandlerInbound;
+import org.jboss.ws.wsse.jaxrpc.WSSecurityHandlerOutbound;
+
 /**
  * The common metdata data for a handler element
  * 
@@ -44,33 +48,35 @@
       PRE, ENDPOINT, POST, ALL
    };
 
-   private transient EndpointMetaData endpointMetaData;
+   private transient EndpointMetaData epMetaData;
 
    // The required <handler-name> element
    private String handlerName;
    // The required <handler-class> element
-   private String handlerClass;
+   private String handlerClassName;
    // The required handler type
    private HandlerType handlerType;
    // The optional <soap-header> elements
    private Set<QName> soapHeaders = new HashSet<QName>();
    // The optional <init-param> elements
    private List<HandlerInitParam> initParams = new ArrayList<HandlerInitParam>();
+   // The cached handler class
+   private Class handlerClass;
 
-   public HandlerMetaData(EndpointMetaData endpointMetaData, HandlerType type)
+   public HandlerMetaData(EndpointMetaData epMetaData, HandlerType type)
    {
-      this.endpointMetaData = endpointMetaData;
+      this.epMetaData = epMetaData;
       this.handlerType = type;
    }
 
-   public void setEndpointMetaData(EndpointMetaData endpointMetaData)
+   public void setEndpointMetaData(EndpointMetaData epMetaData)
    {
-      this.endpointMetaData = endpointMetaData;
+      this.epMetaData = epMetaData;
    }
 
    public EndpointMetaData getEndpointMetaData()
    {
-      return endpointMetaData;
+      return epMetaData;
    }
 
    public void setHandlerName(String value)
@@ -83,21 +89,42 @@
       return handlerName;
    }
 
-   public void setHandlerClass(String handlerClass)
+   public void setHandlerClassName(String handlerClassName)
    {
-      this.handlerClass = handlerClass;
+      this.handlerClassName = handlerClassName;
    }
 
-   public String getHandlerClass()
+   public String getHandlerClassName()
    {
-      return handlerClass;
+      return handlerClassName;
    }
 
+   public Class getHandlerClass()
+   {
+      if (handlerClassName == null)
+         throw new IllegalStateException("Handler class name cannot be null");
+      
+      Class localClass = handlerClass;
+      if (localClass == null)
+      {
+         try
+         {
+            ClassLoader loader = epMetaData.getClassLoader();
+            localClass = loader.loadClass(handlerClassName);
+         }
+         catch (ClassNotFoundException ex)
+         {
+            throw new WSException("Cannot load handler: " + handlerClassName, ex);
+         }
+      }
+      return localClass;
+   }
+
    public HandlerType getHandlerType()
    {
       return handlerType;
    }
-   
+
    public void setSoapHeaders(Set<QName> soapHeaders)
    {
       this.soapHeaders = soapHeaders;
@@ -118,6 +145,24 @@
       return initParams;
    }
 
+   public void validate()
+   {
+      List<String> securityHandlers = new ArrayList<String>();
+      securityHandlers.add(WSSecurityHandlerInbound.class.getName());
+      securityHandlers.add(WSSecurityHandlerOutbound.class.getName());
+      
+      if (securityHandlers.contains(handlerClassName))
+      {
+         if (epMetaData.getServiceMetaData().getSecurityConfiguration() == null)
+            throw new IllegalStateException("WS-Security requires security configuration");
+      }
+   }
+
+   public void eagerInitialize()
+   {
+      handlerClass = getHandlerClass();
+   }
+   
    public static class HandlerInitParam
    {
       // The required <handler-name> element
@@ -135,7 +180,6 @@
          this.paramName = paramName;
       }
 
-
       public String getParamValue()
       {
          return paramValue;

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaDataJAXRPC.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaDataJAXRPC.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/HandlerMetaDataJAXRPC.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -21,7 +21,7 @@
  */
 package org.jboss.ws.metadata;
 
-//$Id$
+//$Id:HandlerMetaDataJAXRPC.java 915 2006-09-08 08:40:45Z thomas.diesler at jboss.com $
 
 import java.util.HashSet;
 import java.util.Set;
@@ -73,7 +73,7 @@
       StringBuffer buffer = new StringBuffer("\nHandlerMetaDataJAXRPC:");
       buffer.append("\n type=" + getHandlerType());
       buffer.append("\n name=" + getHandlerName());
-      buffer.append("\n class=" + getHandlerClass());
+      buffer.append("\n class=" + getHandlerClassName());
       buffer.append("\n params=" + getInitParams());
       buffer.append("\n headers=" + getSoapHeaders());
       buffer.append("\n roles=" + getSoapRoles());

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/OperationMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/OperationMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/OperationMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -460,11 +460,6 @@
       assertOneWayOperation();
    }
 
-   public void validate()
-   {
-      assertBare();
-   }
-
    // A JSR-181 processor is REQUIRED to report an error if an
    // operation marked @Oneway has a return value, declares any checked exceptions or has any
    // INOUT or OUT parameters.
@@ -486,7 +481,7 @@
       }
    }
 
-   private void assertBare()
+   public void assertDocumentBare()
    {
       if (isDocumentBare())
       {
@@ -514,6 +509,15 @@
       }
    }
 
+   public void validate()
+   {
+      for (ParameterMetaData parameter : parameters)
+         parameter.validate();
+
+      for (FaultMetaData fault : faults)
+         fault.validate();
+   }
+
    /**
     * @see UnifiedMetaData#eagerInitialize()
     */
@@ -559,7 +563,9 @@
       buffer.append("\n javaName=" + javaName);
       buffer.append("\n style=" + getStyle() + "/" + getUse());
       if (getStyle() == Style.DOCUMENT)
+      {
          buffer.append("/" + getParameterStyle());
+      }
       buffer.append("\n oneWay=" + oneWay);
       buffer.append("\n soapAction=" + soapAction);
       for (ParameterMetaData param : parameters)

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -283,6 +283,11 @@
       this.wrappedTypes = wrappedTypes;
    }
 
+   public void validate()
+   {
+      // nothing to do
+   }
+   
    /**
     * @see UnifiedMetaData#eagerInitialize()
     */

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServerEndpointMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServerEndpointMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServerEndpointMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -243,7 +243,7 @@
       {
          buffer.append("\n" + opMetaData);
       }
-      for (HandlerMetaData hdlMetaData : getHandlers(HandlerType.ALL))
+      for (HandlerMetaData hdlMetaData : getHandlerMetaData(HandlerType.ALL))
       {
          buffer.append("\n" + hdlMetaData);
       }

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -40,7 +40,12 @@
 import org.jboss.ws.jaxrpc.TypeMappingImpl;
 import org.jboss.ws.jaxrpc.TypeMappingRegistryImpl;
 import org.jboss.ws.jaxrpc.Use;
+import org.jboss.ws.jaxrpc.encoding.SOAPArrayDeserializerFactory;
+import org.jboss.ws.jaxrpc.encoding.SOAPArraySerializerFactory;
+import org.jboss.ws.jbossxb.JBossXBDeserializerFactory;
+import org.jboss.ws.jbossxb.JBossXBSerializerFactory;
 import org.jboss.ws.jbossxb.SchemaBindingBuilder;
+import org.jboss.ws.metadata.HandlerMetaData.HandlerType;
 import org.jboss.ws.metadata.jaxrpcmapping.JavaWsdlMapping;
 import org.jboss.ws.metadata.jaxrpcmapping.JavaWsdlMappingFactory;
 import org.jboss.ws.metadata.wsdl.WSDLDefinitions;
@@ -49,6 +54,7 @@
 import org.jboss.ws.metadata.wsdl.WSDLUtils;
 import org.jboss.ws.metadata.wsdl.xmlschema.JBossXSModel;
 import org.jboss.ws.metadata.wsse.WSSecurityConfiguration;
+import org.jboss.ws.utils.JavaUtils;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 
 /**
@@ -339,6 +345,26 @@
       return schemaBinding;
    }
 
+   public void validate()
+   {
+      // Validate that there is at least one handler configured
+      // if we have a security configuration
+      if (securityConfiguration != null)
+      {
+         int handlerCount = 0;
+         for (EndpointMetaData epMetaData : endpoints.values())
+         {
+            handlerCount += epMetaData.getHandlerMetaData(HandlerType.ALL).size();
+         }
+         if (handlerCount == 0)
+            throw new IllegalStateException("WS-Security requires a security handler to be configured");
+      }
+
+      // Validate endpoints
+      for (EndpointMetaData epMetaData : endpoints.values())
+         epMetaData.validate();
+   }
+   
    /**
     * @see UnifiedMetaData#eagerInitialize()
     */
@@ -360,11 +386,57 @@
       // Initialize jaxrpc-mapping data
       getJavaWsdlMapping();
 
-      // init the endpoints
+      // Initialize types
+      TypeMappingImpl typeMapping = getTypeMapping();
+      for (TypeMappingMetaData tmMetaData : types.getTypeMappings())
+      {
+         String javaTypeName = tmMetaData.getJavaTypeName();
+         QName xmlType = tmMetaData.getXmlType();
+         if (xmlType != null)
+         {                       
+            List<Class> registeredTypes = typeMapping.getJavaTypes(xmlType);
+            
+            boolean registered = false;
+            for (Class current : registeredTypes) {
+               if (current.getName().equals(javaTypeName))
+               {
+                  registered = true;
+                  break;
+               }
+            }
+            
+            if (registered == false)
+            {
+               try
+               {
+                  ClassLoader classLoader = wsMetaData.getClassLoader();
+                  Class javaType = JavaUtils.loadJavaType(javaTypeName, classLoader);
+                  
+                  if (JavaUtils.isPrimitive(javaTypeName))
+                     javaType = JavaUtils.getWrapperType(javaType);
+
+                  if (getEncodingStyle() == Use.ENCODED && javaType.isArray())
+                  {
+                     typeMapping.register(javaType, xmlType, new SOAPArraySerializerFactory(), new SOAPArrayDeserializerFactory());
+                  }
+                  else
+                  {
+                     typeMapping.register(javaType, xmlType, new JBossXBSerializerFactory(), new JBossXBDeserializerFactory());
+                  }
+               }
+               catch (ClassNotFoundException e)
+               {
+                  log.warn("Cannot load class for type: " + xmlType + "," + javaTypeName);
+               }
+            }
+         }
+      }
+
+      // Initialize endpoints
       for (EndpointMetaData epMetaData : endpoints.values())
          epMetaData.eagerInitialize();
 
-      // init schema binding
+      // Initialize schema binding
       getSchemaBinding();
    }
 

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/UnifiedMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/UnifiedMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/UnifiedMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -145,6 +145,14 @@
       return jaxrpcMap.get(jaxrpcFile);
    }
 
+   public void validate()
+   {
+      for (ServiceMetaData service : services)
+      {
+         service.validate();
+      }
+   }
+   
    public boolean isEagerInitialized()
    {
       return eagerInitialized;

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/j2ee/UnifiedHandlerMetaData.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/j2ee/UnifiedHandlerMetaData.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/metadata/j2ee/UnifiedHandlerMetaData.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -146,7 +146,7 @@
    {
       HandlerMetaDataJAXRPC hmd = new HandlerMetaDataJAXRPC(epMetaData, type);
       hmd.setHandlerName(getHandlerName());
-      hmd.setHandlerClass(getHandlerClass());
+      hmd.setHandlerClassName(getHandlerClass());
       hmd.seiInitParams(getInitParams());
       hmd.setSoapHeaders(getSoapHeaders());
       hmd.setSoapRoles(getSoapRoles());

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -485,7 +485,7 @@
       if (wsEndpoint != null)
       {
          ServerEndpointMetaData sepMetaData = wsEndpoint.getServiceEndpointInfo().getServerEndpointMetaData();
-         handlers = sepMetaData.getHandlers(HandlerType.ALL);
+         handlers = sepMetaData.getHandlerMetaData(HandlerType.ALL);
       }
       return handlers;
    }

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -245,7 +245,7 @@
          if (! remoteExceptionFound)
             throw new WSException(m.getName() + " does not throw RemoteException.");
 
-         om.validate();
+         om.assertDocumentBare();
          tmd.addOperation(om);
       }
    }

Modified: branches/jbossws-1.0/src/test/ant/build-jars-jaxrpc.xml
===================================================================
--- branches/jbossws-1.0/src/test/ant/build-jars-jaxrpc.xml	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/test/ant/build-jars-jaxrpc.xml	2006-10-10 13:47:37 UTC (rev 1187)
@@ -600,8 +600,9 @@
       <webinf dir="${build.test.dir}/resources/jaxrpc/jbws1121/WEB-INF">
         <include name="webservices.xml"/>
         <include name="jaxrpc-mapping.xml"/>
+        <include name="jboss-wsse-server.xml"/>
+        <include name="jboss-web.xml"/>
         <include name="wsdl/*"/>
-        <include name="jboss-wsse-server.xml"/>
       </webinf>
       <webinf dir="${build.test.dir}/resources/jaxrpc/jbws1121">
         <include name="wsse.keystore"/>
@@ -716,7 +717,7 @@
       </metainf>
     </jar>
     
-    <!-- jbossws-jbws1186 -->
+    <!-- jaxrpcws-jbws1186 -->
     <war warfile="${build.test.dir}/libs/jaxrpc-jbws1186.war" webxml="${build.test.dir}/resources/jaxrpc/jbws1186/WEB-INF/web.xml">
       <classes dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/jbws1186/TestEndpointImpl.class"/>
@@ -730,7 +731,7 @@
       </webinf>    	
     </war>
     
-    <!-- jbossws-jbws1205 -->
+    <!-- jaxrpcws-jbws1205 -->
     <war warfile="${build.test.dir}/libs/jaxrpc-jbws1205-simple.war" webxml="${build.test.dir}/resources/jaxrpc/jbws1205/SimpleEndpoint/WEB-INF/web.xml">
       <classes dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/jbws1205/SimpleEndpointImpl.class"/>
@@ -1382,6 +1383,7 @@
       <webinf dir="${build.test.dir}/resources/jaxrpc/samples/wssecurity/WEB-INF">
         <include name="jaxrpc-mapping.xml"/>
         <include name="webservices.xml"/>
+        <include name="jboss-web.xml"/>
         <include name="wsdl/**"/>
       </webinf>
       <webinf dir="${build.test.dir}/resources/jaxrpc/samples/wssecurity/simple-sign">
@@ -1418,6 +1420,7 @@
       <webinf dir="${build.test.dir}/resources/jaxrpc/samples/wssecurity/WEB-INF">
         <include name="webservices.xml"/>
         <include name="jaxrpc-mapping.xml"/>
+        <include name="jboss-web.xml"/>
         <include name="wsdl/**"/>
       </webinf>
       <webinf dir="${build.test.dir}/resources/jaxrpc/samples/wssecurity/simple-encrypt">
@@ -1559,7 +1562,7 @@
       </webinf>
     </war>
     
-    <!-- jboss-wsse-account-signup-client.jar -->
+    <!-- jaxrpc-wsse-account-signup-client.jar -->
     <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-account-signup-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/signup/AccountInfo.class"/>
@@ -1599,7 +1602,7 @@
       </webinf>
     </war>
     
-    <!-- jboss-wsse-rpc-client.jar -->
+    <!-- jaxrpc-wsse-rpc-client.jar -->
     <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-rpc-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/Hello.class"/>
@@ -1617,8 +1620,8 @@
       </metainf>
     </jar>
     
-    <!-- jboss-wsse-rpc-noconfig-client -->
-    <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-rpc-noconfig-client.jar">
+    <!-- jaxrpc-wsse-rpc-none-client -->
+    <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-rpc-none-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/Hello.class"/>
         <include name="org/jboss/test/ws/jaxrpc/wsse/HelloException.class"/>
@@ -1626,6 +1629,8 @@
       </fileset>
       <metainf dir="${build.test.dir}/resources/jaxrpc/wsse/rpc/META-INF">
         <include name="application-client.xml"/>
+      </metainf>
+      <metainf dir="${build.test.dir}/resources/jaxrpc/wsse/rpc/META-INF-no-wsse">
         <include name="jboss-client.xml"/>
       </metainf>
       <metainf dir="${build.test.dir}/resources/jaxrpc/wsse/rpc/WEB-INF">
@@ -1657,7 +1662,7 @@
       </webinf>
     </war>
     
-    <!-- jboss-wsse-simple-encrypt-client.jar -->
+    <!-- jaxrpc-wsse-simple-encrypt-client.jar -->
     <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-simple-sign-encrypt-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/Hello.class"/>
@@ -1700,7 +1705,7 @@
       </webinf>
     </war>
    
-    <!-- jboss-wsse-sign-fault-client.jar -->
+    <!-- jaxrpc-wsse-sign-fault-client.jar -->
     <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-sign-fault-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/Hello.class"/>
@@ -1743,7 +1748,7 @@
       </webinf>
     </war>
    
-    <!-- jboss-wsse-sign-encrypt-fault-client.jar -->
+    <!-- jaxrpc-wsse-sign-encrypt-fault-client.jar -->
     <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-sign-encrypt-fault-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/Hello.class"/>
@@ -1788,7 +1793,7 @@
       </webinf>
     </war>
     
-    <!-- jboss-wsse-store-pass-encrypt-class-cmd-client.jar -->
+    <!-- jaxrpc-wsse-store-pass-encrypt-class-cmd-client.jar -->
     <jar jarfile="${build.test.dir}/libs/jaxrpc-wsse-store-pass-encrypt-class-cmd-client.jar">
       <fileset dir="${build.test.dir}/classes">
         <include name="org/jboss/test/ws/jaxrpc/wsse/Hello.class"/>

Modified: branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/samples/dynamichandler/DynamicHandlerTestCase.java
===================================================================
--- branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/samples/dynamichandler/DynamicHandlerTestCase.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/samples/dynamichandler/DynamicHandlerTestCase.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -106,7 +106,7 @@
       while (it.hasNext())
       {
          HandlerMetaData handlerMetaData = (HandlerMetaData)it.next();
-         if (handlerMetaData.getHandlerClass().equals(ServerSideHandler.class.getName()))
+         if (handlerMetaData.getHandlerClassName().equals(ServerSideHandler.class.getName()))
             it.remove();
       }
       server.invoke(oname, "stopServiceEndpoint", new Object[]{serviceID}, new String[]{"javax.management.ObjectName"});

Modified: branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/wsse/NotEncodedTestCase.java
===================================================================
--- branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/wsse/NotEncodedTestCase.java	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/test/java/org/jboss/test/ws/jaxrpc/wsse/NotEncodedTestCase.java	2006-10-10 13:47:37 UTC (rev 1187)
@@ -45,7 +45,7 @@
    /** Deploy the test */
    public static Test suite() throws Exception
    {
-      return JBossWSTestSetup.newTestSetup(NotEncodedTestCase.class, "jaxrpc-wsse-rpc.war, jaxrpc-wsse-rpc-noconfig-client.jar");
+      return JBossWSTestSetup.newTestSetup(NotEncodedTestCase.class, "jaxrpc-wsse-rpc.war, jaxrpc-wsse-rpc-none-client.jar");
    }
 
    /**

Copied: branches/jbossws-1.0/src/test/resources/jaxrpc/jbws1121/WEB-INF/jboss-web.xml (from rev 1186, branches/tdiesler/jbossws-1.0/src/test/resources/jaxrpc/jbws1121/WEB-INF/jboss-web.xml)

Copied: branches/jbossws-1.0/src/test/resources/jaxrpc/samples/wssecurity/WEB-INF/jboss-web.xml (from rev 1186, branches/tdiesler/jbossws-1.0/src/test/resources/jaxrpc/samples/wssecurity/WEB-INF/jboss-web.xml)

Copied: branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse (from rev 1186, branches/tdiesler/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse)

Deleted: branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml
===================================================================
--- branches/tdiesler/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml	2006-10-10 12:39:30 UTC (rev 1186)
+++ branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml	2006-10-10 13:47:37 UTC (rev 1187)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' ?>
-
-<!DOCTYPE jboss-client PUBLIC
-   "-//JBoss//DTD Application Client 4.0//EN"
-   "http://www.jboss.org/j2ee/dtd/jboss-client_4_0.dtd">
-
-<jboss-client>
-  <jndi-name>jbossws-client</jndi-name>
-
-  <service-ref>
-    <service-ref-name>service/HelloService</service-ref-name>
-    <wsdl-override>http://@jbosstest.host.name@:8080/jaxrpc-wsse-rpc?wsdl</wsdl-override>
-  </service-ref>
-
-</jboss-client>

Copied: branches/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml (from rev 1186, branches/tdiesler/jbossws-1.0/src/test/resources/jaxrpc/wsse/rpc/META-INF-no-wsse/jboss-client.xml)




More information about the jboss-svn-commits mailing list