servicemix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gno...@apache.org
Subject svn commit: r596355 [3/3] - in /servicemix/branches/servicemix-4.0: ./ apache-servicemix/ apache-servicemix/src/main/descriptors/ apache-servicemix/src/main/release/conf/ apache-servicemix/src/main/release/etc/ examples/intermediary/ examples/intermedi...
Date Mon, 19 Nov 2007 16:23:04 GMT
Added: servicemix/branches/servicemix-4.0/openejb/src/main/java/org/apache/servicemix/openejb/WsServlet.java
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/openejb/src/main/java/org/apache/servicemix/openejb/WsServlet.java?rev=596355&view=auto
==============================================================================
--- servicemix/branches/servicemix-4.0/openejb/src/main/java/org/apache/servicemix/openejb/WsServlet.java
(added)
+++ servicemix/branches/servicemix-4.0/openejb/src/main/java/org/apache/servicemix/openejb/WsServlet.java
Mon Nov 19 08:22:57 2007
@@ -0,0 +1,408 @@
+/**
+ *  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.openejb;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.net.URISyntaxException;
+import java.security.Principal;
+import java.util.Map;
+import java.util.TreeMap;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import javax.xml.rpc.ServiceException;
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.rpc.server.ServiceLifecycle;
+import javax.xml.rpc.server.ServletEndpointContext;
+
+import org.apache.openejb.server.httpd.HttpListener;
+import org.apache.openejb.server.httpd.HttpRequest;
+import org.apache.openejb.server.httpd.HttpResponse;
+import org.apache.openejb.server.webservices.WsConstants;
+
+public class WsServlet implements Servlet {
+    public static final String POJO_CLASS = WsServlet.class.getName() + "@pojoClassName";
+    public static final String WEBSERVICE_CONTAINER = WsServlet.class.getName() + "@WebServiceContainer";
+
+    private static final DefaultContext DEFAULT_CONTEXT = new DefaultContext();
+    private static final ThreadLocal<ServletEndpointContext> endpointContext = new
ThreadLocal<ServletEndpointContext>();
+
+    private ServletConfig config;
+    private Object pojo;
+    private HttpListener service;
+
+    public WsServlet() {
+    }
+
+    public WsServlet(HttpListener service) {
+        this.service = service;
+    }
+
+    public void init(ServletConfig config) throws ServletException {
+        this.config = config;
+
+        // this is only used by JaxRPC pojo services
+        pojo = createPojoInstance();
+        if (pojo instanceof ServiceLifecycle) {
+            try {
+                ((ServiceLifecycle) pojo).init(new InstanceContext(config.getServletContext()));
+            } catch (ServiceException e) {
+                throw new ServletException("Unable to initialize ServiceEndpoint", e);
+            }
+        }
+        getService();
+    }
+
+    public ServletConfig getServletConfig() {
+        return config;
+    }
+
+    public String getServletInfo() {
+        return "Webservice Servlet " + getService();
+    }
+
+    public void service(ServletRequest req, ServletResponse res) throws ServletException,
IOException {
+        HttpListener service = getService();
+        if (service == null) throw new ServletException("WebServiceContainer has not been
set");
+
+        ServletEndpointContext context = getContext();
+        endpointContext.set(new InvocationContext((HttpServletRequest) req));
+        try {
+            res.setContentType("text/xml");
+            RequestAdapter request = new RequestAdapter((HttpServletRequest) req);
+            ResponseAdapter response = new ResponseAdapter((HttpServletResponse) res);
+
+            req.setAttribute(WsConstants.SERVLET_REQUEST, req);
+            req.setAttribute(WsConstants.SERVLET_RESPONSE, res);
+            req.setAttribute(WsConstants.SERVLET_CONTEXT, config.getServletContext());
+            if (pojo != null) {
+                req.setAttribute(WsConstants.POJO_INSTANCE, pojo);
+            }
+
+            try {
+                service.onMessage(request, response);
+            } catch (IOException e) {
+                throw e;
+            } catch (ServletException e) {
+                throw e;
+            } catch (Exception e) {
+                throw new ServletException("Error processing webservice request", e);
+            }
+        } finally {
+            endpointContext.set(context);
+        }
+    }
+
+    public void destroy() {
+        if (pojo instanceof ServiceLifecycle) {
+            ((ServiceLifecycle) pojo).destroy();
+        }
+    }
+
+    private Object createPojoInstance() throws ServletException {
+        ServletContext context = getServletConfig().getServletContext();
+
+        String pojoClassId = context.getInitParameter(POJO_CLASS);
+        if (pojoClassId == null) return null;
+
+        Class pojoClass = (Class) context.getAttribute(pojoClassId);
+        if (pojoClass == null) return null;
+
+        try {
+            Object instance = pojoClass.newInstance();
+            return instance;
+        } catch (Exception e) {
+            throw new ServletException("Unable to instantiate POJO WebService class: " +
pojoClass.getName(), e);
+        }
+    }
+
+    private synchronized HttpListener getService() {
+        if (service == null) {
+            ServletConfig config = getServletConfig();
+            String webServiceContainerId = config.getInitParameter(WEBSERVICE_CONTAINER);
+            if (webServiceContainerId != null) {
+                service = (HttpListener) config.getServletContext().getAttribute(webServiceContainerId);
+            }
+        }
+        return service;
+    }
+
+    private static class RequestAdapter implements HttpRequest {
+        private final HttpServletRequest request;
+
+        public RequestAdapter(HttpServletRequest request) {
+            this.request = request;
+        }
+
+        public org.apache.openejb.server.httpd.HttpSession getSession(boolean create) {
+            javax.servlet.http.HttpSession session = request.getSession(create);
+            if (session != null) {
+                return new HttpSessionAdapter(session);
+            } else {
+                return null;
+            }
+        }
+
+        public org.apache.openejb.server.httpd.HttpSession getSession() {
+            javax.servlet.http.HttpSession session = request.getSession();
+            if (session != null) {
+                return new HttpSessionAdapter(session);
+            } else {
+                return null;
+            }
+        }
+
+        public String getHeader(String name) {
+            return request.getHeader(name);
+        }
+
+        public java.net.URI getURI() {
+            try {
+                return new java.net.URI(request.getScheme(), null, request.getServerName(),
request.getServerPort(), request.getRequestURI(), request.getQueryString(), null);
+            } catch (URISyntaxException e) {
+                throw new IllegalStateException(e.getMessage(), e);
+            }
+        }
+
+        public int getContentLength() {
+            return request.getContentLength();
+        }
+
+        public String getContentType() {
+            return request.getContentType();
+        }
+
+        public String getContextPath() {
+            return request.getContextPath();
+        }
+
+        public InputStream getInputStream() throws IOException {
+            return request.getInputStream();
+        }
+
+        public int getMethod() {
+            Integer method = methods.get(request.getMethod());
+            return method == null ? UNSUPPORTED : method.intValue();
+        }
+
+        public String getParameter(String name) {
+            return request.getParameter(name);
+        }
+
+        public Map getParameters() {
+            return request.getParameterMap();
+        }
+
+        private static final Map<String, Integer> methods = new TreeMap<String,
Integer>();
+
+        static {
+            methods.put("OPTIONS", new Integer(OPTIONS));
+            methods.put("GET", new Integer(GET));
+            methods.put("HEAD", new Integer(HEAD));
+            methods.put("POST", new Integer(POST));
+            methods.put("PUT", new Integer(PUT));
+            methods.put("DELETE", new Integer(DELETE));
+            methods.put("TRACE", new Integer(TRACE));
+            methods.put("CONNECT", new Integer(CONNECT));
+        }
+
+        public Object getAttribute(String s) {
+            return request.getAttribute(s);
+        }
+
+        public void setAttribute(String s, Object o) {
+            request.setAttribute(s, o);
+        }
+
+        public String getRemoteAddr() {
+            return request.getRemoteAddr();
+        }
+
+    }
+
+    private static class HttpSessionAdapter implements org.apache.openejb.server.httpd.HttpSession
{
+        private final javax.servlet.http.HttpSession session;
+
+        public HttpSessionAdapter(javax.servlet.http.HttpSession session) {
+            this.session = session;
+        }
+
+        public String getId() {
+            return session.getId();
+        }
+
+        public Object getAttribute(String name) {
+            return getAttribute(name);
+        }
+
+        public void setAttribute(String name, Object value) {
+            session.setAttribute(name, value);
+        }
+
+        public void removeAttribute(String name) {
+            session.removeAttribute(name);
+        }
+    }
+
+    private static class ResponseAdapter implements HttpResponse {
+        private final HttpServletResponse response;
+
+        public ResponseAdapter(HttpServletResponse response) {
+            this.response = response;
+        }
+
+        public PrintWriter getPrintWriter() throws IOException {
+            return response.getWriter();
+        }
+
+        public void setHeader(String name, String value) {
+            response.setHeader(name, value);
+        }
+
+        public String getHeader(String name) {
+            throw new UnsupportedOperationException("Not possible to implement");
+        }
+
+        public OutputStream getOutputStream() {
+            try {
+                return response.getOutputStream();
+            } catch (IOException e) {
+                throw (IllegalStateException) new IllegalStateException().initCause(e);
+            }
+        }
+
+        public void setStatusCode(int code) {
+            response.setStatus(code);
+        }
+
+        public int getStatusCode() {
+            throw new UnsupportedOperationException("Not possible to implement");
+        }
+
+        public void setContentType(String type) {
+            response.setContentType(type);
+        }
+
+        public String getContentType() {
+            return response.getContentType();
+        }
+
+        @SuppressWarnings({"deprecation"})
+        public void setStatusMessage(String responseString) {
+            response.setStatus(getStatusCode(), responseString);
+        }
+
+        public void flushBuffer() throws java.io.IOException {
+            response.flushBuffer();
+        }
+    }
+
+    private static ServletEndpointContext getContext() {
+        ServletEndpointContext context = endpointContext.get();
+        return context != null ? context : DEFAULT_CONTEXT;
+    }
+
+    private static class InstanceContext implements ServletEndpointContext {
+        private final ServletContext servletContext;
+
+        public InstanceContext(ServletContext servletContext) {
+            this.servletContext = servletContext;
+        }
+
+        public MessageContext getMessageContext() {
+            return getContext().getMessageContext();
+        }
+
+        public Principal getUserPrincipal() {
+            return getContext().getUserPrincipal();
+        }
+
+        public HttpSession getHttpSession() {
+            return getContext().getHttpSession();
+        }
+
+        public ServletContext getServletContext() {
+            return servletContext;
+        }
+
+        public boolean isUserInRole(String s) {
+            return getContext().isUserInRole(s);
+        }
+    }
+
+    private static class InvocationContext implements ServletEndpointContext {
+
+        private final HttpServletRequest request;
+
+        public InvocationContext(HttpServletRequest request) {
+            this.request = request;
+        }
+
+        public MessageContext getMessageContext() {
+            return (MessageContext) request.getAttribute(WsConstants.MESSAGE_CONTEXT);
+        }
+
+        public Principal getUserPrincipal() {
+            return request.getUserPrincipal();
+        }
+
+        public HttpSession getHttpSession() {
+            return request.getSession();
+        }
+
+        public ServletContext getServletContext() {
+            throw new IllegalAccessError("InstanceContext should never delegate this method.");
+        }
+
+        public boolean isUserInRole(String s) {
+            return request.isUserInRole(s);
+        }
+    }
+
+    private static class DefaultContext implements ServletEndpointContext {
+
+        public MessageContext getMessageContext() {
+            throw new IllegalStateException("Method cannot be called outside a request context");
+        }
+
+        public Principal getUserPrincipal() {
+            throw new IllegalStateException("Method cannot be called outside a request context");
+        }
+
+        public HttpSession getHttpSession() {
+            throw new javax.xml.rpc.JAXRPCException("Method cannot be called outside an http
request context");
+        }
+
+        public ServletContext getServletContext() {
+            throw new IllegalAccessError("InstanceContext should never delegate this method.");
+        }
+
+        public boolean isUserInRole(String s) {
+            throw new IllegalStateException("Method cannot be called outside a request context");
+        }
+    }
+}

Added: servicemix/branches/servicemix-4.0/openejb/src/main/resources/META-INF/spring/openejb-spring.xml
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/openejb/src/main/resources/META-INF/spring/openejb-spring.xml?rev=596355&view=auto
==============================================================================
--- servicemix/branches/servicemix-4.0/openejb/src/main/resources/META-INF/spring/openejb-spring.xml
(added)
+++ servicemix/branches/servicemix-4.0/openejb/src/main/resources/META-INF/spring/openejb-spring.xml
Mon Nov 19 08:22:57 2007
@@ -0,0 +1,61 @@
+<?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="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:osgi="http://www.springframework.org/schema/osgi"
+       xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="
+  http://www.springframework.org/schema/beans
+  http://www.springframework.org/schema/beans/spring-beans.xsd
+  http://www.springframework.org/schema/util
+  http://www.springframework.org/schema/util/spring-util.xsd
+  http://www.springframework.org/schema/osgi
+  http://www.springframework.org/schema/osgi/spring-osgi.xsd
+  http://www.springframework.org/schema/osgi-compendium
+  http://www.springframework.org/schema/osgi/spring-osgi-compendium.xsd">
+
+    <!-- OpenEJB factory that will initialize the EJB container -->
+    <bean id="openEjb" class="org.apache.servicemix.openejb.OpenEjbFactory">
+        <property name="properties">
+            <props>
+                
+            </props>
+        </property>
+        <property name="transactionManager" ref="transactionManager" />
+        <property name="wsRegistry" ref="wsRegistry" />
+    </bean>
+
+    <!-- The EJB deployer -->
+    <bean id="osgiDeployer" class="org.apache.servicemix.openejb.OsgiDeployer" />
+
+    <!-- Web service registry based on the OSGi HTTP service -->
+    <bean id="wsRegistry" class="org.apache.servicemix.openejb.OsgiWsRegistry">
+        <property name="httpService" ref="httpService" />
+    </bean>
+
+    <!-- Reference to the transaction manager -->
+    <osgi:reference id="transactionManager"
+                    interface="javax.transaction.TransactionManager" />
+
+    <!-- Reference to the OSGi http service -->
+    <osgi:reference id="httpService"
+                    interface="org.osgi.service.http.HttpService" />
+</beans>
\ No newline at end of file

Added: servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/MyService.java
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/MyService.java?rev=596355&view=auto
==============================================================================
--- servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/MyService.java
(added)
+++ servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/MyService.java
Mon Nov 19 08:22:57 2007
@@ -0,0 +1,16 @@
+package org.apache.servicemix.openejb;
+
+import javax.ejb.Stateless;
+import javax.jws.WebService;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Nov 14, 2007
+ * Time: 7:37:05 PM
+ * To change this template use File | Settings | File Templates.
+ */
+@WebService
+@Stateless
+public class MyService {
+}

