diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29dc260 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.class +*.jar +target/ +.settings/ +.classpath +.factorypath +.project diff --git a/code/principal-propagation/.classpath b/code/principal-propagation/.classpath new file mode 100644 index 0000000..75b806f --- /dev/null +++ b/code/principal-propagation/.classpath @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/java/sample-solution/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/code/principal-propagation/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from code/java/sample-solution/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java rename to code/principal-propagation/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/code/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/code/principal-propagation/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from code/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.jar rename to code/principal-propagation/.mvn/wrapper/maven-wrapper.jar diff --git a/code/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/code/principal-propagation/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from code/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.properties rename to code/principal-propagation/.mvn/wrapper/maven-wrapper.properties diff --git a/code/principal-propagation/.project b/code/principal-propagation/.project new file mode 100644 index 0000000..be305bf --- /dev/null +++ b/code/principal-propagation/.project @@ -0,0 +1,23 @@ + + + PrincipalPropagation + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/code/principal-propagation/.settings/org.eclipse.jdt.apt.core.prefs b/code/principal-propagation/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/code/principal-propagation/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/code/principal-propagation/.settings/org.eclipse.jdt.core.prefs b/code/principal-propagation/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ac8e750 --- /dev/null +++ b/code/principal-propagation/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/code/principal-propagation/.settings/org.eclipse.m2e.core.prefs b/code/principal-propagation/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/code/principal-propagation/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/code/java/sample-solution/nypd-connector/mvnw b/code/principal-propagation/mvnw similarity index 100% rename from code/java/sample-solution/nypd-connector/mvnw rename to code/principal-propagation/mvnw diff --git a/code/java/sample-solution/nypd-connector/mvnw.cmd b/code/principal-propagation/mvnw.cmd similarity index 100% rename from code/java/sample-solution/nypd-connector/mvnw.cmd rename to code/principal-propagation/mvnw.cmd diff --git a/code/principal-propagation/pom.xml b/code/principal-propagation/pom.xml new file mode 100644 index 0000000..54aed70 --- /dev/null +++ b/code/principal-propagation/pom.xml @@ -0,0 +1,111 @@ + + + 4.0.0 + com.i2group + PrincipalPropagation + 1 + PrincipalPropogation + Demo project for principal propagation + + 1.8 + C:\IBM\i2analyze + + + + com.i2group + Daod + 4.3.1.0 + + + com.i2group + httpclient + 4.5.6 + + + com.ibm.websphere + security + 1.1.38 + + + com.i2group + httpcore + 4.4.10 + + + + + + org.apache.maven.plugins + maven-install-plugin + 2.5.2 + + + daod + initialize + + install-file + + + ${toolkitLocation}\toolkit\application\targets\opal-services-daod\WEB-INF\lib\Daod.jar + com.i2group + Daod + jar + 4.3.1.0 + + + + websphere_dependency + initialize + + install-file + + + ${toolkitLocation}\deploy\wlp\lib\com.ibm.websphere.security_1.1.38.jar + com.ibm.websphere + security + 1.1.38 + jar + + + + httpcore_dependency + initialize + + install-file + + + ${toolkitLocation}\toolkit\application\targets\opal-services-daod\WEB-INF\lib\httpcore-4.4.10.jar + com.i2group + httpcore + 4.4.10 + jar + + + + httpclient_dependency + initialize + + install-file + + + ${toolkitLocation}\toolkit\application\targets\opal-services-daod\WEB-INF\lib\httpclient-4.5.6.jar + com.i2group + httpclient + 4.5.6 + jar + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.3.2 + + PrincipalPropogation + ${toolkitLocation}/toolkit/configuration/fragments/opal-services/WEB-INF/lib/ + + + + + diff --git a/code/principal-propagation/src/main/java/com/i2group/example/PrincipalPropagation.java b/code/principal-propagation/src/main/java/com/i2group/example/PrincipalPropagation.java new file mode 100644 index 0000000..2ed7058 --- /dev/null +++ b/code/principal-propagation/src/main/java/com/i2group/example/PrincipalPropagation.java @@ -0,0 +1,26 @@ +/********************************************************************************* +# * (C) Copyright IBM Corporation 2020. +# * +# * This program and the accompanying materials are made available under the +# * terms of the Eclipse Public License 2.0 which is available at +# * http://www.eclipse.org/legal/epl-2.0. +# * +# * SPDX-License-Identifier: EPL-2.0 +# * +/********************************************************************************/ +package com.i2group.example; + +import org.apache.http.client.methods.HttpUriRequest; + +import com.ibm.websphere.security.auth.WSSubject; +import com.i2group.disco.daod.spi.IConnectorRequestModifier; + +public final class PrincipalPropagation implements IConnectorRequestModifier { + + @Override + public void modifyRequest(HttpUriRequest request) { + final String callerPrincipal = WSSubject.getCallerPrincipal(); + request.addHeader("i2ExtensionHeader", callerPrincipal); + + } +} diff --git a/connector/java/sample-solution/nypd-connector/.classpath b/connector/java/sample-solution/nypd-connector/.classpath new file mode 100644 index 0000000..39abf1c --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.classpath @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/connector/java/sample-solution/nypd-connector/.factorypath b/connector/java/sample-solution/nypd-connector/.factorypath new file mode 100644 index 0000000..77f4375 --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.factorypath @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/java/stage1/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/connector/java/sample-solution/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from code/java/stage1/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java rename to connector/java/sample-solution/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/code/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/connector/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from code/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.jar rename to connector/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.jar diff --git a/code/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/connector/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from code/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.properties rename to connector/java/sample-solution/nypd-connector/.mvn/wrapper/maven-wrapper.properties diff --git a/connector/java/sample-solution/nypd-connector/.project b/connector/java/sample-solution/nypd-connector/.project new file mode 100644 index 0000000..7421ab6 --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.project @@ -0,0 +1,23 @@ + + + demo + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.core.resources.prefs b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..839d647 --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.jdt.apt.core.prefs b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..687ad91 --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=true +org.eclipse.jdt.apt.genSrcDir=target\\generated-sources\\annotations +org.eclipse.jdt.apt.genTestSrcDir=target\\generated-test-sources\\test-annotations diff --git a/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.jdt.core.prefs b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..90b69d4 --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.methodParameters=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=enabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.m2e.core.prefs b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/code/java/stage1/nypd-connector/mvnw b/connector/java/sample-solution/nypd-connector/mvnw similarity index 100% rename from code/java/stage1/nypd-connector/mvnw rename to connector/java/sample-solution/nypd-connector/mvnw diff --git a/code/java/stage1/nypd-connector/mvnw.cmd b/connector/java/sample-solution/nypd-connector/mvnw.cmd similarity index 100% rename from code/java/stage1/nypd-connector/mvnw.cmd rename to connector/java/sample-solution/nypd-connector/mvnw.cmd diff --git a/code/java/sample-solution/nypd-connector/pom.xml b/connector/java/sample-solution/nypd-connector/pom.xml similarity index 100% rename from code/java/sample-solution/nypd-connector/pom.xml rename to connector/java/sample-solution/nypd-connector/pom.xml diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ComplaintSearch.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ComplaintSearch.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ComplaintSearch.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ComplaintSearch.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorController.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorController.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorController.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorController.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ItemFactory.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ItemFactory.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ItemFactory.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ItemFactory.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceInfo.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceInfo.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceInfo.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceInfo.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceReference.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceReference.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceReference.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/SourceReference.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ValidationResponse.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ValidationResponse.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ValidationResponse.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/ValidationResponse.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java diff --git a/code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java b/connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java rename to connector/java/sample-solution/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java diff --git a/code/java/sample-solution/nypd-connector/src/main/resources/application.properties b/connector/java/sample-solution/nypd-connector/src/main/resources/application.properties similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/resources/application.properties rename to connector/java/sample-solution/nypd-connector/src/main/resources/application.properties diff --git a/code/java/sample-solution/nypd-connector/src/main/resources/config.json b/connector/java/sample-solution/nypd-connector/src/main/resources/config.json similarity index 100% rename from code/java/sample-solution/nypd-connector/src/main/resources/config.json rename to connector/java/sample-solution/nypd-connector/src/main/resources/config.json diff --git a/code/java/sample-solution/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java b/connector/java/sample-solution/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from code/java/sample-solution/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java rename to connector/java/sample-solution/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/code/java/stage3/nypd-connector/src/main/resources/application.properties b/connector/java/sample-solution/nypd-connector/target/classes/application.properties similarity index 100% rename from code/java/stage3/nypd-connector/src/main/resources/application.properties rename to connector/java/sample-solution/nypd-connector/target/classes/application.properties diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ComplaintSearch.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ComplaintSearch.class new file mode 100644 index 0000000..7898f65 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ComplaintSearch.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorApplication.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorApplication.class new file mode 100644 index 0000000..a821d75 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorApplication.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorController.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorController.class new file mode 100644 index 0000000..f3120a6 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorController.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorDataService.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorDataService.class new file mode 100644 index 0000000..c17536f Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ConnectorDataService.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ExternalConnectorDataService.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ExternalConnectorDataService.class new file mode 100644 index 0000000..334fddd Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/ExternalConnectorDataService.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/SocrataClient$ApiTokenInterceptor.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/SocrataClient$ApiTokenInterceptor.class new file mode 100644 index 0000000..566227b Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/SocrataClient$ApiTokenInterceptor.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/SocrataClient.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/SocrataClient.class new file mode 100644 index 0000000..5d94465 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/SocrataClient.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/transport/SocrataResponse.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/transport/SocrataResponse.class new file mode 100644 index 0000000..e4923fc Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/transport/SocrataResponse.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/transport/SocrataResponseData.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/transport/SocrataResponseData.class new file mode 100644 index 0000000..b6a9aa8 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/externalsource/transport/SocrataResponseData.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ConnectorResponse.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ConnectorResponse.class new file mode 100644 index 0000000..4fd444b Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ConnectorResponse.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/EntityData.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/EntityData.class new file mode 100644 index 0000000..bf7fea5 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/EntityData.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ItemFactory.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ItemFactory.class new file mode 100644 index 0000000..e4e7cf5 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ItemFactory.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/LinkData.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/LinkData.class new file mode 100644 index 0000000..b63774c Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/LinkData.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ResponseDataBase.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ResponseDataBase.class new file mode 100644 index 0000000..49c46ed Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ResponseDataBase.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/SourceInfo.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/SourceInfo.class new file mode 100644 index 0000000..fe74363 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/SourceInfo.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/SourceReference.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/SourceReference.class new file mode 100644 index 0000000..194ee43 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/SourceReference.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ValidationResponse.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ValidationResponse.class new file mode 100644 index 0000000..3c5e86c Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/ValidationResponse.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/ConnectorRequest.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/ConnectorRequest.class new file mode 100644 index 0000000..a29657f Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/ConnectorRequest.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/Payload.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/Payload.class new file mode 100644 index 0000000..6719af2 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/Payload.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/RequestCondition.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/RequestCondition.class new file mode 100644 index 0000000..e148854 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/RequestCondition.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.class new file mode 100644 index 0000000..683dcf2 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.class new file mode 100644 index 0000000..5c1ba99 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeeds.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeeds.class new file mode 100644 index 0000000..e4fd93b Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/DaodSeeds.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/SeedDataBase.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/SeedDataBase.class new file mode 100644 index 0000000..25e0e01 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/SeedDataBase.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/SourceId.class b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/SourceId.class new file mode 100644 index 0000000..75effb4 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/classes/com/example/demo/rest/transport/request/seeded/SourceId.class differ diff --git a/connector/java/sample-solution/nypd-connector/target/classes/config.json b/connector/java/sample-solution/nypd-connector/target/classes/config.json new file mode 100644 index 0000000..c0189b6 --- /dev/null +++ b/connector/java/sample-solution/nypd-connector/target/classes/config.json @@ -0,0 +1,119 @@ +{ + "defaultValues": { + "timeZoneId": "Europe/London", + "resultIdsPersistent": true + }, + "services": [ + { + "id": "nypd-service", + "name": "NYPD Connector: Get All", + "description": "A service which retrieves all data", + "clientConfigType": "NONE", + "acquireUrl": "/all" + }, + { + "id": "nypd-search-service", + "name": "NYPD Connector: Search", + "description": "A service for conditional searches", + "clientConfigType": "FORM", + "clientConfigId": "searchForm", + "acquireUrl": "/search", + "validateUrl": "/search/validate", + "resultItemTypeIds": [ + "ET1" + ] + }, + { + "id": "nypd-find-like-this-complaint-service", + "name": "NYPD Connector: Find like this Complaint", + "description": "A service which finds a similar complaint", + "resultItemTypeIds": [ + "ET1" + ], + "clientConfigType": "NONE", + "acquireUrl": "/find-like-this-complaint", + "seedConstraints": { + "min": 1, + "max": 1, + "seedTypes": { + "allowedTypes": "ENTITY", + "itemTypes": [ + { + "id": "ET1", + "min": 1, + "max": 1 + } + ] + } + } + }, + { + "id": "nypd-expand-service", + "name": "NYPD Connector: Expand", + "description": "A service which executes an Expand operation on a seed", + "clientConfigType": "NONE", + "acquireUrl": "/expand", + "seedConstraints": { + "min": 1, + "max": 1, + "seedTypes": { + "allowedTypes": "ENTITY", + "itemTypes": [ + { + "id": "ET1" + }, + { + "id": "ET2" + } + ] + } + } + }, + { + "id": "nypd-expand-with-conditions", + "name": "NYPD Connector: Expand with Conditions", + "description": "A service which executes an Expand operation on a seed with conditions", + "clientConfigType": "FORM", + "clientConfigId": "searchForm", + "acquireUrl": "/expand-with-conditions", + "seedConstraints": { + "min": 1, + "max": 1, + "seedTypes": { + "allowedTypes": "ENTITY", + "itemTypes": [ + { + "id": "ET1" + }, + { + "id": "ET2" + } + ] + } + } + } + ], + "clientConfigs": [ + { + "id": "searchForm", + "config": { + "sections": [ + { + "conditions": [ + { + "id": "boro_nm", + "label": "Borough Name", + "logicalType": "SINGLE_LINE_STRING" + }, + { + "id": "law_cat_cd", + "label": "Law Category", + "logicalType": "SINGLE_LINE_STRING" + } + ] + } + ] + } + } + ] +} diff --git a/connector/java/sample-solution/nypd-connector/target/test-classes/com/example/demo/DemoApplicationTests.class b/connector/java/sample-solution/nypd-connector/target/test-classes/com/example/demo/DemoApplicationTests.class new file mode 100644 index 0000000..1ed2db7 Binary files /dev/null and b/connector/java/sample-solution/nypd-connector/target/test-classes/com/example/demo/DemoApplicationTests.class differ diff --git a/code/java/stage2/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/connector/java/stage1/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from code/java/stage2/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java rename to connector/java/stage1/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/code/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/connector/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from code/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.jar rename to connector/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.jar diff --git a/code/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/connector/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from code/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.properties rename to connector/java/stage1/nypd-connector/.mvn/wrapper/maven-wrapper.properties diff --git a/code/java/stage2/nypd-connector/mvnw b/connector/java/stage1/nypd-connector/mvnw similarity index 100% rename from code/java/stage2/nypd-connector/mvnw rename to connector/java/stage1/nypd-connector/mvnw diff --git a/code/java/stage2/nypd-connector/mvnw.cmd b/connector/java/stage1/nypd-connector/mvnw.cmd similarity index 100% rename from code/java/stage2/nypd-connector/mvnw.cmd rename to connector/java/stage1/nypd-connector/mvnw.cmd diff --git a/code/java/stage1/nypd-connector/pom.xml b/connector/java/stage1/nypd-connector/pom.xml similarity index 100% rename from code/java/stage1/nypd-connector/pom.xml rename to connector/java/stage1/nypd-connector/pom.xml diff --git a/code/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java b/connector/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java similarity index 100% rename from code/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java rename to connector/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java diff --git a/code/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorController.java b/connector/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorController.java similarity index 100% rename from code/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorController.java rename to connector/java/stage1/nypd-connector/src/main/java/com/example/demo/ConnectorController.java diff --git a/code/java/stage1/nypd-connector/src/main/resources/application.properties b/connector/java/stage1/nypd-connector/src/main/resources/application.properties similarity index 100% rename from code/java/stage1/nypd-connector/src/main/resources/application.properties rename to connector/java/stage1/nypd-connector/src/main/resources/application.properties diff --git a/code/java/stage1/nypd-connector/src/main/resources/config.json b/connector/java/stage1/nypd-connector/src/main/resources/config.json similarity index 100% rename from code/java/stage1/nypd-connector/src/main/resources/config.json rename to connector/java/stage1/nypd-connector/src/main/resources/config.json diff --git a/code/java/stage1/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java b/connector/java/stage1/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from code/java/stage1/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java rename to connector/java/stage1/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/code/java/stage3/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/connector/java/stage2/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from code/java/stage3/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java rename to connector/java/stage2/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/code/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/connector/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from code/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.jar rename to connector/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.jar diff --git a/code/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/connector/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from code/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.properties rename to connector/java/stage2/nypd-connector/.mvn/wrapper/maven-wrapper.properties diff --git a/code/java/stage3/nypd-connector/mvnw b/connector/java/stage2/nypd-connector/mvnw similarity index 100% rename from code/java/stage3/nypd-connector/mvnw rename to connector/java/stage2/nypd-connector/mvnw diff --git a/code/java/stage3/nypd-connector/mvnw.cmd b/connector/java/stage2/nypd-connector/mvnw.cmd similarity index 100% rename from code/java/stage3/nypd-connector/mvnw.cmd rename to connector/java/stage2/nypd-connector/mvnw.cmd diff --git a/code/java/stage2/nypd-connector/pom.xml b/connector/java/stage2/nypd-connector/pom.xml similarity index 100% rename from code/java/stage2/nypd-connector/pom.xml rename to connector/java/stage2/nypd-connector/pom.xml diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java similarity index 100% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorController.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorController.java similarity index 100% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorController.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorController.java diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java similarity index 100% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java similarity index 100% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java similarity index 100% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java b/connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java similarity index 100% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java rename to connector/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java diff --git a/code/java/stage2/nypd-connector/src/main/resources/application.properties b/connector/java/stage2/nypd-connector/src/main/resources/application.properties similarity index 100% rename from code/java/stage2/nypd-connector/src/main/resources/application.properties rename to connector/java/stage2/nypd-connector/src/main/resources/application.properties diff --git a/code/java/stage2/nypd-connector/src/main/resources/config.json b/connector/java/stage2/nypd-connector/src/main/resources/config.json similarity index 100% rename from code/java/stage2/nypd-connector/src/main/resources/config.json rename to connector/java/stage2/nypd-connector/src/main/resources/config.json diff --git a/code/java/stage2/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java b/connector/java/stage2/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from code/java/stage2/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java rename to connector/java/stage2/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/code/java/stage4/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/connector/java/stage3/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from code/java/stage4/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java rename to connector/java/stage3/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/code/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/connector/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from code/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.jar rename to connector/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.jar diff --git a/code/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/connector/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from code/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.properties rename to connector/java/stage3/nypd-connector/.mvn/wrapper/maven-wrapper.properties diff --git a/code/java/stage4/nypd-connector/mvnw b/connector/java/stage3/nypd-connector/mvnw similarity index 100% rename from code/java/stage4/nypd-connector/mvnw rename to connector/java/stage3/nypd-connector/mvnw diff --git a/code/java/stage4/nypd-connector/mvnw.cmd b/connector/java/stage3/nypd-connector/mvnw.cmd similarity index 100% rename from code/java/stage4/nypd-connector/mvnw.cmd rename to connector/java/stage3/nypd-connector/mvnw.cmd diff --git a/code/java/stage3/nypd-connector/pom.xml b/connector/java/stage3/nypd-connector/pom.xml similarity index 100% rename from code/java/stage3/nypd-connector/pom.xml rename to connector/java/stage3/nypd-connector/pom.xml diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorController.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorController.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorController.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorController.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java diff --git a/code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java b/connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java similarity index 100% rename from code/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java rename to connector/java/stage3/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java diff --git a/code/java/stage4/nypd-connector/src/main/resources/application.properties b/connector/java/stage3/nypd-connector/src/main/resources/application.properties similarity index 100% rename from code/java/stage4/nypd-connector/src/main/resources/application.properties rename to connector/java/stage3/nypd-connector/src/main/resources/application.properties diff --git a/code/java/stage3/nypd-connector/src/main/resources/config.json b/connector/java/stage3/nypd-connector/src/main/resources/config.json similarity index 100% rename from code/java/stage3/nypd-connector/src/main/resources/config.json rename to connector/java/stage3/nypd-connector/src/main/resources/config.json diff --git a/code/java/stage3/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java b/connector/java/stage3/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from code/java/stage3/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java rename to connector/java/stage3/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/code/java/stage5/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/connector/java/stage4/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from code/java/stage5/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java rename to connector/java/stage4/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/code/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/connector/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from code/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.jar rename to connector/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.jar diff --git a/code/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/connector/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from code/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.properties rename to connector/java/stage4/nypd-connector/.mvn/wrapper/maven-wrapper.properties diff --git a/code/java/stage5/nypd-connector/mvnw b/connector/java/stage4/nypd-connector/mvnw similarity index 100% rename from code/java/stage5/nypd-connector/mvnw rename to connector/java/stage4/nypd-connector/mvnw diff --git a/code/java/stage5/nypd-connector/mvnw.cmd b/connector/java/stage4/nypd-connector/mvnw.cmd similarity index 100% rename from code/java/stage5/nypd-connector/mvnw.cmd rename to connector/java/stage4/nypd-connector/mvnw.cmd diff --git a/code/java/stage4/nypd-connector/pom.xml b/connector/java/stage4/nypd-connector/pom.xml similarity index 100% rename from code/java/stage4/nypd-connector/pom.xml rename to connector/java/stage4/nypd-connector/pom.xml diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorController.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorController.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorController.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorController.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java diff --git a/code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java b/connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java similarity index 100% rename from code/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java rename to connector/java/stage4/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java diff --git a/code/java/stage5/nypd-connector/src/main/resources/application.properties b/connector/java/stage4/nypd-connector/src/main/resources/application.properties similarity index 100% rename from code/java/stage5/nypd-connector/src/main/resources/application.properties rename to connector/java/stage4/nypd-connector/src/main/resources/application.properties diff --git a/code/java/stage4/nypd-connector/src/main/resources/config.json b/connector/java/stage4/nypd-connector/src/main/resources/config.json similarity index 93% rename from code/java/stage4/nypd-connector/src/main/resources/config.json rename to connector/java/stage4/nypd-connector/src/main/resources/config.json index 1d22695..293855c 100644 --- a/code/java/stage4/nypd-connector/src/main/resources/config.json +++ b/connector/java/stage4/nypd-connector/src/main/resources/config.json @@ -14,7 +14,7 @@ { "id": "nypd-search-service", "name": "NYPD Connector: Search", - "description": "A service with for conditional searches", + "description": "A service for conditional searches", "clientConfigType": "FORM", "clientConfigId": "searchForm", "acquireUrl": "/search", diff --git a/code/java/stage4/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java b/connector/java/stage4/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from code/java/stage4/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java rename to connector/java/stage4/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/connector/java/stage5/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java b/connector/java/stage5/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..47336fd --- /dev/null +++ b/connector/java/stage5/nypd-connector/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/connector/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.jar b/connector/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..01e6799 Binary files /dev/null and b/connector/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.jar differ diff --git a/connector/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.properties b/connector/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..cd0d451 --- /dev/null +++ b/connector/java/stage5/nypd-connector/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip diff --git a/connector/java/stage5/nypd-connector/mvnw b/connector/java/stage5/nypd-connector/mvnw new file mode 100644 index 0000000..5551fde --- /dev/null +++ b/connector/java/stage5/nypd-connector/mvnw @@ -0,0 +1,286 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/connector/java/stage5/nypd-connector/mvnw.cmd b/connector/java/stage5/nypd-connector/mvnw.cmd new file mode 100644 index 0000000..e5cfb0a --- /dev/null +++ b/connector/java/stage5/nypd-connector/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/code/java/stage5/nypd-connector/pom.xml b/connector/java/stage5/nypd-connector/pom.xml similarity index 100% rename from code/java/stage5/nypd-connector/pom.xml rename to connector/java/stage5/nypd-connector/pom.xml diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorApplication.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorController.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorController.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorController.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorController.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ConnectorDataService.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/ExternalConnectorDataService.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/SocrataClient.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponse.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/externalsource/transport/SocrataResponseData.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ConnectorResponse.java diff --git a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java similarity index 65% rename from code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java index d615ef0..d50bcba 100644 --- a/code/java/stage2/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java +++ b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/EntityData.java @@ -13,16 +13,5 @@ package com.example.demo.rest.transport; -import java.util.Map; - -/** - * Base POJO (Plain Old Java Object) for response data Defines the base properties (variables) for - * entities and links - */ -public abstract class ResponseDataBase { - public Object id; - public String typeId; - public Long version; - public Map properties; - public SourceReference sourceReference; -} +/** Entity response data. Contains the variables that define each entity in the system. */ +public class EntityData extends ResponseDataBase {} diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/LinkData.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/ResponseDataBase.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/ConnectorRequest.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/Payload.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/RequestCondition.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedEntityData.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeedLinkData.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/DaodSeeds.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SeedDataBase.java diff --git a/code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java b/connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java similarity index 100% rename from code/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java rename to connector/java/stage5/nypd-connector/src/main/java/com/example/demo/rest/transport/request/seeded/SourceId.java diff --git a/connector/java/stage5/nypd-connector/src/main/resources/application.properties b/connector/java/stage5/nypd-connector/src/main/resources/application.properties new file mode 100644 index 0000000..2970531 --- /dev/null +++ b/connector/java/stage5/nypd-connector/src/main/resources/application.properties @@ -0,0 +1,5 @@ +server.port=9081 +# Resource URL, for example https://data.cityofnewyork.us/resource/7x9x-zpz6.json +socrata.url=https://data.cityofnewyork.us/resource/7x9x-zpz6.json +# API Token. Create a Socrata account and create an API Token. Paste it here +socrata.api.token=CHANGE THIS TO YOUR OWN API TOKEN diff --git a/code/java/stage5/nypd-connector/src/main/resources/config.json b/connector/java/stage5/nypd-connector/src/main/resources/config.json similarity index 98% rename from code/java/stage5/nypd-connector/src/main/resources/config.json rename to connector/java/stage5/nypd-connector/src/main/resources/config.json index 537c80b..2a8bd11 100644 --- a/code/java/stage5/nypd-connector/src/main/resources/config.json +++ b/connector/java/stage5/nypd-connector/src/main/resources/config.json @@ -14,7 +14,7 @@ { "id": "nypd-search-service", "name": "NYPD Connector: Search", - "description": "A service with for conditional searches", + "description": "A service for conditional searches", "clientConfigType": "FORM", "clientConfigId": "searchForm", "acquireUrl": "/search", diff --git a/code/java/stage5/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java b/connector/java/stage5/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from code/java/stage5/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java rename to connector/java/stage5/nypd-connector/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/code/node/sample-solution/nypd-connector/.editorconfig b/connector/node/sample-solution/nypd-connector/.editorconfig similarity index 100% rename from code/node/sample-solution/nypd-connector/.editorconfig rename to connector/node/sample-solution/nypd-connector/.editorconfig diff --git a/code/node/sample-solution/nypd-connector/.yo-rc.json b/connector/node/sample-solution/nypd-connector/.yo-rc.json similarity index 100% rename from code/node/sample-solution/nypd-connector/.yo-rc.json rename to connector/node/sample-solution/nypd-connector/.yo-rc.json diff --git a/code/node/sample-solution/nypd-connector/Gruntfile.js b/connector/node/sample-solution/nypd-connector/Gruntfile.js similarity index 100% rename from code/node/sample-solution/nypd-connector/Gruntfile.js rename to connector/node/sample-solution/nypd-connector/Gruntfile.js diff --git a/code/node/sample-solution/nypd-connector/app.js b/connector/node/sample-solution/nypd-connector/app.js similarity index 100% rename from code/node/sample-solution/nypd-connector/app.js rename to connector/node/sample-solution/nypd-connector/app.js diff --git a/code/node/sample-solution/nypd-connector/bin/www b/connector/node/sample-solution/nypd-connector/bin/www similarity index 100% rename from code/node/sample-solution/nypd-connector/bin/www rename to connector/node/sample-solution/nypd-connector/bin/www diff --git a/code/node/sample-solution/nypd-connector/helpers/data-service.js b/connector/node/sample-solution/nypd-connector/helpers/data-service.js similarity index 100% rename from code/node/sample-solution/nypd-connector/helpers/data-service.js rename to connector/node/sample-solution/nypd-connector/helpers/data-service.js diff --git a/code/node/sample-solution/nypd-connector/helpers/socrata-data-service.js b/connector/node/sample-solution/nypd-connector/helpers/socrata-data-service.js similarity index 100% rename from code/node/sample-solution/nypd-connector/helpers/socrata-data-service.js rename to connector/node/sample-solution/nypd-connector/helpers/socrata-data-service.js diff --git a/code/node/sample-solution/nypd-connector/helpers/socrata-items.js b/connector/node/sample-solution/nypd-connector/helpers/socrata-items.js similarity index 100% rename from code/node/sample-solution/nypd-connector/helpers/socrata-items.js rename to connector/node/sample-solution/nypd-connector/helpers/socrata-items.js diff --git a/code/node/sample-solution/nypd-connector/package.json b/connector/node/sample-solution/nypd-connector/package.json similarity index 100% rename from code/node/sample-solution/nypd-connector/package.json rename to connector/node/sample-solution/nypd-connector/package.json diff --git a/code/node/stage5/nypd-connector/public/json/config.json b/connector/node/sample-solution/nypd-connector/public/json/config.json similarity index 97% rename from code/node/stage5/nypd-connector/public/json/config.json rename to connector/node/sample-solution/nypd-connector/public/json/config.json index 75b8c31..c3bc23b 100644 --- a/code/node/stage5/nypd-connector/public/json/config.json +++ b/connector/node/sample-solution/nypd-connector/public/json/config.json @@ -14,7 +14,7 @@ { "id": "nypd-search-service", "name": "NYPD Connector: Search", - "description": "A service with for conditional searches", + "description": "A service for conditional searches", "resultItemTypeIds": ["ET1"], "clientConfigType": "FORM", "clientConfigId": "searchForm", diff --git a/code/node/sample-solution/nypd-connector/routes/acquire.js b/connector/node/sample-solution/nypd-connector/routes/acquire.js similarity index 100% rename from code/node/sample-solution/nypd-connector/routes/acquire.js rename to connector/node/sample-solution/nypd-connector/routes/acquire.js diff --git a/code/node/sample-solution/nypd-connector/routes/config.js b/connector/node/sample-solution/nypd-connector/routes/config.js similarity index 100% rename from code/node/sample-solution/nypd-connector/routes/config.js rename to connector/node/sample-solution/nypd-connector/routes/config.js diff --git a/code/node/sample-solution/nypd-connector/routes/validate.js b/connector/node/sample-solution/nypd-connector/routes/validate.js similarity index 100% rename from code/node/sample-solution/nypd-connector/routes/validate.js rename to connector/node/sample-solution/nypd-connector/routes/validate.js diff --git a/code/node/sample-solution/nypd-connector/socrata-config.js b/connector/node/sample-solution/nypd-connector/socrata-config.js similarity index 100% rename from code/node/sample-solution/nypd-connector/socrata-config.js rename to connector/node/sample-solution/nypd-connector/socrata-config.js diff --git a/code/node/stage1/nypd-connector/.editorconfig b/connector/node/stage1/nypd-connector/.editorconfig similarity index 100% rename from code/node/stage1/nypd-connector/.editorconfig rename to connector/node/stage1/nypd-connector/.editorconfig diff --git a/code/node/stage1/nypd-connector/.yo-rc.json b/connector/node/stage1/nypd-connector/.yo-rc.json similarity index 100% rename from code/node/stage1/nypd-connector/.yo-rc.json rename to connector/node/stage1/nypd-connector/.yo-rc.json diff --git a/code/node/stage1/nypd-connector/Gruntfile.js b/connector/node/stage1/nypd-connector/Gruntfile.js similarity index 100% rename from code/node/stage1/nypd-connector/Gruntfile.js rename to connector/node/stage1/nypd-connector/Gruntfile.js diff --git a/code/node/stage1/nypd-connector/app.js b/connector/node/stage1/nypd-connector/app.js similarity index 100% rename from code/node/stage1/nypd-connector/app.js rename to connector/node/stage1/nypd-connector/app.js diff --git a/code/node/stage1/nypd-connector/bin/www b/connector/node/stage1/nypd-connector/bin/www similarity index 100% rename from code/node/stage1/nypd-connector/bin/www rename to connector/node/stage1/nypd-connector/bin/www diff --git a/code/node/stage1/nypd-connector/package.json b/connector/node/stage1/nypd-connector/package.json similarity index 100% rename from code/node/stage1/nypd-connector/package.json rename to connector/node/stage1/nypd-connector/package.json diff --git a/code/node/stage1/nypd-connector/public/json/config.json b/connector/node/stage1/nypd-connector/public/json/config.json similarity index 100% rename from code/node/stage1/nypd-connector/public/json/config.json rename to connector/node/stage1/nypd-connector/public/json/config.json diff --git a/code/node/stage1/nypd-connector/routes/config.js b/connector/node/stage1/nypd-connector/routes/config.js similarity index 100% rename from code/node/stage1/nypd-connector/routes/config.js rename to connector/node/stage1/nypd-connector/routes/config.js diff --git a/code/node/stage2/nypd-connector/.editorconfig b/connector/node/stage2/nypd-connector/.editorconfig similarity index 100% rename from code/node/stage2/nypd-connector/.editorconfig rename to connector/node/stage2/nypd-connector/.editorconfig diff --git a/code/node/stage2/nypd-connector/.yo-rc.json b/connector/node/stage2/nypd-connector/.yo-rc.json similarity index 100% rename from code/node/stage2/nypd-connector/.yo-rc.json rename to connector/node/stage2/nypd-connector/.yo-rc.json diff --git a/code/node/stage2/nypd-connector/Gruntfile.js b/connector/node/stage2/nypd-connector/Gruntfile.js similarity index 100% rename from code/node/stage2/nypd-connector/Gruntfile.js rename to connector/node/stage2/nypd-connector/Gruntfile.js diff --git a/code/node/stage2/nypd-connector/app.js b/connector/node/stage2/nypd-connector/app.js similarity index 100% rename from code/node/stage2/nypd-connector/app.js rename to connector/node/stage2/nypd-connector/app.js diff --git a/code/node/stage2/nypd-connector/bin/www b/connector/node/stage2/nypd-connector/bin/www similarity index 100% rename from code/node/stage2/nypd-connector/bin/www rename to connector/node/stage2/nypd-connector/bin/www diff --git a/code/node/stage2/nypd-connector/helpers/data-service.js b/connector/node/stage2/nypd-connector/helpers/data-service.js similarity index 100% rename from code/node/stage2/nypd-connector/helpers/data-service.js rename to connector/node/stage2/nypd-connector/helpers/data-service.js diff --git a/code/node/stage2/nypd-connector/package.json b/connector/node/stage2/nypd-connector/package.json similarity index 100% rename from code/node/stage2/nypd-connector/package.json rename to connector/node/stage2/nypd-connector/package.json diff --git a/code/node/stage2/nypd-connector/public/json/config.json b/connector/node/stage2/nypd-connector/public/json/config.json similarity index 100% rename from code/node/stage2/nypd-connector/public/json/config.json rename to connector/node/stage2/nypd-connector/public/json/config.json diff --git a/code/node/stage2/nypd-connector/routes/acquire.js b/connector/node/stage2/nypd-connector/routes/acquire.js similarity index 100% rename from code/node/stage2/nypd-connector/routes/acquire.js rename to connector/node/stage2/nypd-connector/routes/acquire.js diff --git a/code/node/stage2/nypd-connector/routes/config.js b/connector/node/stage2/nypd-connector/routes/config.js similarity index 100% rename from code/node/stage2/nypd-connector/routes/config.js rename to connector/node/stage2/nypd-connector/routes/config.js diff --git a/code/node/stage3/nypd-connector/.editorconfig b/connector/node/stage3/nypd-connector/.editorconfig similarity index 100% rename from code/node/stage3/nypd-connector/.editorconfig rename to connector/node/stage3/nypd-connector/.editorconfig diff --git a/code/node/stage3/nypd-connector/.yo-rc.json b/connector/node/stage3/nypd-connector/.yo-rc.json similarity index 100% rename from code/node/stage3/nypd-connector/.yo-rc.json rename to connector/node/stage3/nypd-connector/.yo-rc.json diff --git a/code/node/stage3/nypd-connector/Gruntfile.js b/connector/node/stage3/nypd-connector/Gruntfile.js similarity index 100% rename from code/node/stage3/nypd-connector/Gruntfile.js rename to connector/node/stage3/nypd-connector/Gruntfile.js diff --git a/code/node/stage3/nypd-connector/app.js b/connector/node/stage3/nypd-connector/app.js similarity index 100% rename from code/node/stage3/nypd-connector/app.js rename to connector/node/stage3/nypd-connector/app.js diff --git a/code/node/stage3/nypd-connector/bin/www b/connector/node/stage3/nypd-connector/bin/www similarity index 100% rename from code/node/stage3/nypd-connector/bin/www rename to connector/node/stage3/nypd-connector/bin/www diff --git a/code/node/stage3/nypd-connector/helpers/socrata-data-service.js b/connector/node/stage3/nypd-connector/helpers/socrata-data-service.js similarity index 100% rename from code/node/stage3/nypd-connector/helpers/socrata-data-service.js rename to connector/node/stage3/nypd-connector/helpers/socrata-data-service.js diff --git a/code/node/stage3/nypd-connector/package.json b/connector/node/stage3/nypd-connector/package.json similarity index 100% rename from code/node/stage3/nypd-connector/package.json rename to connector/node/stage3/nypd-connector/package.json diff --git a/code/node/stage3/nypd-connector/public/json/config.json b/connector/node/stage3/nypd-connector/public/json/config.json similarity index 100% rename from code/node/stage3/nypd-connector/public/json/config.json rename to connector/node/stage3/nypd-connector/public/json/config.json diff --git a/code/node/stage3/nypd-connector/routes/acquire.js b/connector/node/stage3/nypd-connector/routes/acquire.js similarity index 100% rename from code/node/stage3/nypd-connector/routes/acquire.js rename to connector/node/stage3/nypd-connector/routes/acquire.js diff --git a/code/node/stage3/nypd-connector/routes/config.js b/connector/node/stage3/nypd-connector/routes/config.js similarity index 100% rename from code/node/stage3/nypd-connector/routes/config.js rename to connector/node/stage3/nypd-connector/routes/config.js diff --git a/code/node/stage3/nypd-connector/socrata-config.js b/connector/node/stage3/nypd-connector/socrata-config.js similarity index 100% rename from code/node/stage3/nypd-connector/socrata-config.js rename to connector/node/stage3/nypd-connector/socrata-config.js diff --git a/code/node/stage4/nypd-connector/.editorconfig b/connector/node/stage4/nypd-connector/.editorconfig similarity index 100% rename from code/node/stage4/nypd-connector/.editorconfig rename to connector/node/stage4/nypd-connector/.editorconfig diff --git a/code/node/stage4/nypd-connector/.yo-rc.json b/connector/node/stage4/nypd-connector/.yo-rc.json similarity index 100% rename from code/node/stage4/nypd-connector/.yo-rc.json rename to connector/node/stage4/nypd-connector/.yo-rc.json diff --git a/code/node/stage4/nypd-connector/Gruntfile.js b/connector/node/stage4/nypd-connector/Gruntfile.js similarity index 100% rename from code/node/stage4/nypd-connector/Gruntfile.js rename to connector/node/stage4/nypd-connector/Gruntfile.js diff --git a/code/node/stage4/nypd-connector/app.js b/connector/node/stage4/nypd-connector/app.js similarity index 100% rename from code/node/stage4/nypd-connector/app.js rename to connector/node/stage4/nypd-connector/app.js diff --git a/code/node/stage4/nypd-connector/bin/www b/connector/node/stage4/nypd-connector/bin/www similarity index 100% rename from code/node/stage4/nypd-connector/bin/www rename to connector/node/stage4/nypd-connector/bin/www diff --git a/code/node/stage4/nypd-connector/helpers/socrata-data-service.js b/connector/node/stage4/nypd-connector/helpers/socrata-data-service.js similarity index 100% rename from code/node/stage4/nypd-connector/helpers/socrata-data-service.js rename to connector/node/stage4/nypd-connector/helpers/socrata-data-service.js diff --git a/code/node/stage4/nypd-connector/package.json b/connector/node/stage4/nypd-connector/package.json similarity index 100% rename from code/node/stage4/nypd-connector/package.json rename to connector/node/stage4/nypd-connector/package.json diff --git a/code/node/stage4/nypd-connector/public/json/config.json b/connector/node/stage4/nypd-connector/public/json/config.json similarity index 93% rename from code/node/stage4/nypd-connector/public/json/config.json rename to connector/node/stage4/nypd-connector/public/json/config.json index 42c2e83..08cfc21 100644 --- a/code/node/stage4/nypd-connector/public/json/config.json +++ b/connector/node/stage4/nypd-connector/public/json/config.json @@ -14,7 +14,7 @@ { "id": "nypd-search-service", "name": "NYPD Connector: Search", - "description": "A service with for conditional searches", + "description": "A service for conditional searches", "resultItemTypeIds": ["ET1"], "clientConfigType": "FORM", "clientConfigId": "searchForm", diff --git a/code/node/stage4/nypd-connector/routes/acquire.js b/connector/node/stage4/nypd-connector/routes/acquire.js similarity index 100% rename from code/node/stage4/nypd-connector/routes/acquire.js rename to connector/node/stage4/nypd-connector/routes/acquire.js diff --git a/code/node/stage4/nypd-connector/routes/config.js b/connector/node/stage4/nypd-connector/routes/config.js similarity index 100% rename from code/node/stage4/nypd-connector/routes/config.js rename to connector/node/stage4/nypd-connector/routes/config.js diff --git a/code/node/stage4/nypd-connector/routes/validate.js b/connector/node/stage4/nypd-connector/routes/validate.js similarity index 100% rename from code/node/stage4/nypd-connector/routes/validate.js rename to connector/node/stage4/nypd-connector/routes/validate.js diff --git a/code/node/stage4/nypd-connector/socrata-config.js b/connector/node/stage4/nypd-connector/socrata-config.js similarity index 100% rename from code/node/stage4/nypd-connector/socrata-config.js rename to connector/node/stage4/nypd-connector/socrata-config.js diff --git a/code/node/stage5/nypd-connector/.editorconfig b/connector/node/stage5/nypd-connector/.editorconfig similarity index 100% rename from code/node/stage5/nypd-connector/.editorconfig rename to connector/node/stage5/nypd-connector/.editorconfig diff --git a/code/node/stage5/nypd-connector/.yo-rc.json b/connector/node/stage5/nypd-connector/.yo-rc.json similarity index 100% rename from code/node/stage5/nypd-connector/.yo-rc.json rename to connector/node/stage5/nypd-connector/.yo-rc.json diff --git a/code/node/stage5/nypd-connector/Gruntfile.js b/connector/node/stage5/nypd-connector/Gruntfile.js similarity index 100% rename from code/node/stage5/nypd-connector/Gruntfile.js rename to connector/node/stage5/nypd-connector/Gruntfile.js diff --git a/code/node/stage5/nypd-connector/app.js b/connector/node/stage5/nypd-connector/app.js similarity index 100% rename from code/node/stage5/nypd-connector/app.js rename to connector/node/stage5/nypd-connector/app.js diff --git a/code/node/stage5/nypd-connector/bin/www b/connector/node/stage5/nypd-connector/bin/www similarity index 100% rename from code/node/stage5/nypd-connector/bin/www rename to connector/node/stage5/nypd-connector/bin/www diff --git a/code/node/stage5/nypd-connector/helpers/socrata-data-service.js b/connector/node/stage5/nypd-connector/helpers/socrata-data-service.js similarity index 100% rename from code/node/stage5/nypd-connector/helpers/socrata-data-service.js rename to connector/node/stage5/nypd-connector/helpers/socrata-data-service.js diff --git a/code/node/stage5/nypd-connector/package.json b/connector/node/stage5/nypd-connector/package.json similarity index 100% rename from code/node/stage5/nypd-connector/package.json rename to connector/node/stage5/nypd-connector/package.json diff --git a/code/node/sample-solution/nypd-connector/public/json/config.json b/connector/node/stage5/nypd-connector/public/json/config.json similarity index 97% rename from code/node/sample-solution/nypd-connector/public/json/config.json rename to connector/node/stage5/nypd-connector/public/json/config.json index 75b8c31..c3bc23b 100644 --- a/code/node/sample-solution/nypd-connector/public/json/config.json +++ b/connector/node/stage5/nypd-connector/public/json/config.json @@ -14,7 +14,7 @@ { "id": "nypd-search-service", "name": "NYPD Connector: Search", - "description": "A service with for conditional searches", + "description": "A service for conditional searches", "resultItemTypeIds": ["ET1"], "clientConfigType": "FORM", "clientConfigId": "searchForm", diff --git a/code/node/stage5/nypd-connector/routes/acquire.js b/connector/node/stage5/nypd-connector/routes/acquire.js similarity index 100% rename from code/node/stage5/nypd-connector/routes/acquire.js rename to connector/node/stage5/nypd-connector/routes/acquire.js diff --git a/code/node/stage5/nypd-connector/routes/config.js b/connector/node/stage5/nypd-connector/routes/config.js similarity index 100% rename from code/node/stage5/nypd-connector/routes/config.js rename to connector/node/stage5/nypd-connector/routes/config.js diff --git a/code/node/stage5/nypd-connector/routes/validate.js b/connector/node/stage5/nypd-connector/routes/validate.js similarity index 100% rename from code/node/stage5/nypd-connector/routes/validate.js rename to connector/node/stage5/nypd-connector/routes/validate.js diff --git a/code/node/stage5/nypd-connector/socrata-config.js b/connector/node/stage5/nypd-connector/socrata-config.js similarity index 100% rename from code/node/stage5/nypd-connector/socrata-config.js rename to connector/node/stage5/nypd-connector/socrata-config.js diff --git a/code/python/sample-solution/nypd-connector/Pipfile b/connector/python/sample-solution/nypd-connector/Pipfile similarity index 100% rename from code/python/sample-solution/nypd-connector/Pipfile rename to connector/python/sample-solution/nypd-connector/Pipfile diff --git a/code/python/sample-solution/nypd-connector/Pipfile.lock b/connector/python/sample-solution/nypd-connector/Pipfile.lock similarity index 100% rename from code/python/sample-solution/nypd-connector/Pipfile.lock rename to connector/python/sample-solution/nypd-connector/Pipfile.lock diff --git a/code/python/sample-solution/nypd-connector/app.py b/connector/python/sample-solution/nypd-connector/app.py similarity index 100% rename from code/python/sample-solution/nypd-connector/app.py rename to connector/python/sample-solution/nypd-connector/app.py diff --git a/code/python/sample-solution/nypd-connector/helper/classes.py b/connector/python/sample-solution/nypd-connector/helper/classes.py similarity index 100% rename from code/python/sample-solution/nypd-connector/helper/classes.py rename to connector/python/sample-solution/nypd-connector/helper/classes.py diff --git a/code/python/sample-solution/nypd-connector/helper/controller.py b/connector/python/sample-solution/nypd-connector/helper/controller.py similarity index 100% rename from code/python/sample-solution/nypd-connector/helper/controller.py rename to connector/python/sample-solution/nypd-connector/helper/controller.py diff --git a/code/python/sample-solution/nypd-connector/helper/items.py b/connector/python/sample-solution/nypd-connector/helper/items.py similarity index 100% rename from code/python/sample-solution/nypd-connector/helper/items.py rename to connector/python/sample-solution/nypd-connector/helper/items.py diff --git a/code/python/sample-solution/nypd-connector/helper/service.py b/connector/python/sample-solution/nypd-connector/helper/service.py similarity index 100% rename from code/python/sample-solution/nypd-connector/helper/service.py rename to connector/python/sample-solution/nypd-connector/helper/service.py diff --git a/code/python/sample-solution/nypd-connector/setup.bat b/connector/python/sample-solution/nypd-connector/setup.bat similarity index 100% rename from code/python/sample-solution/nypd-connector/setup.bat rename to connector/python/sample-solution/nypd-connector/setup.bat diff --git a/code/python/sample-solution/nypd-connector/static/application.yml b/connector/python/sample-solution/nypd-connector/static/application.yml similarity index 100% rename from code/python/sample-solution/nypd-connector/static/application.yml rename to connector/python/sample-solution/nypd-connector/static/application.yml diff --git a/code/python/sample-solution/nypd-connector/static/config.json b/connector/python/sample-solution/nypd-connector/static/config.json similarity index 100% rename from code/python/sample-solution/nypd-connector/static/config.json rename to connector/python/sample-solution/nypd-connector/static/config.json diff --git a/code/python/stage1/nypd-connector/Pipfile b/connector/python/stage1/nypd-connector/Pipfile similarity index 100% rename from code/python/stage1/nypd-connector/Pipfile rename to connector/python/stage1/nypd-connector/Pipfile diff --git a/code/python/stage1/nypd-connector/Pipfile.lock b/connector/python/stage1/nypd-connector/Pipfile.lock similarity index 100% rename from code/python/stage1/nypd-connector/Pipfile.lock rename to connector/python/stage1/nypd-connector/Pipfile.lock diff --git a/code/python/stage1/nypd-connector/app.py b/connector/python/stage1/nypd-connector/app.py similarity index 100% rename from code/python/stage1/nypd-connector/app.py rename to connector/python/stage1/nypd-connector/app.py diff --git a/code/python/stage1/nypd-connector/helper/controller.py b/connector/python/stage1/nypd-connector/helper/controller.py similarity index 100% rename from code/python/stage1/nypd-connector/helper/controller.py rename to connector/python/stage1/nypd-connector/helper/controller.py diff --git a/code/python/stage1/nypd-connector/setup.bat b/connector/python/stage1/nypd-connector/setup.bat similarity index 100% rename from code/python/stage1/nypd-connector/setup.bat rename to connector/python/stage1/nypd-connector/setup.bat diff --git a/code/python/stage1/nypd-connector/static/config.json b/connector/python/stage1/nypd-connector/static/config.json similarity index 100% rename from code/python/stage1/nypd-connector/static/config.json rename to connector/python/stage1/nypd-connector/static/config.json diff --git a/code/python/stage2/nypd-connector/Pipfile b/connector/python/stage2/nypd-connector/Pipfile similarity index 100% rename from code/python/stage2/nypd-connector/Pipfile rename to connector/python/stage2/nypd-connector/Pipfile diff --git a/code/python/stage2/nypd-connector/Pipfile.lock b/connector/python/stage2/nypd-connector/Pipfile.lock similarity index 100% rename from code/python/stage2/nypd-connector/Pipfile.lock rename to connector/python/stage2/nypd-connector/Pipfile.lock diff --git a/code/python/stage2/nypd-connector/app.py b/connector/python/stage2/nypd-connector/app.py similarity index 100% rename from code/python/stage2/nypd-connector/app.py rename to connector/python/stage2/nypd-connector/app.py diff --git a/code/python/stage2/nypd-connector/helper/classes.py b/connector/python/stage2/nypd-connector/helper/classes.py similarity index 100% rename from code/python/stage2/nypd-connector/helper/classes.py rename to connector/python/stage2/nypd-connector/helper/classes.py diff --git a/code/python/stage2/nypd-connector/helper/controller.py b/connector/python/stage2/nypd-connector/helper/controller.py similarity index 100% rename from code/python/stage2/nypd-connector/helper/controller.py rename to connector/python/stage2/nypd-connector/helper/controller.py diff --git a/code/python/stage2/nypd-connector/helper/service.py b/connector/python/stage2/nypd-connector/helper/service.py similarity index 100% rename from code/python/stage2/nypd-connector/helper/service.py rename to connector/python/stage2/nypd-connector/helper/service.py diff --git a/code/python/stage2/nypd-connector/setup.bat b/connector/python/stage2/nypd-connector/setup.bat similarity index 100% rename from code/python/stage2/nypd-connector/setup.bat rename to connector/python/stage2/nypd-connector/setup.bat diff --git a/code/python/stage2/nypd-connector/static/config.json b/connector/python/stage2/nypd-connector/static/config.json similarity index 100% rename from code/python/stage2/nypd-connector/static/config.json rename to connector/python/stage2/nypd-connector/static/config.json diff --git a/code/python/stage3/nypd-connector/Pipfile b/connector/python/stage3/nypd-connector/Pipfile similarity index 100% rename from code/python/stage3/nypd-connector/Pipfile rename to connector/python/stage3/nypd-connector/Pipfile diff --git a/code/python/stage3/nypd-connector/Pipfile.lock b/connector/python/stage3/nypd-connector/Pipfile.lock similarity index 100% rename from code/python/stage3/nypd-connector/Pipfile.lock rename to connector/python/stage3/nypd-connector/Pipfile.lock diff --git a/code/python/stage3/nypd-connector/app.py b/connector/python/stage3/nypd-connector/app.py similarity index 100% rename from code/python/stage3/nypd-connector/app.py rename to connector/python/stage3/nypd-connector/app.py diff --git a/code/python/stage3/nypd-connector/helper/classes.py b/connector/python/stage3/nypd-connector/helper/classes.py similarity index 100% rename from code/python/stage3/nypd-connector/helper/classes.py rename to connector/python/stage3/nypd-connector/helper/classes.py diff --git a/code/python/stage3/nypd-connector/helper/controller.py b/connector/python/stage3/nypd-connector/helper/controller.py similarity index 100% rename from code/python/stage3/nypd-connector/helper/controller.py rename to connector/python/stage3/nypd-connector/helper/controller.py diff --git a/code/python/stage3/nypd-connector/helper/service.py b/connector/python/stage3/nypd-connector/helper/service.py similarity index 100% rename from code/python/stage3/nypd-connector/helper/service.py rename to connector/python/stage3/nypd-connector/helper/service.py diff --git a/code/python/stage3/nypd-connector/setup.bat b/connector/python/stage3/nypd-connector/setup.bat similarity index 100% rename from code/python/stage3/nypd-connector/setup.bat rename to connector/python/stage3/nypd-connector/setup.bat diff --git a/code/python/stage3/nypd-connector/static/application.yml b/connector/python/stage3/nypd-connector/static/application.yml similarity index 100% rename from code/python/stage3/nypd-connector/static/application.yml rename to connector/python/stage3/nypd-connector/static/application.yml diff --git a/code/python/stage3/nypd-connector/static/config.json b/connector/python/stage3/nypd-connector/static/config.json similarity index 100% rename from code/python/stage3/nypd-connector/static/config.json rename to connector/python/stage3/nypd-connector/static/config.json diff --git a/code/python/stage4/nypd-connector/Pipfile b/connector/python/stage4/nypd-connector/Pipfile similarity index 100% rename from code/python/stage4/nypd-connector/Pipfile rename to connector/python/stage4/nypd-connector/Pipfile diff --git a/code/python/stage4/nypd-connector/Pipfile.lock b/connector/python/stage4/nypd-connector/Pipfile.lock similarity index 100% rename from code/python/stage4/nypd-connector/Pipfile.lock rename to connector/python/stage4/nypd-connector/Pipfile.lock diff --git a/code/python/stage4/nypd-connector/app.py b/connector/python/stage4/nypd-connector/app.py similarity index 100% rename from code/python/stage4/nypd-connector/app.py rename to connector/python/stage4/nypd-connector/app.py diff --git a/code/python/stage4/nypd-connector/helper/classes.py b/connector/python/stage4/nypd-connector/helper/classes.py similarity index 100% rename from code/python/stage4/nypd-connector/helper/classes.py rename to connector/python/stage4/nypd-connector/helper/classes.py diff --git a/code/python/stage4/nypd-connector/helper/controller.py b/connector/python/stage4/nypd-connector/helper/controller.py similarity index 100% rename from code/python/stage4/nypd-connector/helper/controller.py rename to connector/python/stage4/nypd-connector/helper/controller.py diff --git a/code/python/stage4/nypd-connector/helper/service.py b/connector/python/stage4/nypd-connector/helper/service.py similarity index 100% rename from code/python/stage4/nypd-connector/helper/service.py rename to connector/python/stage4/nypd-connector/helper/service.py diff --git a/code/python/stage4/nypd-connector/setup.bat b/connector/python/stage4/nypd-connector/setup.bat similarity index 100% rename from code/python/stage4/nypd-connector/setup.bat rename to connector/python/stage4/nypd-connector/setup.bat diff --git a/code/python/stage4/nypd-connector/static/application.yml b/connector/python/stage4/nypd-connector/static/application.yml similarity index 100% rename from code/python/stage4/nypd-connector/static/application.yml rename to connector/python/stage4/nypd-connector/static/application.yml diff --git a/code/python/stage4/nypd-connector/static/config.json b/connector/python/stage4/nypd-connector/static/config.json similarity index 100% rename from code/python/stage4/nypd-connector/static/config.json rename to connector/python/stage4/nypd-connector/static/config.json diff --git a/code/python/stage5/nypd-connector/Pipfile b/connector/python/stage5/nypd-connector/Pipfile similarity index 100% rename from code/python/stage5/nypd-connector/Pipfile rename to connector/python/stage5/nypd-connector/Pipfile diff --git a/code/python/stage5/nypd-connector/Pipfile.lock b/connector/python/stage5/nypd-connector/Pipfile.lock similarity index 100% rename from code/python/stage5/nypd-connector/Pipfile.lock rename to connector/python/stage5/nypd-connector/Pipfile.lock diff --git a/code/python/stage5/nypd-connector/app.py b/connector/python/stage5/nypd-connector/app.py similarity index 100% rename from code/python/stage5/nypd-connector/app.py rename to connector/python/stage5/nypd-connector/app.py diff --git a/code/python/stage5/nypd-connector/helper/classes.py b/connector/python/stage5/nypd-connector/helper/classes.py similarity index 100% rename from code/python/stage5/nypd-connector/helper/classes.py rename to connector/python/stage5/nypd-connector/helper/classes.py diff --git a/code/python/stage5/nypd-connector/helper/controller.py b/connector/python/stage5/nypd-connector/helper/controller.py similarity index 100% rename from code/python/stage5/nypd-connector/helper/controller.py rename to connector/python/stage5/nypd-connector/helper/controller.py diff --git a/code/python/stage5/nypd-connector/helper/service.py b/connector/python/stage5/nypd-connector/helper/service.py similarity index 100% rename from code/python/stage5/nypd-connector/helper/service.py rename to connector/python/stage5/nypd-connector/helper/service.py diff --git a/code/python/stage5/nypd-connector/setup.bat b/connector/python/stage5/nypd-connector/setup.bat similarity index 100% rename from code/python/stage5/nypd-connector/setup.bat rename to connector/python/stage5/nypd-connector/setup.bat diff --git a/code/python/stage5/nypd-connector/static/application.yml b/connector/python/stage5/nypd-connector/static/application.yml similarity index 100% rename from code/python/stage5/nypd-connector/static/application.yml rename to connector/python/stage5/nypd-connector/static/application.yml diff --git a/code/python/stage5/nypd-connector/static/config.json b/connector/python/stage5/nypd-connector/static/config.json similarity index 100% rename from code/python/stage5/nypd-connector/static/config.json rename to connector/python/stage5/nypd-connector/static/config.json diff --git a/docs/add-service.md b/docs/add-service.md index 6d65e1a..1bec484 100644 --- a/docs/add-service.md +++ b/docs/add-service.md @@ -104,7 +104,7 @@ endpoint for it in the connector.
Java

-1. A template has been provided to get started with; see the `nypd-connector-2` +1. A template has been provided to get started with; see the `stage2/nypd-connector` directory. This includes: * an example configuration `config.json` with a service defined * some changes to `ConnectorController`; @@ -125,13 +125,13 @@ endpoint for it in the connector.

Node.js

-1. A template has been provided to get started with; see the `nypd-connector-2` +1. A template has been provided to get started with; see the `stage2/nypd-connector` directory. This includes: * an example configuration `config.json` with a service defined; * a new acquire route in `app.js`; * a new acquire route with a `/test` endpoint in the `routes` folder; * a new file `/helpers/data-service.js` containing functions for acquiring data; -2. Open the code from the `nypd-connector-2` in VSCode, or any IDE of your choice, +2. Open the code from the `stage2/nypd-connector` in VSCode, or any IDE of your choice, and start the connector.

@@ -140,7 +140,7 @@ endpoint for it in the connector.
Python

-1. A template has been provided to get started with; see the `nypd-connector-2` +1. A template has been provided to get started with; see the `stage2/nypd-connector` directory. This includes: * an example configuration `config.json` with a service defined * some additions to `controller.py`; diff --git a/docs/connect-to-eds.md b/docs/connect-to-eds.md index a36f9fd..f31d6f6 100644 --- a/docs/connect-to-eds.md +++ b/docs/connect-to-eds.md @@ -21,7 +21,7 @@ If you leave the site for any reason, you can always retrieve your app token aga

Java

-Look at the version of code in the `nypd-connector-3` directory. There are changes to `ConnectorController` and the `application.properties` file. Apply these to your code manually or copy over these two files. If you're copying them, you may need to change the paths of the endpoints defined in `ConnectorController`. +Look at the version of code in the `stage3/nypd-connector` directory. There are changes to `ConnectorController` and the `application.properties` file. Apply these to your code manually or copy over these two files. If you're copying them, you may need to change the paths of the endpoints defined in `ConnectorController`. In `application.properties` shown below, specify the NYPD Complaint Dataset API resource for the `socrata.url` key as the URL in the comment and your Socrata API Token for the `socrata.api.token` key. @@ -55,7 +55,7 @@ System.out.println(socrataClient.get(url, String.class, params));

Node.js

-* Look at the version of code in the `nypd-connector-3` directory. This includes: +* Look at the version of code in the `stage3/nypd-connector` directory. This includes: * Changes to `acquire.js` route; * A new `socrata-config.js` file; * A new `socrata-data-service.js` file; @@ -72,7 +72,7 @@ System.out.println(socrataClient.get(url, String.class, params)); ```js const URL = `${socrata.url}?$$app_token=${socrata.token}&$limit=${limitValue}`; ``` -* Open the code from the `nypd-connector-3` in VSCode, or any IDE of your choice, and start the connector. +* Open the code from the `stage3/nypd-connector` in VSCode, or any IDE of your choice, and start the connector. * You need to map the data received into entities and links and return them to i2 Analyze.

@@ -81,7 +81,7 @@ System.out.println(socrataClient.get(url, String.class, params));
Python

-Look at the version of code in the `nypd-connector-3` directory. Changes have been made to `controller.py` and there is now an additional resource file: `application.yml`. Apply these to your code manually or copy over these two files. If you're copying them, you may need to change the paths of the endpoints defined in `controller.py`. +Look at the version of code in the `stage3/nypd-connector` directory. Changes have been made to `controller.py` and there is now an additional resource file: `application.yml`. Apply these to your code manually or copy over these two files. If you're copying them, you may need to change the paths of the endpoints defined in `controller.py`. In `application.yml` shown below, specify the NYPD Complaint Dataset API resource for the `socrata.url` key as the URL in the comment and your Socrata API Token for the `socrata.token` key. @@ -121,6 +121,8 @@ To make it easier to create entities and links using the data retrieved, you can Note that in Java, there exists a library which makes this process much easier: `jackson-annotations`. +You might want to add source references to the entities and links that are returned by your connector. This allows users trace the source of the data represented by those entities and links. For information on adding source references, see [here](./source-references.md). + #### (Optional) Verify your marshalling function Test that you are successfully marshalling the data. You should be able to assert against the properties of your object to verify the expected and actual results are equal. diff --git a/docs/deploy-connector.md b/docs/deploy-connector.md index 27b6838..cc4b371 100644 --- a/docs/deploy-connector.md +++ b/docs/deploy-connector.md @@ -82,8 +82,8 @@ purposes of this guide, an example Spring Boot application is provided.

Java

-* Open the example starting code from the `nypd-connector-1` folder. Copy the - `nypd-connector` subdirectory to wherever you would like to work, and open it +* Open the example starting code from the `stage1/nypd-connector` folder. Copy the + `nypd-connector` directory to wherever you would like to work, and open it in VSCode or the IDE of your choice. * Have a look at the contents: * Resources: `config.json` and `application.properties` @@ -100,9 +100,9 @@ purposes of this guide, an example Spring Boot application is provided.

Node.js

-* Open the example starting code from the `nypd-connector-1` folder in VSCode, +* Open the example starting code from the `stage1/nypd-connector` folder in VSCode, or the IDE of your choice. -* Have a look the contents: +* Have a look at the contents: * Resources: `public/json/config.json` * Code: a simple Express application The `config.json` file tells Analyst's Notebook what services are available @@ -118,8 +118,8 @@ purposes of this guide, an example Spring Boot application is provided.

Python

-* Open the example starting code from the `nypd-connector-1` folder. Copy the - `nypd-connector` subdirectory to wherever you would like to work, and open it +* Open the example starting code from the `stage1/nypd-connector` folder. Copy the + `nypd-connector` directory to wherever you would like to work, and open it in VSCode or the IDE of your choice. * Have a look at the contents: * Resources: `config.json` @@ -161,6 +161,19 @@ your connector from Analyst's Notebook Premium. corresponds to the output you saw when using the `connectors` endpoint from Postman. +### Unsecured protocol warning message + +You might see the following warning message: + +*"Configuration error for the connector with identifier '\': The +application is communicating with the connector through a protocol that is not secure."* + +You can ignore this in a development environment. This is shown because i2 Analyze and your connector +communicate via HTTP. + +**In a production environment, you should secure this +connection using HTTPS.** For information about configuring the connection to use HTTPS, see [Client authenticated Secure Sockets Layer with the i2 Connect gateway](https://www.ibm.com/support/knowledgecenter/en/SSXVXZ_latest/com.ibm.i2.eia.go.live.doc/t_connect_security.html). + ### Fix the timezone error 1. Look at the error message about the default timezone. You need to update the `config.json` file to include a timezone. diff --git a/docs/images/ExampleJavaConnector - Shortcut.lnk b/docs/images/ExampleJavaConnector - Shortcut.lnk deleted file mode 100644 index 2456a78..0000000 Binary files a/docs/images/ExampleJavaConnector - Shortcut.lnk and /dev/null differ diff --git a/docs/images/no-ssl-warning.png b/docs/images/no-ssl-warning.png new file mode 100644 index 0000000..748424d Binary files /dev/null and b/docs/images/no-ssl-warning.png differ diff --git a/docs/images/parameterised-search.jpg b/docs/images/parameterised-search.jpg new file mode 100644 index 0000000..87afe5a Binary files /dev/null and b/docs/images/parameterised-search.jpg differ diff --git a/docs/images/postman.png b/docs/images/postman.png new file mode 100644 index 0000000..6e51129 Binary files /dev/null and b/docs/images/postman.png differ diff --git a/docs/images/seed-example.png b/docs/images/seed-example.png new file mode 100644 index 0000000..af515b6 Binary files /dev/null and b/docs/images/seed-example.png differ diff --git a/docs/index.md b/docs/index.md index 2256242..9b15d9c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,14 +11,15 @@ The documentation for understanding, deploying, and configuring the example conn 7. [Implementing seeded searches](./seeded-search.md) 8. [Implementing seeded, parameterized searches](./seeded-parameterised-search.md) 9. [Validating requests](./validation.md) +10. [Implementing Principal Propagation](./principal-propagation.md) ## Environment setup The workshop requires the following tools and technologies: -- **IBM i2 Analyze 4.3.1**: The server that hosts the i2 Connect gateway. +- **IBM i2 Analyze 4.3.2**: The server that hosts the i2 Connect gateway. -- **IBM i2 Analyst's Notebook Premium 9.2.1**: The client that provides the user +- **IBM i2 Analyst's Notebook Premium 9.2.2**: The client that provides the user interface for interacting with your connector. The client displays the resulting entity and link records with their properties. diff --git a/docs/parameterised-search.md b/docs/parameterised-search.md index 3e8851e..6049b33 100644 --- a/docs/parameterised-search.md +++ b/docs/parameterised-search.md @@ -19,7 +19,7 @@ For this service, you need to set the `clientConfigType`. In this example, you w { "id": "nypd-search-service", "name": "NYPD Connector: Search", - "description": "A service with for conditional searches", + "description": "A service for conditional searches", "clientConfigType": "FORM", "clientConfigId": "searchForm", "acquireUrl": "/search", @@ -85,7 +85,7 @@ It's time to implement these conditions. ### Add an acquire endpoint for your service i2 Analyze knows the acquire URL decided on for this service. Now you need to add the corresponding endpoint in the connector. -* You have a template to get started with; see the `nypd-connector-4` +* You have a template to get started with; see the `stage4/nypd-connector` directory provided. This includes: * An example `config.json` with a parameterised search service and search fields defined. This is just a template in case you have not already defined a new service * Changes to the `ConnectorController` class @@ -104,12 +104,12 @@ i2 Analyze knows the acquire URL decided on for this service. Now you need to ad ### Add an acquire endpoint for your service i2 Analyze knows the acquire URL decided on for this service. Now you need to add the corresponding endpoint in the connector. -* You have a template to get started with; see the `nypd-connector-4` +* You have a template to get started with; see the `stage4/nypd-connector` directory provided. This includes: * An example `config.json` with a parameterised search service and search fields defined. This is just a template in case you have not already defined a new service; * A new `validate` route; * A new `/search` endpoint in the `acquire` route; -* Open the code from the `nypd-connector-4` in VSCode, or any IDE of your choice, and start the connector. +* Open the code from the `stage4/nypd-connector` in VSCode, or any IDE of your choice, and start the connector. * You will need to implement `findComplaint` function in `socrata-data-service.js` file and fix all TODO's.

@@ -120,7 +120,7 @@ i2 Analyze knows the acquire URL decided on for this service. Now you need to ad ### Add an acquire endpoint for your service i2 Analyze knows the acquire URL decided on for this service. Now you need to add the corresponding endpoint in the connector. -* You have a template to get started with; see the `nypd-connector-4` +* You have a template to get started with; see the `stage4/nypd-connector` directory provided. This includes: * An example `config.json` with a parameterised search service and search fields defined. This is just a template in case you have not already defined a new service * Changes to the `controller.py` file diff --git a/docs/postman.md b/docs/postman.md index 166b91e..b2d8c85 100644 --- a/docs/postman.md +++ b/docs/postman.md @@ -8,6 +8,17 @@ You can use Postman collections to test the endpoint of i2 Analyze and your conn - Import the Postman environments from [here](../postman/environments); - Import the Postman collections from [here](../postman/collections); +To import the environments and collections: + +1. Click **Import**, or click **File -> Import** +2. In the **Import Folder** tab, click **Choose Folders** +3. Select the `postman` directory that you downloaded from this repository. + +The Postman collections are displayed in the left pane and a populated dropdown +list of environments near the top right of the window. + +![Example Data](images/postman.png) + ## Testing i2 Analyze To make sure that i2 Analyze has been configured correctly, use the `i2 Analyze` environment. diff --git a/docs/principal-propagation.md b/docs/principal-propagation.md new file mode 100644 index 0000000..b2192cf --- /dev/null +++ b/docs/principal-propagation.md @@ -0,0 +1,75 @@ +# Principal propagation + +i2 Analyze contains an extension point that enables you to return additional headers to any connectors from the i2 Connect gateway. The extension point requires you to write an implementation of `IConnectorRequestModifier.java`. The implementation must be packaged into a JAR file and deployed to i2 Analyze. The following example demonstrates how to use Maven to do this and how to configure i2Analyze to use your implementation. + +## Overview + +For i2 Analyze to use your implementation, complete the following tasks: + +1. Create and package your implementation of `IConnectorRequestModifier.java` +2. Configure i2 Analyze to use your packaged implementation +4. Redeploy and restart Liberty to update your deployment + +## Prerequisites + +- Java installed + +## The principal propagation project + +Update the value of the `` element in [pom.xml](../code/principal-propagation/pom.xml) file to reference the installation location of i2Analyze. For example, `C:\IBM\i2Analyze`. +This location is used by Maven to locate the JAR files to pull into the local Maven repository and where to place the packaged JAR file that contains your implementation. + +To set up the Maven environment, open a terminal in the `principal-propagation` directory. + +1. Initialize the Maven dependencies: + > `mvnw initialize` + + This pulls in JAR files from the i2 Analyze deployment toolkit into your local Maven repository. +2. Compile and install the project: + > `mvnw clean install` + +At this point, you could start editing the implementation in [PrincipalPropagation.java](..\code\principal-propagation\src\main\java\com\i2group\example\PrincipalPropagation.java). For the example implementation, do not make any changes. + +## Deploy the principal propagation implementation + +When the implementation is complete, package the class into a JAR file. + +Open a terminal in the `principal-propagation` folder and run the following command: + +> `mvnw package` + +The Maven `package` command creates a JAR file from the the `PrincipalPropagation.java` class and puts it in the `toolkit/configuration/fragments/opal-services/WEB-INF/lib/` directory of the i2 Analyze toolkit specified in the `` element. + +## Configuring i2Analyze + +For i2Analyze to use the `PrincipalPropagation.jar`, it must be specified in the `DiscoServerSettingsCommon.properties` file. + +Add the following line to the end of the `toolkit/configuration/fragments/opal-services/WEB-INF/lib/classes/DiscoServerSettingsCommon.properties` file: + +> ConnectorRequestModifier=com.i2group.example.PrincipalPropagation + +## Redeploy and Restart Liberty + +1. Stop Liberty: + >`setup -t stopLiberty` +2. Redeploy Liberty: + >`setup -t deployLiberty` +3. Start Liberty: + >`setup -t startLiberty` + +Any connectors receive an extra header named `i2ExtensionHeader` in responses from the i2 Connect gateway. + +For example: + +``` +{ + 'content-type': 'application/json', + 'accept-language': 'en-GB-u-ca-gregory', + i2ExtensionHeader: 'Jenny', + 'content-length': '92', + host: 'localhost:3700', + connection: 'Keep-Alive', + 'user-agent': 'Apache-HttpClient/4.5.6 (Java/1.8.0_232)', + 'accept-encoding': 'gzip,deflate' +} +``` diff --git a/docs/seeded-search.md b/docs/seeded-search.md index e0a8317..90f8822 100644 --- a/docs/seeded-search.md +++ b/docs/seeded-search.md @@ -90,7 +90,7 @@ It's time to implement these conditions. i2 Analyze knows the acquire URL decided on for this service. Now you need to add the corresponding endpoint in the connector. -* You have a template to get started with; see the `nypd-connector-5` folder +* You have a template to get started with; see the `stage5/nypd-connector` folder provided. This includes: * An example `config.json` with a seeded search service defined. This is just a template in case you have not already defined a new service. * Changes to `ConnectorController`. @@ -106,12 +106,12 @@ add the corresponding endpoint in the connector. i2 Analyze knows the acquire URL decided on for this service. Now you need to add the corresponding endpoint in the connector. -* You have a template to get started with; see the `nypd-connector-5` folder +* You have a template to get started with; see the `stage5/nypd-connector` folder provided. This includes: * An example `config.json` with a seeded search service defined. This is just a template in case you have not already defined a new service; * Changes to `acquire` route to reflect changes in `config.json`; * Chagnes to `socrata-data-service.js` file to have all the functions needed for `acquire` route; -* Open the code from the `nypd-connector-5` in VSCode, or any IDE of your choice, and start the connector. +* Open the code from the `stage5/nypd-connector` in VSCode, or any IDE of your choice, and start the connector. * You will need to implement functions defined in `socrata-data-service.js` file and fix all TODO's.

@@ -122,7 +122,7 @@ add the corresponding endpoint in the connector. i2 Analyze knows the acquire URL decided on for this service. Now you need to add the corresponding endpoint in the connector. -* You have a template to get started with; see the `nypd-connector-5` folder +* You have a template to get started with; see the `stage5/nypd-connector` folder provided. This includes: * An example `config.json` with a seeded search service defined. This is just a template in case you have not already defined a new service. * Changes to `controller.py`. diff --git a/docs/source-references.md b/docs/source-references.md new file mode 100644 index 0000000..fa78d8e --- /dev/null +++ b/docs/source-references.md @@ -0,0 +1,47 @@ +# Source References + +You might want to include source references in entity and link data to preserve the route back to the external source. Entity and link objects support the inclusion of source reference objects. + +The structure of a source reference object is as follows: + +```js +{ + "id": String, + "source": { + "name": String, + "type": String, + "description": String, + "location": String, + "image": String + }, + "userModifiable": Boolean +} +``` + +Note that the `source` field and its corresponding `name` field are the only mandatory fields. + +#### Example + +The following JSON object shows how a source references fits into the structure of an entity object: + +```json +{ + "id": "123", + "typeId": "ET1", + "version": 1, + "properties": { + "PT16": "MANHATTAN" + }, + "sourceReference": { + "id": "SR01", + "source": { + "name": "Source Dataset", + "type": "Open source data", + "description": "A source reference to the corresponding record from the dataset.", + "location": "https://data.cityofnewyork.us/resource/7x9x-zpz6.json?$where=cmplnt_num=123456789", + "image": "https://github.ibm.com/ibmi2/Connect-Examples/tree/master/docs/images/nypd-dataset-webpage.png?raw=true" + }, + "userModifiable": false + } +} +``` diff --git a/docs/spi-examples.md b/docs/spi-examples.md index 3be6129..45ddb44 100644 --- a/docs/spi-examples.md +++ b/docs/spi-examples.md @@ -1,5 +1,5 @@ # i2 Connect SPI examples -You can use the following example `DaodRequest`s and `ConnectorResponse`s to help +You can use the following example requests and responses to help understand how parameterised and seeded search services work. ## Example data @@ -7,24 +7,32 @@ Throughout, assume you are querying the following set of entities and links. ![Example Data](images/example-data.png) -In the example schema, there are the following Type IDs for each of the -entity, link, and property types used: +The following are the type IDs corresponding to each of the entity, link and +property types used in the example schema: - Item | ID ----------------------|--------- - Complaint | ET1 - \- Complaint Number | PT1 - Location | ET2 - \- Borough Name | PT16 - Person | ET3 - \- Age Group | PT26 - \- Race | PT27 - \- Gender | PT28 - Located At | LT1 - Suspect Of | LT2 - Victim Of | LT3 +-------------------------------- + Entity | ID +----------------------|--------- + Complaint | ET1 + Location | ET2 + Person | ET3 +-------------------------------- + Link | ID +----------------------|--------- + Located At | LT1 + Suspect Of | LT2 + Victim Of | LT3 +--------------------------------------------- + Properties | For Entity | ID +----------------------|------------|--------- + Complaint Number | Complaint | PT1 + Borough Name | Location | PT16 + Age Group | Person | PT26 + Race | Person | PT27 + Gender | Person | PT28 +--------------------------------------------- -This can be represented as a set of entities and links in JSON as follows. +This can be represented as a set of entities and links in JSON as follows: ```json { "entities": [ @@ -207,12 +215,13 @@ This can be represented as a set of entities and links in JSON as follows. ``` ## Parameterised search -### Search for people by age + To implement a service to search for people by age group, you can define a -clientConfig in `config.json` like the following: +`clientConfig` in `config.json` like the following: ```json { "id": "age-search-form", + "type": "FORM", "config": { "sections": [ { @@ -220,8 +229,8 @@ clientConfig in `config.json` like the following: { "id": "age-group-search-term", "label": "Age Group", - "mandatory": true, - "logicalType": "SINGLE_LINE_STRING" + "logicalType": "SINGLE_LINE_STRING", + "mandatory": true } ] } @@ -229,6 +238,18 @@ clientConfig in `config.json` like the following: } } ``` +The `id` should be a unique identifier for this `clientConfig`. Then the services you define can use this form by supplying this `id` in the service's `clientConfigId` field. + +The `config` contains `sections` and each section contains a JSON object defining a condition field depicted below: + +![Example Data](images/parameterised-search.jpg) + +- The condition `id` is used as a reference for the value in the request. +- The `label` is the field title as shown in `[1]` above. +- The `logicalType` defines the accepted data type of the request value entry `[2]`. +- The `mandatory` field specifies whether a value is required for the field. Empty mandatory fields are highlighted red and shown a warning message `[3]`. + + A `DaodRequest` issued by i2 Analyze when a user runs this search might look like this: ```json @@ -245,11 +266,14 @@ like this: } } ``` -You can see that they are searching for person entities with age group property -equal to "18-24". Using the data the connector has, you can then filter through -the entities to find ones that are person entities, i.e. have `typeId` equal to - `"ET3"`, and have the age group property `PT26` equal to `"18-24"`. The response, - using the example data above, would look like this: + +The request searches for Person entities where the Age Group property is equal +to "18-24". In the implementation of the parameterised search service, you would +filter through the data and find entities which satisfy the request +requirements, i.e. have `typeId` equal to `"ET3"` and have the Age Group +property `PT26` equal to `"18-24"`. The response, from the example request +above, would look like this: + ```json { "entities": [ @@ -280,17 +304,20 @@ the entities to find ones that are person entities, i.e. have `typeId` equal to ## Seeded search Seeded searches take as input a set of entities and links that a user already -has on their chart. The search then uses this information when finding results. -The examples to go over are: -* Find Like This, where a user is able to select a single entity and search for +has on their chart and uses this information when finding results. + +![Seed Example](images/seed-example.png) + +The example operations to go over are: +* Find-Like-This, where a user is able to select a single entity and search for other entities of the same type with similar properties; and * Expand, where a user can select an entity on their chart and search for all other entities that are connected to it by a link, and all those entities and links will be returned. -### Find Like This -A DaodRequest receieved by the connector for a Find Like This search on the -example data could look something like the following. +### Find-Like-This +A `DaodRequest` received by the connector for a Find-Like-This search on the +example data could look something like the following: ```json { @@ -325,20 +352,20 @@ example data could look something like the following. } ``` -You can deduce which of the entities the `daodSeedEntity` in this request -corresponds to by looking at the key in the sourceIds field. The third element +You can deduce which of the entities the `DaodSeedEntity` in this request +corresponds to by looking at the key in the `sourceIds` field. The third element of this list gives us the ID we have assigned the entity in our connector, -`"jkl"`. You also have its type ID `"ET3"`, so it is a person entity. Have a look +`"jkl"`. You also have its type ID `"ET3"`, so it is a Person entity. Have a look at the data above and find this entity. -To perform a Find Like This search using this seed entity, you need only use its +To perform a Find-Like-This search using this seed entity, you need only use its properties. We can filter through our list of entities for those which have -`typeId` equal to `"ET3"` (are person entities), and have the properties: -* `PT26` equal to `"F"`, i.e. it's a female; +`typeId` equal to `"ET3"` (are Person entities) and have the properties: +* `PT26` equal to `"F"`, i.e. they are female; * `PT27` equal to `"White"`, i.e. they are a white female; and -* `PT28` equal to `"<18"`, i.e. they are a a white female under 18 years of age. +* `PT28` equal to `"<18"`, i.e. they are a white female under 18 years of age. -After excluding the seed entity itself, yopu would return the following. +After excluding the seed entity itself, you would return the following: ```json { @@ -358,10 +385,8 @@ After excluding the seed entity itself, yopu would return the following. } ``` - - ### Expand -A daodRequest received by the connector for an Expand service might look like +A `DaodRequest` received by the connector for an Expand service might look like this: ```json @@ -394,7 +419,7 @@ this: } } ``` -Again you can deduce which of our entities the `daodSeedEntity` corresponds to by +Again, you can deduce which of our entities the `DaodSeedEntity` corresponds to by looking at the `sourceIds`. The `id` of the entity in question is `"123"` and it has `typeID` equal to `"ET1"`, so it is a complaint. Look at the example data above and find which entity you are expanding. What would you expect an Expand operation to @@ -405,7 +430,7 @@ To perform an Expand operation with this entity as the seed, you need to: through all the links and finding those with a `fromEndId` or a `toEndId` equal to the `id` of the entity, `"jkl"`. 2. Find all entities at the other end of these links. This can be done by using - the `fromEndId`s and `toEndIds` of the links found in step 1 - just use the + the `fromEndId`s and `toEndId`s of the links found in step 1 - just use the end ID that does not correspond to the seed entity. If returning these entities and links as-is, along with the entity corresponding @@ -479,18 +504,18 @@ to the seed, you would respond with: ] } ``` -When copying these results to a chart, the seed entity would be duplicated, +When copying these results to a chart, the seed entity would be duplicated along with all its links and connected entities that may already be on the -chart, which would all be connected to the duplicate. +chart which would all be connected to the duplicate. Depending on how you want the service to function, you might prefer to have the -returned items connected to the entity that you select on the chart, rather than -to a duplicate. In this case, you need to change all `id`, `fromEndId`, and the +returned items connected to the entity that you selected on the chart rather than +to a duplicate. In this case, you need to change all `id`, `fromEndId` and `toEndId` fields that refer to the ID of the seed entity (in this case "123") to -`seedId` of the `daodSeedEntity` in the request, i.e. +`seedId` of the `DaodSeedEntity` in the request, i.e. `"1e756171-fb3c-40a4-b7c5-5c537fbf0adc"`. -In this case, you would return the following response:" +In this case, you would return the following response: ```json { diff --git a/docs/troubleshoot.md b/docs/troubleshoot.md index f9a44e2..757e313 100644 --- a/docs/troubleshoot.md +++ b/docs/troubleshoot.md @@ -36,8 +36,8 @@ Problems might include: definition - invalid default timezone: make sure you set a `timeZoneId` in the `defaultValues` section of your connector configuration -- The application is comunicating with the connector through a protocol that is - insecure. You will see this because i2Analyze and your connector communicate +- The application is communicating with the connector through a protocol that is + insecure. You will see this because i2 Analyze and your connector communicate via HTTP. In a production environment, you should secure this connection by using HTTPS. This is beyond the scope of this guide, but is covered in the Knowledge Centre @@ -64,7 +64,7 @@ number of potential causes. To understand what went wrong: Below this line will be more specific information about why the query failed. Examples and their solutions are given below. -#### "The schema does not contain an entity/a link/a property or with identifier '\'" +#### "The schema does not contain an entity/a link/a property with identifier '\'" This means you have supplied an entity or link with a `typeId` that does not exist in your schema. Check that the `typeId` you supplied is not a typo.