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
diff --git a/pom.xml b/pom.xml
index 4cb83da..f70b1b9 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 f535b5a..feb1b13 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 7eacacb..cd4dddb 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 30d1d98..ecfbfaa 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 6cffba0..83c3f2e 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 147a6e1..7320648 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 @@
 
 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 @@
 
     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 @@
 
     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 @@
 
     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 e315871..b2778d7 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 cbf4ebc..5b30eab 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 4dc61db..de51fcb 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 a95e3c2..eee5d6f 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 28a5a56..2be1771 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 cc38cfd..9de13fa 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 95c468d..53a1b39 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 5256e3a..f527488 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 0000000..37d32ae
--- /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 5f2f776..52e10ed 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 68f7448..443ec90 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 3a864ed..71bb044 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 07d2fb7..654d66d 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 02b9c83..5ff6347 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 23deacc..b97a69c 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 7320bb8..d93e3fd 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 636a560..0ed08c4 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 4378b70..ab5cbbb 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 @@
     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 0000000..31316dd
--- /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 a8048fa..3b30577 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 @@
  * 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 @@
    *
    * @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 @@
     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 7585e7b..3927c6d 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 @@
     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 f7d8eab..34b1593 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 @@
     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 4ea46fd..da041c5 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.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 808c3b5..46d743b 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 @@
       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 @@
           ? 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);