diff --git a/server-core/src/main/java/io/onedev/server/util/jackson/ObjectMapperProvider.java b/server-core/src/main/java/io/onedev/server/util/jackson/ObjectMapperProvider.java index 75b772294d..4a322f81a5 100644 --- a/server-core/src/main/java/io/onedev/server/util/jackson/ObjectMapperProvider.java +++ b/server-core/src/main/java/io/onedev/server/util/jackson/ObjectMapperProvider.java @@ -13,6 +13,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.DeserializationConfig; import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationConfig; import com.fasterxml.jackson.databind.SerializationFeature; @@ -53,6 +54,7 @@ public class ObjectMapperProvider implements Provider { private boolean useForType(JavaType t) { return !Collection.class.isAssignableFrom(t.getRawClass()) && !Map.class.isAssignableFrom(t.getRawClass()) + && t.getRawClass() != JsonNode.class && (t.getRawClass() == Object.class || !t.isConcrete()); } diff --git a/server-core/src/main/java/io/onedev/server/web/component/markdown/emoji/EmojiOnes.java b/server-core/src/main/java/io/onedev/server/web/component/markdown/emoji/EmojiOnes.java index 62df09d8e0..f5c29b595c 100644 --- a/server-core/src/main/java/io/onedev/server/web/component/markdown/emoji/EmojiOnes.java +++ b/server-core/src/main/java/io/onedev/server/web/component/markdown/emoji/EmojiOnes.java @@ -5,21 +5,21 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Splitter; import io.onedev.commons.utils.ExceptionUtils; +import io.onedev.server.OneDev; public class EmojiOnes { - private static final ObjectMapper objectMapper = new ObjectMapper(); - private final Map codes; private static class LazyHolder { @@ -32,15 +32,15 @@ public class EmojiOnes { private EmojiOnes() { try (InputStream in = EmojiOnes.class.getResourceAsStream("emoji.json")) { - Map> json = - objectMapper.readValue(in, new TypeReference>>() {}); + JsonNode emojis = OneDev.getInstance(ObjectMapper.class).readTree(in); Map map = new HashMap<>(); - for (Entry> each : json.entrySet()) { - String code = each.getValue().get("unicode"); - map.put(each.getKey(), code); - String aliases = each.getValue().get("aliases"); + for (Iterator> it = emojis.fields(); it.hasNext();) { + Entry entry = it.next(); + String code = entry.getValue().get("unicode").asText(); + map.put(entry.getKey(), code); + String aliases = entry.getValue().get("aliases").asText(); for (String alias : Splitter.on(" ").omitEmptyStrings().split(aliases)) { String name = alias.substring(1, alias.length() - 1); map.put(name, code); diff --git a/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.html b/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.html index 0357cf9235..795b443f3a 100644 --- a/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.html +++ b/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.html @@ -1,4 +1,3 @@ - run - stop + test \ No newline at end of file diff --git a/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.java b/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.java index e18a7e1238..b14f784038 100644 --- a/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.java +++ b/server-core/src/main/java/io/onedev/server/web/page/test/TestPage.java @@ -6,8 +6,6 @@ import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.request.mapper.parameter.PageParameters; -import io.onedev.commons.utils.command.Commandline; -import io.onedev.commons.utils.command.LineConsumer; import io.onedev.server.web.page.base.BasePage; @SuppressWarnings("serial") @@ -23,48 +21,10 @@ public class TestPage extends BasePage { protected void onInitialize() { super.onInitialize(); - add(new Link("run") { + add(new Link("test") { @Override public void onClick() { - thread = new Thread(new Runnable() { - - @Override - public void run() { - try { - Commandline cmd = new Commandline("sh"); - cmd.addArgs("/home/robin/temp/test.sh"); - cmd.execute(new LineConsumer() { - - @Override - public void consume(String line) { - System.out.println(line); - } - - }, new LineConsumer() { - - @Override - public void consume(String line) { - System.err.println(line); - } - - }).checkReturnCode(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - }); - thread.start(); - } - - }); - - add(new Link("stop") { - - @Override - public void onClick() { - thread.interrupt(); } }); diff --git a/server-plugin/server-plugin-kubernetes/src/main/java/io/onedev/server/plugin/kubernetes/KubernetesExecutor.java b/server-plugin/server-plugin-kubernetes/src/main/java/io/onedev/server/plugin/kubernetes/KubernetesExecutor.java index 10f9f1670b..1f6c98f2c0 100644 --- a/server-plugin/server-plugin-kubernetes/src/main/java/io/onedev/server/plugin/kubernetes/KubernetesExecutor.java +++ b/server-plugin/server-plugin-kubernetes/src/main/java/io/onedev/server/plugin/kubernetes/KubernetesExecutor.java @@ -415,8 +415,9 @@ public class KubernetesExecutor extends JobExecutor implements Testable stopWatchRef = new AtomicReference<>(null); @@ -1023,7 +1024,7 @@ public class KubernetesExecutor extends JobExecutor implements Testable map; try { - map = (Map) new ObjectMapper() - .readValue(builder.toString(), List.class).iterator().next(); - return (String) map.get("Os"); + return OneDev.getInstance(ObjectMapper.class).readTree(builder.toString()).iterator().next().get("Os").asText(); } catch (IOException e) { throw new RuntimeException(e); }