diff --git a/dependencies-check-rules.xml b/dependencies-check-rules.xml new file mode 100644 index 0000000..ead5a09 --- /dev/null +++ b/dependencies-check-rules.xml @@ -0,0 +1,13 @@ + + + + + .*[\.-](?i)alpha[0-9]*$ + .*[\.-](?i)b(eta)?-?[0-9]*$ + .*[\.-](?i)rc?[0-9]*$ + .*[\.-](?i)draft.*$ + + diff --git a/pom.xml b/pom.xml index 7d506cd..9977654 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,10 @@ 4.0.0 + + 2.2.1 + + org.sonatype.oss @@ -88,6 +92,16 @@ 1.6 UTF-8 + + 4.3.6 + 2.6 + 2.1 + 1.6.1 + 1.1.1 + 4.10 + 1.0 + 1.8.4 + 1.7 2.2.2 @@ -114,7 +128,7 @@ 2.1.2 2.10 2.4 - 1.2 + 2.1 @@ -392,7 +406,7 @@ - mercury + file:./dependencies-check-rules.xml @@ -423,52 +437,52 @@ org.apache.httpcomponents httpclient - 4.1.2 + ${apache.httpcomponents.version} org.apache.httpcomponents httpmime - 4.1.2 + ${apache.httpcomponents.version} commons-lang commons-lang - 2.6 + ${commons-lang.version} commons-io commons-io - 2.1 + ${commons-io.version} dom4j dom4j - 1.6.1 + ${dom4j.version} jaxen jaxen - 1.1.1 + ${jaxen.version} junit junit - 4.10 + ${junit.version} test com.github.robfletcher betamax - 1.0 + ${betamax.version} test org.codehaus.groovy groovy-all - 1.8.4 + ${groovy.version} test diff --git a/src/main/java/org/rundeck/api/ApiCall.java b/src/main/java/org/rundeck/api/ApiCall.java index 71a9808..da5c5a6 100644 --- a/src/main/java/org/rundeck/api/ApiCall.java +++ b/src/main/java/org/rundeck/api/ApiCall.java @@ -37,7 +37,6 @@ import org.apache.http.params.HttpProtocolParams; import org.apache.http.protocol.HTTP; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; -import org.dom4j.Document; import org.rundeck.api.RundeckApiException.RundeckApiLoginException; import org.rundeck.api.RundeckApiException.RundeckApiTokenException; import org.rundeck.api.parser.ParserHelper; @@ -59,7 +58,7 @@ import java.util.Map.Entry; /** * Class responsible for making the HTTP API calls - * + * * @author Vincent Behar */ class ApiCall { @@ -72,10 +71,10 @@ class ApiCall { /** {@link RundeckClient} instance holding the RunDeck url and the credentials */ private final RundeckClient client; - + /** * Build a new instance, linked to the given RunDeck client - * + * * @param client holding the RunDeck url and the credentials * @throws IllegalArgumentException if client is null */ @@ -87,7 +86,7 @@ class ApiCall { /** * Try to "ping" the RunDeck instance to see if it is alive - * + * * @throws RundeckApiException if the ping fails */ public void ping() throws RundeckApiException { @@ -127,7 +126,7 @@ class ApiCall { /** * Test the login-based authentication on the RunDeck instance - * + * * @throws RundeckApiLoginException if the login fails * @see #testAuth() */ @@ -144,7 +143,7 @@ class ApiCall { /** * Test the token-based authentication on the RunDeck instance - * + * * @throws RundeckApiTokenException if the token is invalid * @see #testAuth() */ @@ -161,7 +160,7 @@ class ApiCall { /** * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the * API call. At the end, the given parser will be used to convert the response to a more useful result object. - * + * * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} * @param parser used to parse the response * @return the result of the call, as formatted by the parser @@ -181,7 +180,7 @@ class ApiCall { /** * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the * API call. - * + * * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} * @return a new {@link InputStream} instance, not linked with network resources * @throws RundeckApiException in case of error when calling the API @@ -206,7 +205,7 @@ class ApiCall { /** * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the * API call without appending the API_ENDPOINT to the URL. - * + * * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} * @return a new {@link InputStream} instance, not linked with network resources * @throws RundeckApiException in case of error when calling the API @@ -248,11 +247,11 @@ class ApiCall { return get(apiPath, parser); } } - + /** * Execute an HTTP POST request to the RunDeck instance, on the given path. We will login first, and then execute * the API call. At the end, the given parser will be used to convert the response to a more useful result object. - * + * * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} * @param parser used to parse the response * @return the result of the call, as formatted by the parser @@ -322,7 +321,7 @@ class ApiCall { /** * Execute an HTTP DELETE request to the RunDeck instance, on the given path. We will login first, and then execute * the API call. At the end, the given parser will be used to convert the response to a more useful result object. - * + * * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} * @param parser used to parse the response * @return the result of the call, as formatted by the parser @@ -354,7 +353,7 @@ class ApiCall { /** * Execute an HTTP request to the RunDeck instance. We will login first, and then execute the API call. At the end, * the given parser will be used to convert the response to a more useful result object. - * + * * @param request to execute. see {@link HttpGet}, {@link HttpDelete}, and so on... * @param parser used to parse the response * @return the result of the call, as formatted by the parser @@ -400,7 +399,7 @@ class ApiCall { } /** * Execute an HTTP request to the RunDeck instance. We will login first, and then execute the API call. - * + * * @param request to execute. see {@link HttpGet}, {@link HttpDelete}, and so on... * @return a new {@link InputStream} instance, not linked with network resources * @throws RundeckApiException in case of error when calling the API @@ -594,7 +593,7 @@ class ApiCall { /** * Do the actual work of login, using the given {@link HttpClient} instance. You'll need to re-use this instance * when making API calls (such as running a job). Only use this in case of login-based authentication. - * + * * @param httpClient pre-instantiated * @throws RundeckApiLoginException if the login failed */ @@ -639,11 +638,11 @@ class ApiCall { while (true) { try { HttpPost postLogin = new HttpPost(location); - List params = new ArrayList(); + List params = new ArrayList(); params.add(new BasicNameValuePair("j_username", client.getLogin())); params.add(new BasicNameValuePair("j_password", client.getPassword())); params.add(new BasicNameValuePair("action", "login")); - postLogin.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); + postLogin.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8)); HttpResponse response = httpClient.execute(postLogin); if (response.getStatusLine().getStatusCode() / 100 == 3) { @@ -663,7 +662,7 @@ class ApiCall { } try { - String content = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); + String content = EntityUtils.toString(response.getEntity(), Consts.UTF_8); if (StringUtils.contains(content, "j_security_check")) { throw new RundeckApiLoginException("Login failed for user " + client.getLogin()); } @@ -689,7 +688,7 @@ class ApiCall { /** * Instantiate a new {@link HttpClient} instance, configured to accept all SSL certificates - * + * * @return an {@link HttpClient} instance - won't be null */ private HttpClient instantiateHttpClient() {