You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2019/05/01 04:17:53 UTC

[olingo-odata4] branch master updated: OLINGO-1350: Updating fasterxml version 2.9.8 and removing the dependency on aalto-xml library

This is an automated email from the ASF dual-hosted git repository.

mibo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata4.git


The following commit(s) were added to refs/heads/master by this push:
     new e6672fd  OLINGO-1350: Updating fasterxml version 2.9.8 and removing the dependency on aalto-xml library
e6672fd is described below

commit e6672fdef49733fd39c93ea9d1d975a4f7bc84c0
Author: Ramesh Reddy <ra...@jboss.org>
AuthorDate: Tue Apr 30 11:35:14 2019 -0500

    OLINGO-1350: Updating fasterxml version 2.9.8 and removing the dependency on aalto-xml library
---
 .../olingo/client/core/edm/xml/ClientCsdlEdmx.java |   2 +-
 .../olingo/server/example/TripPinServiceTest.java  |   3 +-
 lib/server-core/pom.xml                            |   7 +-
 .../xml/MetadataDocumentXmlSerializerTest.java     | 119 ++++++++++++---------
 .../xml/ServerErrorXmlSerializerTest.java          |   4 +-
 .../xml/ServiceDocumentXmlSerializerTest.java      |   4 +-
 .../core/serializer/xml/MetadataDocumentTest.java  |  38 ++++---
 .../serializer/xml/ODataXmlSerializerTest.java     |  16 +--
 pom.xml                                            |   3 +-
 9 files changed, 107 insertions(+), 89 deletions(-)

diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java
index 9c675b9..5147a5c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java
@@ -76,7 +76,7 @@ public class ClientCsdlEdmx extends CsdlAbstractEdmItem implements Serializable,
 
       final ClientCsdlEdmx edmx = new ClientCsdlEdmx();
 
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+      for (; (jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT); jp.nextToken()) {
         final JsonToken token = jp.getCurrentToken();
         if (token == JsonToken.FIELD_NAME) {
           if ("Version".equals(jp.getCurrentName())) {
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
index fdc0e4a..fa32eef 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
@@ -125,10 +125,11 @@ public class TripPinServiceTest {
         "<m:properties>"
         +     "<d:AirlineCode>FM</d:AirlineCode>"
         +     "<d:Name>Shanghai xxxAirlinexxx</d:Name>" 
-        +     "<d:Picture m:null=\"true\"/>" 
+        +     "<d:Picture m:null=\"true\"></d:Picture>" 
         +  "</m:properties>"  
         + "</a:content>"  
         +"</a:entry>";
+    System.out.println(actual);
     assertTrue(actual.endsWith(expected));
   }
 
diff --git a/lib/server-core/pom.xml b/lib/server-core/pom.xml
index 4818ca3..8815b32 100644
--- a/lib/server-core/pom.xml
+++ b/lib/server-core/pom.xml
@@ -60,15 +60,10 @@
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
     </dependency>
-
-	<dependency>
-      <groupId>com.fasterxml</groupId>
-      <artifactId>aalto-xml</artifactId>
-    </dependency>
-
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
+      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
index b6db975..9710677 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
@@ -118,9 +118,9 @@ public class MetadataDocumentXmlSerializerTest {
     ServiceMetadata metadata = mock(ServiceMetadata.class);
     when(metadata.getEdm()).thenReturn(edm);
 
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+    assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">"
-        + "<edmx:DataServices/></edmx:Edmx>",
+        + "<edmx:DataServices></edmx:DataServices></edmx:Edmx>",
         IOUtils.toString(serializer.metadataDocument(metadata).getContent()));
   }
 
@@ -136,10 +136,10 @@ public class MetadataDocumentXmlSerializerTest {
 
     InputStream metadata = serializer.metadataDocument(serviceMetadata).getContent();
     assertNotNull(metadata);
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+    assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">"
         + "<edmx:DataServices>"
-        + "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"MyNamespace\"/>"
+        + "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"MyNamespace\"></Schema>"
         + "</edmx:DataServices>"
         + "</edmx:Edmx>",
         IOUtils.toString(metadata));
@@ -262,41 +262,44 @@ public class MetadataDocumentXmlSerializerTest {
     final String metadataString = IOUtils.toString(metadata);
     // edmx reference
     assertTrue(metadataString.contains(
-        "<edmx:Reference Uri=\"http://example.com\"/>"));
+        "<edmx:Reference Uri=\"http://example.com\"></edmx:Reference>"));
     assertTrue(metadataString.contains(
         "<edmx:Reference " +
             "Uri=\"http://localhost/odata/odata/v4.0/referenceWithInclude\">" +
-            "<edmx:Include Namespace=\"Org.OData.Core.V1\" Alias=\"Core\"/>" +
+            "<edmx:Include Namespace=\"Org.OData.Core.V1\" Alias=\"Core\"></edmx:Include>" +
         "</edmx:Reference>"));
     assertTrue(metadataString.contains(
         "<edmx:Reference " +
             "Uri=\"http://localhost/odata/odata/v4.0/referenceWithTwoIncludes\">" +
-            "<edmx:Include Namespace=\"Org.OData.Core.2\" Alias=\"Core2\"/>" +
-            "<edmx:Include Namespace=\"Org.OData.Core.3\" Alias=\"Core3\"/>" +
+            "<edmx:Include Namespace=\"Org.OData.Core.2\" Alias=\"Core2\"></edmx:Include>" +
+            "<edmx:Include Namespace=\"Org.OData.Core.3\" Alias=\"Core3\"></edmx:Include>" +
         "</edmx:Reference>"));
     assertTrue(metadataString.contains(
         "<edmx:Reference Uri=\"http://localhost/odata/odata/v4.0/referenceWithIncludeAnnos\">" +
-            "<edmx:IncludeAnnotations TermNamespace=\"TermNs.2\" Qualifier=\"Q.2\" TargetNamespace=\"TargetNS.2\"/>" +
-            "<edmx:IncludeAnnotations TermNamespace=\"TermNs.3\" Qualifier=\"Q.3\" TargetNamespace=\"TargetNS.3\"/>" +
+            "<edmx:IncludeAnnotations TermNamespace=\"TermNs.2\" Qualifier=\"Q.2\" "
+            + "TargetNamespace=\"TargetNS.2\"></edmx:IncludeAnnotations>" +
+            "<edmx:IncludeAnnotations TermNamespace=\"TermNs.3\" Qualifier=\"Q.3\" "
+            + "TargetNamespace=\"TargetNS.3\"></edmx:IncludeAnnotations>" +
         "</edmx:Reference>"));
     assertTrue(metadataString.contains(
-        "<edmx:Reference Uri=\"http://localhost/odata/odata/v4.0/referenceWithAll\">" +
-            "<edmx:Include Namespace=\"ReferenceWithAll.1\" Alias=\"Core1\"/>" +
-            "<edmx:Include Namespace=\"ReferenceWithAll.2\" Alias=\"Core2\"/>" +
-            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\" " +
-            "Qualifier=\"Q.4\" TargetNamespace=\"TargetNS.4\"/>" +
-            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.5\" " +
-            "Qualifier=\"Q.5\" TargetNamespace=\"TargetNS.5\"/>" +
-        "</edmx:Reference>"));
+            "<edmx:Reference Uri=\"http://localhost/odata/odata/v4.0/referenceWithAll\">" +
+                "<edmx:Include Namespace=\"ReferenceWithAll.1\" Alias=\"Core1\"></edmx:Include>" +
+                "<edmx:Include Namespace=\"ReferenceWithAll.2\" Alias=\"Core2\"></edmx:Include>" +
+                "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\" " +
+                "Qualifier=\"Q.4\" TargetNamespace=\"TargetNS.4\"></edmx:IncludeAnnotations>" +
+                "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.5\" " +
+                "Qualifier=\"Q.5\" TargetNamespace=\"TargetNS.5\"></edmx:IncludeAnnotations>" +
+            "</edmx:Reference>"));
     assertTrue(metadataString.contains(
         "<edmx:Reference Uri=\"http://localhost/odata/odata/v4.0/referenceWithAllAndNull\">" +
-            "<edmx:Include Namespace=\"referenceWithAllAndNull.1\"/>" +
-            "<edmx:Include Namespace=\"referenceWithAllAndNull.2\"/>" +
-            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\"/>" +
-            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.5\" Qualifier=\"Q.5\"/>" +
+            "<edmx:Include Namespace=\"referenceWithAllAndNull.1\"></edmx:Include>" +
+            "<edmx:Include Namespace=\"referenceWithAllAndNull.2\"></edmx:Include>" +
+            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\"></edmx:IncludeAnnotations>" +
+            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.5\" " +
+            "Qualifier=\"Q.5\"></edmx:IncludeAnnotations>" +
             "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.6\" " +
-            "TargetNamespace=\"TargetNS\"/>" +
-            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.7\"/>" +
+            "TargetNamespace=\"TargetNS\"></edmx:IncludeAnnotations>" +
+            "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.7\"></edmx:IncludeAnnotations>" +
         "</edmx:Reference>"));
   }
 
