Repository: olingo-odata4
Updated Branches:
  refs/heads/master 1ce51fd4e -> 5e21bb2ba


[OLINGO-1201] Enhancements to run better with Netty


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

Branch: refs/heads/master
Commit: 5e21bb2ba5d677893b6f87fcd04e2fcd7034654e
Parents: 1ce51fd
Author: ramya vasanth <[email protected]>
Authored: Tue Nov 14 09:39:31 2017 +0530
Committer: ramya vasanth <[email protected]>
Committed: Tue Nov 14 09:39:31 2017 +0530

----------------------------------------------------------------------
 lib/server-api/pom.xml                          |   5 +
 .../olingo/server/api/ODataHttpHandler.java     |   2 +-
 lib/server-core/pom.xml                         |   5 +
 .../server/core/ODataHttpHandlerImpl.java       | 101 ++++++++++---------
 .../server/core/debug/ServerCoreDebugger.java   |   2 +-
 5 files changed, 64 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5e21bb2b/lib/server-api/pom.xml
----------------------------------------------------------------------
diff --git a/lib/server-api/pom.xml b/lib/server-api/pom.xml
index 6d3987e..f651116 100644
--- a/lib/server-api/pom.xml
+++ b/lib/server-api/pom.xml
@@ -50,6 +50,11 @@
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
     </dependency>
+    <dependency>
+         <groupId>io.netty</groupId>
+         <artifactId>netty-all</artifactId>
+         <version>4.1.16.Final</version>
+       </dependency>
   </dependencies>
 
   <build>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5e21bb2b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataHttpHandler.java
----------------------------------------------------------------------
diff --git 
a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataHttpHandler.java
 