Added: servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/Test.java
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/Test.java?rev=596355&view=auto
==============================================================================
--- servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/Test.java
(added)
+++ servicemix/branches/servicemix-4.0/openejb/src/test/java/org/apache/servicemix/openejb/Test.java
Mon Nov 19 08:22:57 2007
@@ -0,0 +1,33 @@
+package org.apache.servicemix.openejb;
+
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+import junit.framework.TestCase;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Nov 14, 2007
+ * Time: 12:31:55 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class Test extends TestCase {
+
+    public void test() throws Exception {
+        System.setProperty("openejb.deployments.classpath", "false");
+
+        OsgiWsRegistry registry = new OsgiWsRegistry();
+        OpenEjbFactory factory = new OpenEjbFactory();
+        factory.setWsRegistry(registry);
+        factory.init();
+
+        File f = new File("target/test-classes");
+        URL url = f.getAbsoluteFile().toURL();
+        URLClassLoader cl = new URLClassLoader(new URL[] {url}, Test.class.getClassLoader());
+        System.out.println(url.toString());
+        new Deployer().deploy(cl, url.toString());
+    }
+
+}

Added: servicemix/branches/servicemix-4.0/openejb/src/test/resources/META-INF/ejb-jar.xml
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/openejb/src/test/resources/META-INF/ejb-jar.xml?rev=596355&view=auto
==============================================================================
--- servicemix/branches/servicemix-4.0/openejb/src/test/resources/META-INF/ejb-jar.xml (added)
+++ servicemix/branches/servicemix-4.0/openejb/src/test/resources/META-INF/ejb-jar.xml Mon
Nov 19 08:22:57 2007
@@ -0,0 +1,3 @@
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee">
+    
+</ejb-jar>
\ No newline at end of file

