Skip to content

Commit b1f4d06

Browse files
authored
Reduce usage of Guava (#942)
1 parent c881069 commit b1f4d06

File tree

12 files changed

+77
-104
lines changed

12 files changed

+77
-104
lines changed

pom.xml

+9-4
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
<!--Skip integration tests unless explicitly requested with -DskipITs=false-->
4242
<skipITs>true</skipITs>
4343

44-
<buildinfo.version>2.41.14</buildinfo.version>
45-
<buildinfo.gradle.version>5.1.14</buildinfo.gradle.version>
44+
<buildinfo.version>2.41.21</buildinfo.version>
45+
<buildinfo.gradle.version>5.2.2</buildinfo.gradle.version>
4646
</properties>
4747

4848
<repositories>
@@ -425,13 +425,18 @@
425425
<dependency>
426426
<groupId>commons-io</groupId>
427427
<artifactId>commons-io</artifactId>
428-
<version>2.8.0</version>
428+
<version>2.14.0</version>
429429
</dependency>
430430
<dependency>
431431
<!-- commons-compress is in use in the Go extractor -->
432432
<groupId>org.apache.commons</groupId>
433433
<artifactId>commons-compress</artifactId>
434-
<version>1.21</version>
434+
<version>1.26.2</version>
435+
</dependency>
436+
<dependency>
437+
<groupId>org.apache.commons</groupId>
438+
<artifactId>commons-lang3</artifactId>
439+
<version>3.14.0</version>
435440
</dependency>
436441
<dependency>
437442
<groupId>org.slf4j</groupId>

src/main/java/org/jfrog/hudson/generic/GenericArtifactsDeployer.java

+18-33
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package org.jfrog.hudson.generic;
22

3-
import com.google.common.collect.ArrayListMultimap;
4-
import com.google.common.collect.HashMultimap;
5-
import com.google.common.collect.Multimap;
63
import hudson.EnvVars;
74
import hudson.FilePath;
85
import hudson.Util;
@@ -13,12 +10,15 @@
1310
import jenkins.MasterToSlaveFileCallable;
1411
import org.apache.commons.io.FilenameUtils;
1512
import org.apache.commons.lang3.StringUtils;
16-
import org.jfrog.build.extractor.builder.ArtifactBuilder;
17-
import org.jfrog.build.extractor.ci.Artifact;
18-
import org.jfrog.build.extractor.ci.BuildInfoFields;
13+
import org.jfrog.build.api.multiMap.ListMultimap;
14+
import org.jfrog.build.api.multiMap.Multimap;
15+
import org.jfrog.build.api.multiMap.SetMultimap;
1916
import org.jfrog.build.api.util.FileChecksumCalculator;
2017
import org.jfrog.build.api.util.Log;
2118
import org.jfrog.build.client.ProxyConfiguration;
19+
import org.jfrog.build.extractor.builder.ArtifactBuilder;
20+
import org.jfrog.build.extractor.ci.Artifact;
21+
import org.jfrog.build.extractor.ci.BuildInfoFields;
2222
import org.jfrog.build.extractor.clientConfiguration.ArtifactoryManagerBuilder;
2323
import org.jfrog.build.extractor.clientConfiguration.client.artifactory.ArtifactoryManager;
2424
import org.jfrog.build.extractor.clientConfiguration.deploy.DeployDetails;
@@ -28,21 +28,12 @@
2828
import org.jfrog.hudson.ArtifactoryServer;
2929
import org.jfrog.hudson.CredentialsConfig;
3030
import org.jfrog.hudson.pipeline.common.Utils;
31-
import org.jfrog.hudson.util.BuildUniqueIdentifierHelper;
32-
import org.jfrog.hudson.util.Credentials;
33-
import org.jfrog.hudson.util.JenkinsBuildInfoLog;
34-
import org.jfrog.hudson.util.PropertyUtils;
35-
import org.jfrog.hudson.util.SpecUtils;
31+
import org.jfrog.hudson.util.*;
3632

3733
import java.io.File;
3834
import java.io.IOException;
3935
import java.security.NoSuchAlgorithmException;
40-
import java.util.ArrayList;
41-
import java.util.HashMap;
42-
import java.util.HashSet;
43-
import java.util.List;
44-
import java.util.Map;
45-
import java.util.Set;
36+
import java.util.*;
4637

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

@@ -79,7 +70,7 @@ public List<Artifact> getDeployedArtifacts() {
7970
public void deploy()
8071
throws IOException, InterruptedException {
8172
FilePath workingDir = build.getExecutor().getCurrentWorkspace();
82-
ArrayListMultimap<String, String> propertiesToAdd = getBuildPropertiesMap();
73+
Multimap<String, String> propertiesToAdd = getBuildPropertiesMap();
8374
ArtifactoryServer artifactoryServer = configurator.getArtifactoryServer();
8475

8576
if (configurator.isUseSpecs()) {
@@ -102,8 +93,8 @@ public void deploy()
10293
}
10394
}
10495

105-
private ArrayListMultimap<String, String> getBuildPropertiesMap() {
106-
ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
96+
private Multimap<String, String> getBuildPropertiesMap() {
97+
Multimap<String, String> properties = new ListMultimap<>();
10798
String buildName = BuildUniqueIdentifierHelper.getBuildNameConsiderOverride(configurator, build);
10899
properties.put(BuildInfoFields.BUILD_NAME, buildName);
109100
properties.put(BuildInfoFields.BUILD_NUMBER, BuildUniqueIdentifierHelper.getBuildNumber(build));
@@ -115,13 +106,12 @@ private ArrayListMultimap<String, String> getBuildPropertiesMap() {
115106
}
116107

117108
public static class FilesDeployerCallable extends MasterToSlaveFileCallable<List<Artifact>> {
118-
119109
private String repositoryKey;
120110
private TaskListener listener;
121111
private Multimap<String, String> patternPairs;
122112
private ArtifactoryServer server;
123113
private Credentials credentials;
124-
private ArrayListMultimap<String, String> buildProperties;
114+
private Multimap<String, String> buildProperties;
125115
private ProxyConfiguration proxyConfiguration;
126116
private PatternType patternType = PatternType.ANT;
127117
private String spec;
@@ -130,7 +120,7 @@ public static class FilesDeployerCallable extends MasterToSlaveFileCallable<List
130120
// Generic deploy by pattern pairs
131121
public FilesDeployerCallable(TaskListener listener, Multimap<String, String> patternPairs,
132122
ArtifactoryServer server, Credentials credentials, String repositoryKey,
133-
ArrayListMultimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration) {
123+
Multimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration) {
134124
this.listener = listener;
135125
this.patternPairs = patternPairs;
136126
this.server = server;
@@ -143,7 +133,7 @@ public FilesDeployerCallable(TaskListener listener, Multimap<String, String> pat
143133
// Generic deploy by spec
144134
public FilesDeployerCallable(TaskListener listener, String spec,
145135
ArtifactoryServer server, Credentials credentials,
146-
ArrayListMultimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration, int threads) {
136+
Multimap<String, String> buildProperties, ProxyConfiguration proxyConfiguration, int threads) {
147137
this.listener = listener;
148138
this.spec = spec;
149139
this.server = server;
@@ -200,7 +190,7 @@ public void deploy(ArtifactoryManager artifactoryManager, Set<DeployDetails> art
200190
}
201191

202192
private Multimap<String, File> buildTargetPathToFiles(File workspace) throws IOException {
203-
Multimap<String, File> result = HashMultimap.create();
193+
Multimap<String, File> result = new SetMultimap<>();
204194
if (patternPairs == null) {
205195
return result;
206196
}
@@ -209,14 +199,9 @@ private Multimap<String, File> buildTargetPathToFiles(File workspace) throws IOE
209199
String targetPath = entry.getValue();
210200
Multimap<String, File> publishingData =
211201
PublishedItemsHelper.buildPublishingData(workspace, pattern, targetPath);
212-
213-
if (publishingData != null) {
214-
listener.getLogger().println(
215-
"For pattern: " + pattern + " " + publishingData.size() + " artifacts were found");
216-
result.putAll(publishingData);
217-
} else {
218-
listener.getLogger().println("For pattern: " + pattern + " no artifacts were found");
219-
}
202+
listener.getLogger().println(
203+
"For pattern: " + pattern + " " + publishingData.size() + " artifacts were found");
204+
result.putAll(publishingData);
220205
}
221206

222207
return result;

src/main/java/org/jfrog/hudson/pipeline/common/Utils.java

+7-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.jfrog.hudson.pipeline.common;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import com.google.common.collect.ArrayListMultimap;
54
import hudson.EnvVars;
65
import hudson.FilePath;
76
import hudson.Launcher;
@@ -27,6 +26,8 @@
2726
import org.jenkinsci.plugins.workflow.graph.FlowNode;
2827
import org.jenkinsci.plugins.workflow.job.WorkflowRun;
2928
import org.jenkinsci.plugins.workflow.steps.StepContext;
29+
import org.jfrog.build.api.multiMap.Multimap;
30+
import org.jfrog.build.api.multiMap.SetMultimap;
3031
import org.jfrog.build.api.util.Log;
3132
import org.jfrog.build.client.ProxyConfiguration;
3233
import org.jfrog.build.extractor.ci.BuildInfoFields;
@@ -390,8 +391,8 @@ public static ProxyConfiguration getProxyConfiguration(org.jfrog.hudson.Artifact
390391
return ProxyUtils.createProxyConfiguration();
391392
}
392393

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

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

413-
public static void addParentBuildProps(ArrayListMultimap<String, String> properties, Run build) {
414+
public static void addParentBuildProps(Multimap<String, String> properties, Run build) {
414415
String buildName = ActionableHelper.getUpstreamProject(build);
415416
if (StringUtils.isBlank(buildName)) {
416417
return;
417418
}
418419
properties.put(BuildInfoFields.BUILD_PARENT_NAME, ExtractorUtils.sanitizeBuildName(buildName));
419420
Integer buildNumber = ActionableHelper.getUpstreamBuild(build);
420421
if (buildNumber != null) {
421-
properties.put(BuildInfoFields.BUILD_PARENT_NUMBER, buildNumber+ "");
422+
properties.put(BuildInfoFields.BUILD_PARENT_NUMBER, buildNumber + "");
422423
}
423424
}
424425

425-
public static void addVcsDetailsToProps(EnvVars env, ArrayListMultimap<String, String> properties) {
426+
public static void addVcsDetailsToProps(EnvVars env, Multimap<String, String> properties) {
426427
String revision = ExtractorUtils.getVcsRevision(env);
427428
if (isNotBlank(revision)) {
428429
properties.put(BuildInfoFields.VCS_REVISION, revision);
@@ -441,10 +442,6 @@ public static void addVcsDetailsToProps(EnvVars env, ArrayListMultimap<String, S
441442
}
442443
}
443444

444-
public static String replaceTildeWithUserHome(String path) {
445-
return path.replaceFirst("^~", System.getProperty("user.home"));
446-
}
447-
448445
/**
449446
* Add possible npm executable directories to PATH environment variable.
450447
*

src/main/java/org/jfrog/hudson/pipeline/common/executors/DockerPushExecutor.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package org.jfrog.hudson.pipeline.common.executors;
22

3-
import com.google.common.collect.ArrayListMultimap;
43
import hudson.EnvVars;
54
import hudson.FilePath;
65
import hudson.Launcher;
76
import hudson.model.Run;
87
import hudson.model.TaskListener;
98
import org.apache.commons.lang3.StringUtils;
9+
import org.jfrog.build.api.multiMap.Multimap;
1010
import org.jfrog.hudson.pipeline.common.types.ArtifactoryServer;
1111
import org.jfrog.hudson.pipeline.common.types.buildInfo.BuildInfo;
1212
import org.jfrog.hudson.pipeline.common.types.deployers.CommonDeployer;
@@ -18,9 +18,9 @@ public class DockerPushExecutor extends BuildInfoProcessRunner {
1818
private String imageTag;
1919
private String targetRepo;
2020
private String host;
21-
private ArrayListMultimap<String, String> properties;
21+
private Multimap<String, String> properties;
2222

23-
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) {
23+
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) {
2424
super(buildInfo, launcher, javaArgs, ws, "", "", envVars, listener, build);
2525
this.server = pipelineServer;
2626
this.imageTag = imageTag;

src/main/java/org/jfrog/hudson/pipeline/common/types/Docker.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package org.jfrog.hudson.pipeline.common.types;
22

3-
import com.google.common.collect.ArrayListMultimap;
43
import org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.Whitelisted;
54
import org.jenkinsci.plugins.workflow.cps.CpsScript;
5+
import org.jfrog.build.api.multiMap.ListMultimap;
6+
import org.jfrog.build.api.multiMap.Multimap;
67
import org.jfrog.hudson.pipeline.common.types.buildInfo.BuildInfo;
78

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

2930
public Docker() {

src/main/java/org/jfrog/hudson/pipeline/common/types/buildInfo/BuildInfo.java

+11-23
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.jfrog.hudson.pipeline.common.types.buildInfo;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import com.google.common.collect.ArrayListMultimap;
54
import hudson.EnvVars;
65
import hudson.FilePath;
76
import hudson.model.Run;
@@ -12,15 +11,13 @@
1211
import org.apache.commons.lang3.StringUtils;
1312
import org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.Whitelisted;
1413
import org.jenkinsci.plugins.workflow.cps.CpsScript;
14+
import org.jfrog.build.api.multiMap.ListMultimap;
15+
import org.jfrog.build.api.multiMap.Multimap;
16+
import org.jfrog.build.api.multiMap.SetMultimap;
17+
import org.jfrog.build.client.DeployableArtifactDetail;
1518
import org.jfrog.build.extractor.builder.BuildInfoBuilder;
1619
import org.jfrog.build.extractor.builder.ModuleBuilder;
17-
import org.jfrog.build.extractor.ci.Artifact;
18-
import org.jfrog.build.extractor.ci.BaseBuildFileBean;
19-
import org.jfrog.build.extractor.ci.BuildInfoProperties;
20-
import org.jfrog.build.extractor.ci.Dependency;
21-
import org.jfrog.build.extractor.ci.Module;
22-
import org.jfrog.build.extractor.ci.Vcs;
23-
import org.jfrog.build.client.DeployableArtifactDetail;
20+
import org.jfrog.build.extractor.ci.*;
2421
import org.jfrog.build.extractor.clientConfiguration.IncludeExcludePatterns;
2522
import org.jfrog.build.extractor.clientConfiguration.PatternMatcher;
2623
import org.jfrog.build.extractor.clientConfiguration.client.artifactory.ArtifactoryManager;
@@ -33,16 +30,7 @@
3330
import java.io.File;
3431
import java.io.IOException;
3532
import java.io.Serializable;
36-
import java.util.ArrayList;
37-
import java.util.Arrays;
38-
import java.util.Calendar;
39-
import java.util.Date;
40-
import java.util.HashMap;
41-
import java.util.List;
42-
import java.util.Map;
43-
import java.util.Objects;
44-
import java.util.Properties;
45-
import java.util.Set;
33+
import java.util.*;
4634
import java.util.concurrent.ConcurrentHashMap;
4735
import java.util.concurrent.CopyOnWriteArrayList;
4836
import java.util.stream.Collectors;
@@ -377,7 +365,7 @@ public static class DeployPathsAndPropsCallable extends MasterToSlaveFileCallabl
377365
@Deprecated
378366
private String backwardCompatibleDeployableArtifactsPath;
379367
private TaskListener listener;
380-
private ArrayListMultimap<String, String> propertiesMap;
368+
private Multimap<String, String> propertiesMap;
381369
private final DeployDetails.PackageType packageType;
382370

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

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

436-
private ArrayListMultimap<String, String> getBuildPropertiesMap(BuildInfo buildInfo) {
437-
ArrayListMultimap<String, String> properties = ArrayListMultimap.create();
424+
private Multimap<String, String> getBuildPropertiesMap(BuildInfo buildInfo) {
425+
Multimap<String, String> properties = new ListMultimap<>();
438426
properties.put("build.name", buildInfo.getName());
439427
properties.put("build.number", buildInfo.getNumber());
440428
properties.put("build.timestamp", buildInfo.getStartDate().getTime() + "");

0 commit comments

Comments
 (0)