@@ -306,24 +309,25 @@ public class MetadataDocumentXmlSerializerTest {
 
     assertTrue(metadata.contains("<EnumType Name=\"ENString\" IsFlags=\"true\" UnderlyingType=\"Edm.Int16\">"));
     assertTrue(metadata.contains("<EntityType Name=\"ETAbstractBase\" BaseType=\"Alias.ETAbstract\">"));
-    assertTrue(metadata.contains("<ComplexType Name=\"CTTwoPrimBase\" BaseType=\"Alias.CTTwoPrim\"/>"));
-    assertTrue(metadata.contains("<Property Name=\"PropertyInt16\" Type=\"Edm.Int16\" Nullable=\"false\"/>"));
-    assertTrue(metadata.contains("<EntitySet Name=\"ESAllPrim\" EntityType=\"Alias.ETAbstractBase\"/>"));
-    assertTrue(metadata.contains("<Singleton Name=\"SI\" Type=\"Alias.ETAbstractBase\"/>"));
-    assertTrue(metadata.contains("<ActionImport Name=\"AIRTPrimParam\" Action=\"Alias.UARTPrimParam\"/>"));
+    assertTrue(metadata.contains("<ComplexType Name=\"CTTwoPrimBase\" BaseType=\"Alias.CTTwoPrim\"></ComplexType>"));
+    assertTrue(metadata.contains("<Property Name=\"PropertyInt16\" Type=\"Edm.Int16\" Nullable=\"false\"></Property>"));
+    assertTrue(metadata.contains("<EntitySet Name=\"ESAllPrim\" EntityType=\"Alias.ETAbstractBase\"></EntitySet>"));
+    assertTrue(metadata.contains("<Singleton Name=\"SI\" Type=\"Alias.ETAbstractBase\"></Singleton>"));
+    assertTrue(metadata.contains("<ActionImport Name=\"AIRTPrimParam\" Action=\"Alias.UARTPrimParam\"></ActionImport"));
     assertTrue(metadata.contains("<FunctionImport Name=\"FINRTInt16\" " +
-        "Function=\"Alias.UFNRTInt16\" IncludeInServiceDocument=\"true\"/>"));
+        "Function=\"Alias.UFNRTInt16\" IncludeInServiceDocument=\"true\"></FunctionImport>"));
   }
 
   @Test
   public void terms() throws Exception {
     String metadata = localMetadata();
-    assertTrue(metadata.contains("<Term Name=\"Term1\" Type=\"Edm.String\"/>"));
+    assertTrue(metadata.contains("<Term Name=\"Term1\" Type=\"Edm.String\"></Term>"));
     assertTrue(metadata
         .contains("<Term Name=\"Term2\" Type=\"Edm.String\" Nullable=\"false\" DefaultValue=\"default\" "
-            + "MaxLength=\"1\" Precision=\"2\" Scale=\"3\"/>"));
-    assertTrue(metadata.contains("<Term Name=\"Term3\" Type=\"Edm.String\" AppliesTo=\"Property EntitySet Schema\"/>"));
-    assertTrue(metadata.contains("<Term Name=\"Term4\" Type=\"Edm.String\" BaseTerm=\"Alias.Term1\"/>"));
+            + "MaxLength=\"1\" Precision=\"2\" Scale=\"3\"></Term>"));
+    assertTrue(metadata.contains("<Term Name=\"Term3\" Type=\"Edm.String\" "
+    		+ "AppliesTo=\"Property EntitySet Schema\"></Term>"));
+    assertTrue(metadata.contains("<Term Name=\"Term4\" Type=\"Edm.String\" BaseTerm=\"Alias.Term1\"></Term>"));
   }
 
   @Test
