diff --git a/.editorconfig b/.editorconfig index d552419d..ebd2f3cc 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,5 +11,5 @@ insert_final_newline = true indent_style = space indent_size = 4 -[*.{yml,yaml,sh,json}] +[*.{yml,yaml,sh,json,md}] indent_size = 2 diff --git a/json-utils/pom.xml b/json-utils/pom.xml new file mode 100644 index 00000000..c0e7e0fd --- /dev/null +++ b/json-utils/pom.xml @@ -0,0 +1,76 @@ + + + 4.0.0 + + + de.sonallux.spotify + spotify-web-api-parent + 2021.10.17 + ../pom.xml + + + json-utils + 2021.10.17 + jar + + json-utils + Utility functions for working with JSON and YAML + https://github.com/sonallux/spotify-web-api + + + 2.6.0 + + de.sonallux.spotify.json + + + + + com.fasterxml.jackson.core + jackson-databind + + + com.jayway.jsonpath + json-path + ${jsonpath.version} + + + org.projectlombok + lombok + ${lombok.version} + provided + + + org.junit.jupiter + junit-jupiter + ${junit.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito-junit-jupiter.version} + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + + diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/AddOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/AddOperation.java similarity index 95% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/AddOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/AddOperation.java index ba3c11e1..4060cbe7 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/AddOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/AddOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/DeleteOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/DeleteOperation.java similarity index 94% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/DeleteOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/DeleteOperation.java index 3fec604d..f258dffe 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/DeleteOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/DeleteOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/Patch.java b/json-utils/src/main/java/de/sonallux/json/patching/Patch.java similarity index 94% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/Patch.java rename to json-utils/src/main/java/de/sonallux/json/patching/Patch.java index a7848d88..0afcde36 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/Patch.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/Patch.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PatchException.java b/json-utils/src/main/java/de/sonallux/json/patching/PatchException.java similarity index 83% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PatchException.java rename to json-utils/src/main/java/de/sonallux/json/patching/PatchException.java index 601e52ba..60c4e20e 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PatchException.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/PatchException.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; public class PatchException extends Exception { public PatchException(String message) { diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PatchOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/PatchOperation.java similarity index 95% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PatchOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/PatchOperation.java index 1be4cf7e..74cc7389 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PatchOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/PatchOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.JsonNode; @@ -22,7 +22,7 @@ @JsonSubTypes.Type(name = "test", value = TestOperation.class) }) @AllArgsConstructor(access = AccessLevel.PROTECTED) -abstract class PatchOperation { +public abstract class PatchOperation { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PutOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/PutOperation.java similarity index 95% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PutOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/PutOperation.java index 47f1056b..ec7689c6 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/PutOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/PutOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/RenameOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/RenameOperation.java similarity index 95% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/RenameOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/RenameOperation.java index e189f0a9..a4983161 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/RenameOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/RenameOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/SetOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/SetOperation.java similarity index 95% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/SetOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/SetOperation.java index dd22cb72..6b7a9ebd 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/SetOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/SetOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/TestOperation.java b/json-utils/src/main/java/de/sonallux/json/patching/TestOperation.java similarity index 96% rename from spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/TestOperation.java rename to json-utils/src/main/java/de/sonallux/json/patching/TestOperation.java index 2784f6f5..02c33227 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/patching/TestOperation.java +++ b/json-utils/src/main/java/de/sonallux/json/patching/TestOperation.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/json-utils/src/moditect/module-info.java b/json-utils/src/moditect/module-info.java new file mode 100644 index 00000000..51fbc944 --- /dev/null +++ b/json-utils/src/moditect/module-info.java @@ -0,0 +1,8 @@ +module de.sonallux.json { + requires com.fasterxml.jackson.core; + requires com.fasterxml.jackson.databind; + requires com.jayway.jsonpath; + requires static lombok; + + exports de.sonallux.json; +} diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/AddOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/AddOperationTest.java similarity index 95% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/AddOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/AddOperationTest.java index b4265042..ebf497c4 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/AddOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/AddOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.BeforeAll; @@ -38,7 +38,7 @@ static Stream testOperationThrowsError() { @ParameterizedTest @MethodSource - void testOperationThrowsError(OperationTestData.FailureTestCase testCase) throws Exception { + void testOperationThrowsError(OperationTestData.FailureTestCase testCase) { assertPatchThrowsError(testCase); } diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/DeleteOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/DeleteOperationTest.java similarity index 97% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/DeleteOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/DeleteOperationTest.java index d0ed5775..8f75285c 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/DeleteOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/DeleteOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.BeforeAll; diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/OperationTestData.java b/json-utils/src/test/java/de/sonallux/json/patching/OperationTestData.java similarity index 92% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/OperationTestData.java rename to json-utils/src/test/java/de/sonallux/json/patching/OperationTestData.java index b9d501d5..2b4f8181 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/OperationTestData.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/OperationTestData.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.databind.JsonNode; diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PatchOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/PatchOperationTest.java similarity index 96% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PatchOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/PatchOperationTest.java index 0fc80e14..a034ba85 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PatchOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/PatchOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PatchTest.java b/json-utils/src/test/java/de/sonallux/json/patching/PatchTest.java similarity index 99% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PatchTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/PatchTest.java index d9efc447..49a10e2d 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PatchTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/PatchTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PutOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/PutOperationTest.java similarity index 95% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PutOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/PutOperationTest.java index 512e6b94..533d0cd0 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/PutOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/PutOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.BeforeAll; @@ -38,7 +38,7 @@ static Stream testOperationThrowsError() { @ParameterizedTest @MethodSource - void testOperationThrowsError(OperationTestData.FailureTestCase testCase) throws Exception { + void testOperationThrowsError(OperationTestData.FailureTestCase testCase) { assertPatchThrowsError(testCase); } diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/RenameOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/RenameOperationTest.java similarity index 95% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/RenameOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/RenameOperationTest.java index 7dd2b91f..9adb965f 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/RenameOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/RenameOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.BeforeAll; @@ -37,7 +37,7 @@ static Stream testOperationThrowsError() { @ParameterizedTest @MethodSource - void testOperationThrowsError(OperationTestData.FailureTestCase testCase) throws Exception { + void testOperationThrowsError(OperationTestData.FailureTestCase testCase) { assertPatchThrowsError(testCase); } diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/SetOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/SetOperationTest.java similarity index 95% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/SetOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/SetOperationTest.java index 53d8c2ff..2de0a9ac 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/SetOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/SetOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.BeforeAll; @@ -38,7 +38,7 @@ static Stream testOperationThrowsError() { @ParameterizedTest @MethodSource - void testOperationThrowsError(OperationTestData.FailureTestCase testCase) throws Exception { + void testOperationThrowsError(OperationTestData.FailureTestCase testCase) { assertPatchThrowsError(testCase); } diff --git a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/TestOperationTest.java b/json-utils/src/test/java/de/sonallux/json/patching/TestOperationTest.java similarity index 95% rename from spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/TestOperationTest.java rename to json-utils/src/test/java/de/sonallux/json/patching/TestOperationTest.java index 263f3364..55f2df76 100644 --- a/spotify-web-api-parser/src/test/java/de/sonallux/spotify/parser/patching/TestOperationTest.java +++ b/json-utils/src/test/java/de/sonallux/json/patching/TestOperationTest.java @@ -1,4 +1,4 @@ -package de.sonallux.spotify.parser.patching; +package de.sonallux.json.patching; import com.fasterxml.jackson.core.type.TypeReference; import org.junit.jupiter.api.BeforeAll; @@ -38,7 +38,7 @@ static Stream testOperationThrowsError() { @ParameterizedTest @MethodSource - void testOperationThrowsError(OperationTestData.FailureTestCase testCase) throws Exception { + void testOperationThrowsError(OperationTestData.FailureTestCase testCase) { assertPatchThrowsError(testCase); } diff --git a/spotify-web-api-parser/src/test/resources/patching/add.json b/json-utils/src/test/resources/patching/add.json similarity index 100% rename from spotify-web-api-parser/src/test/resources/patching/add.json rename to json-utils/src/test/resources/patching/add.json diff --git a/spotify-web-api-parser/src/test/resources/patching/delete.json b/json-utils/src/test/resources/patching/delete.json similarity index 100% rename from spotify-web-api-parser/src/test/resources/patching/delete.json rename to json-utils/src/test/resources/patching/delete.json diff --git a/spotify-web-api-parser/src/test/resources/patching/put.json b/json-utils/src/test/resources/patching/put.json similarity index 100% rename from spotify-web-api-parser/src/test/resources/patching/put.json rename to json-utils/src/test/resources/patching/put.json diff --git a/spotify-web-api-parser/src/test/resources/patching/rename.json b/json-utils/src/test/resources/patching/rename.json similarity index 100% rename from spotify-web-api-parser/src/test/resources/patching/rename.json rename to json-utils/src/test/resources/patching/rename.json diff --git a/spotify-web-api-parser/src/test/resources/patching/set.json b/json-utils/src/test/resources/patching/set.json similarity index 100% rename from spotify-web-api-parser/src/test/resources/patching/set.json rename to json-utils/src/test/resources/patching/set.json diff --git a/spotify-web-api-parser/src/test/resources/patching/test.json b/json-utils/src/test/resources/patching/test.json similarity index 100% rename from spotify-web-api-parser/src/test/resources/patching/test.json rename to json-utils/src/test/resources/patching/test.json diff --git a/pom.xml b/pom.xml index 76b7f1ec..be9992ff 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,7 @@ spotify-web-api-core spotify-web-api-generator-open-api spotify-web-api-parser + json-utils diff --git a/spotify-web-api-parser/pom.xml b/spotify-web-api-parser/pom.xml index 6ad0ed7d..1303a99a 100644 --- a/spotify-web-api-parser/pom.xml +++ b/spotify-web-api-parser/pom.xml @@ -21,7 +21,6 @@ 1.14.3 - 2.6.0 de.sonallux.spotify.parser @@ -32,6 +31,11 @@ spotify-web-api-core 2021.10.17 + + de.sonallux.spotify + json-utils + 2021.10.17 + org.jsoup jsoup @@ -41,15 +45,6 @@ com.fasterxml.jackson.core jackson-databind - - com.fasterxml.jackson.dataformat - jackson-dataformat-yaml - - - com.jayway.jsonpath - json-path - ${jsonpath.version} - org.slf4j slf4j-api diff --git a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/ApiPatches.java b/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/ApiPatches.java index d2e17d30..81f42ed8 100644 --- a/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/ApiPatches.java +++ b/spotify-web-api-parser/src/main/java/de/sonallux/spotify/parser/ApiPatches.java @@ -5,8 +5,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import de.sonallux.spotify.core.Yaml; import de.sonallux.spotify.core.model.SpotifyWebApi; -import de.sonallux.spotify.parser.patching.Patch; -import de.sonallux.spotify.parser.patching.PatchException; +import de.sonallux.json.patching.Patch; +import de.sonallux.json.patching.PatchException; import lombok.extern.slf4j.Slf4j; import java.io.IOException; diff --git a/spotify-web-api-parser/src/moditect/module-info.java b/spotify-web-api-parser/src/moditect/module-info.java index c7545ec2..9c08a630 100644 --- a/spotify-web-api-parser/src/moditect/module-info.java +++ b/spotify-web-api-parser/src/moditect/module-info.java @@ -8,6 +8,7 @@ requires org.slf4j; requires org.jsoup; requires de.sonallux.spotify.core; + requires de.sonallux.json; requires static lombok; exports de.sonallux.spotify.parser;