Fix Junit 77/58977/3
authorSmokowski, Steve (ss835w) <ss835w@us.att.com>
Fri, 3 Aug 2018 18:34:07 +0000 (14:34 -0400)
committerRob Daugherty <rd472p@att.com>
Fri, 3 Aug 2018 22:52:00 +0000 (22:52 +0000)
Junit was using an illegal http error code

Issue-ID: SO-793
Change-Id: Ica36a5e22f32680710da649eb0dbfe5cac93b93c
Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
20 files changed:
adapters/mso-vfc-adapter/.springBeans [new file with mode: 0644]
adapters/mso-vfc-adapter/WebContent/META-INF/MANIFEST.MF [deleted file]
adapters/mso-vfc-adapter/WebContent/META-INF/services/com.woorea.openstack.base.client.OpenStackClientConnector [deleted file]
adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml [deleted file]
adapters/mso-vfc-adapter/WebContent/check.html [deleted file]
adapters/mso-vfc-adapter/pom.xml
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java [new file with mode: 0644]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/MSOVfcApplication.java [moved from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/application/MSOVfcApplication.java with 90% similarity]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java [new file with mode: 0644]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/application/JerseyConfiguration.java [deleted file]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/AaiUtil.java [moved from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/AaiUtil.java with 97% similarity]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/HealthCheckHandler.java [moved from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/HealthCheckHandler.java with 98% similarity]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java [moved from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/VfcAdapterRest.java with 99% similarity]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/rest/VfcManager.java [moved from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/VfcManager.java with 97% similarity]
adapters/mso-vfc-adapter/src/main/resources/application-local.yaml [new file with mode: 0644]
adapters/mso-vfc-adapter/src/main/resources/application.yaml
adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/exceptions/ApplicationExceptionTest.java
adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java [new file with mode: 0644]
adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java [new file with mode: 0644]
adapters/mso-vfc-adapter/src/test/resources/application-test.yaml

diff --git a/adapters/mso-vfc-adapter/.springBeans b/adapters/mso-vfc-adapter/.springBeans
new file mode 100644 (file)
index 0000000..1310366
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beansProjectDescription>
+       <version>1</version>
+       <pluginVersion><![CDATA[3.8.4.201703310634-RELEASE]]></pluginVersion>
+       <configSuffixes>
+               <configSuffix><![CDATA[xml]]></configSuffix>
+       </configSuffixes>
+       <enableImports><![CDATA[false]]></enableImports>
+       <configs>
+               <config>java:org.onap.so.adapters.vfc.MSOVfcApplication</config>
+       </configs>
+       <autoconfigs>
+       </autoconfigs>
+       <configSets>
+       </configSets>
+</beansProjectDescription>
diff --git a/adapters/mso-vfc-adapter/WebContent/META-INF/MANIFEST.MF b/adapters/mso-vfc-adapter/WebContent/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 5e94951..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0\r
-Class-Path: \r
-\r
diff --git a/adapters/mso-vfc-adapter/WebContent/META-INF/services/com.woorea.openstack.base.client.OpenStackClientConnector b/adapters/mso-vfc-adapter/WebContent/META-INF/services/com.woorea.openstack.base.client.OpenStackClientConnector
deleted file mode 100644 (file)
index 1281d32..0000000
+++ /dev/null
@@ -1 +0,0 @@
-com.woorea.openstack.connector.HttpClientConnector
\ No newline at end of file
diff --git a/adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml b/adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml
deleted file mode 100644 (file)
index 70f8299..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<jboss-deployment-structure>
-       <deployment>
-               <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
-               <exclusions>
-                       <module name="org.apache.log4j" />
-                       <module name="org.slf4j" />
-                       <module name="org.slf4j.impl" />
-                       <module name="org.jboss.resteasy.resteasy-jackson-provider" />
-                       <module name="org.jboss.resteasy.resteasy-jettison-provider" />
-               </exclusions>
-               <dependencies>
-                           <module name="org.jboss.jandex" slot="main" />
-                <module name="org.javassist" slot="main" />
-                <module name="org.antlr" slot="main" />
-                <module name="org.dom4j" slot="main" />
-                <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import" />
-                <!-- This module contain the ProviderBase class: -->
-                <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" export="true" />
-               </dependencies>
-       </deployment>
-</jboss-deployment-structure>
diff --git a/adapters/mso-vfc-adapter/WebContent/check.html b/adapters/mso-vfc-adapter/WebContent/check.html
deleted file mode 100644 (file)
index b4250aa..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>\r
-<html>\r
-<head>\r
-<meta charset="ISO-8859-1">\r
-<title>Health Check</title>\r
-</head>\r
-<body>Application ready\r
-</body>\r
-</html>
\ No newline at end of file
index 6fbfb81..9392db2 100644 (file)
@@ -28,7 +28,7 @@
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-maven-plugin</artifactId>
                                <configuration>
