aboutsummaryrefslogtreecommitdiffstats
path: root/appc-oam/appc-oam-bundle
diff options
context:
space:
mode:
Diffstat (limited to 'appc-oam/appc-oam-bundle')
-rw-r--r--appc-oam/appc-oam-bundle/pom.xml15
-rw-r--r--appc-oam/appc-oam-bundle/src/main/java/org/onap/appc/oam/messageadapter/MessageAdapter.java101
-rw-r--r--appc-oam/appc-oam-bundle/src/test/java/org/onap/appc/oam/messageadapter/MessageAdapterTest.java79
3 files changed, 20 insertions, 175 deletions
diff --git a/appc-oam/appc-oam-bundle/pom.xml b/appc-oam/appc-oam-bundle/pom.xml
index 5970f79e6..ef9d46d5e 100644
--- a/appc-oam/appc-oam-bundle/pom.xml
+++ b/appc-oam/appc-oam-bundle/pom.xml
@@ -175,22 +175,9 @@
<artifactId>json</artifactId>
</dependency>
-
- <dependency>
- <groupId>org.onap.appc</groupId>
- <artifactId>appc-message-adapter-api</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.onap.appc</groupId>
- <artifactId>appc-message-adapter-factory</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.onap.appc</groupId>
- <artifactId>appc-dmaap-adapter-bundle</artifactId>
+ <artifactId>appc-service-communicator-bundle</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
diff --git a/appc-oam/appc-oam-bundle/src/main/java/org/onap/appc/oam/messageadapter/MessageAdapter.java b/appc-oam/appc-oam-bundle/src/main/java/org/onap/appc/oam/messageadapter/MessageAdapter.java
index 7112b7d99..f3160511f 100644
--- a/appc-oam/appc-oam-bundle/src/main/java/org/onap/appc/oam/messageadapter/MessageAdapter.java
+++ b/appc-oam/appc-oam-bundle/src/main/java/org/onap/appc/oam/messageadapter/MessageAdapter.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* =============================================================================
@@ -27,118 +27,51 @@ import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.commons.lang.ObjectUtils;
-import org.onap.appc.adapter.message.MessageAdapterFactory;
-import org.onap.appc.adapter.message.Producer;
-import org.onap.appc.configuration.Configuration;
-import org.onap.appc.configuration.ConfigurationFactory;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
-
-import java.util.HashSet;
-import java.util.Properties;
+import org.onap.appc.srvcomm.messaging.MessagingConnector;
public class MessageAdapter {
private final EELFLogger logger = EELFManager.getInstance().getLogger(MessageAdapter.class);
- private final String PROP_APPC_OAM_DISABLED = "appc.OAM.disabled";
- private final String PROP_APPC_OAM_TOPIC_WRITE = "appc.OAM.topic.write";
- private String PROP_APPC_OAM_CLIENT_KEY = "appc.OAM.client.key";
- private String PROP_APPC_OAM_CLIENT_SECRET = "appc.OAM.client.secret";
- private String PROP_APPC_OAM_POOLMEMBERS = "appc.OAM.poolMembers";
+ private static final String PROPERTIES_PREFIX = "appc.OAM";
- private Producer producer;
+ private MessagingConnector messagingConnector;
private String partition;
- private Configuration configuration;
- private HashSet<String> pool;
- private String writeTopic;
- private String apiKey;
- private String apiSecret;
private boolean isDisabled;
/**
* Initialize producer client to post messages using configuration properties.
*/
public void init() {
- configuration = ConfigurationFactory.getConfiguration();
- Properties properties = configuration.getProperties();
- updateProperties(properties);
if (isAppcOamPropsListenerEnabled()) {
- createProducer();
+ messagingConnector = new MessagingConnector();
} else {
logger.warn(String.format("The listener %s is disabled and will not be run", "appc.OAM"));
}
}
+
+ public void init(MessagingConnector connector) {
- /**
- * Create producer using MessageAdapterFactory which is found through bundle context.
- */
- void createProducer() {
- BundleContext ctx = FrameworkUtil.getBundle(MessageAdapter.class).getBundleContext();
- if (ctx == null) {
- logger.warn("MessageAdapter cannot create producer due to no bundle context.");
- return;
- }
-
- ServiceReference svcRef = ctx.getServiceReference(MessageAdapterFactory.class.getName());
- if (svcRef == null) {
- logger.warn("MessageAdapter cannot create producer due to no MessageAdapterFactory service reference.");
- return;
- }
-
- Producer localProducer = ((MessageAdapterFactory) ctx.getService(svcRef)).createProducer(pool, writeTopic,
- apiKey, apiSecret);
-
- for (String url : pool) {
- if (url.contains("3905") || url.contains("https")) {
- localProducer.useHttps(true);
- break;
- }
+ if (isAppcOamPropsListenerEnabled()) {
+ messagingConnector = connector;
+ } else {
+ logger.warn(String.format("The listener %s is disabled and will not be run", "appc.OAM"));
}
-
- producer = localProducer;
-
- logger.debug("MessageAdapter created producer.");
}
- /**
- * Read property value to set writeTopic, apiKey, apiSecret and pool.
- *
- * @param props of configuration
- */
- private void updateProperties(Properties props) {
- logger.trace("Entering to updateProperties with Properties = " + ObjectUtils.toString(props));
-
- pool = new HashSet<>();
- if (props != null) {
- isDisabled = Boolean.parseBoolean(props.getProperty(PROP_APPC_OAM_DISABLED));
- writeTopic = props.getProperty(PROP_APPC_OAM_TOPIC_WRITE);
- apiKey = props.getProperty(PROP_APPC_OAM_CLIENT_KEY);
- apiSecret = props.getProperty(PROP_APPC_OAM_CLIENT_SECRET);
- String hostnames = props.getProperty(PROP_APPC_OAM_POOLMEMBERS);
- if (hostnames != null && !hostnames.isEmpty()) {
- for (String name : hostnames.split(",")) {
- pool.add(name);
- }
- }
- }
- }
/**
* Get producer. If it is null, call createProducer to create it again.
*
* @return Producer
*/
- Producer getProducer() {
- if (producer == null) {
- // In case, producer was not properly set yet, set it again.
- logger.info("Calling createProducer as producer is null.");
- createProducer();
+ MessagingConnector getMessagingConnector() {
+ if (messagingConnector == null) {
+ messagingConnector = new MessagingConnector();
}
- return producer;
+ return messagingConnector;
}
/**
@@ -161,8 +94,8 @@ public class MessageAdapter {
logger.debug("UEB Response = " + jsonMessage);
}
- Producer myProducer = getProducer();
- success = myProducer != null && myProducer.post(this.partition, jsonMessage);
+ MessagingConnector connector = getMessagingConnector();
+ success = connector != null && connector.publishMessage(PROPERTIES_PREFIX, this.partition, jsonMessage);
} catch (JsonProcessingException e1) {
logger.error("Error generating Json from UEB message " + e1.getMessage());
success = false;
diff --git a/appc-oam/appc-oam-bundle/src/test/java/org/onap/appc/oam/messageadapter/MessageAdapterTest.java b/appc-oam/appc-oam-bundle/src/test/java/org/onap/appc/oam/messageadapter/MessageAdapterTest.java
index bb73dfe8a..122ca9f96 100644
--- a/appc-oam/appc-oam-bundle/src/test/java/org/onap/appc/oam/messageadapter/MessageAdapterTest.java
+++ b/appc-oam/appc-oam-bundle/src/test/java/org/onap/appc/oam/messageadapter/MessageAdapterTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* ================================================================================
@@ -29,8 +29,6 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.onap.appc.adapter.message.MessageAdapterFactory;
-import org.onap.appc.adapter.message.Producer;
import org.onap.appc.configuration.Configuration;
import org.mockito.Mockito;
import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.common.header.CommonHeader;
@@ -61,86 +59,16 @@ import static org.powermock.api.mockito.PowerMockito.mockStatic;
@PrepareForTest({FrameworkUtil.class, ConfigurationFactory.class, Converter.class})
public class MessageAdapterTest {
- private Producer fakeProducer;
private MessageAdapter messageAdapter;
@Before
public final void setup() throws Exception {
- fakeProducer = mock(Producer.class);
messageAdapter = new MessageAdapter();
}
@Test
- public void testGetProducerReturnsNull() throws Exception {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Mockito.doNothing().when(maSpy).createProducer();
-
- Producer producer = maSpy.getProducer();
- Assert.assertTrue("getProducer() did not return null", producer == null);
- Producer mySpyProducer = Whitebox.getInternalState(maSpy, "producer");
- Assert.assertTrue("MessageAdapter producer is not null", mySpyProducer == null);
- Mockito.verify(maSpy, Mockito.times(1)).createProducer();
- }
-
- @Test
- public void testGetProducerWithExistingProducer() throws Exception {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Whitebox.setInternalState(maSpy, "producer", fakeProducer);
-
- Producer producer = maSpy.getProducer();
- Assert.assertTrue("getProducer() returned null", producer == fakeProducer);
- Mockito.verify(maSpy, Mockito.times(0)).createProducer();
- }
-
- @Test
- public void testGetProducerWithCreateProducer() throws Exception {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Whitebox.setInternalState(maSpy, "producer", (Object) null);
- HashSet<String> pool = new HashSet<>();
- pool.add("NOT_HTTPS");
- pool.add("https");
- Whitebox.setInternalState(maSpy, "pool", pool);
-
- // Prepare all mocks
- mockStatic(FrameworkUtil.class);
- Bundle maBundle = mock(Bundle.class);
- PowerMockito.when(FrameworkUtil.getBundle(MessageAdapter.class)).thenReturn(maBundle);
-
- BundleContext maBundleContext = mock(BundleContext.class);
- Mockito.when(maBundle.getBundleContext()).thenReturn(maBundleContext);
-
- ServiceReference svcRef = mock(ServiceReference.class);
- Mockito.when(maBundleContext.getServiceReference(MessageAdapterFactory.class.getName())).thenReturn(svcRef);
-
- MessageAdapterFactory maFactory = mock(MessageAdapterFactory.class);
- Mockito.when(maBundleContext.getService(svcRef)).thenReturn(maFactory);
- Mockito.when(maFactory.createProducer(pool, (String) null, null, null)).thenReturn(fakeProducer);
-
- Producer producer = maSpy.getProducer();
- Assert.assertTrue("getProducer() result does not match", producer == fakeProducer);
- Producer mySpyProducer = Whitebox.getInternalState(maSpy, "producer");
- Assert.assertTrue("MessageAdapter producer does not match",mySpyProducer == fakeProducer);
- Mockito.verify(maSpy, Mockito.times(1)).createProducer();
- }
-
- @Test
- public void testUpdateProperties() {
- MessageAdapter maSpy = Mockito.spy(messageAdapter);
- Mockito.doNothing().when(maSpy).createProducer();
- Whitebox.setInternalState(maSpy, "isDisabled", false);
- PowerMockito.mockStatic(ConfigurationFactory.class);
- Configuration mockConfig = Mockito.mock(Configuration.class);
- Properties properties = new Properties();
- properties.setProperty("appc.OAM.poolMembers", "hostname1,hostname2");
- Mockito.when(ConfigurationFactory.getConfiguration()).thenReturn(mockConfig);
- Mockito.doReturn(properties).when(mockConfig).getProperties();
- maSpy.init();
- assertEquals(2, ((Set<String>)Whitebox.getInternalState(maSpy, "pool")).size());
- }
-
- @Test
public void testPost() throws JsonProcessingException {
MessageAdapter maSpy = Mockito.spy(messageAdapter);
OAMContext oamContext = new OAMContext();
@@ -158,7 +86,6 @@ public class MessageAdapterTest {
Mockito.when(Converter.convAsyncResponseToUebOutgoingMessageJsonString(oamContext)).thenReturn("{cambriaPartition='MSO', rpcName='maintenance_mode',"
+ " body=Body{output=MaintenanceModeOutput [_commonHeader=CommonHeader, hashCode: 14584991,"
+ " _status=Status, hashCode: 24801521, augmentation=[]]}}");
- Mockito.doNothing().when(maSpy).createProducer();
maSpy.post(oamContext);
Mockito.verify(mockLogger).trace(Mockito.contains("Entering to post"));
Mockito.verify(mockLogger).trace("Exiting from post with (success = false)");
@@ -180,7 +107,6 @@ public class MessageAdapterTest {
Whitebox.setInternalState(maSpy, "logger", mockLogger);
PowerMockito.mockStatic(Converter.class);
Mockito.when(Converter.convAsyncResponseToUebOutgoingMessageJsonString(oamContext)).thenThrow(new JsonProcessingException("ERROR") {});
- Mockito.doNothing().when(maSpy).createProducer();
maSpy.post(oamContext);
Mockito.verify(mockLogger).error(Mockito.contains("Error generating Json from UEB message"));
}
@@ -201,8 +127,7 @@ public class MessageAdapterTest {
Whitebox.setInternalState(maSpy, "logger", mockLogger);
PowerMockito.mockStatic(Converter.class);
Mockito.when(Converter.convAsyncResponseToUebOutgoingMessageJsonString(oamContext)).thenThrow(new RuntimeException("ERROR"));
- Mockito.doNothing().when(maSpy).createProducer();
maSpy.post(oamContext);
Mockito.verify(mockLogger).error(Mockito.contains("Error sending message to UEB ERROR"), Mockito.any(RuntimeException.class));
}
-} \ No newline at end of file
+}