All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.maven.com.fasterxml.woodstox.woodstox-core.pom.xml Maven / Gradle / Ivy

Go to download

Woodstox is a high-performance XML processor that implements Stax (JSR-173), SAX2 and Stax2 APIs

The newest version!
<?xml version="1.0" encoding="UTF-8" ?>
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
      <groupId>com.fasterxml</groupId>
      <artifactId>oss-parent</artifactId>
      <version>61</version>
    </parent>

    <groupId>com.fasterxml.woodstox</groupId>
    <artifactId>woodstox-core</artifactId>
    <version>7.1.0</version>
    <packaging>bundle</packaging>
    <name>Woodstox</name>
    <description>Woodstox is a high-performance XML processor that implements Stax (JSR-173),
SAX2 and Stax2 APIs
    </description>
    <developers>
      <developer>
        <id>cowtowncoder</id>
        <name>Tatu Saloranta</name>
        <email>[email protected]</email>
      </developer>
    </developers>
    <organization>
        <name>FasterXML</name>
        <url>http://fasterxml.com</url>
    </organization>
    <url>https://github.com/FasterXML/woodstox</url>
    <issueManagement>
        <url>https://github.com/FasterXML/woodstox/issues</url>
    </issueManagement>
    <scm>
        <connection>scm:git:[email protected]:FasterXML/woodstox.git</connection>
        <developerConnection>scm:git:[email protected]:FasterXML/woodstox.git</developerConnection>
        <url>https://github.com/FasterXML/woodstox</url>
        <tag>woodstox-core-7.1.0</tag>
    </scm>

    <properties>
      <version.msv>2022.7</version.msv>

      <!-- Woodstox 7.0 is Java 8+ -->
      <javac.src.version>1.8</javac.src.version>
      <javac.target.version>1.8</javac.target.version>

      <!-- Since our groupId is NOT the same as Java package id, need to explicitly define.
           And due to number of packages, let's just include all.
        -->
      <osgi.export>com.ctc.wstx.*;version=${project.version}</osgi.export>

      <!-- Bnd annotations for generating extra OSGi metadata. -->
      <version.bnd.annotation>6.4.0</version.bnd.annotation>

      <!-- 5.1 added "Automatic-Module-Name" for JDK 9 but 6.0 adds full module-info -->
<!--
      <jdk.module.name>com.ctc.wstx</jdk.module.name>
-->
    </properties>

    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <dependencies>
        <!-- First mandatory (and transitive) dependencies -->
        <dependency>
          <groupId>org.codehaus.woodstox</groupId>
          <artifactId>stax2-api</artifactId>
          <!-- 13-Mar-2019, tatu: Upgraded to 4.2 (for Woodstox 5.3) get JDK 9 module-info -->
          <version>4.2.2</version>
	  <exclusions>
            <exclusion>
              <groupId>javax.xml.stream</groupId>
              <artifactId>stax-api</artifactId>
            </exclusion>
	  </exclusions>
        </dependency>

        <!-- Then optional ones (need for build, possibly
           for runtime but not always)
        -->

        <!-- First, MSV, needed for RNG/W3C Schema validation -->
        <!-- 05-Mar-2009, TSa: This gets messy, as there are
          multiple alternatives, even at http://repo1.maven1.maven.org/maven2;
          + main level ones (group ids "xsdlib", "relaxngDatatype")
          + "msv" ones (3 subgroups)
          + "com.sun.msv", but only for xsdlib

          and all with varying sets of dependencies; 
          For now, we'll just use "msv", which does not properly define
          dependencies...

          Also: keep `optional` (`provided` will not work for some reason
          with shade plugin?) to prevent dependency
        -->
        <dependency>
            <groupId>net.java.dev.msv</groupId>
            <artifactId>msv-core</artifactId>
            <version>${version.msv}</version>
<!--
            <scope>provided</scope>
       -->
            <optional>true</optional>
            <exclusions>
                <!-- don't use isorelax version that lacks source code on Maven Central -->
                <exclusion>
                    <groupId>isorelax</groupId>
                    <artifactId>isorelax</artifactId>
                </exclusion>
                <!-- xml-apis is unneeded since it repackages XML APIs that are built into the JDK -->
                <exclusion>
                    <groupId>xml-apis</groupId>
                    <artifactId>xml-apis</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>net.java.dev.msv</groupId>
            <artifactId>xsdlib</artifactId>
            <version>${version.msv}</version>
<!--
            <scope>provided</scope>
 -->
            <optional>true</optional>
            <!-- xercesImpl is unneeded since all modern JDKs already include it -->
            <exclusions>
                <exclusion>
                    <groupId>xerces</groupId>
                    <artifactId>xercesImpl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- use an isorelax version that has source code on Maven Central -->
        <dependency>
            <groupId>com.sun.xml.bind.jaxb</groupId>
            <artifactId>isorelax</artifactId>
            <version>20090621</version>
