Title: [886] trunk: SM-210 : JSR181 Service Engine
Revision
886
Author
gnt
Date
2005-11-22 03:26:56 -0500 (Tue, 22 Nov 2005)

Log Message

SM-210 : JSR181 Service Engine

Added Paths


Diff

Added: trunk/servicemix-jsr181/maven.xml (885 => 886)

--- trunk/servicemix-jsr181/maven.xml	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/maven.xml	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project default="default"
+    xmlns:ant="jelly:ant">
+
+  <goal name="default" prereqs="clean, jbi:install"/>
+
+  <goal name="nightly" prereqs="clean, jbi:install, jbi:deploy"/>
+
+</project>

Added: trunk/servicemix-jsr181/project.properties (885 => 886)

--- trunk/servicemix-jsr181/project.properties	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/project.properties	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,6 @@
+jbi.component.class.name = org.servicemix.jsr181.Jsr181Component
+jbi.bootstrap.class.name = org.servicemix.jsr181.Jsr181Bootstrap
+jbi.component.type=service-engine
+
+org.apache.commons.attributes.enable=true
+org.apache.commons.attributes.index.enable=true

Added: trunk/servicemix-jsr181/project.xml (885 => 886)

--- trunk/servicemix-jsr181/project.xml	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/project.xml	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE project>
+<project>
+    <pomVersion>3</pomVersion>
+    <extend>${basedir}/../etc/project.xml</extend>
+
+    <name>ServiceMix :: JSR-181 Service Engine</name>
+    <id>servicemix-jsr181</id>
+    <shortDescription>JSR-181 service engine</shortDescription>
+    <description>JSR-181 service engine</description>
+  
+    <package>org.servicemix.jsr181</package>
+    <packageGroups>
+      <packageGroup>
+        <title>JSR-181 service engine</title>
+        <packages>org.servicemix.jsr181</packages>
+      </packageGroup>
+    </packageGroups>
+ 
+    <!-- ============ -->
+    <!-- Dependencies -->
+    <!-- ============ -->
+    <dependencies>
+    
+      <!-- JBI bundled dependencies -->
+      <dependency>
+        <groupId>servicemix</groupId>
+        <artifactId>servicemix-common</artifactId>
+        <version>${pom.currentVersion}</version>
+        <properties>
+          <eclipse.dependency>true</eclipse.dependency>
+          <jbi.bundle>true</jbi.bundle>
+          <jbi.bootstrap>true</jbi.bootstrap>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>commons-logging</groupId>
+        <artifactId>commons-logging</artifactId>
+        <version>${commons_logging_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+          <jbi.bootstrap>true</jbi.bootstrap>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>backport-util-concurrent</groupId>
+        <artifactId>backport-util-concurrent</artifactId>
+        <version>${backport_util_concurrent_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>wsdl4j</groupId>
+        <artifactId>wsdl4j</artifactId>
+        <version>${wsdl4j_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>xfire</groupId>
+        <artifactId>xfire-all</artifactId>
+        <version>${xfire_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>stax</groupId>
+        <artifactId>stax-api</artifactId>
+        <version>${stax_api_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>jdom</groupId>
+        <artifactId>jdom</artifactId>
+        <version>${jdom_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>org.xbean</groupId>
+        <artifactId>xbean-spring</artifactId>
+        <version>${xbean_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>org.xbean</groupId>
+        <artifactId>xbean-server</artifactId>
+        <version>${xbean_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>org.xbean</groupId>
+        <artifactId>xbean-kernel</artifactId>
+        <version>${xbean_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>springframework</groupId>
+        <artifactId>spring</artifactId>
+        <version>${spring_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>woodstox</groupId>
+        <artifactId>wstx-asl</artifactId>
+        <version>${woodstox_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+    <dependency>
+      <groupId>xmlbeans</groupId>
+      <artifactId>xbean</artifactId>
+      <version>${xmlbeans_version}</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+    </dependency>
+      
+      <!-- Commons attribute -->
+      <dependency>
+        <groupId>commons-attributes</groupId>
+        <artifactId>commons-attributes-api</artifactId>
+        <version>2.1</version>
+        <url>http://jakarta.apache.org/commons/attributes/</url>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>commons-attributes</groupId>
+        <artifactId>commons-attributes-plugin</artifactId>
+        <version>2.1</version>
+        <type>plugin</type>
+        <url>http://jakarta.apache.org/commons/attributes/</url>
+      </dependency>
+      
+      <!-- Backport 175 -->
+      <dependency>
+        <groupId>backport175</groupId>
+        <artifactId>backport175</artifactId>
+        <version>1.0.RC1</version>
+        <url>http://backport175.codehaus.org</url>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      
+      <!--  JAXB -->
+      <dependency>
+        <groupId>xfire</groupId>
+        <artifactId>jaxb-api</artifactId>
+        <version>20051114</version>
+        <properties>
+          <jbi.bundle>true</jbi.bundle>
+        </properties>
+      </dependency>
+      
+      <!-- Provided dependencies -->
+      <dependency>
+        <groupId>geronimo-spec</groupId>
+        <artifactId>geronimo-spec-j2ee-connector</artifactId>
+        <version>${geronimo_spec_j2ee_connector_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>geronimo-spec</groupId>
+        <artifactId>geronimo-spec-jta</artifactId>
+        <version>${geronimo_spec_jta_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>servicemix</groupId>
+        <artifactId>servicemix-jbi</artifactId>
+        <version>${pom.currentVersion}</version>
+        <properties>
+          <eclipse.dependency>true</eclipse.dependency>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>mx4j</groupId>
+        <artifactId>mx4j</artifactId>
+        <version>${mx4j_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>mx4j</groupId>
+        <artifactId>mx4j-remote</artifactId>
+        <version>${mx4j_version}</version>
+      </dependency>
+
+
+      <!-- Testing only -->
+      <dependency>
+        <groupId>servicemix</groupId>
+        <artifactId>servicemix-core</artifactId>
+        <version>${pom.currentVersion}</version>
+        <properties>
+          <eclipse.dependency>true</eclipse.dependency>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>servicemix</groupId>
+        <artifactId>servicemix-components</artifactId>
+        <version>${pom.currentVersion}</version>
+        <properties>
+          <eclipse.dependency>true</eclipse.dependency>
+        </properties>
+      </dependency>
+      <dependency>
+        <groupId>springframework</groupId>
+        <artifactId>spring</artifactId>
+        <version>${spring_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>activemq</groupId>
+        <artifactId>activemq</artifactId>
+        <version>${activemq_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>jencks</groupId>
+        <artifactId>jencks-all</artifactId>
+        <version>${jencks_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>concurrent</groupId>
+        <artifactId>concurrent</artifactId>
+        <version>${concurrent_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-beanutils</groupId>
+        <artifactId>commons-beanutils</artifactId>
+        <version>${commons_beanutils_version}</version>
+      </dependency>
+      <dependency>
+        <groupId>log4j</groupId>
+        <artifactId>log4j</artifactId>
+        <version>${log4j_version}</version>
+      </dependency>
+
+    </dependencies>  
+
+</project>

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Bootstrap.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Bootstrap.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Bootstrap.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,54 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+import org.servicemix.common.BaseBootstrap;
+
+public class Jsr181Bootstrap extends BaseBootstrap {
+
+    private Jsr181Configuration configuration;
+    
+    public Jsr181Bootstrap() {
+        configuration = new Jsr181Configuration();
+    }
+    
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseBootstrap#getExtensionMBean()
+     */
+    protected Object getExtensionMBean() throws Exception {
+        return configuration;
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseBootstrap#doInit()
+     */
+    protected void doInit() throws Exception {
+        super.doInit();
+        configuration.setRootDir(this.context.getContext().getWorkspaceRoot());
+        configuration.load();
+     }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseBootstrap#doOnInstall()
+     */
+    protected void doOnInstall() throws Exception {
+        super.doOnInstall();
+        configuration.save();
+    }
+
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Component.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Component.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Component.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,46 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+import org.servicemix.common.BaseComponent;
+import org.servicemix.common.BaseLifeCycle;
+import org.servicemix.common.BaseServiceUnitManager;
+import org.servicemix.common.Deployer;
+
+/**
+ * @author gnodet
+ *
+ */
+public class Jsr181Component extends BaseComponent {
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseComponent#createLifeCycle()
+     */
+    protected BaseLifeCycle createLifeCycle() {
+        return new Jsr181LifeCycle(this);
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseComponent#createServiceUnitManager()
+     */
+    public BaseServiceUnitManager createServiceUnitManager() {
+        Deployer[] deployers = new Deployer[] { new Jsr181XBeanDeployer(this) };
+        return new BaseServiceUnitManager(this, deployers);
+    }
+
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Configuration.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Configuration.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Configuration.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,63 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+import org.servicemix.common.PersistentConfiguration;
+
+
+public class Jsr181Configuration extends PersistentConfiguration implements Jsr181ConfigurationMBean {
+
+    public static final String WEBANNOTATIONSCLASS_PROPERTY = "webAnnotationsClass";
+    public static final String WEBANNOTATIONSCLASS_DEFAULT = "org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations";
+    public static final String TYPEMAPPINGREGISTRYCLASS_PROPERTY = "typeMappingRegistryClass";
+    public static final String TYPEMAPPINGREGISTRYCLASS_DEFAULT = "org.codehaus.xfire.jaxb2.JaxbTypeRegistry";
+    
+    public Jsr181Configuration() {
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.jsr181.Jsr181ConfigurationMBean#getTypeMappingRegistryClass()
+     */
+    public String getTypeMappingRegistryClass() {
+        return properties.getProperty(TYPEMAPPINGREGISTRYCLASS_PROPERTY, TYPEMAPPINGREGISTRYCLASS_DEFAULT);
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.jsr181.Jsr181ConfigurationMBean#setTypeMappingRegistryClass(java.lang.String)
+     */
+    public void setTypeMappingRegistryClass(String typeMappingRegistryClass) {
+        this.properties.put(TYPEMAPPINGREGISTRYCLASS_PROPERTY, typeMappingRegistryClass);
+        save();
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.jsr181.Jsr181ConfigurationMBean#getWebAnnotationsClass()
+     */
+    public String getWebAnnotationsClass() {
+        return properties.getProperty(WEBANNOTATIONSCLASS_PROPERTY, WEBANNOTATIONSCLASS_DEFAULT);
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.jsr181.Jsr181ConfigurationMBean#setWebAnnotationsClass(java.lang.String)
+     */
+    public void setWebAnnotationsClass(String webAnnotationsClass) {
+        this.properties.put(WEBANNOTATIONSCLASS_PROPERTY, webAnnotationsClass);
+        save();
+    }
+    
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181ConfigurationMBean.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181ConfigurationMBean.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181ConfigurationMBean.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,41 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+public interface Jsr181ConfigurationMBean {
+
+    /**
+     * @return Returns the typeMappingRegistryClass.
+     */
+    String getTypeMappingRegistryClass();
+
+    /**
+     * @param typeMappingRegistryClass The typeMappingRegistryClass to set.
+     */
+    void setTypeMappingRegistryClass(String typeMappingRegistryClass);
+
+    /**
+     * @return Returns the webAnnotationsClass.
+     */
+    String getWebAnnotationsClass();
+
+    /**
+     * @param webAnnotationsClass The webAnnotationsClass to set.
+     */
+    void setWebAnnotationsClass(String webAnnotationsClass);
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Endpoint.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Endpoint.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Endpoint.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,162 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+import org.apache.commons.logging.Log;
+import org.codehaus.xfire.XFire;
+import org.codehaus.xfire.service.Service;
+import org.codehaus.xfire.service.ServiceFactory;
+import org.codehaus.xfire.transport.Transport;
+import org.servicemix.common.Endpoint;
+import org.servicemix.jsr181.xfire.JbiTransport;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+import javax.jbi.component.ComponentContext;
+import javax.jbi.messaging.MessageExchange.Role;
+import javax.jbi.servicedesc.ServiceEndpoint;
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.WSDLException;
+import javax.wsdl.factory.WSDLFactory;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+public class Jsr181Endpoint extends Endpoint {
+
+    protected Object pojo;
+    protected ServiceEndpoint activated;
+    protected Service xfireService;
+    protected Log logger;
+    
+    /**
+     * @return Returns the pojo.
+     */
+    public Object getPojo() {
+        return pojo;
+    }
+
+    /**
+     * @param pojo The pojo to set.
+     */
+    public void setPojo(Object pojo) {
+        this.pojo = pojo;
+    }
+
+    /**
+     * @return Returns the xfireService.
+     */
+    public Service getXFireService() {
+        return xfireService;
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.Endpoint#getRole()
+     */
+    public Role getRole() {
+        return Role.PROVIDER;
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.Endpoint#activate()
+     */
+    public void activate() throws Exception {
+        logger = this.serviceUnit.getComponent().getLogger();
+        ComponentContext ctx = this.serviceUnit.getComponent().getComponentContext();
+        activated = ctx.activateEndpoint(service, endpoint);
+        
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.Endpoint#deactivate()
+     */
+    public void deactivate() throws Exception {
+        ServiceEndpoint ep = activated;
+        activated = null;
+        ComponentContext ctx = this.serviceUnit.getComponent().getComponentContext();
+        ctx.deactivateEndpoint(ep);
+    }
+
+
+    public void registerService() throws SAXException, IOException, ParserConfigurationException, WSDLException {
+        XFire xfire = getXFire();
+        ServiceFactory factory = getServiceFactory();
+        xfireService = factory.create(getPojo().getClass());
+        xfire.getServiceRegistry().register(xfireService);
+        xfire.getTransportManager().disableAll(xfireService.getName());
+        Transport jbiT = xfire.getTransportManager().getTransport(JbiTransport.JBI_BINDING);
+        xfire.getTransportManager().enable(jbiT, xfireService.getName());
+        this.description = generateWsdl();
+        
+        // Check service name and endpoint name
+        QName serviceName = xfireService.getServiceInfo().getName();
+        String endpointName = null;
+        if (service == null) {
+            service = serviceName;
+        } else if (!service.equals(serviceName)) {
+            logger.warn("The service name defined in the wsdl (" + serviceName + 
+                        ") does not match the service name defined in the endpoint spec (" + service + 
+                        "). WSDL description may be unusable.");
+        }
+        Definition d = WSDLFactory.newInstance().newWSDLReader().readWSDL(null, description);
+        javax.wsdl.Service service = d.getService(serviceName);
+        if (service != null) {
+            if (service.getPorts().values().size() == 1) {
+                endpointName = ((Port) service.getPorts().values().iterator().next()).getName();
+                // Check if this is the same as defined in endpoint spec
+                if (endpoint == null) {
+                    endpoint = endpointName;
+                } else if (!endpoint.equals(endpointName)) {
+                    logger.warn("The endpoint name defined in the wsdl (" + endpointName + 
+                            ") does not match the endpoint name defined in the endpoint spec (" + endpoint + 
+                    "). WSDL description may be unusable.");
+                }
+            }
+        }
+        if (endpoint == null) {
+            throw new IllegalArgumentException("endpoint name should be provided");
+        }
+    }
+    
+    protected Document generateWsdl() throws SAXException, IOException, ParserConfigurationException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        getXFire().generateWSDL(xfireService.getName(), baos);
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        factory.setNamespaceAware(true);
+        Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(baos.toByteArray()));
+        return doc;
+    }
+    
+    protected XFire getXFire() {
+        Jsr181LifeCycle jsr181LifeCycle = (Jsr181LifeCycle) this.serviceUnit.getComponent().getLifeCycle();
+        XFire xfire = jsr181LifeCycle.getXFire();
+        return xfire;
+    }
+    
+    protected ServiceFactory getServiceFactory() {
+        Jsr181LifeCycle jsr181LifeCycle = (Jsr181LifeCycle) this.serviceUnit.getComponent().getLifeCycle();
+        ServiceFactory factory = jsr181LifeCycle.getFactory();
+        return factory;
+    }
+
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181LifeCycle.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181LifeCycle.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181LifeCycle.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,167 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+import org.codehaus.xfire.MessageContext;
+import org.codehaus.xfire.XFire;
+import org.codehaus.xfire.XFireFactory;
+import org.codehaus.xfire.aegis.AegisBindingProvider;
+import org.codehaus.xfire.aegis.type.TypeMappingRegistry;
+import org.codehaus.xfire.annotations.AnnotationServiceFactory;
+import org.codehaus.xfire.annotations.WebAnnotations;
+import org.codehaus.xfire.exchange.InMessage;
+import org.codehaus.xfire.service.Service;
+import org.codehaus.xfire.service.ServiceFactory;
+import org.codehaus.xfire.transport.Channel;
+import org.codehaus.xfire.transport.Transport;
+import org.servicemix.common.BaseLifeCycle;
+import org.servicemix.common.Endpoint;
+import org.servicemix.jbi.jaxp.BytesSource;
+import org.servicemix.jsr181.xfire.JbiTransport;
+
+import javax.jbi.messaging.ExchangeStatus;
+import javax.jbi.messaging.Fault;
+import javax.jbi.messaging.InOptionalOut;
+import javax.jbi.messaging.InOut;
+import javax.jbi.messaging.MessageExchange;
+import javax.jbi.messaging.NormalizedMessage;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
+public class Jsr181LifeCycle extends BaseLifeCycle {
+
+    protected Jsr181Configuration configuration;
+    protected XFire xfire;
+    protected ServiceFactory factory;
+    
+    public Jsr181LifeCycle(Jsr181Component component) {
+        super(component);
+        configuration = new Jsr181Configuration();
+    }
+
+    /**
+     * @return Returns the factory.
+     */
+    public ServiceFactory getFactory() {
+        return factory;
+    }
+
+    /**
+     * @return Returns the xfire.
+     */
+    public XFire getXFire() {
+        return xfire;
+    }
+
+    /**
+     * @return Returns the configuration.
+     */
+    public Jsr181Configuration getConfiguration() {
+        return configuration;
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseBootstrap#getExtensionMBean()
+     */
+    protected Object getExtensionMBean() throws Exception {
+        return configuration;
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseLifeCycle#processProviderExchange(org.servicemix.common.Endpoint, javax.jbi.messaging.MessageExchange)
+     */
+    protected void processProviderExchange(Endpoint ep, MessageExchange exchange) throws Exception {
+        // TODO: fault should not be serialized as soap
+        // TODO: clean this code
+        Service service = ((Jsr181Endpoint) ep).getXFireService();
+        Transport t = xfire.getTransportManager().getTransport(JbiTransport.JBI_BINDING);
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        Channel c = t.createChannel();
+        MessageContext ctx = new MessageContext();
+        ctx.setXFire(xfire);
+        ctx.setService(service);
+        ctx.setProperty(Channel.BACKCHANNEL_URI, out);
+        InMessage msg = new InMessage();
+        NormalizedMessage in = exchange.getMessage("in");
+        msg.setXMLStreamReader(getXMLStreamReader(in.getContent()));
+        c.receive(ctx, msg);
+        
+        // Set response or DONE status
+        if (isInAndOut(exchange)) {
+            if (ctx.getExchange().getFaultMessage().getBody() != null) {
+                Fault fault = exchange.createFault();
+                fault.setContent(new BytesSource(out.toByteArray()));
+                exchange.setFault(fault);
+                exchange.setStatus(ExchangeStatus.ERROR);
+            } else {
+                NormalizedMessage outMsg = exchange.createMessage();
+                outMsg.setContent(new BytesSource(out.toByteArray()));
+                exchange.setMessage(outMsg, "out");
+            }
+        } else {
+            exchange.setStatus(ExchangeStatus.DONE);
+        }
+        channel.send(exchange);
+    }
+
+    protected boolean isInAndOut(MessageExchange exchange) {
+        return exchange instanceof InOut || exchange instanceof InOptionalOut;
+    }
+
+    /* (non-Javadoc)
+     * @see org.servicemix.common.BaseLifeCycle#doInit()
+     */
+    protected void doInit() throws Exception {
+        super.doInit();
+        configuration.setRootDir(this.context.getWorkspaceRoot());
+        configuration.load();
+        xfire = XFireFactory.newInstance().getXFire();
+        xfire.getTransportManager().register(new JbiTransport());
+        WebAnnotations webAnnotations = (WebAnnotations) createInstance(configuration.getWebAnnotationsClass());
+        TypeMappingRegistry tmRegistry = (TypeMappingRegistry) createInstance(configuration.getTypeMappingRegistryClass());
+        factory = new AnnotationServiceFactory(
+                        webAnnotations, 
+                        xfire.getTransportManager(), 
+                        new AegisBindingProvider(tmRegistry));
+    }
+    
+    protected Object createInstance(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
+        Class cl = Class.forName(className);
+        return cl.newInstance();
+    }
+    
+    protected XMLStreamReader getXMLStreamReader(Source source) throws TransformerException, XMLStreamException {
+        try {
+            return XMLInputFactory.newInstance().createXMLStreamReader(source);
+        } catch (Exception e) {
+            // ignore, as this method is not mandatory in stax
+        }
+        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+        TransformerFactory.newInstance().newTransformer().transform(source, new StreamResult(buffer));
+        return XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(buffer.toByteArray()));
+    }
+    
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181XBeanDeployer.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181XBeanDeployer.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181XBeanDeployer.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,48 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181;
+
+import org.servicemix.common.Endpoint;
+import org.servicemix.common.xbean.AbstractXBeanDeployer;
+
+import javax.jbi.management.DeploymentException;
+
+public class Jsr181XBeanDeployer extends AbstractXBeanDeployer {
+
+    public Jsr181XBeanDeployer(Jsr181Component component) {
+        super(component);
+    }
+
+    protected boolean validate(Endpoint endpoint) throws DeploymentException {
+        if (endpoint instanceof Jsr181Endpoint == false) {
+            throw failure("deploy", "Endpoint should be a Jsr181 endpoint", null);
+        }
+        Jsr181Endpoint ep = (Jsr181Endpoint) endpoint;
+        if (ep.getPojo() == null) {
+            throw failure("deploy", "Endpoint must have a non-null pojo", null);
+        }
+        try {
+            ep.registerService();
+        } catch (Exception e) {
+            throw failure("deploy", "Could not register endpoint", e);
+        }
+        return true;
+    }
+
+
+}

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/JbiChannel.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/JbiChannel.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/JbiChannel.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,65 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181.xfire;
+
+import org.codehaus.xfire.MessageContext;
+import org.codehaus.xfire.XFireException;
+import org.codehaus.xfire.exchange.OutMessage;
+import org.codehaus.xfire.transport.AbstractChannel;
+import org.codehaus.xfire.transport.Channel;
+import org.codehaus.xfire.util.STAXUtils;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import java.io.OutputStream;
+
+/**
+ * Jbi channel, only support local invocations. 
+ */
+public class JbiChannel extends AbstractChannel {
+
+    public JbiChannel(String uri, JbiTransport transport) {
+        setTransport(transport);
+        setUri(uri);
+    }
+
+    public void open() throws Exception {
+    }
+
+    public void send(MessageContext context, OutMessage message) throws XFireException {
+        if (message.getUri().equals(Channel.BACKCHANNEL_URI)) {
+            final OutputStream out = (OutputStream) context.getProperty(Channel.BACKCHANNEL_URI);
+            if (out != null) {
+                final XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(out, message.getEncoding());
+                message.getSerializer().writeMessage(message, writer, context);
+                try {
+                    writer.close();
+                } catch (XMLStreamException e) {
+                    throw new XFireException("Error closing output stream", e);
+                }
+                return;
+            }
+        }
+        throw new UnsupportedOperationException();
+    }
+
+    public void close() {
+    }
+    
+}
\ No newline at end of file

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/JbiTransport.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/JbiTransport.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/JbiTransport.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,80 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181.xfire;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codehaus.xfire.service.Service;
+import org.codehaus.xfire.transport.AbstractWSDLTransport;
+import org.codehaus.xfire.transport.Channel;
+import org.codehaus.xfire.transport.DefaultEndpoint;
+
+/**
+ * Simple jbi transport, similar to local transport,
+ * but without soap encoding. 
+ * 
+ */
+public class JbiTransport extends AbstractWSDLTransport {
+
+    private static final Log log = LogFactory.getLog(JbiTransport.class);
+    
+    public final static String JBI_TRANSPORT_NS = "http://java.sun.com/xml/ns/jbi/binding/service+engine";
+    
+    public final static String JBI_BINDING = "http://java.sun.com/xml/ns/jbi/binding/service+engine";
+    
+    private final static String URI_PREFIX = "urn:xfire:transport:jbi:";
+
+    public JbiTransport() {
+        addInHandler(new PrepareHandler());
+    }
+    
+    protected String getName()
+    {
+        return "JBI";
+    }
+    
+    public String getServiceURL(Service service) {
+        return "jbi://" + service.getName();
+    }
+
+    public String getTransportURI(Service service) {
+        return JBI_TRANSPORT_NS;
+    }
+
+    protected Channel createNewChannel(String uri) {
+        log.debug("Creating new channel for uri: " + uri);
+        JbiChannel c = new JbiChannel(uri, this);
+        c.setEndpoint(new DefaultEndpoint());
+        return c;
+    }
+
+    protected String getUriPrefix() {
+        return URI_PREFIX;
+    }
+
+    public String[] getSupportedBindings()
+    {
+        return new String[] { JBI_BINDING };
+    }
+
+    public String[] getKnownUriSchemes() {
+        return new String[] { "jbi://" };
+    }
+    
+}
+

Added: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/PrepareHandler.java (885 => 886)

--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/PrepareHandler.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/xfire/PrepareHandler.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,57 @@
+/** 
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed 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.servicemix.jsr181.xfire;
+
+import org.codehaus.xfire.MessageContext;
+import org.codehaus.xfire.exchange.InMessage;
+import org.codehaus.xfire.handler.AbstractHandler;
+import org.codehaus.xfire.handler.Phase;
+
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Handler to start document parsing. 
+ */
+public class PrepareHandler extends AbstractHandler {
+
+    public String getPhase() {
+        return Phase.PARSE;
+    }
+
+    public void invoke(MessageContext context) throws Exception {
+        InMessage message = context.getInMessage();
+        XMLStreamReader reader = message.getXMLStreamReader();
+        while (reader.hasNext()) {
+            int event = reader.next();
+            switch (event)
+            {
+                case XMLStreamReader.START_DOCUMENT:
+                    String encoding = reader.getCharacterEncodingScheme();
+                    message.setEncoding(encoding);
+                    break;
+                case XMLStreamReader.END_DOCUMENT:
+                    return;
+                case XMLStreamReader.START_ELEMENT:
+                    return;
+                default:
+                    break;
+            }
+        }
+    }
+    
+}
\ No newline at end of file

Added: trunk/servicemix-jsr181/src/test/java/org/servicemix/jsr181/Jsr181ComponentTest.java (885 => 886)

--- trunk/servicemix-jsr181/src/test/java/org/servicemix/jsr181/Jsr181ComponentTest.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/test/java/org/servicemix/jsr181/Jsr181ComponentTest.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,71 @@
+package org.servicemix.jsr181;
+
+import org.codehaus.xfire.annotations.commons.CommonsWebAttributes;
+import org.codehaus.xfire.xmlbeans.XmlBeansTypeRegistry;
+import org.servicemix.client.DefaultServiceMixClient;
+import org.servicemix.jbi.container.JBIContainer;
+import org.servicemix.jbi.jaxp.SourceTransformer;
+import org.servicemix.jbi.jaxp.StringSource;
+
+import javax.jbi.messaging.InOut;
+import javax.naming.InitialContext;
+import javax.xml.namespace.QName;
+
+import java.io.File;
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+public class Jsr181ComponentTest extends TestCase {
+
+    protected JBIContainer container;
+    
+    protected void setUp() throws Exception {
+        container = new JBIContainer();
+        container.setUseMBeanServer(true);
+        container.setCreateMBeanServer(true);
+        container.setMonitorInstallationDirectory(false);
+        container.setNamingContext(new InitialContext());
+        container.init();
+    }
+    
+    protected void tearDown() throws Exception {
+        if (container != null) {
+            container.shutDown();
+        }
+    }
+    
+    public void testCommonsAnnotations() throws Exception {
+        Jsr181Component component = new Jsr181Component();
+        Jsr181LifeCycle lifecycle = (Jsr181LifeCycle) component.getLifeCycle();
+        lifecycle.getConfiguration().setTypeMappingRegistryClass(XmlBeansTypeRegistry.class.getName());
+        lifecycle.getConfiguration().setWebAnnotationsClass(CommonsWebAttributes.class.getName());
+        container.activateComponent(component, "JSR181Component");
+
+        // Start container
+        container.start();
+        
+        // Deploy SU
+        URL url = ""
+        File path = new File(url.getFile());
+        path = path.getParentFile();
+        System.err.println(path.getAbsolutePath());
+        component.getServiceUnitManager().deploy("su", path.getAbsolutePath());
+        component.getServiceUnitManager().init("su", path.getAbsolutePath());
+        component.getServiceUnitManager().start("su");
+        
+        // Call it
+        DefaultServiceMixClient client = new DefaultServiceMixClient(container);
+        InOut me = client.createInOutExchange();
+        me.setInterfaceName(new QName("http://test", "EchoService"));
+        me.getInMessage().setContent(new StringSource("<echo xmlns='http://test'><in0>world</in0></echo>"));
+        client.sendSync(me);
+        if (me.getFault() != null) {
+            System.err.println("!!! FAULT !!!!");
+            System.err.println(new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        System.err.println(new SourceTransformer().toString(me.getOutMessage().getContent()));
+        
+    }
+    
+}

Added: trunk/servicemix-jsr181/src/test/java/test/EchoService.java (885 => 886)

--- trunk/servicemix-jsr181/src/test/java/test/EchoService.java	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/test/java/test/EchoService.java	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,17 @@
+package test;
+
+
+/**
+ * @@org.codehaus.xfire.annotations.commons.WebService(name = "EchoService")
+ * @@org.codehaus.xfire.annotations.commons.soap.SOAPBinding(style = 0)
+ */
+public class EchoService {
+
+    /**
+     * @@org.codehaus.xfire.annotations.commons.WebMethod(operationName = "echo")
+     */
+    public String echo(String input) {
+        return input;
+    }
+    
+}

Added: trunk/servicemix-jsr181/src/test/resources/log4j.properties (885 => 886)

--- trunk/servicemix-jsr181/src/test/resources/log4j.properties	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/test/resources/log4j.properties	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,20 @@
+#
+# The logging properties used during tests..
+#
+log4j.rootLogger=INFO, stdout
+log4j.logger.org.servicemix.jsr181=DEBUG
+
+log4j.logger.org.activemq=WARN
+log4j.logger.org.activeio=INFO
+
+# CONSOLE appender not used by default
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+# File appender
+log4j.appender.out=org.apache.log4j.FileAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+log4j.appender.out.file=target/test-reports/activemq-test.log
+log4j.appender.out.append=true

Added: trunk/servicemix-jsr181/src/test/resources/su/xbean.xml (885 => 886)

--- trunk/servicemix-jsr181/src/test/resources/su/xbean.xml	2005-11-22 08:23:44 UTC (rev 885)
+++ trunk/servicemix-jsr181/src/test/resources/su/xbean.xml	2005-11-22 08:26:56 UTC (rev 886)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<beans>
+  <bean name="endpoint1" class="org.servicemix.jsr181.Jsr181Endpoint">
+    <property name="pojo">
+      <bean class="test.EchoService" />
+    </property>
+  </bean>
+</beans>

Reply via email to