Shade exificient 71/77471/8
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 25 Oct 2018 00:02:50 +0000 (02:02 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 12 Jan 2019 14:37:33 +0000 (15:37 +0100)
Shade exificient and xerces, so they do not end up polluting
the container with a full XML stack.

JIRA: CONTROLLER-1867
JIRA: NETCONF-591
Change-Id: If9e5d468de08dd820636a5eeb8ecdb2871fe1a3f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
15 files changed:
netconf/netconf-artifacts/pom.xml
netconf/netconf-client/src/main/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiatorFactory.java
netconf/netconf-netty-util/pom.xml
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSession.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXICodec.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfMessageToEXIEncoder.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParameters.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/EXISchema.java
netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIHandlersTest.java
netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParametersTest.java
netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/exi/NetconfStartExiMessageTest.java
netconf/pom.xml
netconf/shaded-exificient-jar/pom.xml [new file with mode: 0644]
netconf/shaded-exificient/pom.xml [new file with mode: 0644]

index 30c9460369e43ae043eddf57e3dabec3bf06d44d..896eae7f57d6f5c9c13bf508d4e2010a6a1a0fd1 100644 (file)
                 <version>${project.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>shaded-exificient</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
             <!-- netconf features -->
             <dependency>
                 <groupId>${project.groupId}</groupId>
index 413ee30742a751948af91b881888e79210a64780..1ffe7a132f5d5303736ad29fb42ee44f3431db7e 100644 (file)
@@ -10,9 +10,6 @@ package org.opendaylight.netconf.client;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSet;
-import com.siemens.ct.exi.core.CodingMode;
-import com.siemens.ct.exi.core.FidelityOptions;
-import com.siemens.ct.exi.core.exceptions.UnsupportedOption;
 import io.netty.channel.Channel;
 import io.netty.util.Timer;
 import io.netty.util.concurrent.Promise;
@@ -27,6 +24,9 @@ import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
 import org.opendaylight.netconf.nettyutil.NetconfSessionNegotiatorFactory;
 import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
 import org.opendaylight.netconf.nettyutil.handler.exi.NetconfStartExiMessage;
+import org.opendaylight.netconf.shaded.exificient.core.CodingMode;
+import org.opendaylight.netconf.shaded.exificient.core.FidelityOptions;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.UnsupportedOption;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 5deab9e9f13f3e2ca8fbbbfdb4175d89a581d74a..ba8fc32b6513eb19af84ddc929441f07c8f8b60b 100644 (file)
   <version>1.6.0-SNAPSHOT</version>
   <name>${project.artifactId}</name>
 
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>com.siemens.ct.exi</groupId>
-        <artifactId>exificient</artifactId>
-        <version>1.0.4</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
   <dependencies>
     <!-- compile dependencies -->
     <dependency>
     </dependency>
 
     <dependency>
-      <groupId>com.siemens.ct.exi</groupId>
-      <artifactId>exificient</artifactId>
+      <groupId>org.opendaylight.netconf</groupId>
+      <artifactId>shaded-exificient</artifactId>
     </dependency>
 
-    <dependency>
-      <groupId>xml-apis</groupId>
-      <artifactId>xml-apis</artifactId>
-      <version>1.4.01</version>
-    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
index f187122fdb1564da096ba3aafe1c1299d1d37594..045b6d6d3e3d5b881ffa430530668a1d187ceb25 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.netconf.nettyutil;
 
-import com.siemens.ct.exi.core.exceptions.EXIException;
-import com.siemens.ct.exi.core.exceptions.UnsupportedOption;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelHandler;
@@ -28,6 +26,8 @@ import org.opendaylight.netconf.nettyutil.handler.NetconfEXICodec;
 import org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder;
 import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToEXIEncoder;
 import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.UnsupportedOption;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index b8924bbcdc8b4a7bbfe680d67e3ff3250c01fc0c..7c74416e6226059a98ba00c094f9147bbcf26f71 100644 (file)
@@ -13,11 +13,11 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
-import com.siemens.ct.exi.core.EXIFactory;
-import com.siemens.ct.exi.core.exceptions.EXIException;
-import com.siemens.ct.exi.main.api.sax.SAXEncoder;
-import com.siemens.ct.exi.main.api.sax.SAXFactory;
 import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
+import org.opendaylight.netconf.shaded.exificient.core.EXIFactory;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
+import org.opendaylight.netconf.shaded.exificient.main.api.sax.SAXEncoder;
+import org.opendaylight.netconf.shaded.exificient.main.api.sax.SAXFactory;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
index 1ddacb8bb512f9b1abc0c5df3e4f2236723af36b..4ea4202adc6a0f5e50f0bcdda641e339bb61068c 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.netconf.nettyutil.handler;
 
 import static java.util.Objects.requireNonNull;
 
-import com.siemens.ct.exi.core.exceptions.EXIException;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufInputStream;
 import io.netty.buffer.ByteBufUtil;
@@ -26,6 +25,7 @@ import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.sax.SAXTransformerFactory;
 import javax.xml.transform.sax.TransformerHandler;
 import org.opendaylight.netconf.api.NetconfMessage;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index 932613cfd119d1e2aa0e92d3c555ff09db38305a..4f27742f40906a444843e2520eb63b8d8b571627 100644 (file)
@@ -9,8 +9,6 @@ package org.opendaylight.netconf.nettyutil.handler;
 
 import static java.util.Objects.requireNonNull;
 
-import com.siemens.ct.exi.core.exceptions.EXIException;
-import com.siemens.ct.exi.main.api.sax.SAXEncoder;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufOutputStream;
 import io.netty.channel.ChannelHandlerContext;
@@ -22,6 +20,8 @@ import javax.xml.transform.TransformerException;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.sax.SAXResult;
 import org.opendaylight.netconf.api.NetconfMessage;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
+import org.opendaylight.netconf.shaded.exificient.main.api.sax.SAXEncoder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index adf665c3cc145c093638858977fcb7e2d456dd71..837beeeab25039fa694be905a8f98a2a9598ec89 100644 (file)
@@ -11,17 +11,17 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.siemens.ct.exi.core.CodingMode;
-import com.siemens.ct.exi.core.EXIFactory;
-import com.siemens.ct.exi.core.EncodingOptions;
-import com.siemens.ct.exi.core.FidelityOptions;
-import com.siemens.ct.exi.core.SchemaIdResolver;
-import com.siemens.ct.exi.core.exceptions.EXIException;
-import com.siemens.ct.exi.core.exceptions.UnsupportedOption;
-import com.siemens.ct.exi.core.grammars.Grammars;
-import com.siemens.ct.exi.core.helpers.DefaultEXIFactory;
 import java.util.Objects;
 import org.opendaylight.netconf.api.xml.XmlElement;
+import org.opendaylight.netconf.shaded.exificient.core.CodingMode;
+import org.opendaylight.netconf.shaded.exificient.core.EXIFactory;
+import org.opendaylight.netconf.shaded.exificient.core.EncodingOptions;
+import org.opendaylight.netconf.shaded.exificient.core.FidelityOptions;
+import org.opendaylight.netconf.shaded.exificient.core.SchemaIdResolver;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.UnsupportedOption;
+import org.opendaylight.netconf.shaded.exificient.core.grammars.Grammars;
+import org.opendaylight.netconf.shaded.exificient.core.helpers.DefaultEXIFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Element;
index 1c0b2a98f6052ec39591fc6306be896ef68657cb..52f93751733b8a7d9c586d443a48f25ba5949967 100644 (file)
@@ -11,11 +11,11 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.io.ByteSource;
 import com.google.common.io.Resources;
-import com.siemens.ct.exi.core.exceptions.EXIException;
-import com.siemens.ct.exi.core.grammars.Grammars;
-import com.siemens.ct.exi.grammars.GrammarFactory;
 import java.io.IOException;
 import java.io.InputStream;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
+import org.opendaylight.netconf.shaded.exificient.core.grammars.Grammars;
+import org.opendaylight.netconf.shaded.exificient.grammars.GrammarFactory;
 
 /**
  * Enumeration of schema modes defined by the NETCONF EXI capability.
index 80be3858d9a5f3988d3f6c80bf4bb7d5149be58d..6559825b5441c66b561cb0c01c6fd9dd4a73b1a2 100644 (file)
@@ -5,14 +5,11 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.nettyutil.handler;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 
-import com.siemens.ct.exi.core.exceptions.EXIException;
-import com.siemens.ct.exi.main.api.sax.SAXEncoder;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import java.io.ByteArrayOutputStream;
@@ -29,6 +26,8 @@ import org.junit.Test;
 import org.opendaylight.netconf.api.NetconfMessage;
 import org.opendaylight.netconf.api.xml.XmlUtil;
 import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
+import org.opendaylight.netconf.shaded.exificient.core.exceptions.EXIException;
+import org.opendaylight.netconf.shaded.exificient.main.api.sax.SAXEncoder;
 
 public class NetconfEXIHandlersTest {
 
index 5e1bd3896d5e66ca1a38ac1d9dbab01140c1fdde..407615f78969df7927df4261f5f35d466089766c 100644 (file)
@@ -10,15 +10,15 @@ package org.opendaylight.netconf.nettyutil.handler.exi;
 
 import static org.junit.Assert.assertEquals;
 
-import com.siemens.ct.exi.core.CodingMode;
-import com.siemens.ct.exi.core.EXIFactory;
-import com.siemens.ct.exi.core.FidelityOptions;
 import java.util.Arrays;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.opendaylight.netconf.api.xml.XmlElement;
 import org.opendaylight.netconf.api.xml.XmlUtil;
+import org.opendaylight.netconf.shaded.exificient.core.CodingMode;
+import org.opendaylight.netconf.shaded.exificient.core.EXIFactory;
+import org.opendaylight.netconf.shaded.exificient.core.FidelityOptions;
 
 @RunWith(Parameterized.class)
 public class EXIParametersTest {
index fa3d2081bbb450169e5d9fdda367b6a588e6d881..bfeb73dba97897992ce8aab354f54ee109215d8a 100644 (file)
@@ -10,14 +10,14 @@ package org.opendaylight.netconf.nettyutil.handler.exi;
 
 import static org.junit.Assert.assertTrue;
 
-import com.siemens.ct.exi.core.CodingMode;
-import com.siemens.ct.exi.core.FidelityOptions;
 import java.util.Arrays;
 import org.custommonkey.xmlunit.Diff;
 import org.custommonkey.xmlunit.XMLUnit;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
+import org.opendaylight.netconf.shaded.exificient.core.CodingMode;
+import org.opendaylight.netconf.shaded.exificient.core.FidelityOptions;
 
 @RunWith(Parameterized.class)
 public class NetconfStartExiMessageTest {
index 6f5ed23bb50d469fe96807c8087288417a9126b0..c14ebd2019800392dada0e22c7b03bc51653e8ef 100644 (file)
@@ -65,5 +65,8 @@
     <module>callhome-provider</module>
 
     <module>netconf-artifacts</module>
+
+    <module>shaded-exificient-jar</module>
+    <module>shaded-exificient</module>
   </modules>
 </project>
diff --git a/netconf/shaded-exificient-jar/pom.xml b/netconf/shaded-exificient-jar/pom.xml
new file mode 100644 (file)
index 0000000..1923971
--- /dev/null
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+  ~
+  ~ This program and the accompanying materials are made available under the
+  ~ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+  ~ and is available at http://www.eclipse.org/legal/epl-v10.html
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>odlparent</artifactId>
+        <version>4.0.2</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.netconf</groupId>
+    <artifactId>shaded-exificient-jar</artifactId>
+    <packaging>jar</packaging>
+    <version>1.6.0-SNAPSHOT</version>
+    <name>${project.artifactId}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.siemens.ct.exi</groupId>
+            <artifactId>exificient</artifactId>
+            <version>1.0.1</version>
+        </dependency>
+        <dependency>
+            <!-- Override until exificient ships a newer version -->
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+            <version>2.12.0</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <createDependencyReducedPom>false</createDependencyReducedPom>
+                            <shadeSourcesContent>true</shadeSourcesContent>
+                            <createSourcesJar>true</createSourcesJar>
+                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+                            <artifactSet>
+                                <includes>
+                                    <include>com.siemens.ct.exi</include>
+                                    <include>xerces:xercesImpl</include>
+                                    <include>xmlpull:xmlpull</include>
+                                    <include>xml-apis:xml-apis</include>
+                                </includes>
+                            </artifactSet>
+                            <filters>
+                                <filter>
+                                    <artifact>com.siemens.ct.exi</artifact>
+                                    <includes>
+                                        <include>com/siemens/ct/exi/**</include>
+                                    </includes>
+                                    <excludes>
+                                        <exclude>com/siemens/ct/exi/grammars/persistency/Grammars2JavaSourceCode*</exclude>
+                                    </excludes>
+                                </filter>
+                                <filter>
+                                    <artifact>xerces:xercesImpl</artifact>
+                                    <includes>
+                                        <include>org/apache/xerces/dom/*</include>
+                                        <include>org/apache/xerces/dom/events/*</include>
+                                        <include>org/apache/xerces/impl/*</include>
+                                        <include>org/apache/xerces/impl/dtd/*</include>
+                                        <include>org/apache/xerces/impl/dtd/models/*</include>
+                                        <include>org/apache/xerces/impl/dv/*</include>
+                                        <include>org/apache/xerces/impl/dv/util/*</include>
+                                        <include>org/apache/xerces/impl/dv/xs/*</include>
+                                        <include>org/apache/xerces/impl/io/*</include>
+                                        <include>org/apache/xerces/impl/validation/*</include>
+                                        <include>org/apache/xerces/impl/xpath/*</include>
+                                        <include>org/apache/xerces/impl/xpath/regex/*</include>
+                                        <include>org/apache/xerces/impl/xs/*</include>
+                                        <include>org/apache/xerces/impl/xs/identity/*</include>
+                                        <include>org/apache/xerces/impl/xs/models/*</include>
+                                        <include>org/apache/xerces/impl/xs/traversers/*</include>
+                                        <include>org/apache/xerces/impl/xs/util/*</include>
+                                        <include>org/apache/xerces/jaxp/datatype/*</include>
+                                        <include>org/apache/xerces/xni/*</include>
+                                        <include>org/apache/xerces/xni/grammars/*</include>
+                                        <include>org/apache/xerces/xni/parser/*</include>
+                                        <include>org/apache/xerces/xs/*</include>
+                                        <include>org/apache/xerces/xs/datatypes/*</include>
+                                        <include>org/apache/xml/serialize/*</include>
+
+                                        <include>org/apache/xerces/impl/dv/dtd/DTDDVFactoryImpl*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/ENTITYDatatypeValidator*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/IDDatatypeValidator*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/IDREFDatatypeValidator*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/ListDatatypeValidator*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/NMTOKENDatatypeValidator*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/NOTATIONDatatypeValidator*</include>
+                                        <include>org/apache/xerces/impl/dv/dtd/StringDatatypeValidator*</include>
+
+                                        <include>org/apache/xerces/impl/msg/DOMErrorHandlerWrapper*</include>
+                                        <include>org/apache/xerces/impl/msg/XMLMessageFormatter*</include>
+
+                                        <include>org/apache/xerces/impl/xs/opti/AttrImpl*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/NamedNodeMapImpl*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/DefaultDocument*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/DefaultElement*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/DefaultNode*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/DefaultXMLDocumentHandler*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/ElementImpl*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/NodeImpl*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/SchemaDOM*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/SchemaDOMParser*</include>
+                                        <include>org/apache/xerces/impl/xs/opti/SchemaParsingConfig*</include>
+
+                                        <include>org/apache/xerces/parsers/AbstractDOMParser*</include>
+                                        <include>org/apache/xerces/parsers/AbstractSAXParser*</include>
+                                        <include>org/apache/xerces/parsers/AbstractXMLDocumentParser*</include>
+                                        <include>org/apache/xerces/parsers/BasicParserConfiguration*</include>
+                                        <include>org/apache/xerces/parsers/ObjectFactory*</include>
+                                        <include>org/apache/xerces/parsers/DOMParser*</include>
+                                        <include>org/apache/xerces/parsers/SAXParser*</include>
+                                        <include>org/apache/xerces/parsers/SecuritySupport*</include>
+                                        <include>org/apache/xerces/parsers/XML11Configurable*</include>
+                                        <include>org/apache/xerces/parsers/XML11Configuration*</include>
+                                        <include>org/apache/xerces/parsers/XMLDTDContentModelHandler*</include>
+                                        <include>org/apache/xerces/parsers/XMLParser*</include>
+
+                                        <include>org/apache/xerces/util/AugmentationsImpl*</include>
+                                        <include>org/apache/xerces/util/DatatypeMessageFormatter*</include>
+                                        <include>org/apache/xerces/util/DefaultErrorHandler*</include>
+                                        <include>org/apache/xerces/util/DOMEntityResolverWrapper*</include>
+                                        <include>org/apache/xerces/util/DOMErrorHandlerWrapper*</include>
+                                        <include>org/apache/xerces/util/DOMInputSource*</include>
+                                        <include>org/apache/xerces/util/DOMUtil*</include>
+                                        <include>org/apache/xerces/util/EncodingMap*</include>
+                                        <include>org/apache/xerces/util/EntityResolver2Wrapper*</include>
+                                        <include>org/apache/xerces/util/EntityResolverWrapper*</include>
+                                        <include>org/apache/xerces/util/ErrorHandlerProxy*</include>
+                                        <include>org/apache/xerces/util/ErrorHandlerWrapper*</include>
+                                        <include>org/apache/xerces/util/HTTPInputSource*</include>
+                                        <include>org/apache/xerces/util/IntStack*</include>
+                                        <include>org/apache/xerces/util/JAXPNamespaceContextWrapper*</include>
+                                        <include>org/apache/xerces/util/MessageFormatter*</include>
+                                        <include>org/apache/xerces/util/NamespaceSupport*</include>
+                                        <include>org/apache/xerces/util/ParserConfigurationSettings*</include>
+                                        <include>org/apache/xerces/util/PrimeNumberSequenceGenerator*</include>
+                                        <include>org/apache/xerces/util/SAXInputSource*</include>
+                                        <include>org/apache/xerces/util/SAXLocatorWrapper*</include>
+                                        <include>org/apache/xerces/util/SAXMessageFormatter*</include>
+                                        <include>org/apache/xerces/util/SecurityManager*</include>
+                                        <include>org/apache/xerces/util/StAXInputSource*</include>
+                                        <include>org/apache/xerces/util/StAXLocationWrapper*</include>
+                                        <include>org/apache/xerces/util/SymbolHash*</include>
+                                        <include>org/apache/xerces/util/SymbolTable*</include>
+                                        <include>org/apache/xerces/util/URI*</include>
+                                        <include>org/apache/xerces/util/XML11Char*</include>
+                                        <include>org/apache/xerces/util/XMLAttributesImpl*</include>
+                                        <include>org/apache/xerces/util/XMLChar*</include>
+                                        <include>org/apache/xerces/util/XMLEntityDescriptionImpl*</include>
+                                        <include>org/apache/xerces/util/XMLErrorCode*</include>
+                                        <include>org/apache/xerces/util/XMLGrammarPoolImpl*</include>
+                                        <include>org/apache/xerces/util/XMLResourceIdentifierImpl*</include>
+                                        <include>org/apache/xerces/util/XMLStringBuffer*</include>
+                                        <include>org/apache/xerces/util/XMLSymbols*</include>
+                                    </includes>
+                                    <excludes>
+                                        <exclude>org/apache/xerces/dom/ASModelImpl*</exclude>
+                                        <exclude>org/apache/xerces/dom/ASDOMImplementationImpl*</exclude>
+                                        <exclude>org/apache/xerces/xni/XMLDocumentFragmentHandler*</exclude>
+                                    </excludes>
+                                </filter>
+                                <filter>
+                                    <artifact>xml-apis</artifact>
+                                    <includes>
+                                        <include>org/w3c/dom/ElementTraversal*</include>
+                                    </includes>
+                                </filter>
+                            </filters>
+                            <relocations>
+                                <relocation>
+                                    <pattern>com.siemens.ct.exi</pattern>
+                                    <shadedPattern>org.opendaylight.netconf.shaded.exificient</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>org.apache.xerces</pattern>
+                                    <shadedPattern>org.opendaylight.netconf.shaded.xerces</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>org.apache.xml</pattern>
+                                    <shadedPattern>org.opendaylight.netconf.shaded.apache.xml</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>org.w3c.dom.ElementTraversal</pattern>
+                                    <shadedPattern>org.opendaylight.netconf.shaded.org.w3c.dom.ElementTraversal</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>org.xmlpull</pattern>
+                                    <shadedPattern>org.opendaylight.netconf.shaded.xmlpull</shadedPattern>
+                                </relocation>
+                            </relocations>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/netconf/shaded-exificient/pom.xml b/netconf/shaded-exificient/pom.xml
new file mode 100644 (file)
index 0000000..9657b41
--- /dev/null
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+  ~
+  ~ This program and the accompanying materials are made available under the
+  ~ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+  ~ and is available at http://www.eclipse.org/legal/epl-v10.html
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>bundle-parent</artifactId>
+        <version>4.0.2</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.netconf</groupId>
+    <artifactId>shaded-exificient</artifactId>
+    <packaging>bundle</packaging>
+    <version>1.6.0-SNAPSHOT</version>
+    <name>${project.artifactId}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.opendaylight.netconf</groupId>
+            <artifactId>shaded-exificient-jar</artifactId>
+            <version>1.6.0-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.opendaylight.netconf</groupId>
+                                    <artifactId>shaded-exificient-jar</artifactId>
+                                    <version>${project.version}</version>
+                                </artifactItem>
+                            </artifactItems>
+                            <overWriteReleases>false</overWriteReleases>
+                            <overWriteSnapshots>true</overWriteSnapshots>
+                            <outputDirectory>${project.build.directory}/classes</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>${project.build.directory}/generated-sources</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Import-Package>
+                            sun.io;resolution:=optional,
+                            *
+                        </Import-Package>
+                        <Export-Package>
+                            org.opendaylight.netconf.shaded.*
+                        </Export-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>