You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2007/09/27 04:42:50 UTC
svn commit: r579875 - in
/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se:
./ src/main/java/org/apache/servicemix/cxfse/
src/test/java/org/apache/servicemix/cxfse/
src/test/resources/org/apache/servicemix/cxfse/
Author: ffang
Date: Wed Sep 26 19:42:49 2007
New Revision: 579875
URL: http://svn.apache.org/viewvc?rev=579875&view=rev
Log:
[SM-1077] CXFSE support a proxy to another CXFSE service.
Added:
incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java (with props)
incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java (with props)
incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java (with props)
incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml (with props)
Modified:
incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/pom.xml
incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeEndpoint.java
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/pom.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/pom.xml?rev=579875&r1=579874&r2=579875&view=diff
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/pom.xml (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/pom.xml Wed Sep 26 19:42:49 2007
@@ -136,32 +136,32 @@
</dependencies>
<build>
<plugins>
+ <plugin>
+ <groupId>org.apache.xbean</groupId>
+ <artifactId>maven-xbean-plugin</artifactId>
+ <!--version>${xbean-version}</version-->
+ <executions>
+ <execution>
+ <configuration>
+ <namespace>
+ http://servicemix.apache.org/cxfse/1.0
+ </namespace>
+ </configuration>
+ <goals>
+ <goal>mapping</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>jbi-maven-plugin</artifactId>
<version>${servicemix-version}</version>
- <extensions>true</extensions>
+ <!--extensions>true</extensions-->
<configuration>
<type>service-engine</type>
<component>org.apache.servicemix.cxfse.CxfSeComponent</component>
</configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.xbean</groupId>
- <artifactId>maven-xbean-plugin</artifactId>
- <version>${xbean-version}</version>
- <executions>
- <execution>
- <configuration>
- <namespace>
- http://servicemix.apache.org/cxfse/1.0
- </namespace>
- </configuration>
- <goals>
- <goal>mapping</goal>
- </goals>
- </execution>
- </executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeEndpoint.java?rev=579875&r1=579874&r2=579875&view=diff
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeEndpoint.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeEndpoint.java Wed Sep 26 19:42:49 2007
@@ -147,8 +147,7 @@
serviceFactory.setPopulateFromClass(true);
endpoint = new EndpointImpl(getBus(), getPojo(),
new JaxWsServerFactoryBean(serviceFactory));
- endpoint
- .setBindingUri(org.apache.cxf.binding.jbi.JBIConstants.NS_JBI_BINDING);
+ endpoint.setBindingUri(org.apache.cxf.binding.jbi.JBIConstants.NS_JBI_BINDING);
endpoint.setInInterceptors(getInInterceptors());
endpoint.setInFaultInterceptors(getInFaultInterceptors());
endpoint.setOutInterceptors(getOutInterceptors());
@@ -175,7 +174,7 @@
.getDestination(exchange.getService().toString()
+ exchange.getInterfaceName().toString());
DeliveryChannel dc = getContext().getDeliveryChannel();
-
+ jbiTransportFactory.setDeliveryChannel(dc);
jbiDestination.setDeliveryChannel(dc);
if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
jbiDestination.getJBIDispatcherUtil().dispatch(exchange);
@@ -242,9 +241,10 @@
@PostConstruct
protected void injectPojo() {
try {
+ ComponentContext context = getContext();
Method mth = pojo.getClass().getMethod("setContext", new Class[] {ComponentContext.class });
if (mth != null) {
- mth.invoke(pojo, new Object[] {getContext()});
+ mth.invoke(pojo, new Object[] {context});
}
} catch (Exception e) {
logger.debug("Unable to inject ComponentContext: " + e.getMessage());
Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java?rev=579875&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java Wed Sep 26 19:42:49 2007
@@ -0,0 +1,212 @@
+/*
+ * 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.servicemix.cxfse;
+
+import javax.jbi.component.ComponentContext;
+import javax.naming.InitialContext;
+import javax.xml.namespace.QName;
+
+import org.apache.activemq.util.IdGenerator;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+import org.apache.servicemix.client.ClientFactory;
+import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.jbi.container.JBIContainer;
+
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.InitializingBean;
+
+/**
+ *
+ * @author ffang
+ * @org.apache.xbean.XBean element="proxy"
+ * description="A CXF proxy"
+ *
+ */
+public class CxfSeProxyFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
+
+ private String name = ClientFactory.DEFAULT_JNDI_NAME;
+ private JBIContainer container;
+ private ClientFactory factory;
+ private ComponentContext context;
+ private Class type;
+ private Object proxy;
+ private QName service;
+ private QName interfaceName;
+ private String endpoint;
+ private boolean propagateSecuritySubject;
+
+ private ServiceMixClient client;
+
+ public Object getObject() throws Exception {
+ if (proxy == null) {
+ proxy = createProxy();
+ }
+ return proxy;
+ }
+
+ private Object createProxy() throws Exception {
+ JaxWsProxyFactoryBean cf = new JaxWsProxyFactoryBean();
+ cf.setServiceName(getService());
+ cf.setServiceClass(type);
+ cf.setAddress("jbi://" + new IdGenerator().generateSanitizedId());
+ cf.setBindingId(org.apache.cxf.binding.jbi.JBIConstants.NS_JBI_BINDING);
+ return cf.create();
+ }
+
+
+
+ public Class getObjectType() {
+ return type;
+ }
+
+ public boolean isSingleton() {
+ return true;
+ }
+
+ protected ComponentContext getInternalContext() throws Exception {
+ if (context == null) {
+ if (factory == null) {
+ if (container != null) {
+ factory = container.getClientFactory();
+ } else {
+ factory = (ClientFactory) new InitialContext().lookup(name);
+ }
+ }
+ client = factory.createClient();
+ context = client.getContext();
+ }
+ return context;
+ }
+
+ public Class getType() {
+ return type;
+ }
+
+ public void setType(Class type) {
+ this.type = type;
+ }
+
+ public String getEndpoint() {
+ return endpoint;
+ }
+
+ public void setEndpoint(String endpointName) {
+ this.endpoint = endpointName;
+ }
+
+ public QName getInterfaceName() {
+ return interfaceName;
+ }
+
+ public void setInterfaceName(QName interfaceName) {
+ this.interfaceName = interfaceName;
+ }
+
+ public QName getService() {
+ return service;
+ }
+
+ public void setService(QName service) {
+ this.service = service;
+ }
+
+ /**
+ * @return the context
+ */
+ public ComponentContext getContext() {
+ return context;
+ }
+
+ /**
+ * @param context the context to set
+ */
+ public void setContext(ComponentContext context) {
+ this.context = context;
+ }
+
+ /**
+ * @return the container
+ */
+ public JBIContainer getContainer() {
+ return container;
+ }
+
+ /**
+ * @param container the container to set
+ */
+ public void setContainer(JBIContainer container) {
+ this.container = container;
+ }
+
+ /**
+ * @return the factory
+ */
+ public ClientFactory getFactory() {
+ return factory;
+ }
+
+ /**
+ * @param factory the factory to set
+ */
+ public void setFactory(ClientFactory factory) {
+ this.factory = factory;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the propagateSecuritySubject
+ */
+ public boolean isPropagateSecuritySubject() {
+ return propagateSecuritySubject;
+ }
+
+ /**
+ * @param propagateSecuritySubject the propagateSecuritySubject to set
+ */
+ public void setPropagateSecuritySubject(boolean propagateSecuritySubject) {
+ this.propagateSecuritySubject = propagateSecuritySubject;
+ }
+
+ public void afterPropertiesSet() throws Exception {
+ if (type == null) {
+ throw new IllegalArgumentException("type must be set");
+ }
+ }
+
+ public void destroy() throws Exception {
+ if (client != null) {
+ client.close();
+ client = null;
+ }
+ }
+
+}
+
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/CxfSeProxyFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java?rev=579875&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java Wed Sep 26 19:42:49 2007
@@ -0,0 +1,70 @@
+/*
+ * 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.servicemix.cxfse;
+
+import java.util.logging.Logger;
+
+import javax.jbi.messaging.InOut;
+import javax.xml.namespace.QName;
+
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.jbi.jaxp.StringSource;
+import org.apache.servicemix.tck.SpringTestSupport;
+import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+
+public class CxfSeClientProxyTest extends SpringTestSupport {
+
+ private static final Logger LOG = Logger.getLogger(CxfSeClientProxyTest.class.getName());
+ private DefaultServiceMixClient client;
+ private InOut io;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ client = new DefaultServiceMixClient(jbi);
+ io = client.createInOutExchange();
+ io.setService(new QName("http://apache.org/hello_world_soap_http", "SOAPService"));
+ io.setInterfaceName(new QName("http://apache.org/hello_world_soap_http", "Greeter"));
+ io.setOperation(new QName("http://apache.org/hello_world_soap_http", "greetMe"));
+ }
+
+ public void testClientProxy() throws Exception {
+ LOG.info("test clientProxy");
+ io.getInMessage().setContent(new StringSource(
+ "<message xmlns='http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper'>"
+ + "<part> "
+ + "<greetMe xmlns='http://apache.org/hello_world_soap_http/types'><requestType>"
+ + "ffang"
+ + "</requestType></greetMe>"
+ + "</part> "
+ + "</message>"));
+ client.sendSync(io);
+ assertTrue(new SourceTransformer().contentToString(
+ io.getOutMessage()).indexOf("Hello ffang 3") > 0);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ @Override
+ protected AbstractXmlApplicationContext createBeanFactory() {
+ return new ClassPathXmlApplicationContext("org/apache/servicemix/cxfse/client-proxy.xml");
+ }
+
+}
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java?rev=579875&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java Wed Sep 26 19:42:49 2007
@@ -0,0 +1,66 @@
+/*
+ * 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.servicemix.cxfse;
+
+
+import javax.jbi.component.ComponentContext;
+import javax.jws.WebService;
+
+import org.apache.cxf.calculator.CalculatorPortType;
+
+
+
+@WebService(serviceName = "SOAPService",
+ portName = "SoapPort",
+ endpointInterface = "org.apache.hello_world_soap_http.Greeter",
+ targetNamespace = "http://apache.org/hello_world_soap_http")
+
+public class GreeterImplForClientProxy {
+
+ private ComponentContext context;
+ private CalculatorPortType calculator;
+ public String greetMe(String me) {
+ int ret = 0;
+ try {
+
+ ret = getCalculator().add(1, 2);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return "Hello " + me + " " + ret;
+ }
+
+ public ComponentContext getContext() {
+ return context;
+ }
+
+ public void setContext(ComponentContext context) {
+ this.context = context;
+ }
+
+ public void setCalculator(CalculatorPortType calculator) {
+ this.calculator = calculator;
+ }
+
+ public CalculatorPortType getCalculator() {
+ return calculator;
+ }
+
+
+
+}
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml?rev=579875&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml Wed Sep 26 19:42:49 2007
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
+ xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0"
+ xmlns:test="urn:test"
+ xmlns:calculator="http://apache.org/cxf/calculator">
+
+ <sm:container id="jbi" embedded="true">
+
+ <sm:endpoints>
+ <cxfse:endpoint>
+ <cxfse:pojo>
+ <bean class="org.apache.cxf.calculator.CalculatorImpl">
+ </bean>
+
+ </cxfse:pojo>
+ <cxfse:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfse:inInterceptors>
+ <cxfse:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfse:outInterceptors>
+ <cxfse:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfse:inFaultInterceptors>
+ <cxfse:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfse:outFaultInterceptors>
+ </cxfse:endpoint>
+ <cxfse:endpoint>
+ <cxfse:pojo>
+ <bean class="org.apache.servicemix.cxfse.GreeterImplForClientProxy">
+ <property name="calculator">
+ <cxfse:proxy service="calculator:CalculatorService" type="org.apache.cxf.calculator.CalculatorPortType" />
+ </property>
+ </bean>
+
+ </cxfse:pojo>
+ <cxfse:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfse:inInterceptors>
+ <cxfse:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfse:outInterceptors>
+ <cxfse:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfse:inFaultInterceptors>
+ <cxfse:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfse:outFaultInterceptors>
+ </cxfse:endpoint>
+ </sm:endpoints>
+
+ </sm:container>
+
+</beans>
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml