You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ba...@apache.org on 2008/04/20 22:07:38 UTC
svn commit: r649965 - in /webservices/axis2/trunk/java/modules:
jaxws/src/org/apache/axis2/jaxws/handler/
jaxws/test/org/apache/axis2/jaxws/handler/
metadata/src/org/apache/axis2/jaxws/description/
metadata/src/org/apache/axis2/jaxws/description/impl/
Author: barrettj
Date: Sun Apr 20 13:07:34 2008
New Revision: 649965
URL: http://svn.apache.org/viewvc?rev=649965&view=rev
Log:
Refactor caching of resolved handler classes and add caching of resolved handler roles. Add associated tests.
Added:
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ResolvedHandlersDescription.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ResolvedHandlersDescriptionImpl.java
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/handler/RoleBasedMustUndertandTests.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java?rev=649965&r1=649964&r2=649965&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerResolverImpl.java Sun Apr 20 13:07:34 2008
@@ -21,8 +21,11 @@
import org.apache.axis2.jaxws.ExceptionFactory;
import org.apache.axis2.jaxws.core.MessageContext;
+import org.apache.axis2.jaxws.description.DescriptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
+import org.apache.axis2.jaxws.description.ResolvedHandlersDescription;
import org.apache.axis2.jaxws.description.ServiceDescription;
+import org.apache.axis2.jaxws.description.impl.ResolvedHandlersDescriptionImpl;
import org.apache.axis2.jaxws.description.xml.handler.HandlerChainType;
import org.apache.axis2.jaxws.description.xml.handler.HandlerChainsType;
import org.apache.axis2.jaxws.description.xml.handler.HandlerType;
@@ -75,21 +78,80 @@
this.serviceDesc = sd;
this.serviceDelegateKey = serviceDelegateKey;
}
-
- public List<Handler> getHandlerChain(PortInfo portinfo) {
- List<Class> handlerClasses = null;
- // Look into the cache only if the service delegate key is null.
+
+ private ResolvedHandlersDescription getResolvedHandlersDescription(PortInfo portInfo) {
+ ResolvedHandlersDescription resolvedHandlersDesc = null;
+ // On the client the handler information can be changed via service-delegate-specific
+ // deployment information. So, only look into the service-side cache only if the
+ // service delegate key is null.
if (serviceDelegateKey == null) {
- handlerClasses = serviceDesc.getHandlerChainClasses(portinfo);
+ resolvedHandlersDesc = serviceDesc.getResolvedHandlersDescription(portInfo);
}
- if (handlerClasses == null) {
- // resolve handlers if we did not find them in the cache
- handlerClasses = resolveHandlers(portinfo);
- // Store the list of classes
- if (serviceDelegateKey == null) {
- serviceDesc.setHandlerChainClasses(portinfo, handlerClasses);
+ return resolvedHandlersDesc;
+ }
+ private ResolvedHandlersDescription getOrCreateResolvedHandlersDescription(PortInfo portInfo) {
+ ResolvedHandlersDescription resolvedHandlersDesc = null;
+ // On the client the handler information can be changed via service-delegate-specific
+ // deployment information. So, only look into the service-side cache only if the
+ // service delegate key is null.
+ if (serviceDelegateKey == null) {
+ resolvedHandlersDesc = serviceDesc.getResolvedHandlersDescription(portInfo);
+ if (resolvedHandlersDesc == null) {
+ resolvedHandlersDesc = DescriptionFactory.createResolvedHandlersDescription();
}
}
+ return resolvedHandlersDesc;
+ }
+ private List<Class> geCachedResolvedHandlersClasses(PortInfo portInfo) {
+ List<Class> cachedHandlerClasses = null;
+ ResolvedHandlersDescription resolvedHandlersDesc = getResolvedHandlersDescription(portInfo);
+ if (resolvedHandlersDesc != null) {
+ cachedHandlerClasses = resolvedHandlersDesc.getHandlerClasses();
+ }
+ return cachedHandlerClasses;
+ }
+
+ private void cacheResolvedHandlersInfo(PortInfo portInfo,
+ List<Class> handlerClasses,
+ List<String> roles) {
+ ResolvedHandlersDescription resolvedHandlersDesc = getOrCreateResolvedHandlersDescription(portInfo);
+ if (resolvedHandlersDesc != null) {
+ resolvedHandlersDesc.setHandlerClasses(handlerClasses);
+ resolvedHandlersDesc.setRoles(roles);
+ serviceDesc.setResolvedHandlersDescription(portInfo, resolvedHandlersDesc);
+ }
+ }
+
+ private List<Class> getHandlerClasses(PortInfo portInfo) {
+ List<Class> handlerClasses = geCachedResolvedHandlersClasses(portInfo);
+ if (handlerClasses == null) {
+ List<String> resolveRoles = new ArrayList<String>();
+ handlerClasses = resolveHandlers(portInfo, resolveRoles);
+ cacheResolvedHandlersInfo(portInfo, handlerClasses, resolveRoles);
+ }
+ return handlerClasses;
+ }
+ private List<String> getHandlerRoles(PortInfo portInfo) {
+ List<String> resolveRoles = getCachedResolvedHandlersRoles(portInfo);
+ if (resolveRoles == null) {
+ resolveRoles = new ArrayList<String>();
+ List<Class> resolveClasses = resolveHandlers(portInfo, resolveRoles);
+ cacheResolvedHandlersInfo(portInfo, resolveClasses, resolveRoles);
+ }
+ return resolveRoles;
+ }
+ private List<String> getCachedResolvedHandlersRoles(PortInfo portInfo) {
+ List<String> cachedHandlerRoles = null;
+ ResolvedHandlersDescription resolvedHandlersDesc = getResolvedHandlersDescription(portInfo);
+ if (resolvedHandlersDesc != null) {
+ cachedHandlerRoles = resolvedHandlersDesc.getRoles();
+ }
+ return cachedHandlerRoles;
+ }
+
+ public List<Handler> getHandlerChain(PortInfo portInfo) {
+ List<Class> handlerClasses = getHandlerClasses(portInfo);
+
if (handlerClasses.size() == 0) {
return new ArrayList<Handler>();
}
@@ -97,7 +159,7 @@
ArrayList<Handler> handlers = new ArrayList<Handler>();
// Create temporary MessageContext to pass information to HandlerLifecycleManager
MessageContext ctx = new MessageContext();
- ctx.setEndpointDescription(serviceDesc.getEndpointDescription(portinfo.getPortName()));
+ ctx.setEndpointDescription(serviceDesc.getEndpointDescription(portInfo.getPortName()));
HandlerLifecycleManager hlm = createHandlerlifecycleManager();
@@ -119,8 +181,7 @@
}
public List<String> getRoles(PortInfo portInfo) {
- List<String> handlerRoles = new ArrayList();
- resolveHandlers(portInfo, handlerRoles);
+ List<String> handlerRoles = getHandlerRoles(portInfo);
return handlerRoles;
}
/*
@@ -132,12 +193,21 @@
* running the annotated PostConstruct method, resolving the list,
* and returning it. We do not sort here.
*/
- private ArrayList<Class> resolveHandlers(PortInfo portinfo) throws WebServiceException {
- return resolveHandlers(portinfo, null);
- }
+ /**
+ * Resolve the handlers and roles for the given port. This will process the handler configuration
+ * information, which can be specified either in a file on a HandlerChain annotaiton or via a
+ * deployment descriptor. The handler classes and the SOAP roles played will be resolved and
+ * returned.
+ *
+ * @param portinfo Information describing the port for which the handlers and roles are to be
+ * resolved
+ * @param handlerRoles OUTPUT PARAMETER! The List that is passed in will be updated with the
+ * roles relevant to the specfied port.
+ * @return List of handler classes relevant to the specified port.
+ * @throws WebServiceException
+ */
private ArrayList<Class> resolveHandlers(PortInfo portinfo, List<String> handlerRoles) throws WebServiceException {
/*
-
A sample XML file for the handler-chains:
<jws:handler-chains xmlns:jws="http://java.sun.com/xml/ns/javaee">
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/handler/RoleBasedMustUndertandTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/handler/RoleBasedMustUndertandTests.java?rev=649965&r1=649964&r2=649965&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/handler/RoleBasedMustUndertandTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/handler/RoleBasedMustUndertandTests.java Sun Apr 20 13:07:34 2008
@@ -84,6 +84,48 @@
}
/**
+ * Validate that handler information can be cached on the ServiceDescritpion on the server side.
+ */
+ public void testCachingOnServer() {
+ ServiceDescription serviceDesc = DescriptionFactory.createServiceDescription(RoleBasedMUServiceImpl.class);
+ HandlerResolverImpl handlerResolver1 = new HandlerResolverImpl(serviceDesc);
+ HandlerResolverImpl handlerResolver2 = new HandlerResolverImpl(serviceDesc);
+
+ EndpointDescription epDesc = serviceDesc.getEndpointDescriptions()[0];
+ PortInfo portInfo = epDesc.getPortInfo();
+
+ List<String> roles1 = handlerResolver1.getRoles(portInfo);
+ List<String> roles2 = handlerResolver2.getRoles(portInfo);
+ assertNotNull(roles1);
+ assertNotNull(roles2);
+ assertTrue(roles1 == roles2);
+ }
+
+
+ /**
+ * Validate that handler information can NOT be cached on the client. That is because the client
+ * can specify handler information per instance of a service delegate. Those service
+ * delegates could share a ServiceDescription, but since each service delegate could specify
+ * unique handler information, we can't use common handler information stored on the
+ * ServiceDescription
+ */
+ public void testCachingOnClient() {
+ ServiceDescription serviceDesc = DescriptionFactory.createServiceDescription(RoleBasedMUServiceImpl.class);
+ HandlerResolverImpl handlerResolver1 = new HandlerResolverImpl(serviceDesc, "sd1");
+ HandlerResolverImpl handlerResolver2 = new HandlerResolverImpl(serviceDesc, "sd2");
+
+ EndpointDescription epDesc = serviceDesc.getEndpointDescriptions()[0];
+ PortInfo portInfo = epDesc.getPortInfo();
+
+ List<String> roles1 = handlerResolver1.getRoles(portInfo);
+ List<String> roles2 = handlerResolver2.getRoles(portInfo);
+ assertNotNull(roles1);
+ assertNotNull(roles2);
+ assertTrue(roles1 != roles2);
+
+ }
+
+ /**
* The JAXWS Spec, section 10, says roles can be set on the SOAP binding. Verify that a
* mustUnderstand header which is not processed for a role added by the SOAPBinding causes
* a Not Understood fault
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java?rev=649965&r1=649964&r2=649965&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java Sun Apr 20 13:07:34 2008
@@ -376,4 +376,13 @@
public static ClientConfigurationFactory createClientConfigurationFactory() {
return DescriptionFactoryImpl.getClientConfigurationFactory();
}
+
+ /**
+ * Create a ResolvedHandlersDescription object, which describes attributes of handlers
+ * that have been resolved for a give port. This includes the handler classes and the roles.
+ * @return A new instance of a ResolfedHandlersDescription object.
+ */
+ public static ResolvedHandlersDescription createResolvedHandlersDescription() {
+ return DescriptionFactoryImpl.createResolvedHandlersDescription();
+ }
}
Added: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ResolvedHandlersDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ResolvedHandlersDescription.java?rev=649965&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ResolvedHandlersDescription.java (added)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ResolvedHandlersDescription.java Sun Apr 20 13:07:34 2008
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.jaxws.description;
+
+import java.util.List;
+
+/**
+ * Information related to handlers which have been resolved to a particluar port.
+ * This information consists of:
+ * - The handler implementation classes
+ * - The list of SOAP roles (aka SOAP Actors)
+ *
+ * This information is cached on the service descrpiption so the handlers don't
+ * have to be resolved for other HandlerResolvers requesting handlers for the
+ * same port.
+ */
+public interface ResolvedHandlersDescription {
+ public void setHandlerClasses(List<Class> handlerClasses);
+ public List<Class> getHandlerClasses();
+
+ public void setRoles(List<String> role);
+ public List<String> getRoles();
+}
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java?rev=649965&r1=649964&r2=649965&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java Sun Apr 20 13:07:34 2008
@@ -148,7 +148,28 @@
public JAXWSCatalogManager getCatalogManager();
- public List<Class> getHandlerChainClasses(PortInfo portinfo);
+ /**
+ * Answer information for resolved handlers for the given port. This information is set
+ * when the handler resolver initially resolves the handlers based on the handler
+ * configuration information. It is cached on the service description for performance
+ * so that subsequent queries by other handler resolvers for the same port do not have to
+ * re-resolve the information from the handler configuration information.
+ *
+ * @param portInfo Port for which the handler information is desired
+ * @return An object containing information for the resolved handlers, or null if no
+ * information is found in the cache.
+ */
+ public ResolvedHandlersDescription getResolvedHandlersDescription(PortInfo portInfo);
- public void setHandlerChainClasses(PortInfo portinfo, List<Class> handlerClasses);
+ /**
+ * Cache information for handlers which have been resolved for this port. This information is set
+ * when the handler resolver initially resolves the handlers based on the handler
+ * configuration information. It is cached on the service description for performance
+ * so that subsequent queries by other handler resolvers for the same port do not have to
+ * re-resolve the information from the handler configuration information.
+ *
+ * @param portInfo Port for which the handler information should be cached
+ * @param resolvedHandlersInfo An object containing information for the resolved handlers
+ */
+ public void setResolvedHandlersDescription(PortInfo portInfo, ResolvedHandlersDescription resolvedHandlersInfo);
}
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java?rev=649965&r1=649964&r2=649965&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java Sun Apr 20 13:07:34 2008
@@ -33,6 +33,7 @@
import org.apache.axis2.jaxws.description.DescriptionFactory;
import org.apache.axis2.jaxws.description.DescriptionKey;
import org.apache.axis2.jaxws.description.EndpointDescription;
+import org.apache.axis2.jaxws.description.ResolvedHandlersDescription;
import org.apache.axis2.jaxws.description.ServiceDescription;
import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
import org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter;
@@ -446,6 +447,10 @@
endpointDesc.setProperty(key, value);
}
}
+ }
+
+ public static ResolvedHandlersDescription createResolvedHandlersDescription() {
+ return new ResolvedHandlersDescriptionImpl();
}
}
Added: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ResolvedHandlersDescriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ResolvedHandlersDescriptionImpl.java?rev=649965&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ResolvedHandlersDescriptionImpl.java (added)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ResolvedHandlersDescriptionImpl.java Sun Apr 20 13:07:34 2008
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.jaxws.description.impl;
+
+import org.apache.axis2.jaxws.description.ResolvedHandlersDescription;
+
+import java.util.List;
+/**
+ * Implementation of the ResolvedHandlersDescription interface
+ */
+public class ResolvedHandlersDescriptionImpl implements ResolvedHandlersDescription {
+ private List<Class> handlerClasses;
+ private List<String> roles;
+
+ /* (non-Javadoc)
+ * @see org.apache.axis2.jaxws.description.ResolvedHandlersDescription#addHandlerClass(java.lang.Class)
+ */
+ public void setHandlerClasses(List<Class> handlerClasses) {
+ this.handlerClasses = handlerClasses;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.axis2.jaxws.description.ResolvedHandlersDescription#addRole(java.lang.String)
+ */
+ public void setRoles(List<String> roles) {
+ this.roles = roles;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.axis2.jaxws.description.ResolvedHandlersDescription#getHandlerClasses()
+ */
+ public List<Class> getHandlerClasses() {
+ return this.handlerClasses;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.axis2.jaxws.description.ResolvedHandlersDescription#getRoles()
+ */
+ public List<String> getRoles() {
+ return this.roles;
+ }
+
+}
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java?rev=649965&r1=649964&r2=649965&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java Sun Apr 20 13:07:34 2008
@@ -30,6 +30,7 @@
import org.apache.axis2.jaxws.description.DescriptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
import org.apache.axis2.jaxws.description.EndpointInterfaceDescription;
+import org.apache.axis2.jaxws.description.ResolvedHandlersDescription;
import org.apache.axis2.jaxws.description.ServiceDescription;
import org.apache.axis2.jaxws.description.ServiceDescriptionJava;
import org.apache.axis2.jaxws.description.ServiceDescriptionWSDL;
@@ -103,9 +104,9 @@
private Map<Object, Map<QName, EndpointDescriptionImpl>> dynamicEndpointDescriptions =
new WeakHashMap<Object, Map<QName, EndpointDescriptionImpl>>();
- // Cache classes for the handler chain
- Map<PortInfo, List<Class>> handlerClassesMap =
- new WeakHashMap<PortInfo, List<Class>>();
+ // Cache classes for the info for resolved handlers
+ Map<PortInfo, ResolvedHandlersDescription> resolvedHandlersDescription =
+ new WeakHashMap<PortInfo, ResolvedHandlersDescription>();
private static final Log log = LogFactory.getLog(ServiceDescriptionImpl.class);
@@ -2175,12 +2176,13 @@
return cl;
}
- public List<Class> getHandlerChainClasses(PortInfo portinfo) {
- return handlerClassesMap.get(portinfo);
+ public void setResolvedHandlersDescription(PortInfo portInfo, ResolvedHandlersDescription resolvedHandlersInfo) {
+ resolvedHandlersDescription.put(portInfo, resolvedHandlersInfo);
+
}
- public void setHandlerChainClasses(PortInfo portinfo, List<Class> handlerClasses) {
- handlerClassesMap.put(portinfo, handlerClasses);
+ public ResolvedHandlersDescription getResolvedHandlersDescription(PortInfo portInfo) {
+ return resolvedHandlersDescription.get(portInfo);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org