You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2021/09/21 13:17:44 UTC

[unomi] branch unomi-1.6.x updated: UNOMI-491 Upgrade Karaf, CXF and Jackson (#339)

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

shuber pushed a commit to branch unomi-1.6.x
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/unomi-1.6.x by this push:
     new 343bc9e  UNOMI-491 Upgrade Karaf, CXF and Jackson (#339)
343bc9e is described below

commit 343bc9efdb45521e7b9ada7a21ea8dedd5d33ef6
Author: Serge Huber <sh...@jahia.com>
AuthorDate: Thu Sep 16 09:24:15 2021 +0200

    UNOMI-491 Upgrade Karaf, CXF and Jackson (#339)
    
    * Attempting to upgrade CXF and hibernate-validator
    
    * Upgrading libraries:
    - Karaf -> 4.2.11
    - CXF -> 3.4.4
    - GraphQL -> 17
    - GraphQL annotations -> 9.0
    - Jackson -> 2.11.1
    
    * Revert back to GraphQL 14 and GraphQL Java Annotations 8
    
    * Minor fixes
    
    * - Switch back to bean validation 1.1.0 / hibernate validator 5.4.1
    - Fix Jackson databind versions
    - Moved Jackson dataformat YAML bundle out of WAB because it was causing scanning issues
    
    * - Fix validation API in GraphQL feature
    - Reactive all Unomi features in package
    
    * - Revert to JAXB annotations
    - Fix problem with JAXB API dependency that was not at correct version
    
    * Some cleanup
    
    * Revert back to old date/JSON functions
    
    (cherry picked from commit dda24b66eb796f4c4d1463410d868a456364a4ad)
---
 api/pom.xml                                                  |  7 +++----
 .../router/router-karaf-feature/src/main/feature/feature.xml |  1 +
 extensions/router/router-rest/pom.xml                        |  2 +-
 .../karaf-kar/src/main/feature/feature.xml                   |  1 +
 .../unomi-mailchimp/karaf-kar/src/main/feature/feature.xml   |  1 +
 .../weather-update/karaf-kar/src/main/feature/feature.xml    |  1 +
 .../web-tracker/karaf-kar/src/main/feature/feature.xml       |  1 +
 kar/src/main/feature/feature.xml                             | 10 ++++++----
 .../org/apache/unomi/persistence/spi/CustomObjectMapper.java |  2 +-
 .../persistence/spi/PropertyTypedObjectDeserializer.java     |  9 +++++++--
 plugins/baseplugin/pom.xml                                   |  6 +++---
 plugins/kafka-injector/pom.xml                               |  4 ++--
 pom.xml                                                      | 12 ++++++------
 rest/pom.xml                                                 |  2 ++
 wab/pom.xml                                                  |  1 +
 15 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/api/pom.xml b/api/pom.xml
index e9ca0db..899b73a 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -32,9 +32,9 @@
 
     <dependencies>
         <dependency>
-            <groupId>javax.xml.bind</groupId>
-            <artifactId>jaxb-api</artifactId>
-            <version>2.2.11</version>
+            <groupId>jakarta.xml.bind</groupId>
+            <artifactId>jakarta.xml.bind-api</artifactId>
+            <version>2.3.2</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -65,7 +65,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>4.2.1</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
diff --git a/extensions/router/router-karaf-feature/src/main/feature/feature.xml b/extensions/router/router-karaf-feature/src/main/feature/feature.xml
index 7812271..d3c9cd7 100644
--- a/extensions/router/router-karaf-feature/src/main/feature/feature.xml
+++ b/extensions/router/router-karaf-feature/src/main/feature/feature.xml
@@ -18,6 +18,7 @@
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0" name="unomi-router-karaf-feature">
     <feature name="unomi-router-karaf-feature" version="${project.version}" description="Apache Unomi :: Extensions :: Router :: Apache Karaf Feature">
         <details>Apache Karaf feature for the Apache Unomi Context Server extension</details>
+        <feature>wrap</feature>
         <feature>unomi-kar</feature>
         <bundle start-level="90">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/0.1.54_1</bundle>
         <bundle start-level="90">mvn:commons-net/commons-net/3.6</bundle>
diff --git a/extensions/router/router-rest/pom.xml b/extensions/router/router-rest/pom.xml
index 0528fc0..ce55a80 100644
--- a/extensions/router/router-rest/pom.xml
+++ b/extensions/router/router-rest/pom.xml
@@ -72,7 +72,7 @@
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
-            <version>${version.jackson.core}</version>
+            <version>${version.jackson.databind}</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/extensions/salesforce-connector/karaf-kar/src/main/feature/feature.xml b/extensions/salesforce-connector/karaf-kar/src/main/feature/feature.xml
index d3fbc36..aa544d8 100644
--- a/extensions/salesforce-connector/karaf-kar/src/main/feature/feature.xml
+++ b/extensions/salesforce-connector/karaf-kar/src/main/feature/feature.xml
@@ -18,6 +18,7 @@
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.1" name="unomi-salesforce-connector-karaf-feature">
     <feature name="unomi-salesforce-connector-karaf-kar" version="${project.version}" description="Apache Unomi :: Extensions :: Salesforce connector :: Apache Karaf Feature">
         <details>Apache Karaf feature for the Apache Unomi Context Server extension that integrates with Salesforce</details>
+        <feature>unomi-kar</feature>
         <configfile finalname="/etc/org.apache.unomi.sfdc.cfg">mvn:org.apache.unomi/unomi-salesforce-connector-services/${project.version}/cfg/sfdccfg</configfile>
         <bundle start-level="85">mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore-osgi.version}</bundle>
         <bundle start-level="85">mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient-osgi.version}</bundle>
diff --git a/extensions/unomi-mailchimp/karaf-kar/src/main/feature/feature.xml b/extensions/unomi-mailchimp/karaf-kar/src/main/feature/feature.xml
index 5faa7bc..6c043b2 100644
--- a/extensions/unomi-mailchimp/karaf-kar/src/main/feature/feature.xml
+++ b/extensions/unomi-mailchimp/karaf-kar/src/main/feature/feature.xml
@@ -19,6 +19,7 @@
     <feature name="unomi-mailchimp-connector-karaf-kar" version="${project.version}"
              description="Apache Unomi :: Extensions :: MailChimp Connector :: Apache Karaf Feature">
         <details>Connect Apache Unomi to MailChimp API</details>
+        <feature>unomi-kar</feature>
         <configfile finalname="/etc/org.apache.unomi.mailchimpconnector.cfg">mvn:org.apache.unomi/unomi-mailchimp-connector-services/${project.version}/cfg/mailchimpconnectorcfg</configfile>
         <bundle start-level="90">mvn:org.apache.unomi/unomi-mailchimp-connector-services/${project.version}</bundle>
         <bundle start-level="90">mvn:org.apache.unomi/unomi-mailchimp-connector-rest/${project.version}</bundle>
diff --git a/extensions/weather-update/karaf-kar/src/main/feature/feature.xml b/extensions/weather-update/karaf-kar/src/main/feature/feature.xml
index 34b46bb..f1db52b 100644
--- a/extensions/weather-update/karaf-kar/src/main/feature/feature.xml
+++ b/extensions/weather-update/karaf-kar/src/main/feature/feature.xml
@@ -20,6 +20,7 @@
              description="Apache Unomi :: Extensions :: Weather update :: Apache Karaf Feature">
         <details>Apache Karaf feature for the Apache Unomi Context Server extension that integrates Weather
             update</details>
+        <feature>unomi-kar</feature>
         <configfile finalname="/etc/org.apache.unomi.weatherUpdate.cfg">mvn:org.apache.unomi/unomi-weather-update-core/${project.version}/cfg/weatherupdatecfg</configfile>
         <bundle start-level="85">mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore-osgi.version}</bundle>
         <bundle start-level="85">mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient-osgi.version}</bundle>