@@ -351,44 +355,55 @@ public class MetadataDocumentXmlSerializerTest {
 
     // All dynamic expressions
     // Logical expressions
-    assertTrue(metadata.contains("<And><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></And>"));
-    assertTrue(metadata.contains("<Or><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Or>"));
-    assertTrue(metadata.contains("<Not><Bool>true</Bool><Annotation Term=\"ns.term\"/></Not>"));
+    assertTrue(metadata.contains("<And><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></And>"));
+    assertTrue(metadata.contains("<Or><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Or>"));
+    assertTrue(metadata.contains("<Not><Bool>true</Bool><Annotation Term=\"ns.term\"></Annotation></Not>"));
 
     // Comparison expressions
-    assertTrue(metadata.contains("<Eq><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Eq>"));
-    assertTrue(metadata.contains("<Ne><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Ne>"));
-    assertTrue(metadata.contains("<Gt><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Gt>"));
-    assertTrue(metadata.contains("<Ge><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Ge>"));
-    assertTrue(metadata.contains("<Lt><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Lt>"));
-    assertTrue(metadata.contains("<Le><Bool>true</Bool><Bool>false</Bool><Annotation Term=\"ns.term\"/></Le>"));
+    assertTrue(metadata.contains("<Eq><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Eq>"));
+    assertTrue(metadata.contains("<Ne><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Ne>"));
+    assertTrue(metadata.contains("<Gt><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Gt>"));
+    assertTrue(metadata.contains("<Ge><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Ge>"));
+    assertTrue(metadata.contains("<Lt><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Lt>"));
+    assertTrue(metadata.contains("<Le><Bool>true</Bool><Bool>false</Bool>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></Le>"));
 
     // Other
     assertTrue(metadata.contains("<AnnotationPath>AnnoPathValue</AnnotationPath>"));
     assertTrue(metadata
-        .contains("<Apply Function=\"odata.concat\"><Bool>true</Bool><Annotation Term=\"ns.term\"/></Apply>"));
+        .contains("<Apply Function=\"odata.concat\"><Bool>true</Bool>"
+        		+ "<Annotation Term=\"ns.term\"></Annotation></Apply>"));
     assertTrue(metadata
         .contains("<Cast Type=\"Edm.String\" MaxLength=\"1\" Precision=\"2\" Scale=\"3\">"
-            + "<String>value</String><Annotation Term=\"ns.term\"/></Cast>"));
+            + "<String>value</String><Annotation Term=\"ns.term\"></Annotation></Cast>"));
     assertTrue(metadata.contains("<Collection><Bool>true</Bool>"
         + "<Bool>false</Bool><String>String</String></Collection>"));
     assertTrue(metadata
         .contains("<If><Bool>true</Bool><String>Then</String>"
-            + "<String>Else</String><Annotation Term=\"ns.term\"/></If>"));
+            + "<String>Else</String><Annotation Term=\"ns.term\"></Annotation></If>"));
     assertTrue(metadata
         .contains("<IsOf Type=\"Edm.String\" MaxLength=\"1\" Precision=\"2\" Scale=\"3\">"
-            + "<String>value</String><Annotation Term=\"ns.term\"/></IsOf>"));
+            + "<String>value</String><Annotation Term=\"ns.term\"></Annotation></IsOf>"));
     assertTrue(metadata
         .contains("<LabeledElement Name=\"NameAtt\">"
-            + "<String>value</String><Annotation Term=\"ns.term\"/></LabeledElement>"));
+            + "<String>value</String><Annotation Term=\"ns.term\"></Annotation></LabeledElement>"));
     assertTrue(metadata.contains("<LabeledElementReference>LabeledElementReferenceValue</LabeledElementReference>"));
     assertTrue(metadata.contains("<NavigationPropertyPath>NavigationPropertyPathValue</NavigationPropertyPath>"));
     assertTrue(metadata.contains("<Path>PathValue</Path>"));
     assertTrue(metadata.contains("<PropertyPath>PropertyPathValue</PropertyPath>"));
     assertTrue(metadata
         .contains("<Record Type=\"Alias.ETAbstract\"><PropertyValue Property=\"PropName\"><String>value</String>"
-            + "<Annotation Term=\"ns.term\"/></PropertyValue><Annotation Term=\"ns.term\"/></Record>"));
-    assertTrue(metadata.contains("<UrlRef><String>URLRefValue</String><Annotation Term=\"ns.term\"/></UrlRef>"));
+            + "<Annotation Term=\"ns.term\"></Annotation></PropertyValue>"
+            + "<Annotation Term=\"ns.term\"></Annotation></Record>"));
+    assertTrue(metadata.contains("<UrlRef><String>URLRefValue</String>"
+    		+ "<Annotation Term=\"ns.term\"></Annotation></UrlRef>"));
 
   }
 
