]> git.basschouten.com Git - openhab-addons.git/commitdiff
[daikin] Use createHttpClient (#14481)
authorlolodomo <lg.hc@free.fr>
Wed, 22 Feb 2023 19:48:06 +0000 (20:48 +0100)
committerGitHub <noreply@github.com>
Wed, 22 Feb 2023 19:48:06 +0000 (20:48 +0100)
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinBindingConstants.java
bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinHttpClientFactoryImpl.java

index 8bcae1d0ceca626e711126a194ebe5a08bfb0099..c4dc931cacbee0ded31c431ee009e6571066f4c4 100644 (file)
@@ -30,7 +30,7 @@ import org.openhab.core.thing.ThingTypeUID;
 @NonNullByDefault
 public class DaikinBindingConstants {
 
-    private static final String BINDING_ID = "daikin";
+    public static final String BINDING_ID = "daikin";
 
     // List of all Thing Type UIDs
     public static final ThingTypeUID THING_TYPE_AC_UNIT = new ThingTypeUID(BINDING_ID, "ac_unit");
index a076d8014c9b06155d2975100ca90d47b73d7221..77a9661a5a2d6ce7e8250eb3b686056d48c16408 100644 (file)
@@ -16,8 +16,11 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
+import org.openhab.core.io.net.http.HttpClientFactory;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -39,37 +42,32 @@ public class DaikinHttpClientFactoryImpl implements DaikinHttpClientFactory {
 
     private final Logger logger = LoggerFactory.getLogger(DaikinHttpClientFactoryImpl.class);
 
-    private @Nullable HttpClient httpClient;
+    private HttpClient httpClient;
+
+    @Activate
+    public DaikinHttpClientFactoryImpl(@Reference HttpClientFactory httpClientFactory) {
+        this.httpClient = httpClientFactory.createHttpClient(DaikinBindingConstants.BINDING_ID,
+                new SslContextFactory.Client(true));
+        try {
+            httpClient.start();
+            logger.debug("Daikin http client started");
+        } catch (Exception e) {
+            logger.warn("Could not start Daikin http client", e);
+        }
+    }
 
     @Deactivate
     protected void deactivate() {
-        if (httpClient != null) {
-            try {
-                httpClient.stop();
-                logger.debug("Daikin http client stopped");
-            } catch (Exception e) {
-                logger.debug("error while stopping Daikin http client", e);
-            }
-            httpClient = null;
+        try {
+            httpClient.stop();
+            logger.debug("Daikin http client stopped");
+        } catch (Exception e) {
+            logger.debug("error while stopping Daikin http client", e);
         }
     }
 
     @Override
     public @Nullable HttpClient getHttpClient() {
-        initialize();
         return httpClient;
     }
-
-    private synchronized void initialize() {
-        if (httpClient == null) {
-            httpClient = new HttpClient(new SslContextFactory.Client(true));
-            try {
-                httpClient.start();
-                logger.debug("Daikin http client started");
-            } catch (Exception e) {
-                logger.warn("Could not start Daikin http client", e);
-                httpClient = null;
-            }
-        }
-    }
 }