private final Map<String, String> aaiHeaders;
/**
- * AAI client for consuming data.
+ * A{@literal &}AI client for consuming data from A{@literal &}AI.
*
- * @param aaiClientConfiguration - client config
+ * @param aaiClientConfiguration - A{@literal &}AI client config
*/
public AaiConsumerClient(AaiClientConfiguration aaiClientConfiguration) {
closeableHttpClient = new AaiClientImpl(aaiClientConfiguration).getAaiHttpClient();
}
/**
- * Function which call http client for getting object from AAI.
+ * Function which call http client for getting object from A{@literal &}AI.
*
* @param consumerDmaapModel - helper object for uri generation
* @return - status code of operation
private final String aaiUserName;
private final String aaiUserPassword;
-
+ /**
+ * A{@literal &}AI client for publishing data to A{@literal &}AI.
+ *
+ * @param aaiClientConfiguration - confiuration for A{@literal &}AI
+ */
public AaiProducerClient(AaiClientConfiguration aaiClientConfiguration) {
closeableHttpClient = new AaiClientImpl(aaiClientConfiguration).getAaiHttpClient();
aaiHost = aaiClientConfiguration.aaiHost();
this.scheduledTask = scheduledTask;
}
+ /**
+ * Function which have to stop tasks execution.
+ *
+ * @return response entity about status of cancellation operation
+ */
@ApiOperation(value = "Get response on stopping task execution")
public synchronized Mono<ResponseEntity<String>> getResponseFromCancellationOfTasks() {
scheduledFutureList.forEach(x -> x.cancel(false));
);
}
+ /**
+ * Function for starting scheduling PRH workflow.
+ *
+ * @return status of operation execution: true - started, false - not started
+ */
@PostConstruct
@ApiOperation(value = "Start task if possible")
public synchronized boolean tryToStartTask() {
private static final String SWAGGER_UI = "swagger-ui.html";
private static final String WEBJARS = "/webjars/**";
+ /**
+ * Swagger configuration function for hosting it next to spring http website.
+ * @return Docket
+ */
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
@Configuration
public class TomcatHttpConfig {
+ /**
+ * Class for setting up hosting PRH on http/https.
+ *
+ * @return ServletWebServerFactory
+ */
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
private final Logger logger = LoggerFactory.getLogger(this.getClass());
+ /**
+ * Endpoint for checking that PRH is alive.
+ *
+ * @return HTTP Status Code
+ */
@RequestMapping(value = "heartbeat", method = RequestMethod.GET)
@ApiOperation(value = "Returns liveness of PRH service")
@ApiResponses(value = {
private static final String PNF_VENDOR_NAME = "pnfVendorName";
private static final String PNF_SERIAL_NUMBER = "pnfSerialNumber";
+ /**
+ * Extract info from string and create @see {@link org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel}.
+ *
+ * @param monoMessage - results from DMaaP
+ * @return reactive DMaaPModel
+ */
public Mono<ConsumerDmaapModel> getJsonObject(Mono<String> monoMessage) {
return monoMessage
.flatMap(this::getJsonParserMessage)
private final DmaapPublisherTask dmaapProducerTask;
private final AaiProducerTask aaiProducerTask;
+ /**
+ * Constructor for tasks registration in PRHWorkflow.
+ *
+ * @param dmaapConsumerTask - fist task
+ * @param dmaapPublisherTask - third task
+ * @param aaiPublisherTask - second task
+ */
@Autowired
public ScheduledTasks(DmaapConsumerTask dmaapConsumerTask, DmaapPublisherTask dmaapPublisherTask,
AaiProducerTask aaiPublisherTask) {
this.aaiProducerTask = aaiPublisherTask;
}
+ /**
+ * Main function for scheduling prhWorkflow.
+ */
public void scheduleMainPrhEventTask() {
logger.trace("Execution of tasks was registered");
@Configuration
public class AaiConsumerTaskSpy {
+ /**
+ * Mocking bean for tests.
+ *
+ * @return A&AI ConsumerTask spy
+ */
@Bean
@Primary
public AaiConsumerTask registerSimpleAaiPublisherTask() {
@Configuration
public class AaiPublisherTaskSpy {
+ /**
+ * Mocking bean for tests.
+ *
+ * @return A&AI ProducerTask spy
+ */
@Bean
@Primary
public AaiProducerTask registerSimpleAaiPublisherTask() {
@Configuration
public class DmaapConsumerTaskSpy {
+ /**
+ * Mocking bean for tests.
+ *
+ * @return DMaaP ConsumerTask spy
+ */
@Bean
@Primary
public DmaapConsumerTask registerSimpleDmaapConsumerTask() {
@Configuration
public class DmaapProducerTaskSpy {
+ /**
+ * Mocking bean for tests.
+ *
+ * @return DMaaP PublisherTask spy
+ */
@Bean
@Primary
public DmaapPublisherTask registerSimpleDmaapPublisherTask() {
private CommonFunctions() {
}
+ /**
+ * Method for serialization object by GSON.
+ *
+ * @param consumerDmaapModel - object which will be serialized
+ * @return string from serialization
+ */
public static String createJsonBody(ConsumerDmaapModel consumerDmaapModel) {
GsonBuilder gsonBuilder = new GsonBuilder();
ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory);
private final String ipv4;
private final String ipv6;
+ /**
+ * Class for testing serialization of ConsumerDmaapModel.
+ */
public ConsumerDmaapModelForUnitTest() {
this.pnfName = "NOKnhfsadhff";
this.ipv4 = "256.22.33.155";
private String dmaaPUserName;
private String dmaaPUserPassword;
+ /**
+ * Creating DMaaPReactiveWebClient passing to them basic DMaaPConfig.
+ *
+ * @param dmaapCustomConfig - configuration object
+ * @return DMaaPReactiveWebClient
+ */
public DMaaPReactiveWebClient fromConfiguration(DmaapCustomConfig dmaapCustomConfig) {
this.dmaaPUserName = dmaapCustomConfig.dmaapUserName();
this.dmaaPUserPassword = dmaapCustomConfig.dmaapUserPassword();
return this;
}
+ /**
+ * Construct Reactive WebClient with appropriate settings.
+ *
+ * @return WebClient
+ */
public WebClient build() {
return WebClient.builder()
.defaultHeader(HttpHeaders.CONTENT_TYPE, dmaaPContentType)
private final String consumerGroup;
private final String consumerId;
+ /**
+ * Constructor of DMaaPConsumerReactiveHttpClient.
+ *
+ * @param consumerConfiguration - DMaaP consumer configuration object
+ */
public DMaaPConsumerReactiveHttpClient(DmaapConsumerConfiguration consumerConfiguration) {
this.dmaapHostName = consumerConfiguration.dmaapHostName();
this.dmaapProtocol = consumerConfiguration.dmaapProtocol();
this.consumerId = consumerConfiguration.consumerId();
}
+ /**
+ * Function for calling DMaaP HTTP consumer - consuming messages from Kafka/DMaaP from topic.
+ *
+ * @return reactive response from DMaaP in string format
+ */
public Mono<String> getDMaaPConsumerResponse() {
try {
return webClient
private final String dmaapProtocol;
private final String dmaapTopicName;
+ /**
+ * Constructor DMaaPProducerReactiveHttpClient.
+ *
+ * @param dmaapPublisherConfiguration - DMaaP producer configuration object
+ */
public DMaaPProducerReactiveHttpClient(DmaapPublisherConfiguration dmaapPublisherConfiguration) {
this.dmaapHostName = dmaapPublisherConfiguration.dmaapHostName();
this.dmaapProtocol = dmaapPublisherConfiguration.dmaapProtocol();
this.dmaapTopicName = dmaapPublisherConfiguration.dmaapTopicName();
}
+ /**
+ * Function for calling DMaaP HTTP producer - post request to DMaaP.
+ *
+ * @param consumerDmaapModelMono - object which will be sended to DMaaP
+ * @return status code of operation
+ */
public Mono<String> getDMaaPProducerResponse(Mono<ConsumerDmaapModel> consumerDmaapModelMono) {
try {
return webClient