Modified: servicemix/branches/servicemix-4.0/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/pom.xml?rev=596355&r1=596354&r2=596355&view=diff
==============================================================================
--- servicemix/branches/servicemix-4.0/pom.xml (original)
+++ servicemix/branches/servicemix-4.0/pom.xml Mon Nov 19 08:22:57 2007
@@ -42,7 +42,7 @@
         <module>main</module>
         <module>apache-servicemix</module>
         <module>jaxws</module>
-        <module>ejb</module>
+        <module>openejb</module>
 		<module>activemq</module>
     </modules>
 
@@ -69,7 +69,7 @@
         <camel.version>1.3-SNAPSHOT</camel.version>
         <activemq.version>5.0-SNAPSHOT</activemq.version>
         <spring.osgi.version>1.0-m3</spring.osgi.version>
-        <spring.version>2.5-rc1</spring.version>
+        <spring.version>2.5-rc2</spring.version>
         <commons.logging.version>1.1</commons.logging.version>
         <gshell.version>1.0-alpha-1-SNAPSHOT</gshell.version>
         <acegi.version>1.0.0</acegi.version>
@@ -166,7 +166,7 @@
         <repository>
             <id>servicemix-snapshots</id>
             <name>ServiceMix Repository</name>
-            <url>http://svn.apache.org/repos/asf/incubator/servicemix/m2-repo</url>
+            <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
             <releases>
                 <enabled>false</enabled>
             </releases>