-                                       <mainClass>org.onap.so.adapters.vfc.application.MSOVfcApplication</mainClass>
+                                       <mainClass>org.onap.so.adapters.vfc.MSOVfcApplication</mainClass>
                                </configuration>
                                <executions>
                                        <execution>
@@ -45,8 +45,6 @@
                </plugins>
        </build>
        <dependencies>
-               <!--<dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> 
-                       <version>6.0</version> <scope>provided</scope> </dependency> -->
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-actuator</artifactId>
                </dependency>
                <dependency>
                        <groupId>org.springframework.boot</groupId>
-                       <artifactId>spring-boot-starter-data-jpa</artifactId>
-                       <optional>true</optional>
-               </dependency>
-               <dependency>
-                       <groupId>org.springframework.boot</groupId>
-                       <artifactId>spring-boot-starter-test</artifactId>
-                       <scope>test</scope>
+                       <artifactId>spring-boot-starter-jdbc</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       <groupId>org.apache.tomcat</groupId>
+                                       <artifactId>tomcat-jdbc</artifactId>
+                               </exclusion>
+                       </exclusions>
                </dependency>
                <dependency>
-                       <groupId>org.springframework.boot</groupId>
-                       <artifactId>spring-boot-starter-jersey</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>com.h2database</groupId>
-                       <artifactId>h2</artifactId>
-                       <scope>test</scope>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-dbcp2</artifactId>
                </dependency>
                <dependency>
-                       <groupId>org.webjars</groupId>
-                       <artifactId>swagger-ui</artifactId>
-                       <version>3.5.0</version>
+                       <groupId>org.apache.cxf</groupId>
+                       <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
+                       <version>3.1.12</version>
                </dependency>
                <dependency>
-                       <groupId>io.swagger</groupId>
-                       <artifactId>swagger-jersey2-jaxrs</artifactId>
-                       <version>1.5.16</version>
+                       <groupId>org.apache.cxf</groupId>
+                       <artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
+                       <version>3.1.12</version>
                </dependency>
                <dependency>
-                       <groupId>javax.ws.rs</groupId>
-                       <artifactId>javax.ws.rs-api</artifactId>
-                       <version>2.0</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.so.adapters</groupId>
-                       <artifactId>mso-adapter-utils</artifactId>
-                       <version>${project.version}</version>
+                       <groupId>org.apache.cxf</groupId>
+                       <artifactId>cxf-rt-rs-service-description-swagger</artifactId>
+                       <version>3.1.11</version>
                </dependency>
                <dependency>
-                       <groupId>org.onap.so.adapters</groupId>
-                       <artifactId>mso-adapters-rest-interface</artifactId>
-                       <version>${project.version}</version>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-data-jpa</artifactId>
                </dependency>
                <dependency>
-                       <groupId>javax.servlet</groupId>
-                       <artifactId>javax.servlet-api</artifactId>
-                       <version>3.1.0</version>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
                        <scope>test</scope>
                </dependency>
-               <dependency>
-                       <groupId>org.jboss.spec.javax.ejb</groupId>
-                       <artifactId>jboss-ejb-api_3.2_spec</artifactId>
-                       <version>1.0.0.Final</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.jboss.ejb3</groupId>
-                       <artifactId>jboss-ejb3-ext-api</artifactId>
-                       <version>2.2.0.Final</version>
-                       <scope>provided</scope>
-               </dependency>           
                <dependency>
                        <groupId>org.onap.so</groupId>
                        <artifactId>mso-requests-db</artifactId>
                        <version>${project.version}</version>
                </dependency>
                <dependency>
-                       <groupId>commons-io</groupId>
-                       <artifactId>commons-io</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>javax.servlet</groupId>
-                       <artifactId>javax.servlet-api</artifactId>
-                       <version>3.1.0</version>
+                       <groupId>org.mariadb.jdbc</groupId>
+                       <artifactId>mariadb-java-client</artifactId>
                </dependency>
                <dependency>
