Skip to content

Commit 0916c1c

Browse files
committed
Merge branch 'master' into JENKINS-25223
2 parents 1d8c769 + 3dcf5ae commit 0916c1c

12 files changed

+49
-20
lines changed

pom.xml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</parent>
1010

1111
<artifactId>envinject</artifactId>
12-
<version>1.92.0-beta-2-SNAPSHOT</version>
12+
<version>1.93-SNAPSHOT</version>
1313
<packaging>hpi</packaging>
1414
<name>Environment Injector Plugin</name>
1515
<url>https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin</url>
@@ -41,6 +41,15 @@
4141
<role>Maintainer</role>
4242
</roles>
4343
</developer>
44+
<developer>
45+
<id>recena</id>
46+
<name>Manuel Recena</name>
47+
<email>recena@gmail.com</email>
48+
<timezone>+1</timezone>
49+
<roles>
50+
<role>Contributor</role>
51+
</roles>
52+
</developer>
4453
</developers>
4554

4655
<properties>
@@ -60,16 +69,17 @@
6069
</scm>
6170

6271
<build>
72+
6373
<plugins>
6474
<plugin>
6575
<groupId>org.jenkins-ci.tools</groupId>
6676
<artifactId>maven-hpi-plugin</artifactId>
6777
<version>1.98</version>
6878
<extensions>true</extensions>
69-
</plugin>
79+
</plugin>
7080
</plugins>
7181
</build>
72-
82+
7383
<dependencies>
7484

7585
<dependency>
@@ -120,6 +130,6 @@
120130
</pluginRepository>
121131
</pluginRepositories>
122132

123-
</project>
124-
133+
</project>
134+
125135

src/main/java/org/jenkinsci/plugins/envinject/EnvInjectComputerListener.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.io.IOException;
2222
import java.io.Serializable;
23+
import java.util.Collection;
24+
import java.util.Collections;
2325
import java.util.HashMap;
2426
import java.util.Map;
2527

@@ -53,10 +55,13 @@ public Map<String, String> call() throws IOException {
5355
globalPropertiesEnvVars.putAll(((EnvironmentVariablesNodeProperty) nodeProperty).getEnvVars());
5456
}
5557

