From c00426841fc8ad254c986283de83a0cc4cea51c8 Mon Sep 17 00:00:00 2001 From: Rob Stryker Date: Mon, 6 Nov 2023 12:08:13 -0500 Subject: [PATCH] Fixes #714 - delay secure storage prompts Signed-off-by: Rob Stryker --- .../spi/servertype/AbstractServerType.java | 16 ++++++++++++++++ .../rsp/server/spi/servertype/IServerType.java | 1 + .../tools/rsp/server/model/ServerModel.java | 11 +---------- .../tools/rsp/server/model/ServerTypeTest.java | 5 +++++ .../minishift/servertype/impl/CDKServerType.java | 4 ++++ .../minishift/servertype/impl/CRCServerType.java | 4 ++++ 6 files changed, 31 insertions(+), 10 deletions(-) diff --git a/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/AbstractServerType.java b/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/AbstractServerType.java index edd84325c..2e3eace80 100644 --- a/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/AbstractServerType.java +++ b/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/AbstractServerType.java @@ -9,9 +9,11 @@ package org.jboss.tools.rsp.server.spi.servertype; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -30,6 +32,7 @@ import org.jboss.tools.rsp.eclipse.core.runtime.IStatus; import org.jboss.tools.rsp.eclipse.core.runtime.Status; import org.jboss.tools.rsp.server.spi.SPIActivator; +import org.jboss.tools.rsp.server.spi.model.IServerModel; import org.jboss.tools.rsp.server.spi.util.StatusConverter; public abstract class AbstractServerType implements IServerType { @@ -188,6 +191,19 @@ protected WorkflowResponse handleInitialCreateServerWorkflow(CreateServerWorkflo return workflow; } + public boolean hasSecureAttributes() { + Attributes a = getRequiredAttributes(); + Attributes b = getOptionalAttributes(); + Set all = new HashSet<>(); + all.addAll(a.getAttributes().keySet()); + all.addAll(b.getAttributes().keySet()); + for( Iterator i = all.iterator(); i.hasNext(); ) { + if( i.next().startsWith(IServerModel.SECURE_ATTRIBUTE_PREFIX)) + return true; + } + return false; + } + public ServerLaunchMode[] getLaunchModes() { return new ServerLaunchMode[] {}; } diff --git a/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/IServerType.java b/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/IServerType.java index d2d98ab69..6c91eabe3 100644 --- a/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/IServerType.java +++ b/framework/bundles/org.jboss.tools.rsp.server.spi/src/main/java/org/jboss/tools/rsp/server/spi/servertype/IServerType.java @@ -21,6 +21,7 @@ public interface IServerType { public IServerDelegate createServerDelegate(IServer server); public Attributes getRequiredAttributes(); public Attributes getOptionalAttributes(); + public boolean hasSecureAttributes(); public Attributes getRequiredLaunchAttributes(); public Attributes getOptionalLaunchAttributes(); public ServerLaunchMode[] getLaunchModes(); diff --git a/framework/bundles/org.jboss.tools.rsp.server/src/main/java/org/jboss/tools/rsp/server/model/ServerModel.java b/framework/bundles/org.jboss.tools.rsp.server/src/main/java/org/jboss/tools/rsp/server/model/ServerModel.java index dd98ce9d5..4f08df2b3 100644 --- a/framework/bundles/org.jboss.tools.rsp.server/src/main/java/org/jboss/tools/rsp/server/model/ServerModel.java +++ b/framework/bundles/org.jboss.tools.rsp.server/src/main/java/org/jboss/tools/rsp/server/model/ServerModel.java @@ -575,16 +575,7 @@ public ServerType[] getAccessibleServerTypes() { @Override public boolean hasSecureAttributes(IServerType type) { - Attributes a = type.getRequiredAttributes(); - Attributes b = type.getOptionalAttributes(); - Set all = new HashSet<>(); - all.addAll(a.getAttributes().keySet()); - all.addAll(b.getAttributes().keySet()); - for( Iterator i = all.iterator(); i.hasNext(); ) { - if( i.next().startsWith(IServerModel.SECURE_ATTRIBUTE_PREFIX)) - return true; - } - return false; + return type.hasSecureAttributes(); } @Override diff --git a/framework/tests/org.jboss.tools.rsp.server.test/src/main/java/org/jboss/tools/rsp/server/model/ServerTypeTest.java b/framework/tests/org.jboss.tools.rsp.server.test/src/main/java/org/jboss/tools/rsp/server/model/ServerTypeTest.java index 6dc592d98..91b351159 100644 --- a/framework/tests/org.jboss.tools.rsp.server.test/src/main/java/org/jboss/tools/rsp/server/model/ServerTypeTest.java +++ b/framework/tests/org.jboss.tools.rsp.server.test/src/main/java/org/jboss/tools/rsp/server/model/ServerTypeTest.java @@ -313,5 +313,10 @@ public WorkflowResponse createServerWorkflow(RSPServer server, CreateServerWorkf return null; } + @Override + public boolean hasSecureAttributes() { + return false; + } + } } diff --git a/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CDKServerType.java b/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CDKServerType.java index 2e8a8e1ae..3309d9598 100644 --- a/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CDKServerType.java +++ b/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CDKServerType.java @@ -26,6 +26,10 @@ public class CDKServerType extends BaseMinishiftServerType { public CDKServerType(String id, String name, String desc) { super(id, name, desc); } + + public boolean hasSecureAttributes() { + return true; + } private IServerManagementModel getServerManagementModel() { if( LauncherSingleton.getDefault() == null ) diff --git a/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CRCServerType.java b/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CRCServerType.java index 9909aabea..f6bd1968d 100644 --- a/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CRCServerType.java +++ b/runtimes/bundles/org.jboss.tools.rsp.server.minishift/src/main/java/org/jboss/tools/rsp/server/minishift/servertype/impl/CRCServerType.java @@ -26,6 +26,10 @@ public IServerDelegate createServerDelegate(IServer server) { return new CRCServerDelegate(server); } + public boolean hasSecureAttributes() { + return true; + } + @Override protected void fillRequiredAttributes(CreateServerAttributesUtility attrs) { attrs.addAttribute(IMinishiftServerAttributes.MINISHIFT_BINARY,