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 2013/02/08 19:29:52 UTC

[25/32] ISIS-323: RO publishing done, but no xactn stuff yet

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/object/DomainObjectResourceTest.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/object/DomainObjectResourceTest.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/object/DomainObjectResourceTest.java
index ae81893..6fcf9f0 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/object/DomainObjectResourceTest.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/object/DomainObjectResourceTest.java
@@ -45,10 +45,12 @@ import org.apache.isis.core.tck.dom.scalars.ApplibValuedEntity;
 import org.apache.isis.core.tck.dom.scalars.ApplibValuedEntityRepository;
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
+import org.apache.isis.viewer.restfulobjects.applib.Rel;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectResource;
@@ -56,8 +58,6 @@ import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ObjectActionRe
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ObjectPropertyRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ScalarValueRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRepresentation.ResultType;
-import org.apache.isis.viewer.restfulobjects.applib.links.LinkRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.links.Rel;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 
 public class DomainObjectResourceTest {
@@ -97,8 +97,8 @@ public class DomainObjectResourceTest {
 
         // then
         final LinkRepresentation self = domainObjectRepr.getSelf();
-        assertThat(self, isLink().rel(Rel.SELF).href(matches(".+objects/OID:32")).httpMethod(RoHttpMethod.GET).type(MediaType.APPLICATION_JSON_TYPE).typeParameter("profile", "urn:org.restfulobjects/domainobject"));
-        assertThat(domainObjectRepr.getLinkWithRel(Rel.DESCRIBEDBY), isLink().href(matches(".+" + BidirWithSetChildEntity.class.getName())).httpMethod(RoHttpMethod.GET).type(MediaType.APPLICATION_JSON_TYPE).typeParameter("profile", "urn:org.restfulobjects/domaintype"));
+        assertThat(self, isLink().rel(Rel.SELF).href(matches(".+objects/OID:32")).httpMethod(RestfulHttpMethod.GET).type(MediaType.APPLICATION_JSON_TYPE).typeParameter("profile", "urn:org.restfulobjects/domainobject"));
+        assertThat(domainObjectRepr.getLinkWithRel(Rel.DESCRIBEDBY), isLink().href(matches(".+" + BidirWithSetChildEntity.class.getName())).httpMethod(RestfulHttpMethod.GET).type(MediaType.APPLICATION_JSON_TYPE).typeParameter("profile", "urn:org.restfulobjects/domaintype"));
 
         assertThat(domainObjectRepr.getTitle(), is("parent 4 - child 2"));
         assertThat(domainObjectRepr.getOid(), is("OID:32"));
@@ -112,7 +112,7 @@ public class DomainObjectResourceTest {
     public void domainObjectRepresentationForTransient_hasNoSelf_andHasNoOid() throws Exception {
 
         // given, when
-        final RestfulRequest request = this.client.createRequest(RoHttpMethod.POST, "services/simples/actions/newTransientEntity/invoke");
+        final RestfulRequest request = this.client.createRequest(RestfulHttpMethod.POST, "services/simples/actions/newTransientEntity/invoke");
         final RestfulResponse<ActionResultRepresentation> response = request.executeT();
         final ActionResultRepresentation actionResultRepr = response.getEntity();
         assertThat(actionResultRepr.getResultType(), is(ResultType.DOMAIN_OBJECT));
@@ -144,7 +144,7 @@ public class DomainObjectResourceTest {
         final DomainObjectRepresentation domainObjectRepr = givenDomainObjectRepresentationFor("OID:32");
 
         // then
-        assertThat(domainObjectRepr.getLinkWithRel(Rel.DESCRIBEDBY), isLink().href(matches(".+" + BidirWithSetChildEntity.class.getName())).httpMethod(RoHttpMethod.GET).type(MediaType.APPLICATION_JSON_TYPE).typeParameter("profile", "urn:org.restfulobjects/domaintype"));
+        assertThat(domainObjectRepr.getLinkWithRel(Rel.DESCRIBEDBY), isLink().href(matches(".+" + BidirWithSetChildEntity.class.getName())).httpMethod(RestfulHttpMethod.GET).type(MediaType.APPLICATION_JSON_TYPE).typeParameter("profile", "urn:org.restfulobjects/domaintype"));
     }
 
     @Test
@@ -167,7 +167,7 @@ public class DomainObjectResourceTest {
 
         // icon
         final LinkRepresentation selfIcon = domainObjectRepr.getLinkWithRel(Rel.ICON);
-        assertThat(selfIcon, isLink().href(matches(".+" + "/images/" + "null\\.png")).httpMethod(RoHttpMethod.GET));
+        assertThat(selfIcon, isLink().href(matches(".+" + "/images/" + "null\\.png")).httpMethod(RestfulHttpMethod.GET));
 
     }
 
@@ -189,7 +189,7 @@ public class DomainObjectResourceTest {
         assertThat(nameProperty.getString("disabledReason"), is(nullValue()));
 
         final LinkRepresentation namePropertyDetails = nameProperty.getLink("links[rel=details]");
-        assertThat(namePropertyDetails, isLink().rel("details").href(self.getHref() + "/properties/name").httpMethod(RoHttpMethod.GET));
+        assertThat(namePropertyDetails, isLink().rel("details").href(self.getHref() + "/properties/name").httpMethod(RestfulHttpMethod.GET));
 
     }
 
@@ -225,12 +225,12 @@ public class DomainObjectResourceTest {
         final LinkRepresentation listActionType = listAction.getLink("type");
         assertThat(listActionType.getRel(), is("type"));
         assertThat(listActionType.getHref(), matches(".+vnd\\.list\\+json"));
-        assertThat(listActionType.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(listActionType.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         final LinkRepresentation listActionDetails = listAction.getLink("details");
         assertThat(listActionDetails.getRel(), is("action"));
         assertThat(listActionDetails.getHref(), is(self.getHref() + "/actions/list"));
-        assertThat(listActionDetails.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(listActionDetails.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         final JsonRepresentation newEntityAction = actions.getRepresentation("newEntity");
         assertThat(newEntityAction.getString("memberType"), is("action"));
@@ -240,12 +240,12 @@ public class DomainObjectResourceTest {
         final LinkRepresentation newEntityActionType = newEntityAction.getLink("type");
         assertThat(newEntityActionType.getRel(), is("type"));
         assertThat(newEntityActionType.getHref(), matches(".+vnd\\." + ApplibValuedEntity.class.getName() + "\\+json"));
-        assertThat(newEntityActionType.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(newEntityActionType.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         final LinkRepresentation newEntityActionDetails = newEntityAction.getLink("details");
         assertThat(newEntityActionDetails.getRel(), is("action"));
         assertThat(newEntityActionDetails.getHref(), is(self.getHref() + "/actions/newEntity"));
-        assertThat(newEntityActionDetails.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(newEntityActionDetails.getHttpMethod(), is(RestfulHttpMethod.GET));
     }
 
     @Ignore("TODO")
@@ -279,19 +279,19 @@ public class DomainObjectResourceTest {
         final LinkRepresentation selfLink = propertyDetailsRepr.getLink("_self.link");
         assertThat(selfLink.getRel(), is("member"));
         assertThat(selfLink.getHref(), matches(".+objects/OID:1/properties/id"));
-        assertThat(selfLink.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(selfLink.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         // _self.object
         final LinkRepresentation selfObject = propertyDetailsRepr.getLink("_self.object");
         assertThat(selfObject.getRel(), is("object"));
         assertThat(selfObject.getHref(), matches(".+objects/OID:1"));
-        assertThat(selfObject.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(selfObject.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         // type
         final LinkRepresentation type = propertyDetailsRepr.getLink("type");
         assertThat(type.getRel(), is("type"));
         assertThat(type.getHref(), matches(".+vnd\\.string\\+json"));
-        assertThat(type.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(type.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         assertThat(propertyDetailsRepr.getString("memberType"), is("property"));
         assertThat(propertyDetailsRepr.getString("value"), is(ApplibValuedEntityRepository.class.getName()));
@@ -316,19 +316,19 @@ public class DomainObjectResourceTest {
         final LinkRepresentation selfLink = actionPromptRepr.getLink("_self.link");
         assertThat(selfLink.getRel(), is("member"));
         assertThat(selfLink.getHref(), matches(".+objects/OID:1/actions/list"));
-        assertThat(selfLink.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(selfLink.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         // _self.object
         final LinkRepresentation selfObject = actionPromptRepr.getLink("_self.object");
         assertThat(selfObject.getRel(), is("object"));
         assertThat(selfObject.getHref(), matches(".+objects/OID:1"));
-        assertThat(selfObject.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(selfObject.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         // type
         final LinkRepresentation type = actionPromptRepr.getLink("type");
         assertThat(type.getRel(), is("type"));
         assertThat(type.getHref(), matches(".+vnd\\.list\\+json"));
-        assertThat(type.getHttpMethod(), is(RoHttpMethod.GET));
+        assertThat(type.getHttpMethod(), is(RestfulHttpMethod.GET));
 
         assertThat(actionPromptRepr.getString("memberType"), is("action"));
         assertThat(actionPromptRepr.getString("actionType"), is("USER"));
@@ -338,7 +338,7 @@ public class DomainObjectResourceTest {
         final LinkRepresentation invokeLink = actionPromptRepr.getLink("invoke");
         assertThat(invokeLink.getRel(), is("invoke"));
         assertThat(invokeLink.getHref(), matches(".+objects/OID:1/actions/list/invoke"));
-        assertThat(invokeLink.getHttpMethod(), is(RoHttpMethod.POST));
+        assertThat(invokeLink.getHttpMethod(), is(RestfulHttpMethod.POST));
         assertThat(invokeLink.getArguments(), is(not(nullValue())));
         assertThat(invokeLink.getArguments().isArray(), is(true));
         assertThat(invokeLink.getArguments().size(), is(0));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/invoke/DomainServiceResourceTest_invokeAction.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/invoke/DomainServiceResourceTest_invokeAction.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/invoke/DomainServiceResourceTest_invokeAction.java
index 7a4d6a1..73b6edf 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/invoke/DomainServiceResourceTest_invokeAction.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/invoke/DomainServiceResourceTest_invokeAction.java
@@ -36,18 +36,18 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest.RequestParameter;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest.RequestParameter;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ListRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ObjectActionRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ScalarValueRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.links.LinkRepresentation;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 
 public class DomainServiceResourceTest_invokeAction {
@@ -229,7 +229,7 @@ public class DomainServiceResourceTest_invokeAction {
     private JsonRepresentation givenAction(final String serviceId, final String actionId) throws JsonParseException, JsonMappingException, IOException {
         final String href = givenHrefToService(serviceId);
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, href).withArg(RequestParameter.FOLLOW_LINKS, "members[id=%s].links[rel=details]", actionId);
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, href).withArg(RequestParameter.FOLLOW_LINKS, "members[id=%s].links[rel=details]", actionId);
         final RestfulResponse<DomainObjectRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_accept.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_accept.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_accept.java
index a33c3c6..730c0c2 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_accept.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_accept.java
@@ -34,11 +34,11 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ListRepresentation;
@@ -62,7 +62,7 @@ public class DomainServiceResourceTest_serviceId_accept {
 
         final String href = givenLinkToService();
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, href).withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, href).withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
         final RestfulResponse<DomainObjectRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -73,7 +73,7 @@ public class DomainServiceResourceTest_serviceId_accept {
 
         final String href = givenLinkToService();
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, href).withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.DOMAIN_OBJECT.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, href).withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.DOMAIN_OBJECT.getMediaType());
         final RestfulResponse<DomainObjectRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -84,7 +84,7 @@ public class DomainServiceResourceTest_serviceId_accept {
 
         final String href = givenLinkToService();
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, href).withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, href).withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
         final RestfulResponse<DomainObjectRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.NOT_ACCEPTABLE));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_notFound.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_notFound.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_notFound.java
index 9256010..13b6aff 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_notFound.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_notFound.java
@@ -29,9 +29,9 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_representationAndHeaders.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_representationAndHeaders.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_representationAndHeaders.java
index 9167317..b2cf19d 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_representationAndHeaders.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_representationAndHeaders.java
@@ -39,10 +39,10 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
@@ -79,7 +79,7 @@ public class DomainServiceResourceTest_serviceId_representationAndHeaders {
 
         assertThat(repr, isMap());
 
-        assertThat(repr.getSelf(), isLink().httpMethod(RoHttpMethod.GET));
+        assertThat(repr.getSelf(), isLink().httpMethod(RestfulHttpMethod.GET));
         assertThat(repr.getOid(), matches("OID[:].+"));
         assertThat(repr.getTitle(), matches("Simples"));
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_xrofollowlinks.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_xrofollowlinks.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_xrofollowlinks.java
index 6b6bdf3..045b8bc 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_xrofollowlinks.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/serviceId/DomainServiceResourceTest_serviceId_xrofollowlinks.java
@@ -36,12 +36,12 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest.RequestParameter;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest.RequestParameter;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ListRepresentation;
@@ -65,7 +65,7 @@ public class DomainServiceResourceTest_serviceId_xrofollowlinks {
 
         final String href = givenHrefToService("simples");
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, href).withArg(RequestParameter.FOLLOW_LINKS, "members[id=%s].links[rel=details]", "list");
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, href).withArg(RequestParameter.FOLLOW_LINKS, "members[id=%s].links[rel=details]", "list");
         final RestfulResponse<DomainObjectRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_accept.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_accept.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_accept.java
index 956dadd..9362707 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_accept.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_accept.java
@@ -25,11 +25,11 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.homepage.HomePageRepresentation;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 import org.junit.Before;
@@ -52,7 +52,7 @@ public class DomainServiceResourceTest_services_accept {
     @Test
     public void applicationJson() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "services").withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "services").withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
         final RestfulResponse<HomePageRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -61,7 +61,7 @@ public class DomainServiceResourceTest_services_accept {
     @Test
     public void applicationJson_profileList() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "services").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.LIST.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "services").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.LIST.getMediaType());
         final RestfulResponse<HomePageRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -70,7 +70,7 @@ public class DomainServiceResourceTest_services_accept {
     @Test
     public void applicationJson_invalid() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "services").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "services").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
         final RestfulResponse<HomePageRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.NOT_ACCEPTABLE));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_representationAndHeaders.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_representationAndHeaders.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_representationAndHeaders.java
index f692faf..1d80286 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_representationAndHeaders.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_representationAndHeaders.java
@@ -33,14 +33,14 @@ import javax.ws.rs.core.Response.Status.Family;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
+import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ListRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.links.LinkRepresentation;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.map.JsonMappingException;
@@ -80,7 +80,7 @@ public class DomainServiceResourceTest_services_representationAndHeaders {
 
         assertThat(repr, isMap());
 
-        assertThat(repr.getSelf(), isLink().httpMethod(RoHttpMethod.GET));
+        assertThat(repr.getSelf(), isLink().httpMethod(RestfulHttpMethod.GET));
 
         assertThat(repr.getValues(), isArray());
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_xrofollowlinks.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_xrofollowlinks.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_xrofollowlinks.java
index fd3ca0b..d52903b 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_xrofollowlinks.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/service/services/DomainServiceResourceTest_services_xrofollowlinks.java
@@ -34,11 +34,11 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest.RequestParameter;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest.RequestParameter;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ListRepresentation;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 
@@ -61,7 +61,7 @@ public class DomainServiceResourceTest_services_xrofollowlinks {
         RestfulResponse<ListRepresentation> restfulResponse;
         ListRepresentation repr;
 
-        request = client.createRequest(RoHttpMethod.GET, "services");
+        request = client.createRequest(RestfulHttpMethod.GET, "services");
         restfulResponse = request.executeT();
         repr = restfulResponse.getEntity();
 
@@ -69,7 +69,7 @@ public class DomainServiceResourceTest_services_xrofollowlinks {
         assertThat(repr.getValues().size(), is(greaterThan(0)));
         assertThat(repr.getValues().arrayGet(0), isLink().novalue());
 
-        request = client.createRequest(RoHttpMethod.GET, "services").withArg(RequestParameter.FOLLOW_LINKS, "values");
+        request = client.createRequest(RestfulHttpMethod.GET, "services").withArg(RequestParameter.FOLLOW_LINKS, "values");
         restfulResponse = request.executeT();
         repr = restfulResponse.getEntity();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_accept.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_accept.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_accept.java
index bfae5be..a083598 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_accept.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_accept.java
@@ -25,11 +25,11 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.homepage.HomePageRepresentation;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 import org.junit.Before;
@@ -52,7 +52,7 @@ public class UserResourceTest_accept {
     @Test
     public void applicationJson() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "user").withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "user").withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
         final RestfulResponse<HomePageRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -61,7 +61,7 @@ public class UserResourceTest_accept {
     @Test
     public void applicationJson_profileUser() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "user").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "user").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
         final RestfulResponse<HomePageRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -70,7 +70,7 @@ public class UserResourceTest_accept {
     @Test
     public void applicationJson_invalid() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "user").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.HOME_PAGE.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "user").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.HOME_PAGE.getMediaType());
         final RestfulResponse<HomePageRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.NOT_ACCEPTABLE));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_representationAndHeaders.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_representationAndHeaders.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_representationAndHeaders.java
index a11b892..d65d421 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_representationAndHeaders.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/user/UserResourceTest_representationAndHeaders.java
@@ -41,11 +41,11 @@ import javax.ws.rs.core.Response.Status.Family;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.Header;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.Header;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
 import org.apache.isis.viewer.restfulobjects.applib.user.UserRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.user.UserResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
@@ -88,7 +88,7 @@ public class UserResourceTest_representationAndHeaders {
         assertThat(repr, is(not(nullValue())));
         assertThat(repr.isMap(), is(true));
 
-        assertThat(repr.getSelf(), isLink(client).httpMethod(RoHttpMethod.GET));
+        assertThat(repr.getSelf(), isLink(client).httpMethod(RestfulHttpMethod.GET));
         assertThat(repr.getUserName(), is(not(nullValue())));
         assertThat(repr.getFriendlyName(), is(nullValue())); // TODO: change
                                                              // fixture so

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_accept.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_accept.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_accept.java
index 0f041b0..10d5b4c 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_accept.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_accept.java
@@ -29,11 +29,11 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulRequest;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.restfulobjects.applib.version.VersionRepresentation;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 
@@ -53,7 +53,7 @@ public class VersionResourceTest_accept {
     @Test
     public void applicationJson() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "version").withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "version").withHeader(RestfulRequest.Header.ACCEPT, MediaType.APPLICATION_JSON_TYPE);
         final RestfulResponse<VersionRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -62,7 +62,7 @@ public class VersionResourceTest_accept {
     @Test
     public void applicationJson_profileVersion() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "version").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.VERSION.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "version").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.VERSION.getMediaType());
         final RestfulResponse<VersionRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.OK));
@@ -71,7 +71,7 @@ public class VersionResourceTest_accept {
     @Test
     public void applicationJson_invalid() throws Exception {
 
-        final RestfulRequest request = client.createRequest(RoHttpMethod.GET, "/").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
+        final RestfulRequest request = client.createRequest(RestfulHttpMethod.GET, "/").withHeader(RestfulRequest.Header.ACCEPT, RepresentationType.USER.getMediaType());
         final RestfulResponse<VersionRepresentation> restfulResponse = request.executeT();
 
         assertThat(restfulResponse.getStatus(), is(HttpStatusCode.NOT_ACCEPTABLE));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_representationAndHeaders.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_representationAndHeaders.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_representationAndHeaders.java
index 93361da..fe6ce0b 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_representationAndHeaders.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/resources/version/VersionResourceTest_representationAndHeaders.java
@@ -42,11 +42,11 @@ import javax.ws.rs.core.Response.Status.Family;
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.Header;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse.HttpStatusCode;
-import org.apache.isis.viewer.restfulobjects.applib.RoHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.Header;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
 import org.apache.isis.viewer.restfulobjects.applib.version.VersionRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.version.VersionResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
@@ -89,7 +89,7 @@ public class VersionResourceTest_representationAndHeaders {
         assertThat(repr, is(not(nullValue())));
         assertThat(repr, isMap());
 
-        assertThat(repr.getSelf(), isLink().httpMethod(RoHttpMethod.GET));
+        assertThat(repr.getSelf(), isLink().httpMethod(RestfulHttpMethod.GET));
 
         assertThat(repr.getString("specVersion"), is("0.52"));
         assertThat(repr.getString("implVersion"), is(not(nullValue())));

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/stories/UserStoryTest.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/stories/UserStoryTest.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/stories/UserStoryTest.java
index 87064a6..32db4bb 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/stories/UserStoryTest.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/stories/UserStoryTest.java
@@ -30,8 +30,8 @@ import org.junit.Test;
 
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.applib.RepresentationWalker;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RepresentationWalker;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
 import org.apache.isis.viewer.restfulobjects.applib.homepage.HomePageResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedAction.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedAction.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedAction.java
index 85bb39d..d51c48c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedAction.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedAction.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
 import java.util.List;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.services.publish.CanonicalEvent;
+import org.apache.isis.applib.services.publish.EventPayload;
 import org.apache.isis.applib.services.publish.PublishingService;
 
 /**
@@ -41,8 +41,10 @@ import org.apache.isis.applib.services.publish.PublishingService;
 @Retention(RetentionPolicy.RUNTIME)
 public @interface PublishedAction {
     
-    public interface EventCanonicalizer {
-        public CanonicalEvent canonicalizeAction(Object invoked, Identifier actionIdentifier, List<Object> args, Object actionResult);
+    public interface PayloadFactory {
+
+        @Programmatic
+        public EventPayload payloadFor(Identifier actionIdentifier, Object target, List<Object> arguments, Object result);
     }
-    Class<? extends EventCanonicalizer> canonicalizeWith()  default EventCanonicalizer.class;
+    Class<? extends PayloadFactory> value()  default PayloadFactory.class;
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedObject.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedObject.java
index ab5c714..f67c9bb 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedObject.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PublishedObject.java
@@ -25,7 +25,7 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import org.apache.isis.applib.services.publish.CanonicalEvent;
+import org.apache.isis.applib.services.publish.EventPayload;
 import org.apache.isis.applib.services.publish.PublishingService;
 
 /**
@@ -39,12 +39,10 @@ import org.apache.isis.applib.services.publish.PublishingService;
 @Retention(RetentionPolicy.RUNTIME)
 public @interface PublishedObject {
     
-    /**
-     * @see http://en.wikipedia.org/wiki/Canonicalization
-     */
-    public interface EventCanonicalizer {
-        public CanonicalEvent canonicalizeObject(Object changedObject);
+    public interface PayloadFactory {
+        @Programmatic
+        public EventPayload payloadFor(Object changedObject);
     }
     
-    Class<? extends EventCanonicalizer> canonicalizeWith() default EventCanonicalizer.class;
+    Class<? extends PayloadFactory> value() default PayloadFactory.class;
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/CanonicalEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/CanonicalEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/CanonicalEvent.java
deleted file mode 100644
index 4c742db..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/CanonicalEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.isis.applib.services.publish;
-
-/**
- * An event in canonical form to be published
- * 
- */
-public interface CanonicalEvent {
-
-    public final static class Default implements CanonicalEvent {
-
-        private final String str;
-        
-        public Default(String str) {
-            this.str = str;
-        }
-
-        @Override
-        public String asString() {
-            return str;
-        }
-
-        @Override
-        public String toString() {
-            return asString();
-        }
-    }
-
-    public String asString();
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
new file mode 100644
index 0000000..42983e6
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventMetadata.java
@@ -0,0 +1,44 @@
+package org.apache.isis.applib.services.publish;
+
+import java.util.UUID;
+
+/**
+ * Standard metadata about an event to be published.
+ * 
+ * <p>
+ * This is a class rather than an interface so that it may be easily extended in the future.
+
+ * @see EventPayload
+ */
+public class EventMetadata {
+    
+    private final UUID guid;
+    private final String user;
+    private final long timestamp;
+    
+    public EventMetadata(UUID guid, String user, long timestamp) {
+        this.guid = guid;
+        this.user = user;
+        this.timestamp = timestamp;
+    }
+    
+    /**
+     * Unique identifier of this event.
+     */
+    public UUID getGuid() {
+        return guid;
+    }
+    /**
+     * Represents the user that was responsible for generating the event.  
+     */
+    public String getUser() {
+        return user;
+    }
+    /**
+     * The timestamp, in milliseconds, since an epoch time.
+     * @return
+     */
+    public long getTimestamp() {
+        return timestamp;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
new file mode 100644
index 0000000..aadd334
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayload.java
@@ -0,0 +1,28 @@
+package org.apache.isis.applib.services.publish;
+
+
+
+
+/**
+ * The payload of an event, representing the information to be published 
+ * in some canonicalized form.
+ * 
+ * <p>
+ * This should be prepared in a way that can be processed by the {@link EventSerializer}.  For example:
+ * <ul>
+ * <li>The {@link EventSerializer.Simple simple event serializer} simply invokes
+ * {@link Object#toString() toString()} on the payload.  Use the {@link Simple simple} implementation
+ * which simply wraps a string.
+ * </li>
+ * <li>The <tt>RestfulObjectsSpecEventSerializer</tt> event serializer expects a pojo domain object
+ * and serializes it out according to the <a href="http://restfulobject.org">Restful Objects spec</a>.
+ * Use the {@link EventPayloadForActionInvocation object payload} implementation if you simply wish to reference some
+ * persistent domain object.
+ * </li>
+ * </ul>
+ * 
+ * @see EventMetadata
+ */
+public interface EventPayload {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
new file mode 100644
index 0000000..d53649a
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForActionInvocation.java
@@ -0,0 +1,143 @@
+package org.apache.isis.applib.services.publish;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.annotation.NotPersistable;
+import org.apache.isis.applib.annotation.Programmatic;
+
+/**
+ * An immutable pojo that captures the information representing an
+ * action invocation.
+ * 
+ * <p>
+ * This class is annotated as a domain object for the benefit of the
+ * <tt>RestfulObjectsSpecEventSerializer</tt>.
+ */
+@NotPersistable
+public class EventPayloadForActionInvocation<T> implements EventPayload {
+    
+    private final Identifier actionIdentifier;
+    private final T target;
+    private final List<? extends Object> arguments;
+    private final Object result;
+    private ObjectStringifier stringifier = new ObjectStringifier.Simple();
+
+    public EventPayloadForActionInvocation(final Identifier actionIdentifier, final T target, final List<? extends Object> arguments, final Object result) {
+        this.target = target;
+        this.actionIdentifier = actionIdentifier;
+        this.arguments = arguments != null? arguments: Collections.emptyList();
+        this.result = result;
+    }
+    
+    @Programmatic
+    public EventPayloadForActionInvocation<T> with(ObjectStringifier stringifier) {
+        this.stringifier = stringifier;
+        return this;
+    }
+
+
+    public T getTarget() {
+        return target;
+    }
+    
+    public String getActionName() {
+        return actionIdentifier.toFullIdentityString();
+    }
+    
+    public Object getArg0() {
+        return getArg(0);
+    }
+    public boolean hideArg0() {
+        return hideArg(0);
+    }
+    
+    public Object getArg1() {
+        return getArg(1);
+    }
+    public boolean hideArg1() {
+        return hideArg(1);
+    }
+    
+    public Object getArg2() {
+        return getArg(2);
+    }
+    public boolean hideArg2() {
+        return hideArg(2);
+    }
+    
+    public Object getArg3() {
+        return getArg(3);
+    }
+    public boolean hideArg3() {
+        return hideArg(3);
+    }
+    
+    public Object getArg4() {
+        return getArg(4);
+    }
+    public boolean hideArg4() {
+        return hideArg(4);
+    }
+    
+    public Object getArg5() {
+        return getArg(5);
+    }
+    public boolean hideArg5() {
+        return hideArg(5);
+    }
+    
+    public Object getArg6() {
+        return getArg(6);
+    }
+    public boolean hideArg6() {
+        return hideArg(6);
+    }
+    
+    public Object getArg7() {
+        return getArg(7);
+    }
+    public boolean hideArg7() {
+        return hideArg(7);
+    }
+    
+    public Object getArg8() {
+        return getArg(8);
+    }
+    public boolean hideArg8() {
+        return hideArg(8);
+    }
+    
+    public Object getArg9() {
+        return getArg(9);
+    }
+    public boolean hideArg9() {
+        return hideArg(9);
+    }
+
+    public Object getResult() {
+        return result;
+    }
+    private Object getArg(int paramNum) {
+        return arguments.size()>paramNum?arguments.get(paramNum):null;
+    }
+    private boolean hideArg(int paramNum) {
+        return arguments.size()<=paramNum;
+    }
+    
+    @Override
+    public String toString() {
+        final StringBuilder buf = new StringBuilder();
+        buf.append("ACTION:").append(getActionName());
+        buf.append("\n    target=").append(stringifier.toString(target));
+        buf.append("\n      args=[");
+        for (Object arg : arguments) {
+            buf.append("\n           ").append(stringifier.toString(arg));
+        }
+        buf.append("\n      ]");
+        final String stringifiedResult = stringifier.toString(result);
+        buf.append("\n    result=").append(stringifiedResult != null ? stringifiedResult : "void");
+        return buf.toString();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java
new file mode 100644
index 0000000..51b2209
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventPayloadForChangedObject.java
@@ -0,0 +1,37 @@
+package org.apache.isis.applib.services.publish;
+
+import org.apache.isis.applib.annotation.NotPersistable;
+import org.apache.isis.applib.annotation.Programmatic;
+
+/**
+ * An immutable pojo that simply references some other (persistent) object.
+ * 
+ * <p>
+ * This class is annotated as a domain object for the benefit of the
+ * <tt>RestfulObjectsSpecEventSerializer</tt>.
+ */
+@NotPersistable
+public class EventPayloadForChangedObject<T> implements EventPayload {
+    
+    private final T changed;
+    private ObjectStringifier stringifier = new ObjectStringifier.Simple();
+
+    public EventPayloadForChangedObject(T changed) {
+        this.changed = changed;
+    }
+
+    @Programmatic
+    public EventPayloadForChangedObject<T> with(ObjectStringifier stringifier) {
+        this.stringifier = stringifier;
+        return this;
+    }
+
+    public T getChanged() {
+        return changed;
+    }
+    
+    @Override
+    public String toString() {
+        return "CHANGED_OBJECT:"+ stringifier.toString(changed);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
new file mode 100644
index 0000000..312ca50
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/EventSerializer.java
@@ -0,0 +1,32 @@
+package org.apache.isis.applib.services.publish;
+
+import org.apache.isis.applib.annotation.Programmatic;
+import org.w3c.dom.Document;
+
+public interface EventSerializer {
+
+    /**
+     * Combine the {@link EventMetadata metadata} and the {@link EventPayload payload}
+     * into some serialized form (such as JSON, XML or a string) that can then be published.
+     * 
+     * <p>
+     * This method returns an object for maximum flexibility, which is then
+     * handed off to the {@link PublishingService}.  It's important to make sure that the
+     * publishing service is able to handle the serialized form.  Strings are a good
+     * lowest common denominator, but in some cases are type-safe equivalent, such as a
+     * {@link Document w3c DOM Document} or a JSON node might be passed instead.
+     *  
+     * @return a string, some JSON, some XML or some other standard serialized form. 
+     */
+    public Object serialize(EventMetadata metadata, EventPayload payload);
+    
+    public static class Simple implements EventSerializer {
+
+        @Programmatic
+        @Override
+        public Object serialize(EventMetadata metadata, EventPayload payload) {
+            return "PUBLISHED: \n    metadata: " + metadata.getGuid() + ":" + metadata.getUser() + ":" + metadata.getTimestamp() + ":    payload:s\n"+ payload.toString();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
new file mode 100644
index 0000000..b329756
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/ObjectStringifier.java
@@ -0,0 +1,16 @@
+package org.apache.isis.applib.services.publish;
+
+
+/**
+ * To optionally configure the way that {@link EventPayloadForChangedObject} and {@link EventPayloadForActionInvocation}
+ * create the <tt>toString()</tt> form of their contents.
+ */
+public interface ObjectStringifier {
+    public String toString(Object object);
+    static class Simple implements ObjectStringifier {
+        @Override
+        public String toString(Object object) {
+            return object != null? object.toString(): null;
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
index 28f3499..d91c6cc 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublishingService.java
@@ -18,23 +18,32 @@
  */
 package org.apache.isis.applib.services.publish;
 
-import java.util.UUID;
 
 import org.apache.isis.applib.annotation.Hidden;
 
 public interface PublishingService {
     
     @Hidden
-    public void publish(UUID guid, String currentUser, long currentTimestampEpoch, CanonicalEvent canonicalEvent);
+    public void publish(EventMetadata metadata, EventPayload payload);
     
     public static class Stderr implements PublishingService {
 
+        private EventSerializer eventSerializer = new EventSerializer.Simple();
+
         @Hidden
         @Override
-        public void publish(UUID guid, String currentUser, long currentTimestampEpoch, CanonicalEvent canonicalEvent) {
-            System.err.println("PUBLISHED: " + guid + ":" + currentUser + ":" + currentTimestampEpoch + ":" + canonicalEvent.asString());
+        public void publish(EventMetadata metadata, EventPayload payload) {
+            Object serializedEvent = eventSerializer.serialize(metadata, payload);
+            System.err.println(serializedEvent);
+        }
+
+        @Override
+        public void setEventSerializer(EventSerializer eventSerializer) {
+            this.eventSerializer = eventSerializer;
         }
     }
+    
+    void setEventSerializer(EventSerializer eventSerializer);
 }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacet.java
index 07e1a61..b172789 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacet.java
@@ -26,6 +26,6 @@ import org.apache.isis.core.metamodel.facets.SingleValueFacet;
  * Indicates that the invocation of action should be published, specifying the means by which a
  * canonical event representing this invocation should be created.
  */
-public interface PublishedActionFacet extends SingleValueFacet<PublishedAction.EventCanonicalizer> {
+public interface PublishedActionFacet extends SingleValueFacet<PublishedAction.PayloadFactory> {
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacetAbstract.java
index a82dafa..3923bcf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/publish/PublishedActionFacetAbstract.java
@@ -24,13 +24,13 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
 
-public abstract class PublishedActionFacetAbstract extends SingleValueFacetAbstract<PublishedAction.EventCanonicalizer> implements PublishedActionFacet {
+public abstract class PublishedActionFacetAbstract extends SingleValueFacetAbstract<PublishedAction.PayloadFactory> implements PublishedActionFacet {
 
     public static Class<? extends Facet> type() {
         return PublishedActionFacet.class;
     }
 
-    public PublishedActionFacetAbstract(final PublishedAction.EventCanonicalizer eventCanonicalizer, final FacetHolder holder) {
+    public PublishedActionFacetAbstract(final PublishedAction.PayloadFactory eventCanonicalizer, final FacetHolder holder) {
         super(type(), eventCanonicalizer, holder);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacet.java
index f64a668..669a763 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacet.java
@@ -29,6 +29,6 @@ import org.apache.isis.core.metamodel.facets.SingleValueFacet;
  * Indicates that changes to an object's properties are to be published has, specifying the means by which 
  * a canonical event representing these changes should be created.
  */
-public interface PublishedObjectFacet extends SingleValueFacet<PublishedObject.EventCanonicalizer> {
+public interface PublishedObjectFacet extends SingleValueFacet<PublishedObject.PayloadFactory> {
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacetAbstract.java
index 1fa0cbc..e5ef7d6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/PublishedObjectFacetAbstract.java
@@ -24,13 +24,13 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
 
-public abstract class PublishedObjectFacetAbstract extends SingleValueFacetAbstract<PublishedObject.EventCanonicalizer> implements PublishedObjectFacet {
+public abstract class PublishedObjectFacetAbstract extends SingleValueFacetAbstract<PublishedObject.PayloadFactory> implements PublishedObjectFacet {
 
     public static Class<? extends Facet> type() {
         return PublishedObjectFacet.class;
     }
 
-    public PublishedObjectFacetAbstract(final PublishedObject.EventCanonicalizer eventCanonicalizer, final FacetHolder holder) {
+    public PublishedObjectFacetAbstract(final PublishedObject.PayloadFactory eventCanonicalizer, final FacetHolder holder) {
         super(type(), eventCanonicalizer, holder);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionAnnotationFacetFactory.java
index 7e94563..6809912 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionAnnotationFacetFactory.java
@@ -40,15 +40,15 @@ public class PublishedActionAnnotationFacetFactory extends FacetFactoryAbstract
     }
 
     private PublishedActionFacet create(final PublishedAction annotation, final FacetHolder holder) {
-        return annotation == null ? null : new PublishedActionFacetAnnotation(newEventCanonicalizer(annotation.canonicalizeWith()), holder);
+        return annotation == null ? null : new PublishedActionFacetAnnotation(newPayloadFactory(annotation.value()), holder);
     }
 
-    private static PublishedAction.EventCanonicalizer newEventCanonicalizer(final Class<? extends PublishedAction.EventCanonicalizer> value) {
+    private static PublishedAction.PayloadFactory newPayloadFactory(final Class<? extends PublishedAction.PayloadFactory> value) {
         if(value == null) {
             return null;
         }
         try {
-            return (PublishedAction.EventCanonicalizer) value.newInstance();
+            return (PublishedAction.PayloadFactory) value.newInstance();
         } catch (final InstantiationException e) {
             return null;
         } catch (final IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionFacetAnnotation.java
index c6ce0aa..07a6e0d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/publish/PublishedActionFacetAnnotation.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFace
 
 public class PublishedActionFacetAnnotation extends PublishedActionFacetAbstract {
 
-    public PublishedActionFacetAnnotation(PublishedAction.EventCanonicalizer eventCanonicalizer, final FacetHolder holder) {
+    public PublishedActionFacetAnnotation(PublishedAction.PayloadFactory eventCanonicalizer, final FacetHolder holder) {
         super(eventCanonicalizer, holder);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectAnnotationFacetFactory.java
index e02d21c..c591d63 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectAnnotationFacetFactory.java
@@ -41,15 +41,15 @@ public class PublishedObjectAnnotationFacetFactory extends FacetFactoryAbstract
     }
 
     private PublishedObjectFacet create(final PublishedObject annotation, final FacetHolder holder) {
-        return annotation == null ? null : new PublishedObjectFacetAnnotation(newEventCanonicalizer(annotation.canonicalizeWith()), holder);
+        return annotation == null ? null : new PublishedObjectFacetAnnotation(newPayloadFactory(annotation.value()), holder);
     }
 
-    private static PublishedObject.EventCanonicalizer newEventCanonicalizer(final Class<? extends PublishedObject.EventCanonicalizer> value) {
+    private static PublishedObject.PayloadFactory newPayloadFactory(final Class<? extends PublishedObject.PayloadFactory> value) {
         if(value == null) {
             return null;
         }
         try {
-            return (PublishedObject.EventCanonicalizer) value.newInstance();
+            return (PublishedObject.PayloadFactory) value.newInstance();
         } catch (final InstantiationException e) {
             return null;
         } catch (final IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectFacetAnnotation.java
index a939471..c544787 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/object/publish/PublishedObjectFacetAnnotation.java
@@ -28,7 +28,7 @@ import org.apache.isis.core.metamodel.facets.object.publish.PublishedObjectFacet
 
 public class PublishedObjectFacetAnnotation extends PublishedObjectFacetAbstract {
 
-    public PublishedObjectFacetAnnotation(PublishedObject.EventCanonicalizer eventCanonicalizer, final FacetHolder holder) {
+    public PublishedObjectFacetAnnotation(PublishedObject.PayloadFactory eventCanonicalizer, final FacetHolder holder) {
         super(eventCanonicalizer, holder);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstallerAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstallerAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstallerAbstract.java
index d8fc208..8e02138 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstallerAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstallerAbstract.java
@@ -31,9 +31,9 @@ import java.util.Properties;
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.PublishedAction;
 import org.apache.isis.applib.annotation.PublishedObject;
-import org.apache.isis.applib.annotation.PublishedObject.EventCanonicalizer;
+import org.apache.isis.applib.annotation.PublishedObject.PayloadFactory;
 import org.apache.isis.applib.services.audit.AuditingService;
-import org.apache.isis.applib.services.publish.CanonicalEvent;
+import org.apache.isis.applib.services.publish.EventPayload;
 import org.apache.isis.applib.services.publish.PublishingService;
 import org.apache.isis.core.commons.config.InstallerAbstract;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -61,7 +61,7 @@ import org.apache.isis.core.runtime.persistence.objectstore.IsisObjectStoreLogge
 import org.apache.isis.core.runtime.persistence.objectstore.ObjectStoreSpi;
 import org.apache.isis.core.runtime.persistence.objectstore.algorithm.PersistAlgorithm;
 import org.apache.isis.core.runtime.persistence.objectstore.algorithm.PersistAlgorithmDefault;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithCanonicalizers;
+import org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithDefaultPayloadFactories;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.TransactionalResource;
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.context.IsisContext;

http://git-wip-us.apache.org/repos/asf/isis/blob/7b745ecd/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithCanonicalizers.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithCanonicalizers.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithCanonicalizers.java
deleted file mode 100644
index a32c760..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithCanonicalizers.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.isis.core.runtime.persistence.objectstore.transaction;
-
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.isis.applib.annotation.PublishedAction;
-import org.apache.isis.applib.annotation.PublishedObject;
-import org.apache.isis.applib.annotation.PublishedObject.EventCanonicalizer;
-import org.apache.isis.applib.services.publish.CanonicalEvent;
-import org.apache.isis.applib.services.publish.PublishingService;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.metamodel.facets.actions.invoke.ActionInvocationFacet.CurrentInvocation;
-import org.apache.isis.core.metamodel.spec.ObjectAdapterUtils;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-
-/**
- * Wrapper around {@link PublishingService} that also includes the
- * {@link PublishedObject.EventCanonicalizer event} {@link PublishedAction.EventCanonicalizer canonicalizers}. 
- */
-public class PublishingServiceWithCanonicalizers {
-
-    private final PublishingService publishingService;
-    private final PublishedObject.EventCanonicalizer defaultObjectEventCanonicalizer;
-    private final PublishedAction.EventCanonicalizer defaultActionEventCanonicalizer;
-    
-    public PublishingServiceWithCanonicalizers(PublishingService publishingService, EventCanonicalizer defaultObjectEventCanonicalizer, PublishedAction.EventCanonicalizer defaultActionEventCanonicalizer) {
-        this.publishingService = publishingService;
-        this.defaultObjectEventCanonicalizer = defaultObjectEventCanonicalizer;
-        this.defaultActionEventCanonicalizer = defaultActionEventCanonicalizer;
-    }
-
-    public void publishObject(PublishedObject.EventCanonicalizer eventCanonicalizer, UUID guid, String currentUser, long currentTimestampEpoch, ObjectAdapter changedAdapter) {
-        final PublishedObject.EventCanonicalizer eventCanonicalizerToUse = eventCanonicalizer != null? eventCanonicalizer: defaultObjectEventCanonicalizer;
-        final CanonicalEvent canonicalizedEvent = eventCanonicalizerToUse.canonicalizeObject(ObjectAdapterUtils.unwrapObject(changedAdapter));
-        
-        publishingService.publish(guid, currentUser, currentTimestampEpoch, canonicalizedEvent);
-    }
-
-    public void publishAction(PublishedAction.EventCanonicalizer value, UUID guid, String currentUser, long currentTimestampEpoch, CurrentInvocation currentInvocation) {
-        publishAction(value, guid, currentUser, currentTimestampEpoch, currentInvocation.getTarget(), currentInvocation.getAction(), currentInvocation.getParameters(), currentInvocation.getResult());
-    }
-
-    private void publishAction(PublishedAction.EventCanonicalizer eventCanonicalizer, UUID guid, String currentUser, long currentTimestampEpoch, ObjectAdapter targetAdapter, IdentifiedHolder action, List<ObjectAdapter> parameterAdapters, ObjectAdapter resultAdapter) {
-        final PublishedAction.EventCanonicalizer eventCanonicalizerToUse = eventCanonicalizer != null? eventCanonicalizer: defaultActionEventCanonicalizer;
-        final CanonicalEvent canonicalizedEvent = eventCanonicalizerToUse.canonicalizeAction(
-                ObjectAdapterUtils.unwrapObject(targetAdapter), 
-                action.getIdentifier(), 
-                ObjectAdapterUtils.unwrapObjects(parameterAdapters), 
-                ObjectAdapterUtils.unwrapObject(resultAdapter));
-        
-        publishingService.publish(guid, currentUser, currentTimestampEpoch, canonicalizedEvent);
-    }
-
-    
-}