[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