All springboot components except r-app catlogue.
Signed-off-by: PatrikBuhr <patrik.buhr@est.tech>
Issue-ID: NONRTRIC-703
Change-Id: I1bdfdbac4166d7293fcd9f074c55c4be63200c47
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>2.5.3</version>
+ <version>2.6.2</version>
<relativePath />
</parent>
<groupId>org.o-ran-sc.nonrtric</groupId>
<springfox.version>3.0.0</springfox.version>
<immutable.version>2.8.2</immutable.version>
<sdk.version>1.1.6</sdk.version>
- <swagger.version>2.1.6</swagger.version>
+ <swagger.version>2.1.12</swagger.version>
<json.version>20190722</json.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<formatter-maven-plugin.version>2.12.2</formatter-maven-plugin.version>
<spotless-maven-plugin.version>1.18.0</spotless-maven-plugin.version>
<docker-maven-plugin>0.30.0</docker-maven-plugin>
- <version.dmaap>1.1.11</version.dmaap>
<javax.ws.rs-api.version>2.1.1</javax.ws.rs-api.version>
<sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
<jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version>
<exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
</properties>
<dependencies>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.11.0</version>
+ </dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
- <version>1.5.2</version>
+ <version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.onap.dmaap.messagerouter.dmaapclient</groupId>
- <artifactId>dmaapClient</artifactId>
- <version>${version.dmaap}</version>
- </dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<system>JIRA</system>
<url>https://jira.o-ran-sc.org/</url>
</issueManagement>
-</project>
+</project>
\ No newline at end of file
"paths": {
"/actuator/threaddump": {"get": {
"summary": "Actuator web endpoint 'threaddump'",
- "operationId": "handle_2_1_3",
+ "operationId": "threaddump_4",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/info": {"get": {
"summary": "Actuator web endpoint 'info'",
- "operationId": "handle_9",
+ "operationId": "info_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
},
"/actuator/loggers": {"get": {
"summary": "Actuator web endpoint 'loggers'",
- "operationId": "handle_6",
+ "operationId": "loggers_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/health/**": {"get": {
"summary": "Actuator web endpoint 'health-path'",
- "operationId": "handle_12",
+ "operationId": "health-path_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/metrics/{requiredMetricName}": {"get": {
"summary": "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId": "handle_5",
+ "operationId": "metrics-requiredMetricName_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/logfile": {"get": {
"summary": "Actuator web endpoint 'logfile'",
- "operationId": "handle_8",
+ "operationId": "logfile_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
"/actuator/loggers/{name}": {
"post": {
"summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "handle_0",
+ "operationId": "loggers-name_3",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
},
"get": {
"summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "handle_7",
+ "operationId": "loggers-name_4",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
},
"/actuator/health": {"get": {
"summary": "Actuator web endpoint 'health'",
- "operationId": "handle_11",
+ "operationId": "health_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/metrics": {"get": {
"summary": "Actuator web endpoint 'metrics'",
- "operationId": "handle_4",
+ "operationId": "metrics_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/heapdump": {"get": {
"summary": "Actuator web endpoint 'heapdump'",
- "operationId": "handle_10",
+ "operationId": "heapdump_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
"title": "Generic Dmaap and Kafka Information Producer",
"version": "1.0"
},
- "tags": [{
- "name": "Actuator",
- "description": "Monitor and interact",
- "externalDocs": {
- "description": "Spring Boot Actuator Web API Documentation",
- "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ "tags": [
+ {"name": "Information Coordinator Service Simulator (exists only in test)"},
+ {"name": "Producer job control API"},
+ {"name": "Test Consumer Simulator (exists only in test)"},
+ {"name": "DMAAP Simulator (exists only in test)"},
+ {
+ "name": "Actuator",
+ "description": "Monitor and interact",
+ "externalDocs": {
+ "description": "Spring Boot Actuator Web API Documentation",
+ "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ }
}
- }]
+ ]
}
\ No newline at end of file
servers:
- url: /
tags:
+- name: Information Coordinator Service Simulator (exists only in test)
+- name: Producer job control API
+- name: Test Consumer Simulator (exists only in test)
+- name: DMAAP Simulator (exists only in test)
- name: Actuator
description: Monitor and interact
externalDocs:
tags:
- Actuator
summary: Actuator web endpoint 'threaddump'
- operationId: handle_2_1_3
+ operationId: threaddump_4
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'info'
- operationId: handle_9
+ operationId: info_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'loggers'
- operationId: handle_6
+ operationId: loggers_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'health-path'
- operationId: handle_12
+ operationId: health-path_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'metrics-requiredMetricName'
- operationId: handle_5
+ operationId: metrics-requiredMetricName_2
parameters:
- name: requiredMetricName
in: path
tags:
- Actuator
summary: Actuator web endpoint 'logfile'
- operationId: handle_8
+ operationId: logfile_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'loggers-name'
- operationId: handle_7
+ operationId: loggers-name_4
parameters:
- name: name
in: path
tags:
- Actuator
summary: Actuator web endpoint 'loggers-name'
- operationId: handle_0
+ operationId: loggers-name_3
parameters:
- name: name
in: path
tags:
- Actuator
summary: Actuator web endpoint 'health'
- operationId: handle_11
+ operationId: health_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'metrics'
- operationId: handle_4
+ operationId: metrics_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'heapdump'
- operationId: handle_10
+ operationId: heapdump_2
responses:
200:
description: OK
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>2.5.3</version>
+ <version>2.6.2</version>
<relativePath />
</parent>
<groupId>org.o-ran-sc.nonrtric</groupId>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
- <version>1.5.4</version>
+ <version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>swagger-jaxrs2-servlet-initializer</artifactId>
<version>${swagger.version}</version>
</dependency>
-
<dependency>
<groupId>org.immutables</groupId>
<artifactId>value</artifactId>
<system>JIRA</system>
<url>https://jira.o-ran-sc.org/</url>
</issueManagement>
-</project>
+</project>
\ No newline at end of file
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>2.3.8.RELEASE</version>
+ <version>2.6.2</version>
<relativePath />
</parent>
<groupId>org.o-ran-sc.nonrtric</groupId>
</properties>
<dependencies>
<dependency>
- <groupId>org.onap.policy.clamp.participant</groupId>
- <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
- <version>${policy-clamp-participant-impl-kubernetes.version}</version>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
+ <version>${policy-clamp-participant-impl-kubernetes.version}</version>
</dependency>
</dependencies>
<build>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
- <execution>
- <id>copy</id>
- <phase>package</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.onap.policy.clamp.participant</groupId>
- <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
- <version>${policy-clamp-participant-impl-kubernetes.version}</version>
- <type>jar</type>
- <overWrite>true</overWrite>
- <outputDirectory>${basedir}/target</outputDirectory>
- <destFileName>app.jar</destFileName>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
+ <execution>
+ <id>copy</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
+ <version>${policy-clamp-participant-impl-kubernetes.version}</version>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>${basedir}/target</outputDirectory>
+ <destFileName>app.jar</destFileName>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
<system>JIRA</system>
<url>https://jira.o-ran-sc.org/</url>
</issueManagement>
-</project>
+</project>
\ No newline at end of file
}},
"/actuator/threaddump": {"get": {
"summary": "Actuator web endpoint 'threaddump'",
- "operationId": "handle_2_1_3",
+ "operationId": "threaddump_4",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
},
"/actuator/loggers": {"get": {
"summary": "Actuator web endpoint 'loggers'",
- "operationId": "handle_6",
+ "operationId": "loggers_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/health/**": {"get": {
"summary": "Actuator web endpoint 'health-path'",
- "operationId": "handle_12",
+ "operationId": "health-path_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/metrics/{requiredMetricName}": {"get": {
"summary": "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId": "handle_5",
+ "operationId": "metrics-requiredMetricName_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
"/actuator/loggers/{name}": {
"post": {
"summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "handle_0",
+ "operationId": "loggers-name_3",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
},
"get": {
"summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "handle_7",
+ "operationId": "loggers-name_4",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/metrics": {"get": {
"summary": "Actuator web endpoint 'metrics'",
- "operationId": "handle_4",
+ "operationId": "metrics_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/info": {"get": {
"summary": "Actuator web endpoint 'info'",
- "operationId": "handle_9",
+ "operationId": "info_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
},
"/actuator/logfile": {"get": {
"summary": "Actuator web endpoint 'logfile'",
- "operationId": "handle_8",
+ "operationId": "logfile_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/health": {"get": {
"summary": "Actuator web endpoint 'health'",
- "operationId": "handle_11",
+ "operationId": "health_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
}},
"/actuator/heapdump": {"get": {
"summary": "Actuator web endpoint 'heapdump'",
- "operationId": "handle_10",
+ "operationId": "heapdump_2",
"responses": {"200": {
"description": "OK",
"content": {"*/*": {"schema": {"type": "object"}}}
"version": "1.0"
},
"tags": [
+ {"name": "A1-EI (callbacks)"},
+ {
+ "name": "Data producer (callbacks)",
+ "description": "API implemented by data producers"
+ },
+ {"name": "Data consumer"},
+ {"name": "Data consumer (callbacks)"},
{
"name": "A1-EI (registration)",
"description": "Data consumer EI job registration"
"name": "A1-EI (callbacks)",
"description": "Data consumer EI job status callbacks"
},
- {
- "name": "Data producer (callbacks)",
- "description": "API implemented by data producers"
- },
+ {"name": "Service status"},
+ {"name": "A1-EI (registration)"},
+ {"name": "Data producer (registration)"},
+ {"name": "Data producer (callbacks)"},
{
"name": "Data producer (registration)",
"description": "API for data producers"
},
- {
- "name": "Service status",
- "description": "API for monitoring of the service"
- },
{
"name": "Data consumer",
"description": "API for data consumers"
},
+ {
+ "name": "Service status",
+ "description": "API for monitoring of the service"
+ },
{
"name": "Actuator",
"description": "Monitor and interact",
servers:
- url: /
tags:
+- name: A1-EI (callbacks)
+- name: Data producer (callbacks)
+ description: API implemented by data producers
+- name: Data consumer
+- name: Data consumer (callbacks)
- name: A1-EI (registration)
description: Data consumer EI job registration
- name: A1-EI (callbacks)
description: Data consumer EI job status callbacks
+- name: Service status
+- name: A1-EI (registration)
+- name: Data producer (registration)
- name: Data producer (callbacks)
- description: API implemented by data producers
- name: Data producer (registration)
description: API for data producers
-- name: Service status
- description: API for monitoring of the service
- name: Data consumer
description: API for data consumers
+- name: Service status
+ description: API for monitoring of the service
- name: Actuator
description: Monitor and interact
externalDocs:
tags:
- Actuator
summary: Actuator web endpoint 'threaddump'
- operationId: handle_2_1_3
+ operationId: threaddump_4
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'loggers'
- operationId: handle_6
+ operationId: loggers_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'health-path'
- operationId: handle_12
+ operationId: health-path_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'metrics-requiredMetricName'
- operationId: handle_5
+ operationId: metrics-requiredMetricName_2
parameters:
- name: requiredMetricName
in: path
tags:
- Actuator
summary: Actuator web endpoint 'loggers-name'
- operationId: handle_7
+ operationId: loggers-name_4
parameters:
- name: name
in: path
tags:
- Actuator
summary: Actuator web endpoint 'loggers-name'
- operationId: handle_0
+ operationId: loggers-name_3
parameters:
- name: name
in: path
tags:
- Actuator
summary: Actuator web endpoint 'metrics'
- operationId: handle_4
+ operationId: metrics_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'info'
- operationId: handle_9
+ operationId: info_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'logfile'
- operationId: handle_8
+ operationId: logfile_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'health'
- operationId: handle_11
+ operationId: health_2
responses:
200:
description: OK
tags:
- Actuator
summary: Actuator web endpoint 'heapdump'
- operationId: handle_10
+ operationId: heapdump_2
responses:
200:
description: OK
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>2.5.3</version>
+ <version>2.6.2</version>
<relativePath />
</parent>
<groupId>org.o-ran-sc.nonrtric</groupId>
<spotless-maven-plugin.version>1.24.3</spotless-maven-plugin.version>
<swagger-codegen-maven-plugin.version>3.0.11</swagger-codegen-maven-plugin.version>
<docker-maven-plugin>0.30.0</docker-maven-plugin>
- <version.dmaap>1.1.11</version.dmaap>
- <javax.ws.rs-api.version>2.1.1</javax.ws.rs-api.version>
<sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
<jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version>
<exec.skip>true</exec.skip>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
- <version>1.5.4</version>
+ <version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<java>
<removeUnusedImports />
<importOrder>
- <order>com,java,javax,org</order>
+ <order>com,java,org</order>
</importOrder>
</java>
</configuration>
<system>JIRA</system>
<url>https://jira.o-ran-sc.org/</url>
</issueManagement>
-</project>
+</project>
\ No newline at end of file
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
-
import javax.net.ssl.KeyManagerFactory;
import org.oransc.ics.configuration.WebClientConfig;
private final AsyncRestClient restClient;
private final InfoJobs eiJobs;
- private final InfoProducers eiProducers;
@Autowired
- public A1eCallbacks(ApplicationConfig config, InfoJobs eiJobs, InfoProducers eiProducers) {
+ public A1eCallbacks(ApplicationConfig config, InfoJobs eiJobs) {
AsyncRestClientFactory restClientFactory = new AsyncRestClientFactory(config.getWebClientConfig());
this.restClient = restClientFactory.createRestClientUseHttpProxy("");
this.eiJobs = eiJobs;
- this.eiProducers = eiProducers;
}
- public Flux<String> notifyJobStatus(Collection<InfoType> eiTypes) {
+ public Flux<String> notifyJobStatus(Collection<InfoType> eiTypes, InfoProducers eiProducers) {
return Flux.fromIterable(eiTypes) //
.flatMap(eiType -> Flux.fromIterable(this.eiJobs.getJobsForType(eiType))) //
.filter(eiJob -> !eiJob.getJobStatusUrl().isEmpty()) //
- .filter(eiJob -> this.eiProducers.isJobEnabled(eiJob) != eiJob.isLastStatusReportedEnabled())
- .flatMap(this::noifyStatusToJobOwner);
+ .filter(eiJob -> eiProducers.isJobEnabled(eiJob) != eiJob.isLastStatusReportedEnabled())
+ .flatMap(eiJob -> noifyStatusToJobOwner(eiJob, eiProducers));
}
- private Mono<String> noifyStatusToJobOwner(InfoJob job) {
- boolean isJobEnabled = this.eiProducers.isJobEnabled(job);
+ private Mono<String> noifyStatusToJobOwner(InfoJob job, InfoProducers eiProducers) {
+ boolean isJobEnabled = eiProducers.isJobEnabled(job);
A1eEiJobStatus status = isJobEnabled ? new A1eEiJobStatus(A1eEiJobStatus.EiJobStatusValues.ENABLED)
: new A1eEiJobStatus(A1eEiJobStatus.EiJobStatusValues.DISABLED);
String body = gson.toJson(status);
producerCallbacks.startInfoJobs(producer, this.infoJobs) //
.collectList() //
- .flatMapMany(list -> consumerCallbacks.notifyJobStatus(producer.getInfoTypes())) //
+ .flatMapMany(list -> consumerCallbacks.notifyJobStatus(producer.getInfoTypes(), this)) //
.collectList() //
- .flatMapMany(list -> consumerCallbacks.notifyJobStatus(previousTypes)) //
+ .flatMapMany(list -> consumerCallbacks.notifyJobStatus(previousTypes, this)) //
.subscribe();
return producer;
this.logger.error("Bug, no producer found");
}
}
- this.consumerCallbacks.notifyJobStatus(producer.getInfoTypes()) //
+ this.consumerCallbacks.notifyJobStatus(producer.getInfoTypes(), this) //
.subscribe();
}
.filter(infoJob -> !producer.isJobEnabled(infoJob)) //
.flatMap(infoJob -> producerCallbacks.startInfoJob(producer, infoJob, Retry.max(1)), MAX_CONCURRENCY) //
.collectList() //
- .flatMapMany(startedJobs -> consumerCallbacks.notifyJobStatus(producer.getInfoTypes())) //
+ .flatMapMany(startedJobs -> consumerCallbacks.notifyJobStatus(producer.getInfoTypes(), infoProducers)) //
.collectList();
}