From 714f7312ef66123ae7cf5a01dbb1c57701733294 Mon Sep 17 00:00:00 2001 From: "Benjamin, Max (mb388a)" Date: Tue, 23 Oct 2018 09:43:26 -0400 Subject: default cloud owner now configurable default cloud owner can now be set via a property Change-Id: I9b900cb2a5c7176a78e889ad2ce31a4ed9d38585 Issue-ID: SO-1158 Signed-off-by: Benjamin, Max (mb388a) --- common/pom.xml | 37 ++++++++++++++++- .../main/java/org/onap/so/constants/Defaults.java | 30 ++++++++++---- .../org/onap/so/spring/SpringContextHelper.java | 40 +++++++++++++++++++ .../src/test/java/org/onap/so/NonSpringSuite.java | 35 ++++++++++++++++ common/src/test/java/org/onap/so/SpringSuite.java | 35 ++++++++++++++++ .../java/org/onap/so/constants/DefaultsTest.java | 46 ++++++++++++++++++++++ .../org/onap/so/test/categories/SpringAware.java | 25 ++++++++++++ common/src/test/resources/application-test.yaml | 4 ++ 8 files changed, 244 insertions(+), 8 deletions(-) create mode 100644 common/src/main/java/org/onap/so/spring/SpringContextHelper.java create mode 100644 common/src/test/java/org/onap/so/NonSpringSuite.java create mode 100644 common/src/test/java/org/onap/so/SpringSuite.java create mode 100644 common/src/test/java/org/onap/so/constants/DefaultsTest.java create mode 100644 common/src/test/java/org/onap/so/test/categories/SpringAware.java create mode 100644 common/src/test/resources/application-test.yaml (limited to 'common') diff --git a/common/pom.xml b/common/pom.xml index 8b0f19cfc4..4427b3755e 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -139,6 +139,11 @@ logging-slf4j 1.2.2 + + org.springframework.boot + spring-boot-starter-test + test + @@ -152,6 +157,36 @@ **/*.java - + + + + org.apache.maven.plugins + maven-surefire-plugin + + + default-test + + test + + + + **/NonSpringSuite.java + + + + + spring-tests + + test + + + + **/SpringSuite.java + + + + + + diff --git a/common/src/main/java/org/onap/so/constants/Defaults.java b/common/src/main/java/org/onap/so/constants/Defaults.java index 06c6fae467..621acfffaa 100644 --- a/common/src/main/java/org/onap/so/constants/Defaults.java +++ b/common/src/main/java/org/onap/so/constants/Defaults.java @@ -20,19 +20,35 @@ 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 context = getAppContext(); + if (context.isPresent()) { + return context.get().getEnvironment().getProperty(this.propName, this.defaultValue); + } else { + return this.defaultValue; + } + + } + + protected Optional getAppContext() { + return Optional.ofNullable(SpringContextHelper.getAppContext()); } } diff --git a/common/src/main/java/org/onap/so/spring/SpringContextHelper.java b/common/src/main/java/org/onap/so/spring/SpringContextHelper.java new file mode 100644 index 0000000000..1fae5f3e23 --- /dev/null +++ b/common/src/main/java/org/onap/so/spring/SpringContextHelper.java @@ -0,0 +1,40 @@ +/*- + * ============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.spring; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class SpringContextHelper implements ApplicationContextAware { + + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + context = applicationContext; + } + + public static ApplicationContext getAppContext() { + return context; + } +} diff --git a/common/src/test/java/org/onap/so/NonSpringSuite.java b/common/src/test/java/org/onap/so/NonSpringSuite.java new file mode 100644 index 0000000000..86bb421123 --- /dev/null +++ b/common/src/test/java/org/onap/so/NonSpringSuite.java @@ -0,0 +1,35 @@ +/*- + * ============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; + +import org.junit.runner.RunWith; +import org.onap.so.test.categories.SpringAware; + +import com.googlecode.junittoolbox.ExcludeCategories; +import com.googlecode.junittoolbox.SuiteClasses; +import com.googlecode.junittoolbox.WildcardPatternSuite; + +@RunWith(WildcardPatternSuite.class) +@ExcludeCategories({SpringAware.class}) +@SuiteClasses({"**/*Test.class"}) +public class NonSpringSuite { + +} diff --git a/common/src/test/java/org/onap/so/SpringSuite.java b/common/src/test/java/org/onap/so/SpringSuite.java new file mode 100644 index 0000000000..93d4d31f5c --- /dev/null +++ b/common/src/test/java/org/onap/so/SpringSuite.java @@ -0,0 +1,35 @@ +/*- + * ============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; + +import org.junit.runner.RunWith; +import org.onap.so.test.categories.SpringAware; + +import com.googlecode.junittoolbox.IncludeCategories; +import com.googlecode.junittoolbox.SuiteClasses; +import com.googlecode.junittoolbox.WildcardPatternSuite; + +@RunWith(WildcardPatternSuite.class) +@IncludeCategories({SpringAware.class}) +@SuiteClasses({"**/*Test.class"}) +public class SpringSuite { + +} 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 index 0000000000..1bcee07118 --- /dev/null +++ b/common/src/test/java/org/onap/so/constants/DefaultsTest.java @@ -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 index 0000000000..21035fcd4d --- /dev/null +++ b/common/src/test/java/org/onap/so/test/categories/SpringAware.java @@ -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 index 0000000000..cf386cb6fc --- /dev/null +++ b/common/src/test/resources/application-test.yaml @@ -0,0 +1,4 @@ +org: + onap: + so: + cloud-owner: CloudOwner \ No newline at end of file -- cgit 1.2.3-korg