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