/*-
* ========================LICENSE_START=================================
- * ORAN-OSC
+ * O-RAN-SC
* %%
* Copyright (C) 2019 AT&T Intellectual Property and Nokia
* %%
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
-import org.springframework.util.Assert;
import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.DefaultUriBuilderFactory;
/**
- * Creates an A1 mediator client as a bean to be managed by the Spring container.
+ * Creates an A1 mediator client as a bean to be managed by the Spring
+ * container.
*/
@Configuration
-@Profile("!mock")
+@Profile("!test")
public class A1MediatorConfiguration {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
// Populated by the autowired constructor
- private final String a1medBasepath;
+ private final String a1medUrl;
@Autowired
- public A1MediatorConfiguration(@Value("${a1med.basepath}") final String a1medBasepath) {
- Assert.notNull(a1medBasepath, "base path must not be null");
- logger.info("Configuring A1 Mediator at base path {}", a1medBasepath);
- this.a1medBasepath = a1medBasepath;
+ public A1MediatorConfiguration(@Value("${a1med.url.prefix}") final String urlPrefix, //
+ @Value("${a1med.url.suffix}") final String urlSuffix) {
+ logger.debug("ctor prefix '{}' suffix '{}'", urlPrefix, urlSuffix);
+ a1medUrl = new DefaultUriBuilderFactory(urlPrefix.trim()).builder().path(urlSuffix.trim()).build().normalize()
+ .toString();
+ logger.info("Configuring A1 Mediator at URL {}", a1medUrl);
}
private ApiClient apiClient() {
ApiClient apiClient = new ApiClient(new RestTemplate());
- apiClient.setBasePath(a1medBasepath);
+ apiClient.setBasePath(a1medUrl);
return apiClient;
}
@Bean
+ // The bean (method) name must be globally unique
public A1MediatorApi a1MediatorApi() {
return new A1MediatorApi(apiClient());
}