New Upstream Snapshot - jackson-jaxrs-providers

Ready changes

Summary

Merged new upstream version: 2.14.1+git20221121.1.158444a+ds (was: 2.12.1).

Resulting package

Built on 2022-12-20T14:12 (took 8m20s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots libjackson2-jaxrs-providers-java

Diff

diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 4cf2927..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-# Do not merge `pom.xml` from older version, as it will typically conflict
-
-pom.xml merge=ours
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 66c4cfe..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,22 +0,0 @@
-# use glob syntax.
-syntax: glob
-*.class
-*~
-*.bak
-*.off
-*.old
-.DS_Store
-
-# building
-target
-
-# Eclipse
-.classpath
-.project
-.settings
-
-# IDEA
-*.iml
-*.ipr
-*.iws
-.idea/
diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..b901097
--- /dev/null
+++ b/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed 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 KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if(mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if(mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if(!outputFile.getParentFile().exists()) {
+            if(!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/.travis.yml b/.travis.yml
index 05a79d4..c230ea8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,18 +8,9 @@ jdk:
   - openjdk8
   - openjdk11
 
-# whitelist
 branches:
   only:
     - master
-    - "2.12"
+    - "2.13"
 
-# Below this line is configuration for deploying to the Sonatype OSS repo
-# https://knowm.org/configure-travis-ci-to-deploy-snapshots/
-before_install: "git clone -b travis `git config --get remote.origin.url` target/travis"
-script: "[ ${TRAVIS_PULL_REQUEST} = 'false' ] && mvn -B source:jar deploy --settings target/travis/settings.xml || mvn clean verify --settings target/travis/settings.xml"
-
-env:
-  global:
-    - secure: "RrOi9GeJGdlcaAmNHmhkqk7a7PrnazUCtbtOxz2wSjMHGRrVxFlnp5w3bjq31FMcjO4ZbRc+45rEGRk/AedTijBrc8vQsqeP8gS7m7PjGxjtsys7lr0lSXkrPxzCqAG5tHbJiBsVuFZttdkRp8/NR0Jfwg1+28HxAroauLGP2uc="
-    - secure: "kehFgMA0iV6y4OqWNO3VfuYP/WI+/ozjQ4XC+oUMGoHbseD3mOKA6n+wv3QXP5ZxMxwZAvuksrlS5HYyQXs6ChbUmLjipvHd/8gYRgITA0AuN+c2UhCW9y/DuFjqN/OKlChX8bYFmjMZXlSvJMeAPx3oAiXHK3bzaiLwDHQsLQ8="
+script: mvn -T 1C -B clean verify
diff --git a/README.md b/README.md
index 15ecc95..ccb4b68 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
 ## Overview
 
-This is a multi-module project that contains Jackson-based JAX-RS providers for following data formats:
+This is a multi-module project that contains Jackson-based JAX-RS (*) providers
+for following data formats:
 
 * [JSON](https://github.com/FasterXML/jackson-core)
 * [Smile](https://github.com/FasterXML/jackson-dataformat-smile) (binary JSON)
@@ -11,13 +12,17 @@ This is a multi-module project that contains Jackson-based JAX-RS providers for
 Providers implement JAX-RS `MessageBodyReader` and `MessageBodyWriter` handlers for specific
 data formats. They also contain SPI settings for auto-registration.
 
-[![Build Status](https://travis-ci.org/FasterXML/jackson-jaxrs-providers.svg?branch=master)](https://travis-ci.org/FasterXML/jackson-jaxrs-providers)
-[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/)
-[![Javadoc](https://javadoc-emblem.rhcloud.com/doc/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/badge.svg)](http://www.javadoc.io/doc/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider)
+(*) NOTE! JAX-RS is the "old" API defined under `javax.ws.rs`; in 2019 or so, Oracle decided to force
+a forking of this into "Jakarta" variant under `jakarta.ws.ws`.
+As of 2021 most frameworks still use the old API but if you do need/want to use newer one,
+check out Jakarta-RS provider repo at [jackson-jakarta-rs-providers](../../../jackson-jakarta-rs-providers)
 
 ## Status
 
-Module is fully functional and considered mature.
+[![Build Status](https://travis-ci.org/FasterXML/jackson-jaxrs-providers.svg?branch=master)](https://travis-ci.org/FasterXML/jackson-jaxrs-providers)
+[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/)
+[![Javadoc](https://javadoc.io/badge/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider.svg)](http://www.javadoc.io/doc/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider)
+[![Tidelift](https://tidelift.com/badges/package/maven/com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider)](https://tidelift.com/subscription/pkg/maven-com-fasterxml-jackson-jaxrs-jackson-jaxrs-json-provider?utm_source=maven-com-fasterxml-jackson-jaxrs-jackson-jaxrs-json-provider&utm_medium=referral&utm_campaign=readme)
 
 ## Maven dependency
 
@@ -27,7 +32,7 @@ To use JAX-RS on Maven-based projects, use dependencies like:
 <dependency>
   <groupId>com.fasterxml.jackson.jaxrs</groupId>
   <artifactId>jackson-jaxrs-json-provider</artifactId>
-  <version>2.9.0</version>
+  <version>2.12.3</version>
 </dependency>
 ```
 
@@ -40,17 +45,23 @@ Due to auto-registration, it should be possible to simply add Maven dependency
 provider.
 If this does not work you need to consult documentation of the JAX-RS implementation for details.  
 
-To use Jackson with Jersey see [their documentation](https://jersey.github.io/documentation/latest/media.html#json.jackson).
+Here are some links that may help:
+
+* [Configure Jackson as JSON Provider in JAX-RS 2.0](https://stackoverflow.com/questions/18741954/configure-jackson-as-json-provider-in-jax-rs-2-0)
+* [JAX-RS and Open Liberty: BYO Jackson](https://openliberty.io/blog/2020/11/11/byo-jackson.html)
+* [Using Jackson as JSON provider in Jersey 2.x](https://cassiomolin.com/2016/08/10/using-jackson-as-json-provider-in-jersey-2x/)
 
 ### Usage: registering supporting datatypes module
 
-Starting with Jackson 2.8, there is a small supporting datatype module, `jackson-datatype-jaxrs` (see under `datatypes/`).
-It will not be auto-registered automatically (unless user calls `ObjectMapper.findAndRegisterModules()`); instead,
-user has to register it by normal means:
+Starting with Jackson 2.8, there is a small supporting datatype module, `jackson-datatype-jaxrs` (see
+under `datatypes/`).
+It will not be auto-registered automatically (unless user calls `ObjectMapper.findAndRegisterModules()`);
+instead, user has to register it by normal means:
 
 ```java
-ObjectMapper mapper = new ObjectMapper();
-mapper.registerModule(new Jaxrs2TypesModule());
+ObjectMapper mapper = JsonMapper.builder() // or whichever format backend we have
+    .addModule(new Jaxrs2TypesModule())
+    .build();
 // and then register mapper with JAX-RS provider(s)
 ```
 
@@ -79,18 +90,24 @@ In addition there are format-specific annotations that may be used:
 
 
 ## Module Considerations
-* The JSON/JAX-RS module has multiple names depending on the version in use. To enable modular usage, add the requires statement that pertains directly to the implementation you are using. 
+
+The JSON/JAX-RS module has multiple names depending on the version in use.
+To enable modular usage, add the requires statement that pertains directly
+to the implementation you are using. 
+
 ```
 requires  javax.ws.rs.api; //Older libraries
-requires  java.ws.rs; //Newer libraries
-requires  jakarta.ws.rs; //Reserved name for Jakarta API
-requires  jakarta.ws.rs.api; //Reserved name for Jakarta Impl
+requires  jakarta.ws.rs; //Newer libraries
 ```
 
-## Using Jakarta
+### Using Jakarta
+
+Starting with Jackson 2.13, there is a fully separate set of providers
+for "Jakarta-RS", see: [jackson-jaxrs-providers](../../../jackson-jaxrs-providers).
 
-A note on compatibility of JAXB annotations module, Jakarta 3.0 API libraries for JAXB: with Jackson 2.12,
-Jakarta versions can be referenced for the JAXB module by using the classifier "jakarta" in your dependency
+But Jackson 2.12 also has (just for that version), `jakarta` classifier variant of JAXB providers included here.
+
+You MAY be able to use these variants by using dependency like:
 
 ```
 <dependency>
@@ -100,6 +117,20 @@ Jakarta versions can be referenced for the JAXB module by using the classifier "
 </dependency>
 ``` 
 
+## Support
+
+### Community support
+
+Jackson components are supported by the Jackson community through mailing lists, Gitter forum, Github issues. See [Participation, Contributing](../../../jackson#participation-contributing) for full details.
+
+### Enterprise support
+
+Available as part of the Tidelift Subscription.
+
+The maintainers of `jackson-jaxrs-providers` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/maven-com-fasterxml-jackson-jaxrs-jackson-jaxrs-json-provider?utm_source=maven-com-fasterxml-jackson-jaxrs-jackson-jaxrs-json-provider&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
+
+-----
+
 ## Other
 
 For documentation, downloads links, check out [Wiki](../../wiki)
diff --git a/base/pom.xml b/base/pom.xml
index fdfd38c..79de898 100644
--- a/base/pom.xml
+++ b/base/pom.xml
@@ -9,15 +9,23 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <artifactId>jackson-jaxrs-base</artifactId>
-  <name>Jackson-JAXRS-base</name>
+  <name>Jackson-JAXRS: base</name>
   <packaging>bundle</packaging>
   <description>Pile of code that is shared by all Jackson-based JAX-RS
 providers.
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <osgi.export>
 ${project.groupId}.annotation.*;version=${project.version}
@@ -50,43 +58,6 @@ ${project.groupId}.annotation.*;version=${project.version}
       <plugin>
         <groupId>org.moditect</groupId>
         <artifactId>moditect-maven-plugin</artifactId>
-        <configuration>
-          <jvmVersion>11</jvmVersion>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>jakarta</id>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <shadedArtifactAttached>true</shadedArtifactAttached>
-              <shadedClassifierName>jakarta</shadedClassifierName>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <include>${project.groupId}:${project.artifactId}</include>
-                </includes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>javax.xml.bind</pattern>
-                  <shadedPattern>jakarta.xml.bind</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>javax.ws.rs</pattern>
-                  <shadedPattern>jakarta.ws.rs</shadedPattern>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
       </plugin>
 
     </plugins>
diff --git a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/NoContentExceptionSupplier.java b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/NoContentExceptionSupplier.java
deleted file mode 100644
index 9aea215..0000000
--- a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/NoContentExceptionSupplier.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.fasterxml.jackson.jaxrs.base;
-
-import java.io.IOException;
-
-/**
- * Implementors of this class contains strategies for NoContentException creation
- */
-public interface NoContentExceptionSupplier
-{
-    String NO_CONTENT_MESSAGE = "No content (empty input stream)";
-
-    IOException createNoContentException();
-}
diff --git a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java
index 67eaeaf..e84795c 100644
--- a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java
+++ b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java
@@ -2,22 +2,18 @@ package com.fasterxml.jackson.jaxrs.base;
 
 import java.io.*;
 import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
 import java.lang.reflect.Type;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicReference;
 
 import javax.ws.rs.core.*;
 import javax.ws.rs.ext.MessageBodyReader;
 import javax.ws.rs.ext.MessageBodyWriter;
 
 import com.fasterxml.jackson.core.*;
+
 import com.fasterxml.jackson.databind.*;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.fasterxml.jackson.jaxrs.base.nocontent.JaxRS1NoContentExceptionSupplier;
-import com.fasterxml.jackson.jaxrs.base.nocontent.JaxRS2NoContentExceptionSupplier;
+
 import com.fasterxml.jackson.jaxrs.cfg.*;
 import com.fasterxml.jackson.jaxrs.util.ClassKey;
 import com.fasterxml.jackson.jaxrs.util.LRUMap;
@@ -40,7 +36,7 @@ public abstract class ProviderBase<
 
     protected final static String CLASS_NAME_NO_CONTENT_EXCEPTION = "javax.ws.rs.core.NoContentException";
 
-    protected final NoContentExceptionSupplier noContentExceptionSupplier = _createNoContentExceptionSupplier();
+    private final static String NO_CONTENT_MESSAGE = "No content (empty input stream)";
 
     /**
      * Looks like we need to worry about accidental
@@ -171,9 +167,6 @@ public abstract class ProviderBase<
     protected final LRUMap<AnnotationBundleKey, EP_CONFIG> _writers
         = new LRUMap<AnnotationBundleKey, EP_CONFIG>(16, 120);
 
-    protected final AtomicReference<IOException> _noContentExceptionRef
-        = new AtomicReference<IOException>();
-
     /*
     /**********************************************************
     /* Life-cycle
@@ -186,9 +179,8 @@ public abstract class ProviderBase<
     }
 
     /**
-     * Constructor that is only added to resolve
-     * issue #10; problems with combination of
-     * RESTeasy and CDI.
+     * Constructor that is only added to resolve [jaxrs-providers#10]; problems
+     * with combination of RESTeasy and CDI.
      * Should NOT be used by any code explicitly; only exists
      * for proxy support.
      */
@@ -533,9 +525,8 @@ public abstract class ProviderBase<
             // negation: Boolean.TRUE means untouchable -> can not write
             return !customUntouchable.booleanValue();
         }
-        /* Ok: looks like we must weed out some core types here; ones that
-         * make no sense to try to bind from JSON:
-         */
+        // Ok: looks like we must weed out some core types here; ones that
+        // make no sense to try to bind from JSON:
         if (_isIgnorableForWriting(new ClassKey(type))) {
             return false;
         }
@@ -730,9 +721,8 @@ public abstract class ProviderBase<
             // negation: Boolean.TRUE means untouchable -> can not write
             return !customUntouchable.booleanValue();
         }
-        /* Ok: looks like we must weed out some core types here; ones that
-         * make no sense to try to bind from JSON:
-         */
+        // Ok: looks like we must weed out some core types here; ones that
+        // make no sense to try to bind from JSON:
         if (_isIgnorableForReading(new ClassKey(type))) {
             return false;
         }
@@ -776,14 +766,11 @@ public abstract class ProviderBase<
             if (JaxRSFeature.ALLOW_EMPTY_INPUT.enabledIn(_jaxRSFeatures)) {
                 return null;
             }
-            /* 05-Apr-2014, tatu: Trick-ee. NoContentFoundException only available in JAX-RS 2.0...
-             *   so need bit of obfuscated code to reach it.
-             */
-            IOException fail = _noContentExceptionRef.get();
-            if (fail == null) {
-                fail = _createNoContentException();
-            }
-            throw fail;
+            // 05-Apr-2014, tatu: Trick-ee. NoContentFoundException only available in JAX-RS 2.0...
+            //   so need bit of obfuscated code to reach it.
+
+            // 20-Jan-2021, tatu: as per [jaxrs-providers#134], simplify
+            throw _createNoContentException();
         }
         Class<?> rawType = type;
         if (rawType == JsonParser.class) {
@@ -969,13 +956,9 @@ public abstract class ProviderBase<
     {
         return _untouchables.contains(typeKey);
     }
-    
-    /**
-     * @since 2.4
-     */
-    protected IOException _createNoContentException()
-    {
-        return noContentExceptionSupplier.createNoContentException();
+
+    protected IOException _createNoContentException() {
+        return new NoContentException(NO_CONTENT_MESSAGE);
     }
 
     /*
@@ -1052,45 +1035,4 @@ public abstract class ProviderBase<
     private final THIS _this() {
         return (THIS) this;
     }
-
-    /**
-     * Since class <code>javax.ws.rs.core.NoContentException</code> only exists in
-     * JAX-RS 2.0, but we want to have 1.x compatibility, need to dynamically select exception supplier
-     */
-    private static NoContentExceptionSupplier _createNoContentExceptionSupplier() {
-        try {
-            final Class<?> cls = Class.forName(CLASS_NAME_NO_CONTENT_EXCEPTION, false, getClassLoader());
-            Constructor<?> ctor;
-            if (System.getSecurityManager() == null) {
-                ctor = cls.getDeclaredConstructor(String.class);
-            } else {
-                ctor = AccessController.doPrivileged(new PrivilegedAction<Constructor<?>>() {
-                    @Override
-                    public Constructor<?> run() {
-                        try {
-                            return cls.getDeclaredConstructor(String.class);
-                        } catch (NoSuchMethodException ignore) {
-                            return null;
-                        }
-                    }
-                });
-            }
-            if (ctor != null) {
-                return new JaxRS2NoContentExceptionSupplier();
-            }
-        } catch (ClassNotFoundException | NoSuchMethodException ex) { }
-        return new JaxRS1NoContentExceptionSupplier();
-    }
-
-    private static ClassLoader getClassLoader() {
-        if (System.getSecurityManager() == null) {
-            return ProviderBase.class.getClassLoader();
-        }
-        return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
-            @Override
-            public ClassLoader run() {
-                return ProviderBase.class.getClassLoader();
-            }
-        });
-    }
 }
diff --git a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/nocontent/JaxRS1NoContentExceptionSupplier.java b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/nocontent/JaxRS1NoContentExceptionSupplier.java
deleted file mode 100644
index 7646ba4..0000000
--- a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/nocontent/JaxRS1NoContentExceptionSupplier.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fasterxml.jackson.jaxrs.base.nocontent;
-
-import com.fasterxml.jackson.jaxrs.base.NoContentExceptionSupplier;
-
-import java.io.IOException;
-
-/**
- * Create plain IOException for JaxRS 1.x because {@link javax.ws.rs.core.NoContentException}
- * has been introduced in JaxRS 2.x
- */
-public class JaxRS1NoContentExceptionSupplier implements NoContentExceptionSupplier
-{
-    @Override
-    public IOException createNoContentException()
-    {
-        return new IOException(NO_CONTENT_MESSAGE);
-    }
-}
diff --git a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/nocontent/JaxRS2NoContentExceptionSupplier.java b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/nocontent/JaxRS2NoContentExceptionSupplier.java
deleted file mode 100644
index 6519d35..0000000
--- a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/nocontent/JaxRS2NoContentExceptionSupplier.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.fasterxml.jackson.jaxrs.base.nocontent;
-
-import com.fasterxml.jackson.jaxrs.base.NoContentExceptionSupplier;
-
-import javax.ws.rs.core.NoContentException;
-import java.io.IOException;
-
-/**
- * This supplier creates fair NoContentException from JaxRS 2.x
- */
-public class JaxRS2NoContentExceptionSupplier implements NoContentExceptionSupplier {
-    @Override
-    public IOException createNoContentException() {
-        return new NoContentException(NoContentExceptionSupplier.NO_CONTENT_MESSAGE);
-    }
-}
diff --git a/base/src/main/java/com/fasterxml/jackson/jaxrs/cfg/AnnotationBundleKey.java b/base/src/main/java/com/fasterxml/jackson/jaxrs/cfg/AnnotationBundleKey.java
index 0e0d6a7..4c97eaf 100644
--- a/base/src/main/java/com/fasterxml/jackson/jaxrs/cfg/AnnotationBundleKey.java
+++ b/base/src/main/java/com/fasterxml/jackson/jaxrs/cfg/AnnotationBundleKey.java
@@ -128,7 +128,10 @@ public final class AnnotationBundleKey
         //   possible permutations but rather trying to ensure that caching of same
         //   method signature is likely to match. So false negatives are acceptable
         //   over having to do order-insensitive comparison.
-        
+
+        // 25-Oct-2021, tatu: But note that there is balance here; the goal is NOT
+        //   100% accuracy (every equal combination found as such) but finding
+        //   some matches, efficiently, while allowing no false matches.
         switch (len) {
         default:
             for (int i = 0; i < len; ++i) {
diff --git a/base/src/moditect/module-info.java b/base/src/moditect/module-info.java
index 9ceee9e..c515841 100644
--- a/base/src/moditect/module-info.java
+++ b/base/src/moditect/module-info.java
@@ -2,7 +2,6 @@
 module com.fasterxml.jackson.jaxrs.base {
     exports com.fasterxml.jackson.jaxrs.annotation;
     exports com.fasterxml.jackson.jaxrs.base;
-    exports com.fasterxml.jackson.jaxrs.base.nocontent;
     exports com.fasterxml.jackson.jaxrs.cfg;
     exports com.fasterxml.jackson.jaxrs.util;
 
diff --git a/base/src/test/java/com/fasterxml/jackson/jaxrs/base/cfg/AnnotationBundleKeyTest.java b/base/src/test/java/com/fasterxml/jackson/jaxrs/base/cfg/AnnotationBundleKeyTest.java
index 8646d2b..dae31bd 100644
--- a/base/src/test/java/com/fasterxml/jackson/jaxrs/base/cfg/AnnotationBundleKeyTest.java
+++ b/base/src/test/java/com/fasterxml/jackson/jaxrs/base/cfg/AnnotationBundleKeyTest.java
@@ -1,6 +1,8 @@
 package com.fasterxml.jackson.jaxrs.base.cfg;
 
 import java.lang.annotation.Annotation;
+import java.util.Arrays;
+import java.util.HashSet;
 
 import com.fasterxml.jackson.annotation.*;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -8,9 +10,6 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.jaxrs.base.BaseTestBase;
 import com.fasterxml.jackson.jaxrs.cfg.AnnotationBundleKey;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertNotEquals;
-
 // for [jaxrs-providers#111]
 public class AnnotationBundleKeyTest
     extends BaseTestBase
@@ -42,18 +41,28 @@ public class AnnotationBundleKeyTest
 
     public void testWithClassAnnotations() throws Exception
     {
-        _checkWith(Helper.class.getAnnotations(), Helper.class.getAnnotations());
+        Annotation[] annotation1 = Helper.class.getAnnotations();
+        Annotation[] annotation2 = Helper.class.getAnnotations();
+        Arrays.sort(annotation1, (i, j) -> i.toString().compareTo(j.toString()));
+        Arrays.sort(annotation2, (i, j) -> i.toString().compareTo(j.toString()));
+        _checkWith(annotation1, annotation2);
     }
 
     public void testWithMethodAnnotationEquals() throws Exception
     {
         // First, same method parameters definitely should match
-        _checkWith(Helper.class.getDeclaredMethod("getX").getAnnotations(),
-                Helper.class.getDeclaredMethod("getX").getAnnotations());
+        Annotation[] annotation1 = Helper.class.getDeclaredMethod("getX").getAnnotations();
+        Annotation[] annotation2 = Helper.class.getDeclaredMethod("getX").getAnnotations();
+        Arrays.sort(annotation1, (i, j) -> i.toString().compareTo(j.toString()));
+        Arrays.sort(annotation2, (i, j) -> i.toString().compareTo(j.toString()));
+        _checkWith(annotation1, annotation2);
         // but so should annotations from different method as long as
         // same parameters are in same order
-        _checkWith(Helper.class.getDeclaredMethod("getX").getAnnotations(),
-                Helper.class.getDeclaredMethod("altX").getAnnotations());
+        Annotation[] annotation3 = Helper.class.getDeclaredMethod("getX").getAnnotations();
+        Annotation[] annotation4 = Helper.class.getDeclaredMethod("altX").getAnnotations();
+        Arrays.sort(annotation3, (i, j) -> i.toString().compareTo(j.toString()));
+        Arrays.sort(annotation4, (i, j) -> i.toString().compareTo(j.toString()));
+        _checkWith(annotation3, annotation4);
     }
 
     public void testWithMethodAnnotationDifferent() throws Exception
@@ -86,24 +95,20 @@ public class AnnotationBundleKeyTest
         if (anns1.length == 0) {
             fail("Internal error: empty annotation array");
         }
-        assertArrayEquals("Internal error: should never differ", anns1, anns2);
+        HashSet<Annotation> annsSet1 = new HashSet<Annotation>(Arrays.asList(anns1));
+        HashSet<Annotation> annsSet2 = new HashSet<Annotation>(Arrays.asList(anns2));
+        assertTrue("Internal error: should never differ", annsSet1.equals(annsSet2));
 
         AnnotationBundleKey b1 = new AnnotationBundleKey(anns1, Object.class);
         AnnotationBundleKey b2 = new AnnotationBundleKey(anns2, Object.class);
 
-        if (!b1.equals(b2) || !b2.equals(b1)) {
-            assertEquals(String.format("Implementations over %s backed annotations differ", anns1[0].getClass()),
-                    b1, b2);
-        }
+        assertTrue(String.format("Implementations over %s backed annotations differ", anns1[0].getClass()), (b1.equals(b2) && b2.equals(b1)));
     }
 
     protected void _checkNotEqual(Annotation[] anns1, Annotation[] anns2) {
         AnnotationBundleKey b1 = new AnnotationBundleKey(anns1, Object.class);
         AnnotationBundleKey b2 = new AnnotationBundleKey(anns2, Object.class);
 
-        if (b1.equals(b2) || b2.equals(b1)) {
-            assertNotEquals(String.format("Implementations over %s backed annotations SHOULD differ but won't", anns1[0].getClass()),
-                    b1, b2);
-        }
+        assertFalse(String.format("Implementations over %s backed annotations SHOULD differ but won't", anns1[0].getClass()), (b1.equals(b2) || b2.equals(b1)));
     }
 }
diff --git a/cbor/pom.xml b/cbor/pom.xml
index e3a0c1f..f5b1576 100644
--- a/cbor/pom.xml
+++ b/cbor/pom.xml
@@ -9,14 +9,22 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <artifactId>jackson-jaxrs-cbor-provider</artifactId>
-  <name>Jackson-JAXRS-CBOR</name>
+  <name>Jackson-JAXRS: CBOR</name>
   <packaging>bundle</packaging>
   <description>Functionality to handle CBOR encoded input/output for JAX-RS implementations (like Jersey and RESTeasy) using standard Jackson data binding.
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <!-- Generate PackageVersion.java into this directory. -->
     <packageVersion.dir>com/fasterxml/jackson/jaxrs/cbor</packageVersion.dir>
@@ -55,16 +63,16 @@
     <plugins>
       <plugin>
         <!-- Inherited from oss-base. Generate PackageVersion.java.-->
-	   <groupId>com.google.code.maven-replacer-plugin</groupId>
-         <artifactId>replacer</artifactId>
-	    <executions>
-           <execution>
-             <id>process-packageVersion</id>
-             <phase>process-sources</phase>
-           </execution>
-	    </executions>
-       </plugin>
-       <plugin>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
+        <artifactId>replacer</artifactId>
+        <executions>
+          <execution>
+            <id>process-packageVersion</id>
+            <phase>process-sources</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
         <executions>
@@ -89,6 +97,7 @@
         <groupId>org.moditect</groupId>
         <artifactId>moditect-maven-plugin</artifactId>
       </plugin>
+
     </plugins>
   </build>
 </project>
diff --git a/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java b/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java
index 3adc35f..fe984e6 100644
--- a/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java
+++ b/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java
@@ -15,7 +15,7 @@ import com.fasterxml.jackson.jaxrs.cfg.Annotations;
 /**
  * Basic implementation of JAX-RS abstractions ({@link MessageBodyReader},
  * {@link MessageBodyWriter}) needed for binding
- * Smile ("application/x-jackson-smile") content to and from Java Objects ("POJO"s).
+ * CBOR ("application/cbor") content to and from Java Objects ("POJO"s).
  *<p>
  * Actual data binding functionality is implemented by {@link ObjectMapper}:
  * mapper to use can be configured in multiple ways:
@@ -133,28 +133,28 @@ extends ProviderBase<JacksonCBORProvider,
 
     /**
      * Helper method used to check whether given media type
-     * is Smile type or sub type.
+     * is CBOR type or sub type.
      * Current implementation essentially checks to see whether
      * {@link MediaType#getSubtype} returns
-     * "smile" or something ending with "+smile".
+     * "cbor" or something ending with "+cbor".
      */
     @Override
     protected boolean hasMatchingMediaType(MediaType mediaType)
     {
         /* As suggested by Stephen D, there are 2 ways to check: either
-         * being as inclusive as possible (if subtype is "smile"), or
-         * exclusive (major type "application", minor type "smile").
+         * being as inclusive as possible (if subtype is "cbor"), or
+         * exclusive (major type "application", minor type "cbor").
          * Let's start with inclusive one, hard to know which major
          * types we should cover aside from "application".
          */
         if (mediaType != null) {
-            // Ok: there are also "xxx+smile" subtypes, which count as well
+            // Ok: there are also "xxx+cbor" subtypes, which count as well
             String subtype = mediaType.getSubtype();
             return CBORMediaTypes.APPLICATION_JACKSON_CBOR_TYPE.getSubtype().equalsIgnoreCase(subtype) || 
             		"cbor".equalsIgnoreCase(subtype) || subtype.endsWith("+cbor");
         }
         /* Not sure if this can happen; but it seems reasonable
-         * that we can at least produce smile without media type?
+         * that we can at least produce CBOR without media type?
          */
         return true;
     }
diff --git a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java
index 0e9150e..b9caccd 100644
--- a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java
@@ -49,7 +49,7 @@ public abstract class SimpleEndpointTestBase extends ResourceTestBase
         public SimpleResourceApp() { super(new SimpleResource()); }
     }
 
-    private final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
+    final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
 
     @Path("/raw")
     public static class RawResource
diff --git a/datatypes/pom.xml b/datatypes/pom.xml
index 30ed8a7..dc11409 100644
--- a/datatypes/pom.xml
+++ b/datatypes/pom.xml
@@ -9,16 +9,24 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <!-- note: different group id, it being datatype -->
   <groupId>com.fasterxml.jackson.datatype</groupId>
   <artifactId>jackson-datatype-jaxrs</artifactId>
-  <name>Jackson-JAXRS-Datatypes</name>
+  <name>Jackson-JAXRS: Datatypes</name>
   <packaging>bundle</packaging>
   <description>Functionality for reading/writing core JAX-RS helper types
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <!-- Generate PackageVersion.java into this directory. -->
     <packageVersion.dir>com/fasterxml/jackson/datatype/jaxrs</packageVersion.dir>
@@ -75,43 +83,6 @@
       <plugin>
         <groupId>org.moditect</groupId>
         <artifactId>moditect-maven-plugin</artifactId>
-        <configuration>
-          <jvmVersion>11</jvmVersion>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>jakarta</id>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <shadedArtifactAttached>true</shadedArtifactAttached>
-              <shadedClassifierName>jakarta</shadedClassifierName>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <include>${project.groupId}:${project.artifactId}</include>
-                </includes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>javax.xml.bind</pattern>
-                  <shadedPattern>jakarta.xml.bind</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>javax.ws.rs</pattern>
-                  <shadedPattern>jakarta.ws.rs</shadedPattern>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
       </plugin>
 
     </plugins>
diff --git a/debian/changelog b/debian/changelog
index 0ae2573..821bb8b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+jackson-jaxrs-providers (2.14.1+git20221121.1.158444a+ds-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Tue, 20 Dec 2022 14:06:14 -0000
+
 jackson-jaxrs-providers (2.12.1-1) unstable; urgency=medium
 
   * Team upload.
diff --git a/json/pom.xml b/json/pom.xml
index a939276..4328a67 100644
--- a/json/pom.xml
+++ b/json/pom.xml
@@ -9,14 +9,22 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <artifactId>jackson-jaxrs-json-provider</artifactId>
-  <name>Jackson-JAXRS-JSON</name>
+  <name>Jackson-JAXRS: JSON</name>
   <packaging>bundle</packaging>
   <description>Functionality to handle JSON input/output for JAX-RS implementations (like Jersey and RESTeasy) using standard Jackson data binding.
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <!-- Generate PackageVersion.java into this directory. -->
     <packageVersion.dir>com/fasterxml/jackson/jaxrs/json</packageVersion.dir>
@@ -34,7 +42,7 @@
   </properties>
 
   <dependencies>
-    <!-- builds on shared base JAX-RS handling code... which depends on core, databind-->
+    <!-- builds on shared base JAX-RS handling code... -->
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>jackson-jaxrs-base</artifactId>
@@ -56,7 +64,7 @@
       <artifactId>resteasy-jackson2-provider</artifactId>
       <!-- 15-Feb-2017, tatu: Alas, 3.0.20 compiled with Java 8, can't use
         -->
-      <version>3.0.17.Final</version>
+      <version>3.15.0.Final</version>
       <scope>test</scope>
       <exclusions>
         <exclusion>
@@ -68,7 +76,7 @@
     <dependency> 
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>resteasy-jaxrs</artifactId>
-      <version>3.0.17.Final</version>
+      <version>3.15.0.Final</version>
       <scope>test</scope>
     </dependency>
 
@@ -77,14 +85,14 @@
     <plugins>
       <plugin>
         <!-- Inherited from oss-base. Generate PackageVersion.java.-->
-	<groupId>com.google.code.maven-replacer-plugin</groupId>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
         <artifactId>replacer</artifactId>
-	<executions>
+        <executions>
           <execution>
             <id>process-packageVersion</id>
             <phase>process-sources</phase>
           </execution>
-	</executions>
+        </executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -110,44 +118,8 @@
       <plugin>
         <groupId>org.moditect</groupId>
         <artifactId>moditect-maven-plugin</artifactId>
-        <configuration>
-          <jvmVersion>11</jvmVersion>
-        </configuration>
       </plugin>
 
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>jakarta</id>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <shadedArtifactAttached>true</shadedArtifactAttached>
-              <shadedClassifierName>jakarta</shadedClassifierName>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <artifactSet>
-                <includes>
-                  <include>${project.groupId}:${project.artifactId}</include>
-                </includes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>javax.xml.bind</pattern>
-                  <shadedPattern>jakarta.xml.bind</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>javax.ws.rs</pattern>
-                  <shadedPattern>jakarta.ws.rs</shadedPattern>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/SimpleEndpointTestBase.java b/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/SimpleEndpointTestBase.java
index 2450a02..f4af828 100644
--- a/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/SimpleEndpointTestBase.java
+++ b/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/SimpleEndpointTestBase.java
@@ -39,10 +39,11 @@ import org.junit.Assert;
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
+
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.type.TypeReference;
+
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -52,6 +53,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
 import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
 
 public abstract class SimpleEndpointTestBase extends ResourceTestBase
@@ -152,8 +154,8 @@ public abstract class SimpleEndpointTestBase extends ResourceTestBase
 			this.links = new ArrayList<>();
 		}
 
-		public void addEntities(E... entitities) {
-			Collections.addAll(this.entities, entitities);
+		public void addEntities(E... entities) {
+			Collections.addAll(this.entities, entities);
 		}
 
 		public void addLinks(Link... links) {
diff --git a/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/WriteModificationsTestBase.java b/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/WriteModificationsTestBase.java
index 7d5cefa..ed24c3a 100644
--- a/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/WriteModificationsTestBase.java
+++ b/json/src/test/java/com/fasterxml/jackson/jaxrs/json/dw/WriteModificationsTestBase.java
@@ -163,11 +163,15 @@ public abstract class WriteModificationsTestBase extends ResourceTestBase
         try {
             // First, without indent:
             String json = readUTF8(new URL(URL_BASE).openStream());
-            assertEquals(aposToQuotes("{'x':1,'y':2}"), json);
-    
+            boolean quote1 = json.equals(aposToQuotes("{'x':1,'y':2}"));
+            boolean quote2 = json.equals(aposToQuotes("{'y':2,'x':1}"));
+            assertTrue(quote1 || quote2);
+            
             // and then with indentation
             json = readUTF8(new URL(URL_BASE + "?indent=true").openStream());
-            assertEquals(aposToQuotes("{\n  'x' : 1,\n  'y' : 2\n}"), json);
+            boolean quote3 = json.equals(aposToQuotes("{\n  'x' : 1,\n  'y' : 2\n}"));
+            boolean quote4 = json.equals(aposToQuotes("{\n  'y' : 2,\n  'x' : 1\n}"));
+            assertTrue(quote3 || quote4);
         } finally {
             server.stop();
         }
diff --git a/mvnw b/mvnw
new file mode 100755
index 0000000..41c0f0c
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# 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
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..8611571
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/pom.xml b/pom.xml
index 2b2ced6..65582df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,16 +4,24 @@
   <parent>
     <groupId>com.fasterxml.jackson</groupId>
     <artifactId>jackson-base</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <groupId>com.fasterxml.jackson.jaxrs</groupId>
   <artifactId>jackson-jaxrs-providers</artifactId>
-  <name>Jackson JAX-RS</name>
-  <version>2.12.1</version>
+  <name>Jackson: JAX-RS (parent)</name>
+  <version>2.14.2-SNAPSHOT</version>
   <packaging>pom</packaging>
   <description>Parent for Jackson JAX-RS providers
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <modules>
     <module>base</module>
     <module>datatypes</module>
@@ -23,20 +31,22 @@
     <module>xml</module>
     <module>yaml</module>
   </modules>
-  <url>http://github.com/FasterXML/jackson-jaxrs-providers</url>    
+  <url>https://github.com/FasterXML/jackson-jaxrs-providers</url>
+
   <scm>
     <connection>scm:git:git@github.com:FasterXML/jackson-jaxrs-providers.git</connection>
     <developerConnection>scm:git:git@github.com:FasterXML/jackson-jaxrs-providers.git</developerConnection>
-    <url>http://github.com/FasterXML/jackson-jaxrs-providers</url>    
-    <tag>jackson-jaxrs-providers-2.12.1</tag>
+    <url>https://github.com/FasterXML/jackson-jaxrs-providers</url>
+    <tag>HEAD</tag>
   </scm>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
 
-    <!--  Need Jersey+Jetty for testing; deps from DropWizard 1.2.9 -->
+    <!--  Need Jersey+Jetty for testing; deps from DropWizard 1.3.29 -->
     <version.jersey>2.25.1</version.jersey>
-    <!-- as per CVE-2019-10247 -->
-    <version.jetty>9.4.35.v20201120</version.jetty>
+    <!-- as per CVE-2019-10247 -> 9.4.35 -->
+    <!-- 07-Jul-2022, tatu: Further increase (latest at this point) -->
+    <version.jetty>9.4.48.v20220622</version.jetty>
 
     <!-- Needed to enable jax-rs 2.0 usage under OSGi -->
     <javax.ws.rs.version>[2.0,2.2)</javax.ws.rs.version>
@@ -47,7 +57,7 @@
       <dependency>
         <groupId>jakarta.xml.bind</groupId>
         <artifactId>jakarta.xml.bind-api</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
@@ -66,15 +76,6 @@
       <scope>provided</scope>
     </dependency>
 
-    <!-- tests require JAX-RS impl; otherwise components fail to load
-        (some oddity with API classes; should NOT be needed...)
-      -->
-    <dependency> <!-- all components use junit for testing -->
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-server</artifactId>
@@ -131,13 +132,13 @@
         <plugin>
           <groupId>org.apache.felix</groupId>
           <artifactId>maven-bundle-plugin</artifactId>
-          <version>3.2.0</version>
           <configuration>
             <instructions>
               <_nouses>false</_nouses>
             </instructions>
           </configuration>
         </plugin>
+
         <plugin>
           <!-- Inherited from oss-base. Generate PackageVersion.java.-->
           <groupId>com.google.code.maven-replacer-plugin</groupId>
@@ -150,15 +151,26 @@
           </executions>
         </plugin>
 
+        <plugin>
+          <groupId>org.moditect</groupId>
+          <artifactId>moditect-maven-plugin</artifactId>
+          <!-- 20-Feb-2021, tatu: For Jackson 2.x, put `module-info.class` under location
+                  only visible to JDK 11+ (to avoid issues with older pre-Java9 frameworks?)
+            -->
+          <configuration>
+            <jvmVersion>11</jvmVersion>
+          </configuration>
+        </plugin>
       </plugins>
     </pluginManagement>
 
     <!-- 05-Jul-2020, tatu: Add generation of Gradle Module Metadata -->
     <plugins>
-      <plugin>
+
+     <plugin>
         <groupId>de.jjohannes</groupId>
         <artifactId>gradle-module-metadata-maven-plugin</artifactId>
-      </plugin>    
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/release-notes/CREDITS-2.x b/release-notes/CREDITS-2.x
index 27301e0..a5a5abb 100644
--- a/release-notes/CREDITS-2.x
+++ b/release-notes/CREDITS-2.x
@@ -1,5 +1,5 @@
-Here are people who have contributed to development Jackson JSON process 
-core component, version 2.x
+Here are people who have contributed to development Jackson JSON processor
+JAXRS-providers module, version 2.x
 (version numbers in brackets indicate release in which the problem was fixed)
 
 (note: for older credits, check out release notes for 1.x versions)
@@ -80,3 +80,8 @@ James R. Perkins (jamezp@github)
 
 * Reported, contributed fix for  #109: Use privileged action to check for JAX-RS 1 vs 2
  (2.11.0)
+
+Scott Lewis (scottslewis@github)
+
+* Reported #132: jaxrs jakarta versions have javax.ws references in OSGi manifest
+ (2.12.2)
diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x
index 13bb177..0029b5b 100644
--- a/release-notes/VERSION-2.x
+++ b/release-notes/VERSION-2.x
@@ -10,6 +10,54 @@ Sub-modules:
 === Releases ===
 ------------------------------------------------------------------------
 
+2.14.1 (21-Nov-2022)
+
+No changes since 2.14.0
+
+2.14.0 (05-Nov-2022)
+
+* (xml) Woodstox dependency -> 6.4.0
+
+2.13.5 (not yet released)
+
+* (xml) Woodstox dependency -> 6.4.0
+
+2.13.4 (03-Sep-2022)
+
+* (xml) Woodstox dependency -> 6.3.1
+
+2.13.3 (14-May-2022)
+2.13.2 (06-Mar-2022)
+2.13.1 (19-Dec-2021)
+
+No changes since 2.13.0
+
+2.13.0 (30-Sep-2021)
+
+#134: Remove work-around for JAX-RS 1.x wrt JAX-RS 2 type `NoContentException`
+#146: Create new alternate jackson-jakarta-rs-providers repo for Jakarta
+  (not Javax) RS implementation -- also remove "jakarta" classifier variants
+  from this project
+  
+- Update `jakarta.xml.bind-api` dep (2.3.2 -> 2.3.3)
+
+2.12.7 (26-May-2022)
+2.12.6 (15-Dec-2021)
+2.12.5 (27-Aug-2021)
+2.12.4 (06-Jul-2021)
+2.12.3 (12-Apr-2021)
+
+No changes since 2.12.2
+
+2.12.2 (03-Mar-2021)
+
+#132: jaxrs jakarta versions have javax.ws references in OSGi manifest
+ (reported by Scott L)
+#136: Create manifest files separately and reference in bundle plugin, shade in
+  the new manifest for Jakarta separately before install
+ (contributed by Marc M)
+* Woodstox dependency to 6.2.4
+
 2.12.1 (08-Jan-2021)
 
 No changes since 2.12.0
diff --git a/smile/pom.xml b/smile/pom.xml
index 9f99bf8..465b252 100644
--- a/smile/pom.xml
+++ b/smile/pom.xml
@@ -9,14 +9,22 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <artifactId>jackson-jaxrs-smile-provider</artifactId>
-  <name>Jackson-JAXRS-Smile</name>
+  <name>Jackson-JAXRS: Smile</name>
   <packaging>bundle</packaging>
   <description>Functionality to handle Smile (binary JSON) input/output for JAX-RS implementations (like Jersey and RESTeasy) using standard Jackson data binding.
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <!-- Generate PackageVersion.java into this directory. -->
     <packageVersion.dir>com/fasterxml/jackson/jaxrs/smile</packageVersion.dir>
@@ -55,14 +63,14 @@
     <plugins>
       <plugin>
         <!-- Inherited from oss-base. Generate PackageVersion.java.-->
-	<groupId>com.google.code.maven-replacer-plugin</groupId>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
         <artifactId>replacer</artifactId>
-	<executions>
+        <executions>
           <execution>
             <id>process-packageVersion</id>
             <phase>process-sources</phase>
           </execution>
-	</executions>
+        </executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
diff --git a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java
index 456e6d2..2e35ec4 100644
--- a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java
+++ b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java
@@ -47,7 +47,7 @@ public abstract class SimpleEndpointTestBase extends ResourceTestBase
         public SimpleResourceApp() { super(new SimpleResource()); }
     }
 
-    private final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
+    final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
 
     @Path("/raw")
     public static class RawResource
diff --git a/xml/pom.xml b/xml/pom.xml
index f9dfdad..c18fff5 100644
--- a/xml/pom.xml
+++ b/xml/pom.xml
@@ -9,14 +9,22 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <artifactId>jackson-jaxrs-xml-provider</artifactId>
-  <name>Jackson-JAXRS-XML</name>
+  <name>Jackson-JAXRS: XML</name>
   <packaging>bundle</packaging>
   <description>Functionality to handle XML input/output for JAX-RS implementations (like Jersey and RESTeasy) using standard Jackson data binding.
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <!-- Generate PackageVersion.java into this directory. -->
     <packageVersion.dir>com/fasterxml/jackson/jaxrs/xml</packageVersion.dir>
@@ -56,7 +64,7 @@
       <!-- Ideally we'd accept range of versions but won't really work with Maven... -->
 
 <!--      <version>[4.0, 5.0)</version>  -->
-      <version>4.2</version>
+      <version>4.2.1</version>
     </dependency>
 
     <!-- Also: While JDK-included SJSXP almost works, there are some rough edges;
@@ -65,7 +73,7 @@
     <dependency>
       <groupId>com.fasterxml.woodstox</groupId>
       <artifactId>woodstox-core</artifactId>
-      <version>6.2.3</version>
+      <version>6.4.0</version>
       <exclusions>
         <exclusion>
           <groupId>javax.xml.stream</groupId>
@@ -113,6 +121,7 @@
         <groupId>org.moditect</groupId>
         <artifactId>moditect-maven-plugin</artifactId>
       </plugin>
+
     </plugins>
   </build>
 </project>
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java
index 39d5dc6..4d77cae 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java
@@ -13,7 +13,6 @@ import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.SerializationFeature;
 
 import com.fasterxml.jackson.jaxrs.annotation.JacksonFeatures;
-import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider;
 
 /**
  * Tests for [Issue-2], Addition of {@link JacksonFeatures}.
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJsonView.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJsonView.java
index f8e556c..79f9d50 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJsonView.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJsonView.java
@@ -7,7 +7,6 @@ import java.lang.reflect.Method;
 import javax.ws.rs.core.MediaType;
 
 import com.fasterxml.jackson.annotation.JsonView;
-import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider;
 
 public class TestJsonView extends JaxrsTestBase
 {
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestRootType.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestRootType.java
index 7472406..cfef4a5 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestRootType.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestRootType.java
@@ -11,7 +11,6 @@ import com.fasterxml.jackson.annotation.*;
 import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
 import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
 import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider;
 
 public class TestRootType
     extends JaxrsTestBase
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestUntouchables.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestUntouchables.java
index 87aac96..acff42a 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestUntouchables.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestUntouchables.java
@@ -5,8 +5,6 @@ import java.util.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.StreamingOutput;
 
-import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider;
-
 /**
  * Unit tests for verifying that certain JDK base types will be
  * ignored by default Jackson JAX-RS conversion provider.
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestXMLVersions.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestXMLVersions.java
index 15024a4..73a2ad5 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestXMLVersions.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestXMLVersions.java
@@ -2,7 +2,6 @@ package com.fasterxml.jackson.jaxrs.xml;
 
 import com.fasterxml.jackson.core.Version;
 import com.fasterxml.jackson.core.Versioned;
-import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider;
 
 public class TestXMLVersions extends JaxrsTestBase
 {
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/dw/SimpleEndpointTestBase.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/dw/SimpleEndpointTestBase.java
index c172327..7c0f7a4 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/dw/SimpleEndpointTestBase.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/dw/SimpleEndpointTestBase.java
@@ -49,7 +49,7 @@ public abstract class SimpleEndpointTestBase extends ResourceTestBase
         public SimpleResourceApp() { super(new SimpleResource()); }
     }
 
-    private final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
+    final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
 
     @Path("/raw")
     public static class RawResource
diff --git a/yaml/pom.xml b/yaml/pom.xml
index c0b9bd6..a879143 100644
--- a/yaml/pom.xml
+++ b/yaml/pom.xml
@@ -9,15 +9,23 @@
   <parent>
     <groupId>com.fasterxml.jackson.jaxrs</groupId>
     <artifactId>jackson-jaxrs-providers</artifactId>
-    <version>2.12.1</version>
+    <version>2.14.2-SNAPSHOT</version>
   </parent>
   <artifactId>jackson-jaxrs-yaml-provider</artifactId>
-  <name>Jackson-JAXRS-YAML</name>
+  <name>Jackson-JAXRS: YAML</name>
   <packaging>bundle</packaging>
   <description>Functionality to handle YAML input/output for JAX-RS implementations (like Jersey and RESTeasy)
 using standard Jackson data binding.
   </description>
 
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
   <properties>
     <!-- Generate PackageVersion.java into this directory. -->
     <packageVersion.dir>com/fasterxml/jackson/jaxrs/yaml</packageVersion.dir>
@@ -37,8 +45,8 @@ using standard Jackson data binding.
   <dependencies>
     <!-- builds on shared base JAX-RS handling code... -->
     <dependency>
-      <artifactId>jackson-jaxrs-base</artifactId>
       <groupId>${project.groupId}</groupId>
+      <artifactId>jackson-jaxrs-base</artifactId>
       <version>${project.version}</version>
     </dependency>
     <!-- Extends Jackson core, mapper, and also (sort of optionally) on JAXB annotation handler -->
@@ -54,13 +62,13 @@ using standard Jackson data binding.
 
     <!-- Use JSON and Smile providers for testing that content negotiation works with multiple providers registered. -->
     <dependency>
-      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <groupId>${project.groupId}</groupId>
       <artifactId>jackson-jaxrs-json-provider</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <groupId>${project.groupId}</groupId>
       <artifactId>jackson-jaxrs-smile-provider</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
@@ -70,14 +78,14 @@ using standard Jackson data binding.
     <plugins>
       <plugin>
         <!-- Inherited from oss-base. Generate PackageVersion.java.-->
-	<groupId>com.google.code.maven-replacer-plugin</groupId>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
         <artifactId>replacer</artifactId>
-	<executions>
+        <executions>
           <execution>
             <id>process-packageVersion</id>
             <phase>process-sources</phase>
           </execution>
-	</executions>
+        </executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -104,6 +112,7 @@ using standard Jackson data binding.
         <groupId>org.moditect</groupId>
         <artifactId>moditect-maven-plugin</artifactId>
       </plugin>
+
     </plugins>
   </build>
 </project>
diff --git a/yaml/src/test/java/com/fasterxml/jackson/jaxrs/yaml/dw/SimpleEndpointTestBase.java b/yaml/src/test/java/com/fasterxml/jackson/jaxrs/yaml/dw/SimpleEndpointTestBase.java
index 0e48db9..d5e2d75 100644
--- a/yaml/src/test/java/com/fasterxml/jackson/jaxrs/yaml/dw/SimpleEndpointTestBase.java
+++ b/yaml/src/test/java/com/fasterxml/jackson/jaxrs/yaml/dw/SimpleEndpointTestBase.java
@@ -80,7 +80,7 @@ public abstract class SimpleEndpointTestBase extends ResourceTestBase
         }
     }
 
-    private final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
+    final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
 
     @Path("/raw")
     public static class RawResource

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.14.2-SNAPSHOT/jackson-jaxrs-base-2.14.2-SNAPSHOT.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-cbor-provider/2.14.2-SNAPSHOT/jackson-jaxrs-cbor-provider-2.14.2-SNAPSHOT.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.14.2-SNAPSHOT/jackson-jaxrs-json-provider-2.14.2-SNAPSHOT.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.14.2-SNAPSHOT/jackson-jaxrs-providers-2.14.2-SNAPSHOT.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-smile-provider/2.14.2-SNAPSHOT/jackson-jaxrs-smile-provider-2.14.2-SNAPSHOT.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-xml-provider/2.14.2-SNAPSHOT/jackson-jaxrs-xml-provider-2.14.2-SNAPSHOT.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-yaml-provider/2.14.2-SNAPSHOT/jackson-jaxrs-yaml-provider-2.14.2-SNAPSHOT.pom
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-base-2.14.2-SNAPSHOT.jar -> jackson-jaxrs-base.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-cbor-provider-2.14.2-SNAPSHOT.jar -> jackson-jaxrs-cbor-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-json-provider-2.14.2-SNAPSHOT.jar -> jackson-jaxrs-json-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-smile-provider-2.14.2-SNAPSHOT.jar -> jackson-jaxrs-smile-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-xml-provider-2.14.2-SNAPSHOT.jar -> jackson-jaxrs-xml-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-yaml-provider-2.14.2-SNAPSHOT.jar -> jackson-jaxrs-yaml-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.14.2-SNAPSHOT/jackson-jaxrs-base-2.14.2-SNAPSHOT.jar -> ../../../../../../../java/jackson-jaxrs-base.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-cbor-provider/2.14.2-SNAPSHOT/jackson-jaxrs-cbor-provider-2.14.2-SNAPSHOT.jar -> ../../../../../../../java/jackson-jaxrs-cbor-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.14.2-SNAPSHOT/jackson-jaxrs-json-provider-2.14.2-SNAPSHOT.jar -> ../../../../../../../java/jackson-jaxrs-json-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-smile-provider/2.14.2-SNAPSHOT/jackson-jaxrs-smile-provider-2.14.2-SNAPSHOT.jar -> ../../../../../../../java/jackson-jaxrs-smile-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-xml-provider/2.14.2-SNAPSHOT/jackson-jaxrs-xml-provider-2.14.2-SNAPSHOT.jar -> ../../../../../../../java/jackson-jaxrs-xml-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-yaml-provider/2.14.2-SNAPSHOT/jackson-jaxrs-yaml-provider-2.14.2-SNAPSHOT.jar -> ../../../../../../../java/jackson-jaxrs-yaml-provider.jar

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.12.1/jackson-jaxrs-base-2.12.1.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-cbor-provider/2.12.1/jackson-jaxrs-cbor-provider-2.12.1.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.12.1/jackson-jaxrs-json-provider-2.12.1.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.12.1/jackson-jaxrs-providers-2.12.1.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-smile-provider/2.12.1/jackson-jaxrs-smile-provider-2.12.1.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-xml-provider/2.12.1/jackson-jaxrs-xml-provider-2.12.1.pom
-rw-r--r--  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-yaml-provider/2.12.1/jackson-jaxrs-yaml-provider-2.12.1.pom
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-base-2.12.1.jar -> jackson-jaxrs-base.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-cbor-provider-2.12.1.jar -> jackson-jaxrs-cbor-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-json-provider-2.12.1.jar -> jackson-jaxrs-json-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-smile-provider-2.12.1.jar -> jackson-jaxrs-smile-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-xml-provider-2.12.1.jar -> jackson-jaxrs-xml-provider.jar
lrwxrwxrwx  root/root   /usr/share/java/jackson-jaxrs-yaml-provider-2.12.1.jar -> jackson-jaxrs-yaml-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.12.1/jackson-jaxrs-base-2.12.1.jar -> ../../../../../../../java/jackson-jaxrs-base.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-cbor-provider/2.12.1/jackson-jaxrs-cbor-provider-2.12.1.jar -> ../../../../../../../java/jackson-jaxrs-cbor-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.12.1/jackson-jaxrs-json-provider-2.12.1.jar -> ../../../../../../../java/jackson-jaxrs-json-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-smile-provider/2.12.1/jackson-jaxrs-smile-provider-2.12.1.jar -> ../../../../../../../java/jackson-jaxrs-smile-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-xml-provider/2.12.1/jackson-jaxrs-xml-provider-2.12.1.jar -> ../../../../../../../java/jackson-jaxrs-xml-provider.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/com/fasterxml/jackson/jaxrs/jackson-jaxrs-yaml-provider/2.12.1/jackson-jaxrs-yaml-provider-2.12.1.jar -> ../../../../../../../java/jackson-jaxrs-yaml-provider.jar

Control files: lines which differ (wdiff format)

  • Depends: libjackson2-core-java (>= 2.14.1), libjackson2-databind-java, libjackson2-dataformat-cbor (>= 2.7.8), libjackson2-dataformat-smile (>= 2.7.8), 2.8.0-SNAPSHOT), libjackson2-dataformat-xml-java, libjackson2-dataformat-yaml (>= 2.8.11), libjackson2-module-jaxb-annotations-java (>= 2.8.10), libstax2-api-java, libwoodstox-java

More details

Full run details