You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2014/07/24 19:40:54 UTC

[2/3] git commit: Move some of the jaxws22 functionality up into the base classes. Deprecate the 2.2 specific versions

Move some of the jaxws22 functionality up into the base classes.  Deprecate the 2.2 specific versions


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/b4536602
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/b4536602
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/b4536602

Branch: refs/heads/master
Commit: b4536602d376a36bcbd02d21d5ab42f19d4e5b22
Parents: 6e4f0f6
Author: Daniel Kulp <dk...@apache.org>
Authored: Thu Jul 24 13:19:37 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Jul 24 13:19:37 2014 -0400

----------------------------------------------------------------------
 .../java/org/apache/cxf/jaxws/EndpointImpl.java | 18 ++++++
 .../apache/cxf/jaxws/JAXWSMethodInvoker.java    | 16 ++++++
 .../org/apache/cxf/jaxws/spi/ProviderImpl.java  | 33 +++++++++++
 .../jaxws/spring/EndpointDefinitionParser.java  | 18 +-----
 .../org/apache/cxf/jaxws22/EndpointImpl.java    | 25 +--------
 .../org/apache/cxf/jaxws22/JAXWS22Invoker.java  | 15 +----
 .../apache/cxf/jaxws22/spi/ProviderImpl.java    | 58 ++------------------
 .../spring/JAXWS22SpringEndpointImpl.java       | 56 -------------------
 .../META-INF/services/javax.xml.ws.spi.Provider |  2 +-
 9 files changed, 80 insertions(+), 161 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
index ca220be..9807cae 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
@@ -35,6 +35,7 @@ import javax.wsdl.Definition;
 import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
 import javax.xml.ws.Binding;
+import javax.xml.ws.EndpointContext;
 import javax.xml.ws.EndpointReference;
 import javax.xml.ws.WebServiceException;
 import javax.xml.ws.WebServiceFeature;
@@ -61,6 +62,7 @@ import org.apache.cxf.databinding.DataBinding;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerImpl;
 import org.apache.cxf.feature.Feature;
+import org.apache.cxf.frontend.ServerFactoryBean;
 import org.apache.cxf.frontend.WSDLGetUtils;
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.interceptor.Interceptor;
@@ -72,6 +74,7 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.invoker.Invoker;
 import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.transport.http_jaxws_spi.JAXWSHttpSpiTransportFactory;
 import org.apache.cxf.wsdl.WSDLManager;
 import org.apache.cxf.wsdl11.WSDLServiceBuilder;
 
@@ -122,6 +125,7 @@ public class EndpointImpl extends javax.xml.ws.Endpoint
         = new ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>();
     @SuppressWarnings("rawtypes")
     private List<Handler> handlers = new ModCountCopyOnWriteArrayList<Handler>();
