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;
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;
- }
- }
- }
}