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

dgriffon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/master by this push:
     new 63ab60bb6 UNOMI-710 : bump Yauaa to 7.8.0 (#539)
63ab60bb6 is described below

commit 63ab60bb64201e88be5878d63f9899eb73b1857f
Author: David Griffon <dgrif...@jahia.com>
AuthorDate: Tue Nov 15 22:24:47 2022 +0100

    UNOMI-710 : bump Yauaa to 7.8.0 (#539)
    
    * UNOMI-710 : bump Yauaa to 7.8.0
    
    * UNOMI-710 : add specific cache for jdk8
    
    * UNOMI-710 : use "java.version" for version check instead of 
"java.class.version"
---
 plugins/request/pom.xml                            |  9 +++++++-
 .../useragent/UserAgentDetectorServiceImpl.java    | 24 +++++++++++++++++++---
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/plugins/request/pom.xml b/plugins/request/pom.xml
index 959031489..f6cf6bea1 100644
--- a/plugins/request/pom.xml
+++ b/plugins/request/pom.xml
@@ -31,7 +31,7 @@
     <packaging>bundle</packaging>
 
     <properties>
-        <yauaa.version>5.9</yauaa.version>
+        <yauaa.version>7.8.0</yauaa.version>
         <kryo.version>2.24.0</kryo.version>
         <minlog.version>1.3.1</minlog.version>
         <prefixmap>1.1</prefixmap>
@@ -165,6 +165,13 @@
             <artifactId>javax.annotation-api</artifactId>
             <version>1.3.2</version>
         </dependency>
+
+        <dependency>
+            <groupId>org.ops4j.pax.logging</groupId>
+            <artifactId>pax-logging-api</artifactId>
+            <version>1.11.13</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/plugins/request/src/main/java/org/apache/unomi/plugins/request/useragent/UserAgentDetectorServiceImpl.java
 
b/plugins/request/src/main/java/org/apache/unomi/plugins/request/useragent/UserAgentDetectorServiceImpl.java
index ffff6c904..1097fca63 100644
--- 
a/plugins/request/src/main/java/org/apache/unomi/plugins/request/useragent/UserAgentDetectorServiceImpl.java
+++ 
b/plugins/request/src/main/java/org/apache/unomi/plugins/request/useragent/UserAgentDetectorServiceImpl.java
@@ -28,16 +28,35 @@ public class UserAgentDetectorServiceImpl {
 
     private static final Logger logger = 
LoggerFactory.getLogger(UserAgentDetectorServiceImpl.class.getName());
 
+    private final static int JDK11 = 11;
+    private final static String JDK_VERSION = "java.version";
+
     private UserAgentAnalyzer userAgentAnalyzer;
 
     public void postConstruct() {
         ClassLoader tccl = Thread.currentThread().getContextClassLoader();
         try {
             
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
-            this.userAgentAnalyzer = UserAgentAnalyzer
+            final UserAgentAnalyzer.UserAgentAnalyzerBuilder 
userAgentAnalyzerBuilder = UserAgentAnalyzer
                     .newBuilder()
                     .hideMatcherLoadStats()
-                    .withCache(10000)
+                    .immediateInitialization();
+            // Check JDK Version
+            // Versions prior to 10 are named 1.x
+            String[] versionElements = 
System.getProperty(JDK_VERSION).split("\\.");
+            int discard = Integer.parseInt(versionElements[0]);
+            int currentJDK;
+            if (discard == 1) {
+                currentJDK = Integer.parseInt(versionElements[1]);
+            } else {
+                currentJDK = discard;
+            }
+            if (currentJDK < JDK11) {
+                // Use custom cache for jdk8 compatibility
+                logger.info("Use JDK8 compliant version of the agent analyzer 
caching");
+                userAgentAnalyzerBuilder.useJava8CompatibleCaching();
+            }
+            this.userAgentAnalyzer = userAgentAnalyzerBuilder.withCache(10000)
                     
.withField(nl.basjes.parse.useragent.UserAgent.OPERATING_SYSTEM_CLASS)
                     
.withField(nl.basjes.parse.useragent.UserAgent.OPERATING_SYSTEM_NAME)
                     .withField(nl.basjes.parse.useragent.UserAgent.AGENT_NAME)
@@ -46,7 +65,6 @@ public class UserAgentDetectorServiceImpl {
                     .withField(nl.basjes.parse.useragent.UserAgent.DEVICE_NAME)
                     
.withField(nl.basjes.parse.useragent.UserAgent.DEVICE_BRAND)
                     .build();
-            this.userAgentAnalyzer.immediateInitialization();
             this.userAgentAnalyzer.initializeMatchers();
         } finally {
             Thread.currentThread().setContextClassLoader(tccl);

Reply via email to