<!--
            <scope>provided</scope>
 -->
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>relaxngDatatype</groupId>
            <artifactId>relaxngDatatype</artifactId>
            <version>20020414</version>
<!--
            <scope>provided</scope>
 -->
            <optional>true</optional>
        </dependency>

	<!-- 03-Jun-2019, tatu: Not sure why this was added as a dep as it's only one class,
	     `com.sun.msv.writer.relaxng.Driver`, and some metadata. I assumed it was needed by MSV
	     but at least unit tests do not cache issues. So, will remove from 5.3.0
	  -->

<!--
        <dependency>
            <groupId>net.java.dev.msv</groupId>
            <artifactId>msv-rngconverter</artifactId>
            <version>${version.msv}</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
-->

        <!-- Then OSGi, needed if using OSGi discovery -->
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>osgi.core</artifactId>
            <version>5.0.0</version>
            <optional>true</optional>
            <scope>provided</scope>
        </dependency>

        <dependency>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>biz.aQute.bnd.annotation</artifactId>
          <version>${version.bnd.annotation}</version>
          <optional>true</optional>
          <scope>provided</scope>
        </dependency>

        <!-- Then test deps -->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>4.11.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
      <plugins>
	<!-- 10-Jul-2021, tatu: Add code coverage again -->
	<plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <executions>
            <execution>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
            </execution>
            <!-- attached to Maven test phase -->
            <execution>
              <id>report</id>
              <phase>test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
            </execution>
          </executions>
        </plugin>

        <!-- 12-Oct-2019, tatu: Copied from

           https://github.com/stephenc/git-timestamp-maven-plugin/blob/master/pom.xml#L327-L337

               to simplify releases. I hope.
          -->
	<plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.13</version>
            <extensions>true</extensions>
            <configuration>
              <serverId>sonatype-nexus-staging</serverId>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <!-- 12-Oct-2019, tatu: Found this from output of mvn:relase -->
              <stagingProfileId>b34f19b9cc6224</stagingProfileId>
            </configuration>
        </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
