package org.oransc.policyagent;
import com.fasterxml.jackson.databind.ObjectMapper;
+
+import org.apache.catalina.connector.Connector;
import org.oransc.policyagent.clients.A1ClientFactory;
import org.oransc.policyagent.configuration.ApplicationConfig;
import org.oransc.policyagent.repository.Policies;
import org.oransc.policyagent.repository.PolicyTypes;
import org.oransc.policyagent.repository.Rics;
import org.oransc.policyagent.repository.Services;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
class BeanFactory {
+ private final ApplicationConfig applicationConfig = new ApplicationConfig();
+
+ @Value("${server.http-port}")
+ private int httpPort = 0;
+
@Bean
public Policies getPolicies() {
return new Policies();
@Bean
public ApplicationConfig getApplicationConfig() {
- return new ApplicationConfig();
+ return this.applicationConfig;
}
@Bean
@Bean
A1ClientFactory getA1ClientFactory() {
- return new A1ClientFactory();
+ return new A1ClientFactory(this.applicationConfig);
}
@Bean
public ObjectMapper mapper() {
- return new ObjectMapper();
+ return new ObjectMapper();
+ }
+
+ @Bean
+ public ServletWebServerFactory servletContainer() {
+ TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
+ if (httpPort > 0) {
+ tomcat.addAdditionalTomcatConnectors(getHttpConnector(httpPort));
+ }
+ return tomcat;
+ }
+
+ private static Connector getHttpConnector(int httpPort) {
+ Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
+ connector.setScheme("http");
+ connector.setPort(httpPort);
+ connector.setSecure(false);
+ return connector;
}
}