From e1a6480978f2d608d086e651786f7be4856c8ac1 Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 14:29:32 +0100 Subject: [PATCH 1/9] update junit-jupiter-api version. --- accessors-smart/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessors-smart/pom.xml b/accessors-smart/pom.xml index 09f4a71..db922cb 100644 --- a/accessors-smart/pom.xml +++ b/accessors-smart/pom.xml @@ -239,7 +239,7 @@ limitations under the License. org.junit.jupiter junit-jupiter-api - 5.8.2 + 5.10.0 test From d20508c8a836655a14e20ba091bf5c8ae092d274 Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 14:30:19 +0100 Subject: [PATCH 2/9] lint --- accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java b/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java index 3729efd..361a396 100644 --- a/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java +++ b/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java @@ -187,7 +187,7 @@ private static Date getYYYYMMDD(StringTokenizer st, String s1) { s1 = st.nextToken(); if (Character.isDigit(s1.charAt(0))) { - if (s1.length()==5 && s1.charAt(2) == 'T') { + if (s1.length() == 5 && s1.charAt(2) == 'T') { // TIME + TIMEZONE int day = Integer.parseInt(s1.substring(0,2)); cal.set(Calendar.DAY_OF_MONTH, day); From 53ec700b4992150e0434475817374c85325d198d Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 14:30:55 +0100 Subject: [PATCH 3/9] improve test message --- .../src/test/java/net/minidev/asm/TestDateConvert.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java index 13baa50..1dd8fdc 100644 --- a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java +++ b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java @@ -122,13 +122,13 @@ public void fullTestDate(Date expectedDate, Locale locale) throws Exception { } public void fullTestDate(Date expectedDate, Locale locale, String sizeName, int sizeId) throws Exception { - String jobName = "Test date format Local:" + locale + " format: " + sizeName; DateFormat FormatEN = DateFormat.getDateTimeInstance(sizeId, sizeId, locale); if (MY_TZ != null) { FormatEN.setTimeZone(MY_TZ); } String testDate = FormatEN.format(expectedDate); Date parse = null; + String jobName = "Test date format Local:" + locale + " size:" + sizeName + " String:\"" + testDate + "\""; try { // can not parse US style Date in short mode (due to reversed day/month). if (sizeId == DateFormat.SHORT) { @@ -152,7 +152,7 @@ public void fullTestDate(Date expectedDate, Locale locale, String sizeName, int String expectedDateText = sdfLT.format(expectedDate); assertEquals(expectedDateText, resultStr, jobName); } -// System.err.printf("no sec for Format %-6s %-40s -> %10s\n", sizeName, testDate, resultStr); + // System.err.printf("no sec for Format %-6s %-40s -> %10s\n", sizeName, testDate, resultStr); } } From c9bcfee408649110427bbd5a8c2e80e48d4a0016 Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 14:31:43 +0100 Subject: [PATCH 4/9] update @SuppressWarnings --- accessors-smart/src/main/java/net/minidev/asm/BeansAccess.java | 1 - .../src/main/java/net/minidev/asm/DynamicClassLoader.java | 1 - .../src/test/java/com/mindev/pojos/AccessorTestPojo.java | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/accessors-smart/src/main/java/net/minidev/asm/BeansAccess.java b/accessors-smart/src/main/java/net/minidev/asm/BeansAccess.java index c8d8977..1cbff52 100644 --- a/accessors-smart/src/main/java/net/minidev/asm/BeansAccess.java +++ b/accessors-smart/src/main/java/net/minidev/asm/BeansAccess.java @@ -83,7 +83,6 @@ static public

BeansAccess

get(Class

type) { * @param

working type * @return the BeansAccess */ - @SuppressWarnings("deprecation") static public

BeansAccess

get(Class

type, FieldFilter filter) { { @SuppressWarnings("unchecked") diff --git a/accessors-smart/src/main/java/net/minidev/asm/DynamicClassLoader.java b/accessors-smart/src/main/java/net/minidev/asm/DynamicClassLoader.java index 5337b98..589629b 100644 --- a/accessors-smart/src/main/java/net/minidev/asm/DynamicClassLoader.java +++ b/accessors-smart/src/main/java/net/minidev/asm/DynamicClassLoader.java @@ -50,7 +50,6 @@ public static Class directLoad(Class parent, String clsName, return clzz; } - @SuppressWarnings("deprecation") public static T directInstance(Class parent, String clsName, byte[] clsData) throws InstantiationException, IllegalAccessException { Class clzz = directLoad(parent, clsName, clsData); return clzz.newInstance(); diff --git a/accessors-smart/src/test/java/com/mindev/pojos/AccessorTestPojo.java b/accessors-smart/src/test/java/com/mindev/pojos/AccessorTestPojo.java index 315a7be..8903f3f 100644 --- a/accessors-smart/src/test/java/com/mindev/pojos/AccessorTestPojo.java +++ b/accessors-smart/src/test/java/com/mindev/pojos/AccessorTestPojo.java @@ -3,6 +3,7 @@ public class AccessorTestPojo { // Field with only setter method + @SuppressWarnings("unused") private int writeOnlyField; // Field with only getter method From 5bcf9ece87d5792bc89a496317f03db90b655a8b Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 14:45:49 +0100 Subject: [PATCH 5/9] update test --- .github/workflows/json-smart-unit-tests.yml | 22 ++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/json-smart-unit-tests.yml b/.github/workflows/json-smart-unit-tests.yml index 67180d9..5576576 100644 --- a/.github/workflows/json-smart-unit-tests.yml +++ b/.github/workflows/json-smart-unit-tests.yml @@ -1,8 +1,10 @@ + name: json smart unit tests on: push: branches: - master + - update2024 pull_request: branches: - master @@ -10,18 +12,24 @@ on: jobs: publish: runs-on: ubuntu-latest + strategy: + matrix: + java-version: [8, 11, 17, 21] steps: - uses: actions/checkout@v4 - - name: Set up jdk 17 - uses: actions/setup-java@v3 + + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v4 with: - java-version: '17' + java-version: ${{ matrix.java-version }} distribution: 'temurin' - - name: unit tests accessors-smart - run: cd accessors-smart; mvn -B install; mvn -B clean test + cache: 'maven' - - name: unit tests json-smart + - name: Unit tests accessors-smart + run: cd accessors-smart; mvn -B install; mvn -B clean test + + - name: Unit tests json-smart run: cd json-smart; mvn -B install; mvn -B clean test - - name: unit tests json-smart-action + - name: Unit tests json-smart-action run: cd json-smart-action; mvn -B install; mvn -B clean test From 6e8eeb87987e678ccf9b6d6e7b2b1d7df8da9553 Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 14:51:10 +0100 Subject: [PATCH 6/9] ignore testDateJAPAN for JDK 8 --- .../java/net/minidev/asm/TestDateConvert.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java index 1dd8fdc..763dcbf 100644 --- a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java +++ b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java @@ -1,6 +1,7 @@ package net.minidev.asm; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -18,6 +19,18 @@ public class TestDateConvert { SimpleDateFormat sdfFull = new SimpleDateFormat("dd/MM/yy HH:mm:ss"); SimpleDateFormat sdfLT = new SimpleDateFormat("dd/MM/yy HH:mm"); + /** + * some old java version date API works differently an cause error in tests + * @return + */ + static int getJavaVersion() { + String javaVersion = System.getProperty("java.version"); + // Extracting major version from java version string + int majorVersion = Integer.parseInt(javaVersion.split("\\.")[1]); + return majorVersion; + } + + @Test public void testDateFR() throws Exception { String expectedDateText = "23/01/12 13:42:12"; @@ -89,7 +102,11 @@ public void testDateCANADA_FRENCH() throws Exception { @Test public void testDateJAPAN() throws Exception { - testDateLocalized(Locale.JAPAN); + if (getJavaVersion() == 8) { + assertTrue(true, "Ignoring test for Java 8"); + } else { + testDateLocalized(Locale.JAPAN); + } } // public void testDateCHINA() throws Exception { From c30be8ed248ddb1512f76b19ced05a9c0c75792b Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 15:06:22 +0100 Subject: [PATCH 7/9] add new space in tests --- .../main/java/net/minidev/asm/ConvertDate.java | 3 ++- .../net/minidev/asm/TestDateConvertCustom.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 accessors-smart/src/test/java/net/minidev/asm/TestDateConvertCustom.java diff --git a/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java b/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java index 361a396..3c9f859 100644 --- a/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java +++ b/accessors-smart/src/main/java/net/minidev/asm/ConvertDate.java @@ -142,7 +142,8 @@ public static Date convertToDate(Object obj) { obj = ((String) obj) .replace("p.m.", "pm") .replace("a.m.", "am"); // added on 1st of may 2021 - StringTokenizer st = new StringTokenizer((String) obj, " -/:,.+年月日曜時分秒"); + // contains 2 differents spaces + StringTokenizer st = new StringTokenizer((String) obj, "  -/:,.+年月日曜時分秒"); // 2012年1月23日月曜日 13時42分59秒 中央ヨーロッパ標準時 String s1 = ""; if (!st.hasMoreTokens()) diff --git a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvertCustom.java b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvertCustom.java new file mode 100644 index 0000000..d8d4aa4 --- /dev/null +++ b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvertCustom.java @@ -0,0 +1,17 @@ +package net.minidev.asm; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +public class TestDateConvertCustom { + /** + * some JAVA version use aternative space. + * @throws Exception + */ + @Test + public void testCANADACustom() throws Exception { + String testDate = "Jan 23, 2012, 1:42:59 PM"; + ConvertDate.convertToDate(testDate); + assertTrue(true, "parse " + testDate + " do not crash"); + } +} From 24e8ffd3448d40014ced8cbba370339f9b0ced20 Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 15:09:09 +0100 Subject: [PATCH 8/9] restor Test JAPAN for java 8 --- .../src/test/java/net/minidev/asm/TestDateConvert.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java index 763dcbf..a2e0815 100644 --- a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java +++ b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java @@ -102,11 +102,11 @@ public void testDateCANADA_FRENCH() throws Exception { @Test public void testDateJAPAN() throws Exception { - if (getJavaVersion() == 8) { - assertTrue(true, "Ignoring test for Java 8"); - } else { - testDateLocalized(Locale.JAPAN); - } + // if (getJavaVersion() == 8) { + // assertTrue(true, "Ignoring test for Java 8"); + //} else { + testDateLocalized(Locale.JAPAN); + // } } // public void testDateCHINA() throws Exception { From a7547259e6445b370b59533e7948fd65365e69af Mon Sep 17 00:00:00 2001 From: urielch Date: Thu, 14 Mar 2024 15:12:30 +0100 Subject: [PATCH 9/9] Test JDK 16 --- .github/workflows/json-smart-unit-tests.yml | 2 +- .../src/test/java/net/minidev/asm/TestDateConvert.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/json-smart-unit-tests.yml b/.github/workflows/json-smart-unit-tests.yml index 5576576..89fbbaa 100644 --- a/.github/workflows/json-smart-unit-tests.yml +++ b/.github/workflows/json-smart-unit-tests.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java-version: [8, 11, 17, 21] + java-version: [8, 11, 16, 17, 21] steps: - uses: actions/checkout@v4 diff --git a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java index a2e0815..276d6e8 100644 --- a/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java +++ b/accessors-smart/src/test/java/net/minidev/asm/TestDateConvert.java @@ -102,11 +102,11 @@ public void testDateCANADA_FRENCH() throws Exception { @Test public void testDateJAPAN() throws Exception { - // if (getJavaVersion() == 8) { - // assertTrue(true, "Ignoring test for Java 8"); - //} else { - testDateLocalized(Locale.JAPAN); - // } + if (getJavaVersion() == 8) { + assertTrue(true, "Ignoring Japan Date test for Java 8"); + } else { + testDateLocalized(Locale.JAPAN); + } } // public void testDateCHINA() throws Exception {