From 23703bad3cf95809ee5e71bddd750914a993da09 Mon Sep 17 00:00:00 2001 From: "Michael N. Lipp" Date: Sat, 26 Oct 2024 21:11:50 +0200 Subject: [PATCH] Adapt to new webconsole base. --- org.jdrupes.vmoperator.manager/build.gradle | 2 +- org.jdrupes.vmoperator.vmconlet/build.gradle | 2 +- org.jdrupes.vmoperator.vmviewer/build.gradle | 2 +- .../jdrupes/vmoperator/vmviewer/VmViewer.java | 22 ++++++++++--------- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/org.jdrupes.vmoperator.manager/build.gradle b/org.jdrupes.vmoperator.manager/build.gradle index a4c302e..0cc520a 100644 --- a/org.jdrupes.vmoperator.manager/build.gradle +++ b/org.jdrupes.vmoperator.manager/build.gradle @@ -17,7 +17,7 @@ dependencies { implementation 'org.jgrapes:org.jgrapes.io:[2.12.1,3)' implementation 'org.jgrapes:org.jgrapes.http:[3.5.0,4)' - implementation 'org.jgrapes:org.jgrapes.webconsole.base:[1.8.0,2)' + implementation 'org.jgrapes:org.jgrapes.webconsole.base:[2.0.0,3)' implementation 'org.jgrapes:org.jgrapes.webconsole.vuejs:[1.5.0,2)' implementation 'org.jgrapes:org.jgrapes.webconsole.rbac:[1.4.0,2)' implementation 'org.jgrapes:org.jgrapes.webconlet.oidclogin:[1.7.0,2)' diff --git a/org.jdrupes.vmoperator.vmconlet/build.gradle b/org.jdrupes.vmoperator.vmconlet/build.gradle index 3f1f18e..4056256 100644 --- a/org.jdrupes.vmoperator.vmconlet/build.gradle +++ b/org.jdrupes.vmoperator.vmconlet/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { implementation project(':org.jdrupes.vmoperator.manager.events') - implementation 'org.jgrapes:org.jgrapes.webconsole.base:[1.8.0,2)' + implementation 'org.jgrapes:org.jgrapes.webconsole.base:[2.0.0.3)' implementation 'org.jgrapes:org.jgrapes.webconsole.provider.vue:[1,2)' implementation 'org.jgrapes:org.jgrapes.webconsole.provider.jgwcvuecomponents:[1.2,2)' implementation 'org.jgrapes:org.jgrapes.webconsole.provider.chartjs:[1.2,2)' diff --git a/org.jdrupes.vmoperator.vmviewer/build.gradle b/org.jdrupes.vmoperator.vmviewer/build.gradle index 3f1f18e..b5faf7c 100644 --- a/org.jdrupes.vmoperator.vmviewer/build.gradle +++ b/org.jdrupes.vmoperator.vmviewer/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { implementation project(':org.jdrupes.vmoperator.manager.events') - implementation 'org.jgrapes:org.jgrapes.webconsole.base:[1.8.0,2)' + implementation 'org.jgrapes:org.jgrapes.webconsole.base:[2.0.0,3)' implementation 'org.jgrapes:org.jgrapes.webconsole.provider.vue:[1,2)' implementation 'org.jgrapes:org.jgrapes.webconsole.provider.jgwcvuecomponents:[1.2,2)' implementation 'org.jgrapes:org.jgrapes.webconsole.provider.chartjs:[1.2,2)' diff --git a/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java b/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java index db89b81..59cc98f 100644 --- a/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java +++ b/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java @@ -25,6 +25,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSyntaxException; import freemarker.core.ParseException; import freemarker.template.MalformedTemplateNameException; import freemarker.template.Template; @@ -47,8 +48,6 @@ import java.util.ResourceBundle; import java.util.Set; import java.util.logging.Level; import org.bouncycastle.util.Objects; -import org.jdrupes.json.JsonBeanDecoder; -import org.jdrupes.json.JsonDecodeException; import org.jdrupes.vmoperator.common.K8sDynamicModel; import org.jdrupes.vmoperator.common.K8sObserver; import org.jdrupes.vmoperator.common.VmDefinitionModel; @@ -153,7 +152,7 @@ public class VmViewer extends FreeMarkerConlet { * * @param event the event */ - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "PMD.AvoidDuplicateLiterals" }) @Handler public void onConfigurationUpdate(ConfigurationUpdate event) { event.structured(componentPath()).ifPresent(c -> { @@ -419,16 +418,19 @@ public class VmViewer extends FreeMarkerConlet { if (Strings.isNullOrEmpty(model.vmName())) { return; } - channelTracker.associated(model.vmName()).ifPresent(vmDef -> { + channelTracker.value(model.vmName()).ifPresent(item -> { try { - var def = JsonBeanDecoder.create(vmDef.data().toString()) - .readObject(); - def.setField("userPermissions", + var vmDef = item.associated(); + @SuppressWarnings("unchecked") + var def = (Map) item.channel().client() + .getJSON().getGson() + .fromJson(vmDef.data().toString(), Map.class); + def.put("userPermissions", permissions(vmDef, channel.session()).stream() .map(Permission::toString).toList()); channel.respond(new NotifyConletView(type(), model.getConletId(), "updateVmDefinition", def)); - } catch (JsonDecodeException e) { + } catch (JsonSyntaxException e) { logger.log(Level.SEVERE, e, () -> "Failed to serialize VM definition"); } @@ -458,7 +460,7 @@ public class VmViewer extends FreeMarkerConlet { "PMD.AvoidInstantiatingObjectsInLoops", "PMD.AvoidDuplicateLiterals", "PMD.ConfusingArgumentToVarargsMethod" }) public void onVmDefChanged(VmDefChanged event, VmChannel channel) - throws JsonDecodeException, IOException { + throws IOException { var vmDef = new VmDefinitionModel(channel.client().getJSON() .getGson(), event.vmDefinition().data()); GsonPtr.to(vmDef.data()).to("metadata").get(JsonObject.class) @@ -547,7 +549,7 @@ public class VmViewer extends FreeMarkerConlet { private void selectVm(NotifyConletModel event, ConsoleConnection channel, ViewerModel model) throws JsonProcessingException { - model.setVmName(event.params().asString(0)); + model.setVmName(event.param(0)); String jsonState = objectMapper.writeValueAsString(model); channel.respond(new KeyValueStoreUpdate().update(storagePath( channel.session(), model.getConletId()), jsonState));