Update Janusgraph to 0.6.0 in graphadmin 30/138430/7
authorFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Fri, 12 Jul 2024 08:52:39 +0000 (10:52 +0200)
committerFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Tue, 6 Aug 2024 06:35:34 +0000 (08:35 +0200)
- update Janusgraph (0.5.3 -> 0.6.0)
- update Tinkerpop (3.4.13 -> 3.5.1)
- bump version to 1.14.5-SNAPSHOT

Issue-ID: AAI-3929
Change-Id: I75bccadca63eb7cd67bd8f9ebbb8d79978138bcc
Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
16 files changed:
pom.xml
src/main/java/org/onap/aai/GraphAdminApp.java
src/main/java/org/onap/aai/datasnapshot/DataSnapshot.java
src/main/java/org/onap/aai/datasnapshot/DataSnapshot4HistInit.java
src/main/java/org/onap/aai/db/schema/ScriptDriver.java
src/main/java/org/onap/aai/dbgen/ForceDeleteTool.java
src/main/java/org/onap/aai/dbgen/UpdatePropertyToolInternal.java
src/main/java/org/onap/aai/migration/MigrationControllerInternal.java
src/main/java/org/onap/aai/migration/NotificationHelper.java
src/main/java/org/onap/aai/rest/QueryConsumer.java
src/main/java/org/onap/aai/schema/GenTester.java
src/main/java/org/onap/aai/util/GraphAdminDBUtils.java
src/test/java/org/onap/aai/AAIGremlinQueryTest.java
src/test/java/org/onap/aai/AAISetup.java
src/test/java/org/onap/aai/MetricsConfigurationTest.java
src/test/resources/etc/appprops/aaiconfig.properties [new file with mode: 0644]

diff --git a/pom.xml b/pom.xml
index f20edbd..17645cb 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.aai.aai-common</groupId>
         <artifactId>aai-parent</artifactId>
-        <version>1.14.4</version>
+        <version>1.14.5</version>
     </parent>
     <groupId>org.onap.aai.graphadmin</groupId>
     <artifactId>aai-graphadmin</artifactId>
         <docker.push.registry>localhost:5000</docker.push.registry>
         <aai.docker.version>1.0.0</aai.docker.version>
         <aai.schema.service.version>1.12.5</aai.schema.service.version>
-        <aai.common.version>1.14.4</aai.common.version>
+        <aai.common.version>1.14.5</aai.common.version>
         <aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/
         </aai.build.directory>
         <aai.docker.namespace>onap</aai.docker.namespace>
-        <!-- base image for aai-common -->
-        <aai.base.image>alpine</aai.base.image>
-        <!-- aai-common image version -->
-        <aai.base.image.version>1.13.4</aai.base.image.version>
-        <!-- End of Docker Related Properties -->
 
         <license.goal.type>check</license.goal.type>
 
         <schema.uri.base.path>/aai</schema.uri.base.path>
         <!-- End of Default ONAP Schema Properties -->
 
-        <janusgraph.version>0.5.3</janusgraph.version>
-        <gremlin.version>3.4.13</gremlin.version>
         <micrometer.version>1.8.1</micrometer.version>
         <activemq.version>5.16.7</activemq.version>
         <antlr.version>4.9.3</antlr.version>
             <id>docker</id>
             <build>
                 <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.groovy.maven</groupId>
-                        <artifactId>gmaven-plugin</artifactId>
-                        <version>1.0</version>
-                        <executions>
-                            <execution>
-                                <phase>pre-clean</phase>
-                            </execution>
-                            <execution>
-                                <id>parse-base</id>
-                                <phase>prepare-package</phase>
-                                <goals>
-                                    <goal>execute</goal>
-                                </goals>
-                                <configuration>
-                                    <source>
-                                        def userAaiBaseImage = session.userProperties['aai.base.image'];
-                                        def userAaiCommonVersion = session.userProperties['aai.base.image.version'];
-                                        if (userAaiCommonVersion != null) {
-                                            project.properties['aai.base.image.version'] = userAaiCommonVersion;
-                                        }
-                                        if (userAaiBaseImage != null) {
-                                            project.properties['aai.base.image'] = userAaiBaseImage;
-                                        }
-                                        log.info 'Base image flavour: ' + project.properties['aai.base.image'];
-                                        log.info 'Base image version: ' + project.properties['aai.base.image.version'];
-                                    </source>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
                     <plugin>
                         <groupId>io.fabric8</groupId>
                         <artifactId>docker-maven-plugin</artifactId>
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-validator</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
index ebb4634..74328ac 100644 (file)
@@ -33,6 +33,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
 import org.springframework.context.annotation.ComponentScan;
@@ -63,17 +65,24 @@ import javax.annotation.PreDestroy;
     "org.onap.aai.datacleanup",
     "org.onap.aai.aailog",
     "org.onap.aai.failover",
-    "org.onap.aai.audit"
+    "org.onap.aai.audit",
+    "org.onap.aai.introspection",
+    "org.onap.aai.rest.notification"
 })
 @EnableAsync
 @EnableScheduling
 @EnableAspectJAutoProxy
-@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
+@EnableAutoConfiguration(exclude = {
+    DataSourceAutoConfiguration.class,
+    HibernateJpaAutoConfiguration.class,
+    CassandraDataAutoConfiguration.class,
+    CassandraAutoConfiguration.class
+})
 public class GraphAdminApp {
 
     public static final String APP_NAME = "GraphAdmin";
     private static final Logger LOGGER = LoggerFactory.getLogger(GraphAdminApp.class);
-    
+
     private static AaiDebugLog debugLog = new AaiDebugLog();
        static {
                debugLog.setupMDC();
@@ -128,7 +137,7 @@ public class GraphAdminApp {
 
         AAIGraph.getInstance();
 
-        System.setProperty("org.onap.aai.graphadmin.started", "true");             
+        System.setProperty("org.onap.aai.graphadmin.started", "true");
         LOGGER.info("GraphAdmin MicroService Started");
         LOGGER.debug("GraphAdmin MicroService Started");
         System.out.println("GraphAdmin Microservice Started");
index 5015213..9feb6d7 100644 (file)
@@ -40,14 +40,13 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.io.IoCore;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONIo;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
 import org.janusgraph.core.JanusGraph;
 import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.util.JanusGraphCleanup;
 import org.onap.aai.dbmap.AAIGraph;
 import org.onap.aai.dbmap.AAIGraphConfig;
 import org.onap.aai.exceptions.AAIException;
@@ -701,7 +700,7 @@ public class DataSnapshot {
                                verifyGraph(janusGraph);
                                GraphAdminDBUtils.logConfigs(janusGraph.configuration());
                                janusGraph.close();
-                               JanusGraphCleanup.clear(janusGraph);
+                               JanusGraphFactory.drop(janusGraph);
                                LOGGER.debug(" Done clearing data. ");
                                LOGGER.debug(">>> IMPORTANT - NOTE >>> you need to run the SchemaGenerator (use GenTester) before ");
                                LOGGER.debug("     reloading data or the data will be put in without indexes. ");
index 43c31e1..85bf142 100644 (file)
@@ -42,13 +42,12 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import org.onap.aai.restclient.PropertyPasswordConfiguration;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
 import org.apache.tinkerpop.gremlin.structure.io.IoCore;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONIo;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
 import org.janusgraph.core.JanusGraph;
 import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.util.JanusGraphCleanup;
 import org.onap.aai.dbmap.AAIGraph;
 import org.onap.aai.dbmap.AAIGraphConfig;
 import org.onap.aai.exceptions.AAIException;
@@ -803,7 +802,7 @@ public class DataSnapshot4HistInit {
                                verifyGraph(janusGraph);
                                GraphAdminDBUtils.logConfigs(janusGraph.configuration());
                                janusGraph.close();
-                               JanusGraphCleanup.clear(janusGraph);
+                               JanusGraphFactory.drop(janusGraph);
                                LOGGER.debug(" Done clearing data. ");
                                LOGGER.debug(">>> IMPORTANT - NOTE >>> you need to run the SchemaGenerator (use GenTester) before ");
                                LOGGER.debug("     reloading data or the data will be put in without indexes. ");
index 3d9ec69..a70239f 100644 (file)
@@ -22,8 +22,7 @@ package org.onap.aai.db.schema;
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
 import org.codehaus.jackson.JsonGenerationException;
 import org.janusgraph.core.JanusGraph;
 import org.janusgraph.core.JanusGraphFactory;
@@ -50,13 +49,14 @@ public class ScriptDriver {
         * @throws AAIException the AAI exception
         * @throws JsonGenerationException the json generation exception
         * @throws IOException Signals that an I/O exception has occurred.
+        * @throws org.apache.commons.configuration2.ex.ConfigurationException
         */
-       public static void main (String[] args) throws AAIException, IOException, ConfigurationException, ErrorObjectFormatException {
+       public static void main (String[] args) throws AAIException, IOException, ErrorObjectFormatException, org.apache.commons.configuration2.ex.ConfigurationException {
                CommandLineArgs cArgs = new CommandLineArgs();
-               
+
                ErrorLogHelper.loadProperties();
                new JCommander(cArgs, args);
-               
+
                if (cArgs.help) {
                        System.out.println("-c [path to graph configuration] -type [what you want to audit - oxm or graph]");
                }
@@ -67,7 +67,7 @@ public class ScriptDriver {
                try {
                        ctx.scan(
                                        "org.onap.aai.config",
-                                       "org.onap.aai.setup"
+                                       "org.onap.aai"
                        );
                        ctx.refresh();
 
@@ -108,19 +108,19 @@ public class ScriptDriver {
                        System.out.println(json);
                }
        }
-       
+
 }
 
 class CommandLineArgs {
-       
+
        @Parameter(names = "--help", description = "Help")
        public boolean help = false;
-       
+
        @Parameter(names = "-c", description = "Configuration", required=true)
        public String config;
-       
+
        @Parameter(names = "-type", description = "Type", required=true)
        public String type = "graph";
-       
 
-}
\ No newline at end of file
+
+}
index 1228649..451e344 100644 (file)
@@ -28,7 +28,6 @@ import java.util.Properties;
 import java.util.Scanner;
 import java.util.UUID;
 
-import org.apache.commons.configuration.ConfigurationException;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
index 1e41a91..3b7c4b8 100644 (file)
@@ -25,7 +25,7 @@ import org.slf4j.LoggerFactory;
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
 
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
index f2b727f..7a170c3 100644 (file)
@@ -23,8 +23,10 @@ package org.onap.aai.migration;
 import com.att.eelf.configuration.Configuration;
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.builder.fluent.Parameters;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.onap.aai.datasnapshot.DataSnapshot;
 import org.onap.aai.db.props.AAIProperties;
@@ -111,7 +113,12 @@ public class MigrationControllerInternal {
                // graph storage backend of inmemory
                if (cArgs.dataSnapshot != null && !cArgs.dataSnapshot.isEmpty()) {
                        try {
-                               PropertiesConfiguration config = new PropertiesConfiguration(cArgs.config);
+                               FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
+                       new FileBasedConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class)
+                       .configure(new Parameters().properties()
+               .setFileName(cArgs.config));
+                                       PropertiesConfiguration config = builder.getConfiguration();
+                               // PropertiesConfiguration config = new PropertiesConfiguration(cArgs.config);
                                if (config.getString("storage.backend").equals("inmemory")) {
                                        System.setProperty("snapshot.location", cArgs.dataSnapshot);
                                        String snapshotLocation =cArgs.dataSnapshot;
index f08c56d..817e5df 100644 (file)
@@ -32,7 +32,7 @@ import org.onap.aai.introspection.Introspector;
 import org.onap.aai.introspection.Loader;
 import org.onap.aai.introspection.LoaderFactory;
 import org.onap.aai.introspection.exceptions.AAIUnknownObjectException;
-import org.onap.aai.rest.ueb.UEBNotification;
+import org.onap.aai.rest.notification.UEBNotification;
 import org.onap.aai.serialization.db.DBSerializer;
 import org.onap.aai.serialization.engines.TransactionalGraphEngine;
 import org.onap.aai.serialization.engines.query.QueryEngine;
@@ -64,9 +64,9 @@ public class NotificationHelper {
                this.notification = new UEBNotification(loader, loaderFactory, schemaVersions);
                MDC.put("logFilenameAppender", this.getClass().getSimpleName());
                LOGGER = LoggerFactory.getLogger(this.getClass().getSimpleName());
-               
+
        }
-       
+
        public void addEvent(Vertex v, Introspector obj, EventAction action, URI uri, String basePath) throws UnsupportedEncodingException, AAIException {
                HashMap<String, Introspector> relatedObjects = new HashMap<>();
                Status status = mapAction(action);
@@ -75,15 +75,15 @@ public class NotificationHelper {
                        relatedObjects = this.getRelatedObjects(serializer, engine.getQueryEngine(), v);
                }
                notification.createNotificationEvent(transactionId, sourceOfTruth, status, uri, obj, relatedObjects, basePath);
-               
+
        }
-       
+
        public void addDeleteEvent(String transactionId, String sourceOfTruth, EventAction action, URI uri, Introspector obj, HashMap relatedObjects,String basePath) throws UnsupportedEncodingException, AAIException {
                Status status = mapAction(action);
                notification.createNotificationEvent(transactionId, sourceOfTruth, status, uri, obj, relatedObjects, basePath);
-               
+
        }
-       
+
        private HashMap<String, Introspector> getRelatedObjects(DBSerializer serializer, QueryEngine queryEngine, Vertex v) throws AAIException {
                HashMap<String, Introspector> relatedVertices = new HashMap<>();
                List<Vertex> vertexChain = queryEngine.findParents(v);
@@ -94,12 +94,12 @@ public class NotificationHelper {
                        } catch (AAIUnknownObjectException | UnsupportedEncodingException e) {
                                LOGGER.warn("Unable to get vertex properties, partial list of related vertices returned");
                        }
-                       
+
                }
-               
+
                return relatedVertices;
        }
-       
+
        private Status mapAction(EventAction action) {
                if (EventAction.CREATE.equals(action)) {
                        return Status.CREATED;
@@ -111,7 +111,7 @@ public class NotificationHelper {
                        return Status.OK;
                }
        }
-       
+
        public void triggerEvents() throws AAIException {
                notification.triggerEvents();
        }
index b709cfa..a0ba61a 100644 (file)
@@ -44,6 +44,7 @@ import org.onap.aai.util.AAIConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
@@ -56,10 +57,10 @@ import java.util.List;
 @Component
 @Path("{version: v[1-9][0-9]*|latest}/dbquery")
 public class QueryConsumer extends RESTAPI {
-       
+
        /** The introspector factory type. */
        private ModelType introspectorFactoryType = ModelType.MOXY;
-       
+
        private QueryProcessorType processorType = QueryProcessorType.LOCAL_GROOVY;
 
        private static final String TARGET_ENTITY = "DB";
@@ -75,7 +76,7 @@ public class QueryConsumer extends RESTAPI {
 
        @Autowired
        public QueryConsumer(
-               HttpEntry traversalUriHttpEntry,
+               @Qualifier("traversalUriHttpEntry") HttpEntry traversalUriHttpEntry,
                DslQueryProcessor dslQueryProcessor,
                SchemaVersions schemaVersions,
                @Value("${schema.uri.base.path}") String basePath
@@ -121,14 +122,14 @@ public class QueryConsumer extends RESTAPI {
                        }
                        SubGraphStyle subGraphStyle = SubGraphStyle.valueOf(subgraph);
                        JsonParser parser = new JsonParser();
-                       
+
                        JsonObject input = parser.parse(content).getAsJsonObject();
-                       
+
                        JsonElement gremlinElement = input.get("gremlin");
                        JsonElement dslElement = input.get("dsl");
                        String gremlin = "";
                        String dsl = "";
-                       
+
                        SchemaVersion version = new SchemaVersion(versionParam);
                        traversalUriHttpEntry.setHttpEntryProperties(version);
                        dbEngine = traversalUriHttpEntry.getDbEngine();
@@ -140,9 +141,9 @@ public class QueryConsumer extends RESTAPI {
                                dsl = dslElement.getAsString();
                        }
                        GenericQueryProcessor processor;
-                       
+
                        StopWatch.conditionalStart();
-                       
+
                        if(!dsl.equals("")){
                                processor =  new GenericQueryProcessor.Builder(dbEngine)
                                                .queryFrom(dsl, "dsl")
@@ -156,20 +157,20 @@ public class QueryConsumer extends RESTAPI {
 
                        String result = "";
                        List<Object> vertices = processor.execute(subGraphStyle);
-               
+
                        DBSerializer serializer = new DBSerializer(version, dbEngine, introspectorFactoryType, sourceOfTruth);
                        FormatFactory ff = new FormatFactory(traversalUriHttpEntry.getLoader(), serializer, schemaVersions, basePath);
-                       
+
                        Formatter formater =  ff.get(format, info.getQueryParameters());
-               
+
                        result = formater.output(vertices).toString();
 
                        LOGGER.info ("Completed");
-                       
+
                        response = Response.status(Status.OK)
                                        .type(MediaType.APPLICATION_JSON)
                                        .entity(result).build();
-               
+
                } catch (AAIException e) {
                        response = consumerExceptionResponseGenerator(headers, info, HttpMethod.GET, e);
                } catch (Exception e ) {
@@ -179,14 +180,14 @@ public class QueryConsumer extends RESTAPI {
                        if (dbEngine != null) {
                                dbEngine.rollback();
                        }
-                       
+
                }
-               
+
                return response;
        }
-       
+
        public void checkQueryParams(MultivaluedMap<String, String> params) throws AAIException {
-               
+
                if (params.containsKey("depth") && params.getFirst("depth").matches("\\d+")) {
                        String depth = params.getFirst("depth");
                        int i = Integer.parseInt(depth);
@@ -194,8 +195,8 @@ public class QueryConsumer extends RESTAPI {
                                throw new AAIException("AAI_3303");
                        }
                }
-               
-               
+
+
        }
 
 }
index 2993d90..6674610 100644 (file)
@@ -70,7 +70,8 @@ public class GenTester {
                try {
                        ctx.scan(
                                        "org.onap.aai.config",
-                                       "org.onap.aai.setup");
+                                       "org.onap.aai.setup",
+                                       "org.onap.aai.introspection");
                        ctx.refresh();
                } catch (Exception e) {
                        AAIException aai = ExceptionTranslator.schemaServiceExceptionTranslator(e);
@@ -175,7 +176,7 @@ public class GenTester {
         * or JanusGraph instances.
         * This is because a state change needs to be acknowledged by all instances
         * before transitioning.
-        * 
+        *
         * @param graph
         * @return
         */
@@ -202,4 +203,4 @@ public class GenTester {
                graphMgtForClosing.commit();
        }
 
-}
\ No newline at end of file
+}
index bc2810b..6351465 100644 (file)
@@ -32,7 +32,7 @@ public class GraphAdminDBUtils {
 
        }
 
-       public static void logConfigs(org.apache.commons.configuration.Configuration configuration) {
+       public static void logConfigs(org.apache.commons.configuration2.Configuration configuration) {
 
                if (configuration != null && configuration.getKeys() != null) {
                        Iterator<String> keys = configuration.getKeys();
index 55506a9..96d05db 100644 (file)
@@ -29,6 +29,9 @@ import org.onap.aai.exceptions.AAIException;
 import org.onap.aai.util.AAIConfig;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
@@ -60,6 +63,7 @@ import static org.junit.Assert.fail;
  * they will be testing against the same thing except fitnesse uses hbase
  */
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = GraphAdminApp.class)
+@EnableAutoConfiguration(exclude={CassandraDataAutoConfiguration.class, CassandraAutoConfiguration.class}) // there is no running cassandra instance for the test
 @ContextConfiguration(initializers = PropertyPasswordConfiguration.class)
 @Import(GraphAdminTestConfiguration.class)
 @TestPropertySource(
index 2f502a8..d742ff1 100644 (file)
@@ -34,6 +34,7 @@ import org.onap.aai.introspection.LoaderFactory;
 import org.onap.aai.introspection.MoxyLoader;
 import org.onap.aai.nodes.NodeIngestor;
 import org.onap.aai.rest.db.HttpEntry;
+import org.onap.aai.rest.notification.NotificationService;
 import org.onap.aai.serialization.db.EdgeSerializer;
 import org.onap.aai.setup.AAIConfigTranslator;
 import org.onap.aai.setup.SchemaVersion;
@@ -62,7 +63,9 @@ import static org.junit.Assert.assertNotNull;
         DslConfiguration.class,
         IntrospectionConfig.class,
         XmlFormatTransformerConfiguration.class,
-        RestBeanConfig.class
+        RestBeanConfig.class,
+        LoaderFactory.class,
+        NotificationService.class
 })
 @TestPropertySource(properties = {
         "schema.uri.base.path = /aai",
@@ -137,4 +140,4 @@ public abstract class AAISetup {
         String resource = IOUtils.toString(inputStream);
         return resource;
     }
-}
\ No newline at end of file
+}
index 68b2ca8..39a6673 100644 (file)
@@ -38,9 +38,11 @@ import org.onap.aai.exceptions.AAIException;
 import org.onap.aai.restclient.PropertyPasswordConfiguration;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.actuate.autoconfigure.web.server.LocalManagementPort;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration;
 import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
 import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
@@ -57,6 +59,7 @@ import org.springframework.web.client.RestTemplate;
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
     classes = {SpringContextAware.class, GraphAdminApp.class})
 @ContextConfiguration(initializers = PropertyPasswordConfiguration.class, classes = {SpringContextAware.class})
+@EnableAutoConfiguration(exclude={CassandraDataAutoConfiguration.class, CassandraAutoConfiguration.class}) // there is no running cassandra instance for the test
 @Import(GraphAdminTestConfiguration.class)
 @TestPropertySource(locations = "classpath:application-test.properties")
 public class MetricsConfigurationTest {
diff --git a/src/test/resources/etc/appprops/aaiconfig.properties b/src/test/resources/etc/appprops/aaiconfig.properties
new file mode 100644 (file)
index 0000000..b2dd2ed
--- /dev/null
@@ -0,0 +1,161 @@
+#
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright © 2017-18 AT&T 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=========================================================
+
+####################################################################
+#  REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
+#  TEMPLATE AND *ALL* DATAFILES
+####################################################################
+
+aai.config.checktime=1000
+
+# this could come from siteconfig.pl?
+aai.config.nodename=AutomaticallyOverwritten
+
+aai.transaction.logging=true
+aai.transaction.logging.get=true
+aai.transaction.logging.post=true
+
+aai.server.url.base=https://localhost:8443/aai/
+aai.server.url=https://localhost:8443/aai/v14/
+aai.oldserver.url.base=https://localhost:8443/aai/servers/
+aai.oldserver.url=https://localhost:8443/aai/servers/v2/
+aai.global.callback.url=https://localhost:8443/aai/
+
+# Start of INTERNAL Specific Properties
+
+aai.truststore.filename=aai_keystore
+aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0
+aai.keystore.filename=aai-client-cert.p12
+aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0
+
+aai.realtime.clients=RO,SDNC,MSO,SO
+
+# End of INTERNAL Specific Properties
+
+aai.notification.current.version=v14
+aai.notificationEvent.default.status=UNPROCESSED
+aai.notificationEvent.default.eventType=AAI-EVENT
+aai.notificationEvent.default.domain=devINT1
+aai.notificationEvent.default.sourceName=aai
+aai.notificationEvent.default.sequenceNumber=0
+aai.notificationEvent.default.severity=NORMAL
+aai.notificationEvent.default.version=v14
+# This one lets us enable/disable resource-version checking on updates/deletes
+aai.resourceversion.enableflag=true
+aai.logging.maxStackTraceEntries=10
+aai.default.api.version=v14
+
+# Used by Model-processing code
+aai.model.delete.sleep.per.vtx.msec=500
+aai.model.query.resultset.maxcount=50
+aai.model.query.timeout.sec=90
+# Used by Data Grooming
+aai.grooming.default.max.fix=150
+aai.grooming.default.sleep.minutes=7
+
+# Used by Data Snapshot
+aai.datasnapshot.default.threads.for.create=16
+aai.datasnapshot.max.nodes.per.file.for.create=120000
+
+# Used by DupeTool
+aai.dupeTool.default.max.fix=25
+aai.dupeTool.default.sleep.minutes=7
+
+aai.model.proc.max.levels=50
+aai.edgeTag.proc.max.levels=50
+
+# Used by the ForceDelete tool
+aai.forceDel.protected.nt.list=cloud-region
+aai.forceDel.protected.edge.count=10
+aai.forceDel.protected.descendant.count=10
+
+# Used for CTAG-Pool generation
+aai.ctagPool.rangeString.vplsPe1=2001-2500
+aai.ctagPool.rangeString.vplsPe2=2501-3000
+
+aai.jms.enable=false
+
+#used by the dataGrooming and dataSnapshot cleanup tasks
+aai.cron.enable.datagroomingcleanup=true
+aai.cron.enable.datasnapshotcleanup=true
+aai.datagrooming.agezip=5
+aai.datagrooming.agedelete=30
+aai.datasnapshot.agezip=5
+aai.datasnapshot.agedelete=30
+aai.datamigration.agedelete=30
+
+#used by the dataSnapshot and dataGrooming tasks
+aai.cron.enable.dataSnapshot=true
+aai.cron.enable.dataGrooming=true
+
+#used by the dataGrooming tasks
+aai.datagrooming.enableautofix=true
+aai.datagrooming.enabledupefixon=true
+aai.datagrooming.enabledontfixorphans=true
+aai.datagrooming.enabletimewindowminutes=true
+aai.datagrooming.enableskiphostcheck=false
+aai.datagrooming.enablesleepminutes=false
+aai.datagrooming.enableedgesonly=false
+aai.datagrooming.enableskipedgechecks=false
+aai.datagrooming.enablemaxfix=false
+aai.datagrooming.enablesinglecommits=false
+aai.datagrooming.enabledupecheckoff=false
+aai.datagrooming.enableghost2checkoff=false
+aai.datagrooming.enableghost2fixon=false
+aai.datagrooming.enablef=false
+aai.datagrooming.enableskipindexupdatefix=true
+
+# used by the dataGrooming to set values
+aai.datagrooming.timewindowminutesvalue=10500
+aai.datagrooming.sleepminutesvalue=100
+aai.datagrooming.maxfixvalue=10
+aai.datagrooming.fvalue=10
+
+#timeout for traversal enabled flag
+aai.graphadmin.timeoutenabled=true
+
+#timeout app specific -1 to bypass for that app id, a whole number to override the timeout with that value (in ms)
+aai.graphadmin.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1
+
+#default timeout limit added for graphadmin if not overridden (in ms)
+aai.graphadmin.timeoutlimit=180000
+
+# Disable the process check which are oriented towards linux OS
+# These props should only be true for local on windows
+aai.disable.check.snapshot.running=true
+aai.disable.check.grooming.running=true
+
+# Specify the params listed right here that you would have send to the dataSnapshot shell script
+# JUST_TAKE_SNAPSHOT
+# THREADED_SNAPSHOT 2 DEBUG
+# THREADED_SNAPSHOT 2
+aai.datasnapshot.params=JUST_TAKE_SNAPSHOT
+
+#Data export task properties
+aai.dataexport.enable=false
+aai.dataexport.enable.schema.validation=false
+aai.dataexport.output.location=/etc/scriptdata/addmanualdata/tenant_isolation/payload
+aai.dataexport.enable.multiple.snapshots=false
+aai.dataexport.node.config.location=/etc/scriptdata/tenant_isolation/nodes.json
+aai.dataexport.input.filter.config.location=/etc/scriptdata/tenant_isolation/inputFilters.json
+aai.dataexport.enable.partial.graph=false
+
+# Threshold for margin of error (in ms) for resources_with_sot format to derive the most recent http method performed
+aai.resource.formatter.threshold=10