<!--
                    <excludes>
                        <exclude>test/**</exclude>
                    </excludes>
-->
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>failing/*.java</exclude>
                        <exclude>**/Abstract*.java</exclude>
                        <exclude>**/Base*.java</exclude>
                        <exclude>**/*$*.java</exclude>
                    </excludes>
                    <includes>
                        <include>**/*Test.java</include>
                        <include>**/Test*.java</include>
                    </includes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <!-- Bnd currently generates a mandatory requirement for osgi.serviceloader.registrar,
                             and we cannot make it optional until Resolution.OPTIONAL is a String and not an
                             Enum. So we must remove these capabilities and configure maven-shade-plugin to
                             add corrected ones back.
                          -->
                        <_removeheaders>Require-Capability</_removeheaders>
                    </instructions>
                </configuration>
            </plugin>

            <plugin>
            <!--  We will shade MSV, partly to simplify deployment, but also to work
                  around Java 9+ module-info issues (MSV not retrofitted)
              -->
	         <groupId>org.apache.maven.plugins</groupId>
	         <artifactId>maven-shade-plugin</artifactId>
	         <executions>
	           <execution>
	             <phase>package</phase>
	             <goals>
	               <goal>shade</goal>
	             </goals>
	             <configuration>
                   <!-- Too many dynamically resolved dependencies (via class names)
                        so can not do this, alas:
                    -->
                   <minimizeJar>false</minimizeJar>
                   <artifactSet>
                     <includes>
                       <!-- the bundle plugin already did the pulling-in, all we need is the renaming! -->
                       <include>net.java.dev.msv:msv-core</include>
                       <include>net.java.dev.msv:xsdlib</include>
                       <include>relaxngDatatype:relaxngDatatype</include>
                       <include>com.sun.xml.bind.jaxb:isorelax</include>
                     </includes>
                   </artifactSet>
                   <filters>
                     <filter>
                       <artifact>net.java.dev.msv:msv-core</artifact>
                       <includes>
                         <include>com/sun/msv/**</include>
                       </includes>
                       <!-- 27-Feb-2020, tatu: Need to be careful; initial
                          [woodstox-core#96] fix excluded `com.sun.msv.driver.textui.Debug`
                          which is (alas) referenced by other part(s) of codebase.
                          What we do want to get rid of is `Driver`, but couple of other
                          classes here refer to it so try to only include `Debug` and nothing else
                        -->
                       <excludes>
                         <exclude>com/sun/msv/driver/textui/DebugController*</exclude>
                         <exclude>com/sun/msv/driver/textui/Driver*</exclude>
                         <exclude>com/sun/msv/driver/textui/Messages*</exclude>
                       </excludes>
                     </filter>
                   </filters>
                   <relocations>
                     <!-- First, xsdlib (must order first) -->
                      <relocation>
                        <pattern>com.sun.msv.xsd</pattern>
                        <shadedPattern>com.ctc.wstx.shaded.msv.xsd</shadedPattern>
                      </relocation>
                      <relocation> <!--  and one stupid little class xsdlib has for reasons -->
                        <pattern>com.sun.xml.util</pattern>
                        <shadedPattern>com.ctc.wstx.shaded.msv.xsd_util</shadedPattern>
                      </relocation>
                      <relocation>
                        <pattern>org.relaxng.datatype</pattern>
                        <shadedPattern>com.ctc.wstx.shaded.msv.relaxng_datatype</shadedPattern>
                      </relocation>
                      <relocation>
                        <pattern>org.iso_relax</pattern>
                        <shadedPattern>com.ctc.wstx.shaded.msv.org_isorelax</shadedPattern>
                      </relocation>
                      <relocation>
                        <pattern>jp.gr.xml.relax</pattern>
                        <shadedPattern>com.ctc.wstx.shaded.msv.org_jp_gr_xml</shadedPattern>
                      </relocation>

                      <!-- then msv-core -->
                       <!-- GedMarc 20190717 - package names can't have dashes -->
	                 <relocation>
	                   <pattern>com.sun.msv</pattern>
	                   <shadedPattern>com.ctc.wstx.shaded.msv_core</shadedPattern>
	                 </relocation>
	               </relocations>
                    <transformers>
                      <!--  Need to ensure class names for services get translated as well... -->
                      <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                      <!--  Also need to add corrected OSGi Require-Capability header. -->
                      <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <manifestEntries>
                          <Require-Capability>
                            osgi.extender;filter:="(&amp;(osgi.extender=osgi.serviceloader.registrar)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))";resolution:=optional,osgi.ee;filter:="(&amp;(osgi.ee=JavaSE)(version=1.8))"
                          </Require-Capability>
                        </manifestEntries>
                      </transformer>
                    </transformers>
	             </configuration>
	           </execution>
	         </executions>
            </plugin>


	    <!--  03-Jun-2019, tatu: Trying to rudimentary JDK9+ module info. To build with JDK 8
		  will have to use `moduleInfoFile` which is crappy but anything else requires
		  JDK 9+.
              -->
         <plugin>
              <groupId>org.moditect</groupId>
              <artifactId>moditect-maven-plugin</artifactId>
              <executions>
                <execution>
                  <id>add-module-infos</id>
                  <phase>package</phase>
                  <goals>
                    <goal>add-module-info</goal>
                  </goals>
                  <configuration>
                    <overwriteExistingFiles>true</overwriteExistingFiles>
                    <module>
                      <moduleInfoFile>src/moditect/module-info.java</moduleInfoFile>
                    </module>
                  </configuration>
                </execution>
              </executions>
         </plugin>
       </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
		<!--
		    <plugin>
                      <artifactId>maven-changelog-plugin</artifactId>
		    </plugin>
		 -->
                <configuration>
                    <show>private</show>
                    <serialwarn>true</serialwarn>
                    <author>true</author>
                    <doctitle>${project.name} ${project.version} API</doctitle>
                    <windowtitle>${project.name} ${project.version} API</windowtitle>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>

  <profiles>
      <!-- @GedMarc 20190717 - Because of shading cannot use a legitimate module file - must be dynamically built up like above-->

   <!-- <profile>
      <id>moditect</id>
      <properties>
        &lt;!&ndash; Not only do we need JDK 9+, must target later JDK too &ndash;&gt;
        <java.version>1.9</java.version>
      </properties>
      <dependencies>
	<dependency>
            <groupId>net.java.dev.msv</groupId>
            <artifactId>msv-rngconverter</artifactId>
            <version>${version.msv}</version>
            <scope>provided</scope>
            <optional>true</optional>
            <exclusions>
	      &lt;!&ndash; 12-Mar-2019, tatu: xercesImpl causes heartburn to Moditect/jdeps so... &ndash;&gt;
              <exclusion>
		<groupId>xerces</groupId>
		<artifactId>xercesImpl</artifactId>
              </exclusion>
            </exclusions>
	</dependency>
      </dependencies>
      <build>
	<plugins>
	  <plugin>
	    <groupId>org.moditect</groupId>
	    <artifactId>moditect-maven-plugin</artifactId>
	    <executions>
	      <execution>
		<id>generate-module-info</id>
		<phase>generate-sources</phase>
		<goals>
		  <goal>generate-module-info</goal>
		</goals>
		<configuration>
		  <modules>
		    <module>
		      <artifact>
			<groupId>${project.groupId}</groupId>
			<artifactId>${project.artifactId}</artifactId>
                        <version>${project.version}</version>
		      </artifact>
		    </module>
		  </modules>
		</configuration>
	      </execution>
	    </executions>
	  </plugin>
	</plugins>
      </build>
    </profile>-->
  </profiles>

</project>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy