Author: ffang
Date: Mon Oct 27 00:41:53 2008
New Revision: 708100

URL: http://svn.apache.org/viewvc?rev=708100&view=rev
Log:
[SM-1571]CXF BC Provider using JMS Transport is not scalable (locks thread 
waiting for external service response)

Added:
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
   (with props)
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
   (with props)
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
   (with props)
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
   (with props)
Modified:
    servicemix/components/bindings/servicemix-cxf-bc/trunk/pom.xml
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java
    
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java

Modified: servicemix/components/bindings/servicemix-cxf-bc/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/pom.xml?rev=708100&r1=708099&r2=708100&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-cxf-bc/trunk/pom.xml (original)
+++ servicemix/components/bindings/servicemix-cxf-bc/trunk/pom.xml Mon Oct 27 
00:41:53 2008
@@ -48,7 +48,7 @@
     <servicemix-version>3.2.1</servicemix-version>
     <servicemix-shared-version>2008.02-SNAPSHOT</servicemix-shared-version>
     <servicemix-cxf-se-version>2008.02-SNAPSHOT</servicemix-cxf-se-version>
-    <cxf-version>2.1.3</cxf-version>
+    <cxf-version>2.1.4-SNAPSHOT</cxf-version>
     <jetty-version>6.1.6</jetty-version>
     <spring-version>2.0.6</spring-version>
     <derby-version>10.2.2.0</derby-version>

Modified: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java?rev=708100&r1=708099&r2=708100&view=diff
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
 (original)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
 Mon Oct 27 00:41:53 2008
@@ -133,6 +133,8 @@
     private boolean mtomEnabled;
 
     private boolean useJBIWrapper = true;
+    
+    private boolean synchronous = true;
 
     public void processExchange(MessageExchange exchange) {
 
@@ -153,8 +155,9 @@
         Message message = ep.getBinding().createMessage();
         message.put(MessageExchange.class, exchange);
         Exchange cxfExchange = new ExchangeImpl();
+        cxfExchange.setSynchronous(isSynchronous());
         cxfExchange.put(MessageExchange.class, exchange);
-
+        
         message.setExchange(cxfExchange);
         cxfExchange.setOutMessage(message);
 
@@ -177,6 +180,7 @@
         cxfExchange.put(BindingOperationInfo.class, boi);
         cxfExchange.put(Endpoint.class, ep);
         cxfExchange.put(Service.class, cxfService);
+        cxfExchange.put(Bus.class, getBus());
         PhaseChainCache outboundChainCache = new PhaseChainCache();
         PhaseManager pm = getBus().getExtension(PhaseManager.class);
         List<Interceptor> outList = new ArrayList<Interceptor>();
@@ -229,13 +233,12 @@
                 throw ex;
             }
             
-            
             os = message.getContent(OutputStream.class);
             os.flush();
             is.close();
             os.close();
         } catch (Exception e) {
-            faultProcess(exchange, message, e);
+               faultProcess(exchange, message, e);
         }
 
     }
@@ -571,4 +574,20 @@
         transformer.transform(src, result);
         return new ByteArrayInputStream(baos.toByteArray());
     }
+
+    /**
+     * Specifies if the endpoints send message synchronously to external 
server using underlying 
+     * jms/http transport
+     *
+     *  * @param  synchronous a boolean
+     * @org.apache.xbean.Property description="Specifies if the endpoints send 
message synchronously to external server using underlying 
+     * jms/http transport. Default is <code>true</code>."
+     **/
+       public void setSynchronous(boolean synchronous) {
+               this.synchronous = synchronous;
+       }
+
+       public boolean isSynchronous() {
+               return synchronous;
+       }
 }

Modified: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java?rev=708100&r1=708099&r2=708100&view=diff
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java
 (original)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java
 Mon Oct 27 00:41:53 2008
@@ -37,6 +37,14 @@
                 e.printStackTrace();
             }
         }
