From fa18172a96f94d949cd954ebfa12046c0df4010c Mon Sep 17 00:00:00 2001 From: wnm3 Date: Thu, 25 Jul 2024 15:14:56 -0400 Subject: [PATCH] IBM/JSONata4Java#315 --- README.md | 8 +- pom.xml | 2 +- .../expressions/BasicExpressionsTests.java | 94 +++++++++++++++++++ tester.sh | 2 +- testerui.cmd | 2 +- testerui.sh | 2 +- 6 files changed, 103 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0423276..962fc16 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ The easiest way to use this library is to include it as a dependency in your Mav com.ibm.jsonata4java JSONata4Java - 2.5.0 + 2.5.1 ``` @@ -53,8 +53,8 @@ Note: to build and deploy the jars to Maven Central you need to use a command li `mvn clean install deploy -Prelease` Once you have run the launcher, you can find the jar files in the /target directory. There are two: -* **JSONata4Java-2.5.0-jar-with-dependencies.jar** (thinks includes dependent jar files) -* **JSONata4Java-2.5.0.jar** (only the JSONata4Java code) +* **JSONata4Java-2.5.1-jar-with-dependencies.jar** (thinks includes dependent jar files) +* **JSONata4Java-2.5.1.jar** (only the JSONata4Java code) The com.api.jsonata4java.Tester program enables you to enter an expression and run it against the same JSON as is used at the https://try.jsonata.org site. You can also @@ -66,6 +66,8 @@ against the same JSON as is used at the https://try.jsonata.org site. ### Fixes ### +Issue 313 fixed a problem with duplicates in the spread function + Issue 167 to add Synced suffixed evaluation methods to allow people running in a multi-threaded environment to use evaluateSynced, etc. The non-Synced methods are not thread-safe. diff --git a/pom.xml b/pom.xml index 3ae3438..a18b105 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 4.0.0 com.ibm.jsonata4java JSONata4Java - 2.5.0 + 2.5.1 JSONata4Java Port of jsonata.js to Java to enable rules for JSON content https://github.com/IBM/JSONata4Java diff --git a/src/test/java/com/api/jsonata4java/expressions/BasicExpressionsTests.java b/src/test/java/com/api/jsonata4java/expressions/BasicExpressionsTests.java index 4871127..435d7b3 100644 --- a/src/test/java/com/api/jsonata4java/expressions/BasicExpressionsTests.java +++ b/src/test/java/com/api/jsonata4java/expressions/BasicExpressionsTests.java @@ -1562,6 +1562,100 @@ public void testArraySeqConstructor() throws Exception { } } + @Test + public void testSpreadFunction() throws Exception { + test("$spread($$.array1 ~> $map(function($v1) {\n" + + " $$.array2 ~> $map(function($v2) {\n" + + " $v1 & '#' & $v2\n" + + " })\n" + + " }))", "[\n" + + " \"abcd#pp\",\n" + + " \"abcd#uu\",\n" + + " \"abcd#tt\",\n" + + " \"abcd#uu\",\n" + + " \"abcd#ww\",\n" + + " \"abcd#gg\",\n" + + " \"abcd#qq\",\n" + + " \"abcd#nn\",\n" + + " \"abcd#ff\",\n" + + " \"cdef#pp\",\n" + + " \"cdef#uu\",\n" + + " \"cdef#tt\",\n" + + " \"cdef#uu\",\n" + + " \"cdef#ww\",\n" + + " \"cdef#gg\",\n" + + " \"cdef#qq\",\n" + + " \"cdef#nn\",\n" + + " \"cdef#ff\",\n" + + " \"efgh#pp\",\n" + + " \"efgh#uu\",\n" + + " \"efgh#tt\",\n" + + " \"efgh#uu\",\n" + + " \"efgh#ww\",\n" + + " \"efgh#gg\",\n" + + " \"efgh#qq\",\n" + + " \"efgh#nn\",\n" + + " \"efgh#ff\",\n" + + " \"ghij#pp\",\n" + + " \"ghij#uu\",\n" + + " \"ghij#tt\",\n" + + " \"ghij#uu\",\n" + + " \"ghij#ww\",\n" + + " \"ghij#gg\",\n" + + " \"ghij#qq\",\n" + + " \"ghij#nn\",\n" + + " \"ghij#ff\",\n" + + " \"ijkl#pp\",\n" + + " \"ijkl#uu\",\n" + + " \"ijkl#tt\",\n" + + " \"ijkl#uu\",\n" + + " \"ijkl#ww\",\n" + + " \"ijkl#gg\",\n" + + " \"ijkl#qq\",\n" + + " \"ijkl#nn\",\n" + + " \"ijkl#ff\",\n" + + " \"klmn#pp\",\n" + + " \"klmn#uu\",\n" + + " \"klmn#tt\",\n" + + " \"klmn#uu\",\n" + + " \"klmn#ww\",\n" + + " \"klmn#gg\",\n" + + " \"klmn#qq\",\n" + + " \"klmn#nn\",\n" + + " \"klmn#ff\",\n" + + " \"mnop#pp\",\n" + + " \"mnop#uu\",\n" + + " \"mnop#tt\",\n" + + " \"mnop#uu\",\n" + + " \"mnop#ww\",\n" + + " \"mnop#gg\",\n" + + " \"mnop#qq\",\n" + + " \"mnop#nn\",\n" + + " \"mnop#ff\"\n" + + "]", null, "{\n" + + " \"array1\": [\n" + + " \"abcd\",\n" + + " \"cdef\",\n" + + " \"efgh\",\n" + + " \"ghij\",\n" + + " \"ijkl\",\n" + + " \"klmn\",\n" + + " \"mnop\"\n" + + " ],\n" + + " \"array2\": [\n" + + " \"pp\",\n" + + " \"uu\",\n" + + " \"tt\",\n" + + " \"uu\",\n" + + " \"ww\",\n" + + " \"gg\",\n" + + " \"qq\",\n" + + " \"nn\",\n" + + " \"ff\"\n" + + " ]\n" + + "}"); + } + @Test public void testAppendFunction() throws Exception { diff --git a/tester.sh b/tester.sh index d192ca0..7471fbf 100755 --- a/tester.sh +++ b/tester.sh @@ -1,2 +1,2 @@ #! /bin/bash -java -cp target/JSONata4Java-2.5.0-jar-with-dependencies.jar com.api.jsonata4java.Tester $1 +java -cp target/JSONata4Java-2.5.1-jar-with-dependencies.jar com.api.jsonata4java.Tester $1 diff --git a/testerui.cmd b/testerui.cmd index fe2a45b..f17f4a1 100644 --- a/testerui.cmd +++ b/testerui.cmd @@ -1 +1 @@ -java -cp target/JSONata4Java-2.5.0-jar-with-dependencies.jar com.api.jsonata4java.testerui.TesterUI +java -cp target/JSONata4Java-2.5.1-jar-with-dependencies.jar com.api.jsonata4java.testerui.TesterUI diff --git a/testerui.sh b/testerui.sh index 792d2c7..ca8c506 100755 --- a/testerui.sh +++ b/testerui.sh @@ -1,2 +1,2 @@ #! /bin/bash -java -cp target/JSONata4Java-2.5.0-jar-with-dependencies.jar com.api.jsonata4java.testerui.TesterUI +java -cp target/JSONata4Java-2.5.1-jar-with-dependencies.jar com.api.jsonata4java.testerui.TesterUI