From 626c6bde4aedc23b2af76efea2ef2f02f9c3617a Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Wed, 23 Aug 2023 09:14:15 +0200 Subject: [PATCH] Resolve runbundles for CXF upgrade (#15473) * Resolve runbundles for CXF upgrade Related to openhab/openhab-core#3770 Signed-off-by: Wouter Born * Replace Grizzly JAX-RS Client with Jetty HTTP client in hueemulation tests It seems that the Grizzly JAX-RS Client implementation does not work well with the new CXF dependencies on the classpath. As we do not use Grizzly anywhere else it is probably best to also stop using the Grizzly HTTP Server in these tests in the future. Signed-off-by: Wouter Born --------- Signed-off-by: Wouter Born --- .../internal/rest/CommonSetup.java | 50 ++++++++++++-- .../internal/rest/LightsAndGroupsTests.java | 65 ++++++++----------- .../internal/rest/RulesTests.java | 42 +++++------- .../internal/rest/SceneTests.java | 42 +++++------- .../internal/rest/ScheduleTests.java | 42 +++++------- .../internal/rest/SensorTests.java | 33 +++++----- .../internal/rest/UsersAndConfigTests.java | 31 ++++----- .../hueemulation/internal/upnp/UpnpTests.java | 10 +-- .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 2 - .../itest.bndrun | 2 - .../itest.bndrun | 2 - .../itest.bndrun | 18 +++-- .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - .../itest.bndrun | 1 - 24 files changed, 166 insertions(+), 185 deletions(-) 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 58a47cb0984..5a62abdf8be 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 0ec53175ab6..17470593b24 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 be994292f23..86cae0f05f6 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 4928e519d91..8b30f92c3f8 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 c73da12fcb0..4f06c214d65 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 941a0a582c4..ed64abbbd81 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 d015e3effcb..c7f3bfae0fc 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 3f0cb607077..be48f638bdd 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 ffc4418d150..04f6fb7f460 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 cf375405b15..c8ba7421947 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 ed64801acf7..828320e8b1f 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 d3143c3afd2..59da0be7c68 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 32eee8c1809..0d72120a8d9 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 d1a3568951c..af77119fb96 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 9c96ce8b7df..318d41a7b83 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 e606ffbf784..3f0244b3262 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 0436dd58874..1b570927289 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 8b58c66dfe5..838e26978de 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 fb061513ece..edaf5dcf72b 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 886eb8700fb..8ec5c4055f7 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 0064834bf3d..212e043c6b5 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 76b5a08a54a..298a7cb2339 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 66b273cc0e1..2bd02054006 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 dd971ca51d6..4517ed8e5ef 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)',\