Fix cluster-size issue in About page 94/136594/1
authorRavi Pendurty <ravi.pendurty@highstreet-technologies.com>
Mon, 20 Nov 2023 04:51:10 +0000 (10:21 +0530)
committerRavi Pendurty <ravi.pendurty@highstreet-technologies.com>
Mon, 20 Nov 2023 04:51:20 +0000 (10:21 +0530)
Use HttpService instead of WhiteboardPattern

Issue-ID: CCSDK-3963
Change-Id: I7826afbcd704b681af3b6c923c59fe666c8860d6
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/AboutHttpServlet.java
sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/yangschema/YangSchemaHttpServlet.java
sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/impl/DataProviderImpl.java
sdnr/wt/data-provider/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml

index 45bd80c..3554933 100644 (file)
@@ -29,7 +29,6 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
-import javax.servlet.Servlet;
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServlet;
@@ -42,16 +41,9 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStamp
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ServiceScope;
-import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardServletName;
-import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardServletPattern;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@HttpWhiteboardServletPattern("/about")
-@HttpWhiteboardServletName("AboutHttpServlet")
-@Component(service = Servlet.class)
 public class AboutHttpServlet extends HttpServlet {
 
     /**
@@ -63,7 +55,7 @@ public class AboutHttpServlet extends HttpServlet {
     private static final String METAINF_MAVEN = "/META-INF/maven/";
     private static final String EXCEPTION_FORMAT_UNABLE_TO_READ_INNER_POMFILE = "unable to read inner pom file: {}";
 
-    private static final String URI_PRE = "/about";
+    public static final String URI_PRE = "/about";
     private static final String RES_BASEPATH = "about/";
 
     private static final String PLACEHOLDER_ONAP_RELEASENAME = "{release-name}";
index f9fa2e9..45f9c80 100644 (file)
@@ -28,7 +28,6 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardServletName;
 import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardServletPattern;
@@ -45,7 +44,7 @@ public class YangSchemaHttpServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
     private static final Logger LOG = LoggerFactory.getLogger(YangSchemaHttpServlet.class);
     private static final String CACHEPATH = "cache/";
-    private static final String SCHEMACACHEPATH_PRIMARY = CACHEPATH+"schema/";
+    private static final String SCHEMACACHEPATH_PRIMARY = CACHEPATH + "schema/";
 
     private final YangFileProvider fileProvider;
 
index 66ffdf8..71ff7a8 100644 (file)
@@ -21,6 +21,7 @@
  */
 package org.onap.ccsdk.features.sdnr.wt.dataprovider.impl;
 
+import javax.servlet.ServletException;
 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClientException;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.DataTreeHttpServlet;
@@ -37,6 +38,8 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.StatusChangedHandler.S
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.RpcProviderService;
+import org.osgi.service.http.HttpService;
+import org.osgi.service.http.NamespaceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -97,6 +100,21 @@ public class DataProviderImpl implements IEntityDataProvider, AutoCloseable {
         }
     }
 
+    public void onUnbindService(HttpService httpService) {
+        httpService.unregister(AboutHttpServlet.URI_PRE);
+        this.aboutServlet = null;
+    }
+
+    public void onBindService(HttpService httpService)
+            throws ServletException, NamespaceException {
+        if (httpService == null) {
+            LOG.warn("Unable to inject HttpService into loader.");
+        } else {
+            httpService.registerServlet(AboutHttpServlet.URI_PRE, aboutServlet, null, null);
+            LOG.info("about servlet registered.");
+        }
+    }
+
     @Override
     public void close() throws Exception {
         LOG.info("DeviceManagerImpl closing ...");
index 5a681d7..8e74592 100644 (file)
                interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
     <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
 
-    <bean id="aboutServlet" class="org.onap.ccsdk.features.sdnr.wt.dataprovider.http.about.AboutHttpServlet" />
+    <reference id="onBindService" availability="mandatory" activation="eager" interface="org.osgi.service.http.HttpService">
+        <reference-listener ref="provider" bind-method="onBindService" unbind-method="onUnbindService"/>
+    </reference>
+
+    <bean id="aboutServlet" class="org.onap.ccsdk.features.sdnr.wt.dataprovider.http.about.AboutHttpServlet">
+    </bean>
 
     <bean id="msServlet"
           class="org.onap.ccsdk.features.sdnr.wt.dataprovider.http.MsServlet">