import java.util.Hashtable;
+import javax.ws.rs.client.ClientBuilder;
+
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.hdpowerview.internal.discovery.HDPowerViewShadeDiscoveryService;
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
import org.openhab.core.thing.binding.ThingHandler;
import org.openhab.core.thing.binding.ThingHandlerFactory;
+import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/**
* The {@link HDPowerViewHandlerFactory} is responsible for creating things and thing
@NonNullByDefault
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.hdpowerview")
public class HDPowerViewHandlerFactory extends BaseThingHandlerFactory {
+ private final ClientBuilder clientBuilder;
+
+ @Activate
+ public HDPowerViewHandlerFactory(@Reference ClientBuilder clientBuilder) {
+ this.clientBuilder = clientBuilder;
+ }
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
if (thingTypeUID.equals(HDPowerViewBindingConstants.THING_TYPE_HUB)) {
- HDPowerViewHubHandler handler = new HDPowerViewHubHandler((Bridge) thing);
+ HDPowerViewHubHandler handler = new HDPowerViewHubHandler((Bridge) thing, clientBuilder);
registerService(new HDPowerViewShadeDiscoveryService(handler));
return handler;
} else if (thingTypeUID.equals(HDPowerViewBindingConstants.THING_TYPE_SHADE)) {
public class HDPowerViewHubHandler extends BaseBridgeHandler {
private final Logger logger = LoggerFactory.getLogger(HDPowerViewHubHandler.class);
+ private final ClientBuilder clientBuilder;
private long refreshInterval;
private long hardRefreshInterval;
private final ChannelTypeUID sceneChannelTypeUID = new ChannelTypeUID(HDPowerViewBindingConstants.BINDING_ID,
HDPowerViewBindingConstants.CHANNELTYPE_SCENE_ACTIVATE);
- public HDPowerViewHubHandler(Bridge bridge) {
+ public HDPowerViewHubHandler(Bridge bridge, ClientBuilder clientBuilder) {
super(bridge);
+ this.clientBuilder = clientBuilder;
}
@Override
return;
}
- webTargets = new HDPowerViewWebTargets(ClientBuilder.newClient(), host);
+ webTargets = new HDPowerViewWebTargets(clientBuilder.build(), host);
refreshInterval = config.refresh;
hardRefreshInterval = config.hardRefresh;
schedulePoll();