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 2015/01/07 15:02:08 UTC

[1/2] olingo-odata2 git commit: [OLINGO-193] Reuse as much code as possible in the spring extension (Extend the core ODataRootLocator and override the setters)

Repository: olingo-odata2
Updated Branches:
  refs/heads/OLINGO-193_SpringSupport 7a596e207 -> 92531140b


[OLINGO-193] Reuse as much code as possible in the spring extension (Extend the core ODataRootLocator and override the setters)

Signed-off-by: Michael Bolz <mi...@sap.com>


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/5b632779
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/5b632779
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/5b632779

Branch: refs/heads/OLINGO-193_SpringSupport
Commit: 5b632779b992c151478d8333c19489740c8255b9
Parents: 7a596e2
Author: Lior Okman <li...@gmail.com>
Authored: Wed Dec 24 20:43:44 2014 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Wed Jan 7 14:52:24 2015 +0100

----------------------------------------------------------------------
 .../odata2/core/rest/ODataRootLocator.java      | 21 +++++--
 .../olingo/odata2/spring/OlingoRootLocator.java | 64 ++------------------
 2 files changed, 19 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/5b632779/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
index 3ff5984..e75ef5d 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
@@ -102,13 +102,9 @@ public class ODataRootLocator {
       return handleRedirect();
     }
 
-    ODataServiceFactory serviceFactory = createServiceFactoryFromContext(app, servletRequest, servletConfig);
+    ODataServiceFactory serviceFactory = getServiceFactory();
 
-    int pathSplit = 0;
-    final String pathSplitAsString = servletConfig.getInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL);
-    if (pathSplitAsString != null) {
-      pathSplit = Integer.parseInt(pathSplitAsString);
-    }
+    int pathSplit = getPathSplit();
 
     final SubLocatorParameter param = new SubLocatorParameter();
     param.setServiceFactory(serviceFactory);
@@ -122,6 +118,19 @@ public class ODataRootLocator {
     return ODataSubLocator.create(param);
   }
 