56-
if (nodeProperty instanceof EnvInjectNodeProperty) {
58+
final Node node = c.getNode();
59+
if (node != null && nodeProperty instanceof EnvInjectNodeProperty) {
5760
EnvInjectNodeProperty envInjectNodeProperty = ((EnvInjectNodeProperty) nodeProperty);
5861
unsetSystemVariables = envInjectNodeProperty.isUnsetSystemVariables();
59-
globalPropertiesEnvVars.putAll(envInjectEnvVarsService.getEnvVarsFileProperty(c.getNode().getRootPath(), logger, envInjectNodeProperty.getPropertiesFilePath(), null, nodeEnvVars));
62+
globalPropertiesEnvVars.putAll(envInjectEnvVarsService.getEnvVarsFileProperty(
63+
node.getRootPath(), logger, envInjectNodeProperty.getPropertiesFilePath(),
64+
null, nodeEnvVars));
6065
}
6166

6267
}
@@ -80,6 +85,11 @@ private EnvVars getNewSlaveEnvironmentVariables(Computer c, FilePath nodePath, T
8085
EnvInjectLogger logger = new EnvInjectLogger(listener);
8186
EnvInjectEnvVars envInjectEnvVarsService = new EnvInjectEnvVars(logger);
8287

88+
final Node node = c.getNode();
89+
if (node == null) {
90+
throw new EnvInjectException("Node is removed, but the computer has not gone yet");
91+
}
92+
8393
//Get env vars for the current node
8494
Map<String, String> nodeEnvVars = nodePath.act(
8595
new Callable<Map<String, String>, IOException>() {
@@ -90,7 +100,7 @@ public Map<String, String> call() throws IOException {
90100

91101
// -- Process slave properties
92102
boolean unsetSystemVariables = false;
93-
for (NodeProperty<?> nodeProperty : c.getNode().getNodeProperties()) {
103+
for (NodeProperty<?> nodeProperty : node.getNodeProperties()) {
94104

95105
if (nodeProperty instanceof EnvironmentVariablesNodeProperty) {
96106
currentEnvVars.putAll(((EnvironmentVariablesNodeProperty) nodeProperty).getEnvVars());
@@ -99,7 +109,7 @@ public Map<String, String> call() throws IOException {
99109
if (nodeProperty instanceof EnvInjectNodeProperty) {
100110
EnvInjectNodeProperty envInjectNodeProperty = ((EnvInjectNodeProperty) nodeProperty);
101111
unsetSystemVariables = envInjectNodeProperty.isUnsetSystemVariables();
102-
currentEnvVars.putAll(envInjectEnvVarsService.getEnvVarsFileProperty(c.getNode().getRootPath(), logger, envInjectNodeProperty.getPropertiesFilePath(), null, nodeEnvVars));
112+
currentEnvVars.putAll(envInjectEnvVarsService.getEnvVarsFileProperty(node.getRootPath(), logger, envInjectNodeProperty.getPropertiesFilePath(), null, nodeEnvVars));
103113
}
104114
}
105115

@@ -121,7 +131,8 @@ public Map<String, String> call() throws IOException {
121131
public void onOnline(Computer c, TaskListener listener) throws IOException, InterruptedException {
122132

123133
//Get node path
124-
FilePath nodePath = c.getNode().getRootPath();
134+
final Node node = c.getNode();
135+
final FilePath nodePath = node != null ? node.getRootPath() : null;
125136
if (nodePath == null) {
126137
return;
127138
}

src/main/java/org/jenkinsci/plugins/envinject/EnvInjectJobProperty.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.kohsuke.stapler.StaplerRequest;
1717

1818
import java.util.ArrayList;
19+
import java.util.Arrays;
1920
import java.util.List;
2021
import javax.annotation.CheckForNull;
2122

@@ -69,7 +70,7 @@ public EnvInjectJobPropertyContributor[] getContributors() {
6970
contributors = contributorsComputed;
7071
}
7172

72-
return contributors;
73+
return Arrays.copyOf(contributors, contributors.length);
7374
}
7475

7576
private EnvInjectJobPropertyContributor[] computeEnvInjectContributors() throws org.jenkinsci.lib.envinject.EnvInjectException {

src/main/java/org/jenkinsci/plugins/envinject/EnvInjectListener.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ public void beforeUse(AbstractBuild build, FilePath ws, BuildListener listener)
127127
Map<String, String> cleanVariables = envInjectEnvVars.removeUnsetVars(previousEnvVars);
128128

129129
//Set new env vars
130-
new EnvInjectActionSetter(build.getBuiltOn().getRootPath()).addEnvVarsToEnvInjectBuildAction(build, cleanVariables);
130+
final Node builtOn = build.getBuiltOn();
131+
new EnvInjectActionSetter(builtOn != null ? builtOn.getRootPath() : null)
132+
.addEnvVarsToEnvInjectBuildAction(build, cleanVariables);
131133

132134
} catch (EnvInjectException e) {
133135
throw new RuntimeException(e);

src/main/java/org/jenkinsci/plugins/envinject/EnvInjectNodeProperty.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import hudson.model.Node;
66
import hudson.slaves.NodeProperty;
77
import hudson.slaves.NodePropertyDescriptor;
8+
import java.util.Arrays;
89
import net.sf.json.JSONObject;
910
import org.kohsuke.stapler.DataBoundConstructor;
1011
import org.kohsuke.stapler.StaplerRequest;
@@ -63,7 +64,7 @@ public String getHelpFile() {
6364

6465
@SuppressWarnings("unused")
6566
public EnvInjectGlobalPasswordEntry[] getEnvInjectGlobalPasswordEntries() {
66-
return envInjectGlobalPasswordEntries;
67+
return Arrays.copyOf(envInjectGlobalPasswordEntries, envInjectGlobalPasswordEntries.length);
6768
}
6869

6970
@Override

src/main/java/org/jenkinsci/plugins/envinject/EnvInjectPasswordWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class EnvInjectPasswordsOutputStream extends LineTransformationOutputStream {
178178
nbMaskedPasswords++;
179179
}
180180
}
181-
if (nbMaskedPasswords++ >= 1) { // is there at least one password to mask?
181+
if (nbMaskedPasswords >= 1) { // is there at least one password to mask?
182182
regex.deleteCharAt(regex.length() - 1); // removes the last unuseful pipe
183183
regex.append(')');
184184
passwordsAsPattern = Pattern.compile(regex.toString());

src/main/java/org/jenkinsci/plugins/envinject/EnvInjectVarList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private void writeTextResponse(StaplerResponse response) throws IOException {
105105
response.setContentType("plain/text");
106106
StringWriter stringWriter = new StringWriter();
107107
for (Map.Entry<String, String> entry : envVars.entrySet()) {
108-
stringWriter.write(String.format("%s%s%s\n", entry.getKey(), "=", entry.getValue()));
108+
stringWriter.write(String.format("%s%s%s%n", entry.getKey(), "=", entry.getValue()));
109109
}
110110
response.getOutputStream().write(stringWriter.toString().getBytes());
111111
}

src/main/java/org/jenkinsci/plugins/envinject/service/BuildCauseRetriever.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.Set;
1616

1717
import static com.google.common.base.Joiner.on;
18+
import java.util.Locale;
1819
import static org.apache.commons.lang.StringUtils.isNotBlank;
1920

2021

@@ -87,7 +88,7 @@ private static String getTriggerName(Cause cause) {
8788
} else if (Cause.UpstreamCause.class.isInstance(cause)) {
8889
return "UPSTREAMTRIGGER";
8990
} else if (cause != null) {
90-
return cause.getClass().getSimpleName().toUpperCase();
91+
return cause.getClass().getSimpleName().toUpperCase(Locale.ENGLISH);
9192
}
9293

9394
return null;

src/main/java/org/jenkinsci/plugins/envinject/service/EnvInjectActionSetter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@
1111
import java.io.Serializable;
1212
import java.util.HashMap;
1313
import java.util.Map;
14+
import javax.annotation.CheckForNull;
1415

1516

1617
/**
1718
* @author Gregory Boissinot
1819
*/
1920
public class EnvInjectActionSetter implements Serializable {
2021

22+
@CheckForNull
2123
private FilePath rootPath;
2224

23-
public EnvInjectActionSetter(FilePath rootPath) {
25+
public EnvInjectActionSetter(@CheckForNull FilePath rootPath) {
2426
this.rootPath = rootPath;
2527
}
2628

src/main/java/org/jenkinsci/plugins/envinject/service/EnvInjectEnvVars.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public Map<String, String> getEnvVarsPropertiesJobProperty(FilePath rootPath,
5858
return resultMap;
5959
}
6060

61+
@Nonnull
6162
public Map<String, String> getEnvVarsFileProperty(@Nonnull FilePath rootPath,
6263
EnvInjectLogger logger,
6364
String propertiesFilePath,
@@ -120,7 +121,7 @@ public Map<String, String> executeAndGetMapGroovyScript(EnvInjectLogger logger,
120121
return new HashMap<String, String>();
121122
}
122123

123-
logger.info(String.format("Evaluation the following Groovy script content: \n%s\n", scriptContent));
124+
logger.info(String.format("Evaluation the following Groovy script content: %n%s%n", scriptContent));
124125

125126
Binding binding = new Binding();
126127
String jobName = envVars.get("JOB_NAME");

0 commit comments

Comments
 (0)