+        if ("wait".equals(me)) {
+            try {
+                Thread.sleep(10000);
+            } catch (InterruptedException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
         return "Hello " + me;
     }
         

Added: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java?rev=708100&view=auto
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
 (added)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
 Mon Oct 27 00:41:53 2008
@@ -0,0 +1,293 @@
+/*
+ * 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.cxfbc.provider;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import javax.jbi.messaging.InOut;
+import javax.xml.namespace.QName;
+
+
+import org.apache.cxf.common.logging.LogUtils;
+
+import org.apache.cxf.testutil.common.ServerLauncher;
+
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.cxfbc.EmbededJMSBrokerLauncher;
+import org.apache.servicemix.cxfbc.MyJMSServer;
+import org.apache.servicemix.jbi.container.SpringJBIContainer;
+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;
+
+/*
+ * This test is designed to verify that if use asynchrounous mode, the cxf bc 
provider will use non block
+ * mode to invoke the external server through underlying jms or http 
transport.To prove it works, configure the
+ * jbi container allocate only one thread to the cxf bc, and use a outgoing 
chain TimeCompareInterceptor to illustrate 
+ * the second invocation send out before the first one returns, which means 
the noblock cxf bc provide works.  
+ */
+public class CxfBCSEProviderAsyncSystemTest extends SpringTestSupport {
+    
+    private static final Logger LOG = 
LogUtils.getL7dLogger(CxfBCSEProviderAsyncSystemTest.class);
+    private static boolean serversStarted;
+        
+
+    private ServerLauncher sl;
+    private ServerLauncher embeddedLauncher;
+    private ServerLauncher jmsLauncher;
+    private boolean success;
+    
+    public void startServers() throws Exception {
+        if (serversStarted) {
+            return;
+        }
+        Map<String, String> props = new HashMap<String, String>();             
   
+        
+        
+
+        if (System.getProperty("activemq.store.dir") != null) {
+            props.put("activemq.store.dir", 
System.getProperty("activemq.store.dir"));
+        }
+        props.put("java.util.logging.config.file", 
+                  System.getProperty("java.util.logging.config.file"));
+        
+        assertTrue("server did not launch correctly", 
+                   launchServer(EmbededJMSBrokerLauncher.class, props, false));
+        embeddedLauncher =  sl;
+        assertTrue("server did not launch correctly", 
+                launchServer(MyJMSServer.class, null, false));
+        jmsLauncher = sl;
+        
+        assertTrue("server did not launch correctly", 
+                launchServer(MyServer.class, props, false));
+        
+        serversStarted = true;
+    }
+    
+    protected void setUp() throws Exception {
+        startServers();
+        //super.setUp();
+        LOG.info("setUp is invoked");            
+    }       
+    
+    public boolean launchServer(Class<?> clz, Map<String, String> p, boolean 
inProcess) {
+        boolean ok = false;
+        try { 
+            sl = new ServerLauncher(clz.getName(), p, null, inProcess);
+            ok = sl.launchServer();
+            assertTrue("server failed to launch", ok);
+            
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            fail("failed to launch server " + clz);
+        }
+        
+        return ok;
+    }    
+               
+    public void setUpJBI(String beanFile) throws Exception {
+        if (context != null) {
+            context.refresh();
+        }
+        transformer = new SourceTransformer();
+        if (beanFile == null) {
+            context = createBeanFactory();
+        } else {
+            context = createBeanFactory(beanFile);
+        }
+                
+        jbi = (SpringJBIContainer) context.getBean("jbi");
+        assertNotNull("JBI Container not found in spring!", jbi);
+        
+    }
+    
+    public void tearDown() throws Exception {
+        if (context != null) {
+            context.destroy();
+            context = null;
+        }
+        if (jbi != null) {
+            jbi.shutDown();
+            jbi.destroy();
+            jbi = null;
+        }
+        
+        try {
+            embeddedLauncher.stopServer();         
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            fail("failed to stop server " + embeddedLauncher.getClass());
+        }
+        try {
+            jmsLauncher.stopServer();         
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            fail("failed to stop server " + jmsLauncher.getClass());
+        } 
+        
+        try {
+            sl.stopServer();         
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            fail("failed to stop server " + sl.getClass());
+        }
+        serversStarted = false;
+    }
+
+    
+    
+    public void testGreetMeProviderWithHttpTransportAsync() throws Exception {
+        
setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml");
+        greetMeProviderHttpTestBase();
+        assertTrue(success);
+    }
+
+    public void testGreetMeProviderWithJmsTransportAsync() throws Exception {
+        
setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml");
+        greetMeProviderJmsTestBase();
+        assertTrue(success);
+    }
+    
+    public void testGreetMeProviderWithHttpTransportSync() throws Exception {
+        
setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml");
+        greetMeProviderHttpTestBase();
+        assertTrue(success);
+    }
+
+    public void testGreetMeProviderWithJmsTransportSync() throws Exception {
+        
setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml");
+        greetMeProviderJmsTestBase();
+        assertTrue(success);
+    }
+
+        
+    private void greetMeProviderHttpTestBase() throws Exception {
+       ClientInvocationForHttp thread1 = new ClientInvocationForHttp("wait");
+       thread1.start();
+       Thread.sleep(1000);
+       ClientInvocationForHttp thread2 = new ClientInvocationForHttp("fang");
+       thread2.start();
+       thread1.join();
+       thread2.join();
+    }
+    
+    private void greetMeProviderJmsTestBase() throws Exception {
+       ClientInvocationForJms thread1 = new ClientInvocationForJms("wait");
+        thread1.start();
+        Thread.sleep(1000);
+        ClientInvocationForJms thread2 = new ClientInvocationForJms("fang");
+        thread2.start();
+        thread1.join();
+        thread2.join();
+        
+    }
+
+    @Override
+    protected AbstractXmlApplicationContext createBeanFactory() {
+        // load cxf se and bc from spring config file
+        return new ClassPathXmlApplicationContext(
+                "org/apache/servicemix/cxfbc/provider/xbean_provider.xml");
+    }
+    
+    protected AbstractXmlApplicationContext createBeanFactory(String beanFile) 
{
+        //load cxf se and bc from specified spring config file
+        return new ClassPathXmlApplicationContext(
+            beanFile);
+    }
+    
+    class ClientInvocationForHttp extends Thread {
+       private String greeting;
+       
+               public ClientInvocationForHttp(String greeting) {
+                       this.greeting = greeting;
+               }
+       
+       public void run() {
+               DefaultServiceMixClient client;
+                       try {
+                               client = new DefaultServiceMixClient(jbi);
+                       InOut io = client.createInOutExchange();
+                       io.setService(new 
QName("http://apache.org/hello_world_soap_http_provider";, "SOAPService"));
+                       io.setInterfaceName(new 
QName("http://apache.org/hello_world_soap_http_provider";, "Greeter"));
+                       io.setOperation(new 
QName("http://apache.org/hello_world_soap_http_provider";, "greetMe"));
+                       //send message to proxy
+                       io.getInMessage().setContent(new StringSource(
+                             "<greetMe 
xmlns='http://apache.org/hello_world_soap_http_provider/types'><requestType>"
+                             + greeting
+                             + "</requestType></greetMe>"));
+                       
+                       client.send(io);
+                   client.receive(100000);
+                   client.done(io);
+                   if (io.getFault() != null) {
+                       success = false;
+                   } else {
+                       success = true;
+                   }
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       } 
+            
+       }
+       
+       
+       }
+    
+    class ClientInvocationForJms extends Thread {
+               private String greeting;
+                               
+               public ClientInvocationForJms(String greeting) {
+                       this.greeting = greeting;
+               }
+       
+       public void run() {
+               DefaultServiceMixClient client;
+                       try {
+                               client = new DefaultServiceMixClient(jbi);
+                               InOut io = client.createInOutExchange();
+                   io.setService(new 
QName("http://apache.org/hello_world_soap_http";, "HelloWorldService"));
+                   io.setInterfaceName(new 
QName("http://apache.org/hello_world_soap_http";, "Greeter"));
+                   io.setOperation(new 
QName("http://apache.org/hello_world_soap_http";, "greetMe"));
+                   //send message to proxy
+                   io.getInMessage().setContent(new StringSource(
+                         "<greetMe 
xmlns='http://apache.org/hello_world_soap_http/types'><requestType>"
+                         + greeting
+                         + "</requestType></greetMe>"));
+                   
+                   client.send(io);
+                   client.receive(100000);
+                   client.done(io); 
+                   if (io.getFault() != null) {
+                       success = false;
+                   } else {
+                       success = true;
+                   }
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       } 
+            
+       }
+       
+       
+       }
+
+}

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java?rev=708100&r1=708099&r2=708100&view=diff
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java
 (original)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java
 Mon Oct 27 00:41:53 2008
@@ -28,6 +28,14 @@
 
     public String greetMe(String me) {
         System.out.println("\n\n*** GreetMe called with: " + me + "***\n\n");
+        if ("wait".equals(me)) {
+            try {
+                Thread.sleep(10000);
+            } catch (InterruptedException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
         return "Hello " + me;
     }
 

Added: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java?rev=708100&view=auto
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
 (added)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
 Mon Oct 27 00:41:53 2008
@@ -0,0 +1,69 @@
+/**
+ * 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.cxfbc.provider;
+
+import org.apache.cxf.binding.jbi.JBIFault;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.Phase;
+
+public class TimeCompareInterceptor extends AbstractPhaseInterceptor {
+   
+       private long currentThreadId;
+       private long before;
+       private boolean firstInvocation = true;
+       
+       public TimeCompareInterceptor() {
+               super(Phase.PRE_STREAM);
+       }
+
+
+
+
+       
+       
+       public void handleMessage(Message message) throws Fault {
+               if (firstInvocation) {
+                       firstInvocation = false;
+                       currentThreadId = Thread.currentThread().getId();
+                       before = System.currentTimeMillis();
+               } else {
+                       if (Thread.currentThread().getId() != currentThreadId) {
+                               //ensure only one thread is used for the cxf bc 
provider
+                               throw new JBIFault("not invoked by the same 
thread");
+                       }
+                       if (!message.getExchange().isSynchronous()) {
+                               if (System.currentTimeMillis() - before > 
10000) {
+                                       //it's asynchronous way, so should use 
nonblcok invocation
+                                       throw new JBIFault("second invocation 
shouldn't wait the first invocation return");
+                                       
+                               }
+                       } else {
+                               if (System.currentTimeMillis() - before < 8000) 
{
+                                       //it's synchronous way, so should use 
blcok invocation
+                                       throw new JBIFault("second invocation 
should wait until the first invocation return");
+                                       
+                               }
+                       }
+               }
+       }
+
+}

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml?rev=708100&view=auto
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
 (added)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
 Mon Oct 27 00:41:53 2008
@@ -0,0 +1,95 @@
+<?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:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
+       xmlns:test="urn:test"
+       xmlns:greeter="http://apache.org/hello_world_soap_http_provider";
+       xmlns:jmsgreeter="http://apache.org/hello_world_soap_http";>
+
+
+       
+  <sm:container id="jbi" embedded="true">
+    <sm:executorFactory>
+    <bean class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl">
+      <property name="configs">
+        <map>
+          <entry key="flow.seda.servicemix-cxfbc">
+            <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
+              <property name="corePoolSize" value="1"/>
+              <property name="maximumPoolSize" value="1"/>
+              <property name="queueSize" value="-1"/>
+            </bean>
+          </entry>
+        </map>
+      </property>
+    </bean>
+  </sm:executorFactory>
+    
+    <sm:endpoints>      
+      
+            <cxfbc:provider wsdl="./hello_world.wsdl"
+                      locationURI="http://localhost:9000/SoapContext/SoapPort";
+                      endpoint="SoapPort"
+                      service="greeter:SOAPService"
+                      interfaceName="greeter:Greeter"                      
+                      useJBIWrapper="false"
+                      synchronous="false"
+                      >
+        <cxfbc:inInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfbc:inInterceptors>
+        <cxfbc:outInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+          <bean 
class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+        </cxfbc:outInterceptors>
+        <cxfbc:inFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfbc:inFaultInterceptors>
+        <cxfbc:outFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+        </cxfbc:outFaultInterceptors>
+      </cxfbc:provider>
+       
+      <cxfbc:provider 
wsdl="org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
+                      service="jmsgreeter:HelloWorldService"
+                      endpoint="HelloWorldPortProxy"
+                      interfaceName="jmsgreeter:Greetr"
+                      useJBIWrapper="false"
+                      synchronous="false"
+                     >
+          <cxfbc:inInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+          </cxfbc:inInterceptors>
+          <cxfbc:outInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+            <bean 
class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+          </cxfbc:outInterceptors>
+          <cxfbc:inFaultInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+          </cxfbc:inFaultInterceptors>
+          <cxfbc:outFaultInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+          </cxfbc:outFaultInterceptors>
+      </cxfbc:provider>
+    </sm:endpoints>
+    
+  </sm:container>
+  
+</beans>

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
URL: 
http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml?rev=708100&view=auto
==============================================================================
--- 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
 (added)
+++ 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
 Mon Oct 27 00:41:53 2008
@@ -0,0 +1,95 @@
+<?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:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
+       xmlns:test="urn:test"
+       xmlns:greeter="http://apache.org/hello_world_soap_http_provider";
+       xmlns:jmsgreeter="http://apache.org/hello_world_soap_http";>
+
+
+       
+  <sm:container id="jbi" embedded="true">
+    <sm:executorFactory>
+    <bean class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl">
+      <property name="configs">
+        <map>
+           <entry key="flow.seda.servicemix-cxfbc">
+            <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
+              <property name="corePoolSize" value="1"/>
+              <property name="maximumPoolSize" value="1"/>
+              <property name="queueSize" value="-1"/>
+            </bean>
+          </entry>
+
+        </map>
+      </property>
+    </bean>
+  </sm:executorFactory>
+    
+    <sm:endpoints>      
+      
+            <cxfbc:provider wsdl="./hello_world.wsdl"
+                      locationURI="http://localhost:9000/SoapContext/SoapPort";
+                      endpoint="SoapPort"
+                      service="greeter:SOAPService"
+                      interfaceName="greeter:Greeter"                      
+                      useJBIWrapper="false"
+                      >
+        <cxfbc:inInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfbc:inInterceptors>
+        <cxfbc:outInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+          <bean 
class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+        </cxfbc:outInterceptors>
+        <cxfbc:inFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfbc:inFaultInterceptors>
+        <cxfbc:outFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+        </cxfbc:outFaultInterceptors>
+      </cxfbc:provider>
+       
+      <cxfbc:provider 
wsdl="org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
+                      service="jmsgreeter:HelloWorldService"
+                      endpoint="HelloWorldPortProxy"
+                      interfaceName="jmsgreeter:Greetr"
+                      useJBIWrapper="false"
+                      busCfg="org/apache/servicemix/cxfbc/jms_test_timeout.xml"
+                     >
+          <cxfbc:inInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+          </cxfbc:inInterceptors>
+          <cxfbc:outInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+            <bean 
class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+          </cxfbc:outInterceptors>
+          <cxfbc:inFaultInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+          </cxfbc:inFaultInterceptors>
+          <cxfbc:outFaultInterceptors>
+            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+          </cxfbc:outFaultInterceptors>
+      </cxfbc:provider>
+    </sm:endpoints>
+    
+  </sm:container>
+  
+</beans>

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml


Reply via email to