diff --git a/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml b/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml
index 1efbb26..85c6446 100644
--- a/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml
+++ b/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml
@@ -19,6 +19,7 @@
     <feature name="unomi-web-tracker-karaf-kar" version="${project.version}"
              description="Apache Unomi :: Extensions :: Web Tracker :: Apache Karaf Feature">
         <details>Apache Karaf feature for the Apache Unomi Context Server extension that provide the web tracker.</details>
+        <feature>unomi-kar</feature>
         <bundle start-level="85">mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore-osgi.version}</bundle>
         <bundle start-level="85">mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient-osgi.version}</bundle>
         <bundle start-level="85">mvn:org.apache.unomi/unomi-web-tracker-wab/${project.version}</bundle>
diff --git a/kar/src/main/feature/feature.xml b/kar/src/main/feature/feature.xml
index 6f73669..007cb1a 100644
--- a/kar/src/main/feature/feature.xml
+++ b/kar/src/main/feature/feature.xml
@@ -24,15 +24,16 @@
 
     <feature description="unomi-kar" version="${project.version}" name="unomi-kar"
              start-level="70">
-        <feature>war</feature>
+        <feature prerequisite="true">wrap</feature>
+        <feature prerequisite="true">aries-blueprint</feature>
+        <feature prerequisite="true">war</feature>
         <feature>cxf-jaxrs</feature>
         <feature>cxf-features-metrics</feature>
