Skip to content

Commit 83b43f7

Browse files
authored
Update parent pom (jenkinsci#10)
* Set mandatory config in jelly files * Don't use Message class * Use try/catch to close file consistently * Check return value of file deletion Report the failure to the listener similar to other failures * Check run.getResult() for null * Log URL exception that was previously hidden * Use UTF-8 character set * Check file filter for null before adding to collection * Use parent pom 4.37 * Hide a spotbugs warning * Require Jenkins 2.303.3
1 parent 7032d4b commit 83b43f7

7 files changed

Lines changed: 34 additions & 17 deletions

File tree

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.jenkins-ci.plugins</groupId>
66
<artifactId>plugin</artifactId>
7-
<version>1.565.3</version>
7+
<version>4.37</version>
88
<relativePath />
99
</parent>
1010
<artifactId>global-post-script</artifactId>
@@ -23,8 +23,8 @@
2323

2424
<properties>
2525
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
26-
<maven.compiler.source>1.7</maven.compiler.source>
27-
<maven.compiler.target>1.7</maven.compiler.target>
26+
<java.level>8</java.level>
27+
<jenkins.version>2.303.3</jenkins.version>
2828
</properties>
2929

3030
<developers>
@@ -87,7 +87,7 @@
8787
<dependency>
8888
<groupId>junit</groupId>
8989
<artifactId>junit</artifactId>
90-
<version>4.11</version>
90+
<version>4.13.2</version>
9191
<scope>test</scope>
9292
</dependency>
9393
</dependencies>

src/main/java/com/orctom/jenkins/plugin/globalpostscript/GlobalPostScript.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ public static String getRemoteJobUrl(String jobUrl) {
4848
public void onCompleted(Run run, TaskListener listener) {
4949
EnvVars envVars = getEnvVars(run, listener);
5050

51-
if (run.getResult().isWorseThan(getDescriptorImpl().getResultCondition())) {
51+
Result result = run.getResult();
52+
if (result == null || result.isWorseThan(getDescriptorImpl().getResultCondition())) {
5253
return;
5354
}
5455

@@ -68,7 +69,8 @@ public void onCompleted(Run run, TaskListener listener) {
6869
private EnvVars getEnvVars(Run run, TaskListener listener) {
6970
try {
7071
EnvVars envVars = run.getEnvironment(listener);
71-
envVars.put("BUILD_RESULT", run.getResult().toString());
72+
Result result = run.getResult();
73+
envVars.put("BUILD_RESULT", result == null ? "ongoing" : result.toString());
7274
return envVars;
7375
} catch (Throwable e) {
7476
e.printStackTrace();
@@ -149,9 +151,9 @@ public void triggerJob(String jobName, Map<String, String> params) {
149151
job.getAbsoluteUrl() + job.getNextBuildNumber() + "/",
150152
"#" + job.getNextBuildNumber());
151153
if (scheduled) {
152-
println(hudson.tasks.Messages.BuildTrigger_Triggering(name));
154+
println("Triggering " + name);
153155
} else {
154-
println(hudson.tasks.Messages.BuildTrigger_InQueue(name));
156+
println("In queue " + name);
155157
}
156158
}
157159
} else {
@@ -168,6 +170,7 @@ public void triggerRemoteJob(String jobTriggerUrl) {
168170
jobURL.appendToParamValue("cause", new URLCodec().encode(getCause(), "UTF-8"));
169171
url = jobURL.getURL();
170172
} catch (Exception e) {
173+
println("[WARNING] ignoring URL exception for " + jobTriggerUrl);
171174
}
172175

173176
HttpClient client = new HttpClient();
@@ -176,7 +179,7 @@ public void triggerRemoteJob(String jobTriggerUrl) {
176179
client.executeMethod(method);
177180
int statusCode = method.getStatusCode();
178181
if (statusCode < 400) {
179-
println(hudson.tasks.Messages.BuildTrigger_Triggering(jobUrl));
182+
println("Triggering " + jobUrl);
180183
} else {
181184
println("[ERROR] Failed to trigger: " + jobUrl + " | " + statusCode);
182185
}
@@ -250,7 +253,10 @@ public boolean accept(File dir, String name) {
250253
}
251254
};
252255

253-
Collections.addAll(items, scriptFolder.list(filter));
256+
String [] filteredFiles = scriptFolder.list(filter);
257+
if (filteredFiles != null) {
258+
Collections.addAll(items, filteredFiles);
259+
}
254260
return items;
255261
}
256262

src/main/java/com/orctom/jenkins/plugin/globalpostscript/runner/GroovyScriptRunner.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,13 @@ protected ClassLoader getGroovyClassloader() {
5050
return getGroovyClassloader(libFolder);
5151
}
5252

53-
protected ClassLoader getGroovyClassloader(File libFolder) {
53+
private GroovyClassLoader getGroovyClassloaderFromParent() {
5454
GroovyClassLoader cl = new GroovyClassLoader(getParentClassloader());
55+
return cl;
56+
}
57+
58+
protected ClassLoader getGroovyClassloader(File libFolder) {
59+
GroovyClassLoader cl = getGroovyClassloaderFromParent();
5560
if (!libFolder.exists() || !libFolder.isDirectory()) {
5661
return cl;
5762
}

src/main/java/com/orctom/jenkins/plugin/globalpostscript/runner/ShellScriptRunner.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.io.BufferedReader;
88
import java.io.File;
99
import java.io.InputStreamReader;
10+
import java.nio.charset.StandardCharsets;
1011
import java.util.Map;
1112

1213
import static com.orctom.jenkins.plugin.globalpostscript.ScriptContentLoader.getScriptContent;
@@ -39,19 +40,21 @@ public void run(File script,
3940
}
4041
Process process = builder.start();
4142

42-
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
43-
44-
String line;
45-
while ((line = reader.readLine()) != null) {
46-
println(listener, line);
43+
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8))) {
44+
String line;
45+
while ((line = reader.readLine()) != null) {
46+
println(listener, line);
47+
}
4748
}
4849

4950
} catch (Throwable e) {
5051
e.printStackTrace();
5152
println(listener, "[ERROR] Failed to execute: " + script.getName() + ", " + e.getMessage());
5253
} finally {
5354
if (null != temp) {
54-
temp.delete();
55+
if (temp.delete()) {
56+
println(listener, "[WARNING] Failed to delete temp file: " + temp.getName());
57+
}
5558
}
5659
}
5760
}

src/main/resources/com/orctom/jenkins/plugin/globalpostscript/GlobalPostScript/global.jelly

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<?jelly escape-by-default='true'?>
12
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
23
<f:section title="Global Post Script">
34
<f:entry title="Script File Name" field="script" description="Just The Script File Name, in $JENKINS_HOME/global-post-script">

src/main/resources/com/orctom/jenkins/plugin/globalpostscript/GlobalPostScriptAction/badge.jelly

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<?jelly escape-by-default='true'?>
12
<j:jelly xmlns:j="jelly:core">
23
<j:if test="${null != it.iconFileName}">
34
<img src="${rootURL}${it.iconFileName}" width="16" height="16" alt="${it.displayName}" title="${it.displayName}" />

src/main/resources/index.jelly

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<?jelly escape-by-default='true'?>
12
<!--
23
This view is used to render the installed plugins page.
34
-->

0 commit comments

Comments
 (0)