diff --git a/json-path-2.1.0-JsonOrg.patch b/json-path-2.1.0-JsonOrg.patch new file mode 100644 index 0000000..f6eed7e --- /dev/null +++ b/json-path-2.1.0-JsonOrg.patch @@ -0,0 +1,399 @@ +diff -Nru JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java +--- JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java 2015-11-22 16:21:23.000000000 +0100 ++++ JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,220 +0,0 @@ +-package com.jayway.jsonpath.spi.json; +- +-import com.google.gson.JsonObject; +-import com.jayway.jsonpath.InvalidJsonException; +-import com.jayway.jsonpath.JsonPathException; +-import org.json.JSONArray; +-import org.json.JSONException; +-import org.json.JSONObject; +-import org.json.JSONTokener; +-import org.slf4j.Logger; +-import org.slf4j.LoggerFactory; +- +-import java.io.InputStream; +-import java.io.InputStreamReader; +-import java.io.UnsupportedEncodingException; +-import java.util.ArrayList; +-import java.util.Collection; +-import java.util.List; +- +-public class JsonOrgJsonProvider extends AbstractJsonProvider { +- +- private static final Logger logger = LoggerFactory.getLogger(GsonJsonProvider.class); +- +- @Override +- public Object parse(String json) throws InvalidJsonException { +- try { +- return new JSONTokener(json).nextValue(); +- } catch (JSONException e) { +- throw new InvalidJsonException(e); +- } +- } +- +- @Override +- public Object parse(InputStream jsonStream, String charset) throws InvalidJsonException { +- +- try { +- return new JSONTokener(new InputStreamReader(jsonStream, charset)).nextValue(); +- } catch (UnsupportedEncodingException e) { +- throw new JsonPathException(e); +- } catch (JSONException e) { +- throw new InvalidJsonException(e); +- } +- } +- +- @Override +- public Object unwrap(Object obj) { +- if(obj == JSONObject.NULL){ +- return null; +- } +- return obj; +- } +- +- @Override +- public String toJson(Object obj) { +- return obj.toString(); +- } +- +- @Override +- public Object createArray() { +- return new JSONArray(); +- } +- +- @Override +- public Object createMap() { +- return new JsonObject(); +- } +- +- @Override +- public boolean isArray(Object obj) { +- return (obj instanceof JSONArray || obj instanceof List); +- } +- +- @Override +- public Object getArrayIndex(Object obj, int idx) { +- try { +- return toJsonArray(obj).get(idx); +- } catch (JSONException e) { +- throw new JsonPathException(e); +- } +- } +- +- @Override +- public void setArrayIndex(Object array, int index, Object newValue) { +- try { +- if (!isArray(array)) { +- throw new UnsupportedOperationException(); +- } else { +- toJsonArray(array).put(index, createJsonElement(newValue)); +- } +- } catch (JSONException e) { +- throw new JsonPathException(e); +- } +- } +- +- @Override +- public Object getMapValue(Object obj, String key) { +- try { +- JSONObject jsonObject = toJsonObject(obj); +- Object o = jsonObject.get(key); +- if (!jsonObject.has(key)) { +- return UNDEFINED; +- } else { +- return unwrap(o); +- } +- } catch (JSONException e) { +- throw new JsonPathException(e); +- } +- } +- +- @Override +- public void setProperty(Object obj, Object key, Object value) { +- try { +- if (isMap(obj)) +- toJsonObject(obj).put(key.toString(), createJsonElement(value)); +- else { +- JSONArray array = toJsonArray(obj); +- int index; +- if (key != null) { +- index = key instanceof Integer ? (Integer) key : Integer.parseInt(key.toString()); +- } else { +- index = array.length(); +- } +- if (index == array.length()) { +- array.put(createJsonElement(value)); +- } else { +- array.put(index, createJsonElement(value)); +- } +- } +- } catch (JSONException e) { +- throw new JsonPathException(e); +- } +- } +- +- @SuppressWarnings("unchecked") +- public void removeProperty(Object obj, Object key) { +- if (isMap(obj)) +- toJsonObject(obj).remove(key.toString()); +- else { +- JSONArray array = toJsonArray(obj); +- int index = key instanceof Integer ? (Integer) key : Integer.parseInt(key.toString()); +- array.remove(index); +- } +- } +- +- @Override +- public boolean isMap(Object obj) { +- return (obj instanceof JSONObject); +- } +- +- @Override +- public Collection getPropertyKeys(Object obj) { +- JSONObject jsonObject = toJsonObject(obj); +- List keys = new ArrayList(); +- try { +- for (int i = 0; i < jsonObject.names().length(); i++) { +- String key = (String) jsonObject.names().get(i); +- keys.add(key); +- +- } +- return keys; +- } catch (JSONException e) { +- throw new JsonPathException(e); +- } +- } +- +- @Override +- public int length(Object obj) { +- if (isArray(obj)) { +- return toJsonArray(obj).length(); +- } else if (isMap(obj)) { +- return toJsonObject(obj).length(); +- } else { +- if (obj instanceof String) { +- return ((String) obj).length(); +- } +- } +- throw new JsonPathException("length operation can not applied to " + obj != null ? obj.getClass().getName() : "null"); +- } +- +- @Override +- public Iterable toIterable(Object obj) { +- try { +- if (isArray(obj)) { +- JSONArray arr = toJsonArray(obj); +- List values = new ArrayList(arr.length()); +- for (int i = 0; i < arr.length(); i++) { +- values.add(unwrap(arr.get(i))); +- } +- return values; +- } else { +- JSONObject jsonObject = toJsonObject(obj); +- List values = new ArrayList(); +- +- for (int i = 0; i < jsonObject.names().length(); i++) { +- String key = (String) jsonObject.names().get(i); +- Object val = jsonObject.get(key); +- values.add(unwrap(val)); +- +- } +- +- return values; +- } +- } catch (JSONException e) { +- throw new JsonPathException(e); +- } +- } +- +- private Object createJsonElement(Object o) { +- return o; +- } +- +- private JSONArray toJsonArray(Object o) { +- return (JSONArray) o; +- } +- +- private JSONObject toJsonObject(Object o) { +- return (JSONObject) o; +- } +- +-} +diff -Nru JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java +--- JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java 2015-11-22 16:21:23.000000000 +0100 ++++ JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,58 +0,0 @@ +-package com.jayway.jsonpath.spi.mapper; +- +-import com.jayway.jsonpath.Configuration; +-import com.jayway.jsonpath.TypeRef; +-import org.json.JSONArray; +-import org.json.JSONObject; +- +-import java.util.ArrayList; +-import java.util.HashMap; +-import java.util.List; +-import java.util.Map; +- +-public class JsonOrgMappingProvider implements MappingProvider { +- @Override +- public T map(Object source, Class targetType, Configuration configuration) { +- if(source == null){ +- return null; +- } +- if(targetType.equals(Object.class) || targetType.equals(List.class) || targetType.equals(Map.class)){ +- return (T) mapToObject(source); +- } +- return (T)source; +- } +- +- @Override +- public T map(Object source, TypeRef targetType, Configuration configuration) { +- throw new UnsupportedOperationException("JsonOrg provider does not support TypeRef! Use a Jackson or Gson based provider"); +- } +- +- +- private Object mapToObject(Object source){ +- if(source instanceof JSONArray){ +- List mapped = new ArrayList(); +- JSONArray array = (JSONArray) source; +- +- for (int i = 0; i < array.length(); i++){ +- mapped.add(mapToObject(array.get(i))); +- } +- +- return mapped; +- } +- else if (source instanceof JSONObject){ +- Map mapped = new HashMap(); +- JSONObject obj = (JSONObject) source; +- +- for (Object o : obj.keySet()) { +- String key = o.toString(); +- mapped.put(key, mapToObject(obj.get(key))); +- } +- return mapped; +- } +- else if (source == JSONObject.NULL){ +- return null; +- } else { +- return source; +- } +- } +-} +diff -Nru JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java +--- JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java 2015-11-22 16:21:23.000000000 +0100 ++++ JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java 2016-06-08 16:42:52.250197491 +0200 +@@ -5,23 +5,15 @@ + import com.jayway.jsonpath.spi.json.GsonJsonProvider; + import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider; + import com.jayway.jsonpath.spi.json.JacksonJsonProvider; +-import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider; + import com.jayway.jsonpath.spi.json.JsonSmartJsonProvider; + import com.jayway.jsonpath.spi.mapper.GsonMappingProvider; + import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; +-import com.jayway.jsonpath.spi.mapper.JsonOrgMappingProvider; + import com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider; + + import java.util.HashMap; + + public class BaseTest { + +- public static final Configuration JSON_ORG_CONFIGURATION = Configuration +- .builder() +- .mappingProvider(new JsonOrgMappingProvider()) +- .jsonProvider(new JsonOrgJsonProvider()) +- .build(); +- + public static final Configuration GSON_CONFIGURATION = Configuration + .builder() + .mappingProvider(new GsonMappingProvider()) +diff -Nru JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/Configurations.java JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/Configurations.java +--- JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/Configurations.java 2015-11-22 16:21:23.000000000 +0100 ++++ JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/Configurations.java 2016-06-08 16:44:52.263228220 +0200 +@@ -3,23 +3,15 @@ + import com.jayway.jsonpath.spi.json.GsonJsonProvider; + import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider; + import com.jayway.jsonpath.spi.json.JacksonJsonProvider; +-import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider; + import com.jayway.jsonpath.spi.json.JsonSmartJsonProvider; + import com.jayway.jsonpath.spi.mapper.GsonMappingProvider; + import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; +-import com.jayway.jsonpath.spi.mapper.JsonOrgMappingProvider; + import com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider; + + import java.util.Arrays; + + public class Configurations { + +- public static final Configuration JSON_ORG_CONFIGURATION = Configuration +- .builder() +- .mappingProvider(new JsonOrgMappingProvider()) +- .jsonProvider(new JsonOrgJsonProvider()) +- .build(); +- + public static final Configuration GSON_CONFIGURATION = Configuration + .builder() + .mappingProvider(new GsonMappingProvider()) +@@ -50,7 +42,6 @@ + ,GSON_CONFIGURATION + ,JACKSON_CONFIGURATION + ,JACKSON_JSON_NODE_CONFIGURATION +- ,JSON_ORG_CONFIGURATION + ); + } + +diff -Nru JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java +--- JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java 2015-11-22 16:21:23.000000000 +0100 ++++ JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,47 +0,0 @@ +-package com.jayway.jsonpath; +- +-import org.json.JSONArray; +-import org.json.JSONObject; +-import org.junit.Test; +- +-import java.util.List; +-import java.util.Map; +- +-import static com.jayway.jsonpath.JsonPath.using; +-import static org.assertj.core.api.Assertions.assertThat; +- +-public class JsonOrgJsonProviderTest extends BaseTest { +- +- +- @Test +- public void an_object_can_be_read() { +- +- JSONObject book = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0]"); +- +- assertThat(book.get("author").toString()).isEqualTo("Nigel Rees"); +- } +- +- @Test +- public void a_property_can_be_read() { +- +- String category = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0].category"); +- +- assertThat(category).isEqualTo("reference"); +- } +- +- @Test +- public void a_filter_can_be_applied() { +- +- JSONArray fictionBooks = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[?(@.category == 'fiction')]"); +- +- assertThat(fictionBooks.length()).isEqualTo(3); +- } +- +- @Test +- public void result_can_be_mapped_to_object() { +- +- List> books = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book", List.class); +- +- assertThat(books.size()).isEqualTo(4); +- } +-} diff --git a/json-path-2.1.0.pom b/json-path-2.1.0.pom new file mode 100644 index 0000000..61f1e8b --- /dev/null +++ b/json-path-2.1.0.pom @@ -0,0 +1,65 @@ + + + 4.0.0 + com.jayway.jsonpath + json-path + 2.1.0 + Json Path + Java port of Stefan Goessner JsonPath. + https://github.com/jayway/JsonPath + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + kalle.stenflo + Kalle Stenflo + kalle.stenflo (a) gmail.com + + + + scm:git:git://github.com/jayway/JsonPath.git + scm:git:git://github.com/jayway/JsonPath.git + scm:git:git://github.com/jayway/JsonPath.git + + + + org.slf4j + slf4j-api + 1.7.13 + compile + + + org.json + json + 20140107 + compile + true + + + com.google.code.gson + gson + 2.3.1 + compile + true + + + com.fasterxml.jackson.core + jackson-databind + 2.6.3 + compile + true + + + net.minidev + json-smart + 2.2 + compile + + + diff --git a/json-path-2.1.0.tar.gz b/json-path-2.1.0.tar.gz new file mode 100644 index 0000000..af4d530 Binary files /dev/null and b/json-path-2.1.0.tar.gz differ diff --git a/json-path-assert-2.1.0.pom b/json-path-assert-2.1.0.pom new file mode 100644 index 0000000..573fd26 --- /dev/null +++ b/json-path-assert-2.1.0.pom @@ -0,0 +1,56 @@ + + + 4.0.0 + com.jayway.jsonpath + json-path-assert + 2.1.0 + JsonPath Assert + Assertions on Json using JsonPath + https://github.com/jayway/JsonPath + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + kalle.stenflo + Kalle Stenflo + kalle.stenflo (a) gmail.com + + + + scm:git:git://github.com/jayway/JsonPath.git + scm:git:git://github.com/jayway/JsonPath.git + scm:git:git://github.com/jayway/JsonPath.git + + + + org.slf4j + slf4j-api + 1.7.13 + compile + + + org.hamcrest + hamcrest-core + 1.3 + compile + + + com.jayway.jsonpath + json-path + 2.1.0 + compile + + + org.hamcrest + hamcrest-library + 1.3 + compile + + + diff --git a/json-path.spec b/json-path.spec new file mode 100644 index 0000000..1109a25 --- /dev/null +++ b/json-path.spec @@ -0,0 +1,109 @@ +Name: json-path +Version: 2.1.0 +Release: 1 +Summary: Java JsonPath implementation +License: ASL 2.0 and BSD +URL: https://github.com/jayway/JsonPath +Source0: https://github.com/jayway/JsonPath/archive/json-path-%{version}.tar.gz +Source1: https://repo1.maven.org/maven2/com/jayway/jsonpath/json-path/%{version}/json-path-%{version}.pom +Source2: https://repo1.maven.org/maven2/com/jayway/jsonpath/json-path-assert/%{version}/json-path-assert-%{version}.pom +Patch0: %{name}-2.1.0-JsonOrg.patch +BuildRequires: maven-local mvn(com.fasterxml.jackson.core:jackson-databind) +BuildRequires: mvn(com.google.code.gson:gson) mvn(commons-io:commons-io) mvn(junit:junit) +BuildRequires: mvn(net.minidev:json-smart) mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.assertj:assertj-core) mvn(org.hamcrest:hamcrest-library) +BuildRequires: mvn(org.slf4j:slf4j-api) mvn(org.slf4j:slf4j-simple) +BuildArch: noarch +%description +Java DSL for reading and testing JSON documents. + +%package javadoc +Summary: Javadoc for %{name} +%description javadoc +This package contains javadoc for %{name}. + +%prep +%setup -q -n JsonPath-%{name}-%{version} +find -type f -name *.jar -print -delete +find -type f -name *.class -print -delete +cp -p %{SOURCE1} %{name}/pom.xml +cp -p %{SOURCE2} %{name}-assert/pom.xml +%patch0 -p1 +rm -rf %{name}/src/main/java/com/jayway/jsonpath/spi/json/JsonOrg*.java \ + %{name}/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrg*.java \ + %{name}/src/test/java/com/jayway/jsonpath/JsonOrg*.java +%pom_remove_dep org.json:json %{name} +cat > pom.xml << EOF + + + 4.0.0 + com.jayway.jsonpath + %{name}-parent + %{version} + pom + Java JsonPath implementation + + %{name} + %{name}-assert + + +EOF +for p in %{name} %{name}-assert ;do +%pom_xpath_inject "pom:project" "bundle" ${p} +%pom_add_plugin "org.apache.maven.plugins:maven-jar-plugin:2.4" ${p} " + + + + true + + +" +%pom_add_plugin org.apache.felix:maven-bundle-plugin:2.3.7 ${p} ' +true + + + ${project.groupId}.${project.artifactId} + ${project.name} + ${project.version} + + + + + bundle-manifest + process-classes + + manifest + + +' +done +%pom_add_dep junit:junit:4.12:test %{name} +%pom_add_dep org.assertj:assertj-core:2.1.0:test %{name} +%pom_add_dep org.hamcrest:hamcrest-library:1.3:test %{name} +%pom_add_dep junit:junit:4.12:test %{name}-assert +for s in %{name}/src/test/java/com/jayway/jsonpath/old/internal/ScanPathTokenTest.java;do + native2ascii -encoding UTF8 ${s} ${s} +done +%mvn_file :%{name} %{name} +%mvn_file :%{name}-assert %{name}-assert +%mvn_package :%{name}-parent __noinstall + +%build +%mvn_build -- -Dproject.build.sourceEncoding=UTF-8 + +%install +%mvn_install + +%files -f .mfiles +%doc README.md +%license LICENSE + +%files javadoc -f .mfiles-javadoc +%license LICENSE + +%changelog +* Mon Aug 24 2020 wangchong - 2.1.0-1 +- package init diff --git a/json-path.yaml b/json-path.yaml new file mode 100644 index 0000000..1f26c2e --- /dev/null +++ b/json-path.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: jayway/JsonPath +tag_prefix: "json-path-" +seperator: "."