Implement Spring Profile Sparky Config 43/56643/1
authorda490c <dave.adams@amdocs.com>
Tue, 17 Jul 2018 18:04:07 +0000 (14:04 -0400)
committerda490c <dave.adams@amdocs.com>
Tue, 17 Jul 2018 18:12:36 +0000 (14:12 -0400)
Issue-ID: AAI-1379
Change-Id: I5d56b766f681452abe7e61b307e008bc5a695814
Signed-off-by: da490c <dave.adams@amdocs.com>
58 files changed:
sparkybe-onap-application/config/application-camel.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-fe-dev.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-fe-prod.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-gizmo.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-http.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-oxm-override.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-oxm-schema-dev.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-oxm-schema-prod.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-portal.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-resources.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-ssl.properties [new file with mode: 0644]
sparkybe-onap-application/config/application-sync.properties [new file with mode: 0644]
sparkybe-onap-application/config/application.properties [new file with mode: 0644]
sparkybe-onap-application/config/auth/client-cert-onap.p12 [new file with mode: 0644]
sparkybe-onap-application/config/auth/csp-cookie-filter.properties [new file with mode: 0644]
sparkybe-onap-application/config/auth/tomcat_keystore [new file with mode: 0644]
sparkybe-onap-application/config/descriptors/aaiEntityNodeDescriptors.json [new file with mode: 0644]
sparkybe-onap-application/config/filters/aaiui_filters.json [new file with mode: 0644]
sparkybe-onap-application/config/filters/aaiui_views.json [new file with mode: 0644]
sparkybe-onap-application/config/filters/subscription_object_inspector_mapping.json [new file with mode: 0644]
sparkybe-onap-application/config/logging/logback.xml [new file with mode: 0644]
sparkybe-onap-application/config/portal/BOOT-INF/classes/portal.properties [new file with mode: 0644]
sparkybe-onap-application/config/portal/portal-authentication.properties [new file with mode: 0644]
sparkybe-onap-application/config/portal/roles.config [new file with mode: 0644]
sparkybe-onap-application/config/schemaIngest.properties [new file with mode: 0644]
sparkybe-onap-application/config/schemas/autoSuggestMappings.json [new file with mode: 0644]
sparkybe-onap-application/config/schemas/autoSuggestSettings.json [new file with mode: 0644]
sparkybe-onap-application/config/schemas/dynamicMappings.json [new file with mode: 0644]
sparkybe-onap-application/config/schemas/entityCountHistoryMappings.json [new file with mode: 0644]
sparkybe-onap-application/config/schemas/es_mappings.json [new file with mode: 0644]
sparkybe-onap-application/config/schemas/es_settings.json [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-aggregate-vnf-search-provider.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-elasticsearch.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-filters.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-gizmo.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-global-search.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-oxm-default.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-oxm-override.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-oxm.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-resources.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-search-service.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-subscription-service.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-sync.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-view-inspect-search-provider.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-view-inspect-with-gizmo.xml [new file with mode: 0644]
sparkybe-onap-application/config/spring-beans/sparky-view-inspect-with-resources.xml [new file with mode: 0644]
sparkybe-onap-application/pom.xml
sparkybe-onap-application/src/main/docker/Dockerfile
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/Application.java
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/aai/FrontEndLayoutApi.java
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/FilterAggregationRouter.java [moved from sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkySslConfigLoader.java with 69% similarity]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/FilterRequestRouter.java [moved from sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkyHttpConfigLoader.java with 69% similarity]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/GlobalSearchRouter.java [moved from sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkyConfigLoader.java with 72% similarity]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/SubscriptionRouter.java [new file with mode: 0644]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/ViewInspectRouter.java [new file with mode: 0644]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/CamelConfiguration.java [new file with mode: 0644]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/portal/PortalBean.java [new file with mode: 0644]
sparkybe-onap-application/src/main/scripts/start.sh

diff --git a/sparkybe-onap-application/config/application-camel.properties b/sparkybe-onap-application/config/application-camel.properties
new file mode 100644 (file)
index 0000000..03a7f20
--- /dev/null
@@ -0,0 +1,3 @@
+camel.springboot.name = SparkyCamelContext
+#camel.springboot.xmlRests = file:${CONFIG_HOME}/camel-rests/*.xml
+camel.component.servlet.mapping.context-path=/rest/*
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-fe-dev.properties b/sparkybe-onap-application/config/application-fe-dev.properties
new file mode 100644 (file)
index 0000000..bba6656
--- /dev/null
@@ -0,0 +1,7 @@
+
+server.servlet.context-path=/services/aai/webapp/
+
+#
+#  attempt to externalize ui JS classes + resources
+#
+spring.resources.static-locations=file:${APP_HOME}/target/static/
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-fe-prod.properties b/sparkybe-onap-application/config/application-fe-prod.properties
new file mode 100644 (file)
index 0000000..b332358
--- /dev/null
@@ -0,0 +1,7 @@
+
+server.servlet.context-path=/services/aai/webapp/
+
+#
+#  attempt to externalize ui JS classes + resources
+#
+spring.resources.static-locations=file:${APP_HOME}/static/
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-gizmo.properties b/sparkybe-onap-application/config/application-gizmo.properties
new file mode 100644 (file)
index 0000000..e988873
--- /dev/null
@@ -0,0 +1,7 @@
+gizmo.hostname=127.0.0.1
+gizmo.port=9520
+gizmo.authType=SSL_CERT
+gizmo.client-cert=client-cert-onap.p12
+gizmo.client-cert-password=1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+gizmo.trust-store=tomcat_keystore
+gizmo.apiVersion=v12
diff --git a/sparkybe-onap-application/config/application-http.properties b/sparkybe-onap-application/config/application-http.properties
new file mode 100644 (file)
index 0000000..f81a597
--- /dev/null
@@ -0,0 +1 @@
+server.port = 9517
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-oxm-override.properties b/sparkybe-onap-application/config/application-oxm-override.properties
new file mode 100644 (file)
index 0000000..1fa006e
--- /dev/null
@@ -0,0 +1 @@
+oxm.apiVersionOverride=V11
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-oxm-schema-dev.properties b/sparkybe-onap-application/config/application-oxm-schema-dev.properties
new file mode 100644 (file)
index 0000000..66efe1d
--- /dev/null
@@ -0,0 +1 @@
+oxm.schemaNodeDir=${APP_HOME}/target/oxm
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-oxm-schema-prod.properties b/sparkybe-onap-application/config/application-oxm-schema-prod.properties
new file mode 100644 (file)
index 0000000..111a63f
--- /dev/null
@@ -0,0 +1 @@
+oxm.schemaNodeDir=${APP_HOME}/oxm
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-portal.properties b/sparkybe-onap-application/config/application-portal.properties
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/sparkybe-onap-application/config/application-resources.properties b/sparkybe-onap-application/config/application-resources.properties
new file mode 100644 (file)
index 0000000..2a7770f
--- /dev/null
@@ -0,0 +1,8 @@
+resources.hostname=127.0.0.1
+resources.port=8443
+resources.authType=SSL_BASIC
+resources.basicAuthUserName=AAI
+resources.basicAuthPassword=AAI
+resources.client-cert=client-cert-onap.p12
+resources.client-cert-password=1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+resources.trust-store=tomcat_keystore
diff --git a/sparkybe-onap-application/config/application-ssl.properties b/sparkybe-onap-application/config/application-ssl.properties
new file mode 100644 (file)
index 0000000..04ff25b
--- /dev/null
@@ -0,0 +1,3 @@
+server.port = 8000
+server.ssl.key-store=file:${CONFIG_HOME}/auth/tomcat_keystore
+server.ssl.key-store-password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application-sync.properties b/sparkybe-onap-application/config/application-sync.properties
new file mode 100644 (file)
index 0000000..4fb10a2
--- /dev/null
@@ -0,0 +1,6 @@
+aggregationSyncEnabled=true
+historicalEntitySyncEnabled=true
+autoSuggestSyncEnabled=true
+vnfAliasSyncEnabled=true
+geoSyncEnabled=true
+viewInspectSyncEnabled=true
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/application.properties b/sparkybe-onap-application/config/application.properties
new file mode 100644 (file)
index 0000000..54f4f40
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# disable the default thyme leaf icon on web-pages
+#
+spring.mvc.favicon.enabled=false
+
+#possible values: camel,http,ssl,portal,fe-dev,fe-prod,oxm-default,oxm-override,[resources|gizmo],sync,oxm-schema-prod
+spring.profiles.active=camel,ssl,fe-dev,oxm-schema-dev,resources,sync
+
+elasticsearch.hostname=127.0.0.1
+elasticsearch.port=9200
+
+searchservice.hostname=127.0.0.1
+searchservice.port=9502
+searchservice.client-cert=client-cert-onap.p12
+searchservice.client-cert-password=1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+searchservice.truststore=tomcat_keystore
diff --git a/sparkybe-onap-application/config/auth/client-cert-onap.p12 b/sparkybe-onap-application/config/auth/client-cert-onap.p12
new file mode 100644 (file)
index 0000000..dbf4fca
Binary files /dev/null and b/sparkybe-onap-application/config/auth/client-cert-onap.p12 differ
diff --git a/sparkybe-onap-application/config/auth/csp-cookie-filter.properties b/sparkybe-onap-application/config/auth/csp-cookie-filter.properties
new file mode 100644 (file)
index 0000000..48984cd
--- /dev/null
@@ -0,0 +1,18 @@
+# AT&T Global login page. This is the redirect URL
+# Production login page:
+#   https://www.e-access.att.com/empsvcs/hrpinmgt/pagLogin/
+# 
+# Test login page:
+#   https://webtest.csp.att.com/empsvcs/hrpinmgt/pagLogin/
+global.login.url=<%= @GLOBAL_LOGIN_URL %>
+
+# MOTS ID of the application
+application.id=24153
+
+# valid domains for open redirect
+redirect-domain=<%= @VALID_REDIRECT_DOMAIN %>
+
+# Required by esGateKeeper. Valid values are:
+# DEVL - used during development
+# PROD - used in production
+gatekeeper.environment=<%= @GATEKEEPER_ENV %>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/auth/tomcat_keystore b/sparkybe-onap-application/config/auth/tomcat_keystore
new file mode 100644 (file)
index 0000000..9eec841
Binary files /dev/null and b/sparkybe-onap-application/config/auth/tomcat_keystore differ
diff --git a/sparkybe-onap-application/config/descriptors/aaiEntityNodeDescriptors.json b/sparkybe-onap-application/config/descriptors/aaiEntityNodeDescriptors.json
new file mode 100644 (file)
index 0000000..e72bab0
--- /dev/null
@@ -0,0 +1,218 @@
+{
+       "generalNodeClass": {
+               "class": "aai-entity-node general-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "16"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "33"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               }]
+       },
+       "searchedNodeClass": {
+               "class": "aai-entity-node search-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "16"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "33"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               }]
+       },
+       "selectedSearchedNodeClass": {
+               "class": "aai-entity-node selected-search-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "31"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "20"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "63"
+                               }
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_ellipses",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "33",
+                                       "y": "-35"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_triangle_warning",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "46",
+                                       "y": "-12"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               }]
+       },
+       "selectedNodeClass": {
+               "class": "aai-entity-node selected-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "31"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "20"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "63"
+                               }
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_ellipses",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "33",
+                                       "y": "-35"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_triangle_warning",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "46",
+                                       "y": "-12"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               }]
+       }
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/filters/aaiui_filters.json b/sparkybe-onap-application/config/filters/aaiui_filters.json
new file mode 100644 (file)
index 0000000..e053442
--- /dev/null
@@ -0,0 +1,95 @@
+{
+       "filters": [{
+               "filterId": "1",
+               "filterName": "Orchestration-Status",
+               "displayName": "Orchestration Status",
+               "dataType": "dropDown",
+               "multiSelect": "false",
+               "watermark": "Any Orchestration Status",
+               "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "orchestration-status"
+               }
+       },
+       {
+               "filterId": "2",
+               "filterName": "Prov-Status",
+               "displayName": "Provisioning Status",
+               "dataType": "dropDown",
+               "multiSelect": "false",
+               "watermark": "Any Provisioning Status",
+               "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "prov-status"
+               }
+       },
+       {
+               "filterId": "5",
+               "filterName": "Date",
+               "displayName": "Date",
+               "dataType": "date",
+               "multiSelect": "false",
+               "watermark": "Choose Date Range",
+               "defaultValue": {
+                       "decode": "Today",
+                       "code": "last_0_hours"
+               },
+               "optionsType": "dynamicOptions",
+               "optionsValues": [{
+                       "decode": "Today",
+                       "code": "last_0_hours"
+               },
+               {
+                       "decode": "Since Yesterday",
+                       "code": "last_1_days"
+               },
+               {
+                       "decode": "Since Last Week",
+                       "code": "last_1_weeks"
+               },
+               {
+                       "decode": "Since Last Month",
+                       "code": "last_1_months"
+               },
+               {
+                       "decode": "Since Last Year",
+                       "code": "last_1_years"
+               },
+               {
+                       "decode": "Custom Range",
+                       "code": "custom_range"
+               }]
+       },
+       {
+               "filterId": "7",
+               "filterName": "nf-type",
+               "displayName": "Network Function Type",
+               "dataType": "dropDown",
+               "multiSelect": "false",
+               "watermark": "Any Network Function Type",
+               "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "nf-type"
+               }
+       },
+       {
+               "filterId": "8",
+               "filterName": "nf-role",
+               "displayName": "Network Function Role",
+               "dataType": "dropDown",
+               "multiSelect": "false",
+               "watermark": "Any Network Function Role",
+               "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "nf-role"
+               }
+       }]
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/filters/aaiui_views.json b/sparkybe-onap-application/config/filters/aaiui_views.json
new file mode 100644 (file)
index 0000000..74206fb
--- /dev/null
@@ -0,0 +1,17 @@
+{
+       "views": [{
+               "viewName": "vnfSearch",
+               "filters": [{
+                       "filterId": "2"
+               },
+               {
+                       "filterId": "1"
+               },
+               {
+                       "filterId": "7"
+               },
+               {
+                       "filterId": "8"
+               }]
+       }]
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/filters/subscription_object_inspector_mapping.json b/sparkybe-onap-application/config/filters/subscription_object_inspector_mapping.json
new file mode 100644 (file)
index 0000000..ad2ab7a
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "target": "",
+    "origin": "",
+    "messageType": "",
+    "topic": "",
+    "message": {
+        "applicationName": "",
+        "payload": {
+            "action": "",
+            "params": {
+                "objectName": "",
+                "externalClassId": ""
+            }
+        }
+    }
+}
diff --git a/sparkybe-onap-application/config/logging/logback.xml b/sparkybe-onap-application/config/logging/logback.xml
new file mode 100644 (file)
index 0000000..3d132b7
--- /dev/null
@@ -0,0 +1,172 @@
+<configuration scan="true" scanPeriod="3 seconds" debug="false">
+        <!--<jmxConfigurator /> -->
+        <!-- directory path for all other type logs -->
+
+        <property name="logDir" value="/var/log/onap" />
+
+        <!-- <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy"
+                | "SDNC" | "AC" -->
+        <property name="componentName" value="AAI-UI"></property>
+
+        <!-- default eelf log file names -->
+        <property name="generalLogName" value="error" />
+        <property name="metricsLogName" value="metrics" />
+        <property name="auditLogName" value="audit" />
+        <property name="debugLogName" value="debug" />
+
+        <property name="errorLogPattern"
+                value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|AAIUI|%mdc{PartnerName}|%logger|%.-5level|%msg%n" />
+        <property name="auditMetricPattern" value="%m%n" />
+
+        <property name="logDirectory" value="${logDir}/${componentName}" />
+
+
+        <!-- Example evaluator filter applied against console appender -->
+        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+                <encoder>
+                        <pattern>${errorLogPattern}</pattern>
+                </encoder>
+        </appender>
+
+        <!-- ============================================================================ -->
+        <!-- EELF Appenders -->
+        <!-- ============================================================================ -->
+
+        <!-- The EELFAppender is used to record events to the general application
+                log -->
+
+        <appender name="EELF"
+                class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${logDirectory}/${generalLogName}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                        <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
+                        </fileNamePattern>
+                        <maxHistory>60</maxHistory>
+                </rollingPolicy>
+                <encoder>
+                        <pattern>${errorLogPattern}</pattern>
+                </encoder>
+        </appender>
+        <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+                <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+                <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                        <level>INFO</level>
+                </filter>
+                <queueSize>256</queueSize>
+                <appender-ref ref="EELF" />
+        </appender>
+
+
+        <!-- EELF Audit Appender. This appender is used to record audit engine related
+                logging events. The audit logger and appender are specializations of the
+                EELF application root logger and appender. This can be used to segregate
+                Policy engine events from other components, or it can be eliminated to record
+                these events as part of the application root log. -->
+
+        <appender name="EELFAudit"
+                class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${logDirectory}/${auditLogName}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                        <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
+                        </fileNamePattern>
+                        <maxHistory>60</maxHistory>
+                </rollingPolicy>
+                <encoder>
+                        <pattern>${auditMetricPattern}</pattern>
+                </encoder>
+        </appender>
+        <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+                <queueSize>256</queueSize>
+                <appender-ref ref="EELFAudit" />
+        </appender>
+
+        <appender name="EELFMetrics"
+                class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${logDirectory}/${metricsLogName}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                        <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip
+                        </fileNamePattern>
+                        <maxHistory>60</maxHistory>
+                </rollingPolicy>
+                <encoder>
+                        <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n"</pattern> -->
+                        <pattern>${auditMetricPattern}</pattern>
+                </encoder>
+        </appender>
+
+
+        <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+                <queueSize>256</queueSize>
+                <appender-ref ref="EELFMetrics" />
+        </appender>
+
+        <appender name="EELFDebug"
+                class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${logDirectory}/${debugLogName}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                        <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip
+                        </fileNamePattern>
+                        <maxHistory>60</maxHistory>
+                </rollingPolicy>
+                <encoder>
+                        <pattern>${errorLogPattern}</pattern>
+                </encoder>
+        </appender>
+
+        <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+                <queueSize>256</queueSize>
+                <appender-ref ref="EELFDebug" />
+                <includeCallerData>false</includeCallerData>
+        </appender>
+
+        <!-- ============================================================================ -->
+        <!-- EELF loggers -->
+        <!-- ============================================================================ -->
+        <logger name="com.att.eelf" level="info" additivity="false">
+                <appender-ref ref="asyncEELF" />
+                <appender-ref ref="asyncEELFDebug" />
+        </logger>
+
+        <logger name="com.att.eelf.audit" level="info" additivity="false">
+                <appender-ref ref="asyncEELFAudit" />
+        </logger>
+        <logger name="com.att.eelf.metrics" level="info" additivity="false">
+                <appender-ref ref="asyncEELFMetrics" />
+        </logger>
+
+        <!-- Spring related loggers -->
+        <logger name="org.springframework" level="WARN" />
+        <logger name="org.springframework.beans" level="WARN" />
+        <logger name="org.springframework.web" level="WARN" />
+        <logger name="com.blog.spring.jms" level="WARN" />
+
+        <!-- Sparky loggers -->
+        <logger name="org.onap" level="INFO" />
+
+        <!-- Other Loggers that may help troubleshoot -->
+        <logger name="net.sf" level="WARN" />
+        <logger name="org.apache.commons.httpclient" level="WARN" />
+        <logger name="org.apache.commons" level="WARN" />
+        <logger name="org.apache.coyote" level="WARN" />
+        <logger name="org.apache.jasper" level="WARN" />
+
+        <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+                May aid in troubleshooting) -->
+        <logger name="org.apache.camel" level="WARN" />
+        <logger name="org.apache.cxf" level="WARN" />
+        <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+        <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+        <logger name="org.apache.cxf.service" level="WARN" />
+        <logger name="org.restlet" level="WARN" />
+        <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+        <!-- logback internals logging -->
+        <logger name="ch.qos.logback.classic" level="WARN" />
+        <logger name="ch.qos.logback.core" level="WARN" />
+
+        <root>
+                <appender-ref ref="asyncEELF" />
+                <!-- <appender-ref ref="asyncEELFDebug" /> -->
+        </root>
+
+</configuration>
diff --git a/sparkybe-onap-application/config/portal/BOOT-INF/classes/portal.properties b/sparkybe-onap-application/config/portal/BOOT-INF/classes/portal.properties
new file mode 100644 (file)
index 0000000..ca6b34b
--- /dev/null
@@ -0,0 +1,21 @@
+# Java class that implements the ECOMP role and user mgt API
+portal.api.impl.class=org.openecomp.sparky.security.portal.PortalRestAPIServiceImpl
+# Instance of ECOMP Portal where the app has been on-boarded
+# ecomp_rest_url=http://ecomp.homer.att.com/ecompportal/auxapi
+# use insecure http for dev purposes to avoid self-signed certificate
+ecomp_rest_url=<%= @ECOMP_REST_URL %>
+
+### CSP-SSO
+# Standard global logon page
+ecomp_redirect_url=<%= @ECOMP_REDIRECT_URL %>
+# Test global logon page only accepts registered users
+# ecomp_redirect_url=https://webtest.csp.att.com/ecompportal/ecompportal/process_csp
+# CSP settings
+csp_cookie_name=<%= @CSP_COOKIE_NAME %>
+# Alternate values: DEVL, V_DEVL, V_PROD
+csp_gate_keeper_prod_key=PROD
+
+# No use of UEB; however, this key is used to identify the app.
+ueb_listeners_enable=false
+# cl778h demo app
+ueb_app_key=<%= @UEB_APP_KEY %>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/portal/portal-authentication.properties b/sparkybe-onap-application/config/portal/portal-authentication.properties
new file mode 100644 (file)
index 0000000..a49cc69
--- /dev/null
@@ -0,0 +1,3 @@
+username=admin
+password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+onap_enabled=true
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/portal/roles.config b/sparkybe-onap-application/config/portal/roles.config
new file mode 100644 (file)
index 0000000..b8313bd
--- /dev/null
@@ -0,0 +1,6 @@
+[
+  {
+    "id":1,
+    "name":"View"
+  }
+]
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/schemaIngest.properties b/sparkybe-onap-application/config/schemaIngest.properties
new file mode 100644 (file)
index 0000000..4d06763
--- /dev/null
@@ -0,0 +1,7 @@
+# Properties for the SchemaLocationsBean
+# The AAI Schema jar will be unpacked 
+schemaConfig=NA
+# Files named aai_oxm_v*.xml are unpacked here:
+nodeDir=${oxm.schemaNodeDir}
+# Dummy folder/directory:
+edgeDir=
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/schemas/autoSuggestMappings.json b/sparkybe-onap-application/config/schemas/autoSuggestMappings.json
new file mode 100644 (file)
index 0000000..7857617
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "properties" : {
+               "entity_suggest" : {
+               "type" : "completion",
+                     "payloads" : true,
+                         "analyzer" : "custom_analyzer",
+                         "preserve_position_increments": false
+               }
+       }
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/schemas/autoSuggestSettings.json b/sparkybe-onap-application/config/schemas/autoSuggestSettings.json
new file mode 100644 (file)
index 0000000..4525be1
--- /dev/null
@@ -0,0 +1,21 @@
+{
+        "analysis": {
+               "filter": {
+                "eng_stop": {
+                    "type":       "stop",
+                    "stopwords": "_english_"
+                }
+            },
+               "analyzer": {
+                   "custom_analyzer": {
+                       "type": "custom",
+                       "tokenizer": "standard",
+                       "filter": [
+                               "lowercase",
+                           "asciifolding",
+                           "eng_stop"
+                       ]
+                   }
+               }
+       }
+   }
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/schemas/dynamicMappings.json b/sparkybe-onap-application/config/schemas/dynamicMappings.json
new file mode 100644 (file)
index 0000000..09a00ac
--- /dev/null
@@ -0,0 +1,14 @@
+{
+  "dynamic_templates": [
+       {
+         "strings": {
+               "match_mapping_type": "string",
+               "match": "*",
+               "mapping": {
+                 "type": "string",
+                 "index": "not_analyzed"
+               }
+         }
+       }
+  ]
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/schemas/entityCountHistoryMappings.json b/sparkybe-onap-application/config/schemas/entityCountHistoryMappings.json
new file mode 100644 (file)
index 0000000..84e3aec
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "properties": {
+        "count": {
+           "type": "long"
+        },
+        "entityType": {
+            "type": "string",
+            "index": "not_analyzed"
+        },
+        "timestamp": {
+            "type": "date",
+            "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ"
+        }
+    }
+}
+
diff --git a/sparkybe-onap-application/config/schemas/es_mappings.json b/sparkybe-onap-application/config/schemas/es_mappings.json
new file mode 100644 (file)
index 0000000..216e3d9
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "properties": {
+        "entityType": {
+            "type": "string",
+            "analyzer": "ngram_analyzer",
+            "search_analyzer": "ngram_analyzer"
+        },
+        "entityPrimaryKeyValue": {
+            "type": "string",
+            "index": "not_analyzed"
+        },
+        "searchTagIDs": {
+            "type": "string"
+        },
+        "searchTags": {
+            "type": "string",
+            "analyzer": "ngram_analyzer"
+        },
+        "crossEntityReferenceValues": {
+            "type": "string",
+            "analyzer": "ngram_analyzer"
+        },
+        "link": {
+            "type": "string",
+            "index": "not_analyzed"
+       },
+        "lastmodTimestamp": {
+            "type": "date",
+            "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||yyyy-MM-dd HH:mm:ss||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ"
+        }
+    }
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/schemas/es_settings.json b/sparkybe-onap-application/config/schemas/es_settings.json
new file mode 100644 (file)
index 0000000..21a357c
--- /dev/null
@@ -0,0 +1,36 @@
+{
+    "analysis": {
+        "filter": {
+            "ngram_filter": {
+                "type": "nGram",
+                "min_gram": 1,
+                "max_gram": 50,
+                "token_chars": [
+                    "letter",
+                    "digit",
+                    "punctuation",
+                    "symbol"
+                ]
+            }
+        },
+        "analyzer": {
+            "ngram_analyzer": {
+                "type": "custom",
+                "tokenizer": "whitespace",
+                "filter": [
+                    "lowercase",
+                    "asciifolding",
+                    "ngram_filter"
+                ]
+            },
+            "whitespace_analyzer": {
+                "type": "custom",
+                "tokenizer": "whitespace",
+                "filter": [
+                    "lowercase",
+                    "asciifolding"
+                ]
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-aggregate-vnf-search-provider.xml b/sparkybe-onap-application/config/spring-beans/sparky-aggregate-vnf-search-provider.xml
new file mode 100644 (file)
index 0000000..25da171
--- /dev/null
@@ -0,0 +1,34 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="aggregateVnfSearchProvider"
+               class="org.onap.aai.sparky.aggregatevnf.search.AggregateVnfSearchProvider">
+               <constructor-arg ref="searchServiceAdapter" />
+               <constructor-arg name="autoSuggestIndexName" value="entityautosuggestindex" />
+               <constructor-arg name="vnfSearchSuggestionRoute"
+                       value="vnfSearch" />
+       </bean>
+
+       <bean id="aggregateSummaryProcessor"
+               class="org.onap.aai.sparky.aggregatevnf.search.AggregateSummaryProcessor">
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="filtersConfig" />
+               <property name="vnfAggregationIndexName" value="aggregate_generic-vnf_index" />
+       </bean>
+
+       <bean id="registerAggregateVnfSearchProvider"
+               class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+               <property name="targetObject" ref="searchProviderRegistry" />
+               <property name="targetMethod">
+                       <value>addSearchProviders</value>
+               </property>
+               <property name="arguments">
+                       <list value-type="org.onap.aai.sparky.search.api.SearchProvider">
+                               <ref bean="aggregateVnfSearchProvider" />
+                       </list>
+               </property>
+       </bean>
+</beans>
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-elasticsearch.xml b/sparkybe-onap-application/config/spring-beans/sparky-elasticsearch.xml
new file mode 100644 (file)
index 0000000..b697fed
--- /dev/null
@@ -0,0 +1,32 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="elasticSearchSchemaFactory" class="org.onap.aai.sparky.sync.ElasticSearchSchemaFactory">
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="elasticSearchRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="${elasticsearch.hostname:127.0.0.1}" />
+               <property name="endpointServerPort" value="${elasticsearch.port:9200}" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="HTTP_NOAUTH" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+       </bean>
+
+       <bean id="elasticSearchAdapter" class="org.onap.aai.sparky.dal.ElasticSearchAdapter">
+               <constructor-arg ref="elasticSearchRestEndpointConfig" />
+       </bean>
+
+       <bean id="elasticSearchEndpointConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchEndpointConfig">
+               <property name="esIpAddress" value="${elasticsearch.hostname:127.0.0.1}" />
+               <property name="esServerPort" value="${elasticsearch.port:9200}" />
+               <property name="scrollContextTimeToLiveInMinutes" value="5" />
+               <property name="scrollContextBatchRequestSize" value="5000" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-filters.xml b/sparkybe-onap-application/config/spring-beans/sparky-filters.xml
new file mode 100644 (file)
index 0000000..2dc4936
--- /dev/null
@@ -0,0 +1,27 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="filtersConfig" class="org.onap.aai.sparky.search.filters.config.FiltersConfig">
+               <constructor-arg name="filtersFileName" value="/filters/aaiui_filters.json" />
+               <constructor-arg name="viewsFileName" value="/filters/aaiui_views.json" />
+               <constructor-arg name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="filterElasticSearchAdapter"
+               class="org.onap.aai.sparky.search.filters.FilterElasticSearchAdapter">
+               <constructor-arg ref="elasticSearchAdapter" />
+       </bean>
+
+       <bean id="filteredSearchHelper" class="org.onap.aai.sparky.search.filters.FilteredSearchHelper">
+               <constructor-arg ref="filtersConfig" />
+               <constructor-arg ref="filterElasticSearchAdapter" />
+       </bean>
+
+       <bean id="filterProcessor" class="org.onap.aai.sparky.search.filters.FilterProcessor">
+               <property name="filteredSearchHelper" ref="filteredSearchHelper" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-gizmo.xml b/sparkybe-onap-application/config/spring-beans/sparky-gizmo.xml
new file mode 100644 (file)
index 0000000..cc6031a
--- /dev/null
@@ -0,0 +1,30 @@
+<beans profile="gizmo" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="gizmoRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="${gizmo.hostname:127.0.0.1}" />
+               <property name="endpointServerPort" value="${gizmo.port:9520}" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="${gizmo.authType:SSL_CERT}" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+               <property name="certFileName" value="/auth/${gizmo.client-cert}" />
+               <property name="certPassword" value="OBF:${gizmo.client-cert-password}" />
+               <property name="truststoreFileName" value="/auth/${gizmo.trust-store}" />
+               <property name="validateServerCertChain" value="false" />
+               <property name="validateServerHostname" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="gizmoAdapter" class="org.onap.aai.sparky.dal.GizmoAdapter">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="gizmoRestEndpointConfig" />
+               <property name="relationshipsBasePath"
+                       value="/services/inventory/relationships/${gizmo.apiVersion:v12}/" />
+               <property name="inventoryBasePath" value="/services/inventory/${gizmo.apiVersion:v12}/" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-global-search.xml b/sparkybe-onap-application/config/spring-beans/sparky-global-search.xml
new file mode 100644 (file)
index 0000000..4504f65
--- /dev/null
@@ -0,0 +1,26 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="searchServiceRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="${searchservice.hostname:127.0.0.1}" />
+               <property name="endpointServerPort" value="${searchservice.port:9509}" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="SSL_CERT" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+               <property name="certFileName" value="/auth/${searchservice.client-cert}" />
+               <property name="certPassword" value="${searchservice.client-cert-password}" />
+               <property name="truststoreFileName" value="/auth/${searchservice.truststore}" />
+               <property name="validateServerCertChain" value="false" />
+               <property name="validateServerHostname" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="searchServiceAdapter" class="org.onap.aai.sparky.search.SearchServiceAdapter">
+               <constructor-arg ref="searchServiceRestEndpointConfig" />
+               <constructor-arg name="serviceApiVersion" value="v1" />
+       </bean>
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-oxm-default.xml b/sparkybe-onap-application/config/spring-beans/sparky-oxm-default.xml
new file mode 100644 (file)
index 0000000..98ce1ad
--- /dev/null
@@ -0,0 +1,13 @@
+<beans profile="oxm-default" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader"
+               init-method="loadModel">
+               <constructor-arg ref="oxmModelProcessorSet" />
+               <constructor-arg ref="nodeIngestor" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-oxm-override.xml b/sparkybe-onap-application/config/spring-beans/sparky-oxm-override.xml
new file mode 100644 (file)
index 0000000..5c6839b
--- /dev/null
@@ -0,0 +1,14 @@
+<beans profile="oxm-override" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader"
+               init-method="loadModel">
+               <constructor-arg name="apiVersionOverride" value="${oxm.apiVersionOverride}" />
+               <constructor-arg ref="oxmModelProcessorSet" />
+               <constructor-arg ref="nodeIngestor" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml b/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml
new file mode 100644 (file)
index 0000000..ed084dc
--- /dev/null
@@ -0,0 +1,185 @@
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:task="http://www.springframework.org/schema/task"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+               http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd 
+               http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
+
+       <context:property-placeholder
+               location="file:${CONFIG_HOME}/schemaIngest.properties"
+               ignore-unresolvable="true" />
+
+       <bean id="crossEntityReferenceLookup"
+               class="org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup" />
+
+       <bean id="geoEntityLookup" class="org.onap.aai.sparky.config.oxm.GeoEntityLookup" />
+
+       <bean id="oxmEntityLookup" class="org.onap.aai.sparky.config.oxm.OxmEntityLookup" />
+
+       <bean id="searchableEntityLookup" class="org.onap.aai.sparky.config.oxm.SearchableEntityLookup" />
+
+       <bean id="suggestionEntityLookup" class="org.onap.aai.sparky.config.oxm.SuggestionEntityLookup">
+               <constructor-arg ref="filtersConfig" />
+       </bean>
+
+       <bean id="oxmModelProcessorSet" class="org.springframework.beans.factory.config.SetFactoryBean">
+               <property name="targetSetClass" value="java.util.HashSet" />
+               <property name="sourceSet">
+                       <set>
+                               <ref bean="crossEntityReferenceLookup" />
+                               <ref bean="geoEntityLookup" />
+                               <ref bean="oxmEntityLookup" />
+                               <ref bean="searchableEntityLookup" />
+                               <ref bean="suggestionEntityLookup" />
+                       </set>
+               </property>
+       </bean>
+
+       <bean id="schemaLocationsBean" class="org.onap.aai.setup.SchemaLocationsBean">
+               <!-- When running with AJSC these properties must be injected directly. 
+                       The reason for this is unknown. -->
+               <property name="nodeDirectory" value="${nodeDir}" />
+               <property name="edgeDirectory" value="${edgeDir}" />
+       </bean>
+
+       <bean id="oxmConfigTranslator" class="org.onap.aai.sparky.config.oxm.OxmConfigTranslator">
+               <constructor-arg ref="schemaLocationsBean" />
+       </bean>
+       <bean id="nodeIngestor" class="org.onap.aai.nodes.NodeIngestor">
+               <constructor-arg ref="oxmConfigTranslator" />
+       </bean>
+
+       <bean id="searchProviderRegistry"
+               class="org.onap.aai.sparky.search.registry.SearchProviderRegistry" />
+
+       <bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader">
+               <property name="configHomeEnvVar" value="CONFIG_HOME" />
+       </bean>
+
+       <bean id="unifiedSearchProcessor" class="org.onap.aai.sparky.search.UnifiedSearchProcessor">
+               <property name="searchProviderRegistry" ref="searchProviderRegistry" />
+       </bean>
+
+       <bean id="entityCountHistoryProcessor" class="org.onap.aai.sparky.search.EntityCountHistoryProcessor">
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg name="entityTypesToSummarizeDelimitedList"
+                       value="customer,service-instance,complex,pserver,vserver,vnf" />
+               <constructor-arg name="vnfEntityTypesDelimitedList"
+                       value="vnf,newvce,vce,vpe" />
+               <constructor-arg name="entityCountHistoryIndexName"
+                       value="entitycounthistoryindex" />
+       </bean>
+
+       <bean id="attributeUpdater" class="org.onap.aai.sparky.editattributes.AttributeUpdater">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="activeInventoryAdapter" />
+       </bean>
+
+       <bean id="attributeEditProcessor"
+               class="org.onap.aai.sparky.editattributes.AttributeEditProcessor">
+               <constructor-arg ref="attributeUpdater" />
+       </bean>
+
+       <bean id="geoVisualizationProcessor" class="org.onap.aai.sparky.inventory.GeoVisualizationProcessor">
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg name="topographicalSearchIndexName"
+                       value="topographicalsearchindex" />
+       </bean>
+
+       <bean id="pairingHashMap" class="org.springframework.beans.factory.config.MapFactoryBean">
+               <property name="targetMapClass">
+                       <value>java.util.HashMap</value>
+               </property>
+               <property name="sourceMap">
+                       <map key-type="java.lang.String" value-type="java.lang.String">
+                               <entry key="volume-group-id" value="called" />
+                               <entry key="volume-group-name" value="called" />
+                               <entry key="physical-location-id" value="called" />
+                               <entry key="data-center-code" value="called" />
+                               <entry key="complex-name" value="called" />
+                               <entry key="tenant-id" value="called" />
+                               <entry key="tenant-name" value="called" />
+                               <entry key="vserver-id" value="called" />
+                               <entry key="vserver-name" value="called" />
+                               <entry key="vserver-name2" value="called" />
+                               <entry key="hostname" value="called" />
+                               <entry key="pserver-name2" value="called" />
+                               <entry key="pserver-id" value="called" />
+                               <entry key="global-customer-id" value="called" />
+                               <entry key="subscriber-name" value="called" />
+                               <entry key="service-instance-id" value="called" />
+                               <entry key="service-instance-name" value="called" />
+                               <entry key="link-name" value="called" />
+                               <entry key="vpn-id" value="called" />
+                               <entry key="vpn-name" value="called" />
+                               <entry key="vpe-id" value="called" />
+                               <entry key="vnf-id" value="called" />
+                               <entry key="vnf-name" value="called" />
+                               <entry key="vnf-name2" value="called" />
+                               <entry key="vnfc-name" value="called" />
+                               <entry key="network-id" value="called" />
+                               <entry key="network-name" value="called" />
+                               <entry key="network-policy-id" value="called" />
+                               <entry key="vf-module-id" value="called" />
+                               <entry key="vf-module-name" value="called" />
+                               <entry key="vnf-id2" value="called" />
+                               <entry key="pnf-name" value="called" />
+                               <entry key="circuit-id" value="called" />
+                               <entry key="id" value="called" />
+                               <entry key="group-id" value="called" />
+                               <entry key="group-name" value="called" />
+                               <entry key="street1" value="at" />
+                               <entry key="street2" value="at" />
+                               <entry key="code" value="at" />
+                               <entry key="ipv4-oam-address" value="at" />
+                               <entry key="network-policy-fqdn" value="at" />
+                       </map>
+               </property>
+       </bean>
+
+       <bean id="suggestiveSearchConfigs" class="org.onap.aai.sparky.search.config.SuggestionConfig">
+               <property name="defaultPairingValue" value="with" />
+               <property name="pairingList" ref="pairingHashMap"></property>
+               <property name="stopWords">
+                       <list value-type="java.lang.String">
+                               <value>a</value>
+                               <value>an</value>
+                               <value>and</value>
+                               <value>are</value>
+                               <value>as</value>
+                               <value>at</value>
+                               <value>be</value>
+                               <value>but</value>
+                               <value>by</value>
+                               <value>called</value>
+                               <value>for</value>
+                               <value>if</value>
+                               <value>in</value>
+                               <value>into</value>
+                               <value>is</value>
+                               <value>it</value>
+                               <value>no</value>
+                               <value>not</value>
+                               <value>of</value>
+                               <value>on</value>
+                               <value>or</value>
+                               <value>such</value>
+                               <value>that</value>
+                               <value>the</value>
+                               <value>their</value>
+                               <value>then</value>
+                               <value>there</value>
+                               <value>these</value>
+                               <value>they</value>
+                               <value>this</value>
+                               <value>to</value>
+                               <value>was</value>
+                               <value>will</value>
+                               <value>with</value>
+                       </list>
+               </property>
+
+       </bean>
+
+</beans>
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-resources.xml b/sparkybe-onap-application/config/spring-beans/sparky-resources.xml
new file mode 100644 (file)
index 0000000..2395f82
--- /dev/null
@@ -0,0 +1,30 @@
+<beans profile="resources" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="aaiRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="${resources.hostname:127.0.0.1}" />
+               <property name="endpointServerPort" value="${resources.port:8443}" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="${resources.authType:SSL_BASIC}" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+               <property name="basicAuthUserName" value="${resources.basicAuthUserName:}" />
+               <property name="basicAuthPassword" value="${resources.basicAuthPassword:}" />
+               <property name="certFileName" value="/auth/${resources.client-cert}" />
+               <property name="certPassword" value="OBF:${resources.client-cert-password}" />
+               <property name="truststoreFileName" value="/auth/${resources.trust-store}" />
+               <property name="validateServerCertChain" value="false" />
+               <property name="validateServerHostname" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="activeInventoryAdapter" class="org.onap.aai.sparky.dal.ActiveInventoryAdapter">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="aaiRestEndpointConfig" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-search-service.xml b/sparkybe-onap-application/config/spring-beans/sparky-search-service.xml
new file mode 100644 (file)
index 0000000..c8d20c6
--- /dev/null
@@ -0,0 +1,26 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="searchServiceRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="${searchservice.hostname:127.0.0.1}" />
+               <property name="endpointServerPort" value="${searchservice.port:9509}" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="SSL_CERT" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+               <property name="certFileName" value="/auth/${searchservice.client-cert:}" />
+               <property name="certPassword" value="OBF:${searchservice.client-cert-password:}" />
+               <property name="truststoreFileName" value="/auth/${searchservice.truststore:}" />
+               <property name="validateServerCertChain" value="false" />
+               <property name="validateServerHostname" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="searchServiceAdapter" class="org.onap.aai.sparky.search.SearchServiceAdapter">
+               <constructor-arg ref="searchServiceRestEndpointConfig" />
+               <constructor-arg name="serviceApiVersion" value="v1" />
+       </bean>
+</beans>
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-subscription-service.xml b/sparkybe-onap-application/config/spring-beans/sparky-subscription-service.xml
new file mode 100644 (file)
index 0000000..2057b9c
--- /dev/null
@@ -0,0 +1,38 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+
+       <bean id="subscriptionConfig"
+               class="org.onap.aai.sparky.subscription.config.SubscriptionConfig">
+               <property name="subscriptionTarget" value="" />
+               <property name="subscriptionOrigin" value="" />
+               <property name="subscriptionMessageType" value="" />
+               <property name="subscriptionTopic" value="" />
+               <property name="launchOITarget" value="" />
+               <property name="launchOIOrigin" value="" />
+               <property name="launchOIMessageType" value="" />
+               <property name="launchOITopic" value="" />
+               <property name="annEntitiyTypes">
+                       <list value-type="java.lang.String">
+                               <value>pserver</value>
+                               <value>pnf</value>
+                       </list>
+               </property>
+               <property name="isLaunchOIEnabled" value="false" />
+       </bean>
+
+       <bean id="subscriptionService"
+               class="org.onap.aai.sparky.subscription.services.SubscriptionService">
+               <constructor-arg ref="subscriptionConfig" />
+       </bean>
+
+       <bean id="subscriptionServiceProcessor"
+               class="org.onap.aai.sparky.subscription.SubscriptionServiceProcessor">
+               <constructor-arg ref="subscriptionService" />
+       </bean>
+
+</beans>
+       
\ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-sync.xml b/sparkybe-onap-application/config/spring-beans/sparky-sync.xml
new file mode 100644 (file)
index 0000000..34c063b
--- /dev/null
@@ -0,0 +1,328 @@
+<beans profile="sync" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="elasticSearchNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig">
+               <property name="numSamplesPerThreadForRunningAverage" value="100" />
+               <property name="bytesHistogramLabel" value="[Response Size In Bytes]" />
+               <property name="bytesHistogramMaxYAxis" value="1000000" />
+               <property name="bytesHistogramNumBins" value="20" />
+               <property name="bytesHistogramNumDecimalPoints" value="2" />
+               <property name="queueLengthHistogramLabel" value="[Queue Item Length]" />
+               <property name="queueLengthHistogramMaxYAxis" value="20000" />
+               <property name="queueLengthHistogramNumBins" value="20" />
+               <property name="queueLengthHistogramNumDecimalPoints" value="2" />
+               <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" />
+               <property name="taskAgeHistogramMaxYAxis" value="600000" />
+               <property name="taskAgeHistogramNumBins" value="20" />
+               <property name="taskAgeHistogramNumDecimalPoints" value="2" />
+               <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" />
+               <property name="responseTimeHistogramMaxYAxis" value="1000" />
+               <property name="responseTimeHistogramNumBins" value="20" />
+               <property name="responseTimeHistogramNumDecimalPoints" value="2" />
+               <property name="tpsHistogramLabel" value="[Transactions Per Second]" />
+               <property name="tpsHistogramMaxYAxis" value="100" />
+               <property name="tpsHistogramNumBins" value="20" />
+               <property name="tpsHistogramNumDecimalPoints" value="2" />
+       </bean>
+
+       <bean id="aaiNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig">
+               <property name="numSamplesPerThreadForRunningAverage" value="100" />
+               <property name="bytesHistogramLabel" value="[Response Size In Bytes]" />
+               <property name="bytesHistogramMaxYAxis" value="1000000" />
+               <property name="bytesHistogramNumBins" value="20" />
+               <property name="bytesHistogramNumDecimalPoints" value="2" />
+               <property name="queueLengthHistogramLabel" value="[Queue Item Length]" />
+               <property name="queueLengthHistogramMaxYAxis" value="20000" />
+               <property name="queueLengthHistogramNumBins" value="20" />
+               <property name="queueLengthHistogramNumDecimalPoints" value="2" />
+               <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" />
+               <property name="taskAgeHistogramMaxYAxis" value="600000" />
+               <property name="taskAgeHistogramNumBins" value="20" />
+               <property name="taskAgeHistogramNumDecimalPoints" value="2" />
+               <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" />
+               <property name="responseTimeHistogramMaxYAxis" value="10000" />
+               <property name="responseTimeHistogramNumBins" value="20" />
+               <property name="responseTimeHistogramNumDecimalPoints" value="2" />
+               <property name="tpsHistogramLabel" value="[Transactions Per Second]" />
+               <property name="tpsHistogramMaxYAxis" value="100" />
+               <property name="tpsHistogramNumBins" value="20" />
+               <property name="tpsHistogramNumDecimalPoints" value="2" />
+       </bean>
+
+
+
+       <bean id="syncControllerRegistry" class="org.onap.aai.sparky.sync.SyncControllerRegistry" />
+
+       <bean id="aggregationSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+               <property name="controllerName" value="Aggregation-Sync-Controller" />
+               <property name="enabled" value="${aggregationSyncEnabled:true}" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="06:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="aggregationSyncControllerFactory"
+               class="org.onap.aai.sparky.aggregation.sync.AggregationSyncControllerFactory"
+               init-method="registerController">
+
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aggregationSyncControllerConfig" />
+               <constructor-arg ref="syncControllerRegistry" />
+               <constructor-arg ref="suggestionEntityLookup" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="esAdapter" ref="elasticSearchAdapter" />
+               <property name="esStatConfig" ref="elasticSearchNetworkStatConfig" />
+
+               <property name="aaiAdapter" ref="activeInventoryAdapter" />
+               <property name="aaiStatConfig" ref="aaiNetworkStatConfig" />
+
+               <property name="aggregationEntityToIndexMap">
+                       <map>
+                               <entry key="generic-vnf" value="aggregate_generic-vnf_index" />
+                       </map>
+               </property>
+
+               <property name="indexNameToSchemaConfigMap">
+                       <map>
+                               <entry key="aggregate_generic-vnf_index">
+                                       <bean class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+                                               <property name="indexName" value="aggregate_generic-vnf_index" />
+                                               <property name="indexDocType" value="default" />
+                                               <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" />
+                                       </bean>
+                               </entry>
+                       </map>
+               </property>
+
+       </bean>
+
+
+       <bean id="historicalEntitySyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Historical-Entity-Sync-Controller" />
+               <property name="enabled" value="${historicalEntitySyncEnabled:true}" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="06:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="historicalEntitySchemaConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entitycounthistoryindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/entityCountHistoryMappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/es_settings.json" />
+       </bean>
+
+       <bean id="historicalEntitySyncController"
+               class="org.onap.aai.sparky.aggregation.sync.HistoricalEntitySyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="historicalEntitySyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="historicalEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg value="60" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="searchableEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+
+
+
+       <bean id="autoSuggestionSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Auto-Suggestion-Sync-Controller" />
+               <property name="enabled" value="${autoSuggestSyncEnabled:true}" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="06:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="autoSuggestionEntitySchemaConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entityautosuggestindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" />
+       </bean>
+
+       <bean id="autoSuggestionEntitySyncController"
+               class="org.onap.aai.sparky.autosuggestion.sync.AutoSuggestionSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="autoSuggestionSyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="autoSuggestionEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="suggestionEntityLookup" />
+               <constructor-arg ref="filtersConfig" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+
+
+
+       <bean id="vnfAliasSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Vnf-Alias-Sync-Controller" />
+               <property name="enabled" value="${vnfAliasSyncEnabled:true}" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="06:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="vnfAliasEntitySchemaConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entityautosuggestindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" />
+       </bean>
+
+       <bean id="vnfAliasSyncController"
+               class="org.onap.aai.sparky.autosuggestion.sync.VnfAliasSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="vnfAliasSyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="vnfAliasEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="filtersConfig" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+
+       <bean id="geoSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Geo-Sync-Controller" />
+               <property name="enabled" value="${geoSyncEnabled:true}" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="06:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="geoEntitySchemaConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="topographicalsearchindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" />
+       </bean>
+
+       <bean id="geoSyncController" class="org.onap.aai.sparky.topology.sync.GeoSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="geoSyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="geoEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="geoEntityLookup" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+
+
+
+       <bean id="viewInspectControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="View-Inspect-Sync-Controller" />
+               <property name="enabled" value="${viewInspectSyncEnabled:true}" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="06:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="viewInspectSyncController"
+               class="org.onap.aai.sparky.viewinspect.sync.ViewInspectSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="viewInspectControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="viewInspectSchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="crossEntityReferenceLookup" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="searchableEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+
+
+
+       <bean id="syncControllerService" class="org.onap.aai.sparky.sync.SyncControllerService"
+               destroy-method="shutdown">
+               <constructor-arg ref="syncControllerRegistry" />
+               <constructor-arg value="5" />
+               <constructor-arg value="5" />
+       </bean>
+</beans>
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-view-inspect-search-provider.xml b/sparkybe-onap-application/config/spring-beans/sparky-view-inspect-search-provider.xml
new file mode 100644 (file)
index 0000000..ac3c920
--- /dev/null
@@ -0,0 +1,35 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="viewInspectSearchProvider"
+               class="org.onap.aai.sparky.viewandinspect.search.ViewInspectSearchProvider">
+               <constructor-arg ref="searchServiceAdapter" />
+               <constructor-arg ref="suggestiveSearchConfigs" />
+               <constructor-arg name="viewInspectIndexName" value="${viewInspectIndex:entity-search-index}" />
+               <constructor-arg name="viewInspectSuggestionRoute"
+                       value="schema" />
+               <constructor-arg ref="oxmEntityLookup" />
+
+               <property name="additionalSearchSuggestionText">
+                       <value>Schema</value>
+               </property>
+
+       </bean>
+
+       <bean id="registerViewInspectSearchProvider"
+               class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+               <property name="targetObject" ref="searchProviderRegistry" />
+               <property name="targetMethod">
+                       <value>addSearchProviders</value>
+               </property>
+               <property name="arguments">
+                       <list value-type="org.onap.aai.sparky.search.api.SearchProvider">
+                               <ref bean="viewInspectSearchProvider" />
+                       </list>
+               </property>
+       </bean>
+
+</beans>
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-view-inspect-with-gizmo.xml b/sparkybe-onap-application/config/spring-beans/sparky-view-inspect-with-gizmo.xml
new file mode 100644 (file)
index 0000000..f709446
--- /dev/null
@@ -0,0 +1,63 @@
+<beans profile="gizmo" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="visualizationConfigurations"
+               class="org.onap.aai.sparky.viewandinspect.config.VisualizationConfigs">
+               <property name="maxSelfLinkTraversalDepth" value="2" />
+               <property name="visualizationDebugEnabled" value="false" />
+               <property name="aaiEntityNodeDescriptors" value="/descriptors/aaiEntityNodeDescriptors.json" />
+               <property name="generalNodeClassName" value="generalNodeClass" />
+               <property name="searchNodeClassName" value="searchedNodeClass" />
+               <property name="selectedSearchedNodeClassName" value="selectedSearchedNodeClass" />
+               <property name="numOfThreadsToFetchNodeIntegrity" value="20" />
+               <property name="makeAllNeighborsBidirectional" value="false" />
+               <property name="gizmoEnabled" value="true" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+
+               <property name="shallowEntities">
+                       <list value-type="java.lang.String">
+                               <value>cloud-region</value>
+                               <value>complex</value>
+                               <value>vnf-image</value>
+                               <value>image</value>
+                               <value>flavor</value>
+                               <value>availability-zone</value>
+                               <value>tenant</value>
+                               <value>network-profile</value>
+                               <value>l-interface</value>
+                       </list>
+               </property>
+
+       </bean>
+       
+       <bean id="viewInspectSchemaConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entity-search-index" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/es_mappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/es_settings.json" />
+       </bean> 
+
+       <bean id="baseVisualizationService"
+               class="org.onap.aai.sparky.viewandinspect.services.BaseVisualizationService">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="visualizationConfigurations" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="gizmoAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="viewInspectSchemaConfig" />
+               <constructor-arg name="numActiveInventoryWorkers" value="50" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="subscriptionConfig" />
+       </bean>
+
+       <bean id="schemaVisualizationProcessor"
+               class="org.onap.aai.sparky.viewandinspect.SchemaVisualizationProcessor">
+               <property name="visualizationService" ref="baseVisualizationService" />
+       </bean>
+
+</beans>
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-view-inspect-with-resources.xml b/sparkybe-onap-application/config/spring-beans/sparky-view-inspect-with-resources.xml
new file mode 100644 (file)
index 0000000..97fa807
--- /dev/null
@@ -0,0 +1,66 @@
+<beans profile="resources" xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="visualizationConfigurations"
+               class="org.onap.aai.sparky.viewandinspect.config.VisualizationConfigs">
+               <property name="maxSelfLinkTraversalDepth" value="2" />
+               <property name="visualizationDebugEnabled" value="false" />
+               <property name="aaiEntityNodeDescriptors" value="/descriptors/aaiEntityNodeDescriptors.json" />
+               <property name="generalNodeClassName" value="generalNodeClass" />
+               <property name="searchNodeClassName" value="searchedNodeClass" />
+               <property name="selectedSearchedNodeClassName" value="selectedSearchedNodeClass" />
+               <property name="numOfThreadsToFetchNodeIntegrity" value="20" />
+               <property name="makeAllNeighborsBidirectional" value="false" />
+               <property name="gizmoEnabled" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+
+               <property name="shallowEntities">
+                       <list value-type="java.lang.String">
+                               <value>cloud-region</value>
+                               <value>complex</value>
+                               <value>vnf-image</value>
+                               <value>image</value>
+                               <value>flavor</value>
+                               <value>availability-zone</value>
+                               <value>tenant</value>
+                               <value>network-profile</value>
+                               <value>l-interface</value>
+                       </list>
+               </property>
+
+       </bean>
+
+       <bean id="viewInspectSchemaConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entity-search-index" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/es_mappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/es_settings.json" />
+       </bean>
+
+       <bean id="baseVisualizationService"
+               class="org.onap.aai.sparky.viewandinspect.services.BaseVisualizationService">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="visualizationConfigurations" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg name="gizmoAdapter">
+                       <null />
+               </constructor-arg>
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="viewInspectSchemaConfig" />
+               <constructor-arg name="numActiveInventoryWorkers"
+                       value="50" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="subscriptionConfig" />
+       </bean>
+
+       <bean id="schemaVisualizationProcessor"
+               class="org.onap.aai.sparky.viewandinspect.SchemaVisualizationProcessor">
+               <property name="visualizationService" ref="baseVisualizationService" />
+       </bean>
+
+</beans>
index 287debe..622ac67 100644 (file)
                                </executions>
                        </plugin>
 
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>copy-config-to-target</id>
+                                               <phase>package</phase>
+                                               <goals>
+                                                       <goal>copy-resources</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <outputDirectory>target/config</outputDirectory>
+                                                       <overwrite>true</overwrite>
+                                                       <resources>
+                                                               <resource>
+                                                                       <directory>${basedir}/config</directory>
+                                                                       <filtering>true</filtering>
+                                                                       <includes>
+                                                                               <include>**/*</include>
+                                                                       </includes>
+                                                                       <excludes>
+                                                                               <exclude>**/auth/*</exclude>
+                                                                       </excludes>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-dependency-plugin</artifactId>
index 52e3e84..3f05ff9 100644 (file)
@@ -16,18 +16,21 @@ RUN export JAVA_HOME
 # Build up the deployment folder structure
 RUN mkdir -p $MICRO_HOME
 RUN mkdir -p $BIN_HOME
+RUN mkdir -p $MICRO_HOME/config/
 RUN mkdir -p $MICRO_HOME/lib/
 RUN mkdir -p $MICRO_HOME/static/
 
 ADD *.jar $MICRO_HOME/lib/
 ADD scripts/* $MICRO_HOME/bin/
 COPY static/ $MICRO_HOME/static/
+COPY config/ $MICRO_HOME/config/
 
 COPY oxm $MICRO_HOME/oxm/
 
 RUN chmod 755 $MICRO_HOME/bin/*
 RUN chmod 755 $MICRO_HOME/lib/*
 RUN chmod 755 $MICRO_HOME/static/*
+RUN chmod 755 $MICRO_HOME/config/*
 
 RUN ln -s /logs $MICRO_HOME/logs
 
index 2334297..9958d72 100644 (file)
  */
 package org.onap.aai.sparky;
 
-import javax.servlet.Filter;
-
-import org.apache.camel.component.servlet.CamelHttpTransportServlet;
 import org.onap.aai.sparky.config.PropertyPasswordConfiguration;
-import org.onap.aai.sparky.security.filter.LoginFilter;
-import org.openecomp.portalsdk.core.onboarding.crossapi.PortalRestAPIProxy;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.context.annotation.Bean;
 
 @SpringBootApplication
 public class Application {
   
-  private static final String SPARKY_SSL_ENABLED_PROPERTY = "sparky.ssl.enabled";
-  private static final String SPARKY_PORTAL_ENABLED_PROPERTY = "sparky.portal.enabled";
-  private static final String SPARKY_SSL_ENABLED_ENV = "SPARKY_SSL_ENABLED";
-  private static final String SPARKY_PORTAL_ENABLED_ENV = "SPARKY_PORTAL_ENABLED";
-  
-  private Filter loginFilter = new LoginFilter();
-   
   public static void main(String[] args) {
 
-    setDefaultProperties();
     SpringApplication app = new SpringApplication(Application.class);
     app.addInitializers(new PropertyPasswordConfiguration());
     app.run(args);
     
   }
-  
-  protected static void setDefaultProperties() {
-
-    /*
-     * By default we want ssl and portal integration, however it is possible to turn these off with
-     * properties for local development and interop in some situations.
-     */
-
-    if (System.getenv(SPARKY_SSL_ENABLED_ENV) == null) {
-      System.setProperty(SPARKY_SSL_ENABLED_PROPERTY, "true");
-    } else {
-      System.setProperty(SPARKY_SSL_ENABLED_PROPERTY, System.getenv(SPARKY_SSL_ENABLED_ENV));
-    }
-
-    boolean sslEnabled = Boolean.parseBoolean(System.getProperty(SPARKY_SSL_ENABLED_PROPERTY));
-
-    if (sslEnabled) {
-      System.setProperty("server.ssl.key-store-password", System.getenv("KEYSTORE_PASSWORD"));
-      System.setProperty("server.ssl.key-password", System.getenv("KEYSTORE_ALIAS_PASSWORD"));
-    }
-
-    if (System.getenv(SPARKY_PORTAL_ENABLED_ENV) == null) {
-      System.setProperty(SPARKY_PORTAL_ENABLED_PROPERTY, "true");
-    } else {
-      System.setProperty(SPARKY_PORTAL_ENABLED_PROPERTY, System.getenv(SPARKY_PORTAL_ENABLED_ENV));
-    }
-  }
-
-  /*
-   * This initialization code enabled access to aai-ui-proxy-processor
-   */
-  @Bean
-  ServletRegistrationBean servletRegistrationBean() {
-    final ServletRegistrationBean servlet =
-        new ServletRegistrationBean(new CamelHttpTransportServlet(), "/rest/*");
-    servlet.setName("CamelServlet");
-    return servlet;
-  }
-
-  /**
-   * bind LoginFilter
-   */
-  @Bean
-  @ConditionalOnProperty(value = "sparky.portal.enabled", havingValue = "true")
-  public FilterRegistrationBean loginFilterRegistrationBean() {
-    FilterRegistrationBean registration = new FilterRegistrationBean();
-    
-    registration.setFilter(loginFilter);
-    registration.addUrlPatterns("/*");
-    
-    return registration;
-  }
-
-    /**
-   * Bind the Portal API Proxy
-   */
-  @Bean
-  @ConditionalOnProperty(value = "sparky.portal.enabled", havingValue = "true")
-  public ServletRegistrationBean portalApiProxy() {
-    
-    final ServletRegistrationBean servlet =
-        new ServletRegistrationBean(new PortalRestAPIProxy(), "/api/v2/*");
-    servlet.setName("PortalRestApiProxy");
-    return servlet;
-  }
-
 }
index 0590cd6..ab74074 100644 (file)
@@ -31,9 +31,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @RestController
 public class FrontEndLayoutApi {
 
-
   public FrontEndLayoutApi() {
-
   }
 
   @RequestMapping(value = "/layouts", method = {RequestMethod.GET})
@@ -1,6 +1,6 @@
 /**
  * ============LICENSE_START=======================================================
- * org.onap.aai
+ * SPARKY (AAI UI service)
  * ================================================================================
  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
  * Copyright © 2017-2018 Amdocs
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.aai.sparky.config;
+package org.onap.aai.sparky.camel;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
 
-@Configuration
-@ConditionalOnProperty(value="sparky.ssl.enabled", havingValue = "true")
-@PropertySource("file:${CONFIG_HOME}/sparky-ssl-config.properties")
-public class SparkySslConfigLoader {
+@Component
+public class FilterAggregationRouter extends SpringRouteBuilder {
+
+  @Override
+  public void configure() throws Exception {
+
+    rest().post("/search/filterAggregation")
+        .to("bean:aggregateSummaryProcessor?method=getFilteredAggregation");
+
+  }
 
 }
@@ -1,6 +1,6 @@
 /**
  * ============LICENSE_START=======================================================
- * org.onap.aai
+ * SPARKY (AAI UI service)
  * ================================================================================
  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
  * Copyright © 2017-2018 Amdocs
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.aai.sparky.config;
+package org.onap.aai.sparky.camel;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
 
-@Configuration
-@ConditionalOnProperty(value="sparky.ssl.enabled", havingValue = "false")
-@PropertySource("file:${CONFIG_HOME}/sparky-http-config.properties")
-public class SparkyHttpConfigLoader {
+@Component
+public class FilterRequestRouter extends SpringRouteBuilder {
+
+  @Override
+  public void configure() throws Exception {
+
+    rest().post("/search/unifiedFilterRequest")
+        .to("bean:filterProcessor?method=getFiltersWithValues");
+
+  }
 
 }
@@ -1,6 +1,6 @@
 /**
  * ============LICENSE_START=======================================================
- * org.onap.aai
+ * SPARKY (AAI UI service)
  * ================================================================================
  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
  * Copyright © 2017-2018 Amdocs
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.aai.sparky.config;
+package org.onap.aai.sparky.camel;
 
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class GlobalSearchRouter extends SpringRouteBuilder {
+
+  @Override
+  public void configure() throws Exception {
+
+    rest().post("/search/querysearch").to("bean:unifiedSearchProcessor?method=search");
+
+  }
 
-@Configuration
-@PropertySource("file:${CONFIG_HOME}/sparky-application.properties")
-public class SparkyConfigLoader {
-  
-  
 }
diff --git a/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/SubscriptionRouter.java b/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/SubscriptionRouter.java
new file mode 100644 (file)
index 0000000..4a28e30
--- /dev/null
@@ -0,0 +1,37 @@
+/**
+ * ============LICENSE_START=======================================================
+ * SPARKY (AAI UI service)
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ================================================================================
+ * Licensed 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.sparky.camel;
+
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SubscriptionRouter extends SpringRouteBuilder {
+
+  @Override
+  public void configure() throws Exception {
+
+    rest().get("/subscription/getsubscription")
+        .to("bean:subscriptionServiceProcessor?method=getSubscription");
+
+  }
+
+}
diff --git a/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/ViewInspectRouter.java b/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/camel/ViewInspectRouter.java
new file mode 100644 (file)
index 0000000..ee2ae04
--- /dev/null
@@ -0,0 +1,37 @@
+/**
+ * ============LICENSE_START=======================================================
+ * SPARKY (AAI UI service)
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ================================================================================
+ * Licensed 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.sparky.camel;
+
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ViewInspectRouter extends SpringRouteBuilder {
+
+  @Override
+  public void configure() throws Exception {
+
+    rest().post("/visualization/prepareVisualization").route()
+        .to("bean:schemaVisualizationProcessor?method=processVisualizationRequest");
+
+  }
+
+}
diff --git a/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/CamelConfiguration.java b/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/CamelConfiguration.java
new file mode 100644 (file)
index 0000000..8f433db
--- /dev/null
@@ -0,0 +1,19 @@
+package org.onap.aai.sparky.config;
+
+import org.apache.camel.component.servlet.CamelHttpTransportServlet;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CamelConfiguration {
+
+  @Bean
+  ServletRegistrationBean servletRegistrationBean() {
+    final ServletRegistrationBean servlet =
+        new ServletRegistrationBean(new CamelHttpTransportServlet(), "/rest/*", "/services/*");
+    servlet.setName("CamelServlet");
+    return servlet;
+  }
+
+}
\ No newline at end of file
diff --git a/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/portal/PortalBean.java b/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/portal/PortalBean.java
new file mode 100644 (file)
index 0000000..86f019e
--- /dev/null
@@ -0,0 +1,41 @@
+package org.onap.aai.sparky.portal;
+
+import javax.servlet.Filter;
+
+import org.onap.aai.sparky.security.filter.LoginFilter;
+import org.openecomp.portalsdk.core.onboarding.crossapi.PortalRestAPIProxy;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Profile;
+import org.springframework.stereotype.Component;
+
+@Component
+@Profile("portal")
+public class PortalBean {
+  
+  private Filter loginFilter = new LoginFilter();
+  
+  /**
+   * bind LoginFilter
+   */
+  @Bean
+  public FilterRegistrationBean loginFilterRegistrationBean() {
+    FilterRegistrationBean registration = new FilterRegistrationBean();
+    
+    registration.setFilter(loginFilter);
+    registration.addUrlPatterns("/*");
+    
+    return registration;
+  }
+  
+  @Bean
+  public ServletRegistrationBean portalApiProxy() {
+    
+    final ServletRegistrationBean servlet =
+        new ServletRegistrationBean(new PortalRestAPIProxy(), "/api/v2/*");
+    servlet.setName("PortalRestApiProxy");
+    return servlet;
+  }
+
+}
\ No newline at end of file
index a8eba46..c16c9b2 100644 (file)
@@ -1,11 +1,17 @@
 #!/bin/sh
 
 APP_HOME="/opt/app/sparky"
-CONFIG_HOME=${APP_HOME}/appconfig
+CONFIG_HOME=${APP_HOME}/config
 
 PROPS="-DAPP_HOME=${APP_HOME} -DCONFIG_HOME=${CONFIG_HOME} -Dlogging.config=${CONFIG_HOME}/logging/logback.xml"
 
 set -x
 jar ufv ${APP_HOME}/lib/sparkybe-onap-application*.jar -C ${CONFIG_HOME}/portal/ BOOT-INF/classes/portal.properties
+
+#
+# change the working directory so that Spring-Boot will pick up the config folder from the right path
+#
+cd $APP_HOME
+
 java -Xms1024m -Xmx4096m $PROPS -jar ${APP_HOME}/lib/sparkybe-onap-application*.jar