From 74b336efeffcdff93f760c82b26d0bed3cd091e2 Mon Sep 17 00:00:00 2001 From: "nikolce.mihajlovski" Date: Mon, 12 Oct 2015 09:49:58 +0200 Subject: [PATCH] Added smart data parsing tool that detects JSON, XML or YAML data format. --- .../java/org/rapidoid/app/AppHandler.java | 2 +- .../main/java/org/rapidoid/beany/Beany.java | 2 +- .../src/main/java/org/rapidoid/docs/Docs.java | 2 +- .../org/rapidoid/html/impl/TagRenderer.java | 2 +- .../org/rapidoid/http/HTTPServerImpl.java | 2 +- .../org/rapidoid/http/HttpExchangeImpl.java | 2 +- .../java/org/rapidoid/http/HttpParser.java | 2 +- .../java/org/rapidoid/http/fast/FastHttp.java | 2 +- .../java/org/rapidoid/webapp/AppMenuTest.java | 2 +- .../org/rapidoid/{jackson => data}/JSON.java | 2 +- .../main/java/org/rapidoid/data/Parse.java | 138 ++++++++++++++++++ .../java/org/rapidoid/{xml => data}/XML.java | 2 +- .../org/rapidoid/{jackson => data}/YAML.java | 2 +- .../rapidoid/{jackson => data}/JSONTest.java | 7 +- .../java/org/rapidoid/data/ParseTest.java | 83 +++++++++++ .../org/rapidoid/{xml => data}/Person.java | 2 +- .../{jackson/Person.java => data/User.java} | 8 +- .../org/rapidoid/{xml => data}/XMLTest.java | 3 +- .../rapidoid/{jackson => data}/YAMLTest.java | 13 +- .../main/java/org/rapidoid/main/AppTool.java | 2 +- .../rapidoid/net/impl/RapidoidConnection.java | 2 +- .../org/rapidoid/oauth/OAuthTokenHandler.java | 2 +- .../java/org/rapidoid/lambda/Predicate.java | 2 +- 23 files changed, 255 insertions(+), 31 deletions(-) rename rapidoid-jackson/src/main/java/org/rapidoid/{jackson => data}/JSON.java (98%) create mode 100644 rapidoid-jackson/src/main/java/org/rapidoid/data/Parse.java rename rapidoid-jackson/src/main/java/org/rapidoid/{xml => data}/XML.java (98%) rename rapidoid-jackson/src/main/java/org/rapidoid/{jackson => data}/YAML.java (98%) rename rapidoid-jackson/src/test/java/org/rapidoid/{jackson => data}/JSONTest.java (89%) create mode 100644 rapidoid-jackson/src/test/java/org/rapidoid/data/ParseTest.java rename rapidoid-jackson/src/test/java/org/rapidoid/{xml => data}/Person.java (97%) rename rapidoid-jackson/src/test/java/org/rapidoid/{jackson/Person.java => data/User.java} (90%) rename rapidoid-jackson/src/test/java/org/rapidoid/{xml => data}/XMLTest.java (95%) rename rapidoid-jackson/src/test/java/org/rapidoid/{jackson => data}/YAMLTest.java (82%) diff --git a/rapidoid-app/src/main/java/org/rapidoid/app/AppHandler.java b/rapidoid-app/src/main/java/org/rapidoid/app/AppHandler.java index dee21282be..55685a4a9b 100644 --- a/rapidoid-app/src/main/java/org/rapidoid/app/AppHandler.java +++ b/rapidoid-app/src/main/java/org/rapidoid/app/AppHandler.java @@ -29,6 +29,7 @@ import org.rapidoid.annotation.Since; import org.rapidoid.cls.Cls; import org.rapidoid.config.Conf; +import org.rapidoid.data.JSON; import org.rapidoid.dispatch.DispatchResult; import org.rapidoid.dispatch.PojoDispatchException; import org.rapidoid.dispatch.PojoDispatcher; @@ -39,7 +40,6 @@ import org.rapidoid.http.HttpExchange; import org.rapidoid.http.HttpExchangeImpl; import org.rapidoid.io.Res; -import org.rapidoid.jackson.JSON; import org.rapidoid.plugins.templates.Templates; import org.rapidoid.util.U; import org.rapidoid.util.UTILS; diff --git a/rapidoid-beany/src/main/java/org/rapidoid/beany/Beany.java b/rapidoid-beany/src/main/java/org/rapidoid/beany/Beany.java index a91e2b57ed..d66d557b0d 100644 --- a/rapidoid-beany/src/main/java/org/rapidoid/beany/Beany.java +++ b/rapidoid-beany/src/main/java/org/rapidoid/beany/Beany.java @@ -22,8 +22,8 @@ import org.rapidoid.cls.Cls; import org.rapidoid.cls.Proxies; import org.rapidoid.cls.TypeKind; +import org.rapidoid.data.JSON; import org.rapidoid.dates.Dates; -import org.rapidoid.jackson.JSON; import org.rapidoid.lambda.Mapper; import org.rapidoid.log.Log; import org.rapidoid.util.U; diff --git a/rapidoid-docs/src/main/java/org/rapidoid/docs/Docs.java b/rapidoid-docs/src/main/java/org/rapidoid/docs/Docs.java index eda99930b9..148e9a827d 100644 --- a/rapidoid-docs/src/main/java/org/rapidoid/docs/Docs.java +++ b/rapidoid-docs/src/main/java/org/rapidoid/docs/Docs.java @@ -29,10 +29,10 @@ import org.rapidoid.app.AppHandler; import org.rapidoid.config.Config; import org.rapidoid.ctx.Classes; +import org.rapidoid.data.JSON; import org.rapidoid.http.HTTP; import org.rapidoid.http.HttpException; import org.rapidoid.io.IO; -import org.rapidoid.jackson.JSON; import org.rapidoid.main.Rapidoid; import org.rapidoid.plugins.templates.Templates; import org.rapidoid.scan.ClasspathUtil; diff --git a/rapidoid-html/src/main/java/org/rapidoid/html/impl/TagRenderer.java b/rapidoid-html/src/main/java/org/rapidoid/html/impl/TagRenderer.java index 189761463a..b449195222 100644 --- a/rapidoid-html/src/main/java/org/rapidoid/html/impl/TagRenderer.java +++ b/rapidoid-html/src/main/java/org/rapidoid/html/impl/TagRenderer.java @@ -30,11 +30,11 @@ import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; import org.rapidoid.cls.Cls; +import org.rapidoid.data.JSON; import org.rapidoid.html.CustomTag; import org.rapidoid.html.HTML; import org.rapidoid.html.Tag; import org.rapidoid.html.TagWidget; -import org.rapidoid.jackson.JSON; import org.rapidoid.util.Constants; import org.rapidoid.util.U; import org.rapidoid.var.Var; diff --git a/rapidoid-http/src/main/java/org/rapidoid/http/HTTPServerImpl.java b/rapidoid-http/src/main/java/org/rapidoid/http/HTTPServerImpl.java index 7a049917a9..88367eb1cf 100644 --- a/rapidoid-http/src/main/java/org/rapidoid/http/HTTPServerImpl.java +++ b/rapidoid-http/src/main/java/org/rapidoid/http/HTTPServerImpl.java @@ -22,9 +22,9 @@ import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; +import org.rapidoid.data.JSON; import org.rapidoid.http.session.InMemorySessionStore; import org.rapidoid.http.session.SessionStore; -import org.rapidoid.jackson.JSON; import org.rapidoid.net.Protocol; import org.rapidoid.net.impl.RapidoidServerLoop; import org.rapidoid.webapp.WebAppGroup; diff --git a/rapidoid-http/src/main/java/org/rapidoid/http/HttpExchangeImpl.java b/rapidoid-http/src/main/java/org/rapidoid/http/HttpExchangeImpl.java index 05419cdc15..27c08f2f65 100644 --- a/rapidoid-http/src/main/java/org/rapidoid/http/HttpExchangeImpl.java +++ b/rapidoid-http/src/main/java/org/rapidoid/http/HttpExchangeImpl.java @@ -36,13 +36,13 @@ import org.rapidoid.ctx.UserInfo; import org.rapidoid.data.BinaryMultiData; import org.rapidoid.data.Data; +import org.rapidoid.data.JSON; import org.rapidoid.data.KeyValueRanges; import org.rapidoid.data.MultiData; import org.rapidoid.data.Range; import org.rapidoid.data.Ranges; import org.rapidoid.http.session.SessionStore; import org.rapidoid.io.Res; -import org.rapidoid.jackson.JSON; import org.rapidoid.log.Log; import org.rapidoid.mime.MediaType; import org.rapidoid.net.impl.ConnState; diff --git a/rapidoid-http/src/main/java/org/rapidoid/http/HttpParser.java b/rapidoid-http/src/main/java/org/rapidoid/http/HttpParser.java index 15c9ec1b9e..4d7963e59a 100644 --- a/rapidoid-http/src/main/java/org/rapidoid/http/HttpParser.java +++ b/rapidoid-http/src/main/java/org/rapidoid/http/HttpParser.java @@ -27,10 +27,10 @@ import org.rapidoid.buffer.Buf; import org.rapidoid.bytes.Bytes; import org.rapidoid.bytes.BytesUtil; +import org.rapidoid.data.JSON; import org.rapidoid.data.KeyValueRanges; import org.rapidoid.data.Range; import org.rapidoid.data.Ranges; -import org.rapidoid.jackson.JSON; import org.rapidoid.log.Log; import org.rapidoid.net.impl.RapidoidHelper; import org.rapidoid.util.Constants; diff --git a/rapidoid-http/src/main/java/org/rapidoid/http/fast/FastHttp.java b/rapidoid-http/src/main/java/org/rapidoid/http/fast/FastHttp.java index fa81f272d9..df28d8ebc1 100644 --- a/rapidoid-http/src/main/java/org/rapidoid/http/fast/FastHttp.java +++ b/rapidoid-http/src/main/java/org/rapidoid/http/fast/FastHttp.java @@ -29,12 +29,12 @@ import org.rapidoid.bufstruct.BufMapImpl; import org.rapidoid.bytes.Bytes; import org.rapidoid.bytes.BytesUtil; +import org.rapidoid.data.JSON; import org.rapidoid.data.KeyValueRanges; import org.rapidoid.data.Range; import org.rapidoid.data.Ranges; import org.rapidoid.dates.Dates; import org.rapidoid.http.HttpParser; -import org.rapidoid.jackson.JSON; import org.rapidoid.net.Protocol; import org.rapidoid.net.abstracts.Channel; import org.rapidoid.net.impl.RapidoidHelper; diff --git a/rapidoid-http/src/test/java/org/rapidoid/webapp/AppMenuTest.java b/rapidoid-http/src/test/java/org/rapidoid/webapp/AppMenuTest.java index c580c98da0..b3872b0869 100644 --- a/rapidoid-http/src/test/java/org/rapidoid/webapp/AppMenuTest.java +++ b/rapidoid-http/src/test/java/org/rapidoid/webapp/AppMenuTest.java @@ -23,9 +23,9 @@ import org.junit.Test; import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; +import org.rapidoid.data.YAML; import org.rapidoid.http.HttpTestCommons; import org.rapidoid.io.Res; -import org.rapidoid.jackson.YAML; @Authors("Nikolche Mihajlovski") @Since("4.1.0") diff --git a/rapidoid-jackson/src/main/java/org/rapidoid/jackson/JSON.java b/rapidoid-jackson/src/main/java/org/rapidoid/data/JSON.java similarity index 98% rename from rapidoid-jackson/src/main/java/org/rapidoid/jackson/JSON.java rename to rapidoid-jackson/src/main/java/org/rapidoid/data/JSON.java index f385e0f18d..418cb180a0 100644 --- a/rapidoid-jackson/src/main/java/org/rapidoid/jackson/JSON.java +++ b/rapidoid-jackson/src/main/java/org/rapidoid/data/JSON.java @@ -1,4 +1,4 @@ -package org.rapidoid.jackson; +package org.rapidoid.data; import java.io.OutputStream; import java.util.Map; diff --git a/rapidoid-jackson/src/main/java/org/rapidoid/data/Parse.java b/rapidoid-jackson/src/main/java/org/rapidoid/data/Parse.java new file mode 100644 index 0000000000..70d7e7c26f --- /dev/null +++ b/rapidoid-jackson/src/main/java/org/rapidoid/data/Parse.java @@ -0,0 +1,138 @@ +package org.rapidoid.data; + +/* + * #%L + * rapidoid-jackson + * %% + * Copyright (C) 2014 - 2015 Nikolche Mihajlovski and contributors + * %% + * Licensed 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. + * #L% + */ + +import org.rapidoid.util.U; + +/** + * @author Nikolche Mihajlovski + * @since 4.4.0 + */ +public class Parse { + + enum DataFormat { + JSON, XML, YAML + }; + + private static final DataFormat[] XML_FIRST = { DataFormat.XML, DataFormat.JSON, DataFormat.YAML }; + + private static final DataFormat[] JSON_FIRST = { DataFormat.JSON, DataFormat.XML, DataFormat.YAML }; + + private static final DataFormat[] YAML_FIRST = { DataFormat.YAML, DataFormat.JSON, DataFormat.XML }; + + public static T data(String data, Class targetType) { + return data(data.getBytes(), targetType); + } + + @SuppressWarnings("unchecked") + public static T data(byte[] data, Class targetType) { + if (data == null) { + return null; + } + + // don't parse if the target type is byte[] + if (targetType == byte[].class) { + return (T) data; + } + + DataFormat[] formatsOrder = detectDataFormat(data); + + return tryToParseData(data, formatsOrder, targetType); + } + + private static T tryToParseData(byte[] data, DataFormat[] formatsOrder, Class targetType) { + + Exception firstException = null; + + for (DataFormat dataFormat : formatsOrder) { + switch (dataFormat) { + case JSON: + try { + return JSON.parse(data, targetType); + } catch (Exception e) { + if (firstException == null) { + firstException = e; + } + } + break; + + case XML: + try { + return XML.parse(data, targetType); + } catch (Exception e) { + if (firstException == null) { + firstException = e; + } + } + break; + + case YAML: + try { + return YAML.parse(data, targetType); + } catch (Exception e) { + if (firstException == null) { + firstException = e; + } + } + break; + + default: + break; + } + } + + throw U.rte("Not a valid JSON, XML nor YAML format!", firstException); + } + + static DataFormat[] detectDataFormat(byte[] data) { + if (data.length == 0) { + return YAML_FIRST; + } + + byte start = findFirstNonWhitespaceByte(data); + + if (start == '<') { + return XML_FIRST; + } else if (start == ' ' || (start == '-' && dataStartsWithYAMLMark(data))) { + return YAML_FIRST; + } else { + return JSON_FIRST; + } + } + + private static byte findFirstNonWhitespaceByte(byte[] data) { + int i = 0; + + while (Character.isWhitespace(data[i])) { + i++; + if (i >= data.length) { + return ' '; + } + } + + return data[i]; + } + + private static boolean dataStartsWithYAMLMark(byte[] data) { + return data.length >= 3 && data[0] == '-' && data[1] == '-' && data[2] == '-'; + } + +} diff --git a/rapidoid-jackson/src/main/java/org/rapidoid/xml/XML.java b/rapidoid-jackson/src/main/java/org/rapidoid/data/XML.java similarity index 98% rename from rapidoid-jackson/src/main/java/org/rapidoid/xml/XML.java rename to rapidoid-jackson/src/main/java/org/rapidoid/data/XML.java index 17a6c2ef1f..9611534d0f 100644 --- a/rapidoid-jackson/src/main/java/org/rapidoid/xml/XML.java +++ b/rapidoid-jackson/src/main/java/org/rapidoid/data/XML.java @@ -1,4 +1,4 @@ -package org.rapidoid.xml; +package org.rapidoid.data; /* * #%L diff --git a/rapidoid-jackson/src/main/java/org/rapidoid/jackson/YAML.java b/rapidoid-jackson/src/main/java/org/rapidoid/data/YAML.java similarity index 98% rename from rapidoid-jackson/src/main/java/org/rapidoid/jackson/YAML.java rename to rapidoid-jackson/src/main/java/org/rapidoid/data/YAML.java index b667fa6b33..ec911a073a 100644 --- a/rapidoid-jackson/src/main/java/org/rapidoid/jackson/YAML.java +++ b/rapidoid-jackson/src/main/java/org/rapidoid/data/YAML.java @@ -1,4 +1,4 @@ -package org.rapidoid.jackson; +package org.rapidoid.data; import java.io.OutputStream; import java.util.Map; diff --git a/rapidoid-jackson/src/test/java/org/rapidoid/jackson/JSONTest.java b/rapidoid-jackson/src/test/java/org/rapidoid/data/JSONTest.java similarity index 89% rename from rapidoid-jackson/src/test/java/org/rapidoid/jackson/JSONTest.java rename to rapidoid-jackson/src/test/java/org/rapidoid/data/JSONTest.java index fcd3f43860..2907de0806 100644 --- a/rapidoid-jackson/src/test/java/org/rapidoid/jackson/JSONTest.java +++ b/rapidoid-jackson/src/test/java/org/rapidoid/data/JSONTest.java @@ -1,4 +1,4 @@ -package org.rapidoid.jackson; +package org.rapidoid.data; /* * #%L @@ -23,6 +23,7 @@ import java.util.Map; import org.junit.Test; +import org.rapidoid.data.JSON; import org.rapidoid.test.TestCommons; /** @@ -34,12 +35,12 @@ public class JSONTest extends TestCommons { @SuppressWarnings("unchecked") @Test public void json() { - Person p = new Person("john", 25); + User p = new User("john", 25); String json = JSON.stringify(p); System.out.println(json); - Person p2 = JSON.parse(json, Person.class); + User p2 = JSON.parse(json, User.class); eq(p2.name, p.name); eq(p2.age, p.age); diff --git a/rapidoid-jackson/src/test/java/org/rapidoid/data/ParseTest.java b/rapidoid-jackson/src/test/java/org/rapidoid/data/ParseTest.java new file mode 100644 index 0000000000..215e1440d7 --- /dev/null +++ b/rapidoid-jackson/src/test/java/org/rapidoid/data/ParseTest.java @@ -0,0 +1,83 @@ +package org.rapidoid.data; + +/* + * #%L + * rapidoid-jackson + * %% + * Copyright (C) 2014 - 2015 Nikolche Mihajlovski and contributors + * %% + * Licensed 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. + * #L% + */ + +import org.junit.Test; +import org.rapidoid.data.Parse.DataFormat; +import org.rapidoid.test.TestCommons; + +/** + * @author Nikolche Mihajlovski + * @since 4.4.0 + */ +public class ParseTest extends TestCommons { + + @Test + public void testXMLParse() { + String xml = XML.stringify(new Person("abc", 123)); + System.out.println(xml); + + Person p = Parse.data(xml, Person.class); + + eq(p.getName(), "abc"); + eq(p.getAge(), 123); + } + + @Test + public void testJSONParse() { + String json = JSON.stringify(new Person("abc", 123)); + System.out.println(json); + + Person p = Parse.data(json, Person.class); + + eq(p.getName(), "abc"); + eq(p.getAge(), 123); + + isNull(Parse.data("null", Person.class)); + eq(Parse.data("3", Integer.class).intValue(), 3); + isTrue(Parse.data("true", Boolean.class).booleanValue()); + isFalse(Parse.data("false", Boolean.class).booleanValue()); + eq(Parse.data("\"123\"", String.class), "123"); + } + + @Test + public void testYAMLParse() { + String yaml = YAML.stringify(new Person("abc", 123)); + System.out.println(yaml); + + Person p = Parse.data(yaml, Person.class); + + eq(p.getName(), "abc"); + eq(p.getAge(), 123); + } + + @Test + public void testDataFormatAutoDetect() { + eq(Parse.detectDataFormat("---\n".getBytes())[0], DataFormat.YAML); + eq(Parse.detectDataFormat("".getBytes())[0], DataFormat.YAML); + eq(Parse.detectDataFormat("".getBytes())[0], DataFormat.XML); + eq(Parse.detectDataFormat("-1".getBytes())[0], DataFormat.JSON); + eq(Parse.detectDataFormat("-12345".getBytes())[0], DataFormat.JSON); + eq(Parse.detectDataFormat("null".getBytes())[0], DataFormat.JSON); + eq(Parse.detectDataFormat("\"fff\"".getBytes())[0], DataFormat.JSON); + } + +} diff --git a/rapidoid-jackson/src/test/java/org/rapidoid/xml/Person.java b/rapidoid-jackson/src/test/java/org/rapidoid/data/Person.java similarity index 97% rename from rapidoid-jackson/src/test/java/org/rapidoid/xml/Person.java rename to rapidoid-jackson/src/test/java/org/rapidoid/data/Person.java index a2bbb8f7d8..10201a33ac 100644 --- a/rapidoid-jackson/src/test/java/org/rapidoid/xml/Person.java +++ b/rapidoid-jackson/src/test/java/org/rapidoid/data/Person.java @@ -1,4 +1,4 @@ -package org.rapidoid.xml; +package org.rapidoid.data; /* * #%L diff --git a/rapidoid-jackson/src/test/java/org/rapidoid/jackson/Person.java b/rapidoid-jackson/src/test/java/org/rapidoid/data/User.java similarity index 90% rename from rapidoid-jackson/src/test/java/org/rapidoid/jackson/Person.java rename to rapidoid-jackson/src/test/java/org/rapidoid/data/User.java index 962de8eba8..4b099245fb 100644 --- a/rapidoid-jackson/src/test/java/org/rapidoid/jackson/Person.java +++ b/rapidoid-jackson/src/test/java/org/rapidoid/data/User.java @@ -1,4 +1,4 @@ -package org.rapidoid.jackson; +package org.rapidoid.data; /* * #%L @@ -30,7 +30,7 @@ * @author Nikolche Mihajlovski * @since 2.0.0 */ -public class Person { +public class User { public long id; @@ -44,9 +44,9 @@ public class Person { public List lst = U.list(1, "bn", false); - public Person() {} + public User() {} - public Person(String name, int age) { + public User(String name, int age) { this.name = name; this.age = age; } diff --git a/rapidoid-jackson/src/test/java/org/rapidoid/xml/XMLTest.java b/rapidoid-jackson/src/test/java/org/rapidoid/data/XMLTest.java similarity index 95% rename from rapidoid-jackson/src/test/java/org/rapidoid/xml/XMLTest.java rename to rapidoid-jackson/src/test/java/org/rapidoid/data/XMLTest.java index ecc13e4303..5aaf39dacf 100644 --- a/rapidoid-jackson/src/test/java/org/rapidoid/xml/XMLTest.java +++ b/rapidoid-jackson/src/test/java/org/rapidoid/data/XMLTest.java @@ -1,4 +1,4 @@ -package org.rapidoid.xml; +package org.rapidoid.data; /* * #%L @@ -21,6 +21,7 @@ */ import org.junit.Test; +import org.rapidoid.data.XML; import org.rapidoid.test.TestCommons; /** diff --git a/rapidoid-jackson/src/test/java/org/rapidoid/jackson/YAMLTest.java b/rapidoid-jackson/src/test/java/org/rapidoid/data/YAMLTest.java similarity index 82% rename from rapidoid-jackson/src/test/java/org/rapidoid/jackson/YAMLTest.java rename to rapidoid-jackson/src/test/java/org/rapidoid/data/YAMLTest.java index 6718af2d45..9a29fc003c 100644 --- a/rapidoid-jackson/src/test/java/org/rapidoid/jackson/YAMLTest.java +++ b/rapidoid-jackson/src/test/java/org/rapidoid/data/YAMLTest.java @@ -1,4 +1,4 @@ -package org.rapidoid.jackson; +package org.rapidoid.data; /* * #%L @@ -24,13 +24,14 @@ import java.util.Map; import org.junit.Test; +import org.rapidoid.data.YAML; import org.rapidoid.io.IO; import org.rapidoid.test.TestCommons; import org.rapidoid.util.U; import com.fasterxml.jackson.core.type.TypeReference; -class Persons extends TypeReference> {} +class Persons extends TypeReference> {} /** * @author Nikolche Mihajlovski @@ -38,7 +39,7 @@ class Persons extends TypeReference> {} */ public class YAMLTest extends TestCommons { - private final TypeReference> personList = new TypeReference>() {}; + private final TypeReference> personList = new TypeReference>() {}; @Test public void parseMap() { @@ -51,15 +52,15 @@ public void parseMap() { public void parseBeans() { String yaml = IO.load("persons.yaml"); - List persons = YAML.parse(yaml, personList); + List persons = YAML.parse(yaml, personList); eq(persons.size(), 2); - Person p1 = persons.get(0); + User p1 = persons.get(0); eq(p1.id, 123); eq(p1.name, "John Doe"); eq(p1.age, 50); - Person p2 = persons.get(1); + User p2 = persons.get(1); eq(p2.name, "Highlander"); eq(p2.age, 900); } diff --git a/rapidoid-main/src/main/java/org/rapidoid/main/AppTool.java b/rapidoid-main/src/main/java/org/rapidoid/main/AppTool.java index 25fae29785..2d5ff9512d 100644 --- a/rapidoid-main/src/main/java/org/rapidoid/main/AppTool.java +++ b/rapidoid-main/src/main/java/org/rapidoid/main/AppTool.java @@ -27,8 +27,8 @@ import org.rapidoid.annotation.Since; import org.rapidoid.app.AsyncAppHandler; import org.rapidoid.config.Conf; +import org.rapidoid.data.YAML; import org.rapidoid.io.Res; -import org.rapidoid.jackson.YAML; import org.rapidoid.log.Log; import org.rapidoid.plugins.Plugin; import org.rapidoid.plugins.Plugins; diff --git a/rapidoid-net/src/main/java/org/rapidoid/net/impl/RapidoidConnection.java b/rapidoid-net/src/main/java/org/rapidoid/net/impl/RapidoidConnection.java index a744abdd20..363fc1ba9a 100644 --- a/rapidoid-net/src/main/java/org/rapidoid/net/impl/RapidoidConnection.java +++ b/rapidoid-net/src/main/java/org/rapidoid/net/impl/RapidoidConnection.java @@ -35,7 +35,7 @@ import org.rapidoid.annotation.Since; import org.rapidoid.buffer.Buf; import org.rapidoid.buffer.BufGroup; -import org.rapidoid.jackson.JSON; +import org.rapidoid.data.JSON; import org.rapidoid.net.Protocol; import org.rapidoid.net.abstracts.Channel; import org.rapidoid.util.Constants; diff --git a/rapidoid-oauth/src/main/java/org/rapidoid/oauth/OAuthTokenHandler.java b/rapidoid-oauth/src/main/java/org/rapidoid/oauth/OAuthTokenHandler.java index 5696c451df..abe3a5caf3 100644 --- a/rapidoid-oauth/src/main/java/org/rapidoid/oauth/OAuthTokenHandler.java +++ b/rapidoid-oauth/src/main/java/org/rapidoid/oauth/OAuthTokenHandler.java @@ -36,9 +36,9 @@ import org.rapidoid.config.ConfigEntry; import org.rapidoid.ctx.Ctxs; import org.rapidoid.ctx.UserInfo; +import org.rapidoid.data.JSON; import org.rapidoid.http.Handler; import org.rapidoid.http.HttpExchange; -import org.rapidoid.jackson.JSON; import org.rapidoid.log.Log; import org.rapidoid.util.U; import org.rapidoid.util.UTILS; diff --git a/rapidoid-u/src/main/java/org/rapidoid/lambda/Predicate.java b/rapidoid-u/src/main/java/org/rapidoid/lambda/Predicate.java index 8c651c3892..49fec2084d 100644 --- a/rapidoid-u/src/main/java/org/rapidoid/lambda/Predicate.java +++ b/rapidoid-u/src/main/java/org/rapidoid/lambda/Predicate.java @@ -2,7 +2,7 @@ /* * #%L - * rapidoid-lambda + * rapidoid-u * %% * Copyright (C) 2014 - 2015 Nikolche Mihajlovski and contributors * %%