-                       <groupId>io.micrometer</groupId>
-                       <artifactId>micrometer-spring-legacy</artifactId>
-                       <version>1.0.5</version>
+                       <groupId>ch.vorburger.mariaDB4j</groupId>
+                       <artifactId>mariaDB4j</artifactId>
+                       <version>2.2.3</version>
+                       <scope>test</scope>
                </dependency>
                <dependency>
-                       <groupId>io.micrometer</groupId>
-                       <artifactId>micrometer-registry-prometheus</artifactId>
-                       <version>1.0.5</version>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-configuration-processor</artifactId>
+                       <optional>true</optional>
                </dependency>
        </dependencies>
 </project>
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java
new file mode 100644 (file)
index 0000000..3034cbc
--- /dev/null
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+package org.onap.so.adapters.vfc;
+
+import java.util.Arrays;
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.feature.LoggingFeature;
+import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
+import org.apache.cxf.jaxws.EndpointImpl;
+import org.apache.cxf.transport.servlet.CXFServlet;
+import org.onap.so.adapters.vfc.rest.HealthCheckHandler;
+import org.onap.so.adapters.vfc.rest.VfcAdapterRest;
+import org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
+
+
+@Configuration
+public class CXFConfiguration {
+
+       @Autowired
+       private Bus bus;
+
+       @Autowired
+    private VfcAdapterRest vfcAdapterRest;
+
+    @Autowired
+    private HealthCheckHandler healthCheckHandler;
+    
+    @Autowired
+    private JaxRsFilterLogging jaxRsFilterLogging;
+    
+    @Autowired
+    private ObjectMapper mapper; 
+       
+       @Bean
+       public ServletRegistrationBean cxfServlet() {   
+               return new ServletRegistrationBean(new CXFServlet(), "/services/*");
+       }
+       
+    @Bean
+    public Server rsServer() {
+        JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
+        endpoint.setBus(bus);
+        endpoint.setServiceBeans(Arrays.<Object>asList(vfcAdapterRest, healthCheckHandler));
+        endpoint.setAddress("/");       
+        endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper),jaxRsFilterLogging));
+        return endpoint.create();
+    }
+       
+       @Bean
+       public Swagger2Feature createSwaggerFeature() {
+               Swagger2Feature swagger2Feature = new Swagger2Feature();
+               swagger2Feature.setPrettyPrint(true);
+               swagger2Feature.setTitle("SO Request Adapter");
+               swagger2Feature.setContact("The ONAP SO team");
+               swagger2Feature.setDescription("This project is the SO Orchestration Engine");
+               swagger2Feature.setVersion("1.0.0");
+               swagger2Feature.setResourcePackage("org.onap.so.adapters.requestdb");
+               swagger2Feature.setScan(true);
+               return swagger2Feature;
+       }
+
+}
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.adapters.vfc.application;
+package org.onap.so.adapters.vfc;
 
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
 
 
 @SpringBootApplication(scanBasePackages = {"org.onap.so"})