+    private EndpointContext endpointContext;
     
     /**
      * Flag indicating internal state of this instance.  If true,
@@ -838,5 +842,19 @@ public class EndpointImpl extends javax.xml.ws.Endpoint
                 .getName()).toString());
         }
     }
+    
+    public void setEndpointContext(EndpointContext ctxt) {
+        endpointContext = ctxt;
+    }
+    public EndpointContext getEndpointContext() {
+        return endpointContext;
+    }
+    public void publish(javax.xml.ws.spi.http.HttpContext context) {
+        ServerFactoryBean sf = getServerFactory();
+        if (sf.getDestinationFactory() == null) {
+            sf.setDestinationFactory(new JAXWSHttpSpiTransportFactory(context));
+        }
+        publish(context.getPath());
+    }    
 
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JAXWSMethodInvoker.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JAXWSMethodInvoker.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JAXWSMethodInvoker.java
index 4a7cddf..8c56fbc 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JAXWSMethodInvoker.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JAXWSMethodInvoker.java
@@ -42,6 +42,9 @@ public class JAXWSMethodInvoker extends AbstractJAXWSMethodInvoker {
 
     public static final String COPY_SOAP_HEADERS_BY_FAULT = "org.apache.cxf.fault.copySoapHeaders";
 
+    javax.xml.ws.spi.Invoker invoker;
+
+    
     public JAXWSMethodInvoker(final Object bean) {
         super(new SingletonFactory(bean));
     }
@@ -49,8 +52,21 @@ public class JAXWSMethodInvoker extends AbstractJAXWSMethodInvoker {
     public JAXWSMethodInvoker(Factory factory) {
         super(factory);
     }
+    public JAXWSMethodInvoker(javax.xml.ws.spi.Invoker i) {
+        super(null);
+        invoker = i;
+    }
      
     @Override
+    protected Object performInvocation(Exchange exchange, final Object serviceObject, Method m,
+                                       Object[] paramArray) throws Exception {
+        if (invoker != null) {
+            return invoker.invoke(m, paramArray);
+        }
+        return super.performInvocation(exchange, serviceObject, m, paramArray);
+    }
+    
+    @Override
     protected Object invoke(Exchange exchange, 
                             final Object serviceObject, Method m,
                             List<Object> params) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
index 01cdfb9..cf797aa 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
@@ -24,6 +24,7 @@ import java.net.URL;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.logging.Logger;
@@ -41,11 +42,13 @@ import javax.xml.ws.Endpoint;
 import javax.xml.ws.EndpointReference;
 import javax.xml.ws.WebServiceException;
 import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.spi.Invoker;
 import javax.xml.ws.spi.ServiceDelegate;
 import javax.xml.ws.wsaddressing.W3CEndpointReference;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
@@ -54,7 +57,10 @@ import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.jaxws.EndpointImpl;
 import org.apache.cxf.jaxws.EndpointUtils;
+import org.apache.cxf.jaxws.JAXWSMethodInvoker;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.apache.cxf.jaxws.ServiceImpl;
+import org.apache.cxf.jaxws.context.WebServiceContextImpl;
 import org.apache.cxf.message.MessageUtils;
 import org.apache.cxf.phase.PhaseInterceptorChain;
 import org.apache.cxf.staxutils.StaxUtils;
@@ -159,6 +165,33 @@ public class ProviderImpl extends javax.xml.ws.spi.Provider {
         ep.publish(address);
         return ep;
     }
+    
+    //new in 2.2
+    public Endpoint createEndpoint(String bindingId, Class<?> implementorClass,
+                                   Invoker invoker, WebServiceFeature ... features) {
+        if (EndpointUtils.isValidImplementor(implementorClass)) {
+            Bus bus = BusFactory.getThreadDefaultBus();
+            JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
+            if (features != null) {
+                factory.getJaxWsServiceFactory().setWsFeatures(Arrays.asList(features));
+            }
+            if (invoker != null) {
+                factory.setInvoker(new JAXWSMethodInvoker(invoker));
+                try {
+                    invoker.inject(new WebServiceContextImpl());
+                } catch (Exception e) {
+                    throw new WebServiceException(new Message("ENDPOINT_CREATION_FAILED_MSG",
+                                                              LOG).toString(), e);
+                }
+            }
+            EndpointImpl ep = new EndpointImpl(bus, null, factory);
+            ep.setImplementorClass(implementorClass);
+            return ep;
+        } else {
+            throw new WebServiceException(new Message("INVALID_IMPLEMENTOR_EXC", LOG).toString());
+        }
+    }
+    
 
     public W3CEndpointReference createW3CEndpointReference(String address, 
                                                            QName serviceName, 

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
index e930e73..210cf91 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
@@ -30,14 +30,12 @@ import org.w3c.dom.NamedNodeMap;
 import org.apache.cxf.Bus;
 import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
 import org.apache.cxf.bus.spring.Jsr250BeanPostProcessor;
-import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.injection.NoJSR250Annotations;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
 import org.apache.cxf.configuration.spring.BusWiringType;
 import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.jaxws.EndpointImpl;
-import org.apache.cxf.jaxws.spi.ProviderImpl;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanDefinitionStoreException;
 import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
@@ -52,21 +50,7 @@ import org.springframework.context.annotation.CommonAnnotationBeanPostProcessor;
 
 
 public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
-    private static final Class<?> EP_CLASS;
-    static {
-        Class<?> cls = SpringEndpointImpl.class;
-        try {
-            if (ProviderImpl.isJaxWs22()) {
-                cls = ClassLoaderUtils
-                    .loadClass("org.apache.cxf.jaxws22.spring.JAXWS22SpringEndpointImpl", 
-                           EndpointDefinitionParser.class);
-            }
-        } catch (Throwable t) {
-            cls = SpringEndpointImpl.class;
-        }
-        EP_CLASS = cls;
-    }
-    
+    private static final Class<?> EP_CLASS = SpringEndpointImpl.class;
     
     private static final String IMPLEMENTOR = "implementor";
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
index 7c38466..d4e80a8 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/EndpointImpl.java
@@ -19,21 +19,16 @@
 
 package org.apache.cxf.jaxws22;
 
-import javax.xml.ws.EndpointContext;
 import javax.xml.ws.WebServiceFeature;
 
 import org.apache.cxf.Bus;
-import org.apache.cxf.frontend.ServerFactoryBean;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-import org.apache.cxf.transport.http_jaxws_spi.JAXWSHttpSpiTransportFactory;
 
 /**
- * 
+ * @deprecated - all functionality moved to superclass - create superclass instead
  */
