Added:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
(added)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,26 @@
+<!--
+ 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.
+-->
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
+ <s:Body>
+ <echo xmlns="http://holder.jaxws.cxf.apache.org">
+ <s1>one</s1>
+ <s2>two</s2>
+ </echo>
+ </s:Body>
+</s:Envelope>
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
(added)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,26 @@
+<!--
+ 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.
+-->
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
+ <s:Body>
+ <echo2 xmlns="http://holder.jaxws.cxf.apache.org">
+ <s1>one</s1>
+ <s2>two</s2>
+ </echo2>
+ </s:Body>
+</s:Envelope>
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
------------------------------------------------------------------------------
svn:executable = *
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
(added)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,29 @@
+<!--
+ 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.
+-->
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns="http://holder.jaxws.cxf.apache.org">
+ <s:Header>
+ <header>header</header>
+ </s:Header>
+ <s:Body>
+ <echo3>
+ <s1>one</s1>
+ </echo3>
+ </s:Body>
+</s:Envelope>
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
------------------------------------------------------------------------------
svn:executable = *
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
(added)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,26 @@
+<!--
+ 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.
+-->
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
+ <s:Body>
+ <echoResponse xmlns="http://holder.jaxws.cxf.apache.org">
+ <return>one</return>
+ <outS2>two</outS2>
+ </echoResponse>
+ </s:Body>
+</s:Envelope>
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
------------------------------------------------------------------------------
svn:executable = *
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java
Wed Dec 20 00:07:54 2006
@@ -30,6 +30,7 @@
import org.apache.cxf.mime.types.XopType;
import org.apache.cxf.mtom_xop.TestMtomImpl;
import org.apache.cxf.service.Service;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
import org.apache.cxf.service.invoker.BeanInvoker;
import org.apache.cxf.service.model.FaultInfo;
import org.apache.cxf.service.model.InterfaceInfo;
@@ -39,7 +40,7 @@
public class JaxWsServiceFactoryBeanTest extends AbstractJaxWsTest {
public void testEndpoint() throws Exception {
- JaxWsServiceFactoryBean bean = new JaxWsServiceFactoryBean();
+ ReflectionServiceFactoryBean bean = new JaxWsServiceFactoryBean();
URL resource = getClass().getResource("/wsdl/hello_world.wsdl");
assertNotNull(resource);
@@ -84,7 +85,7 @@
}
public void testHolder() throws Exception {
- JaxWsServiceFactoryBean bean = new JaxWsServiceFactoryBean();
+ ReflectionServiceFactoryBean bean = new JaxWsServiceFactoryBean();
Bus bus = getBus();
bean.setBus(bus);
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/ProviderServiceFactoryBeanTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/ProviderServiceFactoryBeanTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/ProviderServiceFactoryBeanTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/ProviderServiceFactoryBeanTest.java
Wed Dec 20 00:07:54 2006
@@ -28,9 +28,9 @@
import org.apache.cxf.binding.xml.XMLBinding;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.ServerImpl;
+import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.jaxws.AbstractJaxWsTest;
import org.apache.cxf.service.Service;
-import org.apache.cxf.service.factory.ServerFactoryBean;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.service.model.InterfaceInfo;
import org.apache.hello_world_soap_http.HWSoapMessageProvider;
Copied:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
(from r488793,
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractEndpointFactory.java)
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java?view=diff&rev=488948&p1=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractEndpointFactory.java&r1=488793&p2=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractEndpointFactory.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
Wed Dec 20 00:07:54 2006
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.service.factory;
+package org.apache.cxf.frontend;
import java.util.Map;
@@ -29,6 +29,8 @@
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.EndpointException;
import org.apache.cxf.service.Service;
+import org.apache.cxf.service.factory.AbstractBindingInfoFactoryBean;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.transport.DestinationFactory;
Copied:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java
(from r488793,
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ClientFactoryBean.java)
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java?view=diff&rev=488948&p1=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ClientFactoryBean.java&r1=488793&p2=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ClientFactoryBean.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java
Wed Dec 20 00:07:54 2006
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.service.factory;
+package org.apache.cxf.frontend;
import org.apache.cxf.BusException;
import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
@@ -24,6 +24,8 @@
import org.apache.cxf.endpoint.ClientImpl;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.EndpointException;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.apache.cxf.service.factory.ServiceConstructionException;
public class ClientFactoryBean extends AbstractEndpointFactory {
private Client client;
@@ -54,7 +56,5 @@
public void setClient(Client client) {
this.client = client;
- }
-
-
+ }
}
Added:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxy.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxy.java?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxy.java
(added)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxy.java
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,89 @@
+/**
+ * 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.frontend;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.service.model.BindingOperationInfo;
+
+public class ClientProxy implements InvocationHandler {
+
+ private static final Logger LOG = LogUtils.getL7dLogger(ClientProxy.class);
+
+ private Endpoint endpoint;
+
+ private Client client;
+
+ public ClientProxy(Client c) {
+ endpoint = c.getEndpoint();
+ client = c;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws
Throwable {
+
+ MethodDispatcher dispatcher =
(MethodDispatcher)endpoint.getService().get(
+
MethodDispatcher.class
+
.getName());
+ BindingOperationInfo oi = dispatcher.getBindingOperation(method,
endpoint);
+ if (oi == null) {
+ // check for method on BindingProvider and Object
+ if (method.getDeclaringClass().equals(Object.class)) {
+ return method.invoke(this);
+ }
+
+ throw new Fault(new Message("NO_OPERATION_INFO", LOG,
method.getName()));
+ }
+
+ Object[] params = args;
+ if (null == params) {
+ params = new Object[0];
+ }
+
+ return invokeSync(method, oi, params, null);
+ }
+
+ public Object invokeSync(Method method, BindingOperationInfo oi, Object[]
params,
+ Map<String, Object> context) throws Exception {
+ Object rawRet[] = client.invoke(oi, params, context);
+
+ if (rawRet != null && rawRet.length > 0) {
+ return rawRet[0];
+ } else {
+ return null;
+ }
+ }
+
+ public Client getClient() {
+ return client;
+ }
+
+ public static Client getClient(Object o) {
+ return ((ClientProxy)Proxy.getInvocationHandler(o)).getClient();
+ }
+}
Added:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
(added)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,53 @@
+/**
+ * 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.frontend;
+
+import java.lang.reflect.Proxy;
+
+import org.apache.cxf.endpoint.Client;
+
+public class ClientProxyFactoryBean {
+ private ClientFactoryBean clientFactoryBean;
+
+ public ClientProxyFactoryBean() {
+ super();
+ this.clientFactoryBean = new ClientFactoryBean();
+ }
+
+ public Object create() {
+ Client c = clientFactoryBean.create();
+
+ ClientProxy handler = new ClientProxy(c);
+
+ Class cls = clientFactoryBean.getServiceClass();
+ Object obj = Proxy.newProxyInstance(cls.getClassLoader(), new Class[]
{cls}, handler);
+
+ return obj;
+ }
+
+ public ClientFactoryBean getClientFactoryBean() {
+ return clientFactoryBean;
+ }
+
+ public void setClientFactoryBean(ClientFactoryBean clientFactoryBean) {
+ this.clientFactoryBean = clientFactoryBean;
+ }
+
+
+}
Added:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
(added)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,20 @@
+#
+#
+# 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.
+#
+#
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
------------------------------------------------------------------------------
svn:executable = *
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
(from r488793,
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java)
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java?view=diff&rev=488948&p1=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java&r1=488793&p2=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
Wed Dec 20 00:07:54 2006
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.service.factory;
+package org.apache.cxf.frontend;
import java.io.IOException;
@@ -26,6 +26,10 @@
import org.apache.cxf.endpoint.EndpointException;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.endpoint.ServerImpl;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.apache.cxf.service.factory.ServiceConstructionException;
+import org.apache.cxf.service.invoker.BeanInvoker;
+import org.apache.cxf.service.invoker.Invoker;
import org.apache.cxf.transport.ChainInitiationObserver;
/**
@@ -61,6 +65,7 @@
public class ServerFactoryBean extends AbstractEndpointFactory {
private Server server;
private boolean start = true;
+ private Object serviceBean;
public ServerFactoryBean() {
super();
@@ -74,9 +79,17 @@
public Server create() {
try {
+ if (serviceBean != null && getServiceClass() == null) {
+ setServiceClass(serviceBean.getClass());
+ }
+
Endpoint ep = createEndpoint();
server = new ServerImpl(getBus(), ep, new
ChainInitiationObserver(ep, getBus()));
+ if (serviceBean != null && ep.getService().getInvoker() == null) {
+ ep.getService().setInvoker(createInvoker());
+ }
+
if (start) {
server.start();
}
@@ -91,6 +104,10 @@
return server;
}
+ protected Invoker createInvoker() {
+ return new BeanInvoker(serviceBean);
+ }
+
public Server getServer() {
return server;
}
@@ -99,11 +116,30 @@
this.server = server;
}
+ /**
+ * Whether or not the Server should be started upon creation.
+ * @return
+ */
public boolean isStart() {
return start;
}
public void setStart(boolean start) {
this.start = start;
- }
+ }
+
+ public Object getServiceBean() {
+ return serviceBean;
+ }
+
+ /**
+ * Set the backing service bean. If this is set a BeanInvoker is created
for
+ * the provide bean.
+ *
+ * @return
+ */
+ public void setServiceBean(Object serviceBean) {
+ this.serviceBean = serviceBean;
+ }
+
}
Copied:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/SimpleMethodDispatcher.java
(from r488793,
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java)
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/SimpleMethodDispatcher.java?view=diff&rev=488948&p1=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java&r1=488793&p2=incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/SimpleMethodDispatcher.java&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/SimpleMethodDispatcher.java
Wed Dec 20 00:07:54 2006
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.service.factory;
+package org.apache.cxf.frontend;
import java.lang.reflect.Method;
import java.util.HashMap;
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
Wed Dec 20 00:07:54 2006
@@ -19,7 +19,11 @@
package org.apache.cxf.service.factory;
+import java.lang.reflect.Array;
+import java.lang.reflect.GenericArrayType;
import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
@@ -31,7 +35,7 @@
import java.util.logging.Logger;
import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.Holder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -41,6 +45,8 @@
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.EndpointException;
import org.apache.cxf.endpoint.EndpointImpl;
+import org.apache.cxf.frontend.MethodDispatcher;
+import org.apache.cxf.frontend.SimpleMethodDispatcher;
import org.apache.cxf.helpers.MethodComparator;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.jaxb.JAXBDataBinding;
@@ -81,6 +87,10 @@
public class ReflectionServiceFactoryBean extends AbstractServiceFactoryBean {
public static final String GENERIC_TYPE = "generic.type";
+ public static final String MODE_OUT = "messagepart.mode.out";
+ public static final String MODE_INOUT = "messagepart.mode.inout";
+ public static final String HOLDER = "messagepart.isholder";
+
private static final Logger LOG =
Logger.getLogger(ReflectionServiceFactoryBean.class.getName());
private static final ResourceBundle BUNDLE =
BundleUtils.getBundle(ReflectionServiceFactoryBean.class);
@@ -153,7 +163,7 @@
}
}
- protected Endpoint createEndpoint(EndpointInfo ei) throws
EndpointException {
+ public Endpoint createEndpoint(EndpointInfo ei) throws EndpointException {
return new EndpointImpl(getBus(), getService(), ei);
}
@@ -297,7 +307,8 @@
op.getName().getLocalPart() +
"Response");
MessageInfo msg = new MessageInfo(op, name);
op.setOutput(uOp.getOutputName(), msg);
- msg.addMessagePart(name);
+ MessagePartInfo part = msg.addMessagePart(name);
+ part.setIndex(-1);
}
} else {
createMessageParts(intf, op, m);
@@ -404,11 +415,11 @@
op.setInput(inMsg.getName().getLocalPart(), inMsg);
for (int j = 0; j < paramClasses.length; j++) {
- if (!isHeader(method, j) && isInParam(method, j)) {
+ if (isInParam(method, j)) {
final QName q = getInParameterName(op, method, j);
MessagePartInfo part = inMsg.addMessagePart(q);
- part.setTypeClass(paramClasses[j]);
- part.setProperty(GENERIC_TYPE,
method.getGenericParameterTypes()[j]);
+ initializeParameter(part, paramClasses[j],
method.getGenericParameterTypes()[j]);
+ part.setIndex(j);
}
}
@@ -418,20 +429,23 @@
op.setOutput(outMsg.getName().getLocalPart(), outMsg);
final Class<?> returnType = method.getReturnType();
- if (!returnType.isAssignableFrom(void.class) && !isHeader(method,
-1)) {
+ if (!returnType.isAssignableFrom(void.class)) {
final QName q = getOutParameterName(op, method, -1);
MessagePartInfo part = outMsg.addMessagePart(q);
- part.setTypeClass(method.getReturnType());
- part.setProperty(GENERIC_TYPE, method.getGenericReturnType());
+ initializeParameter(part, method.getReturnType(),
method.getGenericReturnType());
+ part.setIndex(-1);
}
for (int j = 0; j < paramClasses.length; j++) {
- if (!paramClasses[j].equals(MessageContext.class) &&
!isHeader(method, j)
- && isOutParam(method, j)) {
+ if (isOutParam(method, j)) {
final QName q = getInParameterName(op, method, j);
MessagePartInfo part = outMsg.addMessagePart(q);
- part.setTypeClass(paramClasses[j]);
- part.setProperty(GENERIC_TYPE,
method.getGenericParameterTypes()[j]);
+ initializeParameter(part, paramClasses[j],
method.getGenericParameterTypes()[j]);
+ part.setIndex(j);
+
+ if (isInParam(method, j)) {
+ part.setProperty(MODE_INOUT, Boolean.TRUE);
+ }
}
}
}
@@ -439,6 +453,34 @@
initializeFaults(intf, op, method);
}
+ // TODO: Remove reference to JAX-WS holder if possible
+ // We do need holder support in the simple frontend though as Aegis has
its own
+ // holder class. I'll tackle refactoring this into a more generic way of
handling
+ // holders in phase 2.
+ protected void initializeParameter(MessagePartInfo part, Class rawClass,
Type type) {
+ if (rawClass.equals(Holder.class) && type instanceof
ParameterizedType) {
+ ParameterizedType paramType = (ParameterizedType)type;
+ rawClass = getHolderClass(paramType);
+ }
+ part.setProperty(GENERIC_TYPE, type);
+ part.setTypeClass(rawClass);
+ }
+
+ protected Class getHolderClass(ParameterizedType paramType) {
+ Object rawType = paramType.getActualTypeArguments()[0];
+ Class rawClass;
+ if (rawType instanceof GenericArrayType) {
+ rawClass = (Class) ((GenericArrayType)
rawType).getGenericComponentType();
+ rawClass = Array.newInstance(rawClass, 0).getClass();
+ } else {
+ if (rawType instanceof ParameterizedType) {
+ rawType = (Class) ((ParameterizedType) rawType).getRawType();
+ }
+ rawClass = (Class) rawType;
+ }
+ return rawClass;
+ }
+
protected QName getServiceQName() {
if (serviceName == null) {
serviceName = new QName(getServiceNamespace(), getServiceName());
@@ -447,7 +489,7 @@
return serviceName;
}
- protected QName getEndpointName() {
+ public QName getEndpointName() {
for (AbstractServiceConfiguration c : serviceConfigurations) {
QName name = c.getEndpointName();
if (name != null) {
@@ -634,7 +676,7 @@
throw new IllegalStateException("ServiceConfiguration must provide a
value!");
}
- protected boolean isHeader(Method method, int j) {
+ public boolean isHeader(Method method, int j) {
for (Iterator itr = serviceConfigurations.iterator(); itr.hasNext();) {
AbstractServiceConfiguration c =
(AbstractServiceConfiguration)itr.next();
Boolean b = c.isHeader(method, j);
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/AbstractSimpleFrontendTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/AbstractSimpleFrontendTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/AbstractSimpleFrontendTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/AbstractSimpleFrontendTest.java
Wed Dec 20 00:07:54 2006
@@ -21,7 +21,7 @@
import org.apache.cxf.Bus;
import org.apache.cxf.binding.BindingFactoryManager;
import org.apache.cxf.binding.soap.SoapBindingFactory;
-import org.apache.cxf.binding.soap.SoapDestinationFactory;
+import org.apache.cxf.binding.soap.SoapTransportFactory;
import org.apache.cxf.test.AbstractCXFTest;
import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.DestinationFactoryManager;
@@ -40,10 +40,10 @@
.registerBindingFactory("http://schemas.xmlsoap.org/wsdl/soap/",
bindingFactory);
DestinationFactoryManager dfm =
bus.getExtension(DestinationFactoryManager.class);
- SoapDestinationFactory soapDF = new SoapDestinationFactory();
- soapDF.setBus(bus);
-
dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/", soapDF);
- dfm.registerDestinationFactory("http://schemas.xmlsoap.org/soap/",
soapDF);
+ SoapTransportFactory soapTF = new SoapTransportFactory();
+ soapTF.setBus(bus);
+
dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/", soapTF);
+ dfm.registerDestinationFactory("http://schemas.xmlsoap.org/soap/",
soapTF);
LocalTransportFactory localTransport = new LocalTransportFactory();
dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/http",
localTransport);
@@ -53,6 +53,8 @@
extension.registerConduitInitiator(LocalTransportFactory.TRANSPORT_ID,
localTransport);
extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/http",
localTransport);
extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/http",
localTransport);
+
+
extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/",
soapTF);
}
}
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ClientFactoryBeanTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ClientFactoryBeanTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ClientFactoryBeanTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ClientFactoryBeanTest.java
Wed Dec 20 00:07:54 2006
@@ -27,6 +27,7 @@
import org.apache.cxf.binding.soap.model.SoapOperationInfo;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.frontend.ClientFactoryBean;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
Added:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java
(added)
+++
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,41 @@
+/**
+ * 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.service.factory;
+
+import org.apache.cxf.message.Exchange;
+
+public class HelloServiceImpl implements HelloService {
+
+ public String echo(String text) {
+ return text;
+ }
+
+ public String echoWithExchange(Exchange ex, String text) {
+ return text;
+ }
+
+ public void ping() {
+
+ }
+
+ public String sayHello() {
+ return "hello";
+ }
+
+}
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java
------------------------------------------------------------------------------
svn:executable = *
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/HelloServiceImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
Wed Dec 20 00:07:54 2006
@@ -30,6 +30,7 @@
import org.apache.cxf.binding.soap.model.SoapOperationInfo;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
Added:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java?view=auto&rev=488948
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java
(added)
+++
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java
Wed Dec 20 00:07:54 2006
@@ -0,0 +1,54 @@
+/**
+ * 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.service.factory;
+
+import org.apache.cxf.endpoint.ClientImpl;
+import org.apache.cxf.frontend.ClientFactoryBean;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
+import org.apache.cxf.frontend.ServerFactoryBean;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+
+public class RountripTest extends AbstractSimpleFrontendTest {
+
+ public void testServerFactoryBean() throws Exception {
+ ServerFactoryBean svrBean = new ServerFactoryBean();
+ svrBean.setAddress("http://localhost/Hello");
+ svrBean.setTransportId("http://schemas.xmlsoap.org/soap/http");
+ svrBean.setServiceBean(new HelloServiceImpl());
+ svrBean.setBus(getBus());
+
+ svrBean.create();
+
+ ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean();
+ ClientFactoryBean clientBean = proxyFactory.getClientFactoryBean();
+ clientBean.setAddress("http://localhost/Hello");
+ clientBean.setTransportId("http://schemas.xmlsoap.org/soap/http");
+ clientBean.setServiceClass(HelloService.class);
+ clientBean.setBus(getBus());
+
+ HelloService client = (HelloService) proxyFactory.create();
+
+ ClientImpl c = (ClientImpl) clientBean.getClient();
+ c.getOutInterceptors().add(new LoggingOutInterceptor());
+ c.getInInterceptors().add(new LoggingInInterceptor());
+
+ assertEquals("hello", client.sayHello());
+ }
+}
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java
------------------------------------------------------------------------------
svn:executable = *
Propchange:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/RountripTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
(original)
+++
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
Wed Dec 20 00:07:54 2006
@@ -223,10 +223,10 @@
// What we really should do here is on use the same interceptors
on the outbound
// path that would be used by the application endpoint without
presuming any knowledge
// of the applications endpoint's frontend.
- // endpoint = new EndpointImpl(manager.getBus(), service, ei);
endpoint = new JaxWsEndpointImpl(manager.getBus(), service, ei);
+ // endpoint = new JaxWsEndpointImpl(manager.getBus(), service, ei);
} catch (EndpointException ex) {
- ex.printStackTrace();
+ throw new RuntimeException(ex);
}
service.setExecutor(applicationEndpoint.getService().getExecutor());
}
Modified:
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java
Wed Dec 20 00:07:54 2006
@@ -30,6 +30,8 @@
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.interceptor.InterceptorChain;
+import org.apache.cxf.jaxws.interceptors.HolderInInterceptor;
+import org.apache.cxf.jaxws.interceptors.HolderOutInterceptor;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.PhaseInterceptor;
import org.apache.cxf.ws.addressing.AddressingProperties;
@@ -108,9 +110,24 @@
while (it.hasNext()) {
PhaseInterceptor pi = (PhaseInterceptor)it.next();
if
("org.apache.cxf.jaxws.interceptors.WrapperClassInInterceptor".equals(pi.getId()))
{
- chain.remove(pi);
+ it.remove();
LOG.fine("Removed WrapperClassInInterceptor from
interceptor chain.");
- break;
+ } else if
(HolderInInterceptor.class.getName().equals(pi.getId())) {
+ it.remove();
+ LOG.fine("Removed WrapperClassInInterceptor from
interceptor chain.");
+ }
+ }
+
+ Message m = message.getExchange().getOutMessage();
+ if (m != null) {
+ chain = m.getInterceptorChain();
+ it = chain.getIterator();
+ while (it.hasNext()) {
+ PhaseInterceptor pi = (PhaseInterceptor)it.next();
+ if
(HolderOutInterceptor.class.getName().equals(pi.getId())) {
+ it.remove();
+ LOG.fine("Removed WrapperClassInInterceptor from
interceptor chain.");
+ }
}
}
Modified:
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
Wed Dec 20 00:07:54 2006
@@ -396,7 +396,7 @@
assert !RMContextUtils.isOutbound(message);
AddressingProperties maps = RMContextUtils.retrieveMAPs(message,
false, false);
AttributedURIType actionURI = null == maps ? null : maps.getAction();
- String action = null == actionURI ? null : actionURI.getValue();
+ String action = null == actionURI ? null : actionURI.getValue().trim();
LOG.fine("action: " + action);
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/fault-stack-trace.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/fault-stack-trace.xml?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/fault-stack-trace.xml
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/fault-stack-trace.xml
Wed Dec 20 00:07:54 2006
@@ -22,7 +22,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean class="org.apache.cxf.service.factory.ServerFactoryBean"
id="org.apache.cxf.service.factory.ServerFactoryBean">
+ <bean class="org.apache.cxf.frontend.ServerFactoryBean"
id="org.apache.cxf.service.factory.ServerFactoryBean">
<property name="properties">
<map>
<entry key="faultStackTraceEnabled" value="true" />
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/js/Server.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/js/Server.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/js/Server.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/js/Server.java
Wed Dec 20 00:07:54 2006
@@ -20,6 +20,7 @@
package org.apache.cxf.systest.js;
import java.io.File;
+import java.net.URLDecoder;
import org.apache.cxf.js.rhino.ProviderFactory;
import org.apache.cxf.systest.common.TestServerBase;
@@ -31,8 +32,10 @@
try {
ProviderFactory pf = new ProviderFactory();
String f =
getClass().getResource("resources/hello_world.js").getFile();
+ f = URLDecoder.decode(f, "UTF-8");
pf.createAndPublish(new File(f),
"http://localhost:9000/SoapContext/SoapPort", false);
f = getClass().getResource("resources/hello_world.jsx").getFile();
+ f = URLDecoder.decode(f, "UTF-8");
pf.createAndPublish(new File(f), "http://localhost:9100", false);
} catch (Exception ex) {
ex.printStackTrace();
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
Wed Dec 20 00:07:54 2006
@@ -35,12 +35,13 @@
import org.apache.cxf.BusFactoryHelper;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.endpoint.ClientImpl;
-import org.apache.cxf.jaxws.EndpointInvocationHandler;
+import org.apache.cxf.jaxws.JaxWsClientProxy;
import org.apache.cxf.jaxws.binding.soap.SOAPBindingImpl;
import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
import org.apache.cxf.mime.TestMtom;
import org.apache.cxf.service.Service;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.systest.common.ClientServerSetupBase;
@@ -110,7 +111,7 @@
private static <T> T createPort(QName serviceName, QName portName,
Class<T> serviceEndpointInterface)
throws Exception {
Bus bus = BusFactoryHelper.newInstance().getDefaultBus();
- JaxWsServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean();
+ ReflectionServiceFactoryBean serviceFactory = new
JaxWsServiceFactoryBean();
serviceFactory.setBus(bus);
serviceFactory.setServiceName(serviceName);
serviceFactory.setServiceClass(serviceEndpointInterface);
@@ -126,7 +127,7 @@
jaxwsEndpoint.getBinding().getOutInterceptors().add(new
TestAttachmentOutInterceptor());
Client client = new ClientImpl(bus, jaxwsEndpoint);
- InvocationHandler ih = new EndpointInvocationHandler(client,
jaxwsEndpoint.getJaxwsBinding());
+ InvocationHandler ih = new JaxWsClientProxy(client,
jaxwsEndpoint.getJaxwsBinding());
Object obj =
Proxy.newProxyInstance(serviceEndpointInterface.getClassLoader(), new Class[] {
serviceEndpointInterface, BindingProvider.class }, ih);
return serviceEndpointInterface.cast(obj);
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/JaxwsInterceptorRemover.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/JaxwsInterceptorRemover.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/JaxwsInterceptorRemover.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/JaxwsInterceptorRemover.java
Wed Dec 20 00:07:54 2006
@@ -27,6 +27,9 @@
import org.apache.cxf.jaxws.handler.LogicalHandlerInterceptor;
import org.apache.cxf.jaxws.handler.StreamHandlerInterceptor;
import org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor;
+import org.apache.cxf.jaxws.interceptors.HolderInInterceptor;
+import org.apache.cxf.jaxws.interceptors.HolderOutInterceptor;
+import org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
@@ -40,6 +43,8 @@
public JaxwsInterceptorRemover() {
setPhase(Phase.PRE_LOGICAL);
+ addBefore(WrapperClassOutInterceptor.class.getName());
+ addBefore(HolderOutInterceptor.class.getName());
}
public void handleMessage(Message message) throws Fault {
@@ -58,8 +63,11 @@
while (it.hasNext()) {
PhaseInterceptor pi = (PhaseInterceptor)it.next();
if (SOAPHandlerInterceptor.class.getName().equals(pi.getId())) {
- chain.remove(pi);
- break;
+ it.remove();
+ } else if (HolderInInterceptor.class.getName().equals(pi.getId()))
{
+ it.remove();
+ } else if
(HolderOutInterceptor.class.getName().equals(pi.getId())) {
+ it.remove();
}
}
it = chain.getIterator();
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java?view=diff&rev=488948&r1=488947&r2=488948
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
Wed Dec 20 00:07:54 2006
@@ -650,6 +650,7 @@
outRecorder = new OutMessageRecorder();
greeterBus.getOutInterceptors().add(new JaxwsInterceptorRemover());
+ greeterBus.getInInterceptors().add(new JaxwsInterceptorRemover());
greeterBus.getOutInterceptors().add(outRecorder);
inRecorder = new InMessageRecorder();
greeterBus.getInInterceptors().add(inRecorder);