Skip to content

Commit

Permalink
Reduce usage of Guava (#942)
Browse files Browse the repository at this point in the history
  • Loading branch information
yahavi committed Jun 18, 2024
1 parent c881069 commit b1f4d06
Show file tree
Hide file tree
Showing 12 changed files with 77 additions and 104 deletions.
13 changes: 9 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
<!--Skip integration tests unless explicitly requested with -DskipITs=false-->
<skipITs>true</skipITs>

<buildinfo.version>2.41.14</buildinfo.version>
<buildinfo.gradle.version>5.1.14</buildinfo.gradle.version>
<buildinfo.version>2.41.21</buildinfo.version>
<buildinfo.gradle.version>5.2.2</buildinfo.gradle.version>
</properties>

<repositories>
Expand Down Expand Up @@ -425,13 +425,18 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
<version>2.14.0</version>
</dependency>
<dependency>
<!-- commons-compress is in use in the Go extractor -->
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.21</version>
<version>1.26.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.14.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package org.jfrog.hudson.generic;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import hudson.EnvVars;
import hudson.FilePath;
import hudson.Util;
Expand All @@ -13,12 +10,15 @@
import jenkins.MasterToSlaveFileCallable;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.jfrog.build.extractor.builder.ArtifactBuilder;
import org.jfrog.build.extractor.ci.Artifact;
import org.jfrog.build.extractor.ci.BuildInfoFields;
import org.jfrog.build.api.multiMap.ListMultimap;
import org.jfrog.build.api.multiMap.Multimap;
import org.jfrog.build.api.multiMap.SetMultimap;
import org.jfrog.build.api.util.FileChecksumCalculator;
import org.jfrog.build.api.util.Log;
import org.jfrog.build.client.ProxyConfiguration;
import org.jfrog.build.extractor.builder.ArtifactBuilder;
import org.jfrog.build.extractor.ci.Artifact;
import org.jfrog.build.extractor.ci.BuildInfoFields;
import org.jfrog.build.extractor.clientConfiguration.ArtifactoryManagerBuilder;
import org.jfrog.build.extractor.clientConfiguration.client.artifactory.ArtifactoryManager;
import org.jfrog.build.extractor.clientConfiguration.deploy.DeployDetails;
Expand All @@ -28,21 +28,12 @@
import org.jfrog.hudson.ArtifactoryServer;
import org.jfrog.hudson.CredentialsConfig;
import org.jfrog.hudson.pipeline.common.Utils;
import org.jfrog.hudson.util.BuildUniqueIdentifierHelper;
import org.jfrog.hudson.util.Credentials;
import org.jfrog.hudson.util.JenkinsBuildInfoLog;
import org.jfrog.hudson.util.PropertyUtils;
import org.jfrog.hudson.util.SpecUtils;
import org.jfrog.hudson.util.*;

import java.io.File;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;

import static org.jfrog.hudson.util.ProxyUtils.createProxyConfiguration;

Expand Down Expand Up @@ -79,7 +70,7 @@ public List<Artifact> getDeployedArtifacts() {
public void deploy()
throws IOException, InterruptedException {
FilePath workingDir = build.getExecutor().getCurrentWorkspace();
ArrayListMultimap<String, String> propertiesToAdd = getBuildPropertiesMap();
Multimap<String, String> propertiesToAdd = getBuildPropertiesMap();
ArtifactoryServer artifactoryServer = configurator.getArtifactoryServer();

if (configurator.isUseSpecs()) {
Expand All @@ -102,8 +93,8 @@ public void deploy()
}
}

private ArrayListMultimap<String, String> getBuildPropertiesMap() {
ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
private Multimap<String, String> getBuildPropertiesMap() {
Multimap<String, String> properties = new ListMultimap<>();
String buildName = BuildUniqueIdentifierHelper.getBuildNameConsiderOverride(configurator, build);
properties.put(BuildInfoFields.BUILD_NAME, buildName);
properties.put(BuildInfoFields.BUILD_NUMBER, BuildUniqueIdentifierHelper.getBuildNumber(build));
Expand All @@ -115,13 +106,12 @@ private ArrayListMultimap<String, String> getBuildPropertiesMap() {
}

public static class FilesDeployerCallable extends MasterToSlaveFileCallable<List<Artifact>> {

private String repositoryKey;
private TaskListener listener;
private Multimap<String, String> patternPairs;
private ArtifactoryServer server;
private Credentials credentials;
private ArrayListMultimap<String, String> buildProperties;
private Multimap<String, String> buildProperties;
private ProxyConfiguration proxyConfiguration;
private PatternType patternType = PatternType.ANT;
private String spec;
Expand All @@ -130,7 +120,7 @@ public static class FilesDeployerCallable extends MasterToSlaveFileCallable<List
// Generic deploy by pattern pairs
public FilesDeployerCallable(TaskListener listener, Multimap<String, String> patternPairs,
ArtifactoryServer server, Credentials credentials, String repositoryKey,
ArrayListMultimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration) {
Multimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration) {
this.listener = listener;
this.patternPairs = patternPairs;
this.server = server;
Expand All @@ -143,7 +133,7 @@ public FilesDeployerCallable(TaskListener listener, Multimap<String, String> pat
// Generic deploy by spec
public FilesDeployerCallable(TaskListener listener, String spec,
ArtifactoryServer server, Credentials credentials,
ArrayListMultimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration, int threads) {
Multimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration, int threads) {
this.listener = listener;
this.spec = spec;
this.server = server;
Expand Down Expand Up @@ -200,7 +190,7 @@ public void deploy(ArtifactoryManager artifactoryManager, Set<DeployDetails> art
}

private Multimap<String, File> buildTargetPathToFiles(File workspace) throws IOException {
Multimap<String, File> result = HashMultimap.create();
Multimap<String, File> result = new SetMultimap<>();
if (patternPairs == null) {
return result;
}
Expand All @@ -209,14 +199,9 @@ private Multimap<String, File> buildTargetPathToFiles(File workspace) throws IOE
String targetPath = entry.getValue();
Multimap<String, File> publishingData =
PublishedItemsHelper.buildPublishingData(workspace, pattern, targetPath);

if (publishingData != null) {
listener.getLogger().println(
"For pattern: " + pattern + " " + publishingData.size() + " artifacts were found");
result.putAll(publishingData);
} else {
listener.getLogger().println("For pattern: " + pattern + " no artifacts were found");
}
listener.getLogger().println(
"For pattern: " + pattern + " " + publishingData.size() + " artifacts were found");
result.putAll(publishingData);
}

return result;
Expand Down
17 changes: 7 additions & 10 deletions src/main/java/org/jfrog/hudson/pipeline/common/Utils.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.jfrog.hudson.pipeline.common;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ArrayListMultimap;
import hudson.EnvVars;
import hudson.FilePath;
import hudson.Launcher;
Expand All @@ -27,6 +26,8 @@
import org.jenkinsci.plugins.workflow.graph.FlowNode;
import org.jenkinsci.plugins.workflow.job.WorkflowRun;
import org.jenkinsci.plugins.workflow.steps.StepContext;
import org.jfrog.build.api.multiMap.Multimap;
import org.jfrog.build.api.multiMap.SetMultimap;
import org.jfrog.build.api.util.Log;
import org.jfrog.build.client.ProxyConfiguration;
import org.jfrog.build.extractor.ci.BuildInfoFields;
Expand Down Expand Up @@ -390,8 +391,8 @@ public static ProxyConfiguration getProxyConfiguration(org.jfrog.hudson.Artifact
return ProxyUtils.createProxyConfiguration();
}

public static ArrayListMultimap<String, String> getPropertiesMap(BuildInfo buildInfo, Run build, StepContext context) throws IOException, InterruptedException {
ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
public static Multimap<String, String> getPropertiesMap(BuildInfo buildInfo, Run build, StepContext context) throws IOException, InterruptedException {
Multimap<String, String> properties = new SetMultimap<>();

if (buildInfo.getName() != null) {
properties.put(BuildInfoFields.BUILD_NAME, buildInfo.getName());
Expand All @@ -410,19 +411,19 @@ public static ArrayListMultimap<String, String> getPropertiesMap(BuildInfo build
return properties;
}

public static void addParentBuildProps(ArrayListMultimap<String, String> properties, Run build) {
public static void addParentBuildProps(Multimap<String, String> properties, Run build) {
String buildName = ActionableHelper.getUpstreamProject(build);
if (StringUtils.isBlank(buildName)) {
return;
}
properties.put(BuildInfoFields.BUILD_PARENT_NAME, ExtractorUtils.sanitizeBuildName(buildName));
Integer buildNumber = ActionableHelper.getUpstreamBuild(build);
if (buildNumber != null) {
properties.put(BuildInfoFields.BUILD_PARENT_NUMBER, buildNumber+ "");
properties.put(BuildInfoFields.BUILD_PARENT_NUMBER, buildNumber + "");
}
}

public static void addVcsDetailsToProps(EnvVars env, ArrayListMultimap<String, String> properties) {
public static void addVcsDetailsToProps(EnvVars env, Multimap<String, String> properties) {
String revision = ExtractorUtils.getVcsRevision(env);
if (isNotBlank(revision)) {
properties.put(BuildInfoFields.VCS_REVISION, revision);
Expand All @@ -441,10 +442,6 @@ public static void addVcsDetailsToProps(EnvVars env, ArrayListMultimap<String, S
}
}

public static String replaceTildeWithUserHome(String path) {
return path.replaceFirst("^~", System.getProperty("user.home"));
}

/**
* Add possible npm executable directories to PATH environment variable.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.jfrog.hudson.pipeline.common.executors;

import com.google.common.collect.ArrayListMultimap;
import hudson.EnvVars;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.Run;
import hudson.model.TaskListener;
import org.apache.commons.lang3.StringUtils;
import org.jfrog.build.api.multiMap.Multimap;
import org.jfrog.hudson.pipeline.common.types.ArtifactoryServer;
import org.jfrog.hudson.pipeline.common.types.buildInfo.BuildInfo;
import org.jfrog.hudson.pipeline.common.types.deployers.CommonDeployer;
Expand All @@ -18,9 +18,9 @@ public class DockerPushExecutor extends BuildInfoProcessRunner {
private String imageTag;
private String targetRepo;
private String host;
private ArrayListMultimap<String, String> properties;
private Multimap<String, String> properties;

public DockerPushExecutor(ArtifactoryServer pipelineServer, BuildInfo buildInfo, Run build, String imageTag, String targetRepo, String host, String javaArgs, Launcher launcher, ArrayListMultimap<String, String> properties, TaskListener listener, FilePath ws, EnvVars envVars) {
public DockerPushExecutor(ArtifactoryServer pipelineServer, BuildInfo buildInfo, Run build, String imageTag, String targetRepo, String host, String javaArgs, Launcher launcher, Multimap<String, String> properties, TaskListener listener, FilePath ws, EnvVars envVars) {
super(buildInfo, launcher, javaArgs, ws, "", "", envVars, listener, build);
this.server = pipelineServer;
this.imageTag = imageTag;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.jfrog.hudson.pipeline.common.types;

import com.google.common.collect.ArrayListMultimap;
import org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.Whitelisted;
import org.jenkinsci.plugins.workflow.cps.CpsScript;
import org.jfrog.build.api.multiMap.ListMultimap;
import org.jfrog.build.api.multiMap.Multimap;
import org.jfrog.hudson.pipeline.common.types.buildInfo.BuildInfo;

import java.io.Serializable;
Expand All @@ -23,7 +24,7 @@ public class Docker implements Serializable {
private String host;
private String javaArgs;
// Properties to attach to the deployed docker layers.
private ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
private Multimap<String, String> properties = new ListMultimap<>();
private ArtifactoryServer server;

public Docker() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.jfrog.hudson.pipeline.common.types.buildInfo;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ArrayListMultimap;
import hudson.EnvVars;
import hudson.FilePath;
import hudson.model.Run;
Expand All @@ -12,15 +11,13 @@
import org.apache.commons.lang3.StringUtils;
import org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.Whitelisted;
import org.jenkinsci.plugins.workflow.cps.CpsScript;
import org.jfrog.build.api.multiMap.ListMultimap;
import org.jfrog.build.api.multiMap.Multimap;
import org.jfrog.build.api.multiMap.SetMultimap;
import org.jfrog.build.client.DeployableArtifactDetail;
import org.jfrog.build.extractor.builder.BuildInfoBuilder;
import org.jfrog.build.extractor.builder.ModuleBuilder;
import org.jfrog.build.extractor.ci.Artifact;
import org.jfrog.build.extractor.ci.BaseBuildFileBean;
import org.jfrog.build.extractor.ci.BuildInfoProperties;
import org.jfrog.build.extractor.ci.Dependency;
import org.jfrog.build.extractor.ci.Module;
import org.jfrog.build.extractor.ci.Vcs;
import org.jfrog.build.client.DeployableArtifactDetail;
import org.jfrog.build.extractor.ci.*;
import org.jfrog.build.extractor.clientConfiguration.IncludeExcludePatterns;
import org.jfrog.build.extractor.clientConfiguration.PatternMatcher;
import org.jfrog.build.extractor.clientConfiguration.client.artifactory.ArtifactoryManager;
Expand All @@ -33,16 +30,7 @@
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.Set;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -377,7 +365,7 @@ public static class DeployPathsAndPropsCallable extends MasterToSlaveFileCallabl
@Deprecated
private String backwardCompatibleDeployableArtifactsPath;
private TaskListener listener;
private ArrayListMultimap<String, String> propertiesMap;
private Multimap<String, String> propertiesMap;
private final DeployDetails.PackageType packageType;

DeployPathsAndPropsCallable(String deployableArtifactsPath, String backwardCompatibleDeployableArtifactsPath, TaskListener listener, BuildInfo buildInfo, DeployDetails.PackageType packageType) {
Expand Down Expand Up @@ -418,8 +406,8 @@ private void deleteFile(File file, String filePath) {
}
}

private ArrayListMultimap<String, String> getDeployableArtifactPropertiesMap(DeployableArtifactDetail artifact) {
ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
private Multimap<String, String> getDeployableArtifactPropertiesMap(DeployableArtifactDetail artifact) {
Multimap<String, String> properties = new SetMultimap<>();
if (MapUtils.isEmpty(artifact.getProperties())) {
// For backward computability, returns the necessary build info props if no props exists
// in DeployableArtifactDetail
Expand All @@ -433,8 +421,8 @@ private ArrayListMultimap<String, String> getDeployableArtifactPropertiesMap(Dep
return properties;
}

private ArrayListMultimap<String, String> getBuildPropertiesMap(BuildInfo buildInfo) {
ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
private Multimap<String, String> getBuildPropertiesMap(BuildInfo buildInfo) {
Multimap<String, String> properties = new ListMultimap<>();
properties.put("build.name", buildInfo.getName());
properties.put("build.number", buildInfo.getNumber());
properties.put("build.timestamp", buildInfo.getStartDate().getTime() + "");
Expand Down
Loading

0 comments on commit b1f4d06

Please sign in to comment.