@@ -451,8 +466,8 @@ public class MetadataDocumentXmlSerializerTest {
     InputStream metadataStream = serializer.metadataDocument(serviceMetadata).getContent();
     String metadata = IOUtils.toString(metadataStream);
     assertTrue(metadata.contains("<ComplexType Name=\"ComplexType\" Abstract=\"true\" OpenType=\"true\">"
-        + "<Property Name=\"prop1\" Type=\"Edm.String\"/>"
-        + "<Property Name=\"prop2\" Type=\"Edm.String\"/>"
+        + "<Property Name=\"prop1\" Type=\"Edm.String\"></Property>"
+        + "<Property Name=\"prop2\" Type=\"Edm.String\"></Property>"
         + "</ComplexType>"));
   }
 
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
index 63c3b6a..343026e 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java
@@ -46,7 +46,7 @@ public class ServerErrorXmlSerializerTest {
     error.setCode("Code").setMessage("ErrorMessage");
     InputStream stream = ser.error(error).getContent();
     String jsonString = IOUtils.toString(stream);
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+    assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<error xmlns=\"http://docs.oasis-open.org/odata/ns/metadata\">"
         + "<code>Code</code>"
         + "<message>ErrorMessage</message>"
@@ -72,7 +72,7 @@ public class ServerErrorXmlSerializerTest {
 
     InputStream stream = ser.error(error).getContent();
     String jsonString = IOUtils.toString(stream);
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+    assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<error xmlns=\"http://docs.oasis-open.org/odata/ns/metadata\">"
         + "<code>code</code>"
         + "<message>err message</message>"
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializerTest.java
index befa441..dae3011 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializerTest.java
@@ -63,7 +63,7 @@ public class ServiceDocumentXmlSerializerTest {
     ServiceMetadata metadata = mock(ServiceMetadata.class);
     when(metadata.getEdm()).thenReturn(edm);
 
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+    assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<app:service xmlns:atom=\"http://www.w3.org/2005/Atom\" "
         + "xmlns:app=\"http://www.w3.org/2007/app\" "
         + "xmlns:metadata=\"http://docs.oasis-open.org/odata/ns/metadata\" "
@@ -80,7 +80,7 @@ public class ServiceDocumentXmlSerializerTest {
         Collections.<EdmxReference> emptyList(), null);
     InputStream metadataStream = serializer.serviceDocument(serviceMetadata, "http://host/svc").getContent();
     String metadata = IOUtils.toString(metadataStream);
-    assertEquals("<?xml version='1.0' encoding='UTF-8'?>"
+    assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<app:service xmlns:atom=\"http://www.w3.org/2005/Atom\" "
         + "xmlns:app=\"http://www.w3.org/2007/app\" "
         + "xmlns:metadata=\"http://docs.oasis-open.org/odata/ns/metadata\" "
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
index 3e9188e..86cd344 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
@@ -52,7 +52,7 @@ public class MetadataDocumentTest {
         odata.createSerializer(ContentType.APPLICATION_XML).metadataDocument(serviceMetadata).getContent());
     assertNotNull(metadata);
     assertThat(metadata, containsString("<edmx:Reference Uri=\"" + CORE_VOCABULARY + "\">"
-            + "<edmx:Include Namespace=\"Org.OData.Core.V1\" Alias=\"Core\"/>" + "</edmx:Reference>"));
+            + "<edmx:Include Namespace=\"Org.OData.Core.V1\" Alias=\"Core\"></edmx:Include>" + "</edmx:Reference>"));
 
     assertThat(metadata,
         containsString("<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">"));
@@ -64,18 +64,20 @@ public class MetadataDocumentTest {
     assertThat(metadata,
         containsString("<EntityType Name=\"ETTwoPrim\">"
             + "<Key><PropertyRef Name=\"PropertyInt16\"/></Key>"
-            + "<Property Name=\"PropertyInt16\" Type=\"Edm.Int16\" Nullable=\"false\"/>"
-            + "<Property Name=\"PropertyString\" Type=\"Edm.String\"/>"
-            + "<NavigationProperty Name=\"NavPropertyETAllPrimOne\" Type=\"Namespace1_Alias.ETAllPrim\"/>"
+            + "<Property Name=\"PropertyInt16\" Type=\"Edm.Int16\" Nullable=\"false\"></Property>"
+            + "<Property Name=\"PropertyString\" Type=\"Edm.String\"></Property>"
+            + "<NavigationProperty Name=\"NavPropertyETAllPrimOne\" Type=\"Namespace1_Alias.ETAllPrim\">"
+            + "</NavigationProperty>"
             + "<NavigationProperty Name=\"NavPropertyETAllPrimMany\" "
-            + "Type=\"Collection(Namespace1_Alias.ETAllPrim)\"/>"
+            + "Type=\"Collection(Namespace1_Alias.ETAllPrim)\"></NavigationProperty>"
             + "</EntityType>"));
 
     assertThat(metadata,
         containsString("<EntityType Name=\"ETBase\" BaseType=\"Namespace1_Alias.ETTwoPrim\">"
-            + "<Property Name=\"AdditionalPropertyString_5\" Type=\"Edm.String\"/>"
+            + "<Property Name=\"AdditionalPropertyString_5\" Type=\"Edm.String\"></Property>"
             + "</EntityType>"));
 
+      System.out.println(metadata);
       assertThat(metadata, containsString("<EntitySet Name=\"ESAllPrim\" EntityType=\"Namespace1_Alias.ETAllPrim\">"
         + "<NavigationPropertyBinding Path=\"NavPropertyETTwoPrimOne\" Target=\"ESTwoPrim\"/>"
         + "<NavigationPropertyBinding Path=\"NavPropertyETTwoPrimMany\" Target=\"ESTwoPrim\"/>"
@@ -83,20 +85,20 @@ public class MetadataDocumentTest {
 
     assertThat(metadata,
         containsString("<ComplexType Name=\"CTPrim\">"
-            + "<Property Name=\"PropertyInt16\" Type=\"Edm.Int16\"/></ComplexType>"));
+            + "<Property Name=\"PropertyInt16\" Type=\"Edm.Int16\"></Property></ComplexType>"));
 
     assertThat(metadata,
         containsString("<ComplexType Name=\"CTBase\" BaseType=\"Namespace1_Alias.CTTwoPrim\">"
-            + "<Property Name=\"AdditionalPropString\" Type=\"Edm.String\"/></ComplexType>"));
+            + "<Property Name=\"AdditionalPropString\" Type=\"Edm.String\"></Property></ComplexType>"));
 
     assertThat(metadata, containsString("<Action Name=\"UARTCTTwoPrimParam\" IsBound=\"false\">"
-        + "<Parameter Name=\"ParameterInt16\" Type=\"Edm.Int16\" Nullable=\"false\"/>"
+        + "<Parameter Name=\"ParameterInt16\" Type=\"Edm.Int16\" Nullable=\"false\"></Parameter>"
         + "<ReturnType Type=\"Namespace1_Alias.CTTwoPrim\" Nullable=\"false\"/></Action>"));
     
     assertThat(metadata,
         containsString("<Action Name=\"BAESAllPrimRTETAllPrim\" IsBound=\"true\">"
             + "<Parameter Name=\"ParameterESAllPrim\" "
-            + "Type=\"Collection(Namespace1_Alias.ETAllPrim)\" Nullable=\"false\"/>"
+            + "Type=\"Collection(Namespace1_Alias.ETAllPrim)\" Nullable=\"false\"></Parameter>"
             + "<ReturnType Type=\"Namespace1_Alias.ETAllPrim\"/></Action>"));
 
     assertThat(metadata,
@@ -107,8 +109,9 @@ public class MetadataDocumentTest {
         containsString("<Function Name=\"BFC_RTESTwoKeyNav_\" "
             + "EntitySetPath=\"BindingParam/NavPropertyETTwoKeyNavMany\" IsBound=\"true\" IsComposable=\"true\">"
             + "<Parameter Name=\"BindingParam\" Type=\"Collection(Namespace1_Alias.ETTwoKeyNav)\" "
-            + "Nullable=\"false\"/>"
-            + "<ReturnType Type=\"Collection(Namespace1_Alias.ETTwoKeyNav)\" Nullable=\"false\"/></Function>"));
+            + "Nullable=\"false\"></Parameter>"
+            + "<ReturnType Type=\"Collection(Namespace1_Alias.ETTwoKeyNav)\" Nullable=\"false\"/>"
+            + "</Function>"));
 
     assertThat(metadata, containsString("<EntityContainer Name=\"Container\">"));
 
@@ -123,10 +126,12 @@ public class MetadataDocumentTest {
             + "</Singleton>"));
 
     assertThat(metadata,
-        containsString("<ActionImport Name=\"AIRTCTTwoPrimParam\" Action=\"Namespace1_Alias.UARTCTTwoPrimParam\"/>"));
+        containsString("<ActionImport Name=\"AIRTCTTwoPrimParam\" Action=\"Namespace1_Alias.UARTCTTwoPrimParam\">"
+        		+ "</ActionImport>"));
 
     assertThat(metadata,
-        containsString("<FunctionImport Name=\"FINInvisible2RTInt16\" Function=\"Namespace1_Alias.UFNRTInt16\"/>"));
+        containsString("<FunctionImport Name=\"FINInvisible2RTInt16\" Function=\"Namespace1_Alias.UFNRTInt16\">"
+        		+ "</FunctionImport"));
 
     assertThat(
         metadata,
@@ -140,8 +145,9 @@ public class MetadataDocumentTest {
 
     // TypeDefCheck
     assertThat(metadata,
-        containsString("<Property Name=\"PropertyDefString\" Type=\"Namespace1_Alias.TDString\"/>"));
+        containsString("<Property Name=\"PropertyDefString\" Type=\"Namespace1_Alias.TDString\"></Property>"));
     assertThat(metadata,
-        containsString("<Property Name=\"CollPropertyDefString\" Type=\"Collection(Namespace1_Alias.TDString)\"/>"));
+        containsString("<Property Name=\"CollPropertyDefString\" Type=\"Collection(Namespace1_Alias.TDString)\">"
+        		+ "</Property>"));
   }
 }
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java
index 7e1a963..2f977d1 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerTest.java
@@ -437,7 +437,7 @@ public class ODataXmlSerializerTest {
             .count(countOption)
             .build()).getContent();
     final String resultString = IOUtils.toString(result);
