import org.springframework.context.annotation.Configuration;
@Configuration
-@EnableConfigurationProperties
+@EnableConfigurationProperties(CbsProperties.class)
public class CbsBootstrapConfiguration {
@Bean
import java.util.Map;
import java.util.UUID;
-import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.providers.CloudConfigurationClient;
import org.slf4j.MDC;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler;
* @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
*/
@SpringBootApplication(exclude = {JacksonAutoConfiguration.class})
-@Configuration
@EnableScheduling
@EnableConfigurationProperties
public class MainApp {
return new ConcurrentTaskScheduler();
}
-
- @Bean
- CloudConfigurationClient getCloudConfigurationClient(){
- return new CloudConfigurationClient();
- }
-
}
}
MessageRouterPublishRequest getMessageRouterPublishRequest() {
- RawDataStream<JsonObject> sink = DataStreams.namedSinks(jsonObject).find(streamWithName(PNF_READY)).get();
- MessageRouterSink parsedSink = StreamFromGsonParsers.messageRouterSinkParser().unsafeParse(sink);
-
- return ImmutableMessageRouterPublishRequest.builder()
- .contentType(jsonObject.get("dmaap.dmaapProducerConfiguration.dmaapContentType").getAsString())
- .sinkDefinition(parsedSink)
- .build();
+ return getMessageRouterPublishRequest(PNF_READY);
}
MessageRouterPublishRequest getMessageRouterUpdatePublishRequest() {
- RawDataStream<JsonObject> sink = DataStreams.namedSinks(jsonObject).find(streamWithName(PNF_UPDATE)).get();
+ return getMessageRouterPublishRequest(PNF_UPDATE);
+ }
+
+ private MessageRouterPublishRequest getMessageRouterPublishRequest(String streamName) {
+ RawDataStream<JsonObject> sink = DataStreams.namedSinks(jsonObject).find(streamWithName(streamName)).get();
MessageRouterSink parsedSink = StreamFromGsonParsers.messageRouterSinkParser().unsafeParse(sink);
return ImmutableMessageRouterPublishRequest.builder()
- .contentType(jsonObject.get("dmaap.dmaapProducerConfiguration.dmaapContentType").getAsString())
.sinkDefinition(parsedSink)
.build();
}
private Resource gitInfo;
- @EventListener
- public void onApplicationStartedEvent(ApplicationStartedEvent applicationStartedEvent) throws IOException {
+ @EventListener(ApplicationStartedEvent.class)
+ public void onApplicationStarted() throws IOException {
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("Git info={}", StreamUtils.copyToString(gitInfo.getInputStream(), Charset.defaultCharset()));
}
+++ /dev/null
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 NOKIA 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.dcaegen2.services.prh.exceptions;
-
-/**
- * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 8/10/18
- */
-public class EnvironmentLoaderException extends Exception {
-
- public EnvironmentLoaderException(String message) {
- super(message);
- }
-}
package org.onap.dcaegen2.services.prh.tasks;
-import org.onap.dcaegen2.services.prh.exceptions.AaiNotFoundException;
import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import reactor.core.publisher.Mono;
-import javax.net.ssl.SSLException;
-
-
-/**
- * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
- */
-public abstract class AaiProducerTask {
-
- abstract Mono<ConsumerDmaapModel> publish(ConsumerDmaapModel message) throws AaiNotFoundException;
-
- protected abstract Mono<ConsumerDmaapModel> execute(ConsumerDmaapModel consumerDmaapModel)
- throws PrhTaskException, SSLException;
+@FunctionalInterface
+interface AaiProducerTask {
+ Mono<ConsumerDmaapModel> execute(ConsumerDmaapModel consumerDmaapModel) throws PrhTaskException;
}
* @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
*/
@Component
-public class AaiProducerTaskImpl extends AaiProducerTask {
+public class AaiProducerTaskImpl implements AaiProducerTask {
private static final Logger LOGGER = LoggerFactory.getLogger(AaiProducerTaskImpl.class);
this.aaiHttpPatchClient = aaiHttpPatchClient;
}
- @Override
- Mono<ConsumerDmaapModel> publish(ConsumerDmaapModel consumerDmaapModel) {
+ private Mono<ConsumerDmaapModel> publish(ConsumerDmaapModel consumerDmaapModel) {
Mono<HttpResponse> response = aaiHttpPatchClient.getAaiResponse(consumerDmaapModel);
return response.flatMap(r -> {
if (HttpUtils.isSuccessfulResponseCode(r.statusCode())) {
}
@Override
- protected Mono<ConsumerDmaapModel> execute(ConsumerDmaapModel consumerDmaapModel) throws PrhTaskException {
+ public Mono<ConsumerDmaapModel> execute(ConsumerDmaapModel consumerDmaapModel) throws PrhTaskException {
if (consumerDmaapModel == null) {
throw new DmaapNotFoundException("Invoked null object to DMaaP task");
}
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-import javax.net.ssl.SSLException;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
: aaiProducerTask
.execute(state.dmaapModel)
.map(x -> state);
- } catch (PrhTaskException | SSLException e) {
+ } catch (PrhTaskException e) {
LOGGER.warn("AAIProducerTask exception has been registered: ", e);
return Mono.error(e);
}
import org.onap.dcaegen2.services.sdk.model.streams.dmaap.ImmutableMessageRouterSink;
import org.onap.dcaegen2.services.sdk.model.streams.dmaap.ImmutableMessageRouterSource;
import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.ImmutableAaiClientConfiguration;
+import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.ContentType;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.ImmutableMessageRouterPublishRequest;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.ImmutableMessageRouterSubscribeRequest;
public static ImmutableMessageRouterPublishRequest createDefaultMessageRouterPublishRequest() {
return ImmutableMessageRouterPublishRequest.builder()
- .contentType("application/json")
+ .contentType(ContentType.APPLICATION_JSON)
.sinkDefinition(ImmutableMessageRouterSink.builder()
.name("the topic")
.topicUrl(String.format("http://%s:%d/events/TOPIC", "www", 1234))
import org.onap.dcaegen2.services.prh.TestAppConfiguration;
import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration;
import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.ImmutableAaiClientConfiguration;
+import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.ContentType;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishRequest;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterSubscribeRequest;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.config.MessageRouterPublisherConfig;
MessageRouterPublishRequest messageRouterPublishRequest = consulConfigurationParser.getMessageRouterPublishRequest();
// then
- assertThat(messageRouterPublishRequest.contentType()).isEqualTo("application/json");
+ assertThat(messageRouterPublishRequest.contentType()).isEqualTo(ContentType.APPLICATION_JSON);
assertThat(messageRouterPublishRequest.sinkDefinition().topicUrl()).isEqualTo("http://dmaap-mr:2222/events/unauthenticated.PNF_READY");
}
+ @Test
+ void shouldCreateMessageRouterUpdatePublishConfigurationCorrectly() {
+ // when
+ MessageRouterPublishRequest messageRouterPublishRequest = consulConfigurationParser.getMessageRouterUpdatePublishRequest();
+
+ // then
+ assertThat(messageRouterPublishRequest.contentType()).isEqualTo(ContentType.APPLICATION_JSON);
+ assertThat(messageRouterPublishRequest.sinkDefinition().topicUrl()).isEqualTo("http://dmaap-mr:2222/events/unauthenticated.PNF_UPDATE");
+ }
+
@Test
void whenDmaapCertAuthIsDisabled_MessageRouterPublisherConfigSecurityKeysShouldBeIgnored() {
assumeFalse(correctConfig.getAsJsonObject("config").get("security.enableDmaapCertAuth").getAsBoolean());
return ImmutableMessageRouterPublishRequest.builder()
.sinkDefinition(sinkDefinition)
- .contentType("application/json")
.build();
}
}
\ No newline at end of file
"config":{
"dmaap.dmaapConsumerConfiguration.dmaapUserName":"admin",
"dmaap.dmaapConsumerConfiguration.dmaapUserPassword":"admin",
- "dmaap.dmaapConsumerConfiguration.dmaapContentType":"application/json",
"dmaap.dmaapConsumerConfiguration.consumerId":"c12",
"dmaap.dmaapConsumerConfiguration.consumerGroup":"OpenDCAE-c12",
"dmaap.dmaapConsumerConfiguration.timeoutMs":-1,
"dmaap.dmaapProducerConfiguration.dmaapUserName":"admin",
"dmaap.dmaapProducerConfiguration.dmaapUserPassword":"admin",
- "dmaap.dmaapProducerConfiguration.dmaapContentType":"application/json",
"dmaap.dmaapUpdateProducerConfiguration.dmaapUserName":"admin",
"dmaap.dmaapUpdateProducerConfiguration.dmaapUserPassword":"admin",
- "dmaap.dmaapUpdateProducerConfiguration.dmaapContentType":"application/json",
"aai.aaiClientConfiguration.pnfUrl": "https://aai.onap.svc.cluster.local:8443/aai/v12/network/pnfs/pnf",
"aai.aaiClientConfiguration.aaiUserName":"AAI",
"aai.aaiClientConfiguration.aaiUserPassword":"AAI",