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 2016/04/19 22:32:07 UTC

olingo-odata2 git commit: [OLINGO-937] Improve XmlFactory creation/caching

Repository: olingo-odata2
Updated Branches:
  refs/heads/OLINGO-937_XmlFactoryImprovement [created] 1c81f7ba8


[OLINGO-937] Improve XmlFactory creation/caching


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

Branch: refs/heads/OLINGO-937_XmlFactoryImprovement
Commit: 1c81f7ba8b92ede9f4df7eadf148b3539ebfd9e5
Parents: 910d3bc
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Apr 19 22:22:19 2016 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Apr 19 22:26:04 2016 +0200

----------------------------------------------------------------------
 .../olingo/odata2/core/commons/XmlHelper.java   | 26 +++++++++++++++++++-
 .../olingo/odata2/core/debug/DebugInfoBody.java |  4 ++-
 .../provider/EdmServiceMetadataImplProv.java    |  3 ++-
 .../odata2/core/ep/AtomEntityProvider.java      | 15 +++++------
 .../odata2/core/ep/BasicEntityProvider.java     |  3 ++-
 .../producer/AtomServiceDocumentProducer.java   |  3 ++-
 .../odata2/core/ep/LoadXMLFactoryTest.java      |  6 ++---
 .../olingo/odata2/core/ep/PerformanceTest.java  |  3 ++-
 .../core/ep/producer/TombstoneProducerTest.java |  3 ++-
 .../ep/producer/XmlMetadataProducerTest.java    |  3 ++-
 10 files changed, 51 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/commons/XmlHelper.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/commons/XmlHelper.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/commons/XmlHelper.java
