Diff

Modified: trunk/pom.xml (19 => 20)

--- trunk/pom.xml    2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/pom.xml       2008-03-21 18:47:13 UTC (rev 20)
@@ -4,10 +4,10 @@
     <artifactId>mule-transport-jersey</artifactId>
     <packaging>jar</packaging>
     <name>Mule Jersey Transport</name>
-    <version>1.0-M2</version>
+    <version>1.0-M2-SNAPSHOT</version>
     <description>Jersey</description>
     <properties>
-        <mule.version>2.0.0-RC2</mule.version>
+        <mule.version>2.0.0-RC3</mule.version>
     </properties>
     <build>
         <extensions>
@@ -28,6 +28,7 @@
             </plugin>
             <plugin>
                 <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.2-beta-1</version>
                 <configuration>
                     <finalName>${artifactId}-${version}</finalName>
                     <descriptors>
@@ -79,7 +80,7 @@
         <dependency>
             <groupId>jersey</groupId>
             <artifactId>jersey</artifactId>
-            <version>0.5-ea</version>
+            <version>0.6-ea</version>
         </dependency>
         <dependency>
             <groupId>junit</groupId>

Modified: trunk/src/main/java/org/mule/transport/jersey/JerseyConnector.java (19 => 20)

--- trunk/src/main/java/org/mule/transport/jersey/JerseyConnector.java       2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/main/java/org/mule/transport/jersey/JerseyConnector.java  2008-03-21 18:47:13 UTC (rev 20)
@@ -14,53 +14,54 @@
 import java.util.List;
 
 import org.mule.api.MuleException;
-import org.mule.api.context.notification.ManagerNotificationListener;
+import org.mule.api.context.notification.MuleContextNotificationListener;
 import org.mule.api.context.notification.ServerNotification;
 import org.mule.api.endpoint.EndpointBuilder;
 import org.mule.api.endpoint.EndpointURI;
 import org.mule.api.endpoint.ImmutableEndpoint;
+import org.mule.api.endpoint.InboundEndpoint;
 import org.mule.api.lifecycle.InitialisationException;
 import org.mule.api.service.Service;
 import org.mule.api.transport.MessageReceiver;
-import org.mule.context.notification.ManagerNotification;
+import org.mule.component.DefaultJavaComponent;
+import org.mule.context.notification.MuleContextNotification;
 import org.mule.endpoint.EndpointURIEndpointBuilder;
-import org.mule.endpoint.InboundEndpoint;
 import org.mule.model.seda.SedaService;
+import org.mule.object.SingletonObjectFactory;
 import org.mule.routing.inbound.DefaultInboundRouterCollection;
 import org.mule.transformer.TransformerUtils;
 import org.mule.transport.AbstractConnector;
-import org.mule.util.object.SingletonObjectFactory;
 
 /**
  * 
  */
