From 84a31112e0d0f6bba9a8e391741169c1b939f4b7 Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 11:07:53 +0200 Subject: [PATCH 1/7] Update XrayGlobalConfiguration.java --- .../eclipse/configuration/XrayGlobalConfiguration.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java index cabe770..bdb23c1 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java @@ -48,6 +48,15 @@ public boolean performOk() { if (!XrayServerConfigImpl.getInstance().areCredentialsSet()) { return true; } + CliDriverWrapper.getInstance().getCliDriver().addCliServerConfig( + XrayServerConfigImpl.getInstance().getXrayUrl(), + XrayServerConfigImpl.getInstance().getArtifactoryUrl(), + CliDriverWrapper.getInstance().CLIENT_ID_SERVER, + XrayServerConfigImpl.getInstance().getUsername(), + XrayServerConfigImpl.getInstance().getPassword(), + XrayServerConfigImpl.getInstance().getAccessToken(), + Paths.get(System.getProperty("user.home"), ".jfrog-eclipse-plugin").toFile() // Convert Path to File here + ); boolean doQuickScan = false; ComponentDetails[] componentsDetails = { ComponentIssueDetails.getInstance(), ComponentLicenseDetails.getInstance() }; for (ComponentDetails componentsDetail : componentsDetails) { From d7c861792b5bcee69c303e5e433bb9aafe212616 Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 11:08:50 +0200 Subject: [PATCH 2/7] Update XrayGlobalConfiguration.java --- .../ide/eclipse/configuration/XrayGlobalConfiguration.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java index bdb23c1..00f00c9 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java @@ -1,5 +1,7 @@ package com.jfrog.ide.eclipse.configuration; +import java.nio.file.Path; +import java.nio.file.Paths; import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.PreferenceDialog; From 50f9ed688bf1d3c60f4d799d7ec72fae2e9b928f Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 11:10:00 +0200 Subject: [PATCH 3/7] Create CliDriverWrapper.java --- .../configuration/CliDriverWrapper.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java new file mode 100644 index 0000000..c2638ed --- /dev/null +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java @@ -0,0 +1,58 @@ +package com.jfrog.ide.eclipse.configuration; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import org.jfrog.build.client.Version; + +import com.jfrog.ide.common.configuration.JfrogCliDriver; +import com.jfrog.ide.eclipse.log.Logger; + +public class CliDriverWrapper { + + // Private static instance of the class (Singleton) + private static CliDriverWrapper instance; + + // Instance of JfrogCliDriver + private JfrogCliDriver cliDriver; + + // Constants + public static final String CLIENT_ID_SERVER = "eclipse"; + public static final String CLI_VERSION = "2.74.1"; + public static final Path HOME_PATH = Paths.get(System.getProperty("user.home"), ".jfrog-eclipse-plugin"); + + + // Private constructor to prevent instantiation from outside + private CliDriverWrapper() { + try { + Files.createDirectories(HOME_PATH); + } catch (IOException e) { + e.printStackTrace(); + } + Version RequestedVersion = new Version(this.CLI_VERSION); + // Initialize the cliDriver and download CLI if needed + this.cliDriver = new JfrogCliDriver(null,Logger.getInstance()); + try { + this.cliDriver.downloadCliIfNeeded(HOME_PATH.toString(), RequestedVersion); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static CliDriverWrapper getInstance() { + if (instance == null) { + synchronized (CliDriverWrapper.class) { + if (instance == null) { + instance = new CliDriverWrapper(); + } + } + } + return instance; + } + + public JfrogCliDriver getCliDriver() { + return cliDriver; + } +} From e1bd060e4ecedea953b0ce135fc6244d59293833 Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 11:20:48 +0200 Subject: [PATCH 4/7] added error handeling --- .../configuration/CliDriverWrapper.java | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java index c2638ed..cbf6858 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java @@ -4,8 +4,11 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; -import org.jfrog.build.client.Version; import com.jfrog.ide.common.configuration.JfrogCliDriver; import com.jfrog.ide.eclipse.log.Logger; @@ -17,7 +20,7 @@ public class CliDriverWrapper { // Instance of JfrogCliDriver private JfrogCliDriver cliDriver; - + // Constants public static final String CLIENT_ID_SERVER = "eclipse"; public static final String CLI_VERSION = "2.74.1"; @@ -26,19 +29,18 @@ public class CliDriverWrapper { // Private constructor to prevent instantiation from outside private CliDriverWrapper() { - try { - Files.createDirectories(HOME_PATH); - } catch (IOException e) { - e.printStackTrace(); - } - Version RequestedVersion = new Version(this.CLI_VERSION); + try { + Files.createDirectories(HOME_PATH); + } catch (IOException e) { + this.showCliError(e); + } // Initialize the cliDriver and download CLI if needed - this.cliDriver = new JfrogCliDriver(null,Logger.getInstance()); + this.cliDriver = new JfrogCliDriver(null, Logger.getInstance()); try { - this.cliDriver.downloadCliIfNeeded(HOME_PATH.toString(), RequestedVersion); - } catch (IOException e) { - e.printStackTrace(); - } + this.cliDriver.downloadCliIfNeeded(HOME_PATH.toString(), CLI_VERSION); + } catch (IOException e) { + this.showCliError(e); + } } public static CliDriverWrapper getInstance() { @@ -55,4 +57,16 @@ public static CliDriverWrapper getInstance() { public JfrogCliDriver getCliDriver() { return cliDriver; } + + private void showCliError(Error e){ + Logger.getInstance().error(e.getMessage()); + IStatus status = new Status(IStatus.ERROR, "jfrog-eclipse-plugin", "An error occurred: " + e.getMessage(), e); + Display.getDefault().asyncExec(() -> { + Shell shell = Display.getDefault().getActiveShell(); + if (shell != null) { + ErrorDialog.openError(shell, "Error", "An error occurred", status); + } + }); + } } + From 4ee7be334e61bc7871e4922ba52278e3ecd2f846 Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 11:27:18 +0200 Subject: [PATCH 5/7] fix up bugs --- .../configuration/CliDriverWrapper.java | 38 +++++++++---------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java index cbf6858..e614904 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java @@ -5,41 +5,36 @@ import java.nio.file.Path; import java.nio.file.Paths; import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; - import com.jfrog.ide.common.configuration.JfrogCliDriver; import com.jfrog.ide.eclipse.log.Logger; public class CliDriverWrapper { - // Private static instance of the class (Singleton) private static CliDriverWrapper instance; - // Instance of JfrogCliDriver - private JfrogCliDriver cliDriver; - - // Constants public static final String CLIENT_ID_SERVER = "eclipse"; public static final String CLI_VERSION = "2.74.1"; - public static final Path HOME_PATH = Paths.get(System.getProperty("user.home"), ".jfrog-eclipse-plugin"); + public static final Path HOME_PATH = Paths.get(System.getProperty("user.home"), ".jfrog-eclipse-plugin"); + private JfrogCliDriver cliDriver; - // Private constructor to prevent instantiation from outside private CliDriverWrapper() { try { Files.createDirectories(HOME_PATH); - } catch (IOException e) { - this.showCliError(e); + } catch (Exception e) { + showCliError(e); } // Initialize the cliDriver and download CLI if needed this.cliDriver = new JfrogCliDriver(null, Logger.getInstance()); try { this.cliDriver.downloadCliIfNeeded(HOME_PATH.toString(), CLI_VERSION); } catch (IOException e) { - this.showCliError(e); + showCliError(e); } } @@ -58,15 +53,16 @@ public JfrogCliDriver getCliDriver() { return cliDriver; } - private void showCliError(Error e){ - Logger.getInstance().error(e.getMessage()); + private void showCliError(Exception e) { + Logger.getInstance().error(e.getMessage(), e); IStatus status = new Status(IStatus.ERROR, "jfrog-eclipse-plugin", "An error occurred: " + e.getMessage(), e); - Display.getDefault().asyncExec(() -> { - Shell shell = Display.getDefault().getActiveShell(); - if (shell != null) { - ErrorDialog.openError(shell, "Error", "An error occurred", status); - } - }); - } -} + // Run UI-related code on the main UI thread + Display.getDefault().asyncExec(() -> { + Shell shell = Display.getDefault().getActiveShell(); + if (shell != null) { + ErrorDialog.openError(shell, "Error", "An error occurred", status); + } + }); + } +} From 87a12ad43c1ae69337a3173e10d85a3a8c2e9d7e Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 14:50:30 +0200 Subject: [PATCH 6/7] fix up bugs --- .../eclipse/configuration/CliDriverWrapper.java | 2 +- .../configuration/XrayGlobalConfiguration.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java index e614904..728da42 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java @@ -53,7 +53,7 @@ public JfrogCliDriver getCliDriver() { return cliDriver; } - private void showCliError(Exception e) { + public void showCliError(Exception e) { Logger.getInstance().error(e.getMessage(), e); IStatus status = new Status(IStatus.ERROR, "jfrog-eclipse-plugin", "An error occurred: " + e.getMessage(), e); diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java index 00f00c9..96f1c1b 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java @@ -19,7 +19,7 @@ /** * Panel for configuring Xray URL, username and password. - * + * * @author yahavi */ public class XrayGlobalConfiguration extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { @@ -50,15 +50,20 @@ public boolean performOk() { if (!XrayServerConfigImpl.getInstance().areCredentialsSet()) { return true; } - CliDriverWrapper.getInstance().getCliDriver().addCliServerConfig( + try{ + CliDriverWrapper.getInstance(); + CliDriverWrapper.getInstance().getCliDriver().addCliServerConfig( XrayServerConfigImpl.getInstance().getXrayUrl(), XrayServerConfigImpl.getInstance().getArtifactoryUrl(), - CliDriverWrapper.getInstance().CLIENT_ID_SERVER, + CliDriverWrapper.CLIENT_ID_SERVER, XrayServerConfigImpl.getInstance().getUsername(), XrayServerConfigImpl.getInstance().getPassword(), - XrayServerConfigImpl.getInstance().getAccessToken(), - Paths.get(System.getProperty("user.home"), ".jfrog-eclipse-plugin").toFile() // Convert Path to File here + CliDriverWrapper.HOME_PATH.toFile() ); + } + catch (e Exception){ + CliDriverWrapper.getInstance().showCliError(e); + } boolean doQuickScan = false; ComponentDetails[] componentsDetails = { ComponentIssueDetails.getInstance(), ComponentLicenseDetails.getInstance() }; for (ComponentDetails componentsDetail : componentsDetails) { From 98a868a168996e7917e34dbc33a2e4d331ba665e Mon Sep 17 00:00:00 2001 From: Eyal Kapon Date: Wed, 26 Mar 2025 15:16:59 +0200 Subject: [PATCH 7/7] added the appropriate error handling --- .../ide/eclipse/configuration/CliDriverWrapper.java | 10 +++++----- .../eclipse/configuration/XrayGlobalConfiguration.java | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java index 728da42..f3858de 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/CliDriverWrapper.java @@ -27,14 +27,14 @@ private CliDriverWrapper() { try { Files.createDirectories(HOME_PATH); } catch (Exception e) { - showCliError(e); + showCliError("An error occurred while creating the JFrog Eclipse plugin directory:",e); } // Initialize the cliDriver and download CLI if needed this.cliDriver = new JfrogCliDriver(null, Logger.getInstance()); try { this.cliDriver.downloadCliIfNeeded(HOME_PATH.toString(), CLI_VERSION); } catch (IOException e) { - showCliError(e); + showCliError("An error occurred while downloading the JFrog cli:",e); } } @@ -53,15 +53,15 @@ public JfrogCliDriver getCliDriver() { return cliDriver; } - public void showCliError(Exception e) { + public void showCliError(String errorTitle,Exception e) { Logger.getInstance().error(e.getMessage(), e); - IStatus status = new Status(IStatus.ERROR, "jfrog-eclipse-plugin", "An error occurred: " + e.getMessage(), e); + IStatus status = new Status(IStatus.ERROR, "jfrog-eclipse-plugin",e.getMessage(), e); // Run UI-related code on the main UI thread Display.getDefault().asyncExec(() -> { Shell shell = Display.getDefault().getActiveShell(); if (shell != null) { - ErrorDialog.openError(shell, "Error", "An error occurred", status); + ErrorDialog.openError(shell, "Error", errorTitle, status); } }); } diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java index 96f1c1b..5a9fef4 100644 --- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java +++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayGlobalConfiguration.java @@ -61,8 +61,8 @@ public boolean performOk() { CliDriverWrapper.HOME_PATH.toFile() ); } - catch (e Exception){ - CliDriverWrapper.getInstance().showCliError(e); + catch (Exception e){ + CliDriverWrapper.getInstance().showCliError("An error occurred while Setting up the server connection:",e); } boolean doQuickScan = false; ComponentDetails[] componentsDetails = { ComponentIssueDetails.getInstance(), ComponentLicenseDetails.getInstance() };