diff --git a/bundle/.classpath b/bundle/.classpath
index 1e1847c..0d72691 100644
--- a/bundle/.classpath
+++ b/bundle/.classpath
@@ -13,4 +13,4 @@
-
+
\ No newline at end of file
diff --git a/bundle/icons/critical.png b/bundle/icons/critical.png
new file mode 100644
index 0000000..9e61d5c
Binary files /dev/null and b/bundle/icons/critical.png differ
diff --git a/bundle/icons/default.png b/bundle/icons/default.png
index b02ac09..9e61d5c 100755
Binary files a/bundle/icons/default.png and b/bundle/icons/default.png differ
diff --git a/bundle/icons/high.png b/bundle/icons/high.png
index ef73c61..14dfcb9 100755
Binary files a/bundle/icons/high.png and b/bundle/icons/high.png differ
diff --git a/bundle/icons/low.png b/bundle/icons/low.png
index c0245ba..d35134d 100755
Binary files a/bundle/icons/low.png and b/bundle/icons/low.png differ
diff --git a/bundle/icons/medium.png b/bundle/icons/medium.png
index 2aae8b9..05c75df 100755
Binary files a/bundle/icons/medium.png and b/bundle/icons/medium.png differ
diff --git a/bundle/icons/normal.png b/bundle/icons/normal.png
index 4402ffe..73d5a4e 100755
Binary files a/bundle/icons/normal.png and b/bundle/icons/normal.png differ
diff --git a/bundle/icons/unknown.png b/bundle/icons/unknown.png
index 2ed42f4..ea57326 100755
Binary files a/bundle/icons/unknown.png and b/bundle/icons/unknown.png differ
diff --git a/bundle/pom.xml b/bundle/pom.xml
index ffdde27..6e45a7d 100644
--- a/bundle/pom.xml
+++ b/bundle/pom.xml
@@ -20,10 +20,14 @@
releases
https://releases.jfrog.io/artifactory/oss-releases
+
+ gradle
+ https://repo.gradle.org/gradle/libs-releases
+
- 1.1.1
+ 1.6.1
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/PreferenceConstants.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/PreferenceConstants.java
index 6e01160..4672d5a 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/PreferenceConstants.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/PreferenceConstants.java
@@ -12,9 +12,12 @@ public class PreferenceConstants {
public static final String XRAY_URL = "URL";
public static final String XRAY_USERNAME = "Username";
public static final String XRAY_PASSWORD = "Password";
+
+ // Connection constants
+ public static final int CONNECTION_TIMEOUT_MILLISECONDS = 300 * 1000;
+ public static final int CONNECTION_RETRIES = 5;
// Eclipse Buildship plugins
public static final String GRADLE_PLUGIN_QUALIFIER = "org.eclipse.buildship.core";
public static final String GRADLE_DISTRIBUTION = "gradle.distribution";
-
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/TestConnectionButton.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/TestConnectionButton.java
index 2a4c122..0411671 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/TestConnectionButton.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/TestConnectionButton.java
@@ -12,13 +12,13 @@
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
-import org.jfrog.client.http.model.ProxyConfig;
import org.osgi.framework.FrameworkUtil;
import com.jfrog.ide.common.utils.XrayConnectionUtils;
import com.jfrog.xray.client.Xray;
-import com.jfrog.xray.client.impl.XrayClient;
+import com.jfrog.xray.client.impl.XrayClientBuilder;
import com.jfrog.xray.client.services.system.Version;
+import com.jfrog.ide.eclipse.log.Logger;
/**
* Button in the configuration panel for testing connection with Xray.
@@ -79,16 +79,28 @@ protected void doStore() {
public int getNumberOfControls() {
return 1;
}
+
+ private Xray createXrayClient() {
+ String url = urlEditor.getStringValue();
+ String xrayUrl = url.endsWith("/") ? url + "xray" : url + "/xray";
+ XrayServerConfigImpl serverConfig = XrayServerConfigImpl.getInstance();
+
+ return (Xray) new XrayClientBuilder()
+ .setUrl(xrayUrl)
+ .setUserName(usernameEditor.getStringValue())
+ .setPassword(passwordEditor.getStringValue())
+ .setUserAgent(USER_AGENT)
+ .setProxyConfiguration(serverConfig.getProxyConfForTargetUrl(xrayUrl))
+ .setLog(Logger.getInstance())
+ .build();
+ }
private class ButtonSelection extends SelectionAdapter {
@Override
public void widgetSelected(SelectionEvent e) {
try {
connectionResults.setText("Connecting to Xray...");
- String url = urlEditor.getStringValue();
- ProxyConfig proxyConfig = XrayServerConfigImpl.getInstance().getProxyConfForTargetUrl(url);
- Xray xrayClient = XrayClient.create(url, usernameEditor.getStringValue(),
- passwordEditor.getStringValue(), USER_AGENT, false, proxyConfig);
+ Xray xrayClient = createXrayClient();
Version xrayVersion = xrayClient.system().version();
if (!XrayConnectionUtils.isXrayVersionSupported(xrayVersion)) {
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayServerConfigImpl.java b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayServerConfigImpl.java
index 7a6400f..ef442a4 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayServerConfigImpl.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/configuration/XrayServerConfigImpl.java
@@ -4,6 +4,8 @@
import java.net.URI;
+import javax.net.ssl.SSLContext;
+
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.internal.net.ProxyManager;
@@ -11,15 +13,15 @@
import org.eclipse.core.net.proxy.IProxyService;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IPreferencesService;
-import org.jfrog.client.http.model.ProxyConfig;
+import org.jfrog.build.client.ProxyConfiguration;
-import com.jfrog.ide.common.configuration.XrayServerConfig;
+import com.jfrog.ide.common.configuration.ServerConfig;
/**
* @author yahavi
*/
@SuppressWarnings("restriction")
-public class XrayServerConfigImpl implements XrayServerConfig {
+public class XrayServerConfigImpl implements ServerConfig {
private static XrayServerConfigImpl instance;
private IPreferencesService service = Platform.getPreferencesService();
@@ -51,7 +53,7 @@ private String getValue(String key) {
}
@Override
- public ProxyConfig getProxyConfForTargetUrl(String xrayUrl) {
+ public ProxyConfiguration getProxyConfForTargetUrl(String xrayUrl) {
xrayUrl = StringUtils.defaultIfBlank(xrayUrl, getUrl());
IProxyService service = ProxyManager.getProxyManager();
IProxyData[] proxyData = service.select(URI.create(xrayUrl));
@@ -59,13 +61,50 @@ public ProxyConfig getProxyConfForTargetUrl(String xrayUrl) {
return null;
}
- ProxyConfig proxyConfig = new ProxyConfig();
- proxyConfig.setHost(trim(proxyData[0].getHost()));
- proxyConfig.setPort(proxyData[0].getPort());
+ ProxyConfiguration proxyConfig = new ProxyConfiguration();
+ proxyConfig.host = trim(proxyData[0].getHost());
+ proxyConfig.port = proxyData[0].getPort();
if (proxyData[0].isRequiresAuthentication()) {
- proxyConfig.setUsername(trim(proxyData[0].getUserId()));
- proxyConfig.setPassword(proxyData[0].getPassword());
+ proxyConfig.username = trim(proxyData[0].getUserId());
+ proxyConfig.password = proxyData[0].getPassword();
}
return proxyConfig;
}
+
+ @Override
+ public String getXrayUrl() {
+ String url = getUrl();
+ String xrayUrl = url.endsWith("/") ? url + "xray" : url + "/xray";
+ return xrayUrl;
+ }
+
+ @Override
+ public String getArtifactoryUrl() {
+ String url = getUrl();
+ String artifactoryUrl = url.endsWith("/") ? url + "artifactory" : url + "/artifactory";
+ return artifactoryUrl;
+ }
+
+ @Override
+ public int getConnectionRetries() {
+ return PreferenceConstants.CONNECTION_RETRIES;
+ }
+
+ @Override
+ public int getConnectionTimeout() {
+ return PreferenceConstants.CONNECTION_TIMEOUT_MILLISECONDS;
+ }
+
+ @Override
+ public SSLContext getSslContext() {
+ // This method is not used by the plug-in.
+ return null;
+ }
+
+ @Override
+ public boolean isInsecureTls() {
+ // This method is not used by the plug-in.
+ return false;
+ }
+
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/GradleScanManager.java b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/GradleScanManager.java
index 01171e8..6e9ea64 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/GradleScanManager.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/GradleScanManager.java
@@ -11,7 +11,6 @@
import java.util.Set;
import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.StringUtils;
import org.eclipse.buildship.core.GradleDistribution;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
@@ -23,13 +22,15 @@
import org.gradle.tooling.ProgressEvent;
import org.gradle.tooling.ProgressListener;
import org.gradle.tooling.ProjectConnection;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.GeneralInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Sets;
import com.jfrog.ide.common.scan.ComponentPrefix;
+import com.jfrog.ide.common.gradle.GradleTreeBuilder;
import com.jfrog.ide.eclipse.configuration.PreferenceConstants;
+import com.jfrog.ide.eclipse.log.Logger;
import com.jfrog.ide.eclipse.utils.GradleArtifact;
public class GradleScanManager extends ScanManager {
@@ -37,6 +38,7 @@ public class GradleScanManager extends ScanManager {
private static final String TASK_NAME = "generateDependenciesGraphAsJson";
public static final String GRADLE_INIT_SCRIPT = "dependencies.gradle";
public static final String GRADLESCRIPTDIR = "gradleScript";
+ private final GradleTreeBuilder gradleTreeBuilder;
private static ObjectMapper objectMapper = new ObjectMapper();
private GradleArtifact gradleArtifact;
@@ -45,6 +47,7 @@ public class GradleScanManager extends ScanManager {
public GradleScanManager(IProject project) throws IOException {
super(project, ComponentPrefix.GAV);
getLog().info("Found Gradle project: " + getProjectName());
+ gradleTreeBuilder = new GradleTreeBuilder(project.getLocation().toFile().toPath(), System.getenv());
}
public static boolean isApplicable(IProject project) {
@@ -56,40 +59,14 @@ public static boolean isApplicable(IProject project) {
}
@Override
- void refreshDependencies(IProgressMonitor monitor) throws IOException {
- this.monitor = monitor;
- String rootProjectDir = project.getLocation().toPortableString();
- if (project.getLocation().toFile().isDirectory()) {
- rootProjectDir = project.getLocation().addTrailingSeparator().toPortableString();
+ void buildTree() throws IOException {
+ try {
+ setScanResults(gradleTreeBuilder.buildTree(getLog()));
+ }
+ catch (IOException ex) {
+ Logger.getInstance().warn("Could not scan project: " + getProjectName() + ". Reason is: " + ex.getMessage());
}
- String gradleFileNameFullPath = "/gradle/" + GRADLE_INIT_SCRIPT;
- ClassLoader classLoader = GradleScanManager.class.getClassLoader();
- // classLoader.getResourceAsStream(gradleFileNameFullPath) will work on all the
- // OSes
- try (InputStream res = classLoader.getResourceAsStream(gradleFileNameFullPath)) {
- String gradleFile = createGradleFile(res);
- if (StringUtils.isBlank(gradleFile)) {
- getLog().warn("Gradle init script wasn't created.");
- return;
- }
- generateDependenciesGraphAsJsonTask(rootProjectDir, gradleFile);
- parseJsonResult();
- }
- }
-
- @Override
- void buildTree() {
- DependenciesTree rootNode = new DependenciesTree(getProjectName());
- GeneralInfo generalInfo = new GeneralInfo();
- generalInfo.groupId(gradleArtifact.getGroupId()).artifactId(gradleArtifact.getArtifactId())
- .version(gradleArtifact.getVersion());
- rootNode.setGeneralInfo(generalInfo);
- GradleArtifact[] dependencies = gradleArtifact.getDependencies();
- if (ArrayUtils.isNotEmpty(dependencies)) {
- populateDependenciesTree(rootNode, dependencies);
- }
- setScanResults(rootNode);
}
public GradleArtifact getGradleArtifact() {
@@ -108,14 +85,15 @@ private String getComponentId(GradleArtifact gradleArtifact) {
}
/**
- * Populate root modules DependenciesTree with issues, licenses and general info
+ * Populate root modules DependencyTree with issues, licenses and general info
* from the scan cache.
*/
- private void populateDependenciesTree(DependenciesTree scanTreeNode, GradleArtifact[] gradleArtifacts) {
+ @SuppressWarnings("unused")
+ private void populateDependenciesTree(DependencyTree scanTreeNode, GradleArtifact[] gradleArtifacts) {
for (GradleArtifact artifact : gradleArtifacts) {
String componentId = getComponentId(artifact);
- DependenciesTree child = new DependenciesTree(componentId);
- child.setGeneralInfo(new GeneralInfo(componentId, "", "", "Maven"));
+ DependencyTree child = new DependencyTree(componentId);
+ child.setGeneralInfo(new GeneralInfo(componentId, artifact.getArtifactId(), "", "Gradle"));
scanTreeNode.add(child);
populateDependenciesTree(child, artifact.getDependencies());
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/MavenScanManager.java b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/MavenScanManager.java
index af2f77c..9d7a6ba 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/MavenScanManager.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/MavenScanManager.java
@@ -16,9 +16,11 @@
import org.eclipse.m2e.core.project.IMavenProjectFacade;
import org.eclipse.m2e.core.project.MavenProjectChangedEvent;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.GeneralInfo;
+import org.jfrog.build.extractor.scan.Scope;
+import com.google.common.collect.Sets;
import com.jfrog.ide.common.scan.ComponentPrefix;
import com.jfrog.ide.eclipse.log.Logger;
import com.jfrog.ide.eclipse.scheduling.ScanJob;
@@ -48,7 +50,6 @@ public static boolean isApplicable(IProject project) {
}
}
- @Override
void refreshDependencies(IProgressMonitor monitor) throws CoreException {
IMavenProjectFacade facade = MavenPlugin.getMavenProjectRegistry().getProject(project);
if (facade == null) {
@@ -64,26 +65,32 @@ void refreshDependencies(IProgressMonitor monitor) throws CoreException {
@Override
void buildTree() throws CoreException {
+ refreshDependencies(getMonitor());
if (mavenProject == null) {
return;
}
- DependenciesTree rootNode = new DependenciesTree(mavenProject.getName());
+ DependencyTree rootNode = new DependencyTree(mavenProject.getName());
+ populateScanTreeNode(rootNode, mavenDependenciesRoot);
GeneralInfo generalInfo = new GeneralInfo().groupId(mavenProject.getGroupId())
.artifactId(mavenProject.getArtifactId()).version(mavenProject.getVersion());
rootNode.setGeneralInfo(generalInfo);
- populateScanTreeNode(rootNode, mavenDependenciesRoot);
- setScanResults(rootNode);
+ setScanResults(rootNode);
}
/**
- * Populate root modules DependenciesTree with issues, licenses and general info
+ * Populate root modules DependencyTree with issues, licenses and general info
* from the scan cache.
*/
- private void populateScanTreeNode(DependenciesTree scanTreeNode, DependencyNode dependencyNode) {
+ private void populateScanTreeNode(DependencyTree scanTreeNode, DependencyNode dependencyNode) {
dependencyNode.getChildren().forEach(dependencyChild -> {
String componentId = getComponentId(dependencyChild);
- DependenciesTree child = new DependenciesTree(componentId);
- child.setGeneralInfo(new GeneralInfo(componentId, "", "", "Maven"));
+ DependencyTree child = new DependencyTree(componentId);
+ String componentName = dependencyChild.getArtifact().getArtifactId();
+ child.setGeneralInfo(new GeneralInfo(componentId, componentName, "", "Maven"));
+ // set dependency scope
+ String componentScope = dependencyChild.getDependency().getScope();
+ child.setScopes(Sets.newHashSet(new Scope(componentScope)));
+
scanTreeNode.add(child);
populateScanTreeNode(child, dependencyChild);
});
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/NpmScanManager.java b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/NpmScanManager.java
index 9ea6d9d..1dacb42 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/NpmScanManager.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/NpmScanManager.java
@@ -4,11 +4,11 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.jfrog.ide.common.npm.NpmTreeBuilder;
import com.jfrog.ide.common.scan.ComponentPrefix;
+import com.jfrog.ide.eclipse.log.Logger;
/**
* @author yahavi
@@ -20,15 +20,16 @@ public class NpmScanManager extends ScanManager {
NpmScanManager(IProject project) throws IOException {
super(project, ComponentPrefix.NPM);
getLog().info("Found npm project: " + getProjectName());
- npmTreeBuilder = new NpmTreeBuilder(project.getFullPath().toFile().toPath());
- }
-
- @Override
- void refreshDependencies(IProgressMonitor monitor) throws IOException {
+ npmTreeBuilder = new NpmTreeBuilder(project.getFullPath().toFile().toPath(), System.getenv());
}
@Override
void buildTree() throws CoreException, JsonProcessingException, IOException {
- setScanResults(npmTreeBuilder.buildTree(getLog()));
- }
+ try {
+ setScanResults(npmTreeBuilder.buildTree(getLog(), false));
+ }
+ catch (IOException ex) {
+ Logger.getInstance().error("Could not scan project: " + getProjectName() + ". Reason is: " + ex.getMessage());
+ }
+ }
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManager.java b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManager.java
index bf3d5e6..c23b3f9 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManager.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManager.java
@@ -11,7 +11,7 @@
import org.eclipse.core.runtime.ICoreRunnable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.jfrog.ide.common.filter.FilterManager;
@@ -38,20 +38,11 @@ public abstract class ScanManager extends ScanManagerBase {
IProject project;
ScanManager(IProject project, ComponentPrefix prefix) throws IOException {
- super(HOME_PATH.resolve("cache"), project.getName(), Logger.getInstance(), XrayServerConfigImpl.getInstance(),
- prefix);
+ super(HOME_PATH.resolve("cache"), project.getName(), Logger.getInstance(), XrayServerConfigImpl.getInstance(), prefix);
this.project = project;
Files.createDirectories(HOME_PATH);
}
- /**
- * Refresh project dependencies.
- *
- * @throws IOException
- * @throws CoreException
- */
- abstract void refreshDependencies(IProgressMonitor monitor) throws IOException, CoreException;
-
/**
* Collect and return {@link Components} to be scanned by JFrog Xray.
* Implementation should be project type specific.
@@ -78,6 +69,10 @@ public IProject getIProject() {
public void setMonitor(IProgressMonitor monitor) {
this.monitor = monitor;
}
+
+ public IProgressMonitor getMonitor(){
+ return monitor;
+ }
/**
* Schedule a dependency scan.
@@ -114,7 +109,6 @@ public void run(IProgressMonitor monitor) throws CoreException {
}
getLog().info("Performing scan for " + getProjectName());
try {
- refreshDependencies(monitor);
buildTree();
if (isDisposed() || getScanResults() == null) {
return;
@@ -131,10 +125,11 @@ public void run(IProgressMonitor monitor) throws CoreException {
private void setScanResults() {
FilterManager filterManager = FilterManagerSingleton.getInstance();
- if (!getScanResults().isLeaf()) {
- addFilterManagerLicenses(filterManager);
+ DependencyTree scanResults = getScanResults();
+
+ if (!scanResults.isLeaf()) {
+ filterManager.collectsFiltersInformation(scanResults);
}
- DependenciesTree scanResults = getScanResults();
issuesTree.addScanResults(getProjectName(), scanResults);
licensesTree.addScanResults(getProjectName(), scanResults);
if (isDisposed()) {
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManagersFactory.java b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManagersFactory.java
index 8a9b08a..8b0b8f2 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManagersFactory.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/scan/ScanManagersFactory.java
@@ -16,7 +16,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import com.jfrog.ide.common.utils.Utils;
+import com.jfrog.ide.common.utils.PackageFileFinder;
import com.jfrog.ide.eclipse.log.Logger;
import com.jfrog.ide.eclipse.npm.NpmProject;
import com.jfrog.ide.eclipse.scheduling.ScanJob;
@@ -100,6 +100,8 @@ public void refreshScanManagers(Composite parent) {
if (projects.length > 0) {
try {
Set paths = Sets.newHashSet();
+
+ // refresh Maven and Gradle managers
for (IProject project : projects) {
if (!project.isOpen()) {
Logger.getInstance().info("Project is closed: " + project.getName());
@@ -113,7 +115,10 @@ public void refreshScanManagers(Composite parent) {
}
paths.add(project.getLocation().toFile().toPath());
}
- Set packageJsonDirs = Utils.findPackageJsonDirs(paths);
+
+ // refresh Npm manager
+ PackageFileFinder packageFileFinder = new PackageFileFinder(paths, "", Logger.getInstance());
+ Set packageJsonDirs = packageFileFinder.getNpmPackagesFilePairs();
for (String dir : packageJsonDirs) {
IProject npmProject = new NpmProject(dir, iworkspace);
scanManagers.add(new NpmScanManager(npmProject));
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ComponentDetails.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ComponentDetails.java
index b4e6efe..16e879a 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ComponentDetails.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ComponentDetails.java
@@ -22,7 +22,7 @@
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.GeneralInfo;
import org.jfrog.build.extractor.scan.License;
@@ -50,7 +50,7 @@ public ComponentDetails(Composite parent, String title) {
recreateComponentDetails();
}
- public abstract void createDetailsView(DependenciesTree node);
+ public abstract void createDetailsView(DependencyTree node);
public void recreateComponentDetails() {
if (isDisposed()) {
@@ -110,7 +110,7 @@ protected void createComponentsPanel() {
*
* @param node - Extract the component information from this node.
*/
- protected void createCommonInfo(DependenciesTree node) {
+ protected void createCommonInfo(DependencyTree node) {
for (Control control : componentDetailsPanel.getChildren()) {
control.dispose();
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ScanTreeContentProvider.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ScanTreeContentProvider.java
index 7c19041..4f4861d 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ScanTreeContentProvider.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/ScanTreeContentProvider.java
@@ -1,7 +1,7 @@
package com.jfrog.ide.eclipse.ui;
import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
/**
* Content provider for DependenciesTree.
@@ -9,7 +9,7 @@
* @author yahavi
*/
public class ScanTreeContentProvider implements ITreeContentProvider {
- private static final DependenciesTree[] EMPTY_NODE = new DependenciesTree[0];
+ private static final DependencyTree[] EMPTY_NODE = new DependencyTree[0];
@Override
public Object[] getElements(Object element) {
@@ -18,16 +18,16 @@ public Object[] getElements(Object element) {
@Override
public Object[] getChildren(Object element) {
- return (((DependenciesTree) element).getChildren()).toArray(EMPTY_NODE);
+ return (((DependencyTree) element).getChildren()).toArray(EMPTY_NODE);
}
@Override
public Object getParent(Object element) {
- return ((DependenciesTree) element).getParent();
+ return ((DependencyTree) element).getParent();
}
@Override
public boolean hasChildren(Object element) {
- return !((DependenciesTree) element).isLeaf();
+ return !((DependencyTree) element).isLeaf();
}
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/SearchableTree.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/SearchableTree.java
index f6fbf9a..ab1904b 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/SearchableTree.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/SearchableTree.java
@@ -16,7 +16,7 @@
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.dialogs.FilteredTree;
import org.eclipse.ui.dialogs.PatternFilter;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import com.google.common.collect.Lists;
import com.jfrog.ide.eclipse.utils.ProjectsMap;
@@ -68,7 +68,7 @@ public void selectionChanged(SelectionChangedEvent event) {
if (event.getSelection().isEmpty()) {
return;
}
- DependenciesTree selection = (DependenciesTree) treeViewer.getStructuredSelection().getFirstElement();
+ DependencyTree selection = (DependencyTree) treeViewer.getStructuredSelection().getFirstElement();
onClick(selection);
}
});
@@ -78,7 +78,7 @@ public void setComponentDetails(ComponentDetails componentDetails) {
this.componentDetails = componentDetails;
}
- protected abstract void onClick(DependenciesTree selection);
+ protected abstract void onClick(DependencyTree selection);
private static PatternFilter createFilter() {
PatternFilter patternFilter = new PatternFilter();
@@ -86,12 +86,12 @@ private static PatternFilter createFilter() {
return patternFilter;
}
- public List getSelectedNodes() {
- List selectedNodes = Lists.newArrayList();
+ public List getSelectedNodes() {
+ List selectedNodes = Lists.newArrayList();
TreePath[] selectionPaths = treeViewer.getStructuredSelection().getPaths();
if (selectionPaths != null) {
selectedNodes = Arrays.stream(selectionPaths)
- .map(selectedPath -> (DependenciesTree) selectedPath.getLastSegment()).collect(Collectors.toList());
+ .map(selectedPath -> (DependencyTree) selectedPath.getLastSegment()).collect(Collectors.toList());
}
return selectedNodes;
@@ -109,8 +109,8 @@ public void reset() {
projects.clear();
}
- public void addScanResults(String projectName, DependenciesTree dependenciesTree) {
- projects.put(projectName, dependenciesTree);
+ public void addScanResults(String projectName, DependencyTree dependencyTree) {
+ projects.put(projectName, dependencyTree);
}
public abstract void applyFilters(ProjectsMap.ProjectKey projectName);
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueDetails.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueDetails.java
index 1b42804..9be99ef 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueDetails.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueDetails.java
@@ -2,7 +2,7 @@
import org.apache.commons.lang3.StringUtils;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.Issue;
import com.jfrog.ide.eclipse.ui.ComponentDetails;
@@ -27,7 +27,7 @@ private ComponentIssueDetails(Composite parent) {
}
@Override
- public void createDetailsView(DependenciesTree node) {
+ public void createDetailsView(DependencyTree node) {
createCommonInfo(node);
Issue topIssue = node.getTopIssue();
addSection("Top Issue Severity:", StringUtils.capitalize(topIssue.getSeverity().toString()));
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueTable.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueTable.java
index 7149eb4..31acb9a 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueTable.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/ComponentIssueTable.java
@@ -21,12 +21,11 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.Issue;
import org.jfrog.build.extractor.scan.Severity;
import com.jfrog.ide.common.filter.FilterManager;
-import com.jfrog.ide.eclipse.scan.ScanManagersFactory;
import com.jfrog.ide.eclipse.ui.FilterManagerSingleton;
import com.jfrog.ide.eclipse.ui.IconManager;
import com.jfrog.ide.eclipse.ui.Panel;
@@ -123,13 +122,10 @@ private TableViewerColumn createTableViewerColumn(String title, int weight, Colu
return viewerColumn;
}
- public void updateIssuesTable(List selectedNodes) {
+ public void updateIssuesTable(List selectedNodes) {
Set issuesSet = Sets.newHashSet();
FilterManager filterManager = FilterManagerSingleton.getInstance();
- ScanManagersFactory.getInstance().getScanManagers().forEach(scanManager -> {
- issuesSet.addAll(scanManager.getFilteredScanIssues(filterManager, selectedNodes));
- });
-
+ issuesSet.addAll(filterManager.getFilteredScanIssues(selectedNodes));
tableViewer.setInput(
issuesSet.stream().sorted(Comparator.comparing(issue -> ((Issue) issue).getSeverity()).reversed())
.collect(Collectors.toList()));
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssueCountColumnLabelProvider.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssueCountColumnLabelProvider.java
index a060243..93138d3 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssueCountColumnLabelProvider.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssueCountColumnLabelProvider.java
@@ -5,7 +5,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
/**
* The issues count component in the issues tree.
@@ -22,7 +22,7 @@ public IssueCountColumnLabelProvider(Composite parent) {
@Override
public String getText(Object element) {
- int issueCount = ((DependenciesTree) element).getIssueCount();
+ int issueCount = ((DependencyTree) element).getIssueCount();
return issueCount == 0 ? "" : "(" + issueCount + ")";
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTree.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTree.java
index 057e315..589654d 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTree.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTree.java
@@ -5,7 +5,7 @@
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import com.google.common.collect.Lists;
import com.jfrog.ide.common.filter.FilterManager;
@@ -20,7 +20,7 @@ public class IssuesTree extends SearchableTree {
private static IssuesTree instance;
- private DependenciesTree root = new DependenciesTree();
+ private DependencyTree root = new DependencyTree();
private ComponentIssueTable componentIssueTable;
private TreeViewerColumn issuesCountColumn;
@@ -39,7 +39,7 @@ private IssuesTree(Composite parent) {
}
@Override
- protected void onClick(DependenciesTree selection) {
+ protected void onClick(DependencyTree selection) {
componentDetails.createDetailsView(selection);
componentIssueTable.updateIssuesTable(getSelectedNodes());
}
@@ -50,12 +50,10 @@ public void setComponentIssueTable(ComponentIssueTable componentIssueTable) {
@Override
public void applyFilters(ProjectKey projectKey) {
- DependenciesTree project = projects.get(projectKey);
+ DependencyTree project = projects.get(projectKey);
if (project != null) {
- DependenciesTree filteredRoot = (DependenciesTree) project.clone();
- filteredRoot.getIssues().clear();
FilterManager filterManager = FilterManagerSingleton.getInstance();
- filterManager.applyFilters(project, filteredRoot, new DependenciesTree());
+ DependencyTree filteredRoot = filterManager.applyFilters(project);
filteredRoot.setIssues(filteredRoot.processTreeIssues());
root.add(filteredRoot);
if (root.getChildCount() == 1) {
@@ -64,15 +62,15 @@ public void applyFilters(ProjectKey projectKey) {
} else {
treeViewer.setInput(root);
}
- long totalIssues = root.getChildren().stream().mapToInt(DependenciesTree::getIssueCount).sum();
+ long totalIssues = root.getChildren().stream().mapToInt(DependencyTree::getIssueCount).sum();
issuesCountColumn.getColumn().setText("Issues (" + totalIssues + ")");
}
}
@Override
public void applyFiltersForAllProjects() {
- root = new DependenciesTree();
- for (Entry entry : projects.entrySet()) {
+ root = new DependencyTree();
+ for (Entry entry : projects.entrySet()) {
applyFilters(entry.getKey());
}
}
@@ -82,7 +80,7 @@ public void reset() {
super.reset();
componentIssueTable.updateIssuesTable(Lists.newArrayList());
issuesCountColumn.getColumn().setText("Issues (0)");
- root = new DependenciesTree();
+ root = new DependencyTree();
treeViewer.setInput(root);
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTreeColumnLabelProvider.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTreeColumnLabelProvider.java
index 77bf016..fa725a7 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTreeColumnLabelProvider.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/issues/IssuesTreeColumnLabelProvider.java
@@ -2,7 +2,7 @@
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.graphics.Image;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.Severity;
import com.jfrog.ide.eclipse.ui.IconManager;
@@ -15,7 +15,7 @@ public class IssuesTreeColumnLabelProvider extends ColumnLabelProvider {
@Override
public Image getImage(Object element) {
- DependenciesTree scanTreeNode = (DependenciesTree) element;
+ DependencyTree scanTreeNode = (DependencyTree) element;
Severity severity = scanTreeNode.getTopIssue().getSeverity();
return IconManager.load(severity.name().toLowerCase());
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/ComponentLicenseDetails.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/ComponentLicenseDetails.java
index 583803e..f4dd8f4 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/ComponentLicenseDetails.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/ComponentLicenseDetails.java
@@ -1,7 +1,7 @@
package com.jfrog.ide.eclipse.ui.licenses;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import com.jfrog.ide.eclipse.ui.ComponentDetails;
/**
@@ -25,7 +25,7 @@ private ComponentLicenseDetails(Composite parent) {
}
@Override
- public void createDetailsView(DependenciesTree node) {
+ public void createDetailsView(DependencyTree node) {
createCommonInfo(node);
refreshPanel();
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/LicensesTree.java b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/LicensesTree.java
index f6be645..6cbc72c 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/LicensesTree.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/ui/licenses/LicensesTree.java
@@ -4,7 +4,7 @@
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.widgets.Composite;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import com.jfrog.ide.common.filter.FilterManager;
import com.jfrog.ide.eclipse.ui.FilterManagerSingleton;
@@ -17,7 +17,7 @@
public class LicensesTree extends SearchableTree {
private static LicensesTree instance;
- private DependenciesTree root = new DependenciesTree();;
+ private DependencyTree root = new DependencyTree();;
public static void createLicensesTree(Composite parent) {
instance = new LicensesTree(parent);
@@ -33,17 +33,16 @@ private LicensesTree(Composite parent) {
}
@Override
- protected void onClick(DependenciesTree selection) {
+ protected void onClick(DependencyTree selection) {
componentDetails.createDetailsView(selection);
}
@Override
public void applyFilters(ProjectsMap.ProjectKey projectName) {
- DependenciesTree project = projects.get(projectName);
+ DependencyTree project = projects.get(projectName);
if (project != null) {
- DependenciesTree filteredRoot = (DependenciesTree) project.clone();
FilterManager filterManager = FilterManagerSingleton.getInstance();
- filterManager.applyFilters(project, new DependenciesTree(), filteredRoot);
+ DependencyTree filteredRoot = filterManager.applyFilters(project);
root.add(filteredRoot);
if (root.getChildCount() == 1) {
// If there is only one project - Show only its dependencies in the tree viewer.
@@ -57,7 +56,7 @@ public void applyFilters(ProjectsMap.ProjectKey projectName) {
@Override
public void applyFiltersForAllProjects() {
root.removeAllChildren();
- for (Entry entry : projects.entrySet()) {
+ for (Entry entry : projects.entrySet()) {
applyFilters(entry.getKey());
}
}
diff --git a/bundle/src/main/java/com/jfrog/ide/eclipse/utils/ProjectsMap.java b/bundle/src/main/java/com/jfrog/ide/eclipse/utils/ProjectsMap.java
index deb5099..49117f8 100644
--- a/bundle/src/main/java/com/jfrog/ide/eclipse/utils/ProjectsMap.java
+++ b/bundle/src/main/java/com/jfrog/ide/eclipse/utils/ProjectsMap.java
@@ -4,7 +4,7 @@
import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils;
-import org.jfrog.build.extractor.scan.DependenciesTree;
+import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.GeneralInfo;
/**
@@ -13,18 +13,18 @@
*
* @author yahavi
*/
-public class ProjectsMap extends TreeMap {
+public class ProjectsMap extends TreeMap {
private static final long serialVersionUID = 1L;
/**
* Put a project in the map.
*
* @param projectName - The project name.
- * @param dependenciesTree - The dependencies tree.
- * @return dependenciesTree.
+ * @param dependencyTree - The dependencies tree.
+ * @return dependencyTree.
*/
- public DependenciesTree put(String projectName, DependenciesTree dependenciesTree) {
- return super.put(createKey(projectName, dependenciesTree.getGeneralInfo()), dependenciesTree);
+ public DependencyTree put(String projectName, DependencyTree dependencyTree) {
+ return super.put(createKey(projectName, dependencyTree.getGeneralInfo()), dependencyTree);
}
public static ProjectKey createKey(String projectName, GeneralInfo generalInfo) {