-    String prefix = "<?xml version='1.0' encoding='UTF-8'?>"
+    String prefix = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<a:feed xmlns:a=\"http://www.w3.org/2005/Atom\" "
         + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" "
         + "xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
@@ -445,9 +445,9 @@ public class ODataXmlSerializerTest {
         + "m:metadata-etag=\"metadataETag\">"
         + "<a:id>http://host/svc/ESCompAllPrim</a:id>"
         + "<m:count>4</m:count>"
-        + "<a:link rel=\"next\" href=\"/next\"/>"
+        + "<a:link rel=\"next\" href=\"/next\"></a:link>"
         + "<a:entry m:etag=\"W/&quot;32767&quot;\">"
-        + "<a:id>ESCompAllPrim(32767)</a:id><a:title/><a:summary/>";
+        + "<a:id>ESCompAllPrim(32767)</a:id><a:title></a:title><a:summary></a:summary>";
     Assert.assertTrue(resultString.startsWith(prefix));
   }
 
@@ -2643,7 +2643,7 @@ public class ODataXmlSerializerTest {
                     .build())
                 .build()).getContent());
 
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>"
+    String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<m:value xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" "
         + "m:context=\"../$metadata#ESAllPrim(32767)/PropertyString\" "
         + "m:metadata-etag=\"metadataETag\">"