b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataHttpHandler.java
index 4c18e2e..61e0f0f 100644
--- 
a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataHttpHandler.java
+++ 
b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataHttpHandler.java
@@ -39,7 +39,7 @@ public interface ODataHttpHandler extends ODataHandler {
    * @param response - HTTP OData response
    */
   void process(HttpServletRequest request, HttpServletResponse response);
-
+  
   /**
    * Sets the split parameter which is used for service resolution.
    * @param split the number of path segments reserved for service resolution; 
default is 0

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5e21bb2b/lib/server-core/pom.xml
----------------------------------------------------------------------
diff --git a/lib/server-core/pom.xml b/lib/server-core/pom.xml
index 7f88e08..2e7ed61 100644
--- a/lib/server-core/pom.xml
+++ b/lib/server-core/pom.xml
@@ -79,6 +79,11 @@
       <groupId>org.mockito</groupId>
       <artifactId>mockito-all</artifactId>
     </dependency>
+    <dependency>
+         <groupId>io.netty</groupId>
+         <artifactId>netty-all</artifactId>
+         <version>4.1.16.Final</version>
+       </dependency>
   </dependencies>
 
   <build>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5e21bb2b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index 6c4b1b3..bbd94e5 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -125,7 +125,7 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
     environment.put("servletPath", request.getServletPath());
     return environment;
   }
-
+  
   private String getIntAsString(final int number) {
     return number == 0 ? "unknown" : Integer.toString(number);
   }
@@ -164,7 +164,7 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
       writeContent(odResponse, response);
     }
   }
-
+  
   static void writeContent(final ODataResponse odataResponse, final 
HttpServletResponse servletResponse) {
     try {
       ODataContent res = odataResponse.getODataContent();
@@ -195,7 +195,7 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
       closeStream(output);
     }
   }
-
+  
   private static void closeStream(final Channel closeable) {
     if (closeable != null) {
       try {
@@ -205,7 +205,7 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
       }
     }
   }
-
+  
   private ODataRequest fillODataRequest(final ODataRequest odRequest, final 
HttpServletRequest httpRequest,
       final int split) throws ODataLibraryException {
     final int requestHandle = 
debugger.startRuntimeMeasurement("ODataHttpHandlerImpl", "fillODataRequest");
@@ -228,43 +228,44 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
       debugger.stopRuntimeMeasurement(requestHandle);
     }
   }
-
+  
   static HttpMethod extractMethod(final HttpServletRequest httpRequest) throws 
ODataLibraryException {
-    final HttpMethod httpRequestMethod;
-    try {
-      httpRequestMethod = HttpMethod.valueOf(httpRequest.getMethod());
-    } catch (IllegalArgumentException e) {
-      throw new ODataHandlerException("HTTP method not allowed" + 
httpRequest.getMethod(), e,
-          ODataHandlerException.MessageKeys.HTTP_METHOD_NOT_ALLOWED, 
httpRequest.getMethod());
-    }
-    try {
-      if (httpRequestMethod == HttpMethod.POST) {
-        String xHttpMethod = httpRequest.getHeader(HttpHeader.X_HTTP_METHOD);
-        String xHttpMethodOverride = 
httpRequest.getHeader(HttpHeader.X_HTTP_METHOD_OVERRIDE);
-
-        if (xHttpMethod == null && xHttpMethodOverride == null) {
-          return httpRequestMethod;
-        } else if (xHttpMethod == null) {
-          return HttpMethod.valueOf(xHttpMethodOverride);
-        } else if (xHttpMethodOverride == null) {
-          return HttpMethod.valueOf(xHttpMethod);
-        } else {
-          if (!xHttpMethod.equalsIgnoreCase(xHttpMethodOverride)) {
-            throw new ODataHandlerException("Ambiguous X-HTTP-Methods",
-                ODataHandlerException.MessageKeys.AMBIGUOUS_XHTTP_METHOD, 
xHttpMethod, xHttpMethodOverride);
-          }
-          return HttpMethod.valueOf(xHttpMethod);
-        }
-      } else {
-        return httpRequestMethod;
-      }
-    } catch (IllegalArgumentException e) {
-      throw new ODataHandlerException("Invalid HTTP method" + 
httpRequest.getMethod(), e,
-          ODataHandlerException.MessageKeys.INVALID_HTTP_METHOD, 
httpRequest.getMethod());
-    }
-  }
-
-  static void fillUriInformation(final ODataRequest odRequest, final 
HttpServletRequest httpRequest, final int split) {
+           final HttpMethod httpRequestMethod;
+           try {
+             httpRequestMethod = HttpMethod.valueOf(httpRequest.getMethod());
+           } catch (IllegalArgumentException e) {
+             throw new ODataHandlerException("HTTP method not allowed" + 
httpRequest.getMethod(), e,
+                 ODataHandlerException.MessageKeys.HTTP_METHOD_NOT_ALLOWED, 
httpRequest.getMethod());
+           }
+           try {
+             if (httpRequestMethod == HttpMethod.POST) {
+               String xHttpMethod = 
httpRequest.getHeader(HttpHeader.X_HTTP_METHOD);
+               String xHttpMethodOverride = 
httpRequest.getHeader(HttpHeader.X_HTTP_METHOD_OVERRIDE);
+
+               if (xHttpMethod == null && xHttpMethodOverride == null) {
+                 return httpRequestMethod;
+               } else if (xHttpMethod == null) {
+                 return HttpMethod.valueOf(xHttpMethodOverride);
+               } else if (xHttpMethodOverride == null) {
+                 return HttpMethod.valueOf(xHttpMethod);
+               } else {
+                 if (!xHttpMethod.equalsIgnoreCase(xHttpMethodOverride)) {
+                   throw new ODataHandlerException("Ambiguous X-HTTP-Methods",
+                       
ODataHandlerException.MessageKeys.AMBIGUOUS_XHTTP_METHOD, xHttpMethod, 
xHttpMethodOverride);
+                 }
+                 return HttpMethod.valueOf(xHttpMethod);
+               }
+             } else {
+               return httpRequestMethod;
+             }
+           } catch (IllegalArgumentException e) {
+             throw new ODataHandlerException("Invalid HTTP method" + 
httpRequest.getMethod(), e,
+                 ODataHandlerException.MessageKeys.INVALID_HTTP_METHOD, 
httpRequest.getMethod());
+           }
+         }
+  
+  static void fillUriInformation(final ODataRequest odRequest, 
+                 final HttpServletRequest httpRequest, final int split) {
     String rawRequestUri = httpRequest.getRequestURL().toString();
 
     String rawODataPath;
@@ -274,10 +275,12 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
       int beginIndex = rawRequestUri.indexOf(requestMapping) + 
requestMapping.length();
       rawODataPath = rawRequestUri.substring(beginIndex);
     }else if(!"".equals(httpRequest.getServletPath())) {
-      int beginIndex = rawRequestUri.indexOf(httpRequest.getServletPath()) + 
httpRequest.getServletPath().length();
+      int beginIndex = rawRequestUri.indexOf(httpRequest.getServletPath()) + 
+                 httpRequest.getServletPath().length();
       rawODataPath = rawRequestUri.substring(beginIndex);
     } else if (!"".equals(httpRequest.getContextPath())) {
-      int beginIndex = rawRequestUri.indexOf(httpRequest.getContextPath()) + 
httpRequest.getContextPath().length();
+      int beginIndex = rawRequestUri.indexOf(httpRequest.getContextPath()) + 
+                 httpRequest.getContextPath().length();
       rawODataPath = rawRequestUri.substring(beginIndex);
     } else {
       rawODataPath = httpRequest.getRequestURI();
@@ -310,13 +313,13 @@ public class ODataHttpHandlerImpl implements 
ODataHttpHandler {
   }
 
   static void copyHeaders(ODataRequest odRequest, final HttpServletRequest 
req) {
-    for (final Enumeration<?> headerNames = req.getHeaderNames(); 
headerNames.hasMoreElements();) {
-      final String headerName = (String) headerNames.nextElement();
-      @SuppressWarnings("unchecked")
-      // getHeaders() says it returns an Enumeration of String.
-      final List<String> headerValues = 
Collections.list(req.getHeaders(headerName));
-      odRequest.addHeader(headerName, headerValues);
-    }
+         for (final Enumeration<?> headerNames = req.getHeaderNames(); 
headerNames.hasMoreElements();) {
+             final String headerName = (String) headerNames.nextElement();
+             @SuppressWarnings("unchecked")
+             // getHeaders() says it returns an Enumeration of String.
+             final List<String> headerValues = 
Collections.list(req.getHeaders(headerName));
+             odRequest.addHeader(headerName, headerValues);
+           }
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5e21bb2b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
index cf80073..1fd85b7 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
@@ -62,7 +62,7 @@ public class ServerCoreDebugger {
       }
     }
   }
-
+  
   public ODataResponse createDebugResponse(final ODataRequest request, final 
ODataResponse response,
       final Exception exception, final UriInfo uriInfo, final Map<String, 
String> serverEnvironmentVariables) {
     // Failsafe so we do not generate unauthorized debug messages

Reply via email to