You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/08/15 21:56:38 UTC

[1/5] isis git commit: ISIS-1465: updates example apps to use 1.16.0-SNAPSHOT

Repository: isis
Updated Branches:
  refs/heads/master 3c5debedb -> e17f37400


ISIS-1465: updates example apps to use 1.16.0-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ee57be7d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ee57be7d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ee57be7d

Branch: refs/heads/master
Commit: ee57be7da331b9117166bcd427016594d543ae7a
Parents: 3c5debe
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 15 21:35:31 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 15 21:35:31 2017 +0100

----------------------------------------------------------------------
 example/application/helloworld/pom.xml | 4 ++--
 example/application/simpleapp/pom.xml  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ee57be7d/example/application/helloworld/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/helloworld/pom.xml b/example/application/helloworld/pom.xml
index 6bf9826..a1cdb4d 100644
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@ -29,14 +29,14 @@
 
     <groupId>org.apache.isis.example.application</groupId>
     <artifactId>helloworld</artifactId>
-    <version>1.15.0-SNAPSHOT</version>
+    <version>1.16.0-SNAPSHOT</version>
 
     <name>HelloWorld</name>
 
     <packaging>war</packaging>
 
     <properties>
-        <isis.version>1.15.0</isis.version>
+        <isis.version>1.16.0-SNAPSHOT</isis.version>
 
         <lombok.version>1.16.10</lombok.version>
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ee57be7d/example/application/simpleapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index ccbf1c1..989a275 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -29,7 +29,7 @@
 
     <groupId>org.apache.isis.example.application</groupId>
     <artifactId>simpleapp</artifactId>
-    <version>1.15.0-SNAPSHOT</version>
+    <version>1.16.0-SNAPSHOT</version>
 
     <name>SimpleApp Parent</name>
 
@@ -40,7 +40,7 @@
     </prerequisites>
 
     <properties>
-        <isis.version>1.15.0</isis.version>
+        <isis.version>1.16.0-SNAPSHOT</isis.version>
 
         <lombok.version>1.16.10</lombok.version>
 


[3/5] isis git commit: ISIS-1696: shows menuBar as an extension for RO viewer's representation of a service

Posted by da...@apache.org.
ISIS-1696: shows menuBar as an extension for RO viewer's representation of a service


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/bdb84968
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/bdb84968
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/bdb84968

Branch: refs/heads/master
Commit: bdb84968a09273dcda59432f863f0d340d2e96f6
Parents: a4279f0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 15 21:48:53 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 15 21:48:53 2017 +0100

----------------------------------------------------------------------
 .../domainobjects/DomainObjectReprRenderer.java        | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/bdb84968/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 4263b83..2f64732 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -18,8 +18,10 @@ package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
 
 import java.util.List;
 
+import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
 import org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.services.ServiceUtil;
@@ -177,6 +179,17 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
             // extensions
             getExtensions().mapPut("isService", isService);
             getExtensions().mapPut("isPersistent", objectAdapter.representsPersistent());
+            if(isService) {
+                final ObjectSpecification objectSpec = objectAdapter.getSpecification();
+                final DomainServiceLayoutFacet layoutFacet =
+                        objectSpec.getFacet(DomainServiceLayoutFacet.class);
+                if(layoutFacet != null) {
+                    final DomainServiceLayout.MenuBar menuBar = layoutFacet.getMenuBar();
+                    if(menuBar != null) {
+                        getExtensions().mapPut("menuBar", menuBar);
+                    }
+                }
+            }
         }
 
         return representation;


[2/5] isis git commit: ISIS-1465: tiny threadsafety fix for restful when generating representations (SimpleDateFormat is not thread-safe)

Posted by da...@apache.org.
ISIS-1465: tiny threadsafety fix for restful when generating representations (SimpleDateFormat is not thread-safe)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a4279f06
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a4279f06
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a4279f06

Branch: refs/heads/master
Commit: a4279f06a64f096d9fadee6652d24dba74791f54
Parents: ee57be7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 15 21:36:18 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 15 21:36:18 2017 +0100