@@ -2667,7 +2667,7 @@ public class ODataXmlSerializerTest {
                 .unicode(Boolean.TRUE)
                 .build()).getContent());
 
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>"
+    String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<m:value xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" "
         + "m:context=\"../$metadata#ESAllPrim(32767)/PropertyString\" "
         + "m:metadata-etag=\"metadataETag\">"
@@ -2687,11 +2687,11 @@ public class ODataXmlSerializerTest {
                 .entitySet(edmEntitySet).keyPath("4242").navOrPropertyPath(edmProperty.getName())
                 .build())
             .build()).getContent());
-    String expected = "<?xml version='1.0' encoding='UTF-8'?>"
+    String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<m:value xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" "
         + "m:context=\"../$metadata#ESAllPrim(4242)/PropertyString\" "
         + "m:metadata-etag=\"metadataETag\" "
-        + "m:null=\"true\"/>";
+        + "m:null=\"true\"></m:value>";
     Assert.assertEquals(expected, response);
   }
 
@@ -3319,7 +3319,7 @@ public class ODataXmlSerializerTest {
                     .navOrPropertyPath("CollPropertyComp")
                     .build()).select(selectOption)
                 .build()).getContent());
-    final String expectedResult = "<?xml version='1.0' encoding='UTF-8'?>"
+    final String expectedResult = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
         + "<m:value xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" "
         + "xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" xmlns:a=\"http://www.w3.org/2005/Atom\" "
         + "m:type=\"#Collection(olingo.odata.test1.CTPrimComp)\" "
diff --git a/pom.xml b/pom.xml
index c8ed6d8..f318757 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,7 @@
     <maven.bundle.plugin.version>2.5.3</maven.bundle.plugin.version>
     <hc.client.version>4.2.6</hc.client.version>
     <hc.core.version>4.2.5</hc.core.version>
-    <jackson.version>2.7.8</jackson.version>
+    <jackson.version>2.9.8</jackson.version>
     <aalto-xml.version>0.9.10</aalto-xml.version>
 
     <android.platform.version>4.1.1.4</android.platform.version>
@@ -580,6 +580,7 @@
                 <exclude>**/ref/**</exclude>
                 <exclude>**/server-ref/**</exclude>
                 <exclude>**/dependency-reduced-pom.xml</exclude>
+                <exclude>**/.settings/**</exclude>
               </excludes>
             </configuration>
           </execution>