X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-rfc8040%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Fnb%2Frfc8040%2FRestconfApplication.java;h=a1ca028d31cbf979714d06fee0952f86eb3a83c8;hb=06cf350c94b3b35605be4cdd125fb66a5cae2af7;hp=89c858788043374e911f576b6cd2f35a74ee8279;hpb=3f61fe753299d330228e00bab6118070fedb006a;p=netconf.git diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java index 89c8587880..a1ca028d31 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java @@ -7,53 +7,54 @@ */ package org.opendaylight.restconf.nb.rfc8040; -import com.google.common.collect.ImmutableSet; -import java.util.HashSet; -import java.util.Set; -import javax.ws.rs.core.Application; -import org.opendaylight.restconf.nb.rfc8040.handlers.DOMMountPointServiceHandler; +import java.util.List; +import javax.inject.Inject; +import javax.inject.Singleton; +import org.opendaylight.mdsal.dom.api.DOMActionService; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMMountPointService; +import org.opendaylight.mdsal.dom.api.DOMNotificationService; +import org.opendaylight.mdsal.dom.api.DOMRpcService; +import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonNormalizedNodeBodyReader; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.NormalizedNodeJsonBodyWriter; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.NormalizedNodeXmlBodyWriter; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlNormalizedNodeBodyReader; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.patch.JsonToPatchBodyReader; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.patch.PatchJsonBodyWriter; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.patch.PatchXmlBodyWriter; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.patch.XmlToPatchBodyReader; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.schema.SchemaExportContentYangBodyWriter; -import org.opendaylight.restconf.nb.rfc8040.jersey.providers.schema.SchemaExportContentYinBodyWriter; -import org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper; +import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfStreamsSubscriptionService; +import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl; +import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfImpl; +import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfInvokeOperationsServiceImpl; +import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfOperationsServiceImpl; +import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfSchemaServiceImpl; +import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfStreamsSubscriptionServiceImpl; +import org.opendaylight.restconf.nb.rfc8040.streams.Configuration; -public class RestconfApplication extends Application { - private final SchemaContextHandler schemaContextHandler; - private final DOMMountPointServiceHandler mountPointServiceHandler; - private final ServicesWrapper servicesWrapper; +@Singleton +public class RestconfApplication extends AbstractRestconfApplication { + private RestconfApplication(final SchemaContextHandler schemaContextHandler, + final DOMMountPointService mountPointService, final RestconfStreamsSubscriptionService streamSubscription, + final DOMDataBroker dataBroker, final DOMRpcService rpcService, final DOMActionService actionService, + final DOMNotificationService notificationService, final DOMSchemaService domSchemaService, + final Configuration configuration) { + super(schemaContextHandler, mountPointService, List.of( + streamSubscription, + new RestconfDataServiceImpl(schemaContextHandler, dataBroker, mountPointService, streamSubscription, + actionService, configuration), + new RestconfInvokeOperationsServiceImpl(rpcService, schemaContextHandler), + new RestconfOperationsServiceImpl(schemaContextHandler, mountPointService), + new RestconfSchemaServiceImpl(schemaContextHandler, mountPointService, + domSchemaService.getExtensions().getInstance(DOMYangTextSourceProvider.class)), + new RestconfImpl(schemaContextHandler))); - public RestconfApplication(SchemaContextHandler schemaContextHandler, - DOMMountPointServiceHandler mountPointServiceHandler, ServicesWrapper servicesWrapper) { - this.schemaContextHandler = schemaContextHandler; - this.mountPointServiceHandler = mountPointServiceHandler; - this.servicesWrapper = servicesWrapper; } - @Override - public Set> getClasses() { - return ImmutableSet.>builder() - .add(NormalizedNodeJsonBodyWriter.class).add(NormalizedNodeXmlBodyWriter.class) - .add(SchemaExportContentYinBodyWriter.class).add(SchemaExportContentYangBodyWriter.class) - .add(PatchJsonBodyWriter.class).add(PatchXmlBodyWriter.class) - .build(); - } - - @Override - public Set getSingletons() { - final Set singletons = new HashSet<>(); - singletons.add(servicesWrapper); - singletons.add(new JsonNormalizedNodeBodyReader(schemaContextHandler, mountPointServiceHandler)); - singletons.add(new JsonToPatchBodyReader(schemaContextHandler, mountPointServiceHandler)); - singletons.add(new XmlNormalizedNodeBodyReader(schemaContextHandler, mountPointServiceHandler)); - singletons.add(new XmlToPatchBodyReader(schemaContextHandler, mountPointServiceHandler)); - return singletons; + @Inject + public RestconfApplication(final SchemaContextHandler schemaContextHandler, + 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), + dataBroker, rpcService, actionService, notificationService, domSchemaService, configuration); } }