-public class JerseyConnector extends AbstractConnector implements ManagerNotificationListener {
+public class JerseyConnector extends AbstractConnector implements MuleContextNotificationListener {
     private List<SedaService> services = new ArrayList<SedaService>();
 
     public JerseyConnector() {
         super();
-        registerSupportedProtocol("http");
-        registerSupportedProtocol("https");
-        registerSupportedProtocol("jms");
-        registerSupportedProtocol("vm");
-        registerSupportedProtocol("servlet");
     }
-
+    
+    public boolean supportsProtocol(String protocol)
+    {
+        // we can listen on any protocol provided that the necessary 
+        // http headers are there.
+        return protocol.startsWith("jersey:");
+    }
+    
     @SuppressWarnings("unchecked")
     protected void registerReceiverWithMuleService(MessageReceiver receiver, EndpointURI ep)
         throws MuleException {
         JerseyMessageReceiver jReceiver = (JerseyMessageReceiver)receiver;
-        String name = "foo";
-
+        // best I can come up with for now
+        String name = new Integer(jReceiver.hashCode()).toString();
+        
         // TODO MULE-2228 Simplify this API
         SedaService c = new SedaService();
         c.setName("_jerseyConnector" + name + jReceiver.hashCode());
         c.setModel(muleContext.getRegistry().lookupSystemModel());
 
-        SingletonObjectFactory of = new SingletonObjectFactory(jReceiver);
-        of.setService(c);
-        of.initialise();
-        c.setServiceFactory(of);
+        c.setComponent(new DefaultJavaComponent(new SingletonObjectFactory(jReceiver)));
 
         // No determine if the endpointUri requires a new connector to be
         // registed in the case of http we only need to register the new
@@ -69,41 +70,43 @@
 
         boolean sync = receiver.getEndpoint().isSynchronous();
 
-        EndpointBuilder serviceEndpointbuilder = new EndpointURIEndpointBuilder(endpoint, muleContext);
+        EndpointBuilder serviceEndpointbuilder = new EndpointURIEndpointBuilder(endpoint,
+                                                                                muleContext);
         serviceEndpointbuilder.setSynchronous(sync);
         serviceEndpointbuilder.setName(ep.getScheme() + ":" + name);
         // Set the transformers on the endpoint too
-        serviceEndpointbuilder.setTransformers(receiver.getEndpoint().getTransformers());
-        serviceEndpointbuilder.setResponseTransformers(receiver.getEndpoint().getResponseTransformers());
+        serviceEndpointbuilder.setTransformers(receiver.getEndpoint().getTransformers().isEmpty() ? null
+                                                                                                  : receiver.getEndpoint().getTransformers());
+        serviceEndpointbuilder.setResponseTransformers(receiver.getEndpoint().getResponseTransformers().isEmpty() ? null
+                                                                                                                 : receiver.getEndpoint().getResponseTransformers());
         // set the filter on the axis endpoint on the real receiver endpoint
         serviceEndpointbuilder.setFilter(receiver.getEndpoint().getFilter());
         // set the Security filter on the axis endpoint on the real receiver
         // endpoint
         serviceEndpointbuilder.setSecurityFilter(receiver.getEndpoint().getSecurityFilter());
-
-        // TODO Do we really need to modify the existing receiver endpoint? What
-        // happnes if we don't security,
+    
+        // TODO Do we really need to modify the existing receiver endpoint? What happnes if we don't security,
         // filters and transformers will get invoked twice?
         EndpointBuilder receiverEndpointBuilder = new EndpointURIEndpointBuilder(receiver.getEndpoint(),
-                                                                                 muleContext);
-        receiverEndpointBuilder.setTransformers(TransformerUtils.UNDEFINED);
-        receiverEndpointBuilder.setResponseTransformers(TransformerUtils.UNDEFINED);
+            muleContext);
         // Remove the Axis filter now
         receiverEndpointBuilder.setFilter(null);
         // Remove the Axis Receiver Security filter now
         receiverEndpointBuilder.setSecurityFilter(null);
-
-        ImmutableEndpoint serviceEndpoint = muleContext.getRegistry().lookupEndpointFactory()
+    
+        InboundEndpoint serviceEndpoint = muleContext.getRegistry()
+            .lookupEndpointFactory()
             .getInboundEndpoint(serviceEndpointbuilder);
-
-        ImmutableEndpoint receiverEndpoint = muleContext.getRegistry().lookupEndpointFactory()
+    
+        InboundEndpoint receiverEndpoint = muleContext.getRegistry()
+            .lookupEndpointFactory()
             .getInboundEndpoint(receiverEndpointBuilder);
-
+    
         receiver.setEndpoint(receiverEndpoint);
-
+    
         c.setInboundRouter(new DefaultInboundRouterCollection());
         c.getInboundRouter().addEndpoint(serviceEndpoint);
-
+        
         services.add(c);
     }
 
@@ -117,7 +120,7 @@
         // new service and a
         // different http port the model needs to be restarted before the
         // listener is available
-        if (event.getAction() == ManagerNotification.MANAGER_STARTED) {
+        if (event.getAction() == MuleContextNotification.CONTEXT_STARTED) {
             for (Service c : services) {
                 try {
                     muleContext.getRegistry().registerService(c);

Modified: trunk/src/main/java/org/mule/transport/jersey/JerseyMessageReceiver.java (19 => 20)

--- trunk/src/main/java/org/mule/transport/jersey/JerseyMessageReceiver.java 2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/main/java/org/mule/transport/jersey/JerseyMessageReceiver.java    2008-03-21 18:47:13 UTC (rev 20)
@@ -11,17 +11,16 @@
 package org.mule.transport.jersey;
 
 import com.sun.ws.rest.api.core.DefaultResourceConfig;
-import com.sun.ws.rest.api.core.ResourceConfig;
 import com.sun.ws.rest.spi.container.WebApplication;
 import com.sun.ws.rest.spi.container.WebApplicationFactory;
 
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
 import org.mule.api.MuleEventContext;
 import org.mule.api.MuleMessage;
-import org.mule.api.endpoint.Endpoint;
+import org.mule.api.component.JavaComponent;
+import org.mule.api.endpoint.InboundEndpoint;
 import org.mule.api.lifecycle.Callable;
 import org.mule.api.lifecycle.CreateException;
 import org.mule.api.service.Service;
@@ -40,7 +39,7 @@
     
     public JerseyMessageReceiver(Connector connector, 
                                  Service service, 
-                                 Endpoint endpoint)
+                                 InboundEndpoint endpoint)
         throws CreateException {
         super(connector, service, endpoint);
     }
@@ -48,9 +47,11 @@
     public Object onCall(MuleEventContext event) throws Exception {
         MuleMessage message = event.getMessage();
         
-        MuleRequestAdaptor req = new MuleRequestAdaptor(message, endpoint.getEndpointURI());
+        MuleRequestAdaptor req = new MuleRequestAdaptor(application.getMessageBodyContext(),
+                                                        message, 
+                                                        endpoint.getEndpointURI());
         
-        MuleResponseAdapter res = new MuleResponseAdapter(req);
+        MuleResponseAdapter res = new MuleResponseAdapter(application.getMessageBodyContext(), req);
         
         application.handleRequest(req, res);
         
@@ -63,7 +64,7 @@
         final Set<Class> resources = new HashSet<Class>();
         
         try {
-            Class c = service.getServiceFactory().getObjectClass();
+            Class c = ((JavaComponent) service.getComponent()).getObjectType();
             resources.add(c);
         } catch (Exception e) {
             throw new ConnectException(e, this);
@@ -72,7 +73,7 @@
         DefaultResourceConfig resourceConfig = new DefaultResourceConfig(resources);
         
         application = WebApplicationFactory.createWebApplication();
-        application.initiate(this, resourceConfig);
+        application.initiate(resourceConfig);
         
         ((JerseyConnector) connector).registerReceiverWithMuleService(this, getEndpointURI());
     }

Modified: trunk/src/main/java/org/mule/transport/jersey/server/MuleRequestAdaptor.java (19 => 20)

--- trunk/src/main/java/org/mule/transport/jersey/server/MuleRequestAdaptor.java     2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/main/java/org/mule/transport/jersey/server/MuleRequestAdaptor.java        2008-03-21 18:47:13 UTC (rev 20)
@@ -22,22 +22,18 @@
 
 package org.mule.transport.jersey.server;
 
-import com.sun.ws.rest.impl.container.servlet.HttpRequestAdaptor;
 import com.sun.ws.rest.spi.container.AbstractContainerRequest;
+import com.sun.ws.rest.spi.container.MessageBodyContext;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collections;
-import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.ws.rs.core.EntityTag;
 import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Variant;
 
 import org.mule.api.MuleMessage;
 import org.mule.api.endpoint.EndpointURI;
@@ -53,9 +49,11 @@
     
     /** Creates a new instance of HttpRequestAdaptor 
      * @throws TransformerException */
-    public MuleRequestAdaptor(MuleMessage message, 
+    public MuleRequestAdaptor(MessageBodyContext context,
+                              MuleMessage message, 
                               EndpointURI endpointUri) throws IOException, TransformerException {
-        super((String)message.getProperty(HttpConnector.HTTP_METHOD_PROPERTY), 
+        super(context,
+              (String)message.getProperty(HttpConnector.HTTP_METHOD_PROPERTY), 
               getInputStream(message));
         this.message = message;
         

Modified: trunk/src/main/java/org/mule/transport/jersey/server/MuleResponseAdapter.java (19 => 20)

--- trunk/src/main/java/org/mule/transport/jersey/server/MuleResponseAdapter.java    2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/main/java/org/mule/transport/jersey/server/MuleResponseAdapter.java       2008-03-21 18:47:13 UTC (rev 20)
@@ -23,6 +23,7 @@
 package org.mule.transport.jersey.server;
 
 import com.sun.ws.rest.spi.container.AbstractContainerResponse;
+import com.sun.ws.rest.spi.container.MessageBodyContext;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -45,8 +46,8 @@
     private OutputStream out;
     private MuleMessage message;
     
-    public MuleResponseAdapter(MuleRequestAdaptor requestContext) {
-        super(requestContext);
+    public MuleResponseAdapter(MessageBodyContext bodyContext, MuleRequestAdaptor requestContext) {
+        super(bodyContext, requestContext);
         
         this.message = new DefaultMuleMessage(new DefaultMessageAdapter(this));
     }

Modified: trunk/src/test/java/org/mule/transport/jersey/BasicJerseyTest.java (19 => 20)

--- trunk/src/test/java/org/mule/transport/jersey/BasicJerseyTest.java       2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/test/java/org/mule/transport/jersey/BasicJerseyTest.java  2008-03-21 18:47:13 UTC (rev 20)
@@ -4,12 +4,10 @@
 import java.util.Map;
 
 import org.mule.api.MuleMessage;
-import org.mule.extras.client.MuleClient;
+import org.mule.module.client.MuleClient;
 import org.mule.tck.FunctionalTestCase;
 import org.mule.transport.http.HttpConnector;
 import org.mule.transport.http.HttpConstants;
-import org.mule.transport.jersey.server.MuleRequestAdaptor;
-import org.mule.transport.jersey.server.MuleResponseAdapter;
 
 public class BasicJerseyTest extends FunctionalTestCase {
 

Modified: trunk/src/test/java/org/mule/transport/jersey/HelloWorldResource.java (19 => 20)

--- trunk/src/test/java/org/mule/transport/jersey/HelloWorldResource.java    2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/test/java/org/mule/transport/jersey/HelloWorldResource.java       2008-03-21 18:47:13 UTC (rev 20)
@@ -4,9 +4,9 @@
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.ProduceMime;
 import javax.ws.rs.QueryParam;
-import javax.ws.rs.UriParam;
 
 @Path("/helloworld")
 public class HelloWorldResource {
@@ -26,7 +26,7 @@
     @GET
     @ProduceMime("text/plain")
     @Path("/sayHelloWithUri/{name}")
-    public String sayHelloWithUri(@UriParam("name") String name) {
+    public String sayHelloWithUri(@PathParam("name") String name) {
         return "Hello " + name;
     }
     

Modified: trunk/src/test/java/org/mule/transport/jersey/ServletJerseyTest.java (19 => 20)

--- trunk/src/test/java/org/mule/transport/jersey/ServletJerseyTest.java     2008-03-03 22:53:38 UTC (rev 19)
+++ trunk/src/test/java/org/mule/transport/jersey/ServletJerseyTest.java        2008-03-21 18:47:13 UTC (rev 20)
@@ -9,7 +9,7 @@
 import org.mortbay.jetty.servlet.ServletHandler;
 import org.mortbay.util.InetAddrPort;
 import org.mule.api.MuleMessage;
-import org.mule.extras.client.MuleClient;
+import org.mule.module.client.MuleClient;
 import org.mule.tck.FunctionalTestCase;
 import org.mule.transport.http.HttpConnector;
 import org.mule.transport.http.HttpConstants;

--------------------------------------------------------------------- To unsubscribe from this list, please visit: http://admin.muleforge.org/manage_email

Message Thread

[mule-transport-jersey-dev] [20] trunk: Upgrade to Jersey 0.6 dandiep@muleforge...
 6:47 PM UTC, Friday 21 March 2008