From 3610b3051b168f93e05a516043baa4dbdfd08bd5 Mon Sep 17 00:00:00 2001 From: Alexander Verhaar Date: Thu, 10 May 2018 02:11:31 +0200 Subject: [PATCH] Fix injectTest issue --- pom.xml | 10 ++- .../org/jenkinsci/plugins/gogs/GogsCause.java | 14 ++-- .../plugins/gogs/GogsPayloadData.java | 71 ------------------- .../plugins/gogs/GogsProjectProperty.java | 3 +- .../org/jenkinsci/plugins/gogs/GogsUtils.java | 16 ++++- 5 files changed, 29 insertions(+), 85 deletions(-) delete mode 100644 src/main/java/org/jenkinsci/plugins/gogs/GogsPayloadData.java diff --git a/pom.xml b/pom.xml index 715eeca..d0d098c 100644 --- a/pom.xml +++ b/pom.xml @@ -16,8 +16,8 @@ 8 - 2.60.1 - 2.36 + 2.60.3 + 2.38 3.1.2 @@ -120,6 +120,12 @@ 6.3 test + + org.jenkins-ci.plugins + display-url-api + 2.2.0 + test + diff --git a/src/main/java/org/jenkinsci/plugins/gogs/GogsCause.java b/src/main/java/org/jenkinsci/plugins/gogs/GogsCause.java index 4e5ba90..a85c101 100644 --- a/src/main/java/org/jenkinsci/plugins/gogs/GogsCause.java +++ b/src/main/java/org/jenkinsci/plugins/gogs/GogsCause.java @@ -23,7 +23,6 @@ associated documentation files (the "Software"), to deal in the Software without package org.jenkinsci.plugins.gogs; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import hudson.model.Cause; @@ -32,6 +31,8 @@ associated documentation files (the "Software"), to deal in the Software without import java.util.Map; import java.util.logging.Logger; +import static org.jenkinsci.plugins.gogs.GogsUtils.cast; + class GogsCause extends Cause { private String deliveryID; private final Map envVars = new HashMap<>(); @@ -54,23 +55,20 @@ public void setDeliveryID(String deliveryID) { } public void setGogsPayloadData(String json) { - Map map = null; + Map gogsPayloadData = null; ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); try { - GogsPayloadData gogsPayloadData = objectMapper.readValue(json, GogsPayloadData.class); - map = objectMapper.convertValue(gogsPayloadData, new TypeReference>() { - }); + gogsPayloadData = cast(objectMapper.readValue(json, Map.class)); } catch (Exception e) { LOGGER.severe(e.getMessage()); } - if (map != null) { - iterate(map, null); + if (gogsPayloadData != null) { + iterate(gogsPayloadData, null); } - } private void iterate(Map map, String prefix) { diff --git a/src/main/java/org/jenkinsci/plugins/gogs/GogsPayloadData.java b/src/main/java/org/jenkinsci/plugins/gogs/GogsPayloadData.java deleted file mode 100644 index c730882..0000000 --- a/src/main/java/org/jenkinsci/plugins/gogs/GogsPayloadData.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.jenkinsci.plugins.gogs; - -import java.util.List; - -@SuppressWarnings("unused") -public class GogsPayloadData { - @SuppressWarnings("unused") - public static class UserDetails { - public String name; - public String email; - public String username; - } - - @SuppressWarnings("unused") - public static class Owner { - public Long id; - public String login; - public String full_name; - public String email; - public String avatar_url; - public String username; - } - - @SuppressWarnings("unused") - public static class Commits { - public String id; - public String message; - public String url; - public UserDetails author; - public UserDetails committer; - public List added; - public List removed; - public List modified; - public String timestamp; - } - - @SuppressWarnings("unused") - public static class Repository { - public Long id; - public Owner owner; - public String name; - public String full_name; - public String description; - public Boolean Private; - public Boolean fork; - public Boolean parent; - public Boolean empty; - public Boolean mirror; - public Long size; - public String html_url; - public String ssh_url; - public String clone_url; - public String website; - public Long stars_count; - public Long forks_count; - public Long watchers_count; - public Long open_issues_count; - public String default_branch; - public String created_at; - public String updated_at; - } - - public String ref; - public String before; - public String after; - public String compare_url; - public List commits; - public Repository repository; - public Owner pusher; - public Owner sender; -} diff --git a/src/main/java/org/jenkinsci/plugins/gogs/GogsProjectProperty.java b/src/main/java/org/jenkinsci/plugins/gogs/GogsProjectProperty.java index 79f4e11..9b0a93d 100644 --- a/src/main/java/org/jenkinsci/plugins/gogs/GogsProjectProperty.java +++ b/src/main/java/org/jenkinsci/plugins/gogs/GogsProjectProperty.java @@ -31,6 +31,7 @@ associated documentation files (the "Software"), to deal in the Software without import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; +import javax.annotation.Nonnull; import java.util.logging.Logger; @SuppressWarnings("ALL") @@ -68,7 +69,7 @@ public boolean getGogsUsePayload() { return gogsUsePayload; } - public JobProperty newInstance(StaplerRequest req, JSONObject formData) { + public JobProperty newInstance(@Nonnull StaplerRequest req, @Nonnull JSONObject formData) { GogsProjectProperty tpp = req.bindJSON( GogsProjectProperty.class, formData.getJSONObject(GOGS_PROJECT_BLOCK_NAME) diff --git a/src/main/java/org/jenkinsci/plugins/gogs/GogsUtils.java b/src/main/java/org/jenkinsci/plugins/gogs/GogsUtils.java index 86c5280..49e9866 100644 --- a/src/main/java/org/jenkinsci/plugins/gogs/GogsUtils.java +++ b/src/main/java/org/jenkinsci/plugins/gogs/GogsUtils.java @@ -4,7 +4,6 @@ import jenkins.model.Jenkins; import org.apache.commons.codec.binary.Hex; -import javax.annotation.Nonnull; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.Charset; @@ -55,12 +54,23 @@ static Map splitQuery(String qs) { * @return a String with the encoded sha256 hmac * @throws Exception Something went wrong getting the sha256 hmac */ - static @Nonnull - String encode(String data, String key) throws Exception { + static String encode(String data, String key) throws Exception { final Charset asciiCs = Charset.forName("UTF-8"); final Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); final SecretKeySpec secret_key = new javax.crypto.spec.SecretKeySpec(asciiCs.encode(key).array(), "HmacSHA256"); sha256_HMAC.init(secret_key); return Hex.encodeHexString(sha256_HMAC.doFinal(data.getBytes("UTF-8"))); } + + /** + * Cast object + * + * @param obj object to cast + * @param cast to type + * @return Casted object + */ + @SuppressWarnings("unchecked") + static public T cast(Object obj) { + return (T) obj; + } }