diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..5b8d5402
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: [khmarbaise]
\ No newline at end of file
diff --git a/.sdkmanrc b/.sdkmanrc
new file mode 100644
index 00000000..4fc377de
--- /dev/null
+++ b/.sdkmanrc
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Enable auto-env through the sdkman_auto_env config
+# Add key=value pairs of SDKs to use below
+java=8.0.252.hs-adpt
diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index 2c5d22ba..71176ed3 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -2,6 +2,21 @@
## Release 0.4.0 (NOT RELEASED YET)
+ * [Fixed Issue 465][issue-465]
+
+ * Remove asciidoctor site parts
+ * AS preparation for user guide.
+
+ * [Fixed Issue 464][issue-464]
+
+ * Replaced xml-apis with xerces-xmlParserAPI.
+
+ * [Fixed Issue 309][issue-309]
+
+ * Added possibility to get mode detailed data from Maven Modules from Jobs/Builds
+
+ Thanks for that to [Jakub Zacek](https://github.com/dawon).
+
* [Fixed Issue 395][issue-395]
* Remove google guava lib
@@ -9,7 +24,7 @@
cause we do not rely on Guava anymore. So you
can use the original artifact directly.
* This results in a bumping of the version
- number cause it a change which is breaking
+ number cause it is a change which is breaking
with previous version 0.3.8.
* [Fixed Issue 405][issue-405]
@@ -64,6 +79,11 @@
assignedLabel.getName()
}
```
+
+ * [JENKINS-56585][jissue-56585]
+
+ Change request method of `QuietDown()` to POST
+
## Release 0.3.8
@@ -182,7 +202,7 @@
Added new methods to JenkinsServer for stopping and restarting Jenkins. The methods are restart(Boolean crumbFlag), safeRestart(Boolean crumbFlag), exit(Boolean crumbFlag) and safeExit(Boolean crumbFlag)
Thanks for that to [Chids](https://github.com/Chids-gs).
-
+
## Release 0.3.7
* Changed Eclipse Formatting configuration.
@@ -1135,6 +1155,7 @@ TestReport testReport = mavenJob.getLastSuccessfulBuild().getTestReport();
[issue-291]: https://github.com/jenkinsci/java-client-api/issues/291
[issue-298]: https://github.com/jenkinsci/java-client-api/issues/298
[issue-301]: https://github.com/jenkinsci/java-client-api/issues/301
+[issue-309]: https://github.com/jenkinsci/java-client-api/issues/309
[issue-394]: https://github.com/jenkinsci/java-client-api/issues/394
[issue-395]: https://github.com/jenkinsci/java-client-api/issues/395
[issue-396]: https://github.com/jenkinsci/java-client-api/issues/396
@@ -1144,6 +1165,7 @@ TestReport testReport = mavenJob.getLastSuccessfulBuild().getTestReport();
[issue-401]: https://github.com/jenkinsci/java-client-api/issues/401
[issue-402]: https://github.com/jenkinsci/java-client-api/issues/402
[issue-405]: https://github.com/jenkinsci/java-client-api/issues/405
+[issue-464]: https://github.com/jenkinsci/java-client-api/issues/464
[pull-123]: https://github.com/jenkinsci/java-client-api/pull/123
[pull-149]: https://github.com/jenkinsci/java-client-api/pull/149
[pull-158]: https://github.com/jenkinsci/java-client-api/pull/158
@@ -1164,3 +1186,4 @@ TestReport testReport = mavenJob.getLastSuccessfulBuild().getTestReport();
[jissue-46445]: https://issues.jenkins-ci.org/browse/JENKINS-46445
[jissue-46472]: https://issues.jenkins-ci.org/browse/JENKINS-46472
[jissue-56186]: https://issues.jenkins-ci.org/browse/JENKINS-56186
+[jissue-56585]: https://issues.jenkins-ci.org/browse/JENKINS-56585
diff --git a/jenkins-client/pom.xml b/jenkins-client/pom.xml
index ea595a4d..2cbc3df9 100644
--- a/jenkins-client/pom.xml
+++ b/jenkins-client/pom.xml
@@ -34,7 +34,7 @@
- dom4j
+ org.dom4j
dom4j
@@ -109,10 +109,9 @@
assertj-core
test
-
- xml-apis
- xml-apis
+ xerces
+ xmlParserAPIs
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java
index e9973d59..01755baa 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java
@@ -660,7 +660,7 @@ public JenkinsServer addStringParam(String jobName, String name, String descript
*/
public JenkinsServer quietDown() throws IOException {
try {
- client.get("/quietDown/");
+ client.post("/quietDown/");
} catch (org.apache.http.client.ClientProtocolException e) {
LOGGER.error("quietDown()", e);
}
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/helper/Range.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/helper/Range.java
index 8b70eb09..cdbdc60a 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/helper/Range.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/helper/Range.java
@@ -16,122 +16,127 @@
* The same as {0,N}.
*
{N}: Just retrieve the N-th element. The same as {N,N+1}.
*
- *
+ *
* You can use the {@link Range} class like this:
- *
+ *
*
* Range fromAndTo = Range.build().from(1).to(5);
* Range fromOnly = Range.build().from(3).build();
* Range toOnly = Range.build().to(5).build();
* Range only = Range.build().only(3);
*
- *
- * @author Karl Heinz Marbaise
*
+ * @author Karl Heinz Marbaise
*/
public final class Range {
- public static final String CURLY_BRACKET_OPEN = "%7B"; // {
- public static final String CURLY_BRACKET_CLOSE = "%7D"; // }
+ /**
+ * This represents {@code {} (left curly bracket).
+ */
+ public static final String CURLY_BRACKET_OPEN = "%7B";
+ /**
+ * This represents {@code }} (right curly bracket).
+ */
+ public static final String CURLY_BRACKET_CLOSE = "%7D";
private Integer from;
private Integer to;
private Range() {
- this.from = null;
- this.to = null;
+ this.from = null;
+ this.to = null;
}
private Range setFrom(int from) {
- if (from < 0) {
- throw new IllegalArgumentException("from value must be greater or equal null.");
- }
- this.from = new Integer(from);
- return this;
+ if (from < 0) {
+ throw new IllegalArgumentException("from value must be greater or equal null.");
+ }
+ this.from = new Integer(from);
+ return this;
}
private Range setTo(int to) {
- if (to < 0) {
- throw new IllegalArgumentException("to must be greater or equal null.");
- }
- this.to = new Integer(to);
- return this;
+ if (to < 0) {
+ throw new IllegalArgumentException("to must be greater or equal null.");
+ }
+ this.to = new Integer(to);
+ return this;
}
public String getRangeString() {
- StringBuilder sb = new StringBuilder();
- sb.append(CURLY_BRACKET_OPEN);
- if (this.from != null) {
- sb.append(String.format("%d", this.from));
- }
+ StringBuilder sb = new StringBuilder();
+ sb.append(CURLY_BRACKET_OPEN);
+ if (this.from != null) {
+ sb.append(String.format("%d", this.from));
+ }
- sb.append(',');
+ sb.append(',');
- if (this.to != null) {
- sb.append(String.format("%d", this.to));
- }
+ if (this.to != null) {
+ sb.append(String.format("%d", this.to));
+ }
- sb.append(CURLY_BRACKET_CLOSE);
- return sb.toString();
+ sb.append(CURLY_BRACKET_CLOSE);
+ return sb.toString();
}
public static final class FromBuilder {
- private Range range;
-
- public FromBuilder(Range range) {
- this.range = range;
- }
-
- public Range to(int t) {
- this.range.setTo(t);
- if (range.to <= range.from) {
- throw new IllegalArgumentException("to must be greater than from");
- }
- return this.range;
- }
-
- public Range build() {
- return this.range;
- }
+ private Range range;
+
+ public FromBuilder(Range range) {
+ this.range = range;
+ }
+
+ public Range to(int t) {
+ this.range.setTo(t);
+ if (range.to <= range.from) {
+ throw new IllegalArgumentException("to must be greater than from");
+ }
+ return this.range;
+ }
+
+ public Range build() {
+ return this.range;
+ }
}
public static final class ToBuilder {
- private Range range;
+ private Range range;
- public ToBuilder(Range range) {
- this.range = range;
- }
+ public ToBuilder(Range range) {
+ this.range = range;
+ }
- public Range build() {
- return this.range;
- }
+ public Range build() {
+ return this.range;
+ }
}
public static final class Builder {
- private Range range;
-
- protected Builder() {
- this.range = new Range();
- }
-
- public FromBuilder from(int f) {
- this.range.setFrom(f);
- return new FromBuilder(this.range);
- }
-
- public ToBuilder to(int t) {
- this.range.setTo(t);
- return new ToBuilder(this.range);
- }
-
- public Range only(int only) {
- this.range.from = new Integer(only);
- this.range.to = new Integer(only + 1);
- return this.range;
- }
+ private Range range;
+
+ protected Builder() {
+ this.range = new Range();
+ }
+
+ public FromBuilder from(int f) {
+ this.range.setFrom(f);
+ return new FromBuilder(this.range);
+ }
+
+ public ToBuilder to(int t) {
+ this.range.setTo(t);
+ return new ToBuilder(this.range);
+ }
+
+ public Range only(int only) {
+ this.range.from = new Integer(only);
+ this.range.to = new Integer(only + 1);
+ return this.range;
+ }
}
public static Builder build() {
- return new Builder();
+ return new Builder();
}
}
\ No newline at end of file
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BaseModel.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BaseModel.java
index 9c850ba2..5275d36b 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BaseModel.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BaseModel.java
@@ -7,6 +7,7 @@
package com.offbytwo.jenkins.model;
import com.offbytwo.jenkins.client.JenkinsHttpConnection;
+import java.util.function.Predicate;
/**
* The base model.
@@ -17,8 +18,7 @@ public class BaseModel {
* The class.
*/
private String _class;
-
-
+
/**
* Get the class.
* @return class
@@ -47,4 +47,9 @@ public BaseModel setClient(final JenkinsHttpConnection client) {
this.client = client;
return this;
}
+
+ protected static Predicate super Build> isBuildNumberEqualTo(int buildNumber) {
+ return build -> build.getNumber() == buildNumber;
+ }
+
}
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BuildWithDetails.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BuildWithDetails.java
index ab9e201d..d3ce5842 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BuildWithDetails.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/BuildWithDetails.java
@@ -533,6 +533,17 @@ public InputStream downloadArtifact(Artifact a) throws IOException, URISyntaxExc
"");
return client.getFile(artifactUri);
}
+
+ /**
+ * Returns {@link MavenModuleWithDetails} based on its name
+ *
+ * @param name module name
+ * @return {@link MavenModuleWithDetails}
+ * @throws IOException in case of error.
+ */
+ public MavenModuleWithDetails getModule(String name) throws IOException {
+ return client.get(getUrl() + name, MavenModuleWithDetails.class);
+ }
@Override
public boolean equals(Object obj) {
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/Job.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/Job.java
index ba1968a1..7d5313fd 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/Job.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/Job.java
@@ -6,16 +6,13 @@
package com.offbytwo.jenkins.model;
-import static org.apache.commons.lang.StringUtils.join;
-
+import com.offbytwo.jenkins.client.util.EncodingUtils;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.util.Map;
-
-import com.offbytwo.jenkins.client.util.EncodingUtils;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -186,4 +183,6 @@ public String apply(Map.Entry entry) {
return EncodingUtils.formParameter(entry.getKey()) + "=" + EncodingUtils.formParameter(entry.getValue());
}
}
+
+
}
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/JobWithDetails.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/JobWithDetails.java
index b5894015..f13903cf 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/JobWithDetails.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/JobWithDetails.java
@@ -18,7 +18,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
-import java.util.function.Predicate;
import static com.offbytwo.jenkins.helper.FunctionalHelper.SET_CLIENT;
import static java.util.stream.Collectors.toList;
@@ -31,7 +30,7 @@ public class JobWithDetails extends Job {
private boolean buildable;
- private List builds;
+ private List builds = Collections.emptyList();
private Build firstBuild;
@@ -438,10 +437,6 @@ public List getUpstreamProjects() {
}
}
- private static Predicate super Build> isBuildNumberEqualTo(int buildNumber) {
- return build -> build.getNumber() == buildNumber;
- }
-
public QueueItem getQueueItem() {
return this.queueItem;
}
@@ -456,6 +451,18 @@ public QueueItem getQueueItem() {
public Optional getBuildByNumber(final int buildNumber) {
return builds.stream().filter(isBuildNumberEqualTo(buildNumber)).findFirst();
}
+
+ /**
+ * Get a module of a {@link Job}
+ *
+ * @param moduleName name of the {@link MavenModule}
+ * @return The {@link MavenModuleWithDetails} selected by the given module name
+ * @throws java.io.IOException in case of errors.
+ *
+ */
+ public MavenModuleWithDetails getModule(String moduleName) throws IOException {
+ return client.get(getUrl() + moduleName, MavenModuleWithDetails.class);
+ }
/**
* Empty description to be used for {@link #updateDescription(String)} or
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenJobWithDetails.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenJobWithDetails.java
index bb3f0c62..3eaf7fc0 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenJobWithDetails.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenJobWithDetails.java
@@ -1,7 +1,6 @@
package com.offbytwo.jenkins.model;
import com.offbytwo.jenkins.client.util.EncodingUtils;
-import com.offbytwo.jenkins.helper.FunctionalHelper;
import com.offbytwo.jenkins.helper.Range;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpResponseException;
@@ -10,7 +9,6 @@
import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import java.util.function.Predicate;
import static com.offbytwo.jenkins.helper.FunctionalHelper.SET_CLIENT;
import static java.util.stream.Collectors.toList;
@@ -276,11 +274,7 @@ public List getUpstreamProjects() {
}
}
- private static Predicate isBuildNumberEqualTo(int buildNumber) {
- return build -> build.getNumber() == buildNumber;
- }
-
- /**
+ /**
* @param buildNumber The build you would like to select.
* @return Optional which contains the {@link MavenBuild}.
*/
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModule.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModule.java
index 07c61bb1..91c7ef1c 100644
--- a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModule.java
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModule.java
@@ -1,10 +1,59 @@
+/*
+ * Copyright (c) 2018 Cosmin Stejerean, Karl Heinz Marbaise, and contributors.
+ *
+ * Distributed under the MIT license: http://opensource.org/licenses/MIT
+ */
package com.offbytwo.jenkins.model;
+import java.io.IOException;
import java.util.List;
-
+/**
+ *
+ * @author Karl Heinz Marbaise, Ricardo Zanini, René Scheibe, Jakub Zacek
+ */
public class MavenModule extends BaseModel {
private List moduleRecords;
+ private String name;
+ private String url;
+ private String color;
+ private String displayName;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public void setColor(String color) {
+ this.color = color;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public MavenModuleWithDetails details() throws IOException {
+ return client.get(url, MavenModuleWithDetails.class);
+ }
public List getModuleRecords() {
return moduleRecords;
diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModuleWithDetails.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModuleWithDetails.java
new file mode 100644
index 00000000..d168a45e
--- /dev/null
+++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/model/MavenModuleWithDetails.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2018 Cosmin Stejerean, Karl Heinz Marbaise, and contributors.
+ *
+ * Distributed under the MIT license: http://opensource.org/licenses/MIT
+ */
+package com.offbytwo.jenkins.model;
+
+import static com.offbytwo.jenkins.helper.FunctionalHelper.SET_CLIENT;
+import static java.util.stream.Collectors.toList;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Model Class for Maven Modules
+ *
+ * @author Jakub Zacek
+ */
+public class MavenModuleWithDetails extends BaseModel {
+
+ private List builds = Collections.emptyList();
+ private List actions = Collections.emptyList();
+ private String displayName;
+ private BuildResult result;
+ private String url;
+ private long duration;
+ private long timestamp;
+
+ public List getActions() {
+ return actions;
+ }
+
+ public void setActions(List actions) {
+ this.actions = actions;
+ }
+
+ public void setBuilds(List builds) {
+ this.builds = builds;
+ }
+
+ public List getBuilds() {
+ return builds.stream()
+ .map(SET_CLIENT(this.getClient()))
+ .collect(toList());
+ }
+
+ public Build getBuildByNumber(final int buildNumber) {
+ return builds.stream()
+ .filter(isBuildNumberEqualTo(buildNumber))
+ .map(SET_CLIENT(this.getClient()))
+ .findFirst()
+ .orElse(Build.BUILD_HAS_NEVER_RUN);
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public BuildResult getResult() {
+ return result;
+ }
+
+ public void setResult(BuildResult result) {
+ this.result = result;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public long getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public long getDuration() {
+ return duration;
+ }
+
+ public void setDuration(long duration) {
+ this.duration = duration;
+ }
+
+ public String getConsoleOutputText() throws IOException {
+ return client.get(getUrl() + "/logText/progressiveText");
+ }
+
+ public TestReport getTestReport() throws IOException {
+ return client.get(this.getUrl() + "/testReport/?depth=1", TestReport.class);
+ }
+
+}
diff --git a/jenkins-client/src/site/asciidoc/index.adoc b/jenkins-client/src/site/asciidoc/index.adoc
deleted file mode 100644
index 942df55c..00000000
--- a/jenkins-client/src/site/asciidoc/index.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-:revnumber: ${project-version}
-
-== Overview ==
-
-Here you can see the first page.
-This is the first.
-
diff --git a/jenkins-client/src/site/asciidoc/sub/sub.adoc b/jenkins-client/src/site/asciidoc/sub/sub.adoc
deleted file mode 100644
index 345e6aef..00000000
--- a/jenkins-client/src/site/asciidoc/sub/sub.adoc
+++ /dev/null
@@ -1 +0,0 @@
-Test
diff --git a/jenkins-client/src/test/java/com/offbytwo/jenkins/client/JenkinsHttpClientTest.java b/jenkins-client/src/test/java/com/offbytwo/jenkins/client/JenkinsHttpClientTest.java
index 80f3ba38..2e3bce09 100644
--- a/jenkins-client/src/test/java/com/offbytwo/jenkins/client/JenkinsHttpClientTest.java
+++ b/jenkins-client/src/test/java/com/offbytwo/jenkins/client/JenkinsHttpClientTest.java
@@ -5,6 +5,12 @@
*/
package com.offbytwo.jenkins.client;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
import java.io.ByteArrayInputStream;
import java.net.URI;
import org.apache.http.Header;
@@ -15,12 +21,7 @@
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.protocol.HttpContext;
-import static org.junit.Assert.assertEquals;
import org.junit.Test;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.mock;
@@ -30,7 +31,7 @@
*/
public class JenkinsHttpClientTest {
private static final String URI = "http://localhost/jenkins";
-
+
@Test
@@ -40,8 +41,8 @@ public void testGet_String() throws Exception {
final Header versionHeader = mock(Header.class);
final StatusLine statusLine = mock(StatusLine.class);
final HttpEntity entity = mock(HttpEntity.class);
- given(client.execute(any(HttpUriRequest.class), any(HttpContext.class))).willReturn(response);
- given(response.getHeaders(anyString())).willReturn(new Header[]{versionHeader});
+ given(client.execute(any(HttpUriRequest.class), eq((HttpContext)null))).willReturn(response);
+ given(response.getHeaders("X-Jenkins")).willReturn(new Header[]{versionHeader});
given(response.getStatusLine()).willReturn(statusLine);
given(versionHeader.getValue()).willReturn("1.234");
given(statusLine.getStatusCode()).willReturn(HttpStatus.SC_OK);
@@ -51,15 +52,15 @@ public void testGet_String() throws Exception {
final String s = jclient.get("job/someJob");
assertEquals("someJson", s);
}
-
-
-
+
+
+
@Test(expected=IllegalStateException.class)
public void testClose() throws Exception {
final JenkinsHttpConnection jclient = new JenkinsHttpClient(new URI(URI));
jclient.close();
jclient.close(); //check multiple calls yield no errors
- jclient.get("job/someJob");
+ jclient.get("job/someJob");
}
diff --git a/jenkins-client/src/test/java/com/offbytwo/jenkins/helper/RangeTest.java b/jenkins-client/src/test/java/com/offbytwo/jenkins/helper/RangeTest.java
index 5dcc9e38..b56aa467 100644
--- a/jenkins-client/src/test/java/com/offbytwo/jenkins/helper/RangeTest.java
+++ b/jenkins-client/src/test/java/com/offbytwo/jenkins/helper/RangeTest.java
@@ -6,13 +6,10 @@
package com.offbytwo.jenkins.helper;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import com.offbytwo.jenkins.helper.Range;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
/**
*
@@ -23,7 +20,7 @@
* The same as {0,N}.
* - {N}: Just retrieve the N-th element. The same as {N,N+1}.
*
- *
+ *
* @author Karl Heinz Marbaise
*/
public class RangeTest {
@@ -56,27 +53,24 @@ public void onlyGiven() {
assertThat(r.getRangeString()).isEqualTo(getEscaped("3,4"));
}
- @Rule
- public ExpectedException exception = ExpectedException.none();
-
@Test
public void toIsGivenLargerThanFromShouldResultInIllegalArgumentException() {
- exception.expect(IllegalArgumentException.class);
- exception.expectMessage("to must be greater than from");
- Range.build().from(5).to(1);
+ assertThatIllegalArgumentException()
+ .isThrownBy(() -> Range.build().from(5).to(1))
+ .withMessage("to must be greater than from");
}
@Test
public void fromGivenNegativeValueShouldResultInIllegalArgumentException() {
- exception.expect(IllegalArgumentException.class);
- exception.expectMessage("from value must be greater or equal null.");
- Range.build().from(-1);
+ assertThatIllegalArgumentException()
+ .isThrownBy(() -> Range.build().from(-1))
+ .withMessage("from value must be greater or equal null.");
}
@Test
public void fromGivenPositiveToNegativeValueShouldResultInIllegalArgumentException() {
- exception.expect(IllegalArgumentException.class);
- exception.expectMessage("to must be greater or equal null.");
- Range.build().from(5).to(-1);
+ assertThatIllegalArgumentException()
+ .isThrownBy(() -> Range.build().from(5).to(-1))
+ .withMessage("to must be greater or equal null.");
}
}
diff --git a/pom.xml b/pom.xml
index 8015cefa..f88539d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,21 +48,20 @@
true
true
- 1.5.3
+ 2.0.0
1.644
4.12
- 1.9.5
+ 3.0.0
2.4
1.4.7-jenkins-1
- 1.6.1
- 3.8.1
+ 3.9
2.4
4.5.8
4.4.11
4.5.8
- 2.9.8
+ 2.10.3
@@ -105,9 +104,9 @@
- dom4j
+ org.dom4j
dom4j
- ${dom4j.version}
+ 2.1.3
@@ -165,34 +164,36 @@
org.testng
testng
- 6.14.2
- test
+ 7.0.0
+
+
+ org.junit
+ junit-bom
+ 5.5.2
+ import
+ pom
junit
junit
${junit.version}
- test
org.mockito
mockito-core
${mockito-core.version}
- test
org.jenkins-ci.main
jenkins-test-harness
${jenkins-version}
- test
org.assertj
assertj-core
3.12.2
- test
@@ -202,18 +203,15 @@
org.apache.logging.log4j
- log4j-core
- 2.11.1
+ log4j-bom
+ 2.12.1
+ import
+ pom
- org.apache.logging.log4j
- log4j-slf4j-impl
- 2.11.1
-
-
- xml-apis
- xml-apis
- 1.4.01
+ xerces
+ xmlParserAPIs
+ 2.6.1
@@ -224,7 +222,7 @@
org.apache.maven.plugins
maven-help-plugin
- 3.1.1
+ 3.2.0
org.apache.maven.plugins
@@ -239,7 +237,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.0.1
+ 3.1.0
-
- font
- coderay
- style
- 2
- ${project.version}
- true
- true
-
-
-
@@ -479,7 +458,7 @@
repo.jenkins-ci.org
- http://repo.jenkins-ci.org/public/
+ https://repo.jenkins-ci.org/public/