This is an automated email from the ASF dual-hosted git repository. sblackmon pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/streams.git
commit 91667b1a59f26fc0bb017b2246e14c3867781805 Author: sblackmon <[email protected]> AuthorDate: Sun Aug 28 13:27:25 2022 -0500 resolves STREAMS-683: upgrade jsonschema2pojo usage to modern version because there were syntax changes in the new version, had to tweak a lot of json schema files and some utility classes --- pom.xml | 2 +- .../ActivityConverterProcessorConfiguration.json | 4 +- ...ivityObjectConverterProcessorConfiguration.json | 4 +- .../ElasticsearchReaderConfiguration.json | 2 +- .../streams/graph/GraphReaderConfiguration.json | 4 +- .../serializer/util/InstagramActivityUtil.java | 39 +++++------- .../streams/instagram/api/CommentsResponse.json | 4 +- .../streams/instagram/api/MediaResponse.json | 4 +- .../streams/instagram/api/RecentMediaResponse.json | 4 +- .../streams/instagram/api/SearchMediaResponse.json | 4 +- .../streams/instagram/api/SearchUsersResponse.json | 4 +- .../streams/instagram/api/UserInfoResponse.json | 4 +- .../streams/instagram/api/UsersInfoResponse.json | 4 +- .../org/apache/streams/instagram/pojo/Media.json | 24 ++------ .../apache/streams/instagram/pojo/MediaItem.json | 23 +++++++ streams-contrib/streams-provider-linkedin/pom.xml | 30 ---------- .../jsonschema/ElasticsearchHdfsConfiguration.json | 12 +++- .../jsonschema/HdfsElasticsearchConfiguration.json | 12 +++- .../ElasticsearchReindexConfiguration.json | 12 +++- .../MongoElasticsearchSyncConfiguration.json | 12 +++- .../TwitterFollowNeo4jConfiguration.json | 12 +++- .../TwitterHistoryElasticsearchConfiguration.json | 12 +++- ...witterUserstreamElasticsearchConfiguration.json | 12 +++- .../plugins/StreamsPojoGenerationConfig.java | 8 +-- .../streams/plugins/StreamsPojoRuleLogger.java | 70 ++++++++++++++++++++++ .../plugins/StreamsPojoSourceGenerator.java | 22 ++++--- .../plugins/StreamsPojoSourceGeneratorMojo.java | 3 +- .../test/StreamsPojoSourceGeneratorTest.java | 2 +- .../java/org/apache/streams/util/PropertyUtil.java | 2 +- .../streams/util/schema/SchemaStoreImpl.java | 5 +- 30 files changed, 234 insertions(+), 122 deletions(-) diff --git a/pom.xml b/pom.xml index 4cb83da891..f70b1b942f 100644 --- a/pom.xml +++ b/pom.xml @@ -380,7 +380,7 @@ <json-path.version>2.4.0</json-path.version> <json-schema-validator.version>0.1.10</json-schema-validator.version> <juneau.version>7.2.1</juneau.version> - <jsonschema2pojo.version>0.4.10</jsonschema2pojo.version> + <jsonschema2pojo.version>1.1.2</jsonschema2pojo.version> <jaxb2.version>0.14.0</jaxb2.version> <jaxb2-basics.version>0.11.1</jaxb2-basics.version> <jaxbutil.version>1.3.0</jaxbutil.version> diff --git a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityConverterProcessorConfiguration.json b/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityConverterProcessorConfiguration.json index f535b5ab3e..feb1b130cd 100644 --- a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityConverterProcessorConfiguration.json +++ b/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityConverterProcessorConfiguration.json @@ -11,14 +11,14 @@ "classifiers": { "type": "array", "items": { - "javaType": "org.apache.streams.data.DocumentClassifier", + "existingJavaType": "org.apache.streams.data.DocumentClassifier", "type": "object" } }, "converters": { "type": "array", "items": { - "javaType": "org.apache.streams.data.ActivityConverter", + "existingJavaType": "org.apache.streams.data.ActivityConverter", "type": "object" } } diff --git a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityObjectConverterProcessorConfiguration.json b/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityObjectConverterProcessorConfiguration.json index 7eacacbd2d..cd4dddbbd3 100644 --- a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityObjectConverterProcessorConfiguration.json +++ b/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/converter/ActivityObjectConverterProcessorConfiguration.json @@ -12,14 +12,14 @@ "type": "array", "items": { "type": "object", - "javaType": "org.apache.streams.data.DocumentClassifier" + "existingJavaType": "org.apache.streams.data.DocumentClassifier" } }, "converters": { "type": "array", "items": { "type": "object", - "javaType": "org.apache.streams.data.ActivityObjectConverter" + "existingJavaType": "org.apache.streams.data.ActivityObjectConverter" } } } diff --git a/streams-contrib/streams-persist-elasticsearch/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchReaderConfiguration.json b/streams-contrib/streams-persist-elasticsearch/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchReaderConfiguration.json index 30d1d98e2b..ecfbfaa7f0 100644 --- a/streams-contrib/streams-persist-elasticsearch/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchReaderConfiguration.json +++ b/streams-contrib/streams-persist-elasticsearch/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchReaderConfiguration.json @@ -29,7 +29,7 @@ }, "_search": { "type": "object", - "javaType" : "java.util.Map", + "existingJavaType" : "java.util.Map", "description": "Search definition" } } diff --git a/streams-contrib/streams-persist-graph/src/main/jsonschema/org/apache/streams/graph/GraphReaderConfiguration.json b/streams-contrib/streams-persist-graph/src/main/jsonschema/org/apache/streams/graph/GraphReaderConfiguration.json index 6cffba01bd..83c3f2eb2f 100644 --- a/streams-contrib/streams-persist-graph/src/main/jsonschema/org/apache/streams/graph/GraphReaderConfiguration.json +++ b/streams-contrib/streams-persist-graph/src/main/jsonschema/org/apache/streams/graph/GraphReaderConfiguration.json @@ -6,7 +6,9 @@ ], "id": "#", "javaType" : "org.apache.streams.graph.GraphReaderConfiguration", - "extends" : {"$ref":"GraphHttpConfiguration.json"}, + "extends" : { + "existingJavaType":"org.apache.streams.components.http.HttpConfiguration" + }, "javaInterfaces": ["java.io.Serializable"], "properties": { "query": { diff --git a/streams-contrib/streams-provider-instagram/src/main/java/org/apache/streams/instagram/serializer/util/InstagramActivityUtil.java b/streams-contrib/streams-provider-instagram/src/main/java/org/apache/streams/instagram/serializer/util/InstagramActivityUtil.java index 147a6e19c0..7320648d01 100644 --- a/streams-contrib/streams-provider-instagram/src/main/java/org/apache/streams/instagram/serializer/util/InstagramActivityUtil.java +++ b/streams-contrib/streams-provider-instagram/src/main/java/org/apache/streams/instagram/serializer/util/InstagramActivityUtil.java @@ -21,18 +21,11 @@ package org.apache.streams.instagram.serializer.util; import org.apache.streams.exceptions.ActivityConversionException; import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.instagram.pojo.Comment; -import org.apache.streams.instagram.pojo.Comments; -import org.apache.streams.instagram.pojo.Images; -import org.apache.streams.instagram.pojo.Media; -import org.apache.streams.instagram.pojo.UserInfo; -import org.apache.streams.instagram.pojo.UserInfoCounts; -import org.apache.streams.instagram.pojo.Videos; +import org.apache.streams.instagram.pojo.*; import org.apache.streams.pojo.extensions.ExtensionUtil; import org.apache.streams.pojo.json.Activity; import org.apache.streams.pojo.json.ActivityObject; import org.apache.streams.pojo.json.Image; -import org.apache.streams.pojo.json.ImageParent; import org.apache.streams.pojo.json.Provider; import org.joda.time.DateTime; @@ -174,14 +167,14 @@ public class InstagramActivityUtil { Image standardResolution = new Image(); if (item.getType().equals("image") && item.getImages() != null) { - ImageParent standardResolutionData = item.getImages().getStandardResolution(); - standardResolution.setHeight((long) standardResolutionData.getHeight()); - standardResolution.setWidth((long) standardResolutionData.getWidth()); + MediaItem standardResolutionData = item.getImages().getStandardResolution(); + standardResolution.setHeight(standardResolutionData.getHeight().longValue()); + standardResolution.setWidth(standardResolutionData.getWidth().longValue()); standardResolution.setUrl(standardResolutionData.getUrl()); } else if (item.getType().equals("video") && item.getVideos() != null) { - ImageParent standardResolutionData = item.getVideos().getStandardResolution(); - standardResolution.setHeight((long) standardResolutionData.getHeight()); - standardResolution.setWidth((long) standardResolutionData.getWidth()); + MediaItem standardResolutionData = item.getVideos().getStandardResolution(); + standardResolution.setHeight(standardResolutionData.getHeight().longValue()); + standardResolution.setWidth(standardResolutionData.getWidth().longValue()); standardResolution.setUrl(standardResolutionData.getUrl()); } @@ -215,22 +208,22 @@ public class InstagramActivityUtil { if (images != null) { try { - ImageParent thumbnail = images.getThumbnail(); - ImageParent lowResolution = images.getLowResolution(); + MediaItem thumbnail = images.getThumbnail(); + MediaItem lowResolution = images.getLowResolution(); ActivityObject thumbnailObject = new ActivityObject(); Image thumbnailImage = new Image(); thumbnailImage.setUrl(thumbnail.getUrl()); - thumbnailImage.setHeight((long) thumbnail.getHeight()); - thumbnailImage.setWidth((long) thumbnail.getWidth()); + thumbnailImage.setHeight(thumbnail.getHeight().longValue()); + thumbnailImage.setWidth(thumbnail.getWidth().longValue()); thumbnailObject.setImage(thumbnailImage); thumbnailObject.setObjectType("image"); ActivityObject lowResolutionObject = new ActivityObject(); Image lowResolutionImage = new Image(); lowResolutionImage.setUrl(lowResolution.getUrl()); - lowResolutionImage.setHeight((long) lowResolution.getHeight()); - lowResolutionImage.setWidth((long) lowResolution.getWidth()); + lowResolutionImage.setHeight(lowResolution.getHeight().longValue()); + lowResolutionImage.setWidth(lowResolution.getWidth().longValue()); lowResolutionObject.setImage(lowResolutionImage); lowResolutionObject.setObjectType("image"); @@ -252,13 +245,13 @@ public class InstagramActivityUtil { if (videos != null) { try { - ImageParent lowResolutionVideo = videos.getLowResolution(); + MediaItem lowResolutionVideo = videos.getLowResolution(); ActivityObject lowResolutionVideoObject = new ActivityObject(); Image lowResolutionVideoImage = new Image(); lowResolutionVideoImage.setUrl(lowResolutionVideo.getUrl()); - lowResolutionVideoImage.setHeight((long) lowResolutionVideo.getHeight()); - lowResolutionVideoImage.setWidth((long) lowResolutionVideo.getWidth()); + lowResolutionVideoImage.setHeight(lowResolutionVideo.getHeight().longValue()); + lowResolutionVideoImage.setWidth(lowResolutionVideo.getWidth().longValue()); lowResolutionVideoObject.setImage(lowResolutionVideoImage); lowResolutionVideoObject.setObjectType("video"); diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/CommentsResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/CommentsResponse.json index e315871843..b2778d7a71 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/CommentsResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/CommentsResponse.json @@ -17,10 +17,10 @@ } }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/MediaResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/MediaResponse.json index cbf4ebc8ed..5b30eabd04 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/MediaResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/MediaResponse.json @@ -14,10 +14,10 @@ "$ref": "../pojo/Media.json" }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/RecentMediaResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/RecentMediaResponse.json index 4dc61db0fd..de51fcbdb2 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/RecentMediaResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/RecentMediaResponse.json @@ -17,10 +17,10 @@ } }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchMediaResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchMediaResponse.json index a95e3c2b4a..eee5d6fa24 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchMediaResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchMediaResponse.json @@ -17,10 +17,10 @@ } }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchUsersResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchUsersResponse.json index 28a5a562f3..2be17719fc 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchUsersResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/SearchUsersResponse.json @@ -17,10 +17,10 @@ } }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UserInfoResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UserInfoResponse.json index cc38cfd684..9de13fa142 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UserInfoResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UserInfoResponse.json @@ -14,10 +14,10 @@ "$ref": "../pojo/UserInfo.json" }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UsersInfoResponse.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UsersInfoResponse.json index 95c468d591..53a1b397f5 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UsersInfoResponse.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/api/UsersInfoResponse.json @@ -17,10 +17,10 @@ } }, "meta": { - "javaType": "org.apache.streams.instagram.api.Meta" + "$ref": "Meta.json" }, "pagination": { - "javaType": "org.apache.streams.instagram.api.Pagination" + "$ref": "Pagination.json" } } } \ No newline at end of file diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/Media.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/Media.json index 5256e3af2e..f527488ec8 100644 --- a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/Media.json +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/Media.json @@ -56,19 +56,13 @@ "type": "object", "properties": { "low_resolution": { - "description": "this should be org.apache.streams.pojo.json.MediaLink, ../../../../../../../../../../streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json", - "type": "object", - "javaType": "org.apache.streams.pojo.json.ImageParent" + "$ref": "./MediaItem.json" }, "standard_resolution": { - "description": "this should be org.apache.streams.pojo.json.MediaLink, ../../../../../../../../../../streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json", - "type": "object", - "javaType": "org.apache.streams.pojo.json.ImageParent" + "$ref": "./MediaItem.json" }, "thumbnail": { - "description": "this should be org.apache.streams.pojo.json.MediaLink, ../../../../../../../../../../streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json", - "type": "object", - "javaType": "org.apache.streams.pojo.json.ImageParent" + "$ref": "./MediaItem.json" } } }, @@ -121,19 +115,13 @@ "type": "object", "properties": { "low_resolution": { - "description": "this should be org.apache.streams.pojo.json.MediaLink, ../../../../../../../../../../streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json", - "type": "object", - "javaType": "org.apache.streams.pojo.json.ImageParent" + "$ref": "./MediaItem.json" }, "standard_resolution": { - "description": "this should be org.apache.streams.pojo.json.MediaLink, ../../../../../../../../../../streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json", - "type": "object", - "javaType": "org.apache.streams.pojo.json.ImageParent" + "$ref": "./MediaItem.json" }, "thumbnail": { - "description": "this should be org.apache.streams.pojo.json.MediaLink, ../../../../../../../../../../streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json", - "type": "object", - "javaType": "org.apache.streams.pojo.json.ImageParent" + "$ref": "./MediaItem.json" } } }, diff --git a/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/MediaItem.json b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/MediaItem.json new file mode 100644 index 0000000000..37d32ae6fe --- /dev/null +++ b/streams-contrib/streams-provider-instagram/src/main/jsonschema/org/apache/streams/instagram/pojo/MediaItem.json @@ -0,0 +1,23 @@ +{ + "type": "object", + "$schema": "http://json-schema.org/draft-03/schema", + "$license": [ + "http://www.apache.org/licenses/LICENSE-2.0" + ], + "id": "#", + "javaType": "org.apache.streams.instagram.pojo.MediaItem", + "javaInterfaces": [ + "java.io.Serializable" + ], + "properties": { + "height": { + "type": "number" + }, + "width": { + "type": "number" + }, + "url": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/streams-contrib/streams-provider-linkedin/pom.xml b/streams-contrib/streams-provider-linkedin/pom.xml index 5f2f77608f..52e10ed0d1 100644 --- a/streams-contrib/streams-provider-linkedin/pom.xml +++ b/streams-contrib/streams-provider-linkedin/pom.xml @@ -138,36 +138,6 @@ </testResource> </testResources> <plugins> - <plugin> - <groupId>org.apache.streams.plugins</groupId> - <artifactId>streams-plugin-pojo</artifactId> - <version>${project.version}</version> - <configuration> - <sourcePaths> - <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath> - </sourcePaths> - <targetDirectory>${project.basedir}/target/generated-sources/pojo</targetDirectory> - <targetPackage>org.apache.streams.linkedin.pojo</targetPackage> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <executions> - <execution> - <id>add-source</id> - <phase>generate-sources</phase> - <goals> - <goal>add-source</goal> - </goals> - <configuration> - <sources> - <source>target/generated-sources/pojo</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> diff --git a/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/ElasticsearchHdfsConfiguration.json b/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/ElasticsearchHdfsConfiguration.json index 68f74483ab..443ec906bf 100644 --- a/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/ElasticsearchHdfsConfiguration.json +++ b/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/ElasticsearchHdfsConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "source": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchReaderConfiguration", "type": "object", "required": true }, - "destination": { "javaType": "org.apache.streams.hdfs.HdfsWriterConfiguration", "type": "object", "required": true } + "source": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchReaderConfiguration", + "type": "object", + "required": true + }, + "destination": { + "existingJavaType": "org.apache.streams.hdfs.HdfsWriterConfiguration", + "type": "object", + "required": true + } } } \ No newline at end of file diff --git a/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/HdfsElasticsearchConfiguration.json b/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/HdfsElasticsearchConfiguration.json index 3a864ed059..71bb0440f5 100644 --- a/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/HdfsElasticsearchConfiguration.json +++ b/streams-examples/streams-examples-local/elasticsearch-hdfs/src/main/jsonschema/HdfsElasticsearchConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "source": { "javaType": "org.apache.streams.hdfs.HdfsReaderConfiguration", "type": "object", "required": true }, - "destination": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true } + "source": { + "existingJavaType": "org.apache.streams.hdfs.HdfsReaderConfiguration", + "type": "object", + "required": true + }, + "destination": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", + "type": "object", + "required": true + } } } \ No newline at end of file diff --git a/streams-examples/streams-examples-local/elasticsearch-reindex/src/main/jsonschema/ElasticsearchReindexConfiguration.json b/streams-examples/streams-examples-local/elasticsearch-reindex/src/main/jsonschema/ElasticsearchReindexConfiguration.json index 07d2fb7e06..654d66d704 100644 --- a/streams-examples/streams-examples-local/elasticsearch-reindex/src/main/jsonschema/ElasticsearchReindexConfiguration.json +++ b/streams-examples/streams-examples-local/elasticsearch-reindex/src/main/jsonschema/ElasticsearchReindexConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "source": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchReaderConfiguration", "type": "object", "required": true }, - "destination": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true } + "source": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchReaderConfiguration", + "type": "object", + "required": true + }, + "destination": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", + "type": "object", + "required": true + } } } \ No newline at end of file diff --git a/streams-examples/streams-examples-local/mongo-elasticsearch-sync/src/main/jsonschema/MongoElasticsearchSyncConfiguration.json b/streams-examples/streams-examples-local/mongo-elasticsearch-sync/src/main/jsonschema/MongoElasticsearchSyncConfiguration.json index 02b9c83342..5ff6347778 100644 --- a/streams-examples/streams-examples-local/mongo-elasticsearch-sync/src/main/jsonschema/MongoElasticsearchSyncConfiguration.json +++ b/streams-examples/streams-examples-local/mongo-elasticsearch-sync/src/main/jsonschema/MongoElasticsearchSyncConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "source": { "javaType": "org.apache.streams.mongo.MongoConfiguration", "type": "object", "required": true }, - "destination": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true } + "source": { + "existingJavaType": "org.apache.streams.mongo.MongoConfiguration", + "type": "object", + "required": true + }, + "destination": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", + "type": "object", + "required": true + } } } \ No newline at end of file diff --git a/streams-examples/streams-examples-local/twitter-follow-neo4j/src/main/jsonschema/TwitterFollowNeo4jConfiguration.json b/streams-examples/streams-examples-local/twitter-follow-neo4j/src/main/jsonschema/TwitterFollowNeo4jConfiguration.json index 23deacc1e1..b97a69c21f 100644 --- a/streams-examples/streams-examples-local/twitter-follow-neo4j/src/main/jsonschema/TwitterFollowNeo4jConfiguration.json +++ b/streams-examples/streams-examples-local/twitter-follow-neo4j/src/main/jsonschema/TwitterFollowNeo4jConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "twitter": { "javaType": "org.apache.streams.twitter.config.TwitterFollowingConfiguration", "type": "object", "required": true }, - "neo4j": { "javaType": "org.apache.streams.neo4j.Neo4jConfiguration", "type": "object", "required": true } + "twitter": { + "existingJavaType": "org.apache.streams.twitter.config.TwitterFollowingConfiguration", + "type": "object", + "required": true + }, + "neo4j": { + "existingJavaType": "org.apache.streams.neo4j.Neo4jConfiguration", + "type": "object", + "required": true + } } } \ No newline at end of file diff --git a/streams-examples/streams-examples-local/twitter-history-elasticsearch/src/main/jsonschema/TwitterHistoryElasticsearchConfiguration.json b/streams-examples/streams-examples-local/twitter-history-elasticsearch/src/main/jsonschema/TwitterHistoryElasticsearchConfiguration.json index 7320bb8cc4..d93e3fd340 100644 --- a/streams-examples/streams-examples-local/twitter-history-elasticsearch/src/main/jsonschema/TwitterHistoryElasticsearchConfiguration.json +++ b/streams-examples/streams-examples-local/twitter-history-elasticsearch/src/main/jsonschema/TwitterHistoryElasticsearchConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "twitter": { "javaType": "org.apache.streams.twitter.config.TwitterTimelineProviderConfiguration", "type": "object", "required": true }, - "elasticsearch": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true } + "twitter": { + "existingJavaType": "org.apache.streams.twitter.config.TwitterTimelineProviderConfiguration", + "type": "object", + "required": true + }, + "elasticsearch": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", + "type": "object", + "required": true + } } } diff --git a/streams-examples/streams-examples-local/twitter-userstream-elasticsearch/src/main/jsonschema/TwitterUserstreamElasticsearchConfiguration.json b/streams-examples/streams-examples-local/twitter-userstream-elasticsearch/src/main/jsonschema/TwitterUserstreamElasticsearchConfiguration.json index 636a560bd9..0ed08c4fea 100644 --- a/streams-examples/streams-examples-local/twitter-userstream-elasticsearch/src/main/jsonschema/TwitterUserstreamElasticsearchConfiguration.json +++ b/streams-examples/streams-examples-local/twitter-userstream-elasticsearch/src/main/jsonschema/TwitterUserstreamElasticsearchConfiguration.json @@ -12,7 +12,15 @@ }, "additionalProperties": false, "properties": { - "twitter": { "javaType": "org.apache.streams.twitter.config.TwitterStreamConfiguration", "type": "object", "required": true }, - "elasticsearch": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true } + "twitter": { + "existingJavaType": "org.apache.streams.twitter.config.TwitterStreamConfiguration", + "type": "object", + "required": true + }, + "elasticsearch": { + "existingJavaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", + "type": "object", + "required": true + } } } \ No newline at end of file diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java index 4378b70972..ab5cbbb9ea 100644 --- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java +++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java @@ -106,10 +106,10 @@ public class StreamsPojoGenerationConfig extends DefaultGenerationConfig { return true; } - @Override - public boolean isUseCommonsLang3() { - return true; - } +// @Override +// public boolean isUseCommonsLang3() { +// return true; +// } // @Override // public boolean isIncludeAdditionalProperties() { diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoRuleLogger.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoRuleLogger.java new file mode 100644 index 0000000000..31316ddbf9 --- /dev/null +++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoRuleLogger.java @@ -0,0 +1,70 @@ +package org.apache.streams.plugins; + +import org.jsonschema2pojo.RuleLogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class StreamsPojoRuleLogger implements RuleLogger { + + private static final Logger LOGGER = LoggerFactory.getLogger(StreamsPojoRuleLogger.class); + + @Override + public void debug(String s) { + LOGGER.debug(s); + } + + @Override + public void error(String s) { + LOGGER.error(s); + } + + @Override + public void error(String s, Throwable throwable) { + LOGGER.error(s, throwable); + } + + @Override + public void info(String s) { + LOGGER.info(s); + } + + @Override + public boolean isDebugEnabled() { + return true; + } + + @Override + public boolean isErrorEnabled() { + return true; + } + + @Override + public boolean isInfoEnabled() { + return true; + } + + @Override + public boolean isTraceEnabled() { + return true; + } + + @Override + public boolean isWarnEnabled() { + return true; + } + + @Override + public void trace(String s) { + LOGGER.trace(s); + } + + @Override + public void warn(String s, Throwable throwable) { + LOGGER.warn(s, throwable); + } + + @Override + public void warn(String s) { + LOGGER.warn(s); + } +} diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java index a8048faff8..3b30577492 100644 --- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java +++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java @@ -19,11 +19,15 @@ package org.apache.streams.plugins; +import org.apache.maven.plugin.MojoExecutionException; +import org.jsonschema2pojo.GenerationConfig; import org.jsonschema2pojo.Jsonschema2Pojo; +import org.jsonschema2pojo.RuleLogger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; @@ -40,13 +44,14 @@ import java.util.Objects; * generator.run(); * */ -public class StreamsPojoSourceGenerator implements Runnable { +public class StreamsPojoSourceGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGenerator.class); private static final String LS = System.getProperty("line.separator"); private StreamsPojoGenerationConfig config; + private RuleLogger ruleLogger; /** * Run from CLI without Maven @@ -56,7 +61,7 @@ public class StreamsPojoSourceGenerator implements Runnable { * * @param args [sourceDirectory, targetDirectory, targetPackage] * */ - public static void main(String[] args) { + public static void main(String[] args) throws Exception { StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig(); String sourceDirectory = "src/main/jsonschema"; @@ -78,22 +83,25 @@ public class StreamsPojoSourceGenerator implements Runnable { config.setTargetDirectory(targetDirectory); StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config); - streamsPojoSourceGenerator.run(); + streamsPojoSourceGenerator.execute(); } public StreamsPojoSourceGenerator(StreamsPojoGenerationConfig config) { this.config = config; } - @Override - public void run() { + public void execute() throws MojoExecutionException { Objects.requireNonNull(config); + GenerationConfig generationConfig = (GenerationConfig) config; + + ruleLogger = new StreamsPojoRuleLogger(); try { - Jsonschema2Pojo.generate(config); - } catch (Throwable ex) { + Jsonschema2Pojo.generate(generationConfig, ruleLogger); + } catch (IOException ex) { LOGGER.error("{} {}", ex.getClass(), ex.getMessage()); + throw new MojoExecutionException(ex.getMessage(), ex); } } diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java index 7585e7b07a..3927c6d244 100644 --- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java +++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java @@ -88,7 +88,8 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo { config.setTargetDirectory(targetDirectory); StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config); - streamsPojoSourceGenerator.run(); + + streamsPojoSourceGenerator.execute(); } diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java index f7d8eabe23..34b1593da2 100644 --- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java +++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java @@ -63,7 +63,7 @@ public class StreamsPojoSourceGeneratorTest { config.setTargetDirectory("target/generated-sources/pojo"); StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config); - streamsPojoSourceGenerator.run(); + streamsPojoSourceGenerator.execute(); Assert.assertNotNull(config.getTargetDirectory()); Assert.assertTrue(config.getTargetDirectory().exists()); diff --git a/streams-util/src/main/java/org/apache/streams/util/PropertyUtil.java b/streams-util/src/main/java/org/apache/streams/util/PropertyUtil.java index 4ea46fd049..da041c5f8e 100644 --- a/streams-util/src/main/java/org/apache/streams/util/PropertyUtil.java +++ b/streams-util/src/main/java/org/apache/streams/util/PropertyUtil.java @@ -27,7 +27,7 @@ import com.fasterxml.jackson.databind.node.ValueNode; import com.github.wnameless.json.flattener.JsonFlattener; import com.github.wnameless.json.unflattener.JsonUnflattener; import org.apache.commons.lang3.StringUtils; -import org.codehaus.jackson.JsonFactory; +import com.fasterxml.jackson.core.JsonFactory; import java.util.ArrayList; import java.util.Arrays; diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java index 808c3b5ae5..46d743bd9b 100644 --- a/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java +++ b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java @@ -63,7 +63,7 @@ public class SchemaStoreImpl extends Ordering<Schema> implements SchemaStore { if (uri.toString().contains("#") && !uri.toString().endsWith("#")) { Schema newSchema = new Schema(baseUri, baseNode, null, true); this.schemas.put(baseUri, newSchema); - JsonNode childContent = this.fragmentResolver.resolve(baseNode, '#' + StringUtils.substringAfter(uri.toString(), "#")); + JsonNode childContent = this.fragmentResolver.resolve(baseNode, '#' + StringUtils.substringAfter(uri.toString(), "#"), "#"); this.schemas.put(uri, new Schema(uri, childContent, newSchema, false)); } else { if ( baseNode.has("extends") && baseNode.get("extends").isObject()) { @@ -120,7 +120,8 @@ public class SchemaStoreImpl extends Ordering<Schema> implements SchemaStore { ? parent.getId().resolve(path) : URI.create(path); if (this.selfReferenceWithoutParentFile(parent, path)) { - this.schemas.put(id, new Schema(id, this.fragmentResolver.resolve(parent.getParentContent(), path), parent, false)); + Schema newSchema = new Schema(id, this.fragmentResolver.resolve(parent.getParentContent(), path, "#"), parent, false); + this.schemas.put(id, newSchema); return this.schemas.get(id); } else { return this.create(id);