-@EnableJpaRepositories({"org.onap.so.db.request.data.repository"})
-@EntityScan({"org.onap.so.db.request.beans"})
 public class MSOVfcApplication {
 
     public static void main(String... args) {
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java
new file mode 100644 (file)
index 0000000..2ff66d2
--- /dev/null
@@ -0,0 +1,80 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+package org.onap.so.adapters.vfc;
+
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Profile;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@Profile({"!test"})
+@Configuration
+@EnableTransactionManagement
+@EnableJpaRepositories(
+               entityManagerFactoryRef = "requestEntityManagerFactory",transactionManagerRef = "requestTransactionManager",
+               basePackages = { "org.onap.so.db.request.data.repository" }
+               )
+public class RequestDBConfig {
+
+       @Primary
+       @Bean(name = "requestDataSource")
+       @ConfigurationProperties(prefix = "spring.datasource")
+       public DataSource dataSource() {
+               return DataSourceBuilder.create().build();
+       }
+
+       @Primary
+       @Bean(name = "requestEntityManagerFactory")
+       public LocalContainerEntityManagerFactoryBean 
+       entityManagerFactory(
+                       EntityManagerFactoryBuilder builder,
+                       @Qualifier("requestDataSource") DataSource dataSource
+                       ) {
+               return builder
+                               .dataSource(dataSource)
+                               .packages("org.onap.so.db.request.beans")
+                               .persistenceUnit("requestDB")
+                               .build();
+       }
+
+       @Primary
+       @Bean(name = "requestTransactionManager")
+       public PlatformTransactionManager transactionManager(
+                       @Qualifier("requestEntityManagerFactory") EntityManagerFactory 
+                       entityManagerFactory
+                       ) {
+               return new JpaTransactionManager(entityManagerFactory);
+       }
+
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/application/JerseyConfiguration.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/application/JerseyConfiguration.java
deleted file mode 100644 (file)
index a975491..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 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=========================================================
- */
-
-package org.onap.so.adapters.vfc.application;
-
-import javax.annotation.PostConstruct;
-import javax.ws.rs.ApplicationPath;
-
-import org.glassfish.jersey.server.ResourceConfig;
-import org.onap.so.adapters.vfc.HealthCheckHandler;
-import org.onap.so.adapters.vfc.VfcAdapterRest;
-import org.springframework.context.annotation.Configuration;
-
-import io.swagger.jaxrs.config.BeanConfig;
-import io.swagger.jaxrs.listing.ApiListingResource;
-import io.swagger.jaxrs.listing.SwaggerSerializers;
-
-@Configuration
-@ApplicationPath("/vfc")
-public class JerseyConfiguration extends ResourceConfig {
-
-       public JerseyConfiguration() {
-
-       }
-
-       @PostConstruct
-       public void setUp() {
-               register(VfcAdapterRest.class);
-               register(HealthCheckHandler.class);
-
-               this.register(ApiListingResource.class);
-               this.register(SwaggerSerializers.class);
-
-               BeanConfig beanConfig = new BeanConfig();
-               beanConfig.setVersion("1.0.2");
-               beanConfig.setSchemes(new String[] { "http" });
-               beanConfig.setHost("localhost:8080");
-               beanConfig.setBasePath("/");
-               beanConfig.setResourcePackage("org.onap.so.adapters.vfc.application");
-               beanConfig.setPrettyPrint(true);
-               beanConfig.setScan(true);
-       }
-}
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.adapters.vfc;
+package org.onap.so.adapters.vfc.rest;
 
 import org.onap.so.adapters.vfc.model.RestfulResponse;
 
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.adapters.vfc;
+package org.onap.so.adapters.vfc.rest;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -28,7 +28,6 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-
 import org.onap.so.adapters.vfc.exceptions.ApplicationException;
 import org.onap.so.adapters.vfc.model.NSResourceInputParameter;
 import org.onap.so.adapters.vfc.model.NsOperationKey;
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.adapters.vfc;
+package org.onap.so.adapters.vfc.rest;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -48,6 +48,7 @@ import org.onap.so.requestsdb.RequestsDbConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
 import org.springframework.data.domain.Example;
 import org.springframework.stereotype.Component;
 
@@ -60,6 +61,7 @@ import org.springframework.stereotype.Component;
  * @version ONAP Amsterdam Release 2017-08-28
  */
 @Component
+@Primary
 public class VfcManager {
 
   private static final Logger LOGGER = LoggerFactory.getLogger(VfcManager.class);
@@ -67,25 +69,23 @@ public class VfcManager {
   /**
    * nfvo url map
    */
-  private static Map<String, String> nfvoUrlMap;
+  private Map<String, String> nfvoUrlMap;
+  
   @Autowired
   private ResourceOperationStatusRepository resourceOperationStatusRepository;
   
   @Autowired
   private RestfulUtil restfulUtil;
   
-  static {
-    nfvoUrlMap = new HashMap<>();
-    nfvoUrlMap.put(Step.CREATE, CommonConstant.NFVO_CREATE_URL);
-    nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.NFVO_INSTANTIATE_URL);
-    nfvoUrlMap.put(Step.TERMINATE, CommonConstant.NFVO_TERMINATE_URL);
-    nfvoUrlMap.put(Step.DELETE, CommonConstant.NFVO_DELETE_URL);
-    nfvoUrlMap.put(Step.QUERY, CommonConstant.NFVO_QUERY_URL);
-       nfvoUrlMap.put(Step.SCALE, CommonConstant.NFVO_SCALE_URL);
-  }
-
-  public VfcManager() {
-
+  public VfcManager() {      
+          nfvoUrlMap = new HashMap<>();
+          nfvoUrlMap.put(Step.CREATE, CommonConstant.NFVO_CREATE_URL);
+          nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.NFVO_INSTANTIATE_URL);
+          nfvoUrlMap.put(Step.TERMINATE, CommonConstant.NFVO_TERMINATE_URL);
+          nfvoUrlMap.put(Step.DELETE, CommonConstant.NFVO_DELETE_URL);
+          nfvoUrlMap.put(Step.QUERY, CommonConstant.NFVO_QUERY_URL);
+          nfvoUrlMap.put(Step.SCALE, CommonConstant.NFVO_SCALE_URL);
   }
 
   /**
diff --git a/adapters/mso-vfc-adapter/src/main/resources/application-local.yaml b/adapters/mso-vfc-adapter/src/main/resources/application-local.yaml
new file mode 100644 (file)
index 0000000..0519f50
--- /dev/null
@@ -0,0 +1,34 @@
+server:
+    port: 8091
+    tomcat:
+        max-threads: 50
+ssl-enable: false
+mso:
+  logPath: logs
+  site-name: localSite
+spring:
+  datasource:
+    url: jdbc:mariadb://localhost:3306/requestdb
+    username: mso
+    password: mso123
+    driver-class-name: org.mariadb.jdbc.Driver
+    initialize: true
+    initialization-mode: never
+  jpa:
+    generate-ddl: false
+    show-sql: false
+    hibernate:
+      ddl-auto: validate
+      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+      enable-lazy-load-no-trans: true
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+  security:
+    usercredentials:
+    -
+      username: bpel
+      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'
+      role: BPEL-Client
+    -
+      username: mso_admin
+      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'
+      role: ACTUATOR
index ba574ba..2cee9cf 100644 (file)
@@ -1,37 +1,32 @@
-logging:
-  path: logs
-
-# H2
-spring:
-  datasource:
-    url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;
-    username: sa
-    password: sa
-    driver-class-name: org.h2.Driver
-    intialize: true
-  h2:
-    console:
-      enabled: true
-      path: /h2
 
 server:
     port: 8080
     tomcat:
         max-threads: 50
-mso:
-  site-name: localSite
 
-#Actuator
-management:
-  security:
-    enabled: false
-    basic:
-      enabled: false
-  metrics:
-    se-global-registry: false
-    export:
-      prometheus:
-        enabled: true # Whether exporting of metrics to Prometheus is enabled.
-        step: 1m # Step size (i.e. reporting frequency) to use.
+mso:
+  site-name: unknown
+  logPath: ./logs/vfc/
 
+spring:
+  datasource:
+    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+    username: ${DB_USERNAME}
+    password: ${DB_PASSWORD}
+    driver-class-name: org.mariadb.jdbc.Driver
+    dbcp2:
+      initial-size: 5
+      max-total: 20
+      validation-query: select 1
+      test-on-borrow: true
+  jpa:
+      show-sql: false
+      hibernate:
+        dialect: org.hibernate.dialect.MySQL5Dialect
+        ddl-auto: validate
+        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+        enable-lazy-load-no-trans: true
 
+#Actuator
+management: 
+  context-path: /manage
index ec3741d..efd3359 100644 (file)
@@ -25,13 +25,13 @@ import static org.junit.Assert.*;
 import org.junit.Test;
 
 public class ApplicationExceptionTest {
-       private ApplicationException application = new ApplicationException(0,null);
+       private ApplicationException application = new ApplicationException(500,null);
        
        @Test
        public void testApplicationException() {
-               application.setErrorCode(0);
+               application.setErrorCode(500);
                application.setErrorMsg("ErrorMsg");
-               assertEquals(application.getErrorCode(), 0);
+               assertEquals(application.getErrorCode(), 500);
                assertEquals(application.getErrorMsg(), "ErrorMsg");    
        }
        
diff --git a/adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java b/adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java
new file mode 100644 (file)
index 0000000..e5324d3
--- /dev/null
@@ -0,0 +1,102 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+import ch.vorburger.exec.ManagedProcessException;
+import ch.vorburger.mariadb4j.DBConfigurationBuilder;
+import ch.vorburger.mariadb4j.springframework.MariaDB4jSpringService;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Profile;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+
+@Configuration
+@Profile({"test"})
+@EnableTransactionManagement
+@EnableJpaRepositories(
+               entityManagerFactoryRef = "requestEntityManagerFactory",transactionManagerRef = "requestTransactionManager",
+               basePackages = { "org.onap.so.db.request.data.repository"}
+               )
+public class EmbeddedMariaDbConfig {
+
+    @Bean
+    MariaDB4jSpringService mariaDB4jSpringService() {
+        return new MariaDB4jSpringService();
+    }
+
+    @Primary
+       @Bean(name = "requestDataSource")
+       @ConfigurationProperties(prefix = "spring.datasource")
+    DataSource dataSource(MariaDB4jSpringService mariaDB4jSpringService,
+                          @Value("${mariaDB4j.databaseName}") String databaseName,
+                          @Value("${spring.datasource.username}") String datasourceUsername,
+                          @Value("${spring.datasource.password}") String datasourcePassword,
+                          @Value("${spring.datasource.driver-class-name}") String datasourceDriver) throws ManagedProcessException {
+        //Create our database with default root user and no password
+        mariaDB4jSpringService.getDB().createDB(databaseName);
+
+        DBConfigurationBuilder config = mariaDB4jSpringService.getConfiguration();
+
+        return DataSourceBuilder
+                .create()
+                .username(datasourceUsername)
+                .password(datasourcePassword)
+                .url(config.getURL(databaseName))
+                .driverClassName(datasourceDriver)
+                .build();
+    }
+
+       @Primary
+       @Bean(name = "requestEntityManagerFactory")
+       public LocalContainerEntityManagerFactoryBean 
+       entityManagerFactory(
+                       EntityManagerFactoryBuilder builder,
+                       @Qualifier("requestDataSource") DataSource dataSource
+                       ) {
+               return builder
+                               .dataSource(dataSource)
+                               .packages("org.onap.so.db.request.beans")
+                               .persistenceUnit("requestDB")
+                               .build();
+       }
+
+       @Primary
+       @Bean(name = "requestTransactionManager")
+       public PlatformTransactionManager transactionManager(
+                       @Qualifier("requestEntityManagerFactory") EntityManagerFactory 
+                       entityManagerFactory
+                       ) {
+               return new JpaTransactionManager(entityManagerFactory);
+       }
+}
diff --git a/adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java b/adapters/mso-vfc-adapter/src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java
new file mode 100644 (file)
index 0000000..10fa02a
--- /dev/null
@@ -0,0 +1,72 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import static org.junit.Assert.*;
+
+
+
+import javax.ws.rs.core.Response;
+
+import org.json.JSONException;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.so.adapters.vfc.MSOVfcApplication;
+import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = MSOVfcApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@ActiveProfiles("test")
+public class HealthCheckHandlerTest {
+       
+       @LocalServerPort
+       private int port;
+
+       TestRestTemplate restTemplate = new TestRestTemplate();
+
+       HttpHeaders headers = new HttpHeaders();
+
+       
+       @Test
+       public void testHealthcheck() throws JSONException {
+
+               HttpEntity<String> entity = new HttpEntity<String>(null, headers);
+
+               ResponseEntity<String> response = restTemplate.exchange(
+                               createURLWithPort("manage/health"),
+                               HttpMethod.GET, entity, String.class);
+               
+               assertEquals(Response.Status.OK.getStatusCode(),response.getStatusCode().value());
+       }
+       
+       private String createURLWithPort(String uri) {
+               return "http://localhost:" + port + uri;
+       }
+}
index ab5fa61..64de62c 100644 (file)
@@ -1,6 +1,51 @@
+
+server:
+    port: 8080
+    tomcat:
+        max-threads: 50
+ssl-enable: false
 mso:
+  logPath: logs
   site-name: localSite
-  msb-ip: "127.0.0.1"
-  msb-port: 8080
+  infra-requests:
+    archived:
+      period: 1
+spring:
+  datasource:
+    url: jdbc:mariadb://localhost:3307/requestdb
+    username: root
+    password: password
+    driver-class-name: org.mariadb.jdbc.Driver
+    initialize: true
+    initialization-mode: never
+  jpa:   
+    generate-ddl: false
+    show-sql: false
+    hibernate:      
+      ddl-auto: validate
+      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+      enable-lazy-load-no-trans: true
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+  security:
+    usercredentials:
+    -  
+      username: test
+      password: '$2a$12$Zi3AuYcZoZO/gBQyUtST2.F5N6HqcTtaNci2Et.ufsQhski56srIu'
+      role: BPEL-Client
+mariaDB4j:
+  dataDir: 
+  port: 3307
+  databaseName: requestdb
 
+#Actuator
+management:
+  security:
+    enabled: false
+    basic:
+      enabled: false
 
+flyway:
+  baseline-on-migrate: false
+  url: jdbc:mariadb://localhost:3307/requestdb
+  user: root
+  password: password