<?xml version="1.0"?>
<!--
- ============LICENSE_START=======================================================
+ ============LICENSE_START=======================================================
org.onap.aai
================================================================================
Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
<properties>
<docker.location>${basedir}/target</docker.location>
- <aaiCommonVersion>1.4.0-SNAPSHOT</aaiCommonVersion>
<event.client.version>1.4.0-SNAPSHOT</event.client.version>
+ <version.aai-schema>1.4.1-SNAPSHOT</version.aai-schema>
+ <version.aai-schema-ingest>1.4.1-SNAPSHOT</version.aai-schema-ingest>
</properties>
<dependencyManagement>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
- <version>2.1.0.RELEASE</version>
+ <version>1.5.17.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<scope>test</scope>
</dependency>
+ <!-- MODEL -->
+ <dependency>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-schema</artifactId>
+ <version>${version.aai-schema}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-schema-ingest</artifactId>
+ <version>${version.aai-schema-ingest}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.powermock</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- EVENT CLIENT -->
+ <dependency>
+ <groupId>org.onap.aai.event-client</groupId>
+ <artifactId>event-client-api</artifactId>
+ <version>${event.client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aai.event-client</groupId>
+ <artifactId>event-client-dmaap</artifactId>
+ <version>${event.client.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-client</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aai.event-client</groupId>
+ <artifactId>event-client-kafka</artifactId>
+ <version>${event.client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aai.event-client</groupId>
+ <artifactId>event-client-rabbitmq</artifactId>
+ <version>${event.client.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
+ <version>3.7</version>
</dependency>
<dependency>
<version>2.4</version>
</dependency>
- <dependency>
- <groupId>org.onap.aai.aai-common</groupId>
- <artifactId>aai-schema-ingest</artifactId>
- <version>${aaiCommonVersion}</version>
- </dependency>
-
<!-- Common logging framework -->
<dependency>
<groupId>org.onap.aai.logging-service</groupId>
<artifactId>logback-core</artifactId>
</dependency>
- <dependency>
- <groupId>org.onap.aai.aai-common</groupId>
- <artifactId>aai-core</artifactId>
- <version>${aaiCommonVersion}</version>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
-
</dependency>
<dependency>
<artifactId>gson</artifactId>
</dependency>
- <dependency>
- <groupId>org.onap.aai.aai-common</groupId>
- <artifactId>aai-schema</artifactId>
- <version>${aaiCommonVersion}</version>
- </dependency>
-
- <dependency>
- <groupId>org.onap.aai.event-client</groupId>
- <artifactId>event-client-api</artifactId>
- <version>${event.client.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.onap.aai.event-client</groupId>
- <artifactId>event-client-dmaap</artifactId>
- <version>${event.client.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.onap.aai.event-client</groupId>
- <artifactId>event-client-kafka</artifactId>
- <version>${event.client.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.onap.aai.event-client</groupId>
- <artifactId>event-client-rabbitmq</artifactId>
- <version>${event.client.version}</version>
- </dependency>
-
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<artifactId>jsonassert</artifactId>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>2.15.0</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
- <version>2.0.3.RELEASE</version>
+ <version>1.5.17.RELEASE</version>
<executions>
<execution>
<goals>
<artifactItem>
<groupId>org.onap.aai.aai-common</groupId>
<artifactId>aai-schema</artifactId>
- <version>${aaiCommonVersion}</version>
+ <version>${version.aai-schema}</version>
<type>jar</type>
<includes>onap/**/</includes>
<outputDirectory>${project.build.directory}/bundleconfig-local/etc</outputDirectory>
+++ /dev/null
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * 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.spike;
-
-import org.onap.aai.edges.EdgeIngestor;
-import org.onap.aai.nodes.NodeIngestor;
-import org.onap.aai.setup.AAIConfigTranslator;
-import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.SchemaVersions;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-
-@Configuration
-@PropertySource(value = "file:${schema.ingest.file}", ignoreResourceNotFound = true)
-public class SchemaIngestConfiguration {
-
- @Bean
- public SchemaVersions schemaVersions() {
- return new SchemaVersions();
- }
-
- @Bean
- public SchemaLocationsBean schemaLocationsBean() {
- return new SchemaLocationsBean();
- }
-
- @Bean
- public ConfigTranslator configTranslator() {
- return new AAIConfigTranslator(schemaLocationsBean(), schemaVersions());
- }
-
- @Bean
- public NodeIngestor nodeIngestor() {
- return new NodeIngestor(configTranslator());
- }
-
- @Bean
- public EdgeIngestor edgeIngestor() {
- return new EdgeIngestor(configTranslator(), schemaVersions());
- }
-
-}
import java.util.HashMap;
import javax.annotation.PostConstruct;
import org.eclipse.jetty.util.security.Password;
+import org.onap.aai.setup.AAIConfigTranslator;
+import org.onap.aai.setup.ConfigTranslator;
+import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.Import;
+import org.springframework.boot.web.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
+import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
/**
* Spike service Spring Boot Application
*/
@SpringBootApplication
-@Import({SchemaIngestConfiguration.class})
+@ComponentScan(basePackages = {"org.onap.aai.config", "org.onap.aai.setup", "org.onap.aai.spike"})
+@PropertySource(value = "file:${schema.ingest.file}", ignoreResourceNotFound = true)
+@PropertySource(value = "file:${edgeprops.ingest.file}", ignoreResourceNotFound = true)
@ImportResource({"file:${SERVICE_BEANS}/*.xml"})
public class SpikeApplication extends SpringBootServletInitializer {
@Autowired
HashMap<String, Object> props = new HashMap<>();
props.put("server.ssl.key-store-password", Password.deobfuscate(keyStorePassword));
+ props.put("schema.service.ssl.key-store-password", Password.deobfuscate(keyStorePassword));
+ props.put("schema.service.ssl.trust-store-password", Password.deobfuscate(keyStorePassword));
- new SpikeApplication().configure(new SpringApplicationBuilder(SchemaIngestConfiguration.class)
- .child(SpikeApplication.class).properties(props)).run(args);
+ new SpikeApplication().configure(new SpringApplicationBuilder(SpikeApplication.class).properties(props))
+ .run(args);
}
/**
}
}
+ @Bean
+ @ConditionalOnExpression("'${schema.translator.list}'.contains('config')")
+ public ConfigTranslator configTranslator(SchemaLocationsBean schemaLocationsBean, SchemaVersions schemaVersions) {
+ return new AAIConfigTranslator(schemaLocationsBean, schemaVersions);
+ }
+
}
import org.onap.aai.edges.EdgeIngestor;
import org.onap.aai.edges.EdgeRule;
import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException;
-import org.onap.aai.setup.ConfigTranslator;
import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.Translator;
import org.onap.aai.spike.exception.SpikeException;
import org.onap.aai.spike.logging.SpikeMsgs;
import org.springframework.beans.factory.annotation.Autowired;
@Component
public class EdgeRulesLoader {
- private static ConfigTranslator configTranslator;
+ private static Translator translator;
private static EdgeIngestor edgeIngestor;
private static EdgePropsConfiguration edgePropsConfiguration;
* This constructor presents an awkward marrying of Spring bean creation and static method use. This
* is technical debt that will need fixing.
*
- * @param configTranslator contains schema versions configuration
+ * @param translator contains schema versions configuration
* @param edgeIngestor provides edge rules
* @param edgePropsConfiguration edge property validation configuration
*/
@Autowired
- public EdgeRulesLoader(ConfigTranslator configTranslator, EdgeIngestor edgeIngestor,
+ public EdgeRulesLoader(Translator translator, EdgeIngestor edgeIngestor,
EdgePropsConfiguration edgePropsConfiguration) {
- EdgeRulesLoader.configTranslator = configTranslator;
+ EdgeRulesLoader.translator = translator;
EdgeRulesLoader.edgeIngestor = edgeIngestor;
EdgeRulesLoader.edgePropsConfiguration = edgePropsConfiguration;
}
for (String version : OXMModelLoader.getLoadedOXMVersions()) {
try {
- SchemaVersion schemaVersion = configTranslator.getSchemaVersions().getVersions().stream()
+ SchemaVersion schemaVersion = translator.getSchemaVersions().getVersions().stream()
.filter(s -> s.toString().equalsIgnoreCase(version)).findAny().orElse(null);
loadModel(schemaVersion, edgeIngestor, propFiles);
} catch (IOException | EdgeRuleNotFoundException e) {
}
try {
- SchemaVersion schemaVersion = configTranslator.getSchemaVersions().getVersions().stream()
+ SchemaVersion schemaVersion = translator.getSchemaVersions().getVersions().stream()
.filter(s -> s.toString().equalsIgnoreCase(v)).findAny().orElse(null);
loadModel(schemaVersion, edgeIngestor, propFiles);
import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
import org.onap.aai.cl.eelf.LoggerFactory;
import org.onap.aai.nodes.NodeIngestor;
-import org.onap.aai.setup.ConfigTranslator;
import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.Translator;
import org.onap.aai.spike.exception.SpikeException;
import org.onap.aai.spike.logging.SpikeMsgs;
import org.springframework.beans.factory.annotation.Autowired;
@Component
public class OXMModelLoader {
- private static ConfigTranslator configTranslator;
+ private static Translator translator;
private static NodeIngestor nodeIngestor;
private static Map<String, DynamicJAXBContext> versionContextMap = new ConcurrentHashMap<>();
* This constructor presents an awkward marrying of Spring bean creation and static method use. This
* is technical debt that will need fixing.
*
- * @param configTranslator contains schema versions configuration
+ * @param translator contains schema versions configuration
* @param nodeIngestor provides DynamicJAXBContext for the OXM version
*/
@Autowired
- public OXMModelLoader(ConfigTranslator configTranslator, NodeIngestor nodeIngestor) {
- OXMModelLoader.configTranslator = configTranslator;
+ public OXMModelLoader(Translator translator, NodeIngestor nodeIngestor) {
+ OXMModelLoader.translator = translator;
OXMModelLoader.nodeIngestor = nodeIngestor;
}
logger.debug("Loading OXM Models");
}
- for (SchemaVersion oxmVersion : configTranslator.getSchemaVersions().getVersions()) {
+ for (SchemaVersion oxmVersion : translator.getSchemaVersions().getVersions()) {
DynamicJAXBContext jaxbContext = nodeIngestor.getContextForVersion(oxmVersion);
if (jaxbContext != null) {
loadModel(oxmVersion.toString(), jaxbContext);
+spring.application.name=spike
server.port=9518
SERVICE_BEANS=dynamic/conf
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.junit.Before;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.onap.aai.setup.SchemaLocationsBean;
import org.onap.aai.setup.SchemaVersion;
import org.onap.aai.setup.SchemaVersions;
+import org.onap.aai.setup.Translator;
import org.onap.aai.spike.schema.EdgePropsConfiguration;
import org.onap.aai.spike.schema.EdgeRulesLoader;
import org.onap.aai.spike.schema.OXMModelLoader;
Mockito.when(edgePropsConfiguration.getEdgePropsDir()).thenReturn("src/test/resources/edgeProps/");
AAIConfigTranslator aaiConfigTranslator = new AAIConfigTranslator(schemaLocationsBean, schemaVersions);
- NodeIngestor nodeIngestor = new NodeIngestor(aaiConfigTranslator);
- EdgeIngestor edgeIngestor = new EdgeIngestor(aaiConfigTranslator, schemaVersions);
+ Set<Translator> translators = new HashSet<>();
+ translators.add(aaiConfigTranslator);
+ NodeIngestor nodeIngestor = new NodeIngestor(translators);
+ nodeIngestor.initialize();
+ EdgeIngestor edgeIngestor = new EdgeIngestor(translators);
+ edgeIngestor.initialize();
edgeRulesLoader = new EdgeRulesLoader(aaiConfigTranslator, edgeIngestor, edgePropsConfiguration);
oxmModelLoader = new OXMModelLoader(aaiConfigTranslator, nodeIngestor);
}
/**
- * ============LICENSE_START=======================================================
+ * ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
* Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
@Test
public void testOffsetAdvancement() throws Exception {
- final Long offsetPeriod = 500L; // ms
+ final Long offsetPeriod = 100L; // ms
// Create an instance of the offset manager.
- OffsetManager offsetManager = new OffsetManager(10, offsetPeriod);
+ OffsetManager offsetManager = new OffsetManager(5, offsetPeriod);
// Now, cache some events as if we had consumed them and they
// are in flight.