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 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 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/