JBossWS SVN: r12930 - stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client.
by jbossws-commits@lists.jboss.org
Author: richard.opalka(a)jboss.com
Date: 2010-09-08 05:58:59 -0400 (Wed, 08 Sep 2010)
New Revision: 12930
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/NativeServiceRefBinderJAXWS.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ServiceObjectFactoryJAXWS.java
Log:
[JBWS-3122] implementing @WebServiceRef with @Addressing feature
Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/NativeServiceRefBinderJAXWS.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/NativeServiceRefBinderJAXWS.java 2010-09-08 09:56:23 UTC (rev 12929)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/NativeServiceRefBinderJAXWS.java 2010-09-08 09:58:59 UTC (rev 12930)
@@ -39,6 +39,8 @@
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceRef;
import javax.xml.ws.WebServiceRefs;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.soap.AddressingFeature;
import org.jboss.logging.Logger;
import org.jboss.util.naming.Util;
@@ -66,11 +68,15 @@
// Build the list of @WebServiceRef relevant annotations
List<WebServiceRef> wsrefList = new ArrayList<WebServiceRef>();
+ Addressing addressing = null;
if (anElement != null)
{
for (Annotation an : anElement.getAnnotations())
{
+ if (an instanceof Addressing)
+ addressing = (Addressing)an;
+
if (an instanceof WebServiceRef)
wsrefList.add((WebServiceRef)an);
@@ -82,6 +88,22 @@
}
}
}
+
+ if (addressing != null)
+ {
+ if (addressing.enabled())
+ serviceRef.setAddressingEnabled();
+
+ if (addressing.required())
+ serviceRef.setAddressingRequired();
+
+ if (addressing.responses() == AddressingFeature.Responses.ANONYMOUS)
+ serviceRef.setAddressingResponses("ANONYMOUS");
+ else if (addressing.responses() == AddressingFeature.Responses.NON_ANONYMOUS)
+ serviceRef.setAddressingResponses("NON_ANONYMOUS");
+ else
+ serviceRef.setAddressingResponses("ALL");
+ }
// Use the single @WebServiceRef
if (wsrefList.size() == 1)
Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ServiceObjectFactoryJAXWS.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ServiceObjectFactoryJAXWS.java 2010-09-08 09:56:23 UTC (rev 12929)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ServiceObjectFactoryJAXWS.java 2010-09-08 09:58:59 UTC (rev 12930)
@@ -30,6 +30,9 @@
import javax.naming.*;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.soap.AddressingFeature;
+
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -112,6 +115,20 @@
// Receives either a javax.xml.ws.Service or a dynamic proxy
Object target;
+
+ // configure addressing
+ AddressingFeature addressingFeature = null;
+ if (serviceRef.isAddressingEnabled()) {
+ final boolean enabled = serviceRef.isAddressingEnabled();
+ final boolean required = serviceRef.isAddressingRequired();
+ final String refResponses = serviceRef.getAddressingResponses();
+ AddressingFeature.Responses responses = AddressingFeature.Responses.ALL;
+ if ("ANONYMOUS".equals(refResponses))
+ responses = AddressingFeature.Responses.ANONYMOUS;
+ if ("NON_ANONYMOUS".equals(refResponses))
+ responses = AddressingFeature.Responses.NON_ANONYMOUS;
+ addressingFeature = new AddressingFeature(enabled, required, responses);
+ }
// Get the URL to the wsdl
URL wsdlURL = serviceRef.getWsdlLocation();
@@ -125,7 +142,11 @@
{
if (wsdlURL != null)
{
- target = Service.create(wsdlURL, serviceQName);
+ if (addressingFeature != null) {
+ target = Service.create(wsdlURL, serviceQName, new WebServiceFeature[] { addressingFeature });
+ } else {
+ target = Service.create(wsdlURL, serviceQName);
+ }
}
else
{
@@ -137,12 +158,22 @@
{
if (wsdlURL != null)
{
- Constructor ctor = serviceClass.getConstructor(new Class[] { URL.class, QName.class });
- target = ctor.newInstance(new Object[] { wsdlURL, serviceQName });
+ if (addressingFeature != null) {
+ Constructor ctor = serviceClass.getConstructor(new Class[] { URL.class, QName.class, WebServiceFeature[].class });
+ target = ctor.newInstance(new Object[] { wsdlURL, serviceQName, new WebServiceFeature[] { addressingFeature } });
+ } else {
+ Constructor ctor = serviceClass.getConstructor(new Class[] { URL.class, QName.class });
+ target = ctor.newInstance(new Object[] { wsdlURL, serviceQName });
+ }
}
else
{
- target = (Service)serviceClass.newInstance();
+ if (addressingFeature != null) {
+ Constructor ctor = serviceClass.getConstructor(new Class[] { WebServiceFeature[].class });
+ target = ctor.newInstance(new Object[] { new WebServiceFeature[] { addressingFeature } });
+ } else {
+ target = (Service)serviceClass.newInstance();
+ }
}
}
}
13 years, 9 months
JBossWS SVN: r12929 - in stack/native/trunk/modules: core/src/main/java/org/jboss/ws/core/jaxws/spi and 1 other directories.
by jbossws-commits@lists.jboss.org
Author: darran.lofthouse(a)jboss.com
Date: 2010-09-08 05:56:23 -0400 (Wed, 08 Sep 2010)
New Revision: 12929
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ClientProxy.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ResponseImpl.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/spi/ServiceDelegateImpl.java
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/JBWS3071TestCase.java
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/StringHandler.java
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/TestEndpointImpl.java
Log:
[JBWS-3071] JAX-WS Asynchronous Exception handling.
Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ClientProxy.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ClientProxy.java 2010-09-08 09:55:39 UTC (rev 12928)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ClientProxy.java 2010-09-08 09:56:23 UTC (rev 12929)
@@ -275,15 +275,15 @@
log.debug("Finished task " + getTaskID().toString() + ": " + result);
response.set(result);
-
- // Call the handler if available
- if (handler != null)
- handler.handleResponse(response);
}
catch (Exception ex)
{
handleAsynInvokeException(ex);
}
+
+ // Call the handler if available
+ if (handler != null)
+ handler.handleResponse(response);
}
// 2.3.4.5 Conformance (Asychronous fault cause): An ExecutionException that is thrown by the get method
Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ResponseImpl.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ResponseImpl.java 2010-09-08 09:55:39 UTC (rev 12928)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/ResponseImpl.java 2010-09-08 09:56:23 UTC (rev 12929)
@@ -45,7 +45,6 @@
private Exception exception;
private Map<String, Object> context = new HashMap<String, Object>();
-
public void setException(Exception ex)
{
this.exception = ex;
@@ -67,16 +66,16 @@
throw new WebServiceException(exception);
}
}
-
+
return delegate;
}
-
+
private Future getFutureInternal()
{
if (delegate == null)
- throw new IllegalStateException("Future not available");
-
- return delegate;
+ throw new IllegalStateException("Future not available");
+
+ return delegate;
}
public void setFuture(Future delegate)
@@ -93,7 +92,7 @@
{
this.result = result;
}
-
+
public boolean cancel(boolean mayInterruptIfRunning)
{
return getFutureInternal().cancel(mayInterruptIfRunning);
@@ -101,24 +100,34 @@
public Object get() throws InterruptedException, ExecutionException
{
- if (result == null)
+ Object response = getResult();
+ if (response != null)
{
- getFutureInternal().get();
+ return response;
}
-
- if (exception != null)
- throw new ExecutionException(exception);
- return result;
+ getFutureInternal().get();
+ response = getResult();
+
+ return response;
}
public Object get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
{
- if (result == null)
+ Object response = getResult();
+ if (response != null)
{
- getFutureInternal().get(timeout, unit);
+ return response;
}
+ getFutureInternal().get(timeout, unit);
+ response = getResult();
+
+ return response;
+ }
+
+ private Object getResult() throws ExecutionException
+ {
if (exception != null)
throw new ExecutionException(exception);
Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/spi/ServiceDelegateImpl.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/spi/ServiceDelegateImpl.java 2010-09-08 09:55:39 UTC (rev 12928)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/spi/ServiceDelegateImpl.java 2010-09-08 09:56:23 UTC (rev 12929)
@@ -101,8 +101,11 @@
// provide logging
private static final Logger log = Logger.getLogger(ServiceDelegateImpl.class);
+ // Lock to ensure only one thread can initialise the defaultExecutor.
+ private static final Object DEFAULT_EXECUTOR_LOCK = new Object();
// The executor service
- private static ExecutorService defaultExecutor = Executors.newCachedThreadPool();
+ private static ExecutorService defaultExecutor = null;
+
// The service meta data that is associated with this JAXWS Service
private ServiceMetaData serviceMetaData;
// The ServiceRefMetaData supplied by the ServiceObjectFactory
@@ -340,12 +343,32 @@
this.handlerResolver = handlerResolver;
}
+ private ExecutorService getDefaultExecutor()
+ {
+ if (defaultExecutor == null)
+ {
+ synchronized (DEFAULT_EXECUTOR_LOCK)
+ {
+ if (defaultExecutor == null)
+ {
+ defaultExecutor = Executors.newCachedThreadPool();
+ if (log.isTraceEnabled())
+ {
+ log.trace("Created new defaultExecutor", new Throwable("Call Trace"));
+ }
+ }
+ }
+ }
+
+ return defaultExecutor;
+ }
+
@Override
public Executor getExecutor()
{
if (executor == null)
{
- executor = defaultExecutor;
+ executor = getDefaultExecutor();
}
return executor;
}
Modified: stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/JBWS3071TestCase.java
===================================================================
--- stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/JBWS3071TestCase.java 2010-09-08 09:55:39 UTC (rev 12928)
+++ stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/JBWS3071TestCase.java 2010-09-08 09:56:23 UTC (rev 12929)
@@ -130,4 +130,26 @@
}
}
+ public void testEchoFailAsyncFuture_isDone() throws Exception
+ {
+ StringHandler handler = new StringHandler();
+
+ Future future = port.echoAsync("FAIL SLEEP", handler);
+ while (future.isDone() == false)
+ {
+ Thread.sleep(200);
+ }
+
+ try
+ {
+ handler.getResponse().get();
+ fail("Expected 'ExecutionException' not thrown.");
+ }
+ catch (ExecutionException ee)
+ {
+ Exception cause = (Exception)ee.getCause();
+ assertEquals("Cause Type", TestException.class, cause.getClass());
+ }
+ }
+
}
Modified: stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/StringHandler.java
===================================================================
--- stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/StringHandler.java 2010-09-08 09:55:39 UTC (rev 12928)
+++ stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/StringHandler.java 2010-09-08 09:56:23 UTC (rev 12929)
@@ -21,6 +21,10 @@
*/
package org.jboss.test.ws.jaxws.jbws3071;
+import java.util.concurrent.ExecutionException;
+
+import org.jboss.logging.Logger;
+
import javax.xml.ws.AsyncHandler;
import javax.xml.ws.Response;
@@ -30,12 +34,27 @@
*/
public class StringHandler implements AsyncHandler<String>
{
+ private static final Logger log = Logger.getLogger(StringHandler.class);
private Response<String> response;
@Override
public void handleResponse(Response<String> res)
{
+ try
+ {
+ Object response = res.get();
+ log.debug("Obtained Response - " + response.toString());
+ }
+ catch (InterruptedException e)
+ {
+ log.debug("Caught InterruptedException", e);
+ }
+ catch (ExecutionException e)
+ {
+ log.debug("Caught ExecutionException", e);
+
+ }
this.response = res;
}
Modified: stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/TestEndpointImpl.java
===================================================================
--- stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/TestEndpointImpl.java 2010-09-08 09:55:39 UTC (rev 12928)
+++ stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws3071/TestEndpointImpl.java 2010-09-08 09:56:23 UTC (rev 12929)
@@ -34,8 +34,20 @@
public String echo(String message) throws TestException
{
- if ("FAIL".equals(message))
+ if (message.contains("SLEEP"))
{
+ try
+ {
+ Thread.sleep(5000);
+ }
+ catch (InterruptedException e)
+ {
+ throw new RuntimeException("Unable to sleep", e);
+ }
+ }
+
+ if (message.contains("FAIL"))
+ {
throw new TestException(message);
}
13 years, 9 months
JBossWS SVN: r12928 - spi/trunk/src/main/java/org/jboss/wsf/spi/metadata/j2ee/serviceref.
by jbossws-commits@lists.jboss.org
Author: richard.opalka(a)jboss.com
Date: 2010-09-08 05:55:39 -0400 (Wed, 08 Sep 2010)
New Revision: 12928
Modified:
spi/trunk/src/main/java/org/jboss/wsf/spi/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java
Log:
[JBWS-3122] updating SPI to include new feature
Modified: spi/trunk/src/main/java/org/jboss/wsf/spi/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java
===================================================================
--- spi/trunk/src/main/java/org/jboss/wsf/spi/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java 2010-09-08 08:42:58 UTC (rev 12927)
+++ spi/trunk/src/main/java/org/jboss/wsf/spi/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java 2010-09-08 09:55:39 UTC (rev 12928)
@@ -58,7 +58,7 @@
*/
public class UnifiedServiceRefMetaData extends ServiceRefMetaData
{
- private static final long serialVersionUID = -926464174132493952L;
+ private static final long serialVersionUID = -926464174132493954L;
// provide logging
private static Logger log = Logger.getLogger(UnifiedServiceRefMetaData.class);
@@ -100,6 +100,10 @@
private String handlerChain;
// Arbitrary proxy properties given by <call-property>
private List<UnifiedCallPropertyMetaData> callProperties = new ArrayList<UnifiedCallPropertyMetaData>();
+ // @Addressing annotation metadata
+ private boolean addressingEnabled;
+ private boolean addressingRequired;
+ private String addressingResponses = "ALL";
// The JAXWS annotated element. JDK1.4 does not have java.lang.reflect.AnnotatedElement so we use an untyped Object
private transient Object anElement;
@@ -117,7 +121,35 @@
public UnifiedServiceRefMetaData()
{
}
+
+ public void setAddressingEnabled() {
+ this.addressingEnabled = true;
+ }
+
+ public boolean isAddressingEnabled() {
+ return this.addressingEnabled;
+ }
+ public void setAddressingRequired() {
+ this.addressingRequired = true;
+ }
+
+ public boolean isAddressingRequired() {
+ return this.addressingRequired;
+ }
+
+ public void setAddressingResponses(final String responsesTypes)
+ {
+ if (!"ANONYMOUS".equals(responsesTypes) && !"NON_ANONYMOUS".equals(responsesTypes) && !"ALL".equals(responsesTypes))
+ throw new IllegalArgumentException("Only ALL, ANONYMOUS or NON_ANONYMOUS strings allowed");
+
+ this.addressingResponses = responsesTypes;
+ }
+
+ public String getAddressingResponses() {
+ return this.addressingResponses;
+ }
+
public void merge(ServiceRefMetaData sref)
{
UnifiedServiceRefMetaData sourceRef = (UnifiedServiceRefMetaData)sref;
13 years, 9 months
JBossWS SVN: r12927 - container/jboss60/branches/jbossws-jboss600M4/src/main/resources/jbossws-jboss.deployer/META-INF.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2010-09-08 04:42:58 -0400 (Wed, 08 Sep 2010)
New Revision: 12927
Modified:
container/jboss60/branches/jbossws-jboss600M4/src/main/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
Log:
[JBWS-3121] Fixing race condition in getting the endpoint list - DA creating WebMetadata also needs to depend on the EndpointAddressDA
Modified: container/jboss60/branches/jbossws-jboss600M4/src/main/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
===================================================================
--- container/jboss60/branches/jbossws-jboss600M4/src/main/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml 2010-09-07 17:14:43 UTC (rev 12926)
+++ container/jboss60/branches/jbossws-jboss600M4/src/main/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml 2010-09-08 08:42:58 UTC (rev 12927)
@@ -135,7 +135,7 @@
</bean>
<bean name="WSWebMetaDataCreatingDeploymentAspect" class="org.jboss.webservices.integration.tomcat.WebMetaDataCreatingDeploymentAspect">
- <property name="requires">VirtualHosts,URLPattern</property>
+ <property name="requires">VirtualHosts,URLPattern,EndpointAddress</property>
<property name="provides">WebMetaData</property>
</bean>
13 years, 9 months
JBossWS SVN: r12926 - framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/jbws2942.
by jbossws-commits@lists.jboss.org
Author: sergeyb
Date: 2010-09-07 13:14:43 -0400 (Tue, 07 Sep 2010)
New Revision: 12926
Modified:
framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/jbws2942/JBWS2942TestCase.java
Log:
[JBWS2942] : Adding a test involving W3CEndpointReferenceBuilder
Modified: framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/jbws2942/JBWS2942TestCase.java
===================================================================
--- framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/jbws2942/JBWS2942TestCase.java 2010-09-07 16:27:29 UTC (rev 12925)
+++ framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/jbws2942/JBWS2942TestCase.java 2010-09-07 17:14:43 UTC (rev 12926)
@@ -22,9 +22,13 @@
package org.jboss.test.ws.jaxws.jbws2942;
import java.io.StringReader;
+import java.io.StringWriter;
+import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import javax.xml.ws.EndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
import org.jboss.wsf.common.DOMUtils;
import org.jboss.wsf.test.JBossWSTest;
@@ -50,6 +54,20 @@
assertTrue("Empty <Metadata/> serialized", epRef.toString().indexOf("<Metadata") == -1);
}
+
+ public void testEmptyMetadataDropped()
+ {
+ W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+ builder.address("http://bar");
+ W3CEndpointReference epr = builder.build();
+ StringWriter writer = new StringWriter();
+ epr.writeTo(new StreamResult(writer));
+ String eprString = writer.toString();
+ assertTrue(eprString.contains("EndpointReference"));
+ assertTrue(eprString.contains("Address"));
+ assertFalse(eprString.contains("Metadata"));
+ }
+
private String getXML(final String s) throws Exception
{
return DOMUtils.node2String(DOMUtils.parse(s));
13 years, 9 months
JBossWS SVN: r12925 - framework/trunk/testsuite/test/resources/jaxws/jbws3031/WEB-INF/wsdl.
by jbossws-commits@lists.jboss.org
Author: sergeyb
Date: 2010-09-07 12:27:29 -0400 (Tue, 07 Sep 2010)
New Revision: 12925
Modified:
framework/trunk/testsuite/test/resources/jaxws/jbws3031/WEB-INF/wsdl/WSAW2JDLActionTest.wsdl
Log:
[JBWS-3031] Turning a WS-Policy assertion into a required one
Modified: framework/trunk/testsuite/test/resources/jaxws/jbws3031/WEB-INF/wsdl/WSAW2JDLActionTest.wsdl
===================================================================
--- framework/trunk/testsuite/test/resources/jaxws/jbws3031/WEB-INF/wsdl/WSAW2JDLActionTest.wsdl 2010-09-07 16:08:15 UTC (rev 12924)
+++ framework/trunk/testsuite/test/resources/jaxws/jbws3031/WEB-INF/wsdl/WSAW2JDLActionTest.wsdl 2010-09-07 16:27:29 UTC (rev 12925)
@@ -164,7 +164,7 @@
<binding name="AddNumbersBinding" type="tns:AddNumbersPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsp:Policy>
- <wsam:Addressing wsp:Optional="true">
+ <wsam:Addressing wsp:Optional="false">
<wsp:Policy/>
</wsam:Addressing>
</wsp:Policy>
13 years, 9 months
JBossWS SVN: r12924 - stack/metro/trunk/modules/server/src/main/resources.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2010-09-07 12:08:15 -0400 (Tue, 07 Sep 2010)
New Revision: 12924
Modified:
stack/metro/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml
Log:
[JBWS-3121] Unified Model (native - jaxrpc) needs to be created after the endpoint addresses have been set
Modified: stack/metro/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml
===================================================================
--- stack/metro/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml 2010-09-07 16:06:15 UTC (rev 12923)
+++ stack/metro/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml 2010-09-07 16:08:15 UTC (rev 12924)
@@ -40,7 +40,7 @@
</bean>
<bean name="WSNativeUnifiedMetaDataDeploymentAspect" class="org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect">
- <property name="requires">ContainerMetaData, URLPattern, VFSRoot, JAXBIntros</property>
+ <property name="requires">ContainerMetaData, URLPattern, EndpointAddress, VFSRoot, JAXBIntros</property>
<property name="provides">UnifiedMetaDataModel</property>
<property name="forJaxWs">false</property>
</bean>
13 years, 9 months
JBossWS SVN: r12923 - stack/cxf/trunk/modules/server/src/main/resources.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2010-09-07 12:06:15 -0400 (Tue, 07 Sep 2010)
New Revision: 12923
Modified:
stack/cxf/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml
Log:
[JBWS-3121] Unified Model (native - jaxrpc) needs to be created after the endpoint addresses have been set
Modified: stack/cxf/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml
===================================================================
--- stack/cxf/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml 2010-09-07 16:04:33 UTC (rev 12922)
+++ stack/cxf/trunk/modules/server/src/main/resources/jbossws-jaxrpc-config-as6.xml 2010-09-07 16:06:15 UTC (rev 12923)
@@ -40,7 +40,7 @@
</bean>
<bean name="WSNativeUnifiedMetaDataDeploymentAspect" class="org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect">
- <property name="requires">ContainerMetaData, URLPattern, VFSRoot, JAXBIntros</property>
+ <property name="requires">ContainerMetaData, URLPattern, EndpointAddress, VFSRoot, JAXBIntros</property>
<property name="provides">UnifiedMetaDataModel</property>
<property name="forJaxWs">false</property>
</bean>
13 years, 9 months
JBossWS SVN: r12922 - in stack/native/trunk/modules/core/src/main: resources and 1 other directory.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2010-09-07 12:04:33 -0400 (Tue, 07 Sep 2010)
New Revision: 12922
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilderEJB3.java
stack/native/trunk/modules/core/src/main/resources/jbossws-native-config-as6.xml
Log:
[JBWS-3121] Prevent JAXWSMetadataBuilderEJB3 from using EJB3.1 beans not linked to ws endpoint and make sure the Unified Model is build only after the endpoints' addresses have been computed
Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilderEJB3.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilderEJB3.java 2010-09-07 16:00:38 UTC (rev 12921)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilderEJB3.java 2010-09-07 16:04:33 UTC (rev 12922)
@@ -30,6 +30,8 @@
import org.jboss.ws.WSException;
import org.jboss.ws.metadata.umdm.UnifiedMetaData;
import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
@@ -71,9 +73,10 @@
EJBMetaData beanMetaData = it.next();
String ejbClassName = beanMetaData.getEjbClass();
Class<?> beanClass = wsMetaData.getClassLoader().loadClass(ejbClassName);
- if (beanClass.isAnnotationPresent(WebService.class) || beanClass.isAnnotationPresent(WebServiceProvider.class))
+ Service service = dep.getService();
+ String ejbLink = beanMetaData.getEjbName();
+ if (service.getEndpointByName(ejbLink) != null && (beanClass.isAnnotationPresent(WebService.class) || beanClass.isAnnotationPresent(WebServiceProvider.class)))
{
- String ejbLink = beanMetaData.getEjbName();
JAXWSServerMetaDataBuilder.setupProviderOrWebService(dep, wsMetaData, beanClass, ejbLink);
/* Resolve dependency on @SecurityDomain
Modified: stack/native/trunk/modules/core/src/main/resources/jbossws-native-config-as6.xml
===================================================================
--- stack/native/trunk/modules/core/src/main/resources/jbossws-native-config-as6.xml 2010-09-07 16:00:38 UTC (rev 12921)
+++ stack/native/trunk/modules/core/src/main/resources/jbossws-native-config-as6.xml 2010-09-07 16:04:33 UTC (rev 12922)
@@ -73,7 +73,7 @@
</bean>
<bean name="WSNativeUnifiedMetaDataDeploymentAspect" class="org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect">
- <property name="requires">ContainerMetaData, URLPattern, VFSRoot, JAXBIntros</property>
+ <property name="requires">ContainerMetaData, URLPattern, EndpointAddress, VFSRoot, JAXBIntros</property>
<property name="provides">UnifiedMetaDataModel</property>
</bean>
13 years, 9 months
JBossWS SVN: r12921 - framework/trunk/src/main/java/org/jboss/wsf/framework/deployment.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2010-09-07 12:00:38 -0400 (Tue, 07 Sep 2010)
New Revision: 12921
Modified:
framework/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointAddressDeploymentAspect.java
Log:
[JBWS-3121] Remove endpoints with duplicated addresses
Modified: framework/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointAddressDeploymentAspect.java
===================================================================
--- framework/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointAddressDeploymentAspect.java 2010-09-07 15:55:54 UTC (rev 12920)
+++ framework/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointAddressDeploymentAspect.java 2010-09-07 16:00:38 UTC (rev 12921)
@@ -21,6 +21,8 @@
*/
package org.jboss.wsf.framework.deployment;
+import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -72,6 +74,8 @@
port = serverConfig.getWebServicePort();
securePort = serverConfig.getWebServiceSecurePort();
}
+ Map<String, Endpoint> endpointsMap = new HashMap<String, Endpoint>();
+ List<Endpoint> deleteList = new LinkedList<Endpoint>();
for (Endpoint ep : dep.getService().getEndpoints())
{
boolean confidential = isConfidentialTransportGuarantee(dep, ep);
@@ -87,8 +91,25 @@
urlPattern = urlPattern.substring(0, urlPattern.length() - 2);
protocol = confidential ? "https://" : "http://";
- httpEp.setAddress(protocol + hostAndPort + contextRoot + urlPattern);
+ String address = protocol + hostAndPort + contextRoot + urlPattern;
+ httpEp.setAddress(address);
+ //JBWS-2957: EJB3 binds the same endpoint class to multiple beans at multiple JNDI locations;
+ //generally speaking we can't have multiple endpoints published at the same address and we
+ //can't ensure that completely in AS integration, since the publish address is final just here
+ if (!endpointsMap.containsKey(address))
+ {
+ endpointsMap.put(address, httpEp);
+ }
+ else
+ {
+ deleteList.add(httpEp);
+ }
}
+ //Remove endpoints with duplicated address
+ for (Endpoint ep : deleteList)
+ {
+ dep.getService().getEndpoints().remove(ep);
+ }
}
protected boolean isConfidentialTransportGuarantee(Deployment dep, Endpoint ep)
13 years, 9 months