You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/03/16 10:06:11 UTC

[22/50] [abbrv] [OLINGO-157] FIT supports jax-rs and servlet

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/3214f495/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationGetRequestTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationGetRequestTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationGetRequestTest.java
index 43feebc..c61d97a 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationGetRequestTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationGetRequestTest.java
@@ -34,6 +34,7 @@ import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
 import org.apache.olingo.odata2.core.commons.ContentType;
 import org.apache.olingo.odata2.core.uri.UriType;
 import org.apache.olingo.odata2.testutil.helper.StringHelper;
+import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -43,6 +44,10 @@ import org.junit.Test;
 @Ignore
 public class ContentNegotiationGetRequestTest extends AbstractContentNegotiationTest {
 
+  public ContentNegotiationGetRequestTest(final ServletType servletType) {
+    super(servletType);
+  }
+
   @Test
   public void acceptHeaderAppAtomXml() throws Exception {
     HttpGet get = new HttpGet(URI.create(getEndpoint() + "Rooms('1')"));

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/3214f495/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationPostRequestTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationPostRequestTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationPostRequestTest.java
index 6248650..e45dc49 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationPostRequestTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/contentnegotiation/ContentNegotiationPostRequestTest.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
 import org.apache.olingo.odata2.core.uri.UriType;
+import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -31,6 +32,10 @@ import org.junit.Test;
  */
 public class ContentNegotiationPostRequestTest extends AbstractContentNegotiationTest {
 
+  public ContentNegotiationPostRequestTest(final ServletType servletType) {
+    super(servletType);
+  }
+
   public static final String EMPLOYEE_1_XML =
       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
           +

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/3214f495/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/AbstractFitTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/AbstractFitTest.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/AbstractFitTest.java
index 1a2362b..47fb03a 100644
--- a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/AbstractFitTest.java
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/fit/AbstractFitTest.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.odata2.testutil.fit;
 
 import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
 
 import org.apache.http.client.HttpClient;
 import org.apache.http.impl.client.DefaultHttpClient;
@@ -26,13 +28,17 @@ import org.apache.olingo.odata2.api.ODataService;
 import org.apache.olingo.odata2.api.exception.ODataException;
 import org.apache.olingo.odata2.testutil.TestUtilRuntimeException;
 import org.apache.olingo.odata2.testutil.server.ServerRuntimeException;
+import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.apache.olingo.odata2.testutil.server.TestServer;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  *  
  */
+@RunWith(Parameterized.class)
 public abstract class AbstractFitTest extends BaseTest {
 
   private final TestServer server;
@@ -41,10 +47,27 @@ public abstract class AbstractFitTest extends BaseTest {
 
   private final HttpClient httpClient = new DefaultHttpClient();
 
-  public AbstractFitTest() {
-    server = new TestServer(this.getClass().getSimpleName());
+  private ServletType servletType;
+
+  public AbstractFitTest(ServletType servletType) {
+    this.servletType = servletType;
+    server = new TestServer(this.getClass().getSimpleName(), servletType);
+  }
+  
+  @Parameterized.Parameters
+  public static List<Object[]> data() {
+    // If desired this can be made dependent on runtime variables
+    Object[][] a;
+    a = new Object[2][1];
+    a[0][0] = ServletType.JAXRS_SERVLET;
+    a[1][0] = ServletType.ODATA_SERVLET;
+
+    return Arrays.asList(a);
   }
 
+//  public AbstractFitTest() {
+//  }
+
   protected URI getEndpoint() {
     return server.getEndpoint();
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/3214f495/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/ServletType.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/ServletType.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/ServletType.java
new file mode 100644
index 0000000..6d05304
--- /dev/null
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/ServletType.java
@@ -0,0 +1,5 @@
+package org.apache.olingo.odata2.testutil.server;
+
+public enum ServletType {
+  ODATA_SERVLET, JAXRS_SERVLET
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/3214f495/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
index 314dfcb..05b9f0f 100644
--- a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
@@ -52,17 +52,19 @@ public class TestServer {
   private final String path;
 
   private int pathSplit = 0;
+  private ServletType servletType;
 
-  public TestServer() {
-    this(DEFAULT_PATH);
-  }
-
-  public TestServer(final String path) {
+  public TestServer(ServletType type) {
+    this(DEFAULT_PATH, type);
+  }  
+  
+  public TestServer(final String path, ServletType type) {
     if (path.startsWith("/")) {
       this.path = path;
     } else {
       this.path = "/" + path;
     }
+    this.servletType = type;
   }
 
   public int getPathSplit() {
@@ -98,8 +100,7 @@ public class TestServer {
   public void startServer(final Class<? extends ODataServiceFactory> factoryClass) {
     try {
       for (int port = PORT_MIN; port <= PORT_MAX; port += PORT_INC) {
-        //final ServletContextHandler contextHandler = createContextHandler(factoryClass);
-        final ServletContextHandler contextHandler = createODataContextHandler(factoryClass);
+        final ServletContextHandler contextHandler = createContextHandler(factoryClass);
         try {
           final InetSocketAddress isa = new InetSocketAddress(DEFAULT_HOST, port);
           server = new Server(isa);
@@ -123,12 +124,25 @@ public class TestServer {
     }
   }
 
-  private ServletContextHandler createContextHandler(final Class<? extends ODataServiceFactory> factoryClass) {
-    final CXFNonSpringJaxrsServlet odataServlet = new CXFNonSpringJaxrsServlet();
-    final ServletHolder odataServletHolder = new ServletHolder(odataServlet);
-    odataServletHolder.setInitParameter("javax.ws.rs.Application",
-        "org.apache.olingo.odata2.core.rest.app.ODataApplication");
-    odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
+  private ServletContextHandler createContextHandler(final Class<? extends ODataServiceFactory> factoryClass)
+      throws Exception {
+    ServletHolder odataServletHolder = null;
+
+    switch (servletType) {
+    case JAXRS_SERVLET:
+      odataServletHolder = new ServletHolder(new CXFNonSpringJaxrsServlet());
+      odataServletHolder.setInitParameter("javax.ws.rs.Application",
+          "org.apache.olingo.odata2.core.rest.app.ODataApplication");
+      odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
+      break;
+    case ODATA_SERVLET:
+      String odataServlet = "org.apache.olingo.odata2.core.servlet.ODataServlet";
+      final HttpServlet httpServlet = (HttpServlet) Class.forName(odataServlet).newInstance();
+      odataServletHolder = new ServletHolder(httpServlet);
+      odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
+      break;
+    default:
+    }
 
     if (pathSplit > 0) {
       odataServletHolder.setInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL, Integer.toString(pathSplit));
@@ -140,23 +154,23 @@ public class TestServer {
     return contextHandler;
   }
 
-  private ServletContextHandler createODataContextHandler(final Class<? extends ODataServiceFactory> factoryClass) 
-      throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-    String odataServlet = "org.apache.olingo.odata2.core.servlet.ODataServlet";
-    final HttpServlet httpServlet = (HttpServlet) Class.forName(odataServlet).newInstance();
-    final ServletHolder odataServletHolder = new ServletHolder(httpServlet);
-    odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
-
-    if (pathSplit > 0) {
-      odataServletHolder.setInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL, Integer.toString(pathSplit));
-    }
+//  private ServletContextHandler createODataContextHandler(final Class<? extends ODataServiceFactory> factoryClass)
+//      throws InstantiationException, IllegalAccessException, ClassNotFoundException {
+//    String odataServlet = "org.apache.olingo.odata2.core.servlet.ODataServlet";
+//    final HttpServlet httpServlet = (HttpServlet) Class.forName(odataServlet).newInstance();
+//    final ServletHolder odataServletHolder = new ServletHolder(httpServlet);
+//    odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
+//
+//    if (pathSplit > 0) {
+//      odataServletHolder.setInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL, Integer.toString(pathSplit));
+//    }
+//
+//    final ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
+//    contextHandler.setContextPath("/abc");
+//    contextHandler.addServlet(odataServletHolder, path + "/*");
+//    return contextHandler;
+//  }
 
-    final ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
-    contextHandler.setContextPath("/abc");
-    contextHandler.addServlet(odataServletHolder, path + "/*");
-    return contextHandler;
-  }
-  
   public void startServer(final ODataService service) {
     startServer(FitStaticServiceFactory.class);