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/26 22:52:54 UTC

[12/15] olingo-odata2 git commit: [OLINGO-937] Changes in test

[OLINGO-937] Changes in test


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

Branch: refs/heads/OLINGO-882_EnableContainerManagedPersistence
Commit: 0a00f197f53585b6eb6c69551eca0eb19c473fdc
Parents: 1c81f7b
Author: Michael Bolz <mi...@sap.com>
Authored: Wed Apr 20 09:48:09 2016 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Wed Apr 20 09:48:09 2016 +0200

----------------------------------------------------------------------
 .../olingo/odata2/core/commons/XmlHelper.java   |  8 ++---
 .../odata2/core/commons/XmlHelperTest.java      | 31 ++++++++++++++++++++
 2 files changed, 34 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/0a00f197/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 1d6e79f..e5379e2 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
@@ -33,15 +33,13 @@ public class XmlHelper {
   /** Default used charset for reader */
   private static final String DEFAULT_CHARSET = "UTF-8";
 
-
-  private static class XmlInputFactoryHolder {
+  static class XmlInputFactoryHolder {
     private static final XMLInputFactory INSTANCE = XMLInputFactory.newInstance();
   }
-
-  private static class XmlOutputFactoryHolder {
+  static class XmlOutputFactoryHolder {
     private static final XMLOutputFactory INSTANCE = XMLOutputFactory.newInstance();
   }
-  private static class TransformerFactoryHolder {
+  static class TransformerFactoryHolder {
     private static final TransformerFactory INSTANCE = TransformerFactory.newInstance();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/0a00f197/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/commons/XmlHelperTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/commons/XmlHelperTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/commons/XmlHelperTest.java
index dc8fb77..e633e66 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/commons/XmlHelperTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/commons/XmlHelperTest.java
@@ -25,6 +25,8 @@ import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
 
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
@@ -35,6 +37,7 @@ import org.apache.olingo.odata2.api.ep.EntityProvider;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.ep.EntityProviderReadProperties;
 import org.apache.olingo.odata2.testutil.mock.MockFacade;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -87,13 +90,41 @@ public class XmlHelperTest {
           "  <data>&rules;</data>" +
           "</extract>";
 
+  private static Object beforeXmlInputFactory;
+
   @BeforeClass
   public static void beforeClass() {
     // CHECKSTYLE:OFF
     System.setProperty("javax.xml.stream.XMLInputFactory", "com.ctc.wstx.stax.WstxInputFactory"); // NOSONAR
+    //
+    beforeXmlInputFactory = replaceXmlInputFactoryInstance(XMLInputFactory.newInstance());
     // CHECKSTYLE:ON
   }
 
+  @AfterClass
+  public static void afterClass() {
+    replaceXmlInputFactoryInstance(beforeXmlInputFactory);
+  }
+
+  private static Object replaceXmlInputFactoryInstance(Object newInstance) {
+    try {
+      Field field = XmlHelper.XmlInputFactoryHolder.class.getDeclaredField("INSTANCE");
+      field.setAccessible(true);
+
+      Field modifiersField = Field.class.getDeclaredField("modifiers");
+      modifiersField.setAccessible(true);
+      modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+
+      Object replaced = field.get(null);
+      field.set(null, newInstance);
+      return replaced;
+    } catch (NoSuchFieldException e) {
+      throw new RuntimeException(e);
+    } catch (IllegalAccessException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
   @Test
   public void createReader() throws Exception {
     InputStream content = new ByteArrayInputStream(XML.getBytes("UTF-8"));