default cloud owner now configurable 61/71061/2
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Tue, 23 Oct 2018 13:43:26 +0000 (09:43 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Tue, 23 Oct 2018 15:12:46 +0000 (11:12 -0400)
default cloud owner can now be set via a property

Change-Id: I9b900cb2a5c7176a78e889ad2ce31a4ed9d38585
Issue-ID: SO-1158
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
13 files changed:
asdc-controller/src/main/java/org/onap/so/asdc/tenantIsolation/AaiClientPropertiesImpl.java
asdc-controller/src/test/java/org/onap/so/asdc/BaseTest.java
common/pom.xml
common/src/main/java/org/onap/so/constants/Defaults.java
common/src/main/java/org/onap/so/spring/SpringContextHelper.java [moved from bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/SpringContextHelper.java with 92% similarity]
common/src/test/java/org/onap/so/NonSpringSuite.java [moved from asdc-controller/src/main/java/org/onap/so/asdc/tenantIsolation/SpringContextHelper.java with 57% similarity]
common/src/test/java/org/onap/so/SpringSuite.java [moved from mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SpringContextHelper.java with 56% similarity]
common/src/test/java/org/onap/so/constants/DefaultsTest.java [new file with mode: 0644]
common/src/test/java/org/onap/so/test/categories/SpringAware.java [new file with mode: 0644]
common/src/test/resources/application-test.yaml [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/AaiClientPropertiesImpl.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/GrmClientPropertiesImpl.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/dmaap/DmaapPropertiesImpl.java

index dcfeb10..7b769bd 100644 (file)
@@ -25,6 +25,7 @@ import java.net.URL;
 
 import org.onap.so.client.aai.AAIProperties;
 import org.onap.so.client.aai.AAIVersion;
+import org.onap.so.spring.SpringContextHelper;
 import org.springframework.context.ApplicationContext;
 
 public class AaiClientPropertiesImpl implements AAIProperties {
index 9a7240c..74f0d60 100644 (file)
@@ -27,8 +27,8 @@ import org.junit.runner.RunWith;
 import org.onap.so.asdc.installer.ToscaResourceStructure;
 import org.onap.so.asdc.installer.VfResourceStructure;
 import org.onap.so.asdc.installer.heat.ToscaResourceInstaller;
-import org.onap.so.asdc.tenantIsolation.SpringContextHelper;
 import org.onap.so.asdc.tenantIsolation.WatchdogDistribution;
+import org.onap.so.spring.SpringContextHelper;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
 import org.springframework.boot.test.context.SpringBootTest;
index 8b0f19c..4427b37 100644 (file)
                        <artifactId>logging-slf4j</artifactId>
                        <version>1.2.2</version>
                </dependency>
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
     </dependencies>
        <build>
                <resources>
                                        <include>**/*.java</include>
                                </includes>
                        </resource>
-               </resources>            
+               </resources>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-surefire-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>default-test</id>
+                                               <goals>
+                                                       <goal>test</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <includes>
+                                                               <include>**/NonSpringSuite.java</include>
+                                                       </includes>     
+                                               </configuration>
+                                       </execution>
+                                       <execution>
+                                               <id>spring-tests</id>
+                                               <goals>
+                                                       <goal>test</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <includes>
+                                                               <include>**/SpringSuite.java</include>
+                                                       </includes>     
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>      
        </build>
 </project>
index 06c6fae..621acff 100644 (file)
 
 package org.onap.so.constants;
 
+import java.util.Optional;
+
+import org.onap.so.spring.SpringContextHelper;
+import org.springframework.context.ApplicationContext;
+
 public enum Defaults {
 
-       CLOUD_OWNER("att-aic");
-       
-       
-       private final String value;
+       CLOUD_OWNER("org.onap.so.cloud-owner", "att-aic");
        
-       private Defaults(String value) {
-               this.value = value;
+       private final String propName;
+       private final String defaultValue;
+
+       private Defaults(String propName, String defaultValue) {
+               this.defaultValue = defaultValue;
+               this.propName = propName;
        }
 
        @Override
        public String toString() {
-               return this.value;
+               Optional<ApplicationContext> context = getAppContext();
+               if (context.isPresent()) {
+                       return context.get().getEnvironment().getProperty(this.propName, this.defaultValue);
+               } else {
+                       return this.defaultValue;
+               }
+               
+       }
+       
+       protected Optional<ApplicationContext> getAppContext() {
+               return Optional.ofNullable(SpringContextHelper.getAppContext());
        }
 }
@@ -18,9 +18,8 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.bpmn.common;
+package org.onap.so.spring;
 
-import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.stereotype.Component;
@@ -31,7 +30,7 @@ public class SpringContextHelper implements ApplicationContextAware {
        private static ApplicationContext context;
 
        @Override
-       public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+       public void setApplicationContext(ApplicationContext applicationContext) {
                context = applicationContext;
        }
 
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.asdc.tenantIsolation;
+package org.onap.so;
 
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.stereotype.Component;
+import org.junit.runner.RunWith;
+import org.onap.so.test.categories.SpringAware;
 
-@Component
-public class SpringContextHelper implements ApplicationContextAware {
+import com.googlecode.junittoolbox.ExcludeCategories;
+import com.googlecode.junittoolbox.SuiteClasses;
+import com.googlecode.junittoolbox.WildcardPatternSuite;
 
-       private static ApplicationContext context;
+@RunWith(WildcardPatternSuite.class)
+@ExcludeCategories({SpringAware.class})
+@SuiteClasses({"**/*Test.class"})
+public class NonSpringSuite {
 
-       @Override
-       public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-               context = applicationContext;
-       }
-
-       public static ApplicationContext getAppContext() {
-               return context;
-       }
 }
@@ -2,9 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
+ * 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.
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.apihandlerinfra;
-
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.stereotype.Component;
+package org.onap.so;
 
-@Component
-public class SpringContextHelper implements ApplicationContextAware {
+import org.junit.runner.RunWith;
+import org.onap.so.test.categories.SpringAware;
 
-       private static ApplicationContext context;
+import com.googlecode.junittoolbox.IncludeCategories;
+import com.googlecode.junittoolbox.SuiteClasses;
+import com.googlecode.junittoolbox.WildcardPatternSuite;
 
-       @Override
-       public void setApplicationContext(ApplicationContext applicationContext) {
-               context = applicationContext;
-       }
+@RunWith(WildcardPatternSuite.class)
+@IncludeCategories({SpringAware.class})
+@SuiteClasses({"**/*Test.class"})
+public class SpringSuite {
 
-       public static ApplicationContext getAppContext() {
-               return context;
-       }
 }
diff --git a/common/src/test/java/org/onap/so/constants/DefaultsTest.java b/common/src/test/java/org/onap/so/constants/DefaultsTest.java
new file mode 100644 (file)
index 0000000..1bcee07
--- /dev/null
@@ -0,0 +1,46 @@
+/*-
+ * ============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.constants;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.onap.so.spring.SpringContextHelper;
+import org.onap.so.test.categories.SpringAware;
+import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = SpringContextHelper.class, initializers = ConfigFileApplicationContextInitializer.class)
+@ActiveProfiles("test")
+@Category(SpringAware.class)
+public class DefaultsTest {
+
+       @Test
+       public void checkValue() {
+               
+               assertEquals("CloudOwner", Defaults.CLOUD_OWNER.toString());
+       }
+}
diff --git a/common/src/test/java/org/onap/so/test/categories/SpringAware.java b/common/src/test/java/org/onap/so/test/categories/SpringAware.java
new file mode 100644 (file)
index 0000000..21035fc
--- /dev/null
@@ -0,0 +1,25 @@
+/*-
+ * ============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.test.categories;
+
+public interface SpringAware {
+       /* category marker */
+}
diff --git a/common/src/test/resources/application-test.yaml b/common/src/test/resources/application-test.yaml
new file mode 100644 (file)
index 0000000..cf386cb
--- /dev/null
@@ -0,0 +1,4 @@
+org:
+  onap:
+    so:
+      cloud-owner: CloudOwner
\ No newline at end of file
index 5675588..1ea77ac 100644 (file)
@@ -23,9 +23,9 @@ package org.onap.so.apihandlerinfra.tenantisolation;
 import java.net.MalformedURLException;
 import java.net.URL;
 
-import org.onap.so.apihandlerinfra.SpringContextHelper;
 import org.onap.so.client.aai.AAIProperties;
 import org.onap.so.client.aai.AAIVersion;
+import org.onap.so.spring.SpringContextHelper;
 import org.springframework.context.ApplicationContext;
 
 public class AaiClientPropertiesImpl implements AAIProperties {
index 58a7cb2..f83e707 100644 (file)
@@ -25,8 +25,8 @@ import java.net.URL;
 
 import javax.ws.rs.core.MediaType;
 
-import org.onap.so.apihandlerinfra.SpringContextHelper;
 import org.onap.so.client.grm.GRMProperties;
+import org.onap.so.spring.SpringContextHelper;
 import org.springframework.context.ApplicationContext;
 
 public class GrmClientPropertiesImpl implements GRMProperties {
index 0e26178..813299c 100644 (file)
@@ -23,8 +23,8 @@ package org.onap.so.apihandlerinfra.tenantisolation.dmaap;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.onap.so.apihandlerinfra.SpringContextHelper;
 import org.onap.so.client.dmaap.DmaapProperties;
+import org.onap.so.spring.SpringContextHelper;
 import org.springframework.context.ApplicationContext;
 
 public class DmaapPropertiesImpl implements DmaapProperties {