-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brian,
Could you please add a few bullet points next time? (just to get a quick flavor of what the checkin is all about). thanks, dims [EMAIL PROTECTED] wrote: | Author: pradine | Date: Sun Feb 17 02:32:45 2008 | New Revision: 628471 | | URL: http://svn.apache.org/viewvc?rev=628471&view=rev | Log: | Various JAX-WS 2.1 related improvements. | | Added: | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Constants.java (with props) | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/ | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java | - copied, changed from r628167, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactoryImpl.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/JAXWSEndpointReferenceFactoryImpl.java | - copied, changed from r628167, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactoryImpl.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/ | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.java (with props) | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMap.java (with props) | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMapManager.java (with props) | Removed: | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactoryImpl.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactoryImpl.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointMap.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointMapManager.java | Modified: | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionEndpointReferenceBuilder.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactory.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactory.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointKey.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtils.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/ClientConfiguratorRegistry.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java | webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java | webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/feature/ServerFramework.java | | Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Constants.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Constants.java?rev=628471&view=auto | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Constants.java (added) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Constants.java Sun Feb 17 02:32:45 2008 | @@ -0,0 +1,28 @@ | +/* | + * 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; | + | +/** | + * Constants that apply to the JAX-WS implementation. | + * | + */ | +public interface Constants { | + public static final String ENDPOINT_CONTEXT_MAP = | + "org.apache.axis2.jaxws.addressing.util.EndpointContextMap"; | +} | | Propchange: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Constants.java | ------------------------------------------------------------------------------ | svn:eol-style = native | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionEndpointReferenceBuilder.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionEndpointReferenceBuilder.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionEndpointReferenceBuilder.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionEndpointReferenceBuilder.java Sun Feb 17 02:32:45 2008 | @@ -28,6 +28,11 @@ | import org.apache.axis2.jaxws.addressing.util.EndpointReferenceUtils; | import org.w3c.dom.Element; | | +/** | + * This class can be used to create instances of [EMAIL PROTECTED] SubmissionEndpointReference}. | + * | + * @see javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder | + */ | public final class SubmissionEndpointReferenceBuilder { | private static final Element[] ZERO_LENGTH_ARRAY = new Element[0]; | | @@ -38,19 +43,45 @@ | private List<Element> referenceParameters; | private QName portType; | | + /** | + * Constructor | + * | + */ | public SubmissionEndpointReferenceBuilder() { | } | | + /** | + * Add the address URI to use. | + * | + * @param address the address URI | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder address(String address) { | this.address = address; | return this; | } | | + /** | + * Add the WSDL service name of the endpoint that the endpoint reference will target. | + * | + * @param serviceName the WSDL service name | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder serviceName(QName serviceName) { | this.serviceName = serviceName; | return this; | } | | + /** | + * Add the WSDL port name of the endpoint that the endpoint reference will target. | + * The WSDL port name can only be set after the WSDL service name has been set. | + * | + * @param endpointName the WSDL port name | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder endpointName(QName endpointName) { | //TODO NLS enable | if (this.serviceName == null) { | @@ -61,11 +92,27 @@ | return this; | } | | + /** | + * Add the URI from where the WSDL for the endpoint that the endpoint reference will | + * target can be retrieved. | + * | + * @param wsdlDocumentLocation the location URI of the WSDL | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder wsdlDocumentLocation(String wsdlDocumentLocation) { | this.wsdlDocumentLocation = wsdlDocumentLocation; | return this; | } | | + /** | + * Add reference properties. These will appear in the endpoint reference as reference | + * parameters. | + * | + * @param referenceProperty the reference property | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder referenceProperty(Element referenceProperty) { | //TODO NLS enable | if (referenceProperty == null) { | @@ -80,6 +127,13 @@ | return this; | } | | + /** | + * Add reference parameters. | + * | + * @param referenceParameter the reference parameter | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder referenceParameter(Element referenceParameter) { | //TODO NLS enable | if (referenceParameter == null) { | @@ -94,11 +148,24 @@ | return this; | } | | + /** | + * Add the name of the WSDL port type. | + * | + * @param portType the WSDL port type name | + * @return an instance of <code>SubmissionEndpointReferenceBuilder</code> that has | + * been updated as specified. | + */ | public SubmissionEndpointReferenceBuilder portType(QName portType) { | this.portType = portType; | return this; | } | | + /** | + * Construct an instance of <code>EndpointReference</code> based on the values | + * specified. | + * | + * @return an instance of <code>SubmissionEndpointReference</code> | + */ | public SubmissionEndpointReference build() { | SubmissionEndpointReference submissionEPR = null; | | @@ -108,8 +175,11 @@ | EndpointReferenceUtils.createAxis2EndpointReference(address, serviceName, endpointName, wsdlDocumentLocation, addressingNamespace); | | try { | - EndpointReferenceUtils.addReferenceParameters(axis2EPR, referenceParameters.toArray(ZERO_LENGTH_ARRAY)); | - EndpointReferenceUtils.addInterface(axis2EPR, portType, InterfaceName.subQName); | + if (referenceParameters != null) | + EndpointReferenceUtils.addReferenceParameters(axis2EPR, referenceParameters.toArray(ZERO_LENGTH_ARRAY)); | + | + if (portType != null) | + EndpointReferenceUtils.addInterface(axis2EPR, portType, InterfaceName.subQName); | | submissionEPR = | (SubmissionEndpointReference) EndpointReferenceUtils.convertFromAxis2(axis2EPR, addressingNamespace); | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactory.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactory.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactory.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactory.java Sun Feb 17 02:32:45 2008 | @@ -4,10 +4,47 @@ | | import org.apache.axis2.addressing.EndpointReference; | | +/** | + * This class represents factories that can be use to create instances of | + * [EMAIL PROTECTED] EndpointReference} that can ultimately be converted into instances | + * of [EMAIL PROTECTED] javax.xml.ws.EndpointReference} that are suitable to be returned | + * via the appropriate JAX-WS 2.1 API methods. | + * | + */ | public interface Axis2EndpointReferenceFactory { | + /** | + * Create an instance of <code>EndpointReference</code> with the specified address. | + * | + * @param address the address URI to use. It cannot be null. | + * @return an instance of <code>EndpointReference</code>. | + */ | public EndpointReference createEndpointReference(String address); | | + /** | + * Create an instance of <code>EndpointReference</code> that targets the endpoint | + * identified by the specified WSDL service name and endpoint name. | + * | + * @param serviceName the WSDL service name | + * @param endpoint the WSDL port name | + * @return an instance of <code>EndpointReference</code> that targets the specified | + * endpoint | + */ | public EndpointReference createEndpointReference(QName serviceName, QName endpoint); | | + /** | + * Create an instance of <code>EndpointReference</code>. If the address is specified | + * then it will be used. If the address is null, but the WSDL service name and port | + * name are specified then they will be used to target the specified endpoint. Either | + * the address URI, or the WSDL service name and port name must be specified. | + * | + * @param address the address URI to use, if specified | + * @param serviceName the WSDL service name, if specified | + * @param portName the WSDL port name, if specified | + * @param wsdlDocumentLocation the URI from where the WSDL for the endpoint can be | + * retrieved, if specified. | + * @param addressingNamespace the intended WS-Addressing namespace that the <code> | + * EndpointRefence</code> should comply with. | + * @return an instance of <code>EndpointReference</code>. | + */ | public EndpointReference createEndpointReference(String address, QName serviceName, QName portName, String wsdlDocumentLocation, String addressingNamespace); | } | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactory.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactory.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactory.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactory.java Sun Feb 17 02:32:45 2008 | @@ -22,8 +22,25 @@ | import javax.xml.transform.Source; | import javax.xml.ws.EndpointReference; | | +/** | + * This class represents factories that can be used to generate instances of the | + * [EMAIL PROTECTED] EndpointReference}. | + */ | public interface JAXWSEndpointReferenceFactory { | + /** | + * Create an instance of a supported subclass of <code>EndpointReference</code>. | + * | + * @param eprInfoset the endpoint reference | + * @return an instance of <code>EndpointReference</code>. | + * @throws JAXBException | + */ | public EndpointReference createEndpointReference(Source eprInfoset) throws JAXBException; | | + /** | + * Map the specified class to a supported WS-Addressing namespace. | + * | + * @param clazz the class. | + * @return the WS-Addressing namespace that is associated with the class. | + */ | public String getAddressingNamespace(Class clazz); | } | | Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java (from r628167, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactoryImpl.java) | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java?p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactoryImpl.java&r1=628167&r2=628471&rev=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/Axis2EndpointReferenceFactoryImpl.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java Sun Feb 17 02:32:45 2008 | @@ -16,7 +16,7 @@ | * specific language governing permissions and limitations | * under the License. | */ | -package org.apache.axis2.jaxws.addressing.factory; | +package org.apache.axis2.jaxws.addressing.factory.impl; | | import java.net.URL; | | @@ -27,32 +27,49 @@ | import org.apache.axis2.addressing.metadata.ServiceName; | import org.apache.axis2.addressing.metadata.WSDLLocation; | import org.apache.axis2.jaxws.ExceptionFactory; | +import org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactory; | import org.apache.axis2.jaxws.addressing.util.EndpointKey; | -import org.apache.axis2.jaxws.addressing.util.EndpointMap; | -import org.apache.axis2.jaxws.addressing.util.EndpointMapManager; | +import org.apache.axis2.jaxws.addressing.util.EndpointContextMap; | +import org.apache.axis2.jaxws.addressing.util.EndpointContextMapManager; | import org.apache.axis2.jaxws.util.WSDL4JWrapper; | import org.apache.axis2.jaxws.util.WSDLWrapper; | | +/** | + * This class produces instances of [EMAIL PROTECTED] EndpointReference}. | + * | + */ | public class Axis2EndpointReferenceFactoryImpl implements Axis2EndpointReferenceFactory { | public Axis2EndpointReferenceFactoryImpl() { | super(); | } | | + /* | + * (non-Javadoc) | + * @see org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactory#createEndpointReference(java.lang.String) | + */ | public EndpointReference createEndpointReference(String address) { | if (address == null) | throw new IllegalStateException("The endpoint address URI is null."); | | return new EndpointReference(address); | } | - | + | + /* | + * (non-Javadoc) | + * @see org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactory#createEndpointReference(javax.xml.namespace.QName, javax.xml.namespace.QName) | + */ | public EndpointReference createEndpointReference(QName serviceName, QName endpoint) { | EndpointKey key = new EndpointKey(serviceName, endpoint); | - EndpointMap map = EndpointMapManager.getEndpointMap(); | - String address = map.get(key); | + EndpointContextMap map = EndpointContextMapManager.getEndpointContextMap(); | + String address = (String) map.get(key); | | return createEndpointReference(address); | } | - | + | + /* | + * (non-Javadoc) | + * @see org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactory#createEndpointReference(java.lang.String, javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.String, java.lang.String) | + */ | public EndpointReference createEndpointReference(String address, QName serviceName, QName portName, String wsdlDocumentLocation, String addressingNamespace) { | EndpointReference axis2EPR = null; | | @@ -71,10 +88,13 @@ | throw new IllegalStateException("Cannot create an endpoint reference because the address, service name, and/or port name are null."); | } | | + //TODO If no service name and port name are specified, but the wsdl location is | + //specified, and the WSDL only contains one service and one port then maybe we | + //should simply use those. | try { | - //TODO If no service name and port name are specified, but the wsdl location is | - //specified, and the WSDL only contains one service and one port then maybe we | - //should simply use those. | + //This code is locate here instead of in the createEndpointReference(QName, QName) | + //method so that if the address is also specified the EPR metadata will still be | + //filled in correctly. | if (serviceName != null && portName != null) { | ServiceName service = new ServiceName(serviceName, portName.getLocalPart()); | EndpointReferenceHelper.setServiceNameMetadata(axis2EPR, addressingNamespace, service); | @@ -103,7 +123,7 @@ | } | } | | - //TODO NLS | + //TODO NLS enable | if (!found) | throw new IllegalStateException("The specified port name does not exist in the specified WSDL service."); | } | | Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/JAXWSEndpointReferenceFactoryImpl.java (from r628167, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactoryImpl.java) | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/JAXWSEndpointReferenceFactoryImpl.java?p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/JAXWSEndpointReferenceFactoryImpl.java&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactoryImpl.java&r1=628167&r2=628471&rev=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/JAXWSEndpointReferenceFactoryImpl.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/JAXWSEndpointReferenceFactoryImpl.java Sun Feb 17 02:32:45 2008 | @@ -16,7 +16,7 @@ | * specific language governing permissions and limitations | * under the License. | */ | -package org.apache.axis2.jaxws.addressing.factory; | +package org.apache.axis2.jaxws.addressing.factory.impl; | | import javax.xml.bind.JAXBContext; | import javax.xml.bind.JAXBException; | @@ -30,10 +30,21 @@ | import org.apache.axis2.addressing.AddressingConstants.Submission; | import org.apache.axis2.jaxws.ExceptionFactory; | import org.apache.axis2.jaxws.addressing.SubmissionEndpointReference; | +import org.apache.axis2.jaxws.addressing.factory.JAXWSEndpointReferenceFactory; | | +/** | + * This class is used to generate instances of the following subclasses of | + * [EMAIL PROTECTED] EndpointReference}. | + * | + * @see javax.xml.ws.wsaddressing.W3CEndpointReference | + * @see org.apache.axis2.jaxws.addressing.SubmissionEndpointReference | + */ | public class JAXWSEndpointReferenceFactoryImpl implements JAXWSEndpointReferenceFactory { | private JAXBContext jaxbContext; | | + /** | + * Constructor | + */ | public JAXWSEndpointReferenceFactoryImpl() { | super(); | | @@ -47,12 +58,19 @@ | } | } | | + /* | + * (non-Javadoc) | + * @see org.apache.axis2.jaxws.addressing.factory.JAXWSEndpointReferenceFactory#createEndpointReference(javax.xml.transform.Source) | + */ | public EndpointReference createEndpointReference(Source eprInfoset) throws JAXBException { | Unmarshaller um = jaxbContext.createUnmarshaller(); | - | return (EndpointReference) um.unmarshal(eprInfoset); | } | | + /* | + * (non-Javadoc) | + * @see org.apache.axis2.jaxws.addressing.factory.JAXWSEndpointReferenceFactory#getAddressingNamespace(java.lang.Class) | + */ | public String getAddressingNamespace(Class clazz) { | String addressingNamespace = null; | | | Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.java?rev=628471&view=auto | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.java (added) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.java Sun Feb 17 02:32:45 2008 | @@ -0,0 +1,118 @@ | +/* | + * 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.addressing.migrator; | + | +import org.apache.axis2.AxisFault; | +import org.apache.axis2.context.MessageContext; | +import org.apache.axis2.description.AxisOperation; | +import org.apache.axis2.description.Parameter; | +import org.apache.axis2.engine.AxisConfiguration; | +import org.apache.axis2.jaxws.Constants; | +import org.apache.axis2.jaxws.ExceptionFactory; | +import org.apache.axis2.jaxws.addressing.util.EndpointContextMap; | +import org.apache.axis2.jaxws.addressing.util.EndpointContextMapManager; | +import org.apache.axis2.util.ThreadContextMigrator; | +import org.apache.axis2.util.Utils; | +import org.apache.axis2.wsdl.WSDLConstants; | + | +/** | + * This class will enable the JAX-WS 2.1 API methods to create instances of | + * [EMAIL PROTECTED] javax.xml.ws.EndpointReference} that target a particular web service | + * endpoint, identified by specifying the WSDL service name and port name of the | + * endpoint, to work correctly. This is achieved by enabling the implementation of | + * [EMAIL PROTECTED] org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactory} | + * to retrieve the context it needs from the invoking thread. The instances of | + * [EMAIL PROTECTED] org.apache.axis2.addressing.EndpointReference} that it produces can | + * then converted to instances of [EMAIL PROTECTED] javax.xml.ws.EndpointReference}, as | + * needed. | + * | + */ | +public class EndpointContextMapMigrator implements ThreadContextMigrator { | + | + /* (non-Javadoc) | + * @see org.apache.axis2.util.ThreadContextMigrator#migrateContextToThread(org.apache.axis2.context.MessageContext) | + */ | + public void migrateContextToThread(MessageContext messageContext) | + throws AxisFault { | + //Only make the context map available if we have an inbound request | + //message, in the server. | + AxisOperation axisOperation = messageContext.getAxisOperation(); | + String mep = axisOperation.getMessageExchangePattern(); | + int mepConstant = Utils.getAxisSpecifMEPConstant(mep); | + | + if (mepConstant == WSDLConstants.MEP_CONSTANT_IN_ONLY || | + mepConstant == WSDLConstants.MEP_CONSTANT_IN_OUT || | + mepConstant == WSDLConstants.MEP_CONSTANT_IN_OPTIONAL_OUT || | + mepConstant == WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY) | + { | + AxisConfiguration axisConfig = axisOperation.getAxisConfiguration(); | + Parameter param = axisConfig.getParameter(Constants.ENDPOINT_CONTEXT_MAP); | + | + if (param != null) { | + EndpointContextMap map = (EndpointContextMap) param.getValue(); | + | + if (map != null) { | + EndpointContextMapManager.setEndpointContextMap(map); | + } | + else { | + //TODO NLS enable. | + throw ExceptionFactory.makeWebServiceException("The endpoint context map is null."); | + } | + } | + else { | + //TODO NLS enable. | + throw ExceptionFactory.makeWebServiceException("Unable to locate endpoint context map."); | + } | + } | + } | + | + /* (non-Javadoc) | + * @see org.apache.axis2.util.ThreadContextMigrator#cleanupThread(org.apache.axis2.context.MessageContext) | + */ | + public void cleanupThread(MessageContext messageContext) { | + //Only clean up if we are inbound to the server. | + AxisOperation axisOperation = messageContext.getAxisOperation(); | + String mep = axisOperation.getMessageExchangePattern(); | + int mepConstant = Utils.getAxisSpecifMEPConstant(mep); | + | + if (mepConstant == WSDLConstants.MEP_CONSTANT_IN_ONLY || | + mepConstant == WSDLConstants.MEP_CONSTANT_IN_OUT || | + mepConstant == WSDLConstants.MEP_CONSTANT_IN_OPTIONAL_OUT || | + mepConstant == WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY) | + { | + EndpointContextMapManager.setEndpointContextMap(null); | + } | + } | + | + /* (non-Javadoc) | + * @see org.apache.axis2.util.ThreadContextMigrator#migrateThreadToContext(org.apache.axis2.context.MessageContext) | + */ | + public void migrateThreadToContext(MessageContext messageContext) | + throws AxisFault { | + //Nothing to do. | + } | + | + /* (non-Javadoc) | + * @see org.apache.axis2.util.ThreadContextMigrator#cleanupContext(org.apache.axis2.context.MessageContext) | + */ | + public void cleanupContext(MessageContext messageContext) { | + //Nothing to do. | + } | + | +} | | Propchange: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/migrator/EndpointContextMapMigrator.java | ------------------------------------------------------------------------------ | svn:eol-style = native | | Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMap.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMap.java?rev=628471&view=auto | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMap.java (added) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMap.java Sun Feb 17 02:32:45 2008 | @@ -0,0 +1,38 @@ | +/* | + * 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.addressing.util; | + | +import java.util.concurrent.ConcurrentHashMap; | + | +import org.apache.axis2.jaxws.addressing.util.EndpointKey; | + | +/** | + * This class stores the context needed to correctly produce instances of | + * [EMAIL PROTECTED] javax.xml.ws.EndpointReference} for a particular web service endpoint | + * identified by an [EMAIL PROTECTED] EndpointKey}. | + * | + */ | +public class EndpointContextMap extends ConcurrentHashMap<EndpointKey, Object> { | + | + private static final long serialVersionUID = 694539734825500599L; | + | + public EndpointContextMap() { | + super(); | + } | +} | | Propchange: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMap.java | ------------------------------------------------------------------------------ | svn:eol-style = native | | Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMapManager.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMapManager.java?rev=628471&view=auto | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMapManager.java (added) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMapManager.java Sun Feb 17 02:32:45 2008 | @@ -0,0 +1,50 @@ | +/* | + * 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.addressing.util; | + | +/** | + * This class is used to manage the association between an [EMAIL PROTECTED] EndpointContextMap} | + * and a thread. | + */ | +public class EndpointContextMapManager { | + private static ThreadLocal<EndpointContextMap> variable = | + new InheritableThreadLocal<EndpointContextMap>(); | + | + public static EndpointContextMap setEndpointContextMap(EndpointContextMap newMap) { | + EndpointContextMap oldMap = variable.get(); | + variable.set(newMap); | + | + return oldMap; | + } | + | + public static EndpointContextMap getEndpointContextMap() { | + EndpointContextMap currentMap = variable.get(); | + | + if (currentMap == null) { | + currentMap = getDefaultEndpointMap(); | + setEndpointContextMap(currentMap); | + } | + | + return currentMap; | + } | + | + private static EndpointContextMap getDefaultEndpointMap() { | + return new EndpointContextMap(); | + } | +} | | Propchange: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointContextMapManager.java | ------------------------------------------------------------------------------ | svn:eol-style = native | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointKey.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointKey.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointKey.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointKey.java Sun Feb 17 02:32:45 2008 | @@ -20,6 +20,11 @@ | | import javax.xml.namespace.QName; | | +/** | + * This class is used to identify a particular web service endpoint based on | + * the combination of WSDL service name and port name. | + * | + */ | public class EndpointKey { | private final QName service; | private final QName endpoint; | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtils.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtils.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtils.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtils.java Sun Feb 17 02:32:45 2008 | @@ -41,10 +41,6 @@ | public final class EndpointReferenceUtils { | | private static OMFactory omFactory = OMAbstractFactory.getOMFactory(); | - private static JAXWSEndpointReferenceFactory jaxwsEPRFactory = | - (JAXWSEndpointReferenceFactory) FactoryRegistry.getFactory(JAXWSEndpointReferenceFactory.class); | - private static Axis2EndpointReferenceFactory axis2EPRFactory = | - (Axis2EndpointReferenceFactory) FactoryRegistry.getFactory(Axis2EndpointReferenceFactory.class); | | private EndpointReferenceUtils() { | } | @@ -66,8 +62,10 @@ | EndpointReferenceHelper.toOM(omFactory, axis2EPR, qname, addressingNamespace); | Element eprElement = XMLUtils.toDOM(omElement); | Source eprInfoset = new DOMSource(eprElement); | + JAXWSEndpointReferenceFactory factory = (JAXWSEndpointReferenceFactory) | + FactoryRegistry.getFactory(JAXWSEndpointReferenceFactory.class); | | - return jaxwsEPRFactory.createEndpointReference(eprInfoset); | + return factory.createEndpointReference(eprInfoset); | } | | /** | @@ -82,7 +80,10 @@ | */ | public static javax.xml.ws.EndpointReference convertFromSource(Source eprInfoset) | throws Exception { | - return jaxwsEPRFactory.createEndpointReference(eprInfoset); | + JAXWSEndpointReferenceFactory factory = (JAXWSEndpointReferenceFactory) | + FactoryRegistry.getFactory(JAXWSEndpointReferenceFactory.class); | + | + return factory.createEndpointReference(eprInfoset); | } | | /** | @@ -105,15 +106,24 @@ | } | | public static String getAddressingNamespace(Class clazz) { | - return jaxwsEPRFactory.getAddressingNamespace(clazz); | + JAXWSEndpointReferenceFactory factory = (JAXWSEndpointReferenceFactory) | + FactoryRegistry.getFactory(JAXWSEndpointReferenceFactory.class); | + | + return factory.getAddressingNamespace(clazz); | } | | public static EndpointReference createAxis2EndpointReference(String address, QName serviceName, QName portName, String wsdlDocumentLocation, String addressingNamespace) { | - return axis2EPRFactory.createEndpointReference(address, serviceName, portName, wsdlDocumentLocation, addressingNamespace); | + Axis2EndpointReferenceFactory factory = (Axis2EndpointReferenceFactory) | + FactoryRegistry.getFactory(Axis2EndpointReferenceFactory.class); | + | + return factory.createEndpointReference(address, serviceName, portName, wsdlDocumentLocation, addressingNamespace); | } | | public static EndpointReference createAxis2EndpointReference(String address) { | - return axis2EPRFactory.createEndpointReference(address); | + Axis2EndpointReferenceFactory factory = (Axis2EndpointReferenceFactory) | + FactoryRegistry.getFactory(Axis2EndpointReferenceFactory.class); | + | + return factory.createEndpointReference(address); | } | | public static void addReferenceParameters(EndpointReference axis2EPR, Element...referenceParameters) | @@ -140,8 +150,7 @@ | throws Exception { | if (portType != null) { | InterfaceName interfaceName = new InterfaceName(portType); | - OMFactory factory = OMAbstractFactory.getOMFactory(); | - OMElement omElement = interfaceName.toOM(interfaceType, factory); | + OMElement omElement = interfaceName.toOM(interfaceType, omFactory); | axis2EPR.addExtensibleElement(omElement); | } | } | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/ClientConfiguratorRegistry.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/ClientConfiguratorRegistry.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/ClientConfiguratorRegistry.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/ClientConfiguratorRegistry.java Sun Feb 17 02:32:45 2008 | @@ -18,9 +18,9 @@ | */ | package org.apache.axis2.jaxws.registry; | | -import java.util.HashMap; | import java.util.Map; | import java.util.Set; | +import java.util.concurrent.ConcurrentHashMap; | | import javax.xml.ws.RespectBindingFeature; | import javax.xml.ws.soap.AddressingFeature; | @@ -34,7 +34,7 @@ | | public class ClientConfiguratorRegistry { | private static Map<String, ClientConfigurator> map = | - new HashMap<String, ClientConfigurator>(); | + new ConcurrentHashMap<String, ClientConfigurator>(); | | static { | map.put(AddressingFeature.ID, new AddressingConfigurator()); | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java Sun Feb 17 02:32:45 2008 | @@ -20,9 +20,9 @@ | package org.apache.axis2.jaxws.registry; | | import org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactory; | -import org.apache.axis2.jaxws.addressing.factory.Axis2EndpointReferenceFactoryImpl; | import org.apache.axis2.jaxws.addressing.factory.JAXWSEndpointReferenceFactory; | -import org.apache.axis2.jaxws.addressing.factory.JAXWSEndpointReferenceFactoryImpl; | +import org.apache.axis2.jaxws.addressing.factory.impl.Axis2EndpointReferenceFactoryImpl; | +import org.apache.axis2.jaxws.addressing.factory.impl.JAXWSEndpointReferenceFactoryImpl; | import org.apache.axis2.jaxws.core.controller.InvocationControllerFactory; | import org.apache.axis2.jaxws.core.controller.impl.InvocationControllerFactoryImpl; | import org.apache.axis2.jaxws.handler.factory.HandlerInvokerFactory; | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java Sun Feb 17 02:32:45 2008 | @@ -26,8 +26,8 @@ | import org.apache.axis2.java.security.AccessController; | import org.apache.axis2.jaxws.ExceptionFactory; | import org.apache.axis2.jaxws.addressing.util.EndpointKey; | -import org.apache.axis2.jaxws.addressing.util.EndpointMap; | -import org.apache.axis2.jaxws.addressing.util.EndpointMapManager; | +import org.apache.axis2.jaxws.addressing.util.EndpointContextMap; | +import org.apache.axis2.jaxws.addressing.util.EndpointContextMapManager; | import org.apache.axis2.jaxws.core.MessageContext; | import org.apache.axis2.jaxws.core.util.MessageContextUtils; | import org.apache.axis2.jaxws.description.DescriptionFactory; | @@ -405,10 +405,10 @@ | Parameter param = axisSvc.getParameter(EndpointDescription.AXIS_SERVICE_PARAMETER); | | EndpointDescription ed = (EndpointDescription)param.getValue(); | - param = axisSvc.getParameter(EndpointMap.class.getCanonicalName()); | + param = axisSvc.getParameter(EndpointContextMap.class.getCanonicalName()); | if(param != null) { | - EndpointMap map = (EndpointMap) param.getValue(); | - EndpointMapManager.setEndpointMap(map); | + EndpointContextMap map = (EndpointContextMap) param.getValue(); | + EndpointContextMapManager.setEndpointContextMap(map); | } | | return ed; | @@ -436,16 +436,16 @@ | QName endpoint = ed.getPortQName(); | EndpointKey key = new EndpointKey(service, endpoint); | axisSvc = ed.getAxisService(); | - Parameter param = axisSvc.getParameter(EndpointMap.class.getCanonicalName()); | - EndpointMap map = null; | + Parameter param = axisSvc.getParameter(EndpointContextMap.class.getCanonicalName()); | + EndpointContextMap map = null; | | if (param == null) { | - map = EndpointMapManager.getEndpointMap(); | - axisSvc.addParameter(EndpointMap.class.getCanonicalName(), map); | + map = EndpointContextMapManager.getEndpointContextMap(); | + axisSvc.addParameter(EndpointContextMap.class.getCanonicalName(), map); | } | else { | - map = (EndpointMap) param.getValue(); | - EndpointMapManager.setEndpointMap(map); | + map = (EndpointContextMap) param.getValue(); | + EndpointContextMapManager.setEndpointContextMap(map); | } | | map.put(key, axisSvc.getEPRs()[0]); | | Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java (original) | +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java Sun Feb 17 02:32:45 2008 | @@ -74,8 +74,11 @@ | W3CEndpointReference w3cEPR = null; | | try { | - EndpointReferenceUtils.addMetadata(axis2EPR, metadata.toArray(ZERO_LENGTH_ARRAY)); | - EndpointReferenceUtils.addReferenceParameters(axis2EPR, referenceParameters.toArray(ZERO_LENGTH_ARRAY)); | + if (metadata != null) | + EndpointReferenceUtils.addMetadata(axis2EPR, metadata.toArray(ZERO_LENGTH_ARRAY)); | + | + if (referenceParameters != null) | + EndpointReferenceUtils.addReferenceParameters(axis2EPR, referenceParameters.toArray(ZERO_LENGTH_ARRAY)); | | w3cEPR = | (W3CEndpointReference) EndpointReferenceUtils.convertFromAxis2(axis2EPR, addressingNamespace); | | Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/feature/ServerFramework.java | URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/feature/ServerFramework.java?rev=628471&r1=628470&r2=628471&view=diff | ============================================================================== | --- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/feature/ServerFramework.java (original) | +++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/feature/ServerFramework.java Sun Feb 17 02:32:45 2008 | @@ -25,7 +25,6 @@ | | import java.lang.annotation.Annotation; | import java.util.HashMap; | -import java.util.IdentityHashMap; | import java.util.Map; | | public class ServerFramework { | @@ -48,8 +47,7 @@ | if (annotation == null) | return false; | | - WebServiceFeatureAnnotation wsfAnnotation = | - annotation.annotationType().getAnnotation(WebServiceFeatureAnnotation.class); | + WebServiceFeatureAnnotation wsfAnnotation = getWebServiceFeatureAnnotation(annotation); | | String id = null; | if (wsfAnnotation != null) | @@ -63,8 +61,7 @@ | if (!isValid(annotation)) | throw ExceptionFactory.makeWebServiceException("Invalid or unsupported WebServiceFeature annotation, " + annotation); | | - WebServiceFeatureAnnotation wsfAnnotation = | - annotation.annotationType().getAnnotation(WebServiceFeatureAnnotation.class); | + WebServiceFeatureAnnotation wsfAnnotation = getWebServiceFeatureAnnotation(annotation); | | annotationMap.put(wsfAnnotation.id(), annotation); | } | @@ -79,11 +76,13 @@ | | public void configure(EndpointDescription endpointDescription) { | for (Annotation annotation : getAllAnnotations()) { | - WebServiceFeatureAnnotation wsfAnnotation = | - annotation.annotationType().getAnnotation(WebServiceFeatureAnnotation.class); | - | + WebServiceFeatureAnnotation wsfAnnotation = getWebServiceFeatureAnnotation(annotation); | ServerConfigurator configurator = configuratorMap.get(wsfAnnotation.id()); | configurator.configure(endpointDescription); | } | + } | + | + private WebServiceFeatureAnnotation getWebServiceFeatureAnnotation(Annotation annotation) { | + return annotation.annotationType().getAnnotation(WebServiceFeatureAnnotation.class); | } | } | | | | --------------------------------------------------------------------- | To unsubscribe, e-mail: [EMAIL PROTECTED] | For additional commands, e-mail: [EMAIL PROTECTED] | -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Cygwin) iD4DBQFHuEVIgNg6eWEDv1kRAvawAKCr+EAcb8/oAJphCNXYXYAFbv6EoQCYo9ZQ PHxd22BtrHJQ3cVm+V86mw== =gcVU -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