----------------------------------------------------------------------
 .../ContentNegotiationServiceForRestfulObjectsV1_0.java      | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a4279f06/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
index ac8692f..fb666a8 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
@@ -56,8 +56,6 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationSer
 )
 public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNegotiationService {
 
-    private static final DateFormat ETAG_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
-
     private boolean strictAcceptChecking;
 
     @PostConstruct
@@ -110,11 +108,15 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
 
         final Version version = objectAdapter.getVersion();
         if (version != null && version.getTime() != null) {
-            responseBuilder.tag(ETAG_FORMAT.format(version.getTime()));
+            responseBuilder.tag(etagFormat().format(version.getTime()));
         }
         return responseBuilder;
     }
 
+    private DateFormat etagFormat() {
+        return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
+    }
+
     @Override
     public ResponseBuilder buildResponse(
             final RepresentationService.Context2 rendererContext,


[5/5] isis git commit: ISIS-1697: adds new domain-type/layout representation to obtain the grid for a domain object.

Posted by da...@apache.org.
ISIS-1697: adds new domain-type/layout representation to obtain the grid for a domain object.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e17f3740
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e17f3740
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e17f3740

Branch: refs/heads/master
Commit: e17f374003cd2e5fd15db438298bb0983d6f4c06
Parents: a99b2e1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 15 22:54:31 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 15 22:54:31 2017 +0100

----------------------------------------------------------------------
 .../isis/viewer/restfulobjects/applib/Rel.java  |  1 +
 .../applib/RepresentationType.java              | 10 +++++++++-
 .../restfulobjects/applib/RestfulMediaType.java |  1 +
 .../applib/domaintypes/DomainTypeResource.java  |  9 ++++++++-
 .../restfulobjects/rendering/LinkBuilder.java   |  2 +-
 .../restfulobjects/rendering/Responses.java     |  4 ++++
 .../domainobjects/DomainObjectReprRenderer.java |  8 ++++++++
 .../domaintypes/DomainTypeReprRenderer.java     | 11 +++++++++-
 .../resources/DomainTypeResourceServerside.java | 21 ++++++++++++++++++++
 9 files changed, 63 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
index 70d7699..d8c0796 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/Rel.java
@@ -59,6 +59,7 @@ public enum Rel {
 
     // implementation specific
     CONTRIBUTED_BY(RelDefinition.IMPL, "contributed-by"),
+    LAYOUT(RelDefinition.IMPL, "layout"),
     LOGOUT(RelDefinition.IMPL, "logout");
 
     private final RelDefinition relDef;

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
index 501e81c..1c2adc7 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
@@ -93,6 +93,10 @@ public enum RepresentationType {
             RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPE,
             null,
             DomainTypeRepresentation.class),
+    LAYOUT(
+            null,
+            RestfulMediaType.APPLICATION_XML_LAYOUT_BS3,
+            null),
     PROPERTY_DESCRIPTION(
             RestfulMediaType.APPLICATION_JSON_PROPERTY_DESCRIPTION,
             null,
@@ -128,7 +132,7 @@ public enum RepresentationType {
     private final Class<? extends JsonRepresentation> representationClass;
 
     private RepresentationType(final String jsonMediaTypeStr, final String xmlMediaTypeStr, final Class<? extends JsonRepresentation> representationClass) {
-        this(MediaType.valueOf(jsonMediaTypeStr), xmlMediaTypeStr != null? MediaType.valueOf(xmlMediaTypeStr): null, representationClass);
+        this(jsonMediaTypeStr != null ? MediaType.valueOf(jsonMediaTypeStr) : null, xmlMediaTypeStr != null? MediaType.valueOf(xmlMediaTypeStr): null, representationClass);
     }
 
     private RepresentationType(final MediaType jsonMediaType, final MediaType xmlMediaType, final Class<? extends JsonRepresentation> representationClass) {
@@ -156,6 +160,10 @@ public enum RepresentationType {
         return xmlMediaType;
     }
 
+    public MediaType getJsonElseXmlMediaType() {
+        return jsonMediaType != null ? jsonMediaType : xmlMediaType;
+    }
+
     /**
      * Clones the (immutable) {@link #getMediaType() media type}, adding in one additional
      * parameter value.

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulMediaType.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulMediaType.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulMediaType.java
index 1227a8f..b440b89 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulMediaType.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulMediaType.java
@@ -56,6 +56,7 @@ public final class RestfulMediaType {
     public final static String APPLICATION_JSON_TYPE_ACTION_RESULT = JSON_BASE + "type-action-result";
 
     private static final String XML_BASE = "application/xml" + ";profile=" + PROFILE_PARAM_PREFIX;
+    public final static String APPLICATION_XML_LAYOUT_BS3 = XML_BASE + "layout-bs3";
 
 
     // currently only support a subset of representations in XML format

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
index 638023c..8881c25 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
@@ -26,9 +26,10 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
 import org.jboss.resteasy.annotations.ClientResponseType;
 
+import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
+
 @Path("/domain-types")
 public interface DomainTypeResource {
 
@@ -53,6 +54,12 @@ public interface DomainTypeResource {
     public abstract Response domainType(@PathParam("domainType") final String domainType);
 
     @GET
+    @Path("/{domainType}/layout")
+    @Produces({ MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_LAYOUT_BS3 })
+    @ClientResponseType(entityType = String.class)
+    public abstract Response layout(@PathParam("domainType") final String domainType);
+
+    @GET
     @Path("/{domainType}/properties/{propertyId}")
     @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_PROPERTY_DESCRIPTION })
     @ClientResponseType(entityType = String.class)

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
index f6e27e7..234fd97 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
@@ -27,7 +27,7 @@ import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
 public final class LinkBuilder {
 
     public static LinkBuilder newBuilder(final RendererContext resourceContext, final String rel, final RepresentationType representationType, final String hrefFormat, final Object... hrefArgs) {
-        return newBuilder(resourceContext, rel, representationType.getMediaType(), hrefFormat, hrefArgs);
+        return newBuilder(resourceContext, rel, representationType.getJsonElseXmlMediaType(), hrefFormat, hrefArgs);
     }
 
     public static LinkBuilder newBuilder(final RendererContext resourceContext, final String rel, final MediaType mediaType, final String hrefFormat, final Object... hrefArgs) {

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
index e68e250..4be7721 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
@@ -35,6 +35,10 @@ public final class Responses {
         return of(RestfulResponse.HttpStatusCode.NO_CONTENT);
     }
 
+    public static Response.ResponseBuilder ofNotFound() {
+        return of(RestfulResponse.HttpStatusCode.NOT_FOUND);
+    }
+
     public static Response.ResponseBuilder ofOk(
             final ReprRenderer<?, ?> renderer,
             final Caching caching) {

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 2f64732..883d5cd 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -166,6 +166,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
         // described by
         if (mode.includeDescribedBy() && !rendererContext.suppressDescribedByLinks()) {
             addLinkToDescribedBy();
+            addLinkToLayout();
         }
         if(isService && mode.includeUp()) {
             addLinkToUp();
@@ -221,6 +222,13 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
         getLinks().arrayAdd(link);
     }
 
+    private void addLinkToLayout() {
+        final LinkBuilder linkBuilder = DomainTypeReprRenderer
+                .newLinkToLayoutBuilder(getRendererContext(), Rel.LAYOUT, objectAdapter.getSpecification());
+        final JsonRepresentation link = linkBuilder.build();
+        getLinks().arrayAdd(link);
+    }
+
     private void addLinkToUp() {
         final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.LIST, "services").build();
         getLinks().arrayAdd(link);

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
index 26baf69..9ac1e96 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
@@ -39,10 +39,16 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
 
     public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpec) {
         final String typeFullName = objectSpec.getSpecId().asString();
-        final String url = "domain-types/" + typeFullName;
+        final String url = String.format("domain-types/%s", typeFullName);
         return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.DOMAIN_TYPE, url);
     }
 
+    public static LinkBuilder newLinkToLayoutBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpec) {
+        final String typeFullName = objectSpec.getSpecId().asString();
+        final String url = String.format("domain-types/%s/layout", typeFullName);
+        return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.LAYOUT, url);
+    }
+
     private ObjectSpecification objectSpecification;
 
     public DomainTypeReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
@@ -66,6 +72,9 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
         if (includesSelf) {
             final JsonRepresentation selfLink = newLinkToBuilder(getRendererContext(), Rel.SELF, objectSpecification).build();
             getLinks().arrayAdd(selfLink);
+
+            final JsonRepresentation layoutLink = newLinkToLayoutBuilder(getRendererContext(), Rel.LAYOUT, objectSpecification).build();
+            getLinks().arrayAdd(layoutLink);
         }
 
         representation.mapPut("canonicalName", objectSpecification.getFullIdentifier());

http://git-wip-us.apache.org/repos/asf/isis/blob/e17f3740/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
index 885bc54..02868c0 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
@@ -31,6 +31,7 @@ import javax.ws.rs.core.Response;
 import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -106,6 +107,26 @@ public class DomainTypeResourceServerside extends ResourceAbstract implements Do
 
     @Override
     @GET
+    @Path("/{domainType}/layout")
+    @Produces({ MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_LAYOUT_BS3 })
+    public Response layout(@PathParam("domainType") final String domainType) {
+        init(RepresentationType.LAYOUT, Where.ANYWHERE, RepresentationService.Intent.NOT_APPLICABLE);
+
+        final ObjectSpecification objectSpec = getSpecificationLoader().lookupBySpecId(ObjectSpecId.of(domainType));
+        final GridFacet gridFacet = objectSpec.getFacet(GridFacet.class);
+        final Response.ResponseBuilder builder;
+        if(gridFacet == null) {
+            builder = Responses.ofNotFound();
+            return builder.build();
+        } else {
+            builder = Response.status(Response.Status.OK).entity(gridFacet.getGrid()).type(RepresentationType.LAYOUT.getXmlMediaType());
+        }
+
+        return builder.build();
+    }
+
+    @Override
+    @GET
     @Path("/{domainType}/properties/{propertyId}")
     @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_PROPERTY_DESCRIPTION })
     public Response typeProperty(@PathParam("domainType") final String domainType, @PathParam("propertyId") final String propertyId) {


[4/5] isis git commit: ISIS-1465: updates simpleapp (remaining submodules) to reference 1.16.0-SNAPSHOT

Posted by da...@apache.org.
ISIS-1465: updates simpleapp (remaining submodules) to reference 1.16.0-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a99b2e14
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a99b2e14
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a99b2e14

Branch: refs/heads/master
Commit: a99b2e14f0e251a3de689aec4f234eb4ad830dca
Parents: bdb8496
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Aug 15 22:34:28 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Aug 15 22:34:28 2017 +0100

----------------------------------------------------------------------
 example/application/simpleapp/application/pom.xml   | 2 +-
 example/application/simpleapp/module-simple/pom.xml | 2 +-
 example/application/simpleapp/webapp/pom.xml        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a99b2e14/example/application/simpleapp/application/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/pom.xml b/example/application/simpleapp/application/pom.xml
index 9b292fb..6800a60 100644
--- a/example/application/simpleapp/application/pom.xml
+++ b/example/application/simpleapp/application/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simpleapp</artifactId>
-        <version>1.15.0-SNAPSHOT</version>
+        <version>1.16.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>simpleapp-application</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/a99b2e14/example/application/simpleapp/module-simple/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/pom.xml b/example/application/simpleapp/module-simple/pom.xml
index b352e23..bf735ad 100644
--- a/example/application/simpleapp/module-simple/pom.xml
+++ b/example/application/simpleapp/module-simple/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simpleapp</artifactId>
-        <version>1.15.0-SNAPSHOT</version>
+        <version>1.16.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>simpleapp-module-simple</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/a99b2e14/example/application/simpleapp/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/pom.xml b/example/application/simpleapp/webapp/pom.xml
index 00cb801..ffe16fa 100644
--- a/example/application/simpleapp/webapp/pom.xml
+++ b/example/application/simpleapp/webapp/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simpleapp</artifactId>
-        <version>1.15.0-SNAPSHOT</version>
+        <version>1.16.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>simpleapp-webapp</artifactId>