Ditch blueprint-maven-plugin 07/96907/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Jul 2021 17:21:40 +0000 (19:21 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Jul 2021 17:29:38 +0000 (19:29 +0200)
We have two artifacts using a combination of generated and hand-written
blueprint containers. This makes reasoning about the actual wiring
rather hard. Inline the generated XML into the hand-written one, so that
we can untangle it more easily.

JIRA: NETCONF-749
Change-Id: I380600215a0fadf438b9a44e6ea4465f15d63fbf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 files changed:
restconf/restconf-nb-bierman02/pom.xml
restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/BrokerFacade.java
restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/ControllerContext.java
restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/JSONRestconfServiceImpl.java
restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/web/WebInitializer.java
restconf/restconf-nb-bierman02/src/main/resources/OSGI-INF/blueprint/restconf-config.xml
restconf/restconf-nb-rfc8040/pom.xml
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/DataStreamApplication.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/web/WebInitializer.java
restconf/restconf-nb-rfc8040/src/main/resources/OSGI-INF/blueprint/restconf-bp.xml

index 12908e6da857abda0526d0e40b323ecabb6934cf..7d7f0b396ec0799a6923a971d065ffd675bc7af9 100644 (file)
       <artifactId>javax.inject</artifactId>
       <optional>true</optional>
     </dependency>
-    <dependency>
-      <groupId>org.apache.aries.blueprint</groupId>
-      <artifactId>blueprint-maven-plugin-annotation</artifactId>
-      <optional>true</optional>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf</groupId>
       <artifactId>restconf-common-models</artifactId>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.apache.aries.blueprint</groupId>
-        <artifactId>blueprint-maven-plugin</artifactId>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
index 9ba30e5da870fff871ace01af66294789d3dc834..946a078ccf58a9181113531e6b53abf6d839fee0 100644 (file)
@@ -31,7 +31,6 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import javax.ws.rs.core.Response.Status;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
@@ -110,8 +109,8 @@ public class BrokerFacade implements Closeable {
     private volatile DOMRpcService rpcService;
 
     @Inject
-    public BrokerFacade(@Reference final DOMRpcService rpcService, @Reference final DOMDataBroker domDataBroker,
-            @Reference final DOMNotificationService domNotification, final ControllerContext controllerContext) {
+    public BrokerFacade(final DOMRpcService rpcService, final DOMDataBroker domDataBroker,
+            final DOMNotificationService domNotification, final ControllerContext controllerContext) {
         this.rpcService = requireNonNull(rpcService);
         this.domDataBroker = requireNonNull(domDataBroker);
         this.domNotification = requireNonNull(domNotification);
index ee34235a29fd7170754886cfb5cdf3ed9b9c6947..d0b9ec9fbff59a03ffaea820576a53ac69393771 100644 (file)
@@ -35,7 +35,6 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import javax.ws.rs.core.Response.Status;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.mdsal.dom.api.DOMMountPoint;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
@@ -103,8 +102,8 @@ public final class ControllerContext implements EffectiveModelContextListener, C
     private volatile DataNormalizer dataNormalizer;
 
     @Inject
-    public ControllerContext(final @Reference DOMSchemaService schemaService,
-            final @Reference DOMMountPointService mountService, final @Reference DOMSchemaService domSchemaService) {
+    public ControllerContext(final DOMSchemaService schemaService, final DOMMountPointService mountService,
+            final DOMSchemaService domSchemaService) {
         this.mountService = mountService;
         this.yangTextSourceProvider = domSchemaService.getExtensions().getInstance(DOMYangTextSourceProvider.class);
 
index 588bb808947838e03b8512fe7c088a1bf90dec6b..bb2b25d33028258421043a854ff777e91ff82dc9 100644 (file)
@@ -24,7 +24,6 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedHashMap;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriInfo;
-import org.apache.aries.blueprint.annotation.service.Service;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.netconf.sal.rest.api.RestconfService;
 import org.opendaylight.netconf.sal.rest.impl.JsonNormalizedNodeBodyReader;
@@ -54,7 +53,6 @@ import org.slf4j.LoggerFactory;
  */
 @Singleton
 @Deprecated
-@Service(classes = JSONRestconfService.class)
 public class JSONRestconfServiceImpl implements JSONRestconfService {
     private static final Logger LOG = LoggerFactory.getLogger(JSONRestconfServiceImpl.class);
 
index 112cec4229febe7a4ae86ab331946d92eee5ddda..d17c485998eb77655e034d1d57b93405352933cd 100644 (file)
@@ -11,7 +11,6 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import javax.servlet.ServletException;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.aaa.filterchain.configuration.CustomFilterAdapterConfiguration;
 import org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter;
 import org.opendaylight.aaa.web.FilterDetails;
@@ -35,9 +34,9 @@ public class WebInitializer {
     private final WebContextRegistration registration;
 
     @Inject
-    public WebInitializer(final @Reference WebServer webServer, final @Reference WebContextSecurer webContextSecurer,
-            final @Reference ServletSupport servletSupport, final RestconfApplication webApp,
-            final @Reference CustomFilterAdapterConfiguration customFilterAdapterConfig) throws ServletException {
+    public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer,
+            final ServletSupport servletSupport, final RestconfApplication webApp,
+            final CustomFilterAdapterConfiguration customFilterAdapterConfig) throws ServletException {
 
         WebContextBuilder webContextBuilder = WebContext.builder().contextPath("restconf").supportsSessions(false)
                 .addServlet(ServletDetails.builder().servlet(servletSupport.createHttpServletBuilder(webApp).build())
index 13e0f9e382d3ed054414c2ce86fd4de238bf96e6..ab235e7c303b8c6986c1312c906f0ae013766b63 100644 (file)
     <argument ref="webSocketAddress"/>
     <argument ref="webSocketPort"/>
   </bean>
+
+  <bean id="brokerFacade" class="org.opendaylight.netconf.sal.restconf.impl.BrokerFacade" destroy-method="close">
+    <argument ref="dOMRpcService"/>
+    <argument ref="dOMDataBroker"/>
+    <argument ref="dOMNotificationService"/>
+    <argument ref="controllerContext"/>
+  </bean>
+  <bean id="controllerContext" class="org.opendaylight.netconf.sal.restconf.impl.ControllerContext" destroy-method="close">
+    <argument ref="dOMSchemaService"/>
+    <argument ref="dOMMountPointService"/>
+    <argument ref="dOMSchemaService"/>
+  </bean>
+  <bean id="jSONRestconfServiceImpl" class="org.opendaylight.netconf.sal.restconf.impl.JSONRestconfServiceImpl">
+    <argument ref="controllerContext"/>
+    <argument ref="restconfImpl"/>
+  </bean>
+  <bean id="restconfApplication" class="org.opendaylight.netconf.sal.rest.impl.RestconfApplication">
+    <argument ref="controllerContext"/>
+    <argument ref="statisticsRestconfServiceWrapper"/>
+  </bean>
+  <bean id="restconfImpl" class="org.opendaylight.netconf.sal.restconf.impl.RestconfImpl">
+    <argument ref="brokerFacade"/>
+    <argument ref="controllerContext"/>
+  </bean>
+  <bean id="statisticsRestconfServiceWrapper" class="org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper">
+    <argument ref="restconfImpl"/>
+  </bean>
+  <bean id="webInitializer" class="org.opendaylight.netconf.sal.restconf.web.WebInitializer" destroy-method="close">
+    <argument ref="webServer"/>
+    <argument ref="webContextSecurer"/>
+    <argument ref="servletSupport"/>
+    <argument ref="restconfApplication"/>
+    <argument ref="customFilterAdapterConfiguration"/>
+  </bean>
+
+  <reference id="customFilterAdapterConfiguration" interface="org.opendaylight.aaa.filterchain.configuration.CustomFilterAdapterConfiguration"/>
+  <reference id="webContextSecurer" interface="org.opendaylight.aaa.web.WebContextSecurer"/>
+  <reference id="webServer" interface="org.opendaylight.aaa.web.WebServer"/>
+  <reference id="servletSupport" interface="org.opendaylight.aaa.web.servlet.ServletSupport"/>
+  <reference id="dOMDataBroker" interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"/>
+  <reference id="dOMMountPointService" interface="org.opendaylight.mdsal.dom.api.DOMMountPointService"/>
+  <reference id="dOMNotificationService" interface="org.opendaylight.mdsal.dom.api.DOMNotificationService"/>
+  <reference id="dOMRpcService" interface="org.opendaylight.mdsal.dom.api.DOMRpcService"/>
+  <reference id="dOMSchemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService"/>
+  <service ref="jSONRestconfServiceImpl" interface="org.opendaylight.netconf.sal.restconf.api.JSONRestconfService"/>
 </blueprint>
index b8ac2c24f45fe23e0f9ca1eb9d5f6cd519994977..585fbde5e75c9719eb8009dfe8ae3a94ac475b9d 100644 (file)
       <artifactId>javax.inject</artifactId>
       <optional>true</optional>
     </dependency>
-    <dependency>
-      <groupId>org.apache.aries.blueprint</groupId>
-      <artifactId>blueprint-maven-plugin-annotation</artifactId>
-      <optional>true</optional>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf</groupId>
       <artifactId>restconf-common-models</artifactId>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.apache.aries.blueprint</groupId>
-        <artifactId>blueprint-maven-plugin</artifactId>
-        <configuration>
-          <scanPaths>
-            <!-- FIXME: we *really* should be in org.opendaylight.netconf ! -->
-            <scanPath>org.opendaylight.restconf</scanPath>
-          </scanPaths>
-        </configuration>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
index bdbb98db40cf73a9a3d4e841e872273ac95219c5..deec9d9375e07c1454c78493363eced9aa76e875 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.restconf.nb.rfc8040;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler;
 import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfDataStreamService;
@@ -22,8 +21,7 @@ import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfDataStrea
 public class DataStreamApplication extends AbstractRestconfApplication {
     @Inject
     public DataStreamApplication(final SchemaContextHandler schemaContextHandler,
-            @Reference final DOMMountPointService mountPointService,
-            final RestconfDataStreamService dataStreamService) {
+            final DOMMountPointService mountPointService, final RestconfDataStreamService dataStreamService) {
         super(schemaContextHandler, mountPointService, List.of(dataStreamService));
     }
 }
index 1116992aa967ec34f0e6ca27c3f507bc73330184..a1ca028d31cbf979714d06fee0952f86eb3a83c8 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.restconf.nb.rfc8040;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.mdsal.dom.api.DOMActionService;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
@@ -49,10 +48,10 @@ public class RestconfApplication extends AbstractRestconfApplication {
 
     @Inject
     public RestconfApplication(final SchemaContextHandler schemaContextHandler,
-            @Reference final DOMMountPointService mountPointService, @Reference final DOMDataBroker dataBroker,
-            @Reference final DOMRpcService rpcService, @Reference final DOMActionService actionService,
-            @Reference final DOMNotificationService notificationService,
-            @Reference final DOMSchemaService domSchemaService, final Configuration configuration) {
+            final DOMMountPointService mountPointService, final DOMDataBroker dataBroker,
+            final DOMRpcService rpcService, final DOMActionService actionService,
+            final DOMNotificationService notificationService,
+            final DOMSchemaService domSchemaService, final Configuration configuration) {
         this(schemaContextHandler, mountPointService,
             new RestconfStreamsSubscriptionServiceImpl(dataBroker, notificationService, schemaContextHandler,
                 configuration),
index 8078817e39d9bf9f632b99d8ba80c841c5f6e107..a9b3b367d60be8b3b588767b0e2a5d9c0a539bb6 100644 (file)
@@ -20,7 +20,6 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
@@ -92,8 +91,7 @@ public class SchemaContextHandler implements EffectiveModelContextListener, Auto
     private volatile EffectiveModelContext schemaContext;
 
     @Inject
-    public SchemaContextHandler(@Reference final DOMDataBroker domDataBroker,
-            @Reference final DOMSchemaService domSchemaService) {
+    public SchemaContextHandler(final DOMDataBroker domDataBroker, final DOMSchemaService domSchemaService) {
         this.domDataBroker = requireNonNull(domDataBroker);
         this.domSchemaService = requireNonNull(domSchemaService);
     }
index 6fe45f35ac4daf7f42766d6b618432f731d4584c..c7f32e3972ddc6641d59d01b86f4c8d47be47fd8 100644 (file)
@@ -12,7 +12,6 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import javax.servlet.ServletException;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.aaa.filterchain.configuration.CustomFilterAdapterConfiguration;
 import org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter;
 import org.opendaylight.aaa.web.FilterDetails;
@@ -40,10 +39,10 @@ public class WebInitializer {
     private final WebContextRegistration registration;
 
     @Inject
-    public WebInitializer(@Reference final WebServer webServer, @Reference final WebContextSecurer webContextSecurer,
-            @Reference final ServletSupport servletSupport, final RestconfApplication webApp,
+    public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer,
+            final ServletSupport servletSupport, final RestconfApplication webApp,
             final DataStreamApplication webAppNotif,
-            @Reference final CustomFilterAdapterConfiguration customFilterAdapterConfig,
+            final CustomFilterAdapterConfiguration customFilterAdapterConfig,
             final WebSocketInitializer webSocketServlet) throws ServletException {
         WebContextBuilder webContextBuilder = WebContext.builder()
             .contextPath("/")
index 8446ebcec9acaa58deadd5ffd99b9f14833637f6..8929b4c333c43890756639513949e1d8b41fc9c0 100644 (file)
     <argument value="${heartbeat-interval}"/>
     <argument value="${use-sse}" />
   </bean>
+
+  <bean id="dataStreamApplication" class="org.opendaylight.restconf.nb.rfc8040.DataStreamApplication">
+    <argument ref="schemaContextHandler"/>
+    <argument ref="dOMMountPointService"/>
+    <argument ref="restconfDataStreamServiceImpl"/>
+  </bean>
+  <bean id="restconfApplication" class="org.opendaylight.restconf.nb.rfc8040.RestconfApplication">
+    <argument ref="schemaContextHandler"/>
+    <argument ref="dOMMountPointService"/>
+    <argument ref="dOMDataBroker"/>
+    <argument ref="dOMRpcService"/>
+    <argument ref="dOMActionService"/>
+    <argument ref="dOMNotificationService"/>
+    <argument ref="dOMSchemaService"/>
+    <argument ref="configuration"/>
+  </bean>
+  <bean id="restconfDataStreamServiceImpl" class="org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataStreamServiceImpl">
+    <argument ref="scheduledThreadPool"/>
+    <argument ref="configuration"/>
+  </bean>
+  <bean id="schemaContextHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler" init-method="init" destroy-method="close">
+    <argument ref="dOMDataBroker"/>
+    <argument ref="dOMSchemaService"/>
+  </bean>
+  <bean id="webInitializer" class="org.opendaylight.restconf.nb.rfc8040.web.WebInitializer" destroy-method="close">
+    <argument ref="webServer"/>
+    <argument ref="webContextSecurer"/>
+    <argument ref="servletSupport"/>
+    <argument ref="restconfApplication"/>
+    <argument ref="dataStreamApplication"/>
+    <argument ref="customFilterAdapterConfiguration"/>
+    <argument ref="webSocketInitializer"/>
+  </bean>
+  <bean id="webSocketInitializer" class="org.opendaylight.restconf.nb.rfc8040.streams.WebSocketInitializer">
+    <argument ref="scheduledThreadPool"/>
+    <argument ref="configuration"/>
+  </bean>
+  <reference id="customFilterAdapterConfiguration" interface="org.opendaylight.aaa.filterchain.configuration.CustomFilterAdapterConfiguration"/>
+  <reference id="webContextSecurer" interface="org.opendaylight.aaa.web.WebContextSecurer"/>
+  <reference id="webServer" interface="org.opendaylight.aaa.web.WebServer"/>
+  <reference id="servletSupport" interface="org.opendaylight.aaa.web.servlet.ServletSupport"/>
+  <reference id="dOMActionService" interface="org.opendaylight.mdsal.dom.api.DOMActionService"/>
+  <reference id="dOMDataBroker" interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"/>
+  <reference id="dOMMountPointService" interface="org.opendaylight.mdsal.dom.api.DOMMountPointService"/>
+  <reference id="dOMNotificationService" interface="org.opendaylight.mdsal.dom.api.DOMNotificationService"/>
+  <reference id="dOMRpcService" interface="org.opendaylight.mdsal.dom.api.DOMRpcService"/>
+  <reference id="dOMSchemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService"/>
 </blueprint>