@@ -178,11 +178,21 @@
 
     <dependencyManagement>
         <dependencies>
-	        <dependency>
-	            <groupId>org.apache.servicemix.bundles</groupId>
-	            <artifactId>org.apache.servicemix.bundles.aopalliance</artifactId>
-	            <version>1.0-4.0-SNAPSHOT</version>
-	        </dependency>
+            <dependency>
+                <groupId>org.apache.servicemix.bundles</groupId>
+                <artifactId>org.apache.servicemix.bundles.aopalliance</artifactId>
+                <version>1.0-4.0-SNAPSHOT</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.servicemix.bundles</groupId>
+                <artifactId>org.apache.servicemix.bundles.asm</artifactId>
+                <version>2.2.3-4.0-SNAPSHOT</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.servicemix.bundles</groupId>
+                <artifactId>org.apache.servicemix.bundles.cglib</artifactId>
+                <version>2.1_3-4.0-SNAPSHOT</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.servicemix.bundles</groupId>
                 <artifactId>org.apache.servicemix.bundles.cxf</artifactId>
@@ -224,6 +234,11 @@
                 <version>1.6.1-4.0-SNAPSHOT</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.servicemix.bundles</groupId>
+                <artifactId>org.apache.servicemix.bundles.xstream</artifactId>
+                <version>1.2.2-4.0-SNAPSHOT</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.servicemix.nmr</groupId>
                 <artifactId>org.apache.servicemix.nmr.api</artifactId>
                 <version>${project.version}</version>
