diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/CommonSetup.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/CommonSetup.java index 58a47cb09..5a62abdf8 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/CommonSetup.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/CommonSetup.java @@ -22,13 +22,17 @@ import java.net.URI; import java.util.Collections; import java.util.Dictionary; import java.util.Hashtable; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; - +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.api.ContentResponse; +import org.eclipse.jetty.client.util.StringContentProvider; +import org.eclipse.jetty.http.HttpHeader; +import org.eclipse.jetty.http.HttpMethod; import org.glassfish.grizzly.http.server.HttpServer; import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; import org.glassfish.jersey.logging.LoggingFeature; @@ -61,7 +65,7 @@ import org.osgi.service.cm.ConfigurationAdmin; public class CommonSetup { public String basePath; - public Client client; + public HttpClient client; public ConfigStore cs; public HttpServer server; @@ -150,12 +154,17 @@ public class CommonSetup { log2.setLevel(Level.OFF); server = GrizzlyHttpServerFactory.createHttpServer(URI.create(basePath), rc); - client = ClientBuilder.newClient(); + client = new HttpClient(); + try { + client.start(); + } catch (Exception e) { + throw new IllegalStateException("Failed to start HttpClient", e); + } } public void dispose() throws Exception { if (client != null) { - client.close(); + client.stop(); } if (server != null) { server.shutdownNow(); @@ -163,4 +172,33 @@ public class CommonSetup { mocksCloseable.close(); } + + public ContentResponse sendDelete(String path) throws InterruptedException, TimeoutException, ExecutionException { + return client.newRequest(basePath + path).method(HttpMethod.DELETE).send(); + } + + public ContentResponse sendGet() throws InterruptedException, TimeoutException, ExecutionException { + return client.newRequest(basePath).method(HttpMethod.GET).send(); + } + + public ContentResponse sendGet(String path) throws InterruptedException, TimeoutException, ExecutionException { + return client.newRequest(basePath + path).method(HttpMethod.GET).send(); + } + + public ContentResponse sendPost(String content) throws InterruptedException, TimeoutException, ExecutionException { + return client.newRequest(basePath).method(HttpMethod.POST).header(HttpHeader.CONTENT_TYPE, "application/json") + .content(new StringContentProvider(content)).send(); + } + + public ContentResponse sendPost(String path, String content) + throws InterruptedException, TimeoutException, ExecutionException { + return client.newRequest(basePath + path).method(HttpMethod.POST) + .header(HttpHeader.CONTENT_TYPE, "application/json").content(new StringContentProvider(content)).send(); + } + + public ContentResponse sendPut(String path, String content) + throws InterruptedException, TimeoutException, ExecutionException { + return client.newRequest(basePath + path).method(HttpMethod.PUT) + .header(HttpHeader.CONTENT_TYPE, "application/json").content(new StringContentProvider(content)).send(); + } } diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/LightsAndGroupsTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/LightsAndGroupsTests.java index 0ec53175a..17470593b 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/LightsAndGroupsTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/LightsAndGroupsTests.java @@ -20,10 +20,8 @@ import static org.mockito.Mockito.verify; import java.io.IOException; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.jersey.server.ResourceConfig; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -196,14 +194,13 @@ public class LightsAndGroupsTests { } @Test - public void changeSwitchState() { + public void changeSwitchState() throws Exception { assertThat(((HueStatePlug) cs.ds.lights.get("1").state).on, is(false)); String body = "{'on':true}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/1/state").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/lights/1/state", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); assertThat(((HueStatePlug) cs.ds.lights.get("1").state).on, is(true)); verify(commonSetup.eventPublisher).post(argThat((Event t) -> { assertThat(t.getPayload(), is("{\"type\":\"OnOff\",\"value\":\"ON\"}")); @@ -212,14 +209,13 @@ public class LightsAndGroupsTests { } @Test - public void changeGroupItemSwitchState() { + public void changeGroupItemSwitchState() throws Exception { assertThat(((HueStatePlug) cs.ds.groups.get("10").action).on, is(false)); String body = "{'on':true}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/groups/10/action").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/groups/10/action", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); assertThat(((HueStatePlug) cs.ds.groups.get("10").action).on, is(true)); verify(commonSetup.eventPublisher).post(argThat((Event t) -> { assertThat(t.getPayload(), is("{\"type\":\"OnOff\",\"value\":\"ON\"}")); @@ -228,43 +224,40 @@ public class LightsAndGroupsTests { } @Test - public void changeOnValue() { + public void changeOnValue() throws Exception { assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(false)); String body = "{'on':true}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/2/state").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/lights/2/state", body); assertEquals(200, response.getStatus()); - String entity = response.readEntity(String.class); + String entity = response.getContentAsString(); assertThat(entity, is("[{\"success\":{\"/lights/2/state/on\":true}}]")); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(true)); } @Test - public void changeOnAndBriValues() { + public void changeOnAndBriValues() throws Exception { assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(false)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).bri, is(1)); String body = "{'on':true,'bri':200}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/2/state").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/lights/2/state", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(true)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).bri, is(200)); } @Test - public void changeHueSatValues() { + public void changeHueSatValues() throws Exception { HueLightEntry hueDevice = cs.ds.lights.get("2"); hueDevice.item.setState(OnOffType.ON); hueDevice.state.as(HueStateColorBulb.class).on = true; String body = "{'hue':1000,'sat':50}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/2/state").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/lights/2/state", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(true)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).hue, is(1000)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).sat, is(50)); @@ -276,16 +269,15 @@ public class LightsAndGroupsTests { * Amazon echos are setting ct only, if commanded to turn a light white. */ @Test - public void changeCtValue() { + public void changeCtValue() throws Exception { HueLightEntry hueDevice = cs.ds.lights.get("2"); hueDevice.item.setState(OnOffType.ON); hueDevice.state.as(HueStateColorBulb.class).on = true; String body = "{'ct':500}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/2/state").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/lights/2/state", body); assertEquals(200, response.getStatus()); - body = response.readEntity(String.class); + body = response.getContentAsString(); assertThat(body, containsString("success")); assertThat(body, containsString("ct")); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(true)); @@ -297,16 +289,15 @@ public class LightsAndGroupsTests { } @Test - public void switchOnWithXY() { + public void switchOnWithXY() throws Exception { assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(false)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).bri, is(1)); String body = "{'on':true,'bri':200,'xy':[0.5119,0.4147]}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/2/state").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/lights/2/state", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); - assertThat(response.readEntity(String.class), containsString("xy")); + assertThat(response.getContentAsString(), containsString("success")); + assertThat(response.getContentAsString(), containsString("xy")); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).on, is(true)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).bri, is(200)); assertThat(((HueStateColorBulb) cs.ds.lights.get("2").state).xy[0], is(0.5119)); @@ -319,20 +310,20 @@ public class LightsAndGroupsTests { } @Test - public void allLightsAndSingleLight() { - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights").request().get(); + public void allLightsAndSingleLight() throws Exception { + ContentResponse response = commonSetup.sendGet("/testuser/lights"); assertEquals(200, response.getStatus()); - String body = response.readEntity(String.class); + String body = response.getContentAsString(); assertThat(body, containsString("switch")); assertThat(body, containsString("color")); assertThat(body, containsString("white")); // Single light access test - response = commonSetup.client.target(commonSetup.basePath + "/testuser/lights/2").request().get(); + response = commonSetup.sendGet("/testuser/lights/2"); assertEquals(200, response.getStatus()); - body = response.readEntity(String.class); + body = response.getContentAsString(); assertThat(body, containsString("color")); } diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/RulesTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/RulesTests.java index be994292f..86cae0f05 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/RulesTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/RulesTests.java @@ -22,10 +22,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Random; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.jersey.server.ResourceConfig; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -158,13 +156,12 @@ public class RulesTests { @SuppressWarnings("null") @Test - public void addGetRemoveRuleViaRest() { + public void addGetRemoveRuleViaRest() throws Exception { // 1. Create String body = "{\"name\":\"test name\",\"description\":\"\",\"owner\":\"\",\"conditions\":[{\"address\":\"/lights/switch1/state/on\",\"operator\":\"dx\"}],\"actions\":[{\"address\":\"/lights/switch1/state\",\"method\":\"PUT\",\"body\":\"{\\u0027on\\u0027:true}\"}]}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules").request() - .post(Entity.json(body)); + ContentResponse response = commonSetup.sendPost("/testuser/rules", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); // 1.1 Check for entry Entry idAndEntry = cs.ds.rules.entrySet().stream().findAny().get(); @@ -180,21 +177,19 @@ public class RulesTests { assertThat(rule.getActions().get(0).getTypeUID(), is("rules.HttpAction")); // 2. Get - response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules/" + idAndEntry.getKey()).request() - .get(); + response = commonSetup.sendGet("/testuser/rules/" + idAndEntry.getKey()); assertEquals(200, response.getStatus()); - HueSceneEntry fromJson = new Gson().fromJson(response.readEntity(String.class), HueSceneEntry.class); + HueSceneEntry fromJson = new Gson().fromJson(response.getContentAsString(), HueSceneEntry.class); assertThat(fromJson.name, is(idAndEntry.getValue().name)); // 3. Remove - response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules/" + idAndEntry.getKey()).request() - .delete(); + response = commonSetup.sendDelete("/testuser/rules/" + idAndEntry.getKey()); assertEquals(200, response.getStatus()); assertTrue(cs.ds.rules.isEmpty()); } @Test - public void updateRuleViaRest() { + public void updateRuleViaRest() throws Exception { HueCommand command = new HueCommand("/api/testuser/lights/switch1/state", "PUT", "{'on':true}"); HueRuleEntry.Condition condition = new HueRuleEntry.Condition("/lights/switch1/state/on", Operator.dx, null); @@ -209,10 +204,9 @@ public class RulesTests { // Modify (just the name) String body = "{ 'name':'A new name'}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules/demo1").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/rules/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("name")); + assertThat(response.getContentAsString(), containsString("name")); Entry idAndEntry = cs.ds.rules.entrySet().stream().findAny().get(); HueRuleEntry entry = idAndEntry.getValue(); @@ -231,10 +225,9 @@ public class RulesTests { // Modify (Change condition) body = "{\"conditions\":[{\"address\":\"/lights/switch1/state/on\",\"operator\":\"ddx\"}]}"; - response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules/demo1").request() - .put(Entity.json(body)); + response = commonSetup.sendPut("/testuser/rules/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("conditions")); + assertThat(response.getContentAsString(), containsString("conditions")); idAndEntry = cs.ds.rules.entrySet().stream().findAny().get(); entry = idAndEntry.getValue(); @@ -243,10 +236,9 @@ public class RulesTests { // Modify (Change action) body = "{\"actions\":[{\"address\":\"/lights/switch2/state\",\"method\":\"PUT\",\"body\":\"{\\u0027on\\u0027:false}\"}]}"; - response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules/demo1").request() - .put(Entity.json(body)); + response = commonSetup.sendPut("/testuser/rules/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("actions")); + assertThat(response.getContentAsString(), containsString("actions")); idAndEntry = cs.ds.rules.entrySet().stream().findAny().get(); entry = idAndEntry.getValue(); @@ -255,7 +247,7 @@ public class RulesTests { } @Test - public void getAll() { + public void getAll() throws Exception { HueCommand command = new HueCommand("/api/testuser/lights/switch1/state", "PUT", "{'on':true}"); HueRuleEntry.Condition condition = new HueRuleEntry.Condition("/lights/switch1/state/on", Operator.dx, null); @@ -268,10 +260,10 @@ public class RulesTests { ruleRegistry.add(rule); - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/rules").request().get(); + ContentResponse response = commonSetup.sendGet("/testuser/rules"); Type type = new TypeToken>() { }.getType(); - String body = response.readEntity(String.class); + String body = response.getContentAsString(); Map fromJson = new Gson().fromJson(body, type); HueRuleEntry entry = fromJson.get("demo1"); assertThat(entry.name, is("test name")); diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SceneTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SceneTests.java index 4928e519d..8b30f92c3 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SceneTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SceneTests.java @@ -21,10 +21,8 @@ import java.lang.reflect.Type; import java.util.Map; import java.util.Map.Entry; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.jersey.server.ResourceConfig; import org.hamcrest.CoreMatchers; import org.junit.jupiter.api.AfterEach; @@ -131,13 +129,12 @@ public class SceneTests { @SuppressWarnings("null") @Test - public void addGetRemoveSceneViaRest() { + public void addGetRemoveSceneViaRest() throws Exception { // 1. Create String body = "{ 'name':'Cozy dinner', 'recycle':false, 'lights':['switch1','white1'], 'type':'LightScene'}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes").request() - .post(Entity.json(body)); + ContentResponse response = commonSetup.sendPost("/testuser/scenes", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); // 1.1 Check for scene entry Entry entry = cs.ds.scenes.entrySet().stream().findAny().get(); @@ -152,22 +149,20 @@ public class SceneTests { assertThat(rule.getActions().get(1).getId(), is("white1")); // 2. Get - response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes/" + entry.getKey()).request() - .get(); + response = commonSetup.sendGet("/testuser/scenes/" + entry.getKey()); assertEquals(200, response.getStatus()); - HueSceneEntry fromJson = new Gson().fromJson(response.readEntity(String.class), HueSceneEntry.class); + HueSceneEntry fromJson = new Gson().fromJson(response.getContentAsString(), HueSceneEntry.class); assertThat(fromJson.name, is(entry.getValue().name)); // 3. Remove - response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes/" + entry.getKey()).request() - .delete(); + response = commonSetup.sendDelete("/testuser/scenes/" + entry.getKey()); assertEquals(200, response.getStatus()); assertTrue(cs.ds.scenes.isEmpty()); } @SuppressWarnings("null") @Test - public void updateSceneViaRest() { + public void updateSceneViaRest() throws Exception { Rule rule = RuleBuilder.create("demo1").withTags("scene").withName("Some name") // .withActions(Scenes.actionFromState("switch1", (Command) OnOffType.ON)).build(); @@ -175,10 +170,9 @@ public class SceneTests { // 3. Modify (just the name) String body = "{ 'name':'A new name'}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes/demo1").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/scenes/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("name")); + assertThat(response.getContentAsString(), containsString("name")); Entry sceneEntry = cs.ds.scenes.entrySet().stream().findAny().get(); assertThat(sceneEntry.getValue().name, is("A new name")); @@ -195,10 +189,9 @@ public class SceneTests { // Without store lights body = "{ 'lights':['white1']}"; - response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes/demo1").request() - .put(Entity.json(body)); + response = commonSetup.sendPut("/testuser/scenes/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("lights")); + assertThat(response.getContentAsString(), containsString("lights")); sceneEntry = cs.ds.scenes.entrySet().stream().findAny().get(); assertThat(sceneEntry.getValue().name, is("Some name")); // should not have changed @@ -207,26 +200,25 @@ public class SceneTests { // With store lights body = "{ 'lights':['white1'], 'storelightstate':true }"; - response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes/demo1").request() - .put(Entity.json(body)); + response = commonSetup.sendPut("/testuser/scenes/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("lights")); + assertThat(response.getContentAsString(), containsString("lights")); sceneEntry = cs.ds.scenes.entrySet().stream().findAny().get(); assertThat(sceneEntry.getValue().lights.get(0), is("white1")); } @Test - public void getAll() { + public void getAll() throws Exception { Rule rule = RuleBuilder.create("demo1").withTags("scene") // .withActions(Scenes.actionFromState("switch1", (Command) OnOffType.ON)).build(); ruleRegistry.add(rule); - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/scenes").request().get(); + ContentResponse response = commonSetup.sendGet("/testuser/scenes"); Type type = new TypeToken>() { }.getType(); - Map fromJson = new Gson().fromJson(response.readEntity(String.class), type); + Map fromJson = new Gson().fromJson(response.getContentAsString(), type); assertTrue(fromJson.containsKey("demo1")); } } diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/ScheduleTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/ScheduleTests.java index c73da12fc..4f06c214d 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/ScheduleTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/ScheduleTests.java @@ -25,10 +25,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Random; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.jersey.server.ResourceConfig; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -143,14 +141,13 @@ public class ScheduleTests { @SuppressWarnings("null") @Test - public void addGetRemoveScheduleViaRest() { + public void addGetRemoveScheduleViaRest() throws Exception { // 1. Create String body = "{ 'name':'Wake up', 'description':'My wake up alarm', 'localtime':'2015-06-30T14:24:40'," + // "'command':{'address':'/api/testuser/lights/1/state','method':'PUT','body':'{\"on\":true}'} }"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules").request() - .post(Entity.json(body)); + ContentResponse response = commonSetup.sendPost("/testuser/schedules", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("success")); + assertThat(response.getContentAsString(), containsString("success")); // 1.1 Check for entry Entry entry = cs.ds.schedules.entrySet().stream().findAny().get(); @@ -167,22 +164,20 @@ public class ScheduleTests { assertThat(rule.getActions().get(0).getTypeUID(), is("rules.HttpAction")); // 2. Get - response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules/" + entry.getKey()).request() - .get(); + response = commonSetup.sendGet("/testuser/schedules/" + entry.getKey()); assertEquals(200, response.getStatus()); - HueSceneEntry fromJson = new Gson().fromJson(response.readEntity(String.class), HueSceneEntry.class); + HueSceneEntry fromJson = new Gson().fromJson(response.getContentAsString(), HueSceneEntry.class); assertThat(fromJson.name, is(entry.getValue().name)); // 3. Remove - response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules/" + entry.getKey()).request() - .delete(); + response = commonSetup.sendDelete("/testuser/schedules/" + entry.getKey()); assertEquals(200, response.getStatus()); assertTrue(cs.ds.schedules.isEmpty()); } @SuppressWarnings("null") @Test - public void updateScheduleViaRest() { + public void updateScheduleViaRest() throws Exception { HueCommand command = new HueCommand("/api/testuser/lights/1/state", "PUT", "{'on':true}"); String localtime = "2020-02-01T12:12:00"; @@ -194,10 +189,9 @@ public class ScheduleTests { // Modify (just the name) String body = "{ 'name':'A new name'}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules/demo1").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/schedules/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("name")); + assertThat(response.getContentAsString(), containsString("name")); Entry entry = cs.ds.schedules.entrySet().stream().findAny().get(); assertThat(entry.getValue().name, is("A new name")); @@ -217,10 +211,9 @@ public class ScheduleTests { // Modify (Change time) body = "{ 'localtime':'2015-06-30T14:24:40'}"; - response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules/demo1").request() - .put(Entity.json(body)); + response = commonSetup.sendPut("/testuser/schedules/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("localtime")); + assertThat(response.getContentAsString(), containsString("localtime")); entry = cs.ds.schedules.entrySet().stream().findAny().get(); assertThat(entry.getValue().name, is("test name")); // should not have changed @@ -229,10 +222,9 @@ public class ScheduleTests { // Modify (Change command) body = "{ 'command':{'address':'/api/testuser/lights/2/state','method':'PUT','body':'{\"on\":true}'} }"; - response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules/demo1").request() - .put(Entity.json(body)); + response = commonSetup.sendPut("/testuser/schedules/demo1", body); assertEquals(200, response.getStatus()); - assertThat(response.readEntity(String.class), containsString("command")); + assertThat(response.getContentAsString(), containsString("command")); entry = cs.ds.schedules.entrySet().stream().findAny().get(); assertThat(entry.getValue().name, is("test name")); // should not have changed @@ -241,7 +233,7 @@ public class ScheduleTests { } @Test - public void getAll() { + public void getAll() throws Exception { HueCommand command = new HueCommand("/api/testuser/lights/1/state", "POST", "{'on':true}"); String localtime = "2020-02-01T12:12:00"; @@ -251,10 +243,10 @@ public class ScheduleTests { ruleRegistry.add(rule); - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/schedules").request().get(); + ContentResponse response = commonSetup.sendGet("/testuser/schedules"); Type type = new TypeToken>() { }.getType(); - Map fromJson = new Gson().fromJson(response.readEntity(String.class), type); + Map fromJson = new Gson().fromJson(response.getContentAsString(), type); assertTrue(fromJson.containsKey("demo1")); } diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SensorTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SensorTests.java index 941a0a582..ed64abbbd 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SensorTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/SensorTests.java @@ -16,12 +16,9 @@ import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; -import java.io.IOException; - -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.jersey.server.ResourceConfig; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -54,6 +51,8 @@ public class SensorTests { protected @NonNullByDefault({}) ItemRegistry itemRegistry; protected @NonNullByDefault({}) ConfigStore cs; + private @NonNullByDefault({}) HttpClient httpClient; + Sensors subject = new Sensors(); private void addItemToReg(GenericItem item, State state, String label) { @@ -63,7 +62,7 @@ public class SensorTests { } @BeforeEach - public void setUp() throws IOException { + public void setUp() throws Exception { commonSetup = new CommonSetup(false); itemRegistry = new DummyItemRegistry(); @@ -74,6 +73,9 @@ public class SensorTests { subject.itemRegistry = itemRegistry; subject.activate(); + httpClient = new HttpClient(); + httpClient.start(); + // Add simulated sensor items addItemToReg(new SwitchItem("switch1"), OnOffType.ON, "name1"); addItemToReg(new ContactItem("contact1"), OpenClosedType.OPEN, ""); @@ -91,34 +93,35 @@ public class SensorTests { } @Test - public void renameSensor() { + public void renameSensor() throws Exception { assertThat(cs.ds.sensors.get("switch1").name, is("name1")); String body = "{'name':'name2'}"; - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/sensors/switch1").request() - .put(Entity.json(body)); + ContentResponse response = commonSetup.sendPut("/testuser/sensors/switch1", body); assertEquals(200, response.getStatus()); - body = response.readEntity(String.class); + + body = response.getContentAsString(); + assertThat(body, containsString("success")); assertThat(body, containsString("name")); assertThat(cs.ds.sensors.get("switch1").name, is("name2")); } @Test - public void allAndSingleSensor() { - Response response = commonSetup.client.target(commonSetup.basePath + "/testuser/sensors").request().get(); + public void allAndSingleSensor() throws Exception { + ContentResponse response = commonSetup.sendGet("/testuser/sensors"); assertEquals(200, response.getStatus()); - String body = response.readEntity(String.class); + String body = response.getContentAsString(); assertThat(body, containsString("switch1")); assertThat(body, containsString("color1")); assertThat(body, containsString("white1")); // Single light access test - response = commonSetup.client.target(commonSetup.basePath + "/testuser/sensors/switch1").request().get(); + response = commonSetup.sendGet("/testuser/sensors/switch1"); assertEquals(200, response.getStatus()); - body = response.readEntity(String.class); + body = response.getContentAsString(); assertThat(body, containsString("CLIPGenericFlag")); } } diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/UsersAndConfigTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/UsersAndConfigTests.java index d015e3eff..c7f3bfae0 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/UsersAndConfigTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/rest/UsersAndConfigTests.java @@ -20,9 +20,7 @@ import java.io.IOException; import java.util.Collections; import java.util.Dictionary; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.jersey.server.ResourceConfig; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -94,27 +92,24 @@ public class UsersAndConfigTests { } @Test - public void addUser() { + public void addUser() throws Exception { // GET should fail - assertEquals(405, commonSetup.client.target(commonSetup.basePath).request().get().getStatus()); + assertEquals(405, commonSetup.sendGet().getStatus()); String body = "{'username':'testuser','devicetype':'app#device'}"; - Response response; - HueResponse[] r; - // Post should create a user, except: if linkbutton not enabled - response = commonSetup.client.target(commonSetup.basePath).request().post(Entity.json(body)); + ContentResponse response = commonSetup.sendPost(body); assertThat(response.getStatus(), is(200)); - r = commonSetup.cs.gson.fromJson(response.readEntity(String.class), HueResponse[].class); + HueResponse[] r = commonSetup.cs.gson.fromJson(response.getContentAsString(), HueResponse[].class); assertNotNull(r[0].error); // Post should create a user commonSetup.cs.ds.config.linkbutton = true; - response = commonSetup.client.target(commonSetup.basePath).request().post(Entity.json(body)); + response = commonSetup.sendPost(body); assertThat(response.getStatus(), is(200)); - JsonElement e = JsonParser.parseString(response.readEntity(String.class)).getAsJsonArray().get(0); + JsonElement e = JsonParser.parseString(response.getContentAsString()).getAsJsonArray().get(0); e = e.getAsJsonObject().get("success"); HueSuccessResponseCreateUser rc = commonSetup.cs.gson.fromJson(e, HueSuccessResponseCreateUser.class); assertNotNull(rc); @@ -122,19 +117,17 @@ public class UsersAndConfigTests { } @Test - public void unauthorizedAccessTest() { + public void unauthorizedAccessTest() throws Exception { // Unauthorized config - Response response; - response = commonSetup.client.target(commonSetup.basePath + "/config").request().get(); + ContentResponse response = commonSetup.sendGet("/config"); assertThat(response.getStatus(), is(200)); - HueUnauthorizedConfig config = new Gson().fromJson(response.readEntity(String.class), - HueUnauthorizedConfig.class); + HueUnauthorizedConfig config = new Gson().fromJson(response.getContentAsString(), HueUnauthorizedConfig.class); assertThat(config.bridgeid, is(commonSetup.cs.ds.config.bridgeid)); assertThat(config.name, is(commonSetup.cs.ds.config.name)); // Invalid user name - response = commonSetup.client.target(commonSetup.basePath + "/invalid/config").request().get(); + response = commonSetup.sendGet("/invalid/config"); assertThat(response.getStatus(), is(403)); - assertThat(response.readEntity(String.class), containsString("error")); + assertThat(response.getContentAsString(), containsString("error")); } } diff --git a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/upnp/UpnpTests.java b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/upnp/UpnpTests.java index 3f0cb6070..be48f638b 100644 --- a/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/upnp/UpnpTests.java +++ b/bundles/org.openhab.io.hueemulation/src/test/java/org/openhab/io/hueemulation/internal/upnp/UpnpTests.java @@ -26,8 +26,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.core.Response; +import org.eclipse.jetty.client.api.ContentResponse; import org.glassfish.grizzly.osgi.httpservice.HttpServiceImpl; import org.glassfish.grizzly.osgi.httpservice.OSGiMainHandler; import org.glassfish.grizzly.osgi.httpservice.util.Logger; @@ -102,8 +102,8 @@ public class UpnpTests { } @Test - public void descriptionWithoutAddress() { - Response response = commonSetup.client.target(descriptionPath).request().get(); + public void descriptionWithoutAddress() throws Exception { + ContentResponse response = commonSetup.client.newRequest(descriptionPath).send(); assertEquals(404, response.getStatus()); } @@ -113,9 +113,9 @@ public class UpnpTests { HueEmulationConfigWithRuntime r = subject.createConfiguration(null); r = subject.performAddressTest(r); subject.applyConfiguration(r); - Response response = commonSetup.client.target(descriptionPath).request().get(); + ContentResponse response = commonSetup.client.newRequest(descriptionPath).send(); assertEquals(200, response.getStatus()); - String body = response.readEntity(String.class); + String body = response.getContentAsString(); assertThat(body, is(subject.xmlDocWithAddress)); if (r == null) { diff --git a/itests/org.openhab.automation.jsscriptingnashorn.tests/itest.bndrun b/itests/org.openhab.automation.jsscriptingnashorn.tests/itest.bndrun index ffc4418d1..04f6fb7f4 100644 --- a/itests/org.openhab.automation.jsscriptingnashorn.tests/itest.bndrun +++ b/itests/org.openhab.automation.jsscriptingnashorn.tests/itest.bndrun @@ -69,7 +69,6 @@ Fragment-Host: org.openhab.automation.jsscriptingnashorn org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.astro.tests/itest.bndrun b/itests/org.openhab.binding.astro.tests/itest.bndrun index cf375405b..c8ba74219 100644 --- a/itests/org.openhab.binding.astro.tests/itest.bndrun +++ b/itests/org.openhab.binding.astro.tests/itest.bndrun @@ -52,7 +52,6 @@ Fragment-Host: org.openhab.binding.astro org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.avmfritz.tests/itest.bndrun b/itests/org.openhab.binding.avmfritz.tests/itest.bndrun index ed64801ac..828320e8b 100644 --- a/itests/org.openhab.binding.avmfritz.tests/itest.bndrun +++ b/itests/org.openhab.binding.avmfritz.tests/itest.bndrun @@ -78,7 +78,6 @@ Fragment-Host: org.openhab.binding.avmfritz org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.hue.tests/itest.bndrun b/itests/org.openhab.binding.hue.tests/itest.bndrun index d3143c3af..59da0be7c 100644 --- a/itests/org.openhab.binding.hue.tests/itest.bndrun +++ b/itests/org.openhab.binding.hue.tests/itest.bndrun @@ -84,7 +84,6 @@ Fragment-Host: org.openhab.binding.hue org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.max.tests/itest.bndrun b/itests/org.openhab.binding.max.tests/itest.bndrun index 32eee8c18..0d72120a8 100644 --- a/itests/org.openhab.binding.max.tests/itest.bndrun +++ b/itests/org.openhab.binding.max.tests/itest.bndrun @@ -64,7 +64,6 @@ Fragment-Host: org.openhab.binding.max org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.mielecloud.tests/itest.bndrun b/itests/org.openhab.binding.mielecloud.tests/itest.bndrun index d1a356895..af77119fb 100644 --- a/itests/org.openhab.binding.mielecloud.tests/itest.bndrun +++ b/itests/org.openhab.binding.mielecloud.tests/itest.bndrun @@ -84,7 +84,6 @@ Fragment-Host: org.openhab.binding.mielecloud org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.modbus.tests/itest.bndrun b/itests/org.openhab.binding.modbus.tests/itest.bndrun index 9c96ce8b7..318d41a7b 100644 --- a/itests/org.openhab.binding.modbus.tests/itest.bndrun +++ b/itests/org.openhab.binding.modbus.tests/itest.bndrun @@ -72,7 +72,6 @@ Fragment-Host: org.openhab.binding.modbus org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun b/itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun index e606ffbf7..3f0244b32 100644 --- a/itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun +++ b/itests/org.openhab.binding.mqtt.homeassistant.tests/itest.bndrun @@ -105,8 +105,6 @@ Import-Package: \ org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ - jakarta.ws.rs-api;version='[2.1.6,2.1.7)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun b/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun index 0436dd588..1b5709272 100644 --- a/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun +++ b/itests/org.openhab.binding.mqtt.homie.tests/itest.bndrun @@ -105,8 +105,6 @@ Import-Package: \ org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ - jakarta.ws.rs-api;version='[2.1.6,2.1.7)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun b/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun index 8b58c66df..838e26978 100644 --- a/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun +++ b/itests/org.openhab.binding.mqtt.ruuvigateway.tests/itest.bndrun @@ -106,8 +106,6 @@ Import-Package: \ org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ - jakarta.ws.rs-api;version='[2.1.6,2.1.7)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.nest.tests/itest.bndrun b/itests/org.openhab.binding.nest.tests/itest.bndrun index fb061513e..edaf5dcf7 100644 --- a/itests/org.openhab.binding.nest.tests/itest.bndrun +++ b/itests/org.openhab.binding.nest.tests/itest.bndrun @@ -26,19 +26,10 @@ Fragment-Host: org.openhab.binding.nest org.glassfish.hk2.osgi-resource-locator;version='[1.0.3,1.0.4)',\ org.apache.aries.javax.jax.rs-api;version='[1.0.1,1.0.2)',\ jakarta.annotation-api;version='[1.3.5,1.3.6)',\ - jakarta.xml.soap-api;version='[1.4.2,1.4.3)',\ - jakarta.xml.ws-api;version='[2.3.3,2.3.4)',\ org.apache.aries.component-dsl.component-dsl;version='[1.2.2,1.2.3)',\ - org.apache.ws.xmlschema.core;version='[2.2.5,2.2.6)',\ stax2-api;version='[4.2.1,4.2.2)',\ jakarta.inject.jakarta.inject-api;version='[2.0.0,2.0.1)',\ org.glassfish.hk2.external.javax.inject;version='[2.4.0,2.4.1)',\ - org.apache.cxf.cxf-core;version='[3.4.5,3.4.6)',\ - org.apache.cxf.cxf-rt-frontend-jaxrs;version='[3.4.5,3.4.6)',\ - org.apache.cxf.cxf-rt-rs-client;version='[3.4.5,3.4.6)',\ - org.apache.cxf.cxf-rt-rs-sse;version='[3.4.5,3.4.6)',\ - org.apache.cxf.cxf-rt-security;version='[3.4.5,3.4.6)',\ - org.apache.cxf.cxf-rt-transports-http;version='[3.4.5,3.4.6)',\ si-units;version='[2.1.0,2.1.1)',\ si.uom.si-quantity;version='[2.1.0,2.1.1)',\ org.apache.aries.jax.rs.whiteboard;version='[2.0.0,2.0.1)',\ @@ -111,4 +102,11 @@ Fragment-Host: org.openhab.binding.nest org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ uom-lib-common;version='[2.2.0,2.2.1)',\ - com.fasterxml.woodstox.woodstox-core;version='[6.5.1,6.5.2)' + com.fasterxml.woodstox.woodstox-core;version='[6.5.1,6.5.2)',\ + org.apache.cxf.cxf-core;version='[3.6.1,3.6.2)',\ + org.apache.cxf.cxf-rt-frontend-jaxrs;version='[3.6.1,3.6.2)',\ + org.apache.cxf.cxf-rt-rs-client;version='[3.6.1,3.6.2)',\ + org.apache.cxf.cxf-rt-rs-sse;version='[3.6.1,3.6.2)',\ + org.apache.cxf.cxf-rt-security;version='[3.6.1,3.6.2)',\ + org.apache.cxf.cxf-rt-transports-http;version='[3.6.1,3.6.2)',\ + org.apache.ws.xmlschema.core;version='[2.3.0,2.3.1)' diff --git a/itests/org.openhab.binding.ntp.tests/itest.bndrun b/itests/org.openhab.binding.ntp.tests/itest.bndrun index 886eb8700..8ec5c4055 100644 --- a/itests/org.openhab.binding.ntp.tests/itest.bndrun +++ b/itests/org.openhab.binding.ntp.tests/itest.bndrun @@ -68,7 +68,6 @@ Fragment-Host: org.openhab.binding.ntp org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.systeminfo.tests/itest.bndrun b/itests/org.openhab.binding.systeminfo.tests/itest.bndrun index 0064834bf..212e043c6 100644 --- a/itests/org.openhab.binding.systeminfo.tests/itest.bndrun +++ b/itests/org.openhab.binding.systeminfo.tests/itest.bndrun @@ -71,7 +71,6 @@ Fragment-Host: org.openhab.binding.systeminfo org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.tradfri.tests/itest.bndrun b/itests/org.openhab.binding.tradfri.tests/itest.bndrun index 76b5a08a5..298a7cb23 100644 --- a/itests/org.openhab.binding.tradfri.tests/itest.bndrun +++ b/itests/org.openhab.binding.tradfri.tests/itest.bndrun @@ -75,7 +75,6 @@ Fragment-Host: org.openhab.binding.tradfri org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.binding.wemo.tests/itest.bndrun b/itests/org.openhab.binding.wemo.tests/itest.bndrun index 66b273cc0..2bd020540 100644 --- a/itests/org.openhab.binding.wemo.tests/itest.bndrun +++ b/itests/org.openhab.binding.wemo.tests/itest.bndrun @@ -80,7 +80,6 @@ Fragment-Host: org.openhab.binding.wemo org.openhab.core.thing;version='[4.1.0,4.1.1)',\ org.openhab.core.transform;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\ diff --git a/itests/org.openhab.persistence.mapdb.tests/itest.bndrun b/itests/org.openhab.persistence.mapdb.tests/itest.bndrun index dd971ca51..4517ed8e5 100644 --- a/itests/org.openhab.persistence.mapdb.tests/itest.bndrun +++ b/itests/org.openhab.persistence.mapdb.tests/itest.bndrun @@ -62,7 +62,6 @@ Fragment-Host: org.openhab.persistence.mapdb org.openhab.persistence.mapdb;version='[4.1.0,4.1.1)',\ org.openhab.persistence.mapdb.tests;version='[4.1.0,4.1.1)',\ org.openhab.base-fixes;version='[1.0.0,1.0.1)',\ - org.osgi.service.cm;version='[1.6.0,1.6.1)',\ javax.measure.unit-api;version='[2.2.0,2.2.1)',\ org.apiguardian.api;version='[1.1.2,1.1.3)',\ tech.units.indriya;version='[2.2.0,2.2.1)',\