You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/07/28 10:05:40 UTC

[1/2] [OLINGO-363] Better metadata ETag management

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 633ef3221 -> 05e41557f


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
index 4f5e2bb..6b1965c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "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";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     complexTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Address", org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientFactory.java
index 052883d..3310762 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientFactory.java
@@ -45,14 +45,14 @@ public final class ODataClientFactory {
   }
 
   public static org.apache.olingo.client.api.v4.EdmEnabledODataClient getEdmEnabledV4(final String serviceRoot) {
-    return getEdmEnabledV4(serviceRoot, null);
+    return getEdmEnabledV4(serviceRoot, null, null);
   }
 
   public static org.apache.olingo.client.api.v4.EdmEnabledODataClient getEdmEnabledV4(
-          final String serviceRoot, final Edm edm) {
+          final String serviceRoot, final Edm edm, final String metadataETag) {
 
     final org.apache.olingo.client.api.v4.EdmEnabledODataClient instance =
-            new org.apache.olingo.client.core.v4.EdmEnabledODataClientImpl(serviceRoot, edm);
+            new org.apache.olingo.client.core.v4.EdmEnabledODataClientImpl(serviceRoot, edm, metadataETag);
     instance.getConfiguration().setDefaultPubFormat(ODataFormat.JSON);
     return instance;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/EdmEnabledODataClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/EdmEnabledODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/EdmEnabledODataClientImpl.java
index 762275c..9e45852 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/EdmEnabledODataClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/EdmEnabledODataClientImpl.java
@@ -59,7 +59,7 @@ public class EdmEnabledODataClientImpl extends ODataClientImpl implements EdmEna
 
   @Override
   public Edm getCachedEdm() {
-    if (edm == null) {
+    if (this.edm == null) {
       getEdm(null);
     }
     return this.edm;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/EdmEnabledODataClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/EdmEnabledODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/EdmEnabledODataClientImpl.java
index fb47366..5baac81 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/EdmEnabledODataClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/EdmEnabledODataClientImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.olingo.client.core.v4;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory;
 import org.apache.olingo.client.api.communication.request.retrieve.EdmMetadataRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
@@ -38,12 +37,12 @@ public class EdmEnabledODataClientImpl extends ODataClientImpl implements EdmEna
 
   private EdmEnabledInvokeRequestFactory edmEnabledInvokeRequestFactory;
 
-  public EdmEnabledODataClientImpl(final String serviceRoot, final Edm edm) {
+  public EdmEnabledODataClientImpl(final String serviceRoot, final Edm edm, final String metadataETag) {
     super();
 
     this.serviceRoot = serviceRoot;
     this.edm = edm;
-    this.metadataETag = StringUtils.EMPTY;
+    this.metadataETag = metadataETag;
   }
 
   @Override
@@ -54,7 +53,7 @@ public class EdmEnabledODataClientImpl extends ODataClientImpl implements EdmEna
   @Override
   public Edm getEdm(final String metadataETag) {
     synchronized (this) {
-      if (this.metadataETag != null && !this.metadataETag.equals(metadataETag)) {
+      if (this.edm == null || (metadataETag != null && !metadataETag.equals(this.metadataETag))) {
         final EdmMetadataRequest metadataReq = getRetrieveRequestFactory().getMetadataRequest(serviceRoot);
         final ODataRetrieveResponse<Edm> metadataRes = metadataReq.execute();
         this.metadataETag = metadataRes.getETag();
@@ -66,7 +65,7 @@ public class EdmEnabledODataClientImpl extends ODataClientImpl implements EdmEna
 
   @Override
   public Edm getCachedEdm() {
-    if (edm == null) {
+    if (this.edm == null) {
       getEdm(null);
     }
     return this.edm;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
index daa669a..4760103 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
@@ -18,6 +18,14 @@
  */
 package org.apache.olingo.client.core.v4;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Iterator;
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;
 import org.apache.olingo.client.api.v4.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
@@ -26,12 +34,12 @@ import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
 import org.apache.olingo.commons.api.domain.ODataLink;
 import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.v4.ODataValue;
 import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.v4.ODataEntity;
 import org.apache.olingo.commons.api.domain.v4.ODataLinkedComplexValue;
 import org.apache.olingo.commons.api.domain.v4.ODataProperty;
 import org.apache.olingo.commons.api.domain.v4.ODataValuable;
-import org.apache.olingo.commons.api.domain.v4.ODataValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -41,15 +49,6 @@ import org.apache.olingo.commons.core.edm.primitivetype.EdmDuration;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Iterator;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 public class EntityTest extends AbstractTest {
 
   @Override
@@ -58,7 +57,7 @@ public class EntityTest extends AbstractTest {
   }
 
   private EdmEnabledODataClient getEdmEnabledClient() {
-    return new EdmEnabledODataClientImpl(null, null) {
+    return new EdmEnabledODataClientImpl(null, null, null) {
 
       private Edm edm;
 
@@ -355,7 +354,7 @@ public class EntityTest extends AbstractTest {
   }
 
   private void derived(final ODataClient client, final ODataFormat format) throws ODataDeserializerException {
-    final InputStream input = getClass().getResourceAsStream("Customer." + getSuffix(format));    
+    final InputStream input = getClass().getResourceAsStream("Customer." + getSuffix(format));
     final ODataEntity entity = client.getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 


[2/2] git commit: [OLINGO-363] Better metadata ETag management

Posted by il...@apache.org.
[OLINGO-363] Better metadata ETag management


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

Branch: refs/heads/master
Commit: 05e41557f5796c7ce00b1bc4d34c5bb513b03e99
Parents: 633ef32
Author: Francesco Chicchiriccò <--global>
Authored: Mon Jul 28 10:05:27 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Mon Jul 28 10:05:27 2014 +0200

----------------------------------------------------------------------
 .../olingo/ext/proxy/AbstractService.java       |  4 ++--
 .../olingo/ext/pojogen/AbstractPOJOGenMojo.java | 17 ++++++++++-----
 .../src/main/resources/service.vm               |  8 ++++---
 .../olingo/fit/proxy/v3/AbstractTestITCase.java |  1 -
 .../proxy/v3/ActionOverloadingTestITCase.java   |  1 -
 .../olingo/fit/proxy/v3/AsyncTestITCase.java    |  1 -
 .../olingo/fit/proxy/v3/ContextTestITCase.java  |  1 -
 .../fit/proxy/v3/EntityCreateTestITCase.java    |  1 -
 .../fit/proxy/v3/EntityRetrieveTestITCase.java  |  1 -
 .../fit/proxy/v3/EntitySetTestITCase.java       |  1 -
 .../fit/proxy/v3/EntityUpdateTestITCase.java    |  1 -
 .../olingo/fit/proxy/v3/FilterTestITCase.java   |  1 -
 .../olingo/fit/proxy/v3/InvokeTestITCase.java   |  1 -
 .../fit/proxy/v3/MediaEntityTestITCase.java     |  1 -
 .../olingo/fit/proxy/v3/OpenTypeTestITCase.java |  1 -
 .../fit/proxy/v3/PrimitiveKeysTestITCase.java   |  1 -
 .../olingo/fit/proxy/v3/PropertyTestITCase.java |  1 -
 .../fit/proxy/v3/actionoverloading/Service.java |  8 ++++---
 .../olingo/fit/proxy/v3/opentype/Service.java   |  8 ++++---
 .../fit/proxy/v3/primitivekeys/Service.java     |  8 ++++---
 .../fit/proxy/v3/staticservice/Service.java     |  8 ++++---
 .../olingo/fit/proxy/v4/AbstractTestITCase.java |  1 -
 .../proxy/v4/AuthEntityCreateTestITCase.java    |  1 -
 .../proxy/v4/AuthEntityRetrieveTestITCase.java  |  1 -
 .../v4/BoundOperationInvokeTestITCase.java      |  1 -
 .../olingo/fit/proxy/v4/ContextTestITCase.java  |  1 -
 .../fit/proxy/v4/DerivedTypeTestITCase.java     |  1 -
 .../fit/proxy/v4/EntityCreateTestITCase.java    |  1 -
 .../fit/proxy/v4/EntityRetrieveTestITCase.java  |  1 -
 .../fit/proxy/v4/EntitySetTestITCase.java       |  1 -
 .../fit/proxy/v4/EntityUpdateTestITCase.java    |  1 -
 .../olingo/fit/proxy/v4/FilterTestITCase.java   |  1 -
 .../fit/proxy/v4/KeyAsSegmentTestITCase.java    |  1 -
 .../fit/proxy/v4/MediaEntityTestITCase.java     |  1 -
 ...TransactionalAuthEntityCreateTestITCase.java |  1 -
 .../NonTransactionalEntityCreateTestITCase.java |  1 -
 .../NonTransactionalEntityUpdateTestITCase.java |  1 -
 .../NonTransactionalMediaEntityTestITCase.java  |  1 -
 .../olingo/fit/proxy/v4/OpenTypeTestITCase.java |  1 -
 .../v4/OperationImportInvokeTestITCase.java     |  1 -
 .../olingo/fit/proxy/v4/PropertyTestITCase.java |  1 -
 .../fit/proxy/v4/SingletonTestITCase.java       |  1 -
 .../v4/UnauthorizedEntityCreateTestITCase.java  |  1 -
 .../olingo/fit/proxy/v4/demo/Service.java       |  8 ++++---
 .../olingo/fit/proxy/v4/opentype/Service.java   |  8 ++++---
 .../fit/proxy/v4/staticservice/Service.java     |  8 ++++---
 .../olingo/client/core/ODataClientFactory.java  |  6 ++---
 .../core/v3/EdmEnabledODataClientImpl.java      |  2 +-
 .../core/v4/EdmEnabledODataClientImpl.java      |  9 ++++----
 .../olingo/client/core/v4/EntityTest.java       | 23 ++++++++++----------
 50 files changed, 72 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
index d6124bd..a2a05fd 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
@@ -61,7 +61,7 @@ public abstract class AbstractService<C extends CommonEdmEnabledODataClient<?>>
 
   private PersistenceManager persistenceManager;
 
-  protected AbstractService(final String compressedMetadata,
+  protected AbstractService(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     ByteArrayInputStream bais = null;
@@ -85,7 +85,7 @@ public abstract class AbstractService<C extends CommonEdmEnabledODataClient<?>>
     final Edm edm = metadata == null ? null : new EdmClientImpl(version, metadata.getSchemaByNsOrAlias());
     this.client = version.compareTo(ODataServiceVersion.V40) < 0
             ? ODataClientFactory.getEdmEnabledV3(serviceRoot, edm)
-            : ODataClientFactory.getEdmEnabledV4(serviceRoot, edm);
+            : ODataClientFactory.getEdmEnabledV4(serviceRoot, edm, metadataETag);
     this.client.getConfiguration().setDefaultPubFormat(ODataFormat.JSON_FULL_METADATA);
     this.transactional = transactional;
     this.context = new Context();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
index d23d92b..df3d0d3 100644
--- a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
+++ b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
@@ -36,14 +36,15 @@ import java.util.zip.GZIPOutputStream;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.commons.lang3.tuple.Pair;
+import org.apache.commons.lang3.tuple.ImmutableTriple;
+import org.apache.commons.lang3.tuple.Triple;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.olingo.client.api.CommonODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.EdmMetadataRequest;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
@@ -196,7 +197,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
 
   protected abstract CommonODataClient<?> getClient();
 
-  private Pair<XMLMetadata, Edm> getMetadata() throws FileNotFoundException {
+  private Triple<XMLMetadata, String, Edm> getMetadata() throws FileNotFoundException {
     if (StringUtils.isEmpty(serviceRootURL) && StringUtils.isEmpty(localEdm)) {
       throw new IllegalArgumentException("Must provide either serviceRootURL or localEdm");
     }
@@ -205,11 +206,14 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
     }
 
     XMLMetadata metadata = null;
+    String metadataETag = null;
     Edm edm = null;
     if (StringUtils.isNotEmpty(serviceRootURL)) {
       final EdmMetadataRequest req = getClient().getRetrieveRequestFactory().getMetadataRequest(serviceRootURL);
       metadata = req.getXMLMetadata();
-      edm = req.execute().getBody();
+      final ODataRetrieveResponse<Edm> res = req.execute();
+      metadataETag = res.getETag();
+      edm = res.getBody();
     } else if (StringUtils.isNotEmpty(localEdm)) {
       final FileInputStream fis = new FileInputStream(FileUtils.getFile(localEdm));
       try {
@@ -223,7 +227,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
     if (metadata == null || edm == null) {
       throw new IllegalStateException("Metadata not found");
     }
-    return new ImmutablePair<XMLMetadata, Edm>(metadata, edm);
+    return new ImmutableTriple<XMLMetadata, String, Edm>(metadata, metadataETag, edm);
   }
 
   @Override
@@ -237,7 +241,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
     Velocity.addProperty("class.resource.loader.class", ClasspathResourceLoader.class.getName());
 
     try {
-      final Pair<XMLMetadata, Edm> metadata = getMetadata();
+      final Triple<XMLMetadata, String, Edm> metadata = getMetadata();
 
       for (EdmSchema schema : metadata.getRight().getSchemas()) {
         namespaces.add(schema.getNamespace().toLowerCase());
@@ -361,6 +365,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
 
       objs.clear();
       objs.put("metadata", new String(Base64.encodeBase64(baos.toByteArray()), "UTF-8"));
+      objs.put("metadataETag", metadata.getMiddle());
       objs.put("complexTypes", complexTypeNames);
       objs.put("enumTypes", enumTypeNames);
       objs.put("terms", termNames);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/ext/pojogen-maven-plugin/src/main/resources/service.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/service.vm b/ext/pojogen-maven-plugin/src/main/resources/service.vm
index ca411f3..6078c10 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/service.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/service.vm
@@ -32,6 +32,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "$metadata";
+  private static final String METADATA_ETAG = #if($metadataETag)"$metadataETag"#{else}null#{end};
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -41,7 +42,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -104,10 +106,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
 #foreach ($complexType in $complexTypes.entrySet())

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
index df2a003..7c53798 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ActionOverloadingTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ActionOverloadingTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ActionOverloadingTestITCase.java
index 5a13532..ecfa21e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ActionOverloadingTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ActionOverloadingTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AsyncTestITCase.java
index 3645bf2..62c2a73 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AsyncTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AsyncTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
index 3d8c225..7ef2365 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
index 56e4cba..bda7f9e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityRetrieveTestITCase.java
index 3b0e396..ecbfca0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityRetrieveTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityRetrieveTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntitySetTestITCase.java
index 14b7c1c..aa3a66c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntitySetTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Car;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
index a7a8bec..fd2be17 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/FilterTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/FilterTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/FilterTestITCase.java
index dc9d615..aea7c0d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/FilterTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/FilterTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import org.apache.olingo.ext.proxy.api.Sort;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
index 62c3d60..f1eb965 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
index d3d74cd..d4ded24 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
index 1ffa7d4..a0e8b99 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PrimitiveKeysTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PrimitiveKeysTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PrimitiveKeysTestITCase.java
index aa5e73a..5b227e1 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PrimitiveKeysTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PrimitiveKeysTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PropertyTestITCase.java
index 9778ba3..0041103 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PropertyTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/PropertyTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v3;
 
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Driver;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/Service.java
index babc2fe..076f6c0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "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";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     complexTypes.put("Microsoft.Test.OData.Services.AstoriaDefaultService.ComplexToCategory", org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComplexToCategory.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/Service.java
index b36d09d..95e51b7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "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";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     complexTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV3.ContactDetails", org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.ContactDetails.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/Service.java
index c13ef53..581d4a9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "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";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     //CHECKSTYLE:ON (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/Service.java
index 5f2edfe..c224e15 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "H4sIAAAAAAAAAM1de2xk11m/tsf22J61va9k06TtaqE0Sek4u5tsHm6S+rW7bsZrx+NsgkVxr2fO2LeZuffm3juOXUhokfgHIWigqhLRBqlKIJFSkAqU8hKUUtFWioSSUAqtREEoCIWUoFaFoqjivO8593nuw033j5Xnzj3f63znO9855/edeeF1bdh1tDssZ6eu23prF9StrmHuWPVW1wCmV29ZDqiDdq++3+vW987XH1pprABPb+uevtyzu8/9++ZXvvob3/75QU3bd7Q71cjMbbueo7c8gdYXnrnj6pGvfe7ZQW2goVXgi/ue9p4GJDdDyM0QcjOEHHxozMCXZiC1mSX48ixkfls25rDZsgd6Qw/9y38+dc8rbyAFbGiJs8qWQHyRCT74oTNfeuVPdl8lJjiXWYr9hSntsY33vu0bg9pgQ6shazSBs2e0gOtp59VssCg0mm1oo3vAcQ3L9LRjjQ/re/pMVzd3ZpqeA9vP7j+iPa4Nucq9BVUVySOV/+PJ5y7+oP3s/+LeGnUhgZ4OhZ0mzPqe0Z1pGK6HeuWubPYQOf316790+2dfnHsC2+WYYJerRDukR7Whnezp+4vRXxJVPW3ofP0W8j9U+zgSso6ErM85jn6AJN3/2Etvf+pv9U8PaQPLWsU1PgL2bU3TBh6toP9ho/PKtmpiayArffkTf/XaP37nzU8NIiknddO0PN2DoiGGSLAJ2Nu661otAz922bOWBRuD/Y0DG7Bn05CT4R0swC7VDRNqSJ9PkOfiq2PA7PfEByN9F8rLPo3v6d0+2ABOjzyBXXRrti4iCv7On33yq1/8hcov4s4Z1ruG7tL+GDP1HnAhOSD0gQ1decVoOZZrdbz6BnTt+irqtDrr7Pqc61mOoS+Cjt7veuwxajwN+0DDPaHt8wdn8IMzmWLXnG9s1D/dX/6HP/z0/EO9
 QW0IxRyzzWxUQRow73JABzjIzHoXmh+ZwDA9T7tXbWDunZ9ZjyLARiFTZxCrMwjVmc2jzpLZRhp99+8+dF3zhzdWB7UK9KMetKNhd40W9BCqTdUyF0EXeMDTZtQUWKUNYFSpOFaXmaXiQQ+TxtjAzbCPR1adNvROT7szR2fXSWNE7wZKr7rQh2/2gONp78tDkTWHs8kU+3uLsLExo1OhHhDZjzSsHcPMqw5pfOjqEDYp6lRuqdfPQglGL/fdbd1sFxTgsLSa5lpRORXVqjxodMCPqU5HuE5ISFWFls2O5WnvL8IbkTh8pRAXlbE0jP20jKHEbFSiOpOYwRZ78tboM9aASRSlencuqqw9ig9EI/5IRaVaE0b/FeC6+g7KPWfzyMCal2uqfZTJYoVEEVV0ml4HLWDsgfaPq17XEL2CYipNTyXPtqXoUyP6qE+y1fXm3Ib1MOzXfMOYNQ8Op1K0mWTUt5RHUXUN9t9VAzyaUx/W/HD0YdSV9CmPtWShkgMd+6DeRaN0lJUTC5iVRmBsaqPZqFgPUepbhNpbp84YDEmGjRYEBTU6yjTiBFWUmpjzPLg26cHXYYRbKqCYQKh8q0H9jjP9BEZKGQSOkWVE71JDxAQmrT6YylejzMSOKJMlsRvDTRqGCXJGJ94+1D2FLYXiHSdP5ljVhd+aY7X7LS+nt9PWh2QoFCR8tSgvlb6aWgdd3QNtJl6J2pVjMKjZtfTPrYCsih03sgg83eh62lwBMQiNw9FvkulHmChNWOtgD2U4xZSiRA5FqSm/0zATpXR8bdfyLDfnqp0yJDQOt6MIDxWVjkj+U6YPlhuXoHYnJTZZgsgRyZ/K9MlDU5KwUVSSSTG5YPXsvgcc1pvzuSZXiUhgf4l+l3feps1R0GR/b8n8VPrzMPX0U5TyVaWeyz6qTuwNSM9086axtLUcyBYdYw+pdlceiqQxijfkry3KQmliKFUZfwotRx9Kfos8UXLFNZjdWiY75c7pi
 jKRwJyDv8upGmmM4wr+a0vm9FZryPuvVCUZF6qs6jBb0U24xss73pd6dtc6API4q7KnBYmigxP29xaVUyl7btpwRa53fTEW8ogRoBK03NCCDq12e64oqaNxdzzAYAs+tv2T4CrWrJrpJHjBP2JH56Zve/DJLze/tvMYPsw+Yep7xg4+VoXzqw273OBn6eO2/CQ75kXgPPWVxz7/wddvuJFgXviZMztQncSn/Txv4vqGjsJH8IMRVxkCAw1ANTtA2v/p945+5s4v/VtjUBvf1KY6rfsAsJdNxB223NQmOsY+aDeAuePtNrSxltXtYuNgYRvaVMsyW33HAWbrYMVqQyc6l36yvCC3mW1oRzotyvE+Ax9PRhGxej3LdDmVFjpO103PRRggoTUkN95pXWmuOQDKTuUcRU8eWF+mH2udVtPqOy2wpnu7/rMN3dkBnvDsJHJMcAmYwMGLN92DUzMMRXekK9mMaokwMReyuQzrq9ea33vX2Y9/4dcHtbFNrWr2YT9sd8GmNto3jRa0IgIPkfFzFWE8qAJjPX2fdB4cSQIaaBmaC8aJWRnuMGY7cKxRAM3A0w1t2G3p+NQffai4jgH75qcV+mYHWDPN9eXF2TBWQBuwSfCDbj2v79jo0zUL0K1AC/nVjbAz6wSrdNOAZtuPR4OICD/41MAG475Ql31Bo/+OYXTWJMb+IP3rS2a/J36JDl09GEqhOIhlfB8xjpHdK1JERnsGUr1ika2ggaeI5tNzXfQqHER74ArGyqRYALV9FsmF/niOkBrApGo0Rswh/A0mkytvws2Bm8xr7LLVA3DpaALMKNcmFm6ewuZBy3n4MNmQTphcsbaNLtGHOeGS0AW52Ub0GA7VA78JdZvrtw2Pn8tHRvMh/GBIlLUGY6TRMUAbCkGsUkMegj5tGL0Ue46zxvMHuOm471zJDSeEII1b5koOBCJI7wTjTAVejTeRkMswYYfxIV02Bafu7wOHWhXZUcWyXNrxRf
 i9iQJlwswc0ZfDD8IIuotZTWBWMNz29G6ys45cBsbOrpex1fAisJVYcaWOsuzEWoAW2LGcA0XdiEErCFaYrQ9GMJoQZGs03NC3QTe9DddrGI/MTA41gZtc6fe2YS6dSbqxpX2PeEYGCUdpCI6XkWFRy5tIOPMbaLc/aHi7c93ummP0DEQTo0jjJZrEDyal7pw3TN0RAg35nOyno/OW1QW66XsqfZDcrDJ/QKNhFbeBn5IbVLMMdElAOnKyjtpFqw8TNN8Y5HPKoIV52dkLNnEk2AZ/TG9y/pzU5Py59CYXbpWaXLg1pUmT2xs3aSYZnA1u7Hqqw4darQlfEa1GPidzmrwErB1Ht3cP1izDhIESLoZuTk8aYZJaR0mq95ffeuyTzRf6GAk81maRXW0VgjJdyN61dQTx/Uk+L8DMd3iPJuIoea7u6XB6hA4g5+HU12f3FRNdJHMUu4jMc+zS0uql9bm1yz+D7HHUz30pzxdPOx/9+0/933fgAnSTyrpvD3jaMWR22aLJ5j8CX+4Bz+HWh98Nvgv9dzN6efC9cGqhNP3XIgJSONo52vvUCzJkjDxa2r77Pb3nfvemzR/ijp0SwPZN4PE1PcHQC0+mOn2zRVHiluPxpf7dGWs7ZHne+JWfuu2Nsy8/MKhVNrVr6Eot8M6mdqyrf+SgYeltSH7JRO7Shq6zBdCcQgDq1fBmATQlnA1o5iUXCchY+VzgcmgZZMuVH9hnfq869ia25YRgSyZUJIKe7WbkSx5lyHZovna0e3IqRAHzzz999VvvXj36PN74GeOOwDTigHemhYBMqIq44cG7/dN9isqLgJzjN+8saguCp4rKXZAUiRJSeAiFtUegyJmEi4UkpNjtPCIK3zGoehQsnMmZ66hOwmMXFBIDz0Mg73LEkxZBGcSriQBwCiUPQbaZiLm262W0dJyMzN2GOQIwTvIwArvQUAlAn7PJJ4ITx5IQ1UzEi/lFFMHM2aT0wWsSaDsaJ80
 k/UB+SYPw5LzShuDY8QhoJnUuNIUIQs4maziM14LEco8bGUwcO7Z9QHRVBDeHZQ4DlAuJJ2ODY8Xz8c1VEascLV6YZv5hLQN94+SLHsCxEgbxw4UsKGN34yT0h8OogL2VZmhCIAwHZtIVwcP6ONz8Avrg4EiALxPzUhExBThtdkGPhsC/MqQ4BrfLBL83N54x2TlZdBnmwNdIp5wIkMrtkDL8NZtUcTN1mGbuIR3AssYOaQFpOibBa8PSR0BkCw2aEC41n5A+BGzUh3OFQa9M1PsK4MSCQNPYwRMSKfxNEGCbgGctNvVIGNLsEgeBihQ1G4anFnLXACg0v5gMasiAsBGI01LMSZCe2eWsiWhUjmwNY0iZkMuFcaFpoyvYwfLnxFEWjQwtQ3QZhpkmOut0+bOS6GFGuYNEDLAyfqHJgY78T/ZdCGgZeJCA4yxFhQBgMk6FNDGTVE3AZxYaoDI0Mk5yDlykf3Bf4TBJ9lcYbllsgS8hHWPjR0iMOMHD6MlCO01BsFus/RhwsCqC06RvGK4vCkNXKIuNAK2lihkE5LEXCIRuKB4OVyyYRWE/U2Wlf/BBFsSBBh7EgkxLED2A6IyNAykixqkYCx31jytOYU6nXGVsFz+uoJvrr/7T5q+99McvPkEukbo9z0EDpPToO3//tz63/MpFvJ097t8N9Ej0sUHOLGiu222S0yd8QAztCJ9cAhb+RI9Rhj7uaSvFiPvH2JTNKcIm8FxgWKhYMLCRiujlL6MUN5VySxazDZSbXsy+DaJXrAo7uM+CKBapqZVX84haOeW/UbsChfo6tGzObcvYtWNuW0bm9oha8RquqOy7KOX45BhRLlxRF1jSFKIrH69Ipy3FIlF0po3olVDBFJn2ItoFimKkxDS3p0ZmkYhartxwRbdt0F7icx/M64KPGP28NQkkFStkv4gsKnc/p2VePEup4SyllgkHcFGCQqBU5YVv3vyzK/v/9T+4XGBS7z6qH7jzhtkm
 YPTqNv9zHF1kaLnkwxHXaIOlTgfN3OZOxGH7Ef5AQN+P73qeDRXZtdqhHAZVY+gO/MSWfgjL4QCv75g85yG3OCKIytClpQ1PO3YJkmfwNoJG4tZh+DYJq4Q75puIiJAfcHLHITmcjXeMVmiP1YewqOeEa0whfMvm17995qy2+jqpD+nh2orbla8d5KRwgUX2pJK3/+/Z+SfnBpt/M6iNCGUHYmHBI7Q6QL2OIFARMIDgfAjBGECK2bAzLhcEZbN+ucnvSt8fpmEHshcWrL5wIuJ7g4+pi6KAPGrO2emjXGKt23dXBZypANkcehVBdCq6s3NWxunZqRxmSOCC09eHiRnWsY+7vl1WO0JVURiw6WlXitpQqkQKWLKyttrcwDvFMIYjaqSuJiSGnTyWTi2bsNOB3ltyHMsR+iVCn5J9YmAAaYIgVMtmC4rggqbe1R0j+ph76FXkrmOArdFRw6ICsbX8TbbvLANm0FPsgLiVpt56ONrbkIhVJiJ6t1CBocRaSE8wHhZ1VXAHLixLS2hSKDtCA6YQgYARr13Y1c0dwBLaMKo/1PWjNi27z1tuI5btE5LjHHOK3emeXCmZTyLkKWfw4Azkf2zmIrcPc30FYD8RbrIltUP0SshHBU+fdCVJEkDsQqOaDaPMLhyrBNEdAHRDEwho0tNYpdOu8iTIt2dYhejLrw181H3HM8/nqRBVLEuVd3MQ4+k/Ov6N5r9+/7uD2vCmdkwPfb+pjUEDkKgJp2bIF2c+DZiEIbv4Gz9DD4MDT7stPndAgvgXqmMG9wFcHIovKh74BIzvgW0faFBb/WJsieboHXfMPvGZ+ss4salRgx2sgw41Gc4JIvIoxfLWNZ8g4nbin59+86XPfv374Zuqg/th0IkGl9v7oQmHPziKHxxFnxlcHTZQRN7TGhmEq45ESB+RUNcpNSbovXiwdWYAdxW9jLYcIsldK5FDrynVjxEZuwc7qBImguyJgJT4TQWcvx8aFKT1X
 1agvAKjlRFvVpmy/3I6OJ5QjjXwDWHCqlaeFuSON/V1UZIr2Bt5ay+SYk3E86c7a69YZUDQV3uxprxGpJbFVXtJ9jsuy6joqb0UT5VkzeKovRRHlQhn8dNesp9eH6KbxU17qW56KkLuGFvjoFy5AF079sRgAM1Q6K3ZqLy0ck9quI8ouVMJ91w0vsjR0iUZ59uIgkTD+CX0Ay33KuctV4K5CZ5yD+768/3Vn/uL38bFG9WOY/XW/cv8aw4gVzq4u4ZNn414Fn8D5jDvz5bDhIW4+tQX/+BXrz99D5yFN1FGiWtUXHLdQngm1oTLjQUYWhlFJJwyNv2TmnDLf2mcGMERv6oCc/Jv3xdYlVJr4dPmzOid+AKn4tUSlKrPg+yBl8ZDrFjgo2AUj4JRcRiObez2e9smXo0IW0YwD04pYrxqtIGVrY0wMrNlemRDS97R0oQmME9rHphtuuxp9ns93TkIkTmG9it154DuweDr9gsswcSNnGS9j87rrYf7dpBvyXtJKXM9vjCB1ZDmOlnjVy4kBGpyWKsQpasPuKjgugfCMZoNCWEsMFhvCTU2gdNpzEkEujNWZdTLBI9zMbPAbwMwfiUVvwToc64Rt/czziUWs0Tw8ScHNmswvoXLUfzSkqgtJl6szjwtW/V0lmDl5ykMXqAwAkagSjDVikySsMGYnYQqlhJqZTg2PslmVLaM9ebLrtsHbZU7AXyDMfyESmLH3hUTu1ij+RiNEip4wkYTghX3GF++TNNbTgcdQayouY+J5l7tdFwQu0QhjafQi00b+tSqicT2b39IvwdnFDV4wFG9NgR1sx8G800Ncb0sBu4yKqHC/VzBnCslBJQqpLwD2sum+qUZdNVPGq72vazXbVQX+47usftTErqXdxSDC0V0kxAmcDfVLsK1DzMFfzpGCYhjVNgHJzMB+3kHv+iohBoxTtef1oXfXfBZlVPwJVLnDOVfWvBZllW8FSi8SszreT9kus5E6lRV/6
 bXY21Y+QZGBSUsKmHM004Iaf5af7truLugHQ5Qzf42OuFNEgNmKgKtDcMjR+ryumPeaitf9cXnwHWgE5snX8DDh1wYSacQI2v+24kbLxFzu9TUDwyX+kY7pYP9hr5R4q4l8lcEOEVTUGkUvyhqI0YcMeqzMrWipYUitjS04qA8SqgVFIv+omIivxyJGiBT8pB3Tf2jvJMOZwAci6kwtTBL+LMKPehN9A7aY2L1YBmllCIqlew9cUCoyKqckkihZikp1fTrMsm+S7Z9mIyORicU3gWZmlXv7+v4xDKTd04LjhV3H+HjjnZL6tWigetxNfpPuNpp+CK6lDcuHaJKK4SvKBcVkkfsOeEfWfF9qcw61TAnP/diGFafcwllppyuP0j4D5P4jMqoFPUp+yqxXwspSSVGjtVqJqVZo2tGy+s7INsAzDyWaMxeBG7LMWye0avnZgKkpQRYTMptoPO6C4LTiywqfHv48/EUjlEU3o9mjhI5n7oC6YJ2DP9D2zaVqwByRpvgItkfDsGS3/KKjKPmq4icM6fDj9KgkmGnQa56iLCkuBiVLelvQJDGwpNx9AS5fjZ7s1KM8iqjo+wdsUWRd7JmimfqpRHSKuP2qm/RDL0rlZ6oJJL4xZREUuWy4ZwGZfwz2XMYN8qwxJIKZ7SB1OAxKb6fdfkYaJxtAkNtnJ6uNoEJp/8U76h0+k/fTRqpoTp2oWC9zKsAwnX8SZYVRM9k1cjj0QRzBmRSMOq03CLJtIIlQ1Yu84oC8WaBpAQtJHom09ZWdLPf0XGKl3h5taddI2wnzfW9XcvBP8sQHt1oHZK4dy5vcxFaDzhGOO7mOaQ5KmOVFX41Ip5WbY0Chxfz3KZ/2Ckp93daWafg53gkJUzwvL6O38pQwpUVwtUTSdFBcZRLk9a84Xi7qp3jL3qpOMUNxs3kW66ESzT8uzCStkgy2Yvi9iifPHfV12jbha7uhvJVGatyvTC6EYbDMbb7Xly4qK1DKzl
 Gy+MDJZbuddF05dBBJ/GlfdsgR0OZ3SNUBKrgJ8nowBP4wQlRwMxg8MsO6GTrsWG86Z+tTRWxaejqN7Gzn3OAZso2dkdIQWCmbPMkjOarHf9HB6yGYT5c4DdxKg1rRyEPFUU4gkWgl/oT1tcGWNMv0+YWQgjf8x+tAvlOiQy5+D7GEvi7FDLjmAy6p58QOREggr5JITGBSeAfISA0TgZo4K9UiZw/F0vk/DlVIhdujSVy4VYli6BDo2iLoG9SSFBfEX9K4lSwj+mXKZROYUrBn1wxaGfdXxhnF/gpl/SfksINSv7pJfmXVFAm54f7dfSjNm5IkpP+PpaAFMQilQt69LTj/MemZvivtsTDMvlkgsr/FVasQ1eXryRMIBE7IMFF9GFhWpFk2dbAmTZx/SSWXEWgAp8hbyauf4MXHfCLmsq79irh9oQokB4T+nBXvrJEKitfuUWSUbkNQ9Yt70Iu/yatJN8PCZ0pi8jXFTVWnpAj7eaVDeh3UzJ05+nYgpWtpoECHzRM2Zdn2fFRiP16qDjFrejmQXKF4TuCE6dUbJiW3jD6sYVGPxFH3q83SuEx5esQX290Ol4L3CgtFaA8Eorb3h7m4Ne5KZopvtjtTAz1zFZKLH57Z6wOcUbivs4utRXwsgUvL0vw5PJOcFQO8h8JHwb6xzmodEKEjhS9FSxBa/EBni0k3ucw81xFORKdDAIcXzRcVN9lmH1+ko+lKHxXgnIaVRNFUNkmEDv/xDqwu3oL4BtdcrnPUckCh/6LqScXdo1uu6DLjuO9F5gmWw7urAK3WmXrq2OEMSSH0n4YjjJO/BPzRheBaNZ18dfpFBoe34BpMl0b5EoeJj9gbedLi/l1tOWZOrTry3+vXviV+VIu2xXuzOXcI84ep9kluhlty0o50A082eBXqltj/uwUuEk3/+zEL8qJ7Q9yhW+QY3l3C9PrgZN6ZBRdWqe+8KOry3nL7LuZmhxZdi/2u92DqxiUgpumgIoT
 FsmxD/ahxmfrt/w/9KIx9MGiAAA=";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     complexTypes.put("Microsoft.Test.OData.Services.AstoriaDefaultService.ComplexToCategory", org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ComplexToCategory.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
index 6a74d50..ca1166f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
index 265e6db..47d4417 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
index 1c41a27..1b4fede 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
index 3811a50..fadbeb7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
index 19bd356..041d6ec 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
index 77fb3d1..8779e11 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertNotNull;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
index 6f05792..aaff867 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
index 35d56ab..9ffcba5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
index e976b35..ccf956d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
index 35f7754..d2fd6b4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
index 4f3d54e..9c826d9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
index c3a1156..5e546bf 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
index a6188cb..c268f30 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
index 20229f2..dbb5101 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
index 2a2d725..46f236b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
index 66dc0e5..ccb070c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
index c8368c4..696532a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.v4.EdmEnabledODataClient;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
index 203d877..2cbd7bd 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
index 1f2a94a..b6400e4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
index 1bad3e6..0b0a376 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertNull;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
index dc2be67..5c0b8c6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
index b179271..cfc116e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.olingo.fit.proxy.v4;
 
 import org.apache.olingo.client.api.http.HttpClientException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
index d853209..2f79095 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "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";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     complexTypes.put("ODataDemo.Address", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/05e41557/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
index a6f0d5a..6823b5e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
@@ -30,6 +30,7 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   //CHECKSTYLE:OFF (Maven checkstyle)
   private static final String COMPRESSED_METADATA = "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";
+  private static final String METADATA_ETAG = null;
   //CHECKSTYLE:ON (Maven checkstyle)
 
   private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
@@ -39,7 +40,8 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
     if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, version, serviceRoot, transactional);
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG, 
+          version, serviceRoot, transactional);
       SERVICES.put(serviceRoot, instance);
     }
 
@@ -102,10 +104,10 @@ public class Service<C extends CommonEdmEnabledODataClient<?>> extends AbstractS
 
   private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
 
-  public Service(final String compressedMetadata,
+  public Service(final String compressedMetadata, final String metadataETag,
           final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
 
-    super(compressedMetadata, version, serviceRoot, transactional);
+    super(compressedMetadata, metadataETag,version, serviceRoot, transactional);
 
     //CHECKSTYLE:OFF (Maven checkstyle)
     complexTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.AccountInfo", org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfo.class);