summaryrefslogtreecommitdiffstats
path: root/aai-core
diff options
context:
space:
mode:
Diffstat (limited to 'aai-core')
-rw-r--r--aai-core/pom.xml63
-rw-r--r--aai-core/src/main/java/org/onap/aai/config/DmaapConfig.java12
-rw-r--r--aai-core/src/main/java/org/onap/aai/config/EventClientPublisher.java95
-rw-r--r--aai-core/src/main/java/org/onap/aai/dmaap/AAIDmaapEventJMSConsumer.java89
-rw-r--r--aai-core/src/main/java/org/onap/aai/dmaap/JMSConsumer.java158
-rw-r--r--aai-core/src/main/java/org/onap/aai/dmaap/JMSProducer.java56
-rw-r--r--aai-core/src/main/java/org/onap/aai/util/StoreNotificationEvent.java36
-rw-r--r--aai-core/src/main/java/org/onap/aai/util/swagger/Api.java6
-rw-r--r--aai-core/src/main/java/org/onap/aai/util/swagger/GenerateSwagger.java32
-rw-r--r--aai-core/src/main/resources/swagger.html.ftl2
10 files changed, 197 insertions, 352 deletions
diff --git a/aai-core/pom.xml b/aai-core/pom.xml
index 67fafa42..c6224f1d 100644
--- a/aai-core/pom.xml
+++ b/aai-core/pom.xml
@@ -27,11 +27,11 @@
<parent>
<groupId>org.onap.aai.aai-common</groupId>
<artifactId>aai-common</artifactId>
- <version>1.2.2-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
</parent>
<artifactId>aai-core</artifactId>
<name>aai-core</name>
- <version>1.2.2-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<gendoc.version>v12</gendoc.version>
@@ -42,7 +42,7 @@
<sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath>
<sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero>
<sonar.projectVersion>${project.version}</sonar.projectVersion>
- <httpclient.version>4.5.1</httpclient.version>
+ <httpclient.version>4.5.5</httpclient.version>
<jackson.version>2.2.3</jackson.version>
<eelf.core.version>1.0.0</eelf.core.version>
<logback.version>1.2.3</logback.version>
@@ -308,18 +308,6 @@
</executions>
</plugin>
<plugin>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-sources</id>
- <phase>deploy</phase>
- <goals>
- <goal>jar-no-fork</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
<!-- explicitly define maven-deploy-plugin after other to force exec order -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
@@ -445,7 +433,7 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
- <version>4.2.5.RELEASE</version>
+ <version>4.3.16.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
@@ -514,11 +502,6 @@
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
@@ -593,17 +576,6 @@
<version>1.9</version>
</dependency>
<dependency>
- <groupId>com.att.nsa</groupId>
- <artifactId>dmaapClient</artifactId>
- <version>0.2.12</version>
- <exclusions>
- <exclusion>
- <groupId>com.att.aft</groupId>
- <artifactId>dme2</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-javaagent</artifactId>
<version>1.6.2</version>
@@ -621,11 +593,6 @@
<version>${httpclient.version}</version>
</dependency>
<dependency>
- <groupId>org.onap.aai.aai-common</groupId>
- <artifactId>aai-client-loadbalancer</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-groovy</artifactId>
<version>${gremlin.version}</version>
@@ -633,7 +600,27 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
- <version>4.3.2.RELEASE</version>
+ <version>4.3.16.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ <version>2.8.11</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>2.8.11</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.8.11</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.17</version>
</dependency>
</dependencies>
diff --git a/aai-core/src/main/java/org/onap/aai/config/DmaapConfig.java b/aai-core/src/main/java/org/onap/aai/config/DmaapConfig.java
index 29fac33a..7634b74c 100644
--- a/aai-core/src/main/java/org/onap/aai/config/DmaapConfig.java
+++ b/aai-core/src/main/java/org/onap/aai/config/DmaapConfig.java
@@ -22,8 +22,8 @@ package org.onap.aai.config;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.command.ActiveMQQueue;
-import org.onap.aai.dmaap.JMSConsumer;
-import org.onap.aai.dmaap.JMSProducer;
+import org.onap.aai.dmaap.AAIDmaapEventJMSConsumer;
+import org.onap.aai.dmaap.AAIDmaapEventJMSProducer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -85,13 +85,13 @@ public class DmaapConfig {
}
@Bean
- public JMSProducer jmsProducer(){
- return new JMSProducer();
+ public AAIDmaapEventJMSProducer jmsProducer(){
+ return new AAIDmaapEventJMSProducer();
}
@Bean
- public JMSConsumer jmsConsumer() throws Exception {
- return new JMSConsumer();
+ public AAIDmaapEventJMSConsumer jmsConsumer() throws Exception {
+ return new AAIDmaapEventJMSConsumer();
}
@Bean
diff --git a/aai-core/src/main/java/org/onap/aai/config/EventClientPublisher.java b/aai-core/src/main/java/org/onap/aai/config/EventClientPublisher.java
new file mode 100644
index 00000000..1268bf84
--- /dev/null
+++ b/aai-core/src/main/java/org/onap/aai/config/EventClientPublisher.java
@@ -0,0 +1,95 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 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.aai.config;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Base64;
+
+@Configuration
+public class EventClientPublisher {
+
+ private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(EventClientPublisher.class);
+
+ @Value("${dmaap.ribbon.listOfServers}")
+ private String hosts;
+
+ @Value("${dmaap.ribbon.username:}")
+ private String username;
+
+ @Value("${dmaap.ribbon.password:}")
+ private String password;
+
+ @Value("${dmaap.ribbon.topic:AAI-EVENT}")
+ private String topic;
+
+ @Value("${dmaap.ribbon.batchSize:100}")
+ private int maxBatchSize;
+
+ @Value("${dmaap.ribbon.maxAgeMs:250}")
+ private int maxAgeMs;
+
+ @Value("${dmaap.ribbon.delayBetweenBatches:100}")
+ private int delayBetweenBatches;
+
+ @Value("${dmaap.ribbon.protocol:http}")
+ private String protocol;
+
+ @Value("${dmaap.ribbon.transportType:HTTPNOAUTH}")
+ private String tranportType;
+
+ @Value("${dmaap.ribbon.contentType:application/json}")
+ private String contentType;
+
+ @Bean
+ public RestTemplate dmaapRestTemplate(){
+ return new RestTemplate();
+ }
+
+ @Bean
+ public HttpHeaders dmaapHeaders() throws UnsupportedEncodingException
+ {
+
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+
+ if(username != null && password != null){
+
+ if(!StringUtils.EMPTY.equals(username) && !StringUtils.EMPTY.equals(password)){
+
+ byte[] userPass = (username + ":" + password).getBytes("UTF-8");
+
+ httpHeaders.set("Authorization", "Basic " + Base64.getEncoder().encodeToString(userPass));
+ }
+ }
+
+ return httpHeaders;
+ }
+
+}
diff --git a/aai-core/src/main/java/org/onap/aai/dmaap/AAIDmaapEventJMSConsumer.java b/aai-core/src/main/java/org/onap/aai/dmaap/AAIDmaapEventJMSConsumer.java
index cc3afa62..5e28b3af 100644
--- a/aai-core/src/main/java/org/onap/aai/dmaap/AAIDmaapEventJMSConsumer.java
+++ b/aai-core/src/main/java/org/onap/aai/dmaap/AAIDmaapEventJMSConsumer.java
@@ -21,63 +21,53 @@ package org.onap.aai.dmaap;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.WebResource;
import org.apache.log4j.MDC;
import org.json.JSONException;
import org.json.JSONObject;
-import org.onap.aai.logging.ErrorLogHelper;
-import org.onap.aai.util.AAIConstants;
+import org.onap.aai.config.SpringContextAware;
+import org.onap.aai.logging.LogFormatTools;
import org.onap.aai.logging.LoggingContext;
import org.onap.aai.logging.LoggingContext.LoggingField;
import org.onap.aai.logging.LoggingContext.StatusCode;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.env.Environment;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.client.RestTemplate;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
-import javax.ws.rs.core.MediaType;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.Properties;
public class AAIDmaapEventJMSConsumer implements MessageListener {
private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(AAIDmaapEventJMSConsumer.class);
- private Client httpClient;
+ private RestTemplate restTemplate;
- private Properties aaiEventProps;
- private String aaiEventUrl = "";
+ private HttpHeaders httpHeaders;
- public AAIDmaapEventJMSConsumer() throws org.apache.commons.configuration.ConfigurationException {
- super();
- try(FileReader reader = new FileReader(new File(AAIConstants.AAI_EVENT_DMAAP_PROPS))) {
+ private Environment environment;
- if (this.httpClient == null) {
- aaiEventProps = new Properties();
- aaiEventProps.load(reader);
+ public AAIDmaapEventJMSConsumer() {
+ ApplicationContext applicationContext = SpringContextAware.getApplicationContext();
- String host = aaiEventProps.getProperty("host");
- String topic = aaiEventProps.getProperty("topic");
- String protocol = aaiEventProps.getProperty("Protocol");
-
- aaiEventUrl = protocol + "://" + host + "/events/" + topic;
- httpClient = Client.create();
- }
-
- } catch (IOException e) {
- ErrorLogHelper.logError("AAI_4000", "Error updating dmaap config file for aai event.");
- LOGGER.error(e.getMessage(), e);
+ if(applicationContext != null){
+ restTemplate = (RestTemplate) applicationContext.getBean("dmaapRestTemplate");
+ httpHeaders = (HttpHeaders) applicationContext.getBean("dmaapHeaders");
+ environment = applicationContext.getEnvironment();
}
-
}
@Override
public void onMessage(Message message) {
+ if(restTemplate == null){
+ return;
+ }
+
String jsmMessageTxt = "";
String aaiEvent = "";
String eventName = "";
@@ -111,49 +101,28 @@ public class AAIDmaapEventJMSConsumer implements MessageListener {
MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.COMPLETE.toString());
MDC.put(LoggingField.RESPONSE_CODE.toString(), "0");
LOGGER.info(eventName + "|" + aaiEvent);
+ HttpEntity httpEntity = new HttpEntity(aaiEvent, httpHeaders);
+
+ String transportType = environment.getProperty("dmaap.ribbon.transportType", "http");
+ String baseUrl = transportType + "://" + environment.getProperty("dmaap.ribbon.listOfServers");
+ String endpoint = "/events/" + eventName;
if ("AAI-EVENT".equals(eventName)) {
- this.sentWithHttp(this.httpClient, this.aaiEventUrl, aaiEvent);
+ restTemplate.exchange(baseUrl + endpoint, HttpMethod.POST, httpEntity, String.class);
} else {
LoggingContext.statusCode(StatusCode.ERROR);
LOGGER.error(eventName + "|Event Topic invalid.");
}
- } catch (java.net.SocketException e) {
- if (!e.getMessage().contains("Connection reset")) {
- MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
- MDC.put(LoggingField.RESPONSE_CODE.toString(), "200");
- LOGGER.error("AAI_7304 Error reaching DMaaP to send event. " + aaiEvent, e);
- }
- } catch (IOException e) {
- MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
- MDC.put(LoggingField.RESPONSE_CODE.toString(), "200");
- LOGGER.error("AAI_7304 Error reaching DMaaP to send event. " + aaiEvent, e);
} catch (JMSException | JSONException e) {
MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
MDC.put(LoggingField.RESPONSE_CODE.toString(), "200");
- LOGGER.error("AAI_7350 Error parsing aaievent jsm message for sending to dmaap. " + jsmMessageTxt, e);
+ LOGGER.error("AAI_7350 Error parsing aaievent jsm message for sending to dmaap. {} {}", jsmMessageTxt, LogFormatTools.getStackTop(e));
} catch (Exception e) {
MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
MDC.put(LoggingField.RESPONSE_CODE.toString(), "200");
- LOGGER.error("AAI_7350 Error sending message to dmaap. " + jsmMessageTxt, e);
+ LOGGER.error("AAI_7350 Error sending message to dmaap. {} {}" , jsmMessageTxt, LogFormatTools.getStackTop(e));
}
}
}
-
- private boolean sentWithHttp(Client client, String url, String aaiEvent) throws IOException {
-
- WebResource webResource = client.resource(url);
-
- ClientResponse response = webResource
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON)
- .post(ClientResponse.class, aaiEvent);
-
- if (response.getStatus() != 200) {
- LOGGER.info("Failed : HTTP error code : " + response.getStatus());
- return false;
- }
- return true;
- }
}
diff --git a/aai-core/src/main/java/org/onap/aai/dmaap/JMSConsumer.java b/aai-core/src/main/java/org/onap/aai/dmaap/JMSConsumer.java
deleted file mode 100644
index 16092865..00000000
--- a/aai-core/src/main/java/org/onap/aai/dmaap/JMSConsumer.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 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.aai.dmaap;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import org.apache.log4j.MDC;
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.onap.aai.config.SpringContextAware;
-import org.onap.aai.logging.LoggingContext.LoggingField;
-import org.onap.aai.logging.LoggingContext.StatusCode;
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
-import org.springframework.core.env.Environment;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.MediaType;
-import org.springframework.web.client.RestTemplate;
-
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.jms.TextMessage;
-import java.util.Base64;
-import java.util.Collections;
-
-public class JMSConsumer implements MessageListener {
-
- private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(JMSConsumer.class);
-
- private static final int HTTPS_PORT = 3905;
- private static final Base64.Encoder base64Encoder = Base64.getEncoder();
-
- private HttpHeaders httpHeaders;
- private RestTemplate restTemplate;
-
- private Environment environment;
- private LoadBalancerClient loadBalancerClient;
-
- public JMSConsumer() throws Exception {
- this((LoadBalancerClient)SpringContextAware.getApplicationContext().getBean("loadBalancerClient"));
- }
-
- public JMSConsumer(LoadBalancerClient loadBalancerClient) throws Exception {
- this.loadBalancerClient = loadBalancerClient;
- this.httpHeaders = new HttpHeaders();
- this.httpHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
- this.environment = SpringContextAware.getApplicationContext().getEnvironment();
-
- String username = this.environment.getProperty("dmaap.ribbon.username");
- String password = this.environment.getProperty("dmaap.ribbon.password");
-
- if(username == null || password == null){
- throw new Exception("Unable to retrive username/password from the application properties");
- }
-
- String auth = String.format("%s:%s", username, password);
- String authString = "Basic " + base64Encoder.encodeToString(auth.getBytes());
- httpHeaders.add("Authorization", authString);
-
- restTemplate = new RestTemplate();
- }
-
- @Override
- public void onMessage(Message message) {
-
- String jsmMessageTxt = "";
- String aaiEvent = "";
- String eventName = "";
-
- String environment = System.getProperty("lrmRO");
- if (environment == null) {
- environment = "";
- }
-
- if (message instanceof TextMessage) {
- try {
- jsmMessageTxt = ((TextMessage) message).getText();
- JSONObject jo = new JSONObject(jsmMessageTxt);
-
- if (jo.has("aaiEventPayload")) {
- aaiEvent = jo.getJSONObject("aaiEventPayload").toString();
- } else {
- return;
- }
- if (jo.getString("transId") != null) {
- MDC.put("requestId", jo.getString("transId"));
- }
- if (jo.getString("fromAppId") != null) {
- MDC.put("partnerName", jo.getString("fromAppId"));
- }
- MDC.put("targetEntity", "DMAAP");
- if (jo.getString("event-topic") != null) {
- eventName = jo.getString("event-topic");
- MDC.put("targetServiceName", eventName);
- }
- MDC.put("serviceName", "AAI");
- MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.COMPLETE.toString());
- MDC.put(LoggingField.RESPONSE_CODE.toString(), "0");
- LOGGER.info(eventName + "|" + aaiEvent);
-
- HttpEntity<String> httpEntity = new HttpEntity<>(aaiEvent, httpHeaders);
- ServiceInstance serviceInstance = loadBalancerClient.choose("dmaap");
- String url = serviceInstance.getHost() + ":" + serviceInstance.getPort();
-
- if(serviceInstance.getPort() == HTTPS_PORT){
- url = "https://" + url;
- } else {
- url = "http://" + url;
- }
-
- url += "/events/" + eventName;
-
- if ("AAI-EVENT".equals(eventName)) {
- restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
- LOGGER.info(eventName + "|Event sent.");
- } else if ("AAI-VCE-INTERFACE-DATA".equals(eventName)) {
- restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
- String msg = "";
- LOGGER.info(eventName + "|Event sent. " + msg);
- } else {
- MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
- MDC.put(LoggingField.RESPONSE_CODE.toString(), "900");
- LOGGER.error(eventName + "|Event Topic invalid.");
- }
- } catch (JMSException | JSONException e) {
- MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
- MDC.put(LoggingField.RESPONSE_CODE.toString(), "200");
- LOGGER.error("AAI_7350 Error parsing aaievent jms message for sending to dmaap. " + jsmMessageTxt, e);
- } catch (Exception e) {
- MDC.put(LoggingField.STATUS_CODE.toString(), StatusCode.ERROR.toString());
- MDC.put(LoggingField.RESPONSE_CODE.toString(), "200");
- LOGGER.error("AAI_7350 Error sending message to dmaap. " + jsmMessageTxt, e);
- }
- }
-
- }
-
-} \ No newline at end of file
diff --git a/aai-core/src/main/java/org/onap/aai/dmaap/JMSProducer.java b/aai-core/src/main/java/org/onap/aai/dmaap/JMSProducer.java
deleted file mode 100644
index 6ddb1411..00000000
--- a/aai-core/src/main/java/org/onap/aai/dmaap/JMSProducer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 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.aai.dmaap;
-
-import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.activemq.command.ActiveMQQueue;
-import org.json.JSONObject;
-import org.onap.aai.config.SpringContextAware;
-import org.onap.aai.util.AAIConfig;
-import org.springframework.context.ApplicationContext;
-import org.springframework.jms.connection.CachingConnectionFactory;
-import org.springframework.jms.core.JmsTemplate;
-
-public class JMSProducer implements MessageProducer {
-
- private JmsTemplate jmsTemplate;
-
- private ApplicationContext applicationContext;
-
- public JMSProducer() {
- if(AAIConfig.get("aai.jms.enable", "true").equals("true")){
- applicationContext = SpringContextAware.getApplicationContext();
- if(applicationContext == null){
- this.jmsTemplate = new JmsTemplate();
- String activeMqTcpUrl = System.getProperty("activemq.tcp.url", "tcp://localhost:61547");
- this.jmsTemplate.setConnectionFactory(new CachingConnectionFactory(new ActiveMQConnectionFactory(activeMqTcpUrl)));
- this.jmsTemplate.setDefaultDestination(new ActiveMQQueue("IN_QUEUE"));
- } else {
- jmsTemplate = (JmsTemplate) applicationContext.getBean("jmsTemplate");
- }
- }
- }
-
- public void sendMessageToDefaultDestination(JSONObject finalJson) {
- if(jmsTemplate != null){
- jmsTemplate.convertAndSend(finalJson.toString());
- }
- }
-}
diff --git a/aai-core/src/main/java/org/onap/aai/util/StoreNotificationEvent.java b/aai-core/src/main/java/org/onap/aai/util/StoreNotificationEvent.java
index 375a2adc..6bde4823 100644
--- a/aai-core/src/main/java/org/onap/aai/util/StoreNotificationEvent.java
+++ b/aai-core/src/main/java/org/onap/aai/util/StoreNotificationEvent.java
@@ -19,31 +19,27 @@
*/
package org.onap.aai.util;
-import java.io.StringWriter;
-import java.util.Iterator;
-import java.util.UUID;
-
-import javax.xml.bind.Marshaller;
-
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import org.eclipse.persistence.dynamic.DynamicEntity;
import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
import org.json.JSONException;
import org.json.JSONObject;
-import org.onap.aai.config.SpringContextAware;
import org.onap.aai.dmaap.AAIDmaapEventJMSProducer;
-import org.onap.aai.dmaap.JMSProducer;
import org.onap.aai.dmaap.MessageProducer;
import org.onap.aai.domain.notificationEvent.NotificationEvent;
import org.onap.aai.exceptions.AAIException;
import org.onap.aai.introspection.Introspector;
import org.onap.aai.introspection.Loader;
import org.onap.aai.introspection.exceptions.AAIUnknownObjectException;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
+import javax.xml.bind.Marshaller;
+import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.UUID;
+
public class StoreNotificationEvent {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(StoreNotificationEvent.class);
@@ -60,27 +56,7 @@ public class StoreNotificationEvent {
* Instantiates a new store notification event.
*/
public StoreNotificationEvent(String transactionId, String sourceOfTruth) {
- this.context = SpringContextAware.getApplicationContext();
- // If the context is null then this is being invoked from
- // non spring context so creating the jms producer each time
- // Otherwise, get the jms producer from the spring context so
- // no need to create a instance of this each time
- // Also check if the environment has the dmaap profile
- // TODO - Add the constants for profile so do this when adding the https two-way ssl and one way with basic auth
- if(this.context == null){
- this.messageProducer = new AAIDmaapEventJMSProducer();
- } else {
- env = context.getEnvironment();
- if(env.acceptsProfiles("dmaap")){
- try {
- this.messageProducer = (JMSProducer)context.getBean("jmsProducer");
- } catch(NoSuchBeanDefinitionException ex){
- logger.error("Currently using the dmaap profile but still not able to find bean so check DmaapConfig", ex);
- }
- } else {
- this.messageProducer = new AAIDmaapEventJMSProducer();
- }
- }
+ this.messageProducer = new AAIDmaapEventJMSProducer();
this.transactionId = transactionId;
this.sourceOfTruth = sourceOfTruth;
}
diff --git a/aai-core/src/main/java/org/onap/aai/util/swagger/Api.java b/aai-core/src/main/java/org/onap/aai/util/swagger/Api.java
index 8ec58049..7d654489 100644
--- a/aai-core/src/main/java/org/onap/aai/util/swagger/Api.java
+++ b/aai-core/src/main/java/org/onap/aai/util/swagger/Api.java
@@ -279,6 +279,8 @@ public class Api {
private String description;
+ private String version;
+
public String getResponseCode() {
return responseCode;
}
@@ -302,6 +304,10 @@ public class Api {
", description='" + description + '\'' +
'}';
}
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
}
}
diff --git a/aai-core/src/main/java/org/onap/aai/util/swagger/GenerateSwagger.java b/aai-core/src/main/java/org/onap/aai/util/swagger/GenerateSwagger.java
index ab34a3ee..7fdc8059 100644
--- a/aai-core/src/main/java/org/onap/aai/util/swagger/GenerateSwagger.java
+++ b/aai-core/src/main/java/org/onap/aai/util/swagger/GenerateSwagger.java
@@ -36,7 +36,7 @@ public class GenerateSwagger {
public static final String DEFAULT_WIKI = "";
public static final String DEFAULT_SCHEMA_DIR = "../aai-schema";
- public static final String CURRENT_VERSION = Version. getLatest().toString();
+ public static final String CURRENT_VERSION = Version.getLatest().toString();
//if the program is run from aai-common, use this directory as default"
public static final String ALT_SCHEMA_DIR = "aai-schema";
//used to check to see if program is run from aai-core
@@ -60,7 +60,7 @@ public class GenerateSwagger {
}
if(versionToGenerate == null){
- System.out.println("Warning: Version to generate is not set so using default version: " + CURRENT_VERSION);
+ System.out.println("Warning: Version to generate is not set so using default versionToGenerate " + CURRENT_VERSION);
versionToGenerate = CURRENT_VERSION;
}
@@ -122,6 +122,7 @@ public class GenerateSwagger {
resultMap.put("sortedAaiApis", sortedTagMap);
resultMap.put("wikiLink", wikiLink);
resultMap.put("definitions", definitionList);
+ resultMap.put("version", versionToGenerate);
if (infoMap.containsKey("description")) {
String infoDescription = infoMap.get("description").toString();
@@ -129,6 +130,9 @@ public class GenerateSwagger {
.map(line -> {
line = line.trim();
String hyperLink = "";
+ if(line.trim().contains("Differences versus")) {
+ return String.format("");
+ }
if(line.trim().contains("https://")){
int startIndex = line.indexOf("https://");
int endIndex = line.lastIndexOf("/");
@@ -239,6 +243,26 @@ public class GenerateSwagger {
if(requestBodyList != null && requestBodyList.size() == 1){
requestBody = requestBodyList.get(0);
+ for(String key : requestBody.keySet()) {
+ //Filter out all the relationship links that appear in the YAML
+ if(key.equals("description")) {
+ String reqBody=(String)requestBody.get(key);
+ if(reqBody.replaceAll("\\[.*.json\\)", "") != reqBody) {
+ requestBody.put(key, reqBody.replaceAll("\\[.*.json\\)", ""));
+ }
+ }
+ //Filter out all the patchDefinition links that appear in the YAML
+ if(key.equals("schema")) {
+ LinkedHashMap<String,String> reqBody = (LinkedHashMap<String,String>)requestBody.get(key);
+ String schema=reqBody.get("$ref");
+ String schemaNopatch = schema.replace("patchDefinitions", "definitions");
+
+ if(! schema.equals(schemaNopatch)) {
+ reqBody.put("$ref", schemaNopatch);
+ requestBody.put(key, reqBody);
+ }
+ }
+ }
httpVerb.setBodyParametersEnabled(true);
httpVerb.setBodyParameters(requestBody);
@@ -274,13 +298,15 @@ public class GenerateSwagger {
response.setResponseCode(responseMap.getKey());
response.setDescription((String) responseValueMap.get("description"));
+ response.setVersion((String) responseValueMap.get("version"));
if(responseValueMap != null && responseValueMap.containsKey("schema")){
Map<String, Object> schemaMap = (Map<String, Object>)responseValueMap.get("schema");
if(schemaMap != null && schemaMap.containsKey("$ref")){
String schemaLink = schemaMap.get("$ref").toString();
httpVerb.setHasReturnSchema(true);
- httpVerb.setReturnSchemaLink(schemaLink);
+ //Filter out all the getDefinition links that appear in the YAML
+ httpVerb.setReturnSchemaLink(schemaLink.replace("getDefinitions", "definitions"));
int retCode = schemaLink.lastIndexOf('/');
if(retCode != -1 && retCode != schemaLink.length()){
httpVerb.setReturnSchemaObject(schemaLink.substring(retCode));
diff --git a/aai-core/src/main/resources/swagger.html.ftl b/aai-core/src/main/resources/swagger.html.ftl
index 0dff5dec..3f9dc4e0 100644
--- a/aai-core/src/main/resources/swagger.html.ftl
+++ b/aai-core/src/main/resources/swagger.html.ftl
@@ -37,7 +37,7 @@
<body>
<div class="container">
<h1>Active and Available Inventory REST API.</h1>
- <p class="sw-info-version">Version: <span>v12</span></p>
+ <p class="sw-info-version">Version: <span>${version}</span></p>
<p><p>${description}</p>
</p>