index 3433186..1d6e79f 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/commons/XmlHelper.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/commons/XmlHelper.java
@@ -21,8 +21,10 @@ package org.apache.olingo.odata2.core.commons;
 import java.io.InputStream;
 
 import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.TransformerFactory;
 
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 
@@ -31,6 +33,28 @@ public class XmlHelper {
   /** Default used charset for reader */
   private static final String DEFAULT_CHARSET = "UTF-8";
 
+
+  private static class XmlInputFactoryHolder {
+    private static final XMLInputFactory INSTANCE = XMLInputFactory.newInstance();
+  }
+
+  private static class XmlOutputFactoryHolder {
+    private static final XMLOutputFactory INSTANCE = XMLOutputFactory.newInstance();
+  }
+  private static class TransformerFactoryHolder {
+    private static final TransformerFactory INSTANCE = TransformerFactory.newInstance();
+  }
+
+  public static XMLInputFactory getXMLInputFactory() {
+    return XmlInputFactoryHolder.INSTANCE;
+  }
+  public static XMLOutputFactory getXMLOutputFactory() {
+    return XmlOutputFactoryHolder.INSTANCE;
+  }
+  public static TransformerFactory getTransformerFactory() {
+    return TransformerFactoryHolder.INSTANCE;
+  }
+
   public static XMLStreamReader createStreamReader(final Object content) throws EntityProviderException {
     if (content == null) {
       throw new EntityProviderException(EntityProviderException.ILLEGAL_ARGUMENT
@@ -38,7 +62,7 @@ public class XmlHelper {
     }
     XMLStreamReader streamReader;
     try {
-      XMLInputFactory factory = XMLInputFactory.newInstance();
+      XMLInputFactory factory = getXMLInputFactory();
       factory.setProperty(XMLInputFactory.IS_VALIDATING, false);
       factory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, true);
       factory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/debug/DebugInfoBody.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/debug/DebugInfoBody.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/debug/DebugInfoBody.java
index 4954c75..e2ea936 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/debug/DebugInfoBody.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/debug/DebugInfoBody.java
@@ -36,6 +36,7 @@ import org.apache.commons.codec.binary.Base64;
 import org.apache.olingo.odata2.api.commons.HttpContentType;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.processor.ODataResponse;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.BasicEntityProvider;
 import org.apache.olingo.odata2.core.ep.util.JsonStreamWriter;
 
@@ -117,7 +118,8 @@ public class DebugInfoBody implements DebugInfo {
 
   private String formatXml(final String xml) throws IOException {
     try {
-      Transformer transformer = TransformerFactory.newInstance().newTransformer();
+      final TransformerFactory transformerFactory = XmlHelper.getTransformerFactory();
+      Transformer transformer = transformerFactory.newTransformer();
       transformer.setOutputProperty(OutputKeys.INDENT, "yes");
       transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
       StreamResult outputTarget = new StreamResult(new StringWriter());

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmServiceMetadataImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmServiceMetadataImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmServiceMetadataImplProv.java
index e7853eb..3b2558a 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmServiceMetadataImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmServiceMetadataImplProv.java
@@ -42,6 +42,7 @@ import org.apache.olingo.odata2.api.edm.provider.Property;
 import org.apache.olingo.odata2.api.edm.provider.Schema;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.exception.ODataException;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.producer.XmlMetadataProducer;
 import org.apache.olingo.odata2.core.ep.util.CircleStreamBuffer;
 
@@ -72,7 +73,7 @@ public class EdmServiceMetadataImplProv implements EdmServiceMetadata {
 
     try {
       writer = new OutputStreamWriter(csb.getOutputStream(), "UTF-8");
-      XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
+      XMLStreamWriter xmlStreamWriter = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(writer);
       XmlMetadataProducer.writeMetadata(metadata, xmlStreamWriter, null);
       return csb.getInputStream();
     } catch (XMLStreamException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/AtomEntityProvider.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/AtomEntityProvider.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/AtomEntityProvider.java
index acdf998..0977bec 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/AtomEntityProvider.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/AtomEntityProvider.java
@@ -52,6 +52,7 @@ import org.apache.olingo.odata2.api.processor.ODataResponse.ODataResponseBuilder
 import org.apache.olingo.odata2.api.servicedocument.ServiceDocument;
 import org.apache.olingo.odata2.core.commons.ContentType;
 import org.apache.olingo.odata2.core.commons.ContentType.ODataFormat;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.aggregator.EntityInfoAggregator;
 import org.apache.olingo.odata2.core.ep.aggregator.EntityPropertyInfo;
 import org.apache.olingo.odata2.core.ep.consumer.AtomServiceDocumentConsumer;
@@ -107,7 +108,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
 
       XmlErrorDocumentProducer producer = new XmlErrorDocumentProducer();
       producer.writeErrorDocument(writer, errorCode, message, locale, innerError);
@@ -162,7 +163,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
       writer.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
 
       AtomEntryEntityProducer as = new AtomEntryEntityProducer(properties);
@@ -198,7 +199,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
       writer.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
 
       XmlPropertyEntityProducer ps = new XmlPropertyEntityProducer(false, true);
@@ -225,7 +226,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
       writer.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
 
       AtomFeedProducer atomFeedProvider = new AtomFeedProducer(properties);
@@ -254,7 +255,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
       writer.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
 
       XmlLinkEntityProducer entity = new XmlLinkEntityProducer(properties);
@@ -283,7 +284,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
       writer.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
 
       XmlLinksEntityProducer entity = new XmlLinksEntityProducer(properties);
@@ -310,7 +311,7 @@ public class AtomEntityProvider implements ContentTypeBasedEntityProvider {
 
     try {
       OutputStream outStream = csb.getOutputStream();
-      XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+      XMLStreamWriter writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
       writer.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
 
       XmlCollectionEntityProducer.append(writer, propertyInfo, data);

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/BasicEntityProvider.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/BasicEntityProvider.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/BasicEntityProvider.java
index 7d9a59c..0b34b42 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/BasicEntityProvider.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/BasicEntityProvider.java
@@ -51,6 +51,7 @@ import org.apache.olingo.odata2.api.edm.provider.Schema;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.processor.ODataResponse;
 import org.apache.olingo.odata2.api.processor.ODataResponse.ODataResponseBuilder;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.producer.XmlMetadataProducer;
 import org.apache.olingo.odata2.core.ep.util.CircleStreamBuffer;
 
@@ -242,7 +243,7 @@ public class BasicEntityProvider {
     CircleStreamBuffer csb = new CircleStreamBuffer();
     try {
       writer = new OutputStreamWriter(csb.getOutputStream(), DEFAULT_CHARSET);
-      XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
+      XMLStreamWriter xmlStreamWriter = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(writer);
       XmlMetadataProducer.writeMetadata(metadata, xmlStreamWriter, predefinedNamespaces);
     } catch (UnsupportedEncodingException e) {
       throw new EntityProviderProducerException(EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass()

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomServiceDocumentProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomServiceDocumentProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomServiceDocumentProducer.java
index d5827e2..ffd3748 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomServiceDocumentProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomServiceDocumentProducer.java
@@ -33,6 +33,7 @@ import org.apache.olingo.odata2.api.edm.EdmServiceMetadata;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.exception.ODataException;
 import org.apache.olingo.odata2.core.commons.ContentType;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.EntityProviderProducerException;
 import org.apache.olingo.odata2.core.ep.util.FormatXml;
 
@@ -57,7 +58,7 @@ public class AtomServiceDocumentProducer {
     EdmServiceMetadata serviceMetadata = edm.getServiceMetadata();
 
     try {
-      XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
+      XMLStreamWriter xmlStreamWriter = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(writer);
 
       xmlStreamWriter.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
       xmlStreamWriter.setPrefix(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998);

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/LoadXMLFactoryTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/LoadXMLFactoryTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/LoadXMLFactoryTest.java
index 3af05cd..3aae2dd 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/LoadXMLFactoryTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/LoadXMLFactoryTest.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License. You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -26,7 +26,7 @@ import javax.xml.stream.XMLOutputFactory;
 import org.junit.Test;
 
 /**
- *  
+ *
  */
 public class LoadXMLFactoryTest {
   // CHECKSTYLE:OFF

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/PerformanceTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/PerformanceTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/PerformanceTest.java
index e7ab5b9..b97a0b9 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/PerformanceTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/PerformanceTest.java
@@ -36,6 +36,7 @@ import org.apache.olingo.odata2.api.edm.EdmEntitySet;
 import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
 import org.apache.olingo.odata2.api.exception.ODataException;
 import org.apache.olingo.odata2.api.uri.ExpandSelectTreeNode;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.aggregator.EntityInfoAggregator;
 import org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer;
 import org.apache.olingo.odata2.core.ep.util.CircleStreamBuffer;
@@ -79,7 +80,7 @@ public class PerformanceTest extends AbstractProviderTest {
       outStream = new ByteArrayOutputStream();
     }
 
-    writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, "utf-8");
+    writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, "utf-8");
 
     writer.writeStartElement("junit");
     writer.writeDefaultNamespace(Edm.NAMESPACE_ATOM_2005);

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/TombstoneProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/TombstoneProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/TombstoneProducerTest.java
index 11fc21a..aa2829d 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/TombstoneProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/TombstoneProducerTest.java
@@ -40,6 +40,7 @@ import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
 import org.apache.olingo.odata2.api.ep.callback.TombstoneCallback;
 import org.apache.olingo.odata2.core.commons.ContentType;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.AbstractProviderTest;
 import org.apache.olingo.odata2.core.ep.aggregator.EntityInfoAggregator;
 import org.apache.olingo.odata2.core.ep.util.CircleStreamBuffer;
@@ -65,7 +66,7 @@ public class TombstoneProducerTest extends AbstractProviderTest {
   public void initialize() throws Exception {
     csb = new CircleStreamBuffer();
     OutputStream outStream = csb.getOutputStream();
-    writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
+    writer = XmlHelper.getXMLOutputFactory().createXMLStreamWriter(outStream, DEFAULT_CHARSET);
     defaultProperties = EntityProviderWriteProperties.serviceRoot(BASE_URI).build();
     defaultEia =
         EntityInfoAggregator.create(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"),

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1c81f7ba/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
index eb2a795..83961b7 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducerTest.java
@@ -41,6 +41,7 @@ import org.apache.olingo.odata2.api.edm.provider.Property;
 import org.apache.olingo.odata2.api.edm.provider.PropertyRef;
 import org.apache.olingo.odata2.api.edm.provider.Schema;
 import org.apache.olingo.odata2.api.edm.provider.SimpleProperty;
+import org.apache.olingo.odata2.core.commons.XmlHelper;
 import org.apache.olingo.odata2.core.ep.AbstractXmlProducerTestHelper;
 import org.apache.olingo.odata2.core.ep.util.CircleStreamBuffer;
 import org.apache.olingo.odata2.testutil.helper.StringHelper;
@@ -60,7 +61,7 @@ public class XmlMetadataProducerTest extends AbstractXmlProducerTestHelper {
 
   @Before
   public void before() {
-    xmlStreamWriterFactory = XMLOutputFactory.newInstance();
+    xmlStreamWriterFactory = XmlHelper.getXMLOutputFactory();
   }
 
   @Test