diff --git a/src/main/java/org/springframework/hateoas/alps/Alps.java b/src/main/java/org/springframework/hateoas/alps/Alps.java index 63b7e807..4ec098b2 100644 --- a/src/main/java/org/springframework/hateoas/alps/Alps.java +++ b/src/main/java/org/springframework/hateoas/alps/Alps.java @@ -30,18 +30,19 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; * An ALPS document. * * @author Oliver Gierke + * @author Greg Turnquist * @since 0.15 * @see http://alps.io * @see http://alps.io/spec/#prop-alps */ @Value @Builder(builderMethodName = "alps") -@JsonPropertyOrder({"version", "doc", "descriptors"}) +@JsonPropertyOrder({"version", "doc", "descriptor"}) public class Alps { private final String version = "1.0"; private final Doc doc; - private final List descriptors; + private final List descriptor; /** * Returns a new {@link DescriptorBuilder}. diff --git a/src/main/java/org/springframework/hateoas/alps/Descriptor.java b/src/main/java/org/springframework/hateoas/alps/Descriptor.java index 75310976..13a9883e 100644 --- a/src/main/java/org/springframework/hateoas/alps/Descriptor.java +++ b/src/main/java/org/springframework/hateoas/alps/Descriptor.java @@ -20,15 +20,19 @@ import lombok.Value; import java.util.List; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + /** * A value object for an ALPS descriptor. * * @author Oliver Gierke + * @author Greg Turnquist * @since 0.15 * @see http://alps.io/spec/#prop-descriptor */ @Value @Builder +@JsonPropertyOrder({"id", "href", "name", "type", "doc", "descriptor", "ext"}) public class Descriptor { private final String id, href, name; @@ -36,5 +40,5 @@ public class Descriptor { private final Type type; private final Ext ext; private final String rt; - private final List descriptors; + private final List descriptor; } diff --git a/src/main/java/org/springframework/hateoas/alps/Doc.java b/src/main/java/org/springframework/hateoas/alps/Doc.java index 7e942587..a3eaca6d 100644 --- a/src/main/java/org/springframework/hateoas/alps/Doc.java +++ b/src/main/java/org/springframework/hateoas/alps/Doc.java @@ -21,16 +21,20 @@ import lombok.Value; import org.springframework.util.Assert; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + /** * A value object for an ALPS doc element. * * @author Oliver Gierke + * @author Greg Turnquist * @since 0.15 * @see http://alps.io/spec/#prop-doc */ @Value @Builder @AllArgsConstructor +@JsonPropertyOrder({"format", "href", "value"}) public class Doc { private final String href, value; diff --git a/src/main/java/org/springframework/hateoas/alps/Ext.java b/src/main/java/org/springframework/hateoas/alps/Ext.java index ed31ad27..fedc1c11 100644 --- a/src/main/java/org/springframework/hateoas/alps/Ext.java +++ b/src/main/java/org/springframework/hateoas/alps/Ext.java @@ -18,15 +18,19 @@ package org.springframework.hateoas.alps; import lombok.Builder; import lombok.Value; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + /** * A value object for an ALPS ext element. * * @author Oliver Gierke + * @author Greg Turnquist * @since 0.15 * @see http://alps.io/spec/#prop-ext */ @Value @Builder +@JsonPropertyOrder({"id", "href", "value"}) public class Ext { private final String id; diff --git a/src/main/java/org/springframework/hateoas/alps/Format.java b/src/main/java/org/springframework/hateoas/alps/Format.java index 581941b4..5b18e553 100644 --- a/src/main/java/org/springframework/hateoas/alps/Format.java +++ b/src/main/java/org/springframework/hateoas/alps/Format.java @@ -21,6 +21,7 @@ import java.util.Locale; * Enum for all ALPS doc formats. * * @author Oliver Gierke + * @author Greg Turnquist * @since 0.15 * @see http://alps.io/spec/#prop-format */ diff --git a/src/main/java/org/springframework/hateoas/alps/Type.java b/src/main/java/org/springframework/hateoas/alps/Type.java index cee8c382..88299d64 100644 --- a/src/main/java/org/springframework/hateoas/alps/Type.java +++ b/src/main/java/org/springframework/hateoas/alps/Type.java @@ -21,6 +21,7 @@ import java.util.Locale; * An enum for ALPS descriptor types * * @author Oliver Gierke + * @author Greg Turnquist * @since 0.15 * @see http://alps.io/spec/#prop-type */ diff --git a/src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java b/src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java index e2cb0a5d..6edc8a44 100755 --- a/src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java +++ b/src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java @@ -35,6 +35,7 @@ import com.fasterxml.jackson.databind.SerializationFeature; * Unit tests for serialization of ALPS documents. * * @author Oliver Gierke + * @author Greg Turnquist */ public class JacksonSerializationTest { @@ -56,10 +57,10 @@ public class JacksonSerializationTest { Alps alps = alps().// doc(doc().href("http://example.org/samples/full/doc.html").build()). // - descriptors(Arrays.asList(// + descriptor(Arrays.asList(// descriptor().id("search").type(Type.SAFE).// doc(new Doc("A search form with two inputs.", Format.TEXT)).// - descriptors(Arrays.asList( // + descriptor(Arrays.asList( // descriptor().href("#resultType").build(), // descriptor().id("value").name("search").type(Type.SEMANTIC).build())// ).build(), // diff --git a/src/test/resources/org/springframework/hateoas/alps/reference.json b/src/test/resources/org/springframework/hateoas/alps/reference.json index c68937b0..ffbd4dc2 100644 --- a/src/test/resources/org/springframework/hateoas/alps/reference.json +++ b/src/test/resources/org/springframework/hateoas/alps/reference.json @@ -3,14 +3,14 @@ "doc" : { "href" : "http://example.org/samples/full/doc.html" }, - "descriptors" : [ { + "descriptor" : [ { "id" : "search", - "doc" : { - "value" : "A search form with two inputs.", - "format" : "TEXT" - }, "type" : "SAFE", - "descriptors" : [ { + "doc" : { + "format" : "TEXT", + "value" : "A search form with two inputs." + }, + "descriptor" : [ { "href" : "#resultType" }, { "id" : "value", @@ -19,10 +19,10 @@ } ] }, { "id" : "resultType", + "type" : "SEMANTIC", "doc" : { "value" : "results format" }, - "type" : "SEMANTIC", "ext" : { "id" : "#ext-range", "href" : "http://alps.io/ext/range",