+@Deprecated
 public class EndpointImpl extends org.apache.cxf.jaxws.EndpointImpl {
-    //What really is the point of the EndpointContext in JAX-WS 2.2?  
-    //There is a setter, but no getter.
-    Object endpointContext;
     
     /**
      * @param implementor
@@ -98,19 +93,5 @@ public class EndpointImpl extends org.apache.cxf.jaxws.EndpointImpl {
     public EndpointImpl(Bus bus, Object implementor) {
         super(bus, implementor);
     }
-    
-    //new in 2.2, but introduces a new class not found in 2.1
-    public void setEndpointContext(EndpointContext ctxt) {
-        endpointContext = ctxt;
-    }
-    
-    //new in 2.2, but introduces a new class not found in 2.1
-    public void publish(javax.xml.ws.spi.http.HttpContext context) {
-        ServerFactoryBean serverFactory = getServerFactory();
-        if (serverFactory.getDestinationFactory() == null) {
-            serverFactory.setDestinationFactory(new JAXWSHttpSpiTransportFactory(context));
-        }
-        super.publish(context.getPath());
-    }
-    
+        
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
index 4432ca1..5488a63 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/JAXWS22Invoker.java
@@ -19,25 +19,16 @@
 
 package org.apache.cxf.jaxws22;
 
-import java.lang.reflect.Method;
-
 import org.apache.cxf.jaxws.JAXWSMethodInvoker;
-import org.apache.cxf.message.Exchange;
 import org.apache.cxf.service.invoker.Invoker;
 
 /**
- * 
+ * @deprecated - functionality moved into superclass
  */
+@Deprecated
 public class JAXWS22Invoker extends JAXWSMethodInvoker implements Invoker {
-    javax.xml.ws.spi.Invoker invoker;
     
     public JAXWS22Invoker(javax.xml.ws.spi.Invoker inv) {
-        super(null);
-        invoker = inv;
-    }
-    @Override
-    protected Object performInvocation(Exchange exchange, final Object serviceObject, Method m,
-                                       Object[] paramArray) throws Exception {
-        return invoker.invoke(m, paramArray);
+        super(inv);
     }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
index 606659c..ab29c96 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spi/ProviderImpl.java
@@ -19,58 +19,10 @@
 
 package org.apache.cxf.jaxws22.spi;
 
-import java.util.Arrays;
-
-import javax.xml.ws.Endpoint;
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.WebServiceFeature;
-import javax.xml.ws.spi.Invoker;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.common.i18n.Message;
-import org.apache.cxf.jaxws.EndpointUtils;
-import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-import org.apache.cxf.jaxws.context.WebServiceContextImpl;
-import org.apache.cxf.jaxws22.EndpointImpl;
-import org.apache.cxf.jaxws22.JAXWS22Invoker;
-
+/**
+ * @deprecated - functionality moved into parent class
+ */
+@Deprecated
 public class ProviderImpl extends org.apache.cxf.jaxws.spi.ProviderImpl {
-    @Override
-    protected org.apache.cxf.jaxws.EndpointImpl createEndpointImpl(Bus bus,
-                                              String bindingId,
-                                              Object implementor,
-                                              WebServiceFeature ... features) {
-        if (isJaxWs22()) {
-            return new EndpointImpl(bus, implementor, bindingId, features);
-        }
-        //couldn't find the 2.2 stuff, assume 2.1 behavior
-        return super.createEndpointImpl(bus, bindingId, implementor, features);
-    }
-
-    //new in 2.2, but introduces a new class not found in 2.1
-    public Endpoint createEndpoint(String bindingId, Class<?> implementorClass,
-                                   Invoker invoker, WebServiceFeature ... features) {
-        if (EndpointUtils.isValidImplementor(implementorClass)) {
-            Bus bus = BusFactory.getThreadDefaultBus();
-            JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
-            if (features != null) {
-                factory.getJaxWsServiceFactory().setWsFeatures(Arrays.asList(features));
-            }
-            if (invoker != null) {
-                factory.setInvoker(new JAXWS22Invoker(invoker));
-                try {
-                    invoker.inject(new WebServiceContextImpl());
-                } catch (Exception e) {
-                    throw new WebServiceException(new Message("ENDPOINT_CREATION_FAILED_MSG",
-                                                              LOG).toString(), e);
-                }
-            }
-            EndpointImpl ep = new EndpointImpl(bus, null, factory);
-            ep.setImplementorClass(implementorClass);
-            return ep;
-        } else {
-            throw new WebServiceException(new Message("INVALID_IMPLEMENTOR_EXC", LOG).toString());
-        }
-    }
+    
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
deleted file mode 100644
index 7b2f7e8..0000000
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws22/spring/JAXWS22SpringEndpointImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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.cxf.jaxws22.spring;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
-import org.apache.cxf.common.injection.NoJSR250Annotations;
-import org.apache.cxf.jaxws.spring.EndpointDefinitionParser;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-
-@NoJSR250Annotations
-public class JAXWS22SpringEndpointImpl extends org.apache.cxf.jaxws22.EndpointImpl
-    implements ApplicationContextAware {
-
-    boolean checkBlockConstruct;
-
-    public JAXWS22SpringEndpointImpl(Object o) {
-        super(o instanceof Bus ? (Bus)o : null,
-              o instanceof Bus ? null : o);
-    }
-
-    public JAXWS22SpringEndpointImpl(Bus bus, Object implementor) {
-        super(bus, implementor);
-    }
-    
-    public void setCheckBlockConstruct(Boolean b) {
-        checkBlockConstruct = b;
-    }
-    
-    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
-        if (checkBlockConstruct) {
-            EndpointDefinitionParser.setBlocking(ctx, this);
-        }
-        if (getBus() == null) {
-            setBus(BusWiringBeanFactoryPostProcessor.addDefaultBus(ctx));
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cxf/blob/b4536602/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider b/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
index b328b64..b5657df 100644
--- a/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
+++ b/rt/frontend/jaxws/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
@@ -1 +1 @@
-org.apache.cxf.jaxws22.spi.ProviderImpl
+org.apache.cxf.jaxws.spi.ProviderImpl