You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nd...@apache.org on 2021/11/29 22:33:04 UTC

[hbase-thirdparty] 02/02: HBASE-25868 [hbase-thirdparty] Shade jackson-jaxrs-json-provider for use with shaded jersey

This is an automated email from the ASF dual-hosted git repository.

ndimiduk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase-thirdparty.git

commit f9a7052d1e2d842a5a57302f6f503885543c5a6a
Author: Nick Dimiduk <nd...@apache.org>
AuthorDate: Fri May 7 15:18:53 2021 -0700

    HBASE-25868 [hbase-thirdparty] Shade jackson-jaxrs-json-provider for use with shaded jersey
    
    Make this provider module compatible with our shaded Jersey.
    
    Signed-off-by: Sean Busbey <bu...@apache.org>
    Signed-off-by: Andrew Purtell <ap...@apache.org>
---
 hbase-shaded-jackson-jaxrs-json-provider/pom.xml | 113 +++++++++++++++++++++++
 pom.xml                                          |   2 +
 2 files changed, 115 insertions(+)

diff --git a/hbase-shaded-jackson-jaxrs-json-provider/pom.xml b/hbase-shaded-jackson-jaxrs-json-provider/pom.xml
new file mode 100644
index 0000000..c79af04
--- /dev/null
+++ b/hbase-shaded-jackson-jaxrs-json-provider/pom.xml
@@ -0,0 +1,113 @@
+<?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">
+    <!--
+  /**
+   * 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.
+   */
+
+
+    ON MVN COMPILE NOT WORKING
+
+    If you wondering why 'mvn compile' does not work building HBase
+    (in particular, if you are doing it for the first time), instead do
+    'mvn package'.  If you are interested in the full story, see
+    https://issues.apache.org/jira/browse/HBASE-6795.
+
+  -->
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.hbase.thirdparty</groupId>
+        <artifactId>hbase-thirdparty</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <artifactId>hbase-shaded-jackson-jaxrs-json-provider</artifactId>
+    <name>Apache HBase Relocated (Shaded) jackson-jaxrs-json-provider</name>
+    <description>
+        Pulls down jackson-jaxrs-json-provider, relocates it, and rewrites its usage of javax.ws.rs
+        classes to make the relocated versions provided by hbase-shaded-jersey. Does NOT
+        include/relocate its entire dependency graph, just performs this isolated transform.
+
+        This is a separate module because jackson-jaxrs-json-provider is not used universally. At
+        this time, the dependency is required only by hbase-rest.
+    </description>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-clean-plugin</artifactId>
+                <configuration>
+                    <filesets>
+                        <fileset>
+                            <directory>${basedir}</directory>
+                            <includes>
+                                <include>dependency-reduced-pom.xml</include>
+                            </includes>
+                        </fileset>
+                    </filesets>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <shadeSourcesContent>true</shadeSourcesContent>
+                            <createSourcesJar>true</createSourcesJar>
+                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+                            <relocations>
+                                <relocation>
+                                    <pattern>javax.ws.rs</pattern>
+                                    <shadedPattern>${rename.offset}.javax.ws.rs</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>com.fasterxml.jackson.jaxrs</pattern>
+                                    <shadedPattern>${rename.offset}.com.fasterxml.jackson.jaxrs</shadedPattern>
+                                </relocation>
+                            </relocations>
+                            <artifactSet>
+                                <includes>
+                                    <include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base</include>
+                                    <include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider</include>
+                                </includes>
+                            </artifactSet>
+                            <transformers>
+                                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer">
+                                </transformer>
+                                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
+                                    <addHeader>false</addHeader>
+                                </transformer>
+                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+                            </transformers>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>com.fasterxml.jackson.jaxrs</groupId>
+            <artifactId>jackson-jaxrs-json-provider</artifactId>
+            <version>${jackson-jaxrs-json-provider.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/pom.xml b/pom.xml
index 9ca725c..b2014b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,7 @@
     <module>hbase-shaded-miscellaneous</module>
     <module>hbase-shaded-jetty</module>
     <module>hbase-shaded-jersey</module>
+    <module>hbase-shaded-jackson-jaxrs-json-provider</module>
     <module>hbase-noop-htrace</module>
   </modules>
   <scm>
@@ -144,6 +145,7 @@
     <jakarta.annotation-api.version>1.3.5</jakarta.annotation-api.version>
     <jakarta.validation-api.version>2.0.2</jakarta.validation-api.version>
     <javassist.version>3.25.0-GA</javassist.version>
+    <jackson-jaxrs-json-provider.version>2.10.1</jackson-jaxrs-json-provider.version>
   </properties>
   <build>
     <pluginManagement>