Repository: olingo-odata2 Updated Branches: refs/heads/master 1c81f7ba8 -> 0a00f197f
[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/master Commit: 0a00f197f53585b6eb6c69551eca0eb19c473fdc Parents: 1c81f7b Author: Michael Bolz <[email protected]> Authored: Wed Apr 20 09:48:09 2016 +0200 Committer: Michael Bolz <[email protected]> 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"));