+  public ODataServiceFactory getServiceFactory() {
+    return createServiceFactoryFromContext(app, servletRequest, servletConfig);
+  }
+
+  public int getPathSplit() {
+    int pathSplit = 0;
+    final String pathSplitAsString = servletConfig.getInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL);
+    if (pathSplitAsString != null) {
+      pathSplit = Integer.parseInt(pathSplitAsString);
+    }
+    return pathSplit;
+  }
+
   public static ODataServiceFactory createServiceFactoryFromContext(final Application app,
       final HttpServletRequest servletRequest,
       final ServletConfig servletConfig) {

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/5b632779/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
----------------------------------------------------------------------
diff --git a/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java b/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
index bf60cb6..4cfceea 100644
--- a/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
+++ b/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
@@ -24,6 +24,7 @@ import org.apache.olingo.odata2.api.exception.ODataException;
 import org.apache.olingo.odata2.core.rest.ODataRedirectLocator;
 import org.apache.olingo.odata2.core.rest.ODataSubLocator;
 import org.apache.olingo.odata2.core.rest.SubLocatorParameter;
+import org.apache.olingo.odata2.core.rest.ODataRootLocator;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Encoded;
@@ -51,71 +52,13 @@ import java.util.List;
  *
  */
 @Path("/")
-public class OlingoRootLocator {
-
-  @Context
-  private HttpHeaders httpHeaders;
-  @Context
-  private UriInfo uriInfo;
-  @Context
-  private Request request;
-  @Context
-  private HttpServletRequest servletRequest;
+public class OlingoRootLocator extends ODataRootLocator {
 
   // These next two members are exposed so that they can be injected with Spring
   private ODataServiceFactory serviceFactory;
   private int pathSplit = 0;
 
-  /**
-   * Default root behavior which will delegate all paths to a ODataLocator.
-   * @param pathSegments URI path segments - all segments have to be OData
-   * @param xHttpMethod HTTP Header X-HTTP-Method for tunneling through POST
-   * @param xHttpMethodOverride HTTP Header X-HTTP-Method-Override for tunneling through POST
-   * @return a locator handling OData protocol
-   * @throws org.apache.olingo.odata2.api.exception.ODataException
-   * @throws ClassNotFoundException
-   * @throws IllegalAccessException
-   * @throws InstantiationException
-   */
-  @Path("/{pathSegments: .*}")
-  public Object handleRequest(
-      @Encoded @PathParam("pathSegments") final List<PathSegment> pathSegments,
-      @HeaderParam("X-HTTP-Method") final String xHttpMethod,
-      @HeaderParam("X-HTTP-Method-Override") final String xHttpMethodOverride)
-      throws ODataException, ClassNotFoundException, InstantiationException, IllegalAccessException {
-
-    if (xHttpMethod != null && xHttpMethodOverride != null) {
-
-      /*
-       * X-HTTP-Method-Override : implemented by CXF
-       * X-HTTP-Method : implemented in ODataSubLocator:handlePost
-       */
-
-      if (!xHttpMethod.equalsIgnoreCase(xHttpMethodOverride)) {
-        throw new ODataBadRequestException(ODataBadRequestException.AMBIGUOUS_XMETHOD);
-      }
-    }
-
-    if (servletRequest.getPathInfo() == null) {
-      return handleRedirect();
-    }
-
-    final SubLocatorParameter param = new SubLocatorParameter();
-    param.setServiceFactory(getServiceFactory());
-    param.setPathSegments(pathSegments);
-    param.setHttpHeaders(httpHeaders);
-    param.setUriInfo(uriInfo);
-    param.setRequest(request);
-    param.setServletRequest(servletRequest);
-    param.setPathSplit(getPathSplit());
-
-    return ODataSubLocator.create(param);
-  }
-
-  private Object handleRedirect() {
-    return new ODataRedirectLocator();
-  }
-
+  @Override
   public ODataServiceFactory getServiceFactory() {
     return serviceFactory;
   }
@@ -124,6 +67,7 @@ public class OlingoRootLocator {
     this.serviceFactory = serviceFactory;
   }
 
+  @Override
   public int getPathSplit() {
     return pathSplit;
   }


[2/2] olingo-odata2 git commit: [OLINGO-193] Renamed artifact and minor code clean up

Posted by mi...@apache.org.
[OLINGO-193] Renamed artifact and minor code clean up


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/92531140
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/92531140
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/92531140

Branch: refs/heads/OLINGO-193_SpringSupport
Commit: 92531140bb369a98a12c6a85f3f8aac08fb803bc
Parents: 5b63277
Author: Michael Bolz <mi...@sap.com>
Authored: Wed Jan 7 14:54:42 2015 +0100
Committer: Michael Bolz <mi...@sap.com>
Committed: Wed Jan 7 14:54:42 2015 +0100

----------------------------------------------------------------------
 .../olingo/odata2/core/rest/ODataRootLocator.java   |  3 +--
 odata2-spring/pom.xml                               |  2 +-
 .../olingo/odata2/spring/OlingoRootLocator.java     | 16 ----------------
 3 files changed, 2 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/92531140/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
index e75ef5d..57a8bc8 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataRootLocator.java
@@ -151,8 +151,7 @@ public class ODataRootLocator {
           factoryClass = Class.forName(factoryClassName, true, cl);
         }
       }
-      ODataServiceFactory serviceFactory = (ODataServiceFactory) factoryClass.newInstance();
-      return serviceFactory;
+      return (ODataServiceFactory) factoryClass.newInstance();
     } catch (Exception e) {
       throw new ODataRuntimeException("Exception during ODataServiceFactory creation occured.", e);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/92531140/odata2-spring/pom.xml
----------------------------------------------------------------------
diff --git a/odata2-spring/pom.xml b/odata2-spring/pom.xml
index ed1c7b3..1a10bb9 100755
--- a/odata2-spring/pom.xml
+++ b/odata2-spring/pom.xml
@@ -12,7 +12,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
-	<artifactId>odata2-spring</artifactId>
+	<artifactId>olingo-odata2-spring</artifactId>
 	<name>${project.artifactId}</name>
 
 	<parent>

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/92531140/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
----------------------------------------------------------------------
diff --git a/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java b/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
index 4cfceea..82442d6 100644
--- a/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
+++ b/odata2-spring/src/main/java/org/apache/olingo/odata2/spring/OlingoRootLocator.java
@@ -19,25 +19,9 @@
 package org.apache.olingo.odata2.spring;
 
 import org.apache.olingo.odata2.api.ODataServiceFactory;
-import org.apache.olingo.odata2.api.exception.ODataBadRequestException;
-import org.apache.olingo.odata2.api.exception.ODataException;
-import org.apache.olingo.odata2.core.rest.ODataRedirectLocator;
-import org.apache.olingo.odata2.core.rest.ODataSubLocator;
-import org.apache.olingo.odata2.core.rest.SubLocatorParameter;
 import org.apache.olingo.odata2.core.rest.ODataRootLocator;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Encoded;
-import javax.ws.rs.HeaderParam;
 import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.PathSegment;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.UriInfo;
-import java.util.List;
 
 /**
  * Default OData root locator responsible to handle the whole path and delegate all calls to a sub locator:<p>