+        <feature>cxf-rs-security-cors</feature>
         <feature>cxf-rs-description-openapi-v3</feature>
         <feature>cellar</feature>
         <feature>eventadmin</feature>
         <feature>shell-compat</feature>
-        <feature prerequisite="true">wrap</feature>
-        <feature dependency="true">aries-blueprint</feature>
         <feature version="${hibernate.validator.version}">hibernate-validator</feature>
         <configfile finalname="/etc/org.apache.unomi.web.cfg">mvn:org.apache.unomi/unomi-wab/${project.version}/cfg/unomicfg</configfile>
         <configfile finalname="/etc/org.apache.unomi.persistence.elasticsearch.cfg">mvn:org.apache.unomi/unomi-persistence-elasticsearch-core/${project.version}/cfg/elasticsearchcfg</configfile>
@@ -50,11 +51,12 @@
         <bundle start-level="75">mvn:com.google.guava/guava/16.0.1</bundle>
         <bundle start-level="75">mvn:com.github.fge/jackson-coreutils/1.8</bundle>
         <bundle start-level="75">mvn:com.github.fge/json-patch/1.9</bundle>
-        <bundle start-level="75">mvn:com.fasterxml.jackson.core/jackson-databind/${version.jackson.core}</bundle>
+        <bundle start-level="75">mvn:com.fasterxml.jackson.core/jackson-databind/${version.jackson.databind}</bundle>
         <bundle start-level="75">mvn:com.fasterxml.jackson.core/jackson-annotations/${version.jackson.core}</bundle>
         <bundle start-level="75">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${version.jackson.core}</bundle>
         <bundle start-level="75">mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${version.jackson.jaxb}</bundle>
         <bundle start-level="75">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${version.jackson.core}</bundle>
+        <bundle start-level="75">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${version.jackson.core}</bundle>
         <bundle start-level="75">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jakarta-regexp/1.4_1</bundle>
         <bundle start-level="75">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.joda-time/2.3_1</bundle>
         <bundle start-level="75">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0</bundle>
