Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bundle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
</repositories>

<properties>
<ide-plugins-common-version>2.4.0</ide-plugins-common-version>
<ide-plugins-common-version>2.4.1</ide-plugins-common-version>
</properties>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
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.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 CliDriverWrapper instance;

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 JfrogCliDriver cliDriver;

private CliDriverWrapper() {
try {
Files.createDirectories(HOME_PATH);
} catch (Exception 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("An error occurred while downloading the JFrog CLI:",e);
}
}

public static CliDriverWrapper getInstance() {
if (instance == null) {
synchronized (CliDriverWrapper.class) {
if (instance == null) {
instance = new CliDriverWrapper();
}
}
}
return instance;
}

public JfrogCliDriver getCliDriver() {
return cliDriver;
}

public void showCliError(String errorTitle,Exception e) {
Logger.getInstance().error(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", errorTitle, status);
}
});
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jfrog.ide.eclipse.configuration;

import org.eclipse.core.runtime.ICoreRunnable;
import org.eclipse.core.runtime.preferences.ConfigurationScope;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.PreferenceDialog;
Expand All @@ -10,6 +11,7 @@
import org.eclipse.ui.dialogs.PreferencesUtil;
import org.eclipse.ui.preferences.ScopedPreferenceStore;

import com.jfrog.ide.eclipse.scheduling.CliJob;
import com.jfrog.ide.eclipse.ui.ComponentDetails;
import com.jfrog.ide.eclipse.ui.issues.ComponentIssueDetails;

Expand Down Expand Up @@ -42,11 +44,32 @@ public void createFieldEditors() {

@Override
public boolean performOk() {
// TODO: This code runs when clicking the 'Apply' button in the settings panel. Implement server configuration using CliDriver here
super.performOk();
if (!XrayServerConfigImpl.getInstance().areCredentialsSet()) {
return true;
}

// Define the runnable to execute the CLI config command
ICoreRunnable runnable = monitor -> {
try {
CliDriverWrapper.getInstance().getCliDriver().addCliServerConfig(
XrayServerConfigImpl.getInstance().getXrayUrl(),
XrayServerConfigImpl.getInstance().getArtifactoryUrl(),
CliDriverWrapper.CLIENT_ID_SERVER,
XrayServerConfigImpl.getInstance().getUsername(),
XrayServerConfigImpl.getInstance().getPassword(),
XrayServerConfigImpl.getInstance().getAccessToken(),
CliDriverWrapper.HOME_PATH.toFile(),
System.getenv()
);
} catch (Exception e) {
CliDriverWrapper.getInstance().showCliError("An error occurred while setting up the server connection:", e);
}
};

// Schedule the CliJob to execute the runnable
CliJob.doSchedule("Setup Server Configuration", runnable);

boolean doQuickScan = false;
ComponentDetails[] componentsDetails = { ComponentIssueDetails.getInstance()};
for (ComponentDetails componentsDetail : componentsDetails) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import com.jfrog.ide.eclipse.configuration.XrayServerConfigImpl;
import com.jfrog.ide.eclipse.log.Logger;
import com.jfrog.ide.eclipse.log.ProgressIndicatorImpl;
import com.jfrog.ide.eclipse.scheduling.ScanJob;
import com.jfrog.ide.eclipse.scheduling.CliJob;
import com.jfrog.ide.eclipse.ui.FilterManagerSingleton;
import com.jfrog.ide.eclipse.ui.issues.IssuesTree;
import com.jfrog.ide.eclipse.utils.ProjectsMap;
Expand Down Expand Up @@ -76,7 +76,7 @@ public IProgressMonitor getMonitor(){
* disposed.
*/
public void scanAndUpdateResults(boolean quickScan, IssuesTree issuesTree, Composite parent) {
ScanJob.doSchedule(project.getName(), new ScanRunnable(parent, issuesTree, quickScan));
CliJob.doSchedule(project.getName(), new ScanRunnable(parent, issuesTree, quickScan));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@
*
* @author yahavi
*/
public class ScanJob extends Job {
public class CliJob extends Job {

private ICoreRunnable runnable;
public static String FAMILY = "JFrogEclipsePluginJob";

public ScanJob(String name, ICoreRunnable runnable) {
public CliJob(String name, ICoreRunnable runnable) {
super(name);
setUser(true);
setRule(ResourcesPlugin.getWorkspace().getRoot());
addJobChangeListener(new XrayJobEventListener());
addJobChangeListener(new CliJobEventListener());
this.runnable = runnable;
}

Expand All @@ -33,7 +33,7 @@ public ScanJob(String name, ICoreRunnable runnable) {
* @param runnable - Job's callback.
*/
public static void doSchedule(String name, ICoreRunnable runnable) {
new ScanJob(name, runnable).schedule();
new CliJob(name, runnable).schedule();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;

public class XrayJobEventListener extends JobChangeAdapter {
public class CliJobEventListener extends JobChangeAdapter {

@Override
public void done(IJobChangeEvent event) {
Job[] jobs = Job.getJobManager().find(ScanJob.FAMILY);
Job[] jobs = Job.getJobManager().find(CliJob.FAMILY);
// TODO: implement a listener for the audit scan
// ScanManagersFactory scanManagersFactory = ScanManagersFactory.getInstance();
if (ArrayUtils.isEmpty(jobs)) {
Expand Down