Repository: olingo-odata4
Updated Branches:
  refs/heads/master a604fa78f -> c35076fbe


[OLINGO-663] Default metadata etag generation fix

ETag value based on nano seconds will always be 14 characters long from
now on.


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

Branch: refs/heads/master
Commit: c35076fbe9ca77a1f441a5dfb36a817af0c1d31d
Parents: a604fa7
Author: Christian Amend <[email protected]>
Authored: Mon Jun 8 14:14:42 2015 +0200
Committer: Christian Amend <[email protected]>
Committed: Mon Jun 8 14:14:42 2015 +0200

----------------------------------------------------------------------
 .../olingo/fit/tecsvc/client/BatchClientITCase.java   | 10 +++++-----
 .../olingo/fit/tecsvc/http/BasicBatchITCase.java      |  2 +-
 .../apache/olingo/server/tecsvc/TechnicalServlet.java | 14 +++++++++++++-
 3 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c35076fb/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
index 932f9b1..7be6ab6 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
@@ -170,7 +170,7 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertEquals(1, oDataResonse.getHeader("OData-Version").size());
     assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]);
     assertEquals(1, oDataResonse.getHeader("Content-Length").size());
-    assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]);
+    assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]);
     assertEquals("application/json;odata.metadata=minimal", 
oDataResonse.getContentType());
   }
 
@@ -202,7 +202,7 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertEquals(1, oDataResonse.getHeader("OData-Version").size());
     assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]);
     assertEquals(1, oDataResonse.getHeader("Content-Length").size());
-    assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]);
+    assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]);
     assertEquals("application/json;odata.metadata=minimal", 
oDataResonse.getContentType());
   }
 
@@ -234,7 +234,7 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertEquals(1, oDataResonse.getHeader("OData-Version").size());
     assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]);
     assertEquals(1, oDataResonse.getHeader("Content-Length").size());
-    assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]);
+    assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]);
     assertEquals("application/json;odata.metadata=minimal", 
oDataResonse.getContentType());
 
     // Check second get request
@@ -334,7 +334,7 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertEquals(1, oDataResonse.getHeader("OData-Version").size());
     assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]);
     assertEquals(1, oDataResonse.getHeader("Content-Length").size());
-    assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]);
+    assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]);
     assertEquals("application/json;odata.metadata=minimal", 
oDataResonse.getContentType());
 
     // Check second get request
@@ -357,7 +357,7 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertEquals(1, oDataResonse.getHeader("OData-Version").size());
     assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]);
     assertEquals(1, oDataResonse.getHeader("Content-Length").size());
-    assertEquals("490", oDataResonse.getHeader("Content-Length").toArray()[0]);
+    assertEquals("491", oDataResonse.getHeader("Content-Length").toArray()[0]);
     assertEquals("application/json;odata.metadata=minimal", 
oDataResonse.getContentType());
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c35076fb/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java
index 3964d3b..c434703 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java
@@ -60,7 +60,7 @@ public class BasicBatchITCase extends AbstractBaseTestITCase {
     assertEquals("HTTP/1.1 200 OK", reader.readLine());
     assertEquals("OData-Version: 4.0", reader.readLine());
     assertEquals("Content-Type: application/json;odata.metadata=minimal", 
reader.readLine());
-    assertEquals("Content-Length: 582", reader.readLine());
+    assertEquals("Content-Length: 583", reader.readLine());
     blankLine(reader);
 
     reader.close();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c35076fb/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java
----------------------------------------------------------------------
diff --git 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java
 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java
index 349af30..40433f3 100644
--- 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java
+++ 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java
@@ -56,7 +56,7 @@ public class TechnicalServlet extends HttpServlet {
    * therefore any change must be deployed, resulting in re-loading of this 
class,
    * giving this field a new and hopefully unique value.</p>
    */
-  private static final String metadataETag = "W/\"" + System.nanoTime() + "\"";
+  private static final String metadataETag = getETag();
 
   @Override
   protected void service(final HttpServletRequest request, final 
HttpServletResponse response)
@@ -89,4 +89,16 @@ public class TechnicalServlet extends HttpServlet {
       throw new ServletException(e);
     }
   }
+
+  private static String getETag() {
+    String time = "" + System.nanoTime();
+    if (time.length() > 14) {
+      time = time.substring(0, 14);
+    } else {
+      while (time.length() < 14) {
+        time = "0" + time;
+      }
+    }
+    return "W/\"" + time + "\"";
+  }
 }

Reply via email to