diff --git a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/CustomObjectMapper.java b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/CustomObjectMapper.java
index fbbcc14..3e33f13 100644
--- a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/CustomObjectMapper.java
+++ b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/CustomObjectMapper.java
@@ -56,7 +56,7 @@ public class CustomObjectMapper extends ObjectMapper {
                 new SimpleModule("PropertyTypedObjectDeserializerModule",
                         new Version(1, 0, 0, null, "org.apache.unomi.rest", "deserializer"));
 
-        PropertyTypedObjectDeserializer propertyTypedObjectDeserializer = new PropertyTypedObjectDeserializer();
+        PropertyTypedObjectDeserializer propertyTypedObjectDeserializer = new PropertyTypedObjectDeserializer(null, null);
         propertyTypedObjectDeserializer.registerMapping("type=.*Condition", Condition.class);
         deserializerModule.addDeserializer(Object.class, propertyTypedObjectDeserializer);
 
diff --git a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyTypedObjectDeserializer.java b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyTypedObjectDeserializer.java
index 1057654..23a556e 100644
--- a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyTypedObjectDeserializer.java
+++ b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyTypedObjectDeserializer.java
@@ -22,6 +22,7 @@ import com.fasterxml.jackson.core.JsonTokenId;
 import com.fasterxml.jackson.core.ObjectCodec;
 import com.fasterxml.jackson.core.TreeNode;
 import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer;
 import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -37,7 +38,7 @@ import java.util.*;
  *            SimpleModule deserializerModule =
  *                  new SimpleModule("PropertyTypedObjectDeserializerModule",
  *                      new Version(1, 0, 0, null, "org.apache.unomi.rest", "deserializer"));
- *            PropertyTypedObjectDeserializer propertyTypedObjectDeserializer = new PropertyTypedObjectDeserializer();
+ *            PropertyTypedObjectDeserializer propertyTypedObjectDeserializer = new PropertyTypedObjectDeserializer(null, null);
  *            propertyTypedObjectDeserializer.registerMapping("type=.*Condition", Condition.class);
  *            deserializerModule.addDeserializer(Object.class, propertyTypedObjectDeserializer);
  *            objectMapper.registerModule(deserializerModule);
@@ -58,6 +59,10 @@ public class PropertyTypedObjectDeserializer extends UntypedObjectDeserializer {
 
     private Map<String,Set<String>> fieldValuesToMatch = new LinkedHashMap<String,Set<String>>();
 
+    public PropertyTypedObjectDeserializer(JavaType listType, JavaType mapType) {
+        super(listType, mapType);
+    }
+
     public void registerMapping(String matchExpression,
                                 Class<? extends Object> mappedClass) {
         registry.put(matchExpression, mappedClass);
@@ -74,7 +79,7 @@ public class PropertyTypedObjectDeserializer extends UntypedObjectDeserializer {
     public Object deserialize(
             JsonParser jp, DeserializationContext ctxt)
             throws IOException {
-        if (jp.getCurrentTokenId() != JsonTokenId.ID_START_OBJECT) {
+        if (jp.currentTokenId() != JsonTokenId.ID_START_OBJECT) {
             return super.deserialize(jp, ctxt);
         }
         ObjectCodec codec = jp.getCodec();
diff --git a/plugins/baseplugin/pom.xml b/plugins/baseplugin/pom.xml
index aa46867..1500878 100644
--- a/plugins/baseplugin/pom.xml
+++ b/plugins/baseplugin/pom.xml
@@ -37,9 +37,9 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>javax.xml.bind</groupId>
-            <artifactId>jaxb-api</artifactId>
-            <version>2.2.11</version>
+            <groupId>jakarta.xml.bind</groupId>
+            <artifactId>jakarta.xml.bind-api</artifactId>
+            <version>2.3.2</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/plugins/kafka-injector/pom.xml b/plugins/kafka-injector/pom.xml
index a405f9e..ef7b38e 100644
--- a/plugins/kafka-injector/pom.xml
+++ b/plugins/kafka-injector/pom.xml
@@ -47,12 +47,12 @@
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-core</artifactId>
-            <version>2.9.8</version>
+            <version>${version.jackson.core}</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
-            <version>2.9.8</version>
+            <version>${version.jackson.databind}</version>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
diff --git a/pom.xml b/pom.xml
index 127d3c6..919a826 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,11 +64,11 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <cxf.version>3.3.4</cxf.version>
-        <version.jackson.core>2.9.10</version.jackson.core>
-        <version.jackson.databind>2.9.10.8</version.jackson.databind>
-        <version.jackson.jaxb>2.9.10</version.jackson.jaxb>
-        <version.karaf>4.2.8</version.karaf>
+        <cxf.version>3.3.11</cxf.version>
+        <version.jackson.core>2.10.5</version.jackson.core>
+        <version.jackson.databind>2.10.5.1</version.jackson.databind>
+        <version.jackson.jaxb>2.10.5</version.jackson.jaxb>
+        <version.karaf>4.2.11</version.karaf>
         <version.karaf.cellar>4.2.1</version.karaf.cellar>
         <version.pax.exam>4.13.1</version.pax.exam>
         <elasticsearch.version>7.4.2</elasticsearch.version>
@@ -737,7 +737,7 @@
             <dependency>
                 <groupId>com.fasterxml.jackson.core</groupId>
                 <artifactId>jackson-databind</artifactId>
-                <version>${version.jackson.core}</version>
+                <version>${version.jackson.databind}</version>
                 <scope>provided</scope>
             </dependency>
             <dependency>
diff --git a/rest/pom.xml b/rest/pom.xml
index 78381f6..81cf486 100644
--- a/rest/pom.xml
+++ b/rest/pom.xml
@@ -156,10 +156,12 @@
         <dependency>
             <groupId>javax.validation</groupId>
             <artifactId>validation-api</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-validator</artifactId>
+            <scope>provided</scope>
         </dependency>
     </dependencies>
 </project>
diff --git a/wab/pom.xml b/wab/pom.xml
index eef140a..f7e0f26 100644
--- a/wab/pom.xml
+++ b/wab/pom.xml
@@ -66,6 +66,7 @@
             <groupId>com.fasterxml.jackson.dataformat</groupId>
             <artifactId>jackson-dataformat-yaml</artifactId>
             <version>${version.jackson.core}</version>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.yaml</groupId>