aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/a1pesimulator/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/a1pesimulator/configuration')
-rw-r--r--src/main/java/org/onap/a1pesimulator/configuration/SwaggerConfig.java44
-rw-r--r--src/main/java/org/onap/a1pesimulator/configuration/VesBrokerConfiguration.java58
-rw-r--r--src/main/java/org/onap/a1pesimulator/configuration/VesPmThreadPoolTaskSchedulerConfig.java37
-rw-r--r--src/main/java/org/onap/a1pesimulator/configuration/WebConfig.java27
-rw-r--r--src/main/java/org/onap/a1pesimulator/configuration/WebSocketConfig.java35
5 files changed, 201 insertions, 0 deletions
diff --git a/src/main/java/org/onap/a1pesimulator/configuration/SwaggerConfig.java b/src/main/java/org/onap/a1pesimulator/configuration/SwaggerConfig.java
new file mode 100644
index 0000000..f534153
--- /dev/null
+++ b/src/main/java/org/onap/a1pesimulator/configuration/SwaggerConfig.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2021 Samsung Electronics
+ * 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
+ */
+
+package org.onap.a1pesimulator.configuration;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+
+ @Bean
+ public Docket api() {
+ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+ .apis(RequestHandlerSelectors.basePackage("org.onap.a1pesimulator")).paths(PathSelectors.any())
+ .build();
+ }
+
+ public ApiInfo apiInfo() {
+ final ApiInfoBuilder builder = new ApiInfoBuilder();
+ builder.title("A1 Policy Enforcement Simulator REST APIs")
+ .description("A1 Policy Enforcement Simulator REST interfaces (Policy Enforcement PoC)")
+ .version("1.0.0").license("Copyright (C) 2021 Samsung Electronics");
+ return builder.build();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/org/onap/a1pesimulator/configuration/VesBrokerConfiguration.java b/src/main/java/org/onap/a1pesimulator/configuration/VesBrokerConfiguration.java
new file mode 100644
index 0000000..4003515
--- /dev/null
+++ b/src/main/java/org/onap/a1pesimulator/configuration/VesBrokerConfiguration.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2021 Samsung Electronics
+ * 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
+ */
+
+package org.onap.a1pesimulator.configuration;
+
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.X509Certificate;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.web.client.RestTemplate;
+
+@Configuration
+public class VesBrokerConfiguration {
+
+ @Bean
+ public RestTemplate restTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
+ TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return new X509Certificate[0];
+ }
+
+ public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
+ }
+
+ public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
+ }
+ }};
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
+ CloseableHttpClient httpClient =
+ HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
+ .build();
+ HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
+
+ requestFactory.setHttpClient(httpClient);
+ return new RestTemplate(requestFactory);
+ }
+
+}
diff --git a/src/main/java/org/onap/a1pesimulator/configuration/VesPmThreadPoolTaskSchedulerConfig.java b/src/main/java/org/onap/a1pesimulator/configuration/VesPmThreadPoolTaskSchedulerConfig.java
new file mode 100644
index 0000000..9105544
--- /dev/null
+++ b/src/main/java/org/onap/a1pesimulator/configuration/VesPmThreadPoolTaskSchedulerConfig.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 Samsung Electronics
+ * 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
+ */
+
+package org.onap.a1pesimulator.configuration;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
+
+@Configuration
+public class VesPmThreadPoolTaskSchedulerConfig {
+
+ private Integer poolSize;
+
+ public VesPmThreadPoolTaskSchedulerConfig(@Value("${ves.pm.maxPoolSize}") Integer poolSize) {
+ this.poolSize = poolSize;
+ }
+
+ @Bean
+ public ThreadPoolTaskScheduler vesPmThreadPoolTaskScheduler() {
+ ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
+ threadPoolTaskScheduler.setPoolSize(poolSize);
+ threadPoolTaskScheduler.setThreadNamePrefix("VesPmThreadPoolTaskScheduler");
+ return threadPoolTaskScheduler;
+ }
+}
diff --git a/src/main/java/org/onap/a1pesimulator/configuration/WebConfig.java b/src/main/java/org/onap/a1pesimulator/configuration/WebConfig.java
new file mode 100644
index 0000000..166361e
--- /dev/null
+++ b/src/main/java/org/onap/a1pesimulator/configuration/WebConfig.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2021 Samsung Electronics
+ * 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
+ */
+
+package org.onap.a1pesimulator.configuration;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class WebConfig implements WebMvcConfigurer {
+
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**");
+ }
+}
diff --git a/src/main/java/org/onap/a1pesimulator/configuration/WebSocketConfig.java b/src/main/java/org/onap/a1pesimulator/configuration/WebSocketConfig.java
new file mode 100644
index 0000000..8cf24bc
--- /dev/null
+++ b/src/main/java/org/onap/a1pesimulator/configuration/WebSocketConfig.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 Samsung Electronics
+ * 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
+ */
+
+package org.onap.a1pesimulator.configuration;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.simp.config.MessageBrokerRegistry;
+import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
+import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
+import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
+
+@Configuration
+@EnableWebSocketMessageBroker
+public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
+
+ @Override
+ public void registerStompEndpoints(StompEndpointRegistry registry) {
+ registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
+ }
+
+ @Override
+ public void configureMessageBroker(MessageBrokerRegistry config) {
+ config.enableSimpleBroker("/topic", "/queue");
+ }
+} \ No newline at end of file