You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/08/10 19:09:33 UTC
svn commit: r430441 - in /incubator/servicemix/trunk/servicemix-jsr181/src:
main/java/org/apache/servicemix/jsr181/
main/java/org/apache/servicemix/jsr181/xfire/
test/java/org/apache/servicemix/jsr181/
test/java/org/apache/servicemix/jsr181/xfire/ test...
Author: gnodet
Date: Thu Aug 10 10:09:32 2006
New Revision: 430441
URL: http://svn.apache.org/viewvc?rev=430441&view=rev
Log:
SM-528: use the ClientFactory inside the jsr181 proxy to ease configuration
To handle that, a BeanFactory with some existing beans is set as the parent
of the SU bean factory. It allow using a "#context" to retrieve a ComponentContext
inside the SU.
Added:
incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/Jsr181ProxySUTest.java
incubator/servicemix/trunk/servicemix-jsr181/src/test/java/test/EchoProxy.java
incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/proxy/
incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/proxy/xbean.xml
incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/target/
incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/target/xbean.xml
Modified:
incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointComponentContext.java
incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointDeliveryChannel.java
incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java
incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181XBeanDeployer.java
incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/xfire/JbiProxyFactoryBean.java
incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/xfire/JbiProxyTest.java
incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/good1/xbean.xml
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointComponentContext.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointComponentContext.java?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointComponentContext.java (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointComponentContext.java Thu Aug 10 10:09:32 2006
@@ -29,7 +29,6 @@
import javax.naming.InitialContext;
import javax.xml.namespace.QName;
-import org.apache.servicemix.common.Endpoint;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
@@ -37,11 +36,9 @@
private ComponentContext context;
private DeliveryChannel channel;
- private Endpoint endpoint;
- public EndpointComponentContext(ComponentContext context, Endpoint endpoint) {
+ public EndpointComponentContext(ComponentContext context) {
this.context = context;
- this.endpoint = endpoint;
}
public ServiceEndpoint activateEndpoint(QName serviceName, String endpointName) throws JBIException {
@@ -62,7 +59,7 @@
public DeliveryChannel getDeliveryChannel() throws MessagingException {
if (this.channel == null) {
- this.channel = new EndpointDeliveryChannel(context.getDeliveryChannel(), endpoint);
+ this.channel = new EndpointDeliveryChannel(context.getDeliveryChannel());
}
return this.channel;
}
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointDeliveryChannel.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointDeliveryChannel.java?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointDeliveryChannel.java (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/EndpointDeliveryChannel.java Thu Aug 10 10:09:32 2006
@@ -24,9 +24,6 @@
import javax.jbi.servicedesc.ServiceEndpoint;
import javax.xml.namespace.QName;
-import org.apache.servicemix.common.BaseLifeCycle;
-import org.apache.servicemix.common.Endpoint;
-
/**
* This class is a wrapper around an existing DeliveryChannel
* that will be given to service engine endpoints so that
@@ -37,12 +34,10 @@
*/
public class EndpointDeliveryChannel implements DeliveryChannel {
- private DeliveryChannel channel;
- private Endpoint endpoint;
+ private final DeliveryChannel channel;
- public EndpointDeliveryChannel(DeliveryChannel channel, Endpoint endpoint) {
+ public EndpointDeliveryChannel(DeliveryChannel channel) {
this.channel = channel;
- this.endpoint = endpoint;
}
public MessageExchange accept() throws MessagingException {
@@ -77,8 +72,7 @@
if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
throw new UnsupportedOperationException("Asynchonous send of active exchanges are not supported");
}
- BaseLifeCycle lf = (BaseLifeCycle) endpoint.getServiceUnit().getComponent().getLifeCycle();
- lf.sendConsumerExchange(exchange, endpoint);
+ channel.send(exchange);
}
public boolean sendSync(MessageExchange exchange, long timeout) throws MessagingException {
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java Thu Aug 10 10:09:32 2006
@@ -43,7 +43,6 @@
import org.apache.servicemix.common.ExchangeProcessor;
import org.apache.servicemix.common.xbean.XBeanServiceUnit;
import org.apache.servicemix.jsr181.xfire.JbiFaultSerializer;
-import org.apache.servicemix.jsr181.xfire.JbiTransport;
import org.apache.servicemix.jsr181.xfire.ServiceFactoryHelper;
import org.codehaus.xfire.XFire;
import org.codehaus.xfire.service.Service;
@@ -144,7 +143,7 @@
logger = this.serviceUnit.getComponent().getLogger();
ComponentContext ctx = this.serviceUnit.getComponent().getComponentContext();
activated = ctx.activateEndpoint(service, endpoint);
- injectContext(new EndpointComponentContext(ctx, this));
+ injectContext(new EndpointComponentContext(ctx));
processor.start();
}
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181XBeanDeployer.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181XBeanDeployer.java?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181XBeanDeployer.java (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181XBeanDeployer.java Thu Aug 10 10:09:32 2006
@@ -16,12 +16,24 @@
*/
package org.apache.servicemix.jsr181;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import javax.jbi.management.DeploymentException;
import org.apache.servicemix.common.BaseComponent;
+import org.apache.servicemix.common.BaseLifeCycle;
import org.apache.servicemix.common.Endpoint;
import org.apache.servicemix.common.xbean.AbstractXBeanDeployer;
import org.apache.servicemix.common.xbean.XBeanServiceUnit;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
public class Jsr181XBeanDeployer extends AbstractXBeanDeployer {
@@ -53,5 +65,61 @@
return true;
}
+ protected List getBeanFactoryPostProcessors(String serviceUnitRootPath) {
+ List processors = new ArrayList(super.getBeanFactoryPostProcessors(serviceUnitRootPath));
+ processors.add(new BeanFactoryPostProcessor() {
+ public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException {
+ Map beans = new HashMap();
+ beans.put("context", new EndpointComponentContext(((BaseLifeCycle) component.getLifeCycle()).getContext()));
+ BeanFactory parent = new SimpleBeanFactory(beans);
+ factory.setParentBeanFactory(parent);
+ }
+ });
+ return processors;
+ }
+
+ private static class SimpleBeanFactory implements BeanFactory {
+ private final Map beans;
+ public SimpleBeanFactory(Map beans) {
+ this.beans = beans;
+ }
+ public boolean containsBean(String name) {
+ return beans.containsKey(name);
+ }
+ public String[] getAliases(String name) throws NoSuchBeanDefinitionException {
+ Object bean = beans.get(name);
+ if (bean == null) {
+ throw new NoSuchBeanDefinitionException(name);
+ }
+ return new String[0];
+ }
+ public Object getBean(String name) throws BeansException {
+ return getBean(name, null);
+ }
+ public Object getBean(String name, Class requiredType) throws BeansException {
+ Object bean = beans.get(name);
+ if (bean == null) {
+ throw new NoSuchBeanDefinitionException(name);
+ }
+ if (requiredType != null && !requiredType.isInstance(bean)) {
+ throw new BeanNotOfRequiredTypeException(name, requiredType, bean.getClass());
+ }
+ return bean;
+ }
+ public Class getType(String name) throws NoSuchBeanDefinitionException {
+ Object bean = beans.get(name);
+ if (bean == null) {
+ throw new NoSuchBeanDefinitionException(name);
+ }
+ return bean.getClass();
+ }
+ public boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
+ Object bean = beans.get(name);
+ if (bean == null) {
+ throw new NoSuchBeanDefinitionException(name);
+ }
+ return true;
+ }
+ }
}
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/xfire/JbiProxyFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/xfire/JbiProxyFactoryBean.java?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/xfire/JbiProxyFactoryBean.java (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/xfire/JbiProxyFactoryBean.java Thu Aug 10 10:09:32 2006
@@ -20,10 +20,15 @@
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
+import javax.jbi.JBIException;
import javax.jbi.component.ComponentContext;
+import javax.naming.InitialContext;
import javax.xml.namespace.QName;
+import org.apache.servicemix.client.ClientFactory;
import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.client.ServiceMixClientFacade;
import org.apache.servicemix.jbi.container.JBIContainer;
import org.apache.servicemix.jsr181.Jsr181LifeCycle;
import org.codehaus.xfire.XFire;
@@ -40,7 +45,10 @@
*/
public class JbiProxyFactoryBean implements FactoryBean {
+ private String name = ClientFactory.DEFAULT_JNDI_NAME;
private JBIContainer container;
+ private ClientFactory factory;
+ private ComponentContext context;
private Class type;
private Object proxy;
private InvocationHandler jbiInvocationHandler;
@@ -68,9 +76,7 @@
synchronized private InvocationHandler getJBIInvocationHandler() throws Exception {
if( jbiInvocationHandler == null ) {
- DefaultServiceMixClient client = new DefaultServiceMixClient(container);
- ComponentContext context = client.getContext();
- XFire xfire = Jsr181LifeCycle.createXFire(context);
+ XFire xfire = Jsr181LifeCycle.createXFire(getInternalContext());
Object o = JbiProxy.create(xfire, context, interfaceName, service, endpoint, type);
jbiInvocationHandler = Proxy.getInvocationHandler(o);
}
@@ -84,13 +90,26 @@
public boolean isSingleton() {
return true;
}
-
- public JBIContainer getContainer() {
- return container;
- }
-
- public void setContainer(JBIContainer container) {
- this.container = container;
+
+ protected ComponentContext getInternalContext() throws Exception {
+ if (context == null) {
+ if (factory == null) {
+ if (context != null) {
+ factory = new ClientFactory() {
+ public ServiceMixClient createClient() throws JBIException {
+ return new ServiceMixClientFacade(context);
+ }
+ };
+ } else if (container != null) {
+ factory = container.getClientFactory();
+ } else {
+ factory = (ClientFactory) new InitialContext().lookup(name);
+ }
+ }
+ DefaultServiceMixClient client = new DefaultServiceMixClient(container);
+ context = client.getContext();
+ }
+ return context;
}
public Class getType() {
@@ -123,6 +142,62 @@
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;
}
}
Added: incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/Jsr181ProxySUTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/Jsr181ProxySUTest.java?rev=430441&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/Jsr181ProxySUTest.java (added)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/Jsr181ProxySUTest.java Thu Aug 10 10:09:32 2006
@@ -0,0 +1,86 @@
+/*
+ * 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.jsr181;
+
+import java.io.File;
+import java.net.URL;
+
+import javax.jbi.messaging.ExchangeStatus;
+import javax.jbi.messaging.InOut;
+import javax.naming.InitialContext;
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.jbi.container.JBIContainer;
+import org.apache.servicemix.jbi.jaxp.StringSource;
+
+public class Jsr181ProxySUTest extends TestCase {
+
+ protected JBIContainer container;
+
+ protected void setUp() throws Exception {
+ container = new JBIContainer();
+ container.setUseMBeanServer(false);
+ container.setCreateMBeanServer(false);
+ container.setMonitorInstallationDirectory(false);
+ container.setNamingContext(new InitialContext());
+ container.setEmbedded(true);
+ container.init();
+ }
+
+ protected void tearDown() throws Exception {
+ if (container != null) {
+ container.shutDown();
+ }
+ }
+
+ public void test() throws Exception {
+ Jsr181Component component = new Jsr181Component();
+ container.activateComponent(component, "JSR181Component");
+
+ // Start container
+ container.start();
+
+ // Deploy SU
+ component.getServiceUnitManager().deploy("target", getServiceUnitPath("target"));
+ component.getServiceUnitManager().init("target", getServiceUnitPath("target"));
+ component.getServiceUnitManager().start("target");
+
+ component.getServiceUnitManager().deploy("proxy", getServiceUnitPath("proxy"));
+ component.getServiceUnitManager().init("proxy", getServiceUnitPath("proxy"));
+ component.getServiceUnitManager().start("proxy");
+
+ DefaultServiceMixClient client = new DefaultServiceMixClient(container);
+ InOut me = client.createInOutExchange(new QName("http://test", "Echo"), null, null);
+ me.setInMessage(me.createMessage());
+ me.getInMessage().setContent(new StringSource("<echo xmlns='http://test'><msg>world</msg></echo>"));
+ client.sendSync(me);
+ assertEquals(ExchangeStatus.ACTIVE, me.getStatus());
+ assertNotNull(me.getOutMessage());
+ client.done(me);
+ }
+
+ protected String getServiceUnitPath(String name) {
+ URL url = getClass().getClassLoader().getResource(name + "/xbean.xml");
+ File path = new File(url.getFile());
+ path = path.getParentFile();
+ return path.getAbsolutePath();
+ }
+
+}
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/xfire/JbiProxyTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/xfire/JbiProxyTest.java?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/xfire/JbiProxyTest.java (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/test/java/org/apache/servicemix/jsr181/xfire/JbiProxyTest.java Thu Aug 10 10:09:32 2006
@@ -24,15 +24,13 @@
import junit.framework.TestCase;
-import org.codehaus.xfire.XFire;
-import org.codehaus.xfire.XFireFactory;
import org.apache.servicemix.client.DefaultServiceMixClient;
import org.apache.servicemix.jbi.container.JBIContainer;
import org.apache.servicemix.jbi.jaxp.StringSource;
import org.apache.servicemix.jsr181.Jsr181Endpoint;
import org.apache.servicemix.jsr181.Jsr181LifeCycle;
import org.apache.servicemix.jsr181.Jsr181SpringComponent;
-import org.apache.servicemix.jsr181.xfire.JbiProxy;
+import org.codehaus.xfire.XFire;
public class JbiProxyTest extends TestCase {
Added: incubator/servicemix/trunk/servicemix-jsr181/src/test/java/test/EchoProxy.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/test/java/test/EchoProxy.java?rev=430441&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/test/java/test/EchoProxy.java (added)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/test/java/test/EchoProxy.java Thu Aug 10 10:09:32 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 test;
+
+public class EchoProxy implements Echo {
+
+ private Echo echo;
+
+ /**
+ * @return the echo
+ */
+ public Echo getEcho() {
+ return echo;
+ }
+
+ /**
+ * @param echo the echo to set
+ */
+ public void setEcho(Echo echo) {
+ this.echo = echo;
+ }
+
+ public String echo(String input) {
+ return echo.echo(input);
+ }
+
+}
Modified: incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/good1/xbean.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/good1/xbean.xml?rev=430441&r1=430440&r2=430441&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/good1/xbean.xml (original)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/good1/xbean.xml Thu Aug 10 10:09:32 2006
@@ -3,7 +3,9 @@
<bean name="endpoint1" class="org.apache.servicemix.jsr181.Jsr181Endpoint">
<property name="typeMapping" value="xmlbeans"/>
<property name="pojo">
- <bean class="test.EchoService" />
+ <bean class="test.EchoService">
+ <property name="context" ref="context" />
+ </bean>
</property>
</bean>
</beans>
Added: incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/proxy/xbean.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/proxy/xbean.xml?rev=430441&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/proxy/xbean.xml (added)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/proxy/xbean.xml Thu Aug 10 10:09:32 2006
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<beans xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0"
+ xmlns:test="http://test">
+
+ <jsr181:endpoint serviceInterface="test.Echo">
+ <jsr181:pojo>
+ <bean class="test.EchoProxy">
+ <property name="echo">
+ <jsr181:proxy service="test:EchoService" context="#context" type="test.Echo" />
+ </property>
+ </bean>
+ </jsr181:pojo>
+ </jsr181:endpoint>
+
+</beans>
Added: incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/target/xbean.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/target/xbean.xml?rev=430441&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/target/xbean.xml (added)
+++ incubator/servicemix/trunk/servicemix-jsr181/src/test/resources/target/xbean.xml Thu Aug 10 10:09:32 2006
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<beans xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0"
+ xmlns:test="http://test">
+
+ <jsr181:endpoint serviceInterface="test.Echo" service="test:EchoService">
+ <jsr181:pojo>
+ <bean class="test.EchoService2" />
+ </jsr181:pojo>
+ </jsr181:endpoint>
+
+</beans>