Bug 5900 - Jenkins RaceContiditions - problem between Jersey and RestconfProvider
[netconf.git] / restconf / sal-rest-connector / src / main / java / org / opendaylight / restconf / rest / impl / services / Draft11ServicesWrapperImpl.java
index 375788a1215ff932bf142799022eb93133014997..05991cb97e5073c793bc7592da5224c9d6354139 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.restconf.rest.api.services.RestconfModulesService;
 import org.opendaylight.restconf.rest.api.services.RestconfOperationsService;
 import org.opendaylight.restconf.rest.api.services.RestconfStreamsService;
 import org.opendaylight.restconf.rest.api.services.schema.RestconfSchemaService;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.restconf.rest.handlers.api.DOMMountPointServiceHandler;
 
 /**
  * Implementation of {@link Draft11ServicesWrapper}
@@ -24,57 +24,63 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
  */
 public class Draft11ServicesWrapperImpl implements Draft11ServicesWrapper {
 
-    private final RestconfModulesService delegRestModSer;
-    private final RestconfOperationsService delegRestOpsSer;
-    private final RestconfStreamsService delegRestStrsSer;
-    private final RestconfSchemaService delegRestSchSer;
+    private RestconfModulesService delegRestModService;
+    private RestconfOperationsService delegRestOpsService;
+    private RestconfStreamsService delegRestStrsService;
+    private RestconfSchemaService delegRestSchService;
 
-    /**
-     * Creating delegates to all implemented services
-     *
-     * @param schemaContextHandler
-     *            - for handling {@link SchemaContext}
-     */
-    public Draft11ServicesWrapperImpl(final SchemaContextHandler schemaContextHandler) {
-        this.delegRestModSer = new RestconfModulesServiceImpl(schemaContextHandler);
-        this.delegRestOpsSer = new RestconfOperationsServiceImpl(schemaContextHandler);
-        this.delegRestStrsSer = new RestconfStreamsServiceImpl(schemaContextHandler);
-        this.delegRestSchSer = new RestconfSchemaServiceImpl(schemaContextHandler);
+    private Draft11ServicesWrapperImpl() {
     }
 
     @Override
     public NormalizedNodeContext getModules(final UriInfo uriInfo) {
-        return this.delegRestModSer.getModules(uriInfo);
+        return this.delegRestModService.getModules(uriInfo);
     }
 
     @Override
     public NormalizedNodeContext getModules(final String identifier, final UriInfo uriInfo) {
-        return this.delegRestModSer.getModules(identifier, uriInfo);
+        return this.delegRestModService.getModules(identifier, uriInfo);
     }
 
     @Override
     public NormalizedNodeContext getModule(final String identifier, final UriInfo uriInfo) {
-        return this.delegRestModSer.getModules(identifier, uriInfo);
+        return this.delegRestModService.getModule(identifier, uriInfo);
     }
 
     @Override
     public NormalizedNodeContext getOperations(final UriInfo uriInfo) {
-        return this.delegRestOpsSer.getOperations(uriInfo);
+        return this.delegRestOpsService.getOperations(uriInfo);
     }
 
     @Override
     public NormalizedNodeContext getOperations(final String identifier, final UriInfo uriInfo) {
-        return this.delegRestOpsSer.getOperations(identifier, uriInfo);
+        return this.delegRestOpsService.getOperations(identifier, uriInfo);
     }
 
     @Override
     public NormalizedNodeContext getAvailableStreams(final UriInfo uriInfo) {
-        return this.delegRestStrsSer.getAvailableStreams(uriInfo);
+        return this.delegRestStrsService.getAvailableStreams(uriInfo);
     }
 
     @Override
     public SchemaExportContext getSchema(final String mountAndModuleId) {
-        return this.delegRestSchSer.getSchema(mountAndModuleId);
+        return this.delegRestSchService.getSchema(mountAndModuleId);
+    }
+
+    public static Draft11ServicesWrapperImpl getInstance() {
+        return InstanceHolder.INSTANCE;
+    }
+
+    private static class InstanceHolder {
+        public static final Draft11ServicesWrapperImpl INSTANCE = new Draft11ServicesWrapperImpl();
+    }
+
+    public void setHandlers(final SchemaContextHandler schemaCtxHandler,
+            final DOMMountPointServiceHandler domMountPointServiceHandler) {
+        this.delegRestModService = new RestconfModulesServiceImpl(schemaCtxHandler, domMountPointServiceHandler);
+        this.delegRestOpsService = new RestconfOperationsServiceImpl(schemaCtxHandler, domMountPointServiceHandler);
+        this.delegRestSchService = new RestconfSchemaServiceImpl(schemaCtxHandler, domMountPointServiceHandler);
+        this.delegRestStrsService = new RestconfStreamsServiceImpl(schemaCtxHandler);
     }
 
 }