<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.metatype.annotations</artifactId>
+ </dependency>
<!-- Testing Dependencies -->
<dependency>
import org.opendaylight.transportpce.common.converter.JsonStringConverter;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.api.rev220221.Request;
import org.opendaylight.yang.gen.v1.gnpy.path.rev220615.Result;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component(configurationPid = "org.opendaylight.transportpce.pce")
public class GnpyConsumerImpl implements GnpyConsumer {
+ @ObjectClassDefinition
+ public @interface Configuration {
+ @AttributeDefinition
+ String url() default "http://127.0.0.1:8008";
+ @AttributeDefinition
+ String username() default "gnpy";
+ @AttributeDefinition
+ String password() default "gnpy";
+ }
+
private static final Logger LOG = LoggerFactory.getLogger(GnpyConsumerImpl.class);
private final GnpyResource api;
+ @Activate
+ public GnpyConsumerImpl(final Configuration configuration,
+ @Reference BindingDOMCodecServices bindingDOMCodecServices) {
+ this(configuration.url(), configuration.username(), configuration.password(), bindingDOMCodecServices);
+ }
+
public GnpyConsumerImpl(String baseUrl, String username, String password,
BindingDOMCodecServices bindingDOMCodecServices) {
JsonStringConverter<Request> gnpyRequestConverter = new JsonStringConverter<>(bindingDOMCodecServices);
Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
-->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
- <cm:property-placeholder persistent-id="org.opendaylight.transportpce.pce" update-strategy="reload">
- <cm:default-properties>
- <cm:property name="url" value="http://127.0.0.1:8008" />
- <cm:property name="username" value="gnpy" />
- <cm:property name="password" value="gnpy" />
- </cm:default-properties>
- </cm:property-placeholder>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<reference id="networkTransactionImpl" interface="org.opendaylight.transportpce.common.network.NetworkTransactionService" />
- <reference id="bindingDOMCodecServices" interface="org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices" />
- <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
<reference id="rpcService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
<reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
<reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping"/>
+ <reference id="gnpyConsumer" interface="org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumer"/>
<bean id="pceServiceImpl"
class="org.opendaylight.transportpce.pce.service.PathComputationServiceImpl"
<argument ref="portMapping" />
</bean>
- <bean id="gnpyConsumer"
- class="org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl">
- <argument value="${url}"/>
- <argument value="${username}"/>
- <argument value="${password}"/>
- <argument ref="bindingDOMCodecServices" />
- </bean>
-
<bean id="provider"
class="org.opendaylight.transportpce.pce.impl.PceProvider"
init-method="init" destroy-method="close">