summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFiete Ostkamp <Fiete.Ostkamp@telekom.de>2024-06-10 10:53:20 +0200
committerFiete Ostkamp <Fiete.Ostkamp@telekom.de>2024-06-10 11:50:01 +0200
commit1efee417abaaa07344f4dbb239d2456841faa091 (patch)
treea517097a508ad21bb948c3891d9b97fbeeeb11da
parentf71b22fc3411442c6398866f0c29cbf8f129f26c (diff)
Add sparky-be integration test
- run spring-boot integration test for the AggregateSummaryProcessor in the main sparkybe-onap-application module [1] [1] this is specifically ensuring the proper creation of the beans in the spring context which is done using the spring-beans xml files. In order to replace this outdated approach some time in the future, there have to be integration tests to ensure the proper injection Issue-ID: AAI-3860 Change-Id: Id1488482ba852cce7407aba3e700fba5dd48ae99 Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
-rw-r--r--.gitignore3
-rw-r--r--sparkybe-onap-application/config/application.properties63
-rw-r--r--sparkybe-onap-application/config/logging/logback.xml4
-rw-r--r--sparkybe-onap-application/config/schemaIngest.properties57
-rw-r--r--sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml62
-rw-r--r--sparkybe-onap-application/config/spring-beans/sparky-oxm.xml2
-rw-r--r--sparkybe-onap-application/pom.xml23
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java95
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java30
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java28
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java29
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java31
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java28
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java28
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java29
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java27
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java29
-rw-r--r--sparkybe-onap-service/pom.xml135
-rw-r--r--sparkybe-onap-service/src/main/java/org/onap/aai/sparky/config/SparkyResourceLoader.java6
-rw-r--r--sparkybe-onap-service/src/main/resources/application.properties1
-rw-r--r--sparkybe-onap-service/src/test/java/org/onap/aai/sparky/autosuggestion/sync/AutosuggestionSynchronizerTest.java3
-rw-r--r--sparkybe-onap-service/src/test/java/org/onap/aai/sparky/viewandinspect/BaseVisualizationContextTest.java5
-rw-r--r--sparkybe-onap-service/src/test/resources/application.properties1
-rw-r--r--sparkybe-onap-service/src/test/resources/oxm-reader/schema-ingest-single-oxm.properties4
24 files changed, 532 insertions, 191 deletions
diff --git a/.gitignore b/.gitignore
index 3ebf204..63ebe64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,5 @@ debug-logs/
*/appconfig-local/
/.metadata/
*.iml
-.idea \ No newline at end of file
+.idea
+**/schema/**/*.xml \ No newline at end of file
diff --git a/sparkybe-onap-application/config/application.properties b/sparkybe-onap-application/config/application.properties
index cdebe11..e96247c 100644
--- a/sparkybe-onap-application/config/application.properties
+++ b/sparkybe-onap-application/config/application.properties
@@ -1,3 +1,6 @@
+APP_HOME=.
+CONFIG_HOME=./config
+
#
# disable the default thyme leaf icon on web-pages
#
@@ -25,4 +28,62 @@ searchservice.truststore=tomcat_keystore
spring.mvc.favicon.enabled=false
-schema.ingest.file=${CONFIG_HOME}/schemaIngest.properties \ No newline at end of file
+schema.ingest.file=${CONFIG_HOME}/schemaIngest.properties
+
+# Properties for the SchemaLocationsBean
+# Files named aai_oxm_v*.xml are unpacked here:
+# Schema Version Related Attributes
+schema.uri.base.path=/aai
+# Lists all of the versions in the schema
+schema.version.list=v9,v10,v11,v12,v13,v14
+# Specifies from which version should the depth parameter to default to zero
+schema.version.depth.start=v10
+# Specifies from which version should the related link be displayed in response payload
+schema.version.related.link.start=v10
+# Specifies from which version should the client see only the uri excluding host info
+# Before this version server base will also be included
+schema.version.app.root.start=v11
+# Specifies from which version should the namespace be changed
+schema.version.namespace.change.start=v12
+# Specifies from which version should the client start seeing the edge label in payload
+schema.version.edge.label.start=v12
+# Specifies the version that the application should default to
+schema.version.api.default=v14
+
+# Schema Location Related Attributes
+schema.configuration.location=NA
+
+# New propterties required by the aai-common - aai-schema-ingest lib as of 1.3.0
+schema.configuration.location=N/A
+schema.nodes.location=${APP_HOME}/onap/oxm
+schema.edges.location=
+
+# Setting this values to ${oxm.apiVersion} only to ensure the value used exists (we don't use this properties in our application)
+# schema.version.depth.start=${oxm.apiVersion}
+# schema.version.related.link.start=${oxm.apiVersion}
+# schema.version.app.root.start=${oxm.apiVersion}
+# schema.version.namespace.change.start=${oxm.apiVersion}
+# schema.version.edge.label.start=${oxm.apiVersion}
+
+# Properties required by AAI Schema Service MS
+schema.translator.list=config
+schema.service.base.url=${oxm.schemaServiceBaseUrl}
+schema.service.nodes.endpoint=nodes?version=
+schema.service.edges.endpoint=edgerules?version=
+schema.service.versions.endpoint=versions
+schema.local=true
+schema.filename=mockrequests
+#Default rest client is the two-way-ssl
+#schema.service.client=two-way-ssl
+#Replace the below with the A&AI client key store
+schema.service.ssl.key-store=${oxm.schemaServiceKeystore}
+#Replace the below with the A&AI tomcat trust store
+schema.service.ssl.trust-store=${oxm.schemaServiceTruststore}
+schema.service.ssl.key-store-password=${oxm.schemaServiceKeystorePassword}
+schema.service.ssl.trust-store-password=${oxm.schemaServiceTruststorePassword}
+
+spring.application.name=sparky
+
+nodeDir=src/main/resources/schema/onap/oxm/
+edgeDir=src/main/resources/schema/onap/oxm
+schemaIngestPropLoc=src/main/resources/schema/onap/oxm \ No newline at end of file
diff --git a/sparkybe-onap-application/config/logging/logback.xml b/sparkybe-onap-application/config/logging/logback.xml
index 3d132b7..0838bda 100644
--- a/sparkybe-onap-application/config/logging/logback.xml
+++ b/sparkybe-onap-application/config/logging/logback.xml
@@ -164,8 +164,8 @@
<logger name="ch.qos.logback.classic" level="WARN" />
<logger name="ch.qos.logback.core" level="WARN" />
- <root>
- <appender-ref ref="asyncEELF" />
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
<!-- <appender-ref ref="asyncEELFDebug" /> -->
</root>
diff --git a/sparkybe-onap-application/config/schemaIngest.properties b/sparkybe-onap-application/config/schemaIngest.properties
index f88a7ef..e69de29 100644
--- a/sparkybe-onap-application/config/schemaIngest.properties
+++ b/sparkybe-onap-application/config/schemaIngest.properties
@@ -1,57 +0,0 @@
-# Properties for the SchemaLocationsBean
-# Files named aai_oxm_v*.xml are unpacked here:
-# Schema Version Related Attributes
-schema.uri.base.path=/aai
-# Lists all of the versions in the schema
-schema.version.list=v9,v10,v11,v12,v13,v14
-# Specifies from which version should the depth parameter to default to zero
-schema.version.depth.start=v10
-# Specifies from which version should the related link be displayed in response payload
-schema.version.related.link.start=v10
-# Specifies from which version should the client see only the uri excluding host info
-# Before this version server base will also be included
-schema.version.app.root.start=v11
-# Specifies from which version should the namespace be changed
-schema.version.namespace.change.start=v12
-# Specifies from which version should the client start seeing the edge label in payload
-schema.version.edge.label.start=v12
-# Specifies the version that the application should default to
-schema.version.api.default=v14
-
-# Schema Location Related Attributes
-schema.configuration.location=NA
-
-# New propterties required by the aai-common - aai-schema-ingest lib as of 1.3.0
-schema.configuration.location=N/A
-schema.nodes.location=${oxm.schemaNodeDir}
-schema.edges.location=
-# These versions need to exist if they are included in the list
-schema.version.list=${oxm.apiVersionList}
-# Decalares the oxm version to load
-schema.version.api.default=${oxm.apiVersion}
-
-# Setting this values to ${oxm.apiVersion} only to ensure the value used exists (we don't use this properties in our application)
-schema.version.depth.start=${oxm.apiVersion}
-schema.version.related.link.start=${oxm.apiVersion}
-schema.version.app.root.start=${oxm.apiVersion}
-schema.version.namespace.change.start=${oxm.apiVersion}
-schema.version.edge.label.start=${oxm.apiVersion}
-
-# Properties required by AAI Schema Service MS
-schema.translator.list=config
-schema.service.base.url=${oxm.schemaServiceBaseUrl}
-schema.service.nodes.endpoint=nodes?version=
-schema.service.edges.endpoint=edgerules?version=
-schema.service.versions.endpoint=versions
-schema.local=true
-schema.filename=mockrequests
-#Default rest client is the two-way-ssl
-#schema.service.client=two-way-ssl
-#Replace the below with the A&AI client key store
-schema.service.ssl.key-store=${oxm.schemaServiceKeystore}
-#Replace the below with the A&AI tomcat trust store
-schema.service.ssl.trust-store=${oxm.schemaServiceTruststore}
-schema.service.ssl.key-store-password=${oxm.schemaServiceKeystorePassword}
-schema.service.ssl.trust-store-password=${oxm.schemaServiceTruststorePassword}
-
-spring.application.name=sparky \ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml b/sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml
new file mode 100644
index 0000000..74a291c
--- /dev/null
+++ b/sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:context="http://www.springframework.org/schema/context"
+ 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
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <context:property-placeholder location="file:${schemaIngestPropLoc}" ignore-unresolvable="true" />
+
+ <bean id="filtersConfig" class="org.onap.aai.sparky.search.filters.config.FiltersConfig">
+
+ </bean>
+
+ <bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader">
+ <property name="configHomeEnvVar" value="${CONFIG_HOME}" />
+ </bean>
+
+ <bean id="crossEntityReferenceLookup"
+ class="org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup" />
+
+ <bean id="oxmEntityLookup" class="org.onap.aai.sparky.config.oxm.OxmEntityLookup" />
+
+
+ <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="oxmEntityLookup" />
+ </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="schemaVersions" class="org.onap.aai.setup.SchemaVersions" />
+
+ <bean id="oxmConfigTranslator" class="org.onap.aai.setup.AAIConfigTranslator">
+ <constructor-arg ref="schemaLocationsBean" />
+ <constructor-arg ref="schemaVersions" />
+ </bean>
+
+ <bean id="nodeIngestor" class="org.onap.aai.nodes.NodeIngestor">
+ <constructor-arg ref="oxmConfigTranslator" />
+ </bean>
+
+
+ <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader"
+ init-method="loadModel">
+ <!-- <constructor-arg name="apiVersionOverride" value="V11" /> -->
+ <constructor-arg ref="oxmModelProcessorSet" />
+ <constructor-arg ref="schemaVersions" />
+ </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
index a210d12..c182c98 100644
--- a/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml
+++ b/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml
@@ -39,7 +39,7 @@
class="org.onap.aai.sparky.search.registry.SearchProviderRegistry" />
<bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader">
- <property name="configHomeEnvVar" value="CONFIG_HOME" />
+ <property name="configHomeEnvVar" value="${CONFIG_HOME}" />
</bean>
<bean id="unifiedSearchProcessor" class="org.onap.aai.sparky.search.UnifiedSearchProcessor">
diff --git a/sparkybe-onap-application/pom.xml b/sparkybe-onap-application/pom.xml
index 3b0301b..1d7d3b0 100644
--- a/sparkybe-onap-application/pom.xml
+++ b/sparkybe-onap-application/pom.xml
@@ -37,6 +37,7 @@
<aai.docker.namespace>onap</aai.docker.namespace>
<aai.base.image>alpine</aai.base.image>
<aai.base.image.version>1.13.2</aai.base.image.version>
+ <jacoco.line.coverage.limit>0.10</jacoco.line.coverage.limit>
<!-- This will be used for the docker images as the default format of maven build has issues -->
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
</properties>
@@ -94,6 +95,11 @@
</dependency>
<dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-restlet</artifactId>
<exclusions>
@@ -287,6 +293,13 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>1.18.30</version>
+ <scope>provided</scope>
+ </dependency>
+
<!-- Test dependencies -->
<dependency>
@@ -534,7 +547,7 @@
</execution>
<execution>
<id>unpack</id>
- <phase>prepare-package</phase>
+ <phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
@@ -548,6 +561,14 @@
<includes>/${shemaUnpackVersion}/oxm/</includes>
<outputDirectory>${aai.build.directory}</outputDirectory>
</artifactItem>
+ <artifactItem>
+ <groupId>org.onap.aai.schema-service</groupId>
+ <artifactId>aai-schema</artifactId>
+ <version>${version.aai-schema}</version>
+ <type>jar</type>
+ <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
+ <includes>**/oxm/**/*.xml</includes>
+ </artifactItem>
</artifactItems>
</configuration>
</execution>
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java
new file mode 100644
index 0000000..f6a88aa
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java
@@ -0,0 +1,95 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.aggregatevnf;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.onap.aai.restclient.client.OperationResult;
+import org.onap.aai.sparky.entities.Aggregation;
+import org.onap.aai.sparky.entities.AggregationFilter;
+import org.onap.aai.sparky.entities.AggregationResult;
+import org.onap.aai.sparky.entities.AggregationsResponse;
+import org.onap.aai.sparky.entities.SearchServiceAggregationsResponse;
+import org.onap.aai.sparky.entities.Bucket;
+import org.onap.aai.sparky.entities.BucketResponse;
+import org.onap.aai.sparky.entities.FilterAggregationRequest;
+import org.onap.aai.sparky.entities.SearchResult;
+import org.onap.aai.sparky.search.SearchServiceAdapter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.web.client.RestClientException;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@ActiveProfiles({"oxm-default","oxm-schema-dev", "camel","fe-dev"})
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class AggregateSummaryProcessorTest {
+
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ @MockBean SearchServiceAdapter searchServiceAdapter;
+ @Mock OperationResult operationResult;
+
+ @Autowired
+ private TestRestTemplate restTemplate;
+
+ @Value("${schema.ingest.file}") String schemaIngestFileLocation;
+
+ @Test
+ public void someTest() throws RestClientException, JsonProcessingException {
+ when(searchServiceAdapter.doPost(Mockito.any(), Mockito.any())).thenReturn(operationResult);
+ when(operationResult.wasSuccessful()).thenReturn(true);
+
+ List<Aggregation> aggregationList = Arrays.asList(new Aggregation("someAggregation", Arrays.asList(new Bucket(1L,"someKey"))));
+ SearchServiceAggregationsResponse searchServiceAggregationsResponse = new SearchServiceAggregationsResponse(new SearchResult(1L), new AggregationResult(aggregationList), 1L);
+ when(operationResult.getResult()).thenReturn(objectMapper.writeValueAsString(searchServiceAggregationsResponse));
+
+ Map<String,String> params = new HashMap<String,String>();
+ AggregationFilter filter = new AggregationFilter("1","someOrchestrationStatus");
+ FilterAggregationRequest request = new FilterAggregationRequest(Arrays.asList(filter));
+
+ ResponseEntity<AggregationsResponse> response = restTemplate.postForEntity("/rest/search/filterAggregation", objectMapper.writeValueAsString(request), AggregationsResponse.class);
+ AggregationsResponse aggregationsResponse = response.getBody();
+ assertEquals(1L, aggregationsResponse.getTotal());
+ BucketResponse bucket = aggregationsResponse.getAggregations().get("someAggregation").get(0);
+ assertEquals("someKey", bucket.getKey());
+ assertEquals(0, bucket.getDocCount());
+
+ }
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java
new file mode 100644
index 0000000..2ad0b44
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java
@@ -0,0 +1,30 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import java.util.List;
+
+import lombok.Value;
+
+@Value
+public class Aggregation {
+ String name;
+ List<Bucket> buckets;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java
new file mode 100644
index 0000000..5d4ba6c
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java
@@ -0,0 +1,28 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import lombok.Value;
+
+@Value
+public class AggregationFilter {
+ String filterId;
+ String filterValue;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java
new file mode 100644
index 0000000..5f353ad
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java
@@ -0,0 +1,29 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import java.util.List;
+
+import lombok.Value;
+
+@Value
+public class AggregationResult {
+ List<Aggregation> aggregations;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java
new file mode 100644
index 0000000..9675fff
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java
@@ -0,0 +1,31 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import java.util.List;
+import java.util.Map;
+
+import lombok.Data;
+
+@Data
+public class AggregationsResponse {
+ long total;
+ Map<String, List<BucketResponse>> aggregations;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java
new file mode 100644
index 0000000..8dcf388
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java
@@ -0,0 +1,28 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import lombok.Value;
+
+@Value
+public class Bucket {
+ long count;
+ String key;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java
new file mode 100644
index 0000000..ff07df5
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java
@@ -0,0 +1,28 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import lombok.Data;
+
+@Data
+public class BucketResponse {
+ long docCount;
+ String key;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java
new file mode 100644
index 0000000..5733f8d
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java
@@ -0,0 +1,29 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import java.util.List;
+
+import lombok.Value;
+
+@Value
+public class FilterAggregationRequest {
+ List<AggregationFilter> filters;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java
new file mode 100644
index 0000000..0e405b3
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java
@@ -0,0 +1,27 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import lombok.Value;
+
+@Value
+public class SearchResult {
+ long totalHits;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java
new file mode 100644
index 0000000..a25df4c
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java
@@ -0,0 +1,29 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.entities;
+
+import lombok.Value;
+
+@Value
+public class SearchServiceAggregationsResponse {
+ SearchResult searchResult;
+ AggregationResult aggregationResult;
+ long totalHits;
+}
diff --git a/sparkybe-onap-service/pom.xml b/sparkybe-onap-service/pom.xml
index 7647010..80b50f9 100644
--- a/sparkybe-onap-service/pom.xml
+++ b/sparkybe-onap-service/pom.xml
@@ -1,7 +1,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <parent>
+ <parent>
<groupId>org.onap.aai</groupId>
<artifactId>sparky-be</artifactId>
<version>2.0.5-SNAPSHOT</version>
@@ -62,7 +62,7 @@ some of the depedencies should probably have a scope of provided so they don't a
-->
- <dependencies>
+<dependencies>
<!-- Spring dependencies -->
<dependency>
@@ -351,14 +351,11 @@ some of the depedencies should probably have a scope of provided so they don't a
<scope>test</scope>
</dependency>
- </dependencies>
-
- <build>
+</dependencies>
+<build>
<pluginManagement>
<plugins>
-
-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
@@ -367,40 +364,7 @@ some of the depedencies should probably have a scope of provided so they don't a
<release>11</release> <!--or <release>10</release>-->
</configuration>
</plugin>
-
-<!-- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.7</version>
- <executions>
- <execution>
- <id>copy-docker-file</id>
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>target</outputDirectory>
- <overwrite>true</overwrite>
- <resources>
- <resource>
- <directory>${basedir}/src/main/docker</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- <resource>
- <directory>${basedir}/src/main/scripts/</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin> -->
-
</plugins>
-
</pluginManagement>
<plugins>
@@ -424,84 +388,16 @@ some of the depedencies should probably have a scope of provided so they don't a
</reportPlugins>
</configuration>
</plugin>
-
- <!-- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.7</version>
- <executions>
- <execution>
- <id>copy-docker-file</id>
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>target</outputDirectory>
- <overwrite>true</overwrite>
- <resources>
- <resource>
- <directory>${basedir}/src/main/docker</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- <resource>
- <directory>${basedir}/src/main/scripts/</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin> -->
-
-<!-- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>0.4.11</version>
- <configuration>
- <verbose>true</verbose>
- <serverId>docker-hub</serverId>
- <imageName>${docker.push.registry}/onap/${project.artifactId}</imageName>
- <dockerDirectory>${docker.location}</dockerDirectory>
- <imageTags>
- <imageTag>latest</imageTag>
- </imageTags>
- <forceTags>true</forceTags>
- </configuration>
- </plugin> -->
- <!-- license plugin -->
-<!-- <plugin>
- <groupId>com.mycila</groupId>
- <artifactId>license-maven-plugin</artifactId>
- <version>3.0</version>
- <configuration>
- <header>LICENSE</header>
- <includes>
- <include>src/main/java/**</include>
- </includes>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>format</goal>
- </goals>
- <phase>process-sources</phase>
- </execution>
- </executions>
- </plugin>
- -->
-<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.8.2</version>
- </plugin>
- </plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ </plugin>
+ </plugins>
</build>
- <distributionManagement>
+<distributionManagement>
<repository>
<id>ecomp-releases</id>
<name>ECOMP Release Repository</name>
@@ -516,9 +412,9 @@ some of the depedencies should probably have a scope of provided so they don't a
<id>ecomp-site</id>
<url>dav:${onap.nexus.url}${sitePath}</url>
</site>
- </distributionManagement>
+</distributionManagement>
- <repositories>
+<repositories>
<repository>
<id>central</id>
<name>Maven 2 repository 2</name>
@@ -539,8 +435,5 @@ some of the depedencies should probably have a scope of provided so they don't a
<name>ECOMP Snapshot Repository</name>
<url>${onap.nexus.url}/content/repositories/snapshots/</url>
</repository>
- </repositories>
-
-
-
+</repositories>
</project>
diff --git a/sparkybe-onap-service/src/main/java/org/onap/aai/sparky/config/SparkyResourceLoader.java b/sparkybe-onap-service/src/main/java/org/onap/aai/sparky/config/SparkyResourceLoader.java
index 6bb0c45..aec2b3f 100644
--- a/sparkybe-onap-service/src/main/java/org/onap/aai/sparky/config/SparkyResourceLoader.java
+++ b/sparkybe-onap-service/src/main/java/org/onap/aai/sparky/config/SparkyResourceLoader.java
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
@@ -34,7 +35,8 @@ public class SparkyResourceLoader implements ResourceLoaderAware {
private static final String FILE_URI = "file:";
private ResourceLoader resourceLoader;
- private String configHomeEnvVar;
+
+ @Value("${CONFIG_HOME}") private String configHomeEnvVar;
// private static Logger LOG = LoggerFactory.getInstance().getLogger(SparkyResourceLoader.class);
@@ -44,7 +46,7 @@ public class SparkyResourceLoader implements ResourceLoaderAware {
}
public String getFullFileUri(String uriFilePath) {
- return FILE_URI + System.getProperty(configHomeEnvVar) + uriFilePath;
+ return FILE_URI + configHomeEnvVar + "/" + uriFilePath;
}
public String getAbsolutePath(String uriFilePath) {
diff --git a/sparkybe-onap-service/src/main/resources/application.properties b/sparkybe-onap-service/src/main/resources/application.properties
new file mode 100644
index 0000000..41bb8d8
--- /dev/null
+++ b/sparkybe-onap-service/src/main/resources/application.properties
@@ -0,0 +1 @@
+CONFIG_HOME=./config \ No newline at end of file
diff --git a/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/autosuggestion/sync/AutosuggestionSynchronizerTest.java b/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/autosuggestion/sync/AutosuggestionSynchronizerTest.java
index d8833e3..269e867 100644
--- a/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/autosuggestion/sync/AutosuggestionSynchronizerTest.java
+++ b/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/autosuggestion/sync/AutosuggestionSynchronizerTest.java
@@ -62,7 +62,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(properties = {
-"schemaIngestPropLoc = src/test/resources/oxm-reader/schema-ingest-single-oxm.properties" })
+"schemaIngestPropLoc = src/test/resources/oxm-reader/schema-ingest-single-oxm.properties",
+"CONFIG_HOME = ./config" })
@ContextConfiguration(locations = { "classpath:oxm-reader/oxm-reader-bean.xml" })
diff --git a/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/viewandinspect/BaseVisualizationContextTest.java b/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/viewandinspect/BaseVisualizationContextTest.java
index 1de7263..9b086c5 100644
--- a/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/viewandinspect/BaseVisualizationContextTest.java
+++ b/sparkybe-onap-service/src/test/java/org/onap/aai/sparky/viewandinspect/BaseVisualizationContextTest.java
@@ -67,10 +67,9 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(properties = {
-"schemaIngestPropLoc = src/test/resources/oxm-reader/schema-ingest-single-oxm.properties" })
+"schemaIngestPropLoc = src/test/resources/oxm-reader/schema-ingest-single-oxm.properties",
+"CONFIG_HOME = ./config" })
@ContextConfiguration(locations = { "classpath:oxm-reader/oxm-reader-bean.xml" })
-
-
public class BaseVisualizationContextTest {
private static SecureRandom secureRandom = new SecureRandom();
diff --git a/sparkybe-onap-service/src/test/resources/application.properties b/sparkybe-onap-service/src/test/resources/application.properties
new file mode 100644
index 0000000..41bb8d8
--- /dev/null
+++ b/sparkybe-onap-service/src/test/resources/application.properties
@@ -0,0 +1 @@
+CONFIG_HOME=./config \ No newline at end of file
diff --git a/sparkybe-onap-service/src/test/resources/oxm-reader/schema-ingest-single-oxm.properties b/sparkybe-onap-service/src/test/resources/oxm-reader/schema-ingest-single-oxm.properties
index 897f7da..d66500a 100644
--- a/sparkybe-onap-service/src/test/resources/oxm-reader/schema-ingest-single-oxm.properties
+++ b/sparkybe-onap-service/src/test/resources/oxm-reader/schema-ingest-single-oxm.properties
@@ -17,4 +17,6 @@ schema.version.depth.start=v11
schema.version.related.link.start=v11
schema.version.app.root.start=v11
schema.version.namespace.change.start=v11
-schema.version.edge.label.start=v11 \ No newline at end of file
+schema.version.edge.label.start=v11
+
+CONFIG_HOME=./config \ No newline at end of file