@@ -309,8 +324,8 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.servicemix.ejb</groupId>
-                <artifactId>org.apache.servicemix.ejb</artifactId>
+                <groupId>org.apache.servicemix.openejb</groupId>
+                <artifactId>org.apache.servicemix.openejb</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
@@ -371,6 +386,11 @@
                 <groupId>org.apache.geronimo.specs</groupId>
                 <artifactId>geronimo-ejb_3.0_spec</artifactId>
                 <version>1.0.1-SNAPSHOT</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
+                <version>1.1.2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.geronimo.specs</groupId>

Modified: servicemix/branches/servicemix-4.0/transaction/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/branches/servicemix-4.0/transaction/pom.xml?rev=596355&r1=596354&r2=596355&view=diff
==============================================================================
--- servicemix/branches/servicemix-4.0/transaction/pom.xml (original)
+++ servicemix/branches/servicemix-4.0/transaction/pom.xml Mon Nov 19 08:22:57 2007
@@ -32,7 +32,7 @@
     <artifactId>org.apache.servicemix.transaction</artifactId>
     <packaging>bundle</packaging>
     <version>4.0-SNAPSHOT</version>
-    <name>ServiceMix Transaction</name>
+    <name>ServiceMix Transaction Manager</name>
 
     <dependencies>
         <dependency>



Mime
View raw message