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 2011/09/27 18:41:20 UTC
svn commit: r1176463 - in /incubator/isis/trunk/framework:
tck/tck-dom/src/main/java/org/apache/isis/tck/dom/
viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/
viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/ap...
Author: danhaywood
Date: Tue Sep 27 16:41:19 2011
New Revision: 1176463
URL: http://svn.apache.org/viewvc?rev=1176463&view=rev
Log:
ISIS-109: messing around with media types
Added:
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulMediaType.java
Modified:
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RepresentationType.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulResponse.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/capabilities/CapabilitiesResource.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectResource.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domaintypes/DomainTypeResource.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/homepage/HomePageResource.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/user/UserResource.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/test/java/org/apache/isis/viewer/json/applib/RepresentationTypeTest.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/AnyResourceTest_exceptionHandling.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/HomePageResourceTest.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/UserResourceTest.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/ResourceContext.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/ResourceAbstract.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/capabilities/CapabilitiesResourceServerside.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionSemantics.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectResourceServerside.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceAbstract.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainServiceResourceServerside.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionRepBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/home/HomePageResourceServerside.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/user/UserResourceServerside.java
Modified: incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java (original)
+++ incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java Tue Sep 27 16:41:19 2011
@@ -22,6 +22,7 @@ package org.apache.isis.tck.dom;
import java.util.List;
import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
public abstract class AbstractEntityRepository<T> extends AbstractFactoryAndRepository {
@@ -32,7 +33,7 @@ public abstract class AbstractEntityRepo
this.cls = cls;
}
-
+ @QueryOnly
public List<T> list() {
return allInstances(cls);
}
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RepresentationType.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RepresentationType.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RepresentationType.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RepresentationType.java Tue Sep 27 16:41:19 2011
@@ -1,33 +1,43 @@
package org.apache.isis.viewer.json.applib;
+import javax.ws.rs.core.MediaType;
+
import org.apache.isis.viewer.json.applib.util.Enums;
public enum RepresentationType {
- HOME_PAGE,
- USER,
- CAPABILITIES,
- LIST,
- SCALAR_VALUE,
- DOMAIN_OBJECT,
- OBJECT_PROPERTY,
- OBJECT_COLLECTION,
- OBJECT_ACTION,
- DOMAIN_TYPE,
- DOMAIN_TYPE_PROPERTY,
- DOMAIN_TYPE_COLLECTION,
- DOMAIN_TYPE_ACTION,
- DOMAIN_TYPE_ACTION_PARAMETER,
- ERROR;
+ HOME_PAGE(RestfulMediaType.APPLICATION_JSON_HOME_PAGE),
+ USER(RestfulMediaType.APPLICATION_JSON_USER),
+ CAPABILITIES(RestfulMediaType.APPLICATION_JSON_CAPABILITIES),
+ LIST(RestfulMediaType.APPLICATION_JSON_LIST),
+ SCALAR_VALUE(RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE),
+ DOMAIN_OBJECT(RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT),
+ OBJECT_PROPERTY(RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY),
+ OBJECT_COLLECTION(RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION),
+ OBJECT_ACTION(RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION),
+ DOMAIN_TYPES(RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPES),
+ DOMAIN_TYPE(RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPE),
+ TYPE_PROPERTY(RestfulMediaType.APPLICATION_JSON_TYPE_PROPERTY),
+ TYPE_COLLECTION(RestfulMediaType.APPLICATION_JSON_TYPE_COLLECTION),
+ TYPE_ACTION(RestfulMediaType.APPLICATION_JSON_TYPE_ACTION),
+ TYPE_ACTION_PARAMETER(RestfulMediaType.APPLICATION_JSON_TYPE_ACTION_PARAMETER),
+ ERROR(RestfulMediaType.APPLICATION_JSON_ERROR);
private String name;
- private RepresentationType() {
+ private MediaType mediaType;
+ private RepresentationType(String mediaTypeStr) {
this.name = Enums.enumToCamelCase(this);
+ this.mediaType = MediaType.valueOf(mediaTypeStr);
}
+
public String getName() {
return name;
}
+ public final MediaType getMediaType() {
+ return mediaType;
+ }
+
public static RepresentationType lookup(String value) {
for(RepresentationType representationType: values()) {
if (representationType.getName().equals(value)) {
Added: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulMediaType.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulMediaType.java?rev=1176463&view=auto
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulMediaType.java (added)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulMediaType.java Tue Sep 27 16:41:19 2011
@@ -0,0 +1,34 @@
+package org.apache.isis.viewer.json.applib;
+
+import javax.ws.rs.core.MediaType;
+
+/**
+ * Values per the profile parameter
+ *
+ * @see http://buzzword.org.uk/2009/draft-inkster-profile-parameter-00.html
+ */
+public final class RestfulMediaType {
+
+
+ private RestfulMediaType(){}
+
+ private static final String BASE = MediaType.APPLICATION_JSON + ";profile=http://restfulobjects.org/profiles/";
+
+ public final static String APPLICATION_JSON_HOME_PAGE = BASE + "homepage";
+ public final static String APPLICATION_JSON_USER = BASE + "user";
+ public final static String APPLICATION_JSON_CAPABILITIES = BASE + "capabilities";
+ public final static String APPLICATION_JSON_LIST = BASE + "list";
+ public final static String APPLICATION_JSON_SCALAR_VALUE = BASE + "scalarvalue";
+ public final static String APPLICATION_JSON_DOMAIN_OBJECT = BASE + "domainobject";
+ public final static String APPLICATION_JSON_OBJECT_PROPERTY = BASE + "objectproperty";
+ public final static String APPLICATION_JSON_OBJECT_COLLECTION = BASE + "objectcollection";
+ public final static String APPLICATION_JSON_OBJECT_ACTION = BASE + "objectaction";
+ public final static String APPLICATION_JSON_DOMAIN_TYPES = BASE + "domaintypes";
+ public final static String APPLICATION_JSON_DOMAIN_TYPE = BASE + "domaintype";
+ public final static String APPLICATION_JSON_TYPE_PROPERTY = BASE + "typeproperty";
+ public final static String APPLICATION_JSON_TYPE_COLLECTION = BASE + "typecollection";
+ public final static String APPLICATION_JSON_TYPE_ACTION = BASE + "typeaction";
+ public final static String APPLICATION_JSON_TYPE_ACTION_PARAMETER = BASE + "typeactionparameter";
+ public final static String APPLICATION_JSON_ERROR = BASE + "error";
+
+}
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulResponse.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulResponse.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulResponse.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/RestfulResponse.java Tue Sep 27 16:41:19 2011
@@ -223,7 +223,6 @@ public class RestfulResponse<T> {
public final static Header<Date> LAST_MODIFIED = new Header<Date>("Last-Modified", Parser.forDates());
public final static Header<CacheControl> CACHE_CONTROL = new Header<CacheControl>("Cache-Control", Parser.forCacheControl());
public final static Header<MediaType> CONTENT_TYPE = new Header<MediaType>("Content-Type", Parser.forMediaType());
- public final static Header<RepresentationType> X_REPRESENTATION_TYPE = new Header<RepresentationType>("X-Representation-Type", Parser.forRepresentationType());
private final String name;
private final Parser<X> parser;
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/capabilities/CapabilitiesResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/capabilities/CapabilitiesResource.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/capabilities/CapabilitiesResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/capabilities/CapabilitiesResource.java Tue Sep 27 16:41:19 2011
@@ -24,13 +24,14 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/capabilities")
public interface CapabilitiesResource {
@GET
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_CAPABILITIES })
@ClientResponseType(entityType=String.class)
public Response capabilities();
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectResource.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectResource.java Tue Sep 27 16:41:19 2011
@@ -32,6 +32,7 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/objects")
@@ -43,14 +44,14 @@ public interface DomainObjectResource {
@GET
@Path("/{oid}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response object(@PathParam("oid") final String oidStr);
@PUT
@Path("/{oid}")
- @Consumes({ MediaType.APPLICATION_JSON })
- @Produces({ MediaType.APPLICATION_JSON })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON })
+ @Produces({ RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response object(
@PathParam("oid") final String oidStr,
@@ -63,7 +64,7 @@ public interface DomainObjectResource {
@GET
@Path("/{oid}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response propertyDetails(
@PathParam("oid") final String oidStr,
@@ -71,8 +72,8 @@ public interface DomainObjectResource {
@PUT
@Path("/{oid}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response modifyProperty(
@PathParam("oid") final String oidStr,
@@ -81,7 +82,7 @@ public interface DomainObjectResource {
@DELETE
@Path("/{oid}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response clearProperty(
@PathParam("oid") final String oidStr,
@@ -95,7 +96,7 @@ public interface DomainObjectResource {
@GET
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response accessCollection(
@PathParam("oid") final String oidStr,
@@ -104,7 +105,7 @@ public interface DomainObjectResource {
@PUT
@Path("/{oid}/collections/{collectionId}")
@Consumes({ MediaType.APPLICATION_JSON })
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response addToSet(
@PathParam("oid") final String oidStr,
@PathParam("collectionId") final String collectionId,
@@ -112,8 +113,8 @@ public interface DomainObjectResource {
@POST
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response addToList(
@PathParam("oid") final String oidStr,
@@ -122,8 +123,8 @@ public interface DomainObjectResource {
@DELETE
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response removeFromCollection(
@PathParam("oid") final String oidStr,
@@ -137,7 +138,7 @@ public interface DomainObjectResource {
@GET
@Path("/{oid}/actions/{actionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response actionPrompt(
@PathParam("oid") final String oidStr,
@@ -149,7 +150,7 @@ public interface DomainObjectResource {
@GET
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response invokeActionQueryOnly(
@PathParam("oid") final String oidStr,
@@ -158,8 +159,8 @@ public interface DomainObjectResource {
@PUT
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response invokeActionIdempotent(
@PathParam("oid") final String oidStr,
@@ -168,8 +169,8 @@ public interface DomainObjectResource {
@POST
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response invokeAction(
@PathParam("oid") final String oidStr,
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java Tue Sep 27 16:41:19 2011
@@ -31,6 +31,7 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/services")
@@ -38,7 +39,7 @@ public interface DomainServiceResource {
@GET
@Path("/")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response services();
@@ -48,18 +49,29 @@ public interface DomainServiceResource {
@GET
@Path("/{serviceId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response service(@PathParam("serviceId") final String serviceId);
+
+ ////////////////////////////////////////////////////////////
+ // domain service property
+ ////////////////////////////////////////////////////////////
+ @GET
+ @Path("/{serviceId}/properties/{propertyId}")
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR })
+ public Response propertyDetails(
+ @PathParam("serviceId") final String serviceId,
+ @PathParam("propertyId") final String propertyId);
+
////////////////////////////////////////////////////////////
// domain service action
////////////////////////////////////////////////////////////
@GET
@Path("/{serviceId}/actions/{actionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response actionPrompt(
@PathParam("serviceId") final String serviceId,
@@ -72,7 +84,7 @@ public interface DomainServiceResource {
@GET
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response serviceInvokeActionQueryOnly(
@PathParam("oid") final String oidStr,
@@ -81,8 +93,8 @@ public interface DomainServiceResource {
@PUT
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response serviceInvokeActionIdempotent(
@PathParam("oid") final String oidStr,
@@ -91,8 +103,8 @@ public interface DomainServiceResource {
@POST
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
@ClientResponseType(entityType=String.class)
public Response serviceInvokeAction(
@PathParam("oid") final String oidStr,
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domaintypes/DomainTypeResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domaintypes/DomainTypeResource.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domaintypes/DomainTypeResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domaintypes/DomainTypeResource.java Tue Sep 27 16:41:19 2011
@@ -25,6 +25,7 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/domainTypes")
@@ -32,40 +33,40 @@ public interface DomainTypeResource {
@GET
@Path("/")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPES })
@ClientResponseType(entityType=String.class)
public abstract Response domainTypes();
@GET
@Path("/{domainType}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPE })
@ClientResponseType(entityType=String.class)
public abstract Response domainType(@PathParam("domainType") final String domainType);
@GET
@Path("/{domainType}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_PROPERTY })
@ClientResponseType(entityType=String.class)
public abstract Response typeProperty(@PathParam("domainType") final String domainType,
@PathParam("propertyId") final String propertyId);
@GET
@Path("/{domainType}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_COLLECTION })
@ClientResponseType(entityType=String.class)
public abstract Response typeCollection(@PathParam("domainType") final String domainType,
@PathParam("collectionId") final String collectionId);
@GET
@Path("/{domainType}/actions/{actionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_ACTION })
@ClientResponseType(entityType=String.class)
public abstract Response typeAction(@PathParam("domainType") final String domainType,
@PathParam("actionId") final String actionId);
@GET
@Path("/{domainType}/actions/{actionId}/params/{paramNum}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_ACTION_PARAMETER })
@ClientResponseType(entityType=String.class)
public abstract Response typeActionParam(@PathParam("domainType") final String domainType,
@PathParam("actionId") final String actionId, @PathParam("paramNum") final String paramName);
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/homepage/HomePageResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/homepage/HomePageResource.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/homepage/HomePageResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/homepage/HomePageResource.java Tue Sep 27 16:41:19 2011
@@ -24,13 +24,14 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/")
public interface HomePageResource {
@GET
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_HOME_PAGE })
@ClientResponseType(entityType=String.class)
public Response resources();
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/user/UserResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/user/UserResource.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/user/UserResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/user/UserResource.java Tue Sep 27 16:41:19 2011
@@ -24,13 +24,14 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/user")
public interface UserResource {
@GET
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_USER })
@ClientResponseType(entityType=String.class)
public Response user();
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/test/java/org/apache/isis/viewer/json/applib/RepresentationTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/test/java/org/apache/isis/viewer/json/applib/RepresentationTypeTest.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/test/java/org/apache/isis/viewer/json/applib/RepresentationTypeTest.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/test/java/org/apache/isis/viewer/json/applib/RepresentationTypeTest.java Tue Sep 27 16:41:19 2011
@@ -7,12 +7,11 @@ import org.junit.Test;
public class RepresentationTypeTest {
-
@Test
public void converts() {
assertThat(RepresentationType.CAPABILITIES.getName(), is("capabilities"));
assertThat(RepresentationType.HOME_PAGE.getName(), is("homePage"));
- assertThat(RepresentationType.DOMAIN_TYPE_ACTION_PARAMETER.getName(), is("domainTypeActionParameter"));
+ assertThat(RepresentationType.TYPE_ACTION_PARAMETER.getName(), is("typeActionParameter"));
}
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/AnyResourceTest_exceptionHandling.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/AnyResourceTest_exceptionHandling.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/AnyResourceTest_exceptionHandling.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/AnyResourceTest_exceptionHandling.java Tue Sep 27 16:41:19 2011
@@ -44,7 +44,7 @@ public class AnyResourceTest_exceptionHa
// then
assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.HOME_PAGE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(RepresentationType.HOME_PAGE.getMediaType()));
}
@Test
@@ -59,7 +59,7 @@ public class AnyResourceTest_exceptionHa
// then
assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.HOME_PAGE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(RepresentationType.HOME_PAGE.getMediaType()));
}
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java Tue Sep 27 16:41:19 2011
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertTha
import java.io.IOException;
-import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.runtimes.dflt.webserver.WebServer;
@@ -64,9 +63,8 @@ public class DomainServiceResourceTest_s
// then
assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(MediaType.APPLICATION_JSON_TYPE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(RepresentationType.DOMAIN_OBJECT.getMediaType()));
assertThat(jsonResp.getHeader(RestfulResponse.Header.CACHE_CONTROL).getMaxAge(), is(24*60*60));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.DOMAIN_OBJECT));
DomainObjectRepresentation repr = jsonResp.getEntity();
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java Tue Sep 27 16:41:19 2011
@@ -10,7 +10,6 @@ import static org.junit.Assert.assertTha
import java.io.IOException;
-import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status.Family;
@@ -57,9 +56,8 @@ public class DomainServiceResourceTest_s
// then
assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(MediaType.APPLICATION_JSON_TYPE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(RepresentationType.LIST.getMediaType()));
assertThat(jsonResp.getHeader(RestfulResponse.Header.CACHE_CONTROL).getMaxAge(), is(24*60*60));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.LIST));
DomainServicesRepresentation repr = jsonResp.getEntity();
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/HomePageResourceTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/HomePageResourceTest.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/HomePageResourceTest.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/HomePageResourceTest.java Tue Sep 27 16:41:19 2011
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertTha
import java.io.IOException;
-import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status.Family;
@@ -60,9 +59,8 @@ public class HomePageResourceTest {
// then
assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(MediaType.APPLICATION_JSON_TYPE));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.CACHE_CONTROL).getMaxAge(), is(86400));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.HOME_PAGE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(RepresentationType.HOME_PAGE.getMediaType()));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CACHE_CONTROL).getMaxAge(), is(24*60*60));
HomePageRepresentation repr = jsonResp.getEntity();
assertThat(repr, is(not(nullValue())));
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/UserResourceTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/UserResourceTest.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/UserResourceTest.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/UserResourceTest.java Tue Sep 27 16:41:19 2011
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertTha
import java.io.IOException;
-import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status.Family;
@@ -60,9 +59,8 @@ public class UserResourceTest {
// then
assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(MediaType.APPLICATION_JSON_TYPE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CONTENT_TYPE), is(RepresentationType.USER.getMediaType()));
assertThat(jsonResp.getHeader(RestfulResponse.Header.CACHE_CONTROL).getMaxAge(), is(3600));
- assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.USER));
UserRepresentation repr = jsonResp.getEntity();
assertThat(repr, is(not(nullValue())));
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/ResourceContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/ResourceContext.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/ResourceContext.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/ResourceContext.java Tue Sep 27 16:41:19 2011
@@ -18,9 +18,12 @@
*/
package org.apache.isis.viewer.json.viewer;
+import java.util.List;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;
@@ -51,6 +54,8 @@ public class ResourceContext {
final Localization localization,
final AuthenticationSession authenticationSession,
final ObjectAdapterLookup objectAdapterLookup) {
+
+
this.httpHeaders = httpHeaders;
this.uriInfo = uriInfo;
this.request = request;
@@ -61,6 +66,8 @@ public class ResourceContext {
this.localization = localization;
this.authenticationSession = authenticationSession;
this.objectAdapterLookup = objectAdapterLookup;
+
+ List<MediaType> clientMediaTypes = getHttpHeaders().getAcceptableMediaTypes();
}
public HttpHeaders getHttpHeaders() {
@@ -109,4 +116,5 @@ public class ResourceContext {
}
+
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/ResourceAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/ResourceAbstract.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/ResourceAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/ResourceAbstract.java Tue Sep 27 16:41:19 2011
@@ -37,10 +37,8 @@ import javax.ws.rs.core.UriInfo;
import org.apache.isis.applib.profiles.Localization;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapterLookup;
import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
import org.apache.isis.core.metamodel.adapter.version.Version;
-import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -51,22 +49,17 @@ import org.apache.isis.runtimes.dflt.run
import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
import org.apache.isis.viewer.json.applib.JsonRepresentation;
import org.apache.isis.viewer.json.applib.RepresentationType;
-import org.apache.isis.viewer.json.applib.RestfulResponse;
import org.apache.isis.viewer.json.applib.RestfulResponse.HttpStatusCode;
import org.apache.isis.viewer.json.applib.util.JsonMapper;
import org.apache.isis.viewer.json.viewer.JsonApplicationException;
import org.apache.isis.viewer.json.viewer.ResourceContext;
import org.apache.isis.viewer.json.viewer.representations.AbstractRepresentationBuilder;
import org.apache.isis.viewer.json.viewer.representations.RepBuilder;
-import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract.Caching;
-import org.apache.isis.viewer.json.viewer.resources.domainobjects.DomainObjectListRepBuilder;
import org.apache.isis.viewer.json.viewer.resources.domainobjects.DomainObjectRepBuilder;
import org.apache.isis.viewer.json.viewer.util.OidUtils;
import org.apache.isis.viewer.json.viewer.util.UrlDecoderUtils;
-import org.apache.isis.viewer.json.viewer.util.UrlParserUtils;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
-import org.jboss.resteasy.util.HttpHeaderNames;
import com.google.common.base.Function;
import com.google.common.base.Functions;
@@ -124,28 +117,10 @@ public abstract class ResourceAbstract {
private ResourceContext resourceContext;
- // TODO: make parameterizable
- private boolean strictChecking = false;
-
-
protected void init() {
this.resourceContext =
new ResourceContext(httpHeaders, uriInfo, request, httpServletRequest, httpServletResponse, securityContext,
getOidStringifier(), getLocalization(), getAuthenticationSession(), getAdapterManager());
- checkAcceptHeader();
- }
-
- private void checkAcceptHeader() {
- if(!strictChecking) {
- return;
- }
- List<MediaType> clientMediaTypes = getResourceContext().getHttpHeaders().getAcceptableMediaTypes();
- if(!clientMediaTypes.contains(MediaType.APPLICATION_JSON_TYPE)) {
- throw JsonApplicationException.create(
- HttpStatusCode.NOT_ACCEPTABLE,
- "Client %s header %s does not include %s",
- HttpHeaderNames.ACCEPT, clientMediaTypes, MediaType.APPLICATION_JSON_TYPE);
- }
}
protected ResourceContext getResourceContext() {
@@ -165,7 +140,6 @@ public abstract class ResourceAbstract {
protected String jsonFor(
final Collection<ObjectAdapter> collectionAdapters) {
-
return jsonFor(Lists.newArrayList(
Collections2.transform(collectionAdapters, toObjectSelfRepresentation())));
}
@@ -248,19 +222,19 @@ public abstract class ResourceAbstract {
return responseOf(HttpStatusCode.NO_CONTENT).lastModified(version.getTime());
}
- public static ResponseBuilder responseOfOk(RepresentationType representationType, String representation, Caching caching) {
+ public static ResponseBuilder responseOfOk(RepresentationType representationType, Caching caching, String representation) {
return responseOf(HttpStatusCode.OK)
- .header(RestfulResponse.Header.X_REPRESENTATION_TYPE.getName(), representationType.getName())
+ .type(representationType.getMediaType())
.cacheControl(caching.getCacheControl())
.entity(representation);
}
- public static ResponseBuilder responseOfOk(RepresentationType representationType, JsonRepresentation representation, Caching caching) {
- return responseOfOk(representationType, jsonFor(representation), caching);
+ public static ResponseBuilder responseOfOk(RepresentationType representationType, Caching caching, JsonRepresentation representation) {
+ return responseOfOk(representationType, caching, jsonFor(representation));
}
- public static ResponseBuilder responseOfOk(RepresentationType representationType, RepBuilder representationBuilder, Caching caching) {
- return responseOfOk(representationType, representationBuilder.build(), caching);
+ public static ResponseBuilder responseOfOk(RepresentationType representationType, Caching caching, RepBuilder representationBuilder) {
+ return responseOfOk(representationType, caching, representationBuilder.build());
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/capabilities/CapabilitiesResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/capabilities/CapabilitiesResourceServerside.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/capabilities/CapabilitiesResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/capabilities/CapabilitiesResourceServerside.java Tue Sep 27 16:41:19 2011
@@ -26,6 +26,7 @@ import javax.ws.rs.core.Response;
import org.apache.isis.viewer.json.applib.JsonRepresentation;
import org.apache.isis.viewer.json.applib.RepresentationType;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.apache.isis.viewer.json.applib.capabilities.CapabilitiesResource;
import org.apache.isis.viewer.json.viewer.representations.LinkToBuilder;
import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract;
@@ -39,7 +40,7 @@ public class CapabilitiesResourceServers
@GET
- @Produces(MediaType.APPLICATION_JSON)
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_CAPABILITIES})
public Response capabilities() {
init();
@@ -63,7 +64,7 @@ public class CapabilitiesResourceServers
representation.mapPut("links", JsonRepresentation.newArray());
representation.mapPut("extensions", JsonRepresentation.newMap());
- return responseOfOk(RepresentationType.CAPABILITIES, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.CAPABILITIES, Caching.ONE_DAY, representation).build();
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionSemantics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionSemantics.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionSemantics.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionSemantics.java Tue Sep 27 16:41:19 2011
@@ -3,7 +3,9 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.facets.actions.idempotent.IdempotentFacet;
import org.apache.isis.core.metamodel.facets.actions.queryonly.QueryOnlyFacet;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.viewer.json.applib.util.Enums;
import org.apache.isis.viewer.json.viewer.ResourceContext;
+import org.apache.isis.viewer.json.viewer.util.StringUtil;
public enum ActionSemantics {
@@ -12,8 +14,10 @@ public enum ActionSemantics {
SIDE_EFFECTS("invoke");
private final String invokeKey;
+ private final String name;
private ActionSemantics(String invokeKey) {
this.invokeKey = invokeKey;
+ this.name = Enums.enumToCamelCase(this);
}
public String getInvokeKey() {
@@ -28,6 +32,10 @@ public enum ActionSemantics {
return this == IDEMPOTENT;
}
+ public String getName() {
+ return name;
+ }
+
public static ActionSemantics determine(ResourceContext resourceContext, ObjectAction action) {
if(action.containsFacet(QueryOnlyFacet.class)) {
return QUERY_ONLY;
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectResourceServerside.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectResourceServerside.java Tue Sep 27 16:41:19 2011
@@ -16,9 +16,7 @@
*/
package org.apache.isis.viewer.json.viewer.resources.domainobjects;
-import java.io.IOException;
import java.io.InputStream;
-import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -35,16 +33,14 @@ import javax.ws.rs.core.Response;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.viewer.json.applib.RepresentationType;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.apache.isis.viewer.json.applib.RestfulResponse.HttpStatusCode;
import org.apache.isis.viewer.json.applib.domainobjects.DomainObjectResource;
import org.apache.isis.viewer.json.viewer.JsonApplicationException;
import org.apache.isis.viewer.json.viewer.ResourceContext;
-import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract.Caching;
-import org.apache.isis.viewer.json.viewer.resources.domainobjects.DomainResourceAbstract.Intent;
@Path("/objects")
public class DomainObjectResourceServerside extends DomainResourceAbstract implements
@@ -56,7 +52,7 @@ public class DomainObjectResourceServers
@GET
@Path("/{oid}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response object(
@PathParam("oid") final String oidStr) {
init();
@@ -69,7 +65,7 @@ public class DomainObjectResourceServers
@PUT
@Path("/{oid}")
@Consumes({ MediaType.APPLICATION_JSON })
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response object(
@PathParam("oid") final String oidStr,
final InputStream arguments) {
@@ -86,7 +82,7 @@ public class DomainObjectResourceServers
@GET
@Path("/{oid}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response propertyDetails(
@PathParam("oid") final String oidStr,
@PathParam("propertyId") final String propertyId) {
@@ -100,12 +96,12 @@ public class DomainObjectResourceServers
final ObjectPropertyRepBuilder builder = ObjectPropertyRepBuilder.newBuilder(
resourceContext, objectAdapter, property);
- return responseOfOk(RepresentationType.OBJECT_PROPERTY, builder, Caching.NONE).build();
+ return responseOfOk(RepresentationType.OBJECT_PROPERTY, Caching.NONE, builder).build();
}
@PUT
@Path("/{oid}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response modifyProperty(
@PathParam("oid") final String oidStr,
@PathParam("propertyId") final String propertyId,
@@ -136,7 +132,7 @@ public class DomainObjectResourceServers
@DELETE
@Path("/{oid}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response clearProperty(
@PathParam("oid") final String oidStr,
@PathParam("propertyId") final String propertyId) {
@@ -164,7 +160,7 @@ public class DomainObjectResourceServers
@GET
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response accessCollection(
@PathParam("oid") final String oidStr,
@PathParam("collectionId") final String collectionId) {
@@ -184,7 +180,7 @@ public class DomainObjectResourceServers
@PUT
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response addToSet(
@PathParam("oid") final String oidStr,
@PathParam("collectionId") final String collectionId,
@@ -219,7 +215,7 @@ public class DomainObjectResourceServers
@POST
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response addToList(
@PathParam("oid") final String oidStr,
@PathParam("collectionId") final String collectionId,
@@ -254,7 +250,7 @@ public class DomainObjectResourceServers
@DELETE
@Path("/{oid}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response removeFromCollection(
@PathParam("oid") final String oidStr,
@PathParam("collectionId") final String collectionId,
@@ -286,7 +282,7 @@ public class DomainObjectResourceServers
@GET
@Path("/{oid}/actions/{actionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response actionPrompt(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId) {
@@ -304,7 +300,7 @@ public class DomainObjectResourceServers
@GET
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response invokeActionQueryOnly(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId,
@@ -318,7 +314,7 @@ public class DomainObjectResourceServers
@PUT
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response invokeActionIdempotent(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId,
@@ -332,7 +328,7 @@ public class DomainObjectResourceServers
@POST
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response invokeAction(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId,
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceAbstract.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceAbstract.java Tue Sep 27 16:41:19 2011
@@ -70,7 +70,7 @@ public abstract class DomainResourceAbst
.withAdapter(objectAdapter);
ResponseBuilder respBuilder =
- responseOfOk(RepresentationType.DOMAIN_OBJECT, repBuilder, Caching.NONE);
+ responseOfOk(RepresentationType.DOMAIN_OBJECT, Caching.NONE, repBuilder);
Version version = objectAdapter.getVersion();
if (version != null && version.getTime() != null) {
@@ -94,7 +94,7 @@ public abstract class DomainResourceAbst
.withSelf()
.withMutatorsIfEnabled();
- return responseOfOk(RepresentationType.OBJECT_ACTION, repBuilder, Caching.NONE)
+ return responseOfOk(RepresentationType.OBJECT_ACTION, Caching.NONE, repBuilder)
.build();
}
@@ -187,7 +187,8 @@ public abstract class DomainResourceAbst
protected Response invokeActionUsingAdapters(
final ObjectAdapter objectAdapter,
final ObjectAction action,
- final List<ObjectAdapter> argAdapters, JsonRepresentation representationWithSelf) {
+ final List<ObjectAdapter> argAdapters,
+ final JsonRepresentation representationWithSelf) {
// validate
List<ObjectActionParameter> parameters = action.getParameters();
@@ -222,13 +223,13 @@ public abstract class DomainResourceAbst
final Collection<ObjectAdapter> collectionAdapters = collectionFacet
.collection(returnedAdapter);
DomainObjectListRepBuilder repBuilder = DomainObjectListRepBuilder.newBuilder(getResourceContext(), representationWithSelf).withAdapters(collectionAdapters);
- return responseOfOk(RepresentationType.LIST, repBuilder, Caching.NONE).build();
+ return responseOfOk(RepresentationType.LIST, Caching.NONE, repBuilder).build();
}
final EncodableFacet encodableFacet = returnedAdapter.getSpecification().getFacet(EncodableFacet.class);
if(encodableFacet != null) {
ScalarRepBuilder repBuilder = ScalarRepBuilder.newBuilder(getResourceContext(), representationWithSelf).withAdapter(objectAdapter);
- return responseOfOk(RepresentationType.SCALAR_VALUE, repBuilder, Caching.NONE).build();
+ return responseOfOk(RepresentationType.SCALAR_VALUE, Caching.NONE, repBuilder).build();
}
return object(returnedAdapter);
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainServiceResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainServiceResourceServerside.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainServiceResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainServiceResourceServerside.java Tue Sep 27 16:41:19 2011
@@ -31,16 +31,12 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.viewer.json.applib.RepresentationType;
-import org.apache.isis.viewer.json.applib.RestfulResponse;
-import org.apache.isis.viewer.json.applib.RestfulResponse.HttpStatusCode;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.apache.isis.viewer.json.applib.domainobjects.DomainServiceResource;
import org.apache.isis.viewer.json.viewer.ResourceContext;
import org.apache.isis.viewer.json.viewer.representations.AbstractRepresentationBuilder;
-import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract.Caching;
-import org.apache.isis.viewer.json.viewer.resources.domainobjects.DomainResourceAbstract.Intent;
@Path("/services")
public class DomainServiceResourceServerside extends DomainResourceAbstract implements
@@ -49,7 +45,7 @@ public class DomainServiceResourceServer
@Override
@GET
@Path("/")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response services() {
init();
@@ -62,7 +58,7 @@ public class DomainServiceResourceServer
.withSelf("services")
.withAdapters(serviceAdapters);
- return responseOfOk(RepresentationType.LIST, builder, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.LIST, Caching.ONE_DAY, builder).build();
}
////////////////////////////////////////////////////////////
@@ -71,7 +67,7 @@ public class DomainServiceResourceServer
@GET
@Path("/{serviceId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR })
@Override
public Response service(
@PathParam("serviceId") String serviceId) {
@@ -85,7 +81,7 @@ public class DomainServiceResourceServer
.usingLinkToBuilder(new DomainServiceLinkToBuilder())
.withAdapter(serviceAdapter);
- return responseOfOk(RepresentationType.DOMAIN_OBJECT, builder, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.DOMAIN_OBJECT, Caching.ONE_DAY, builder).build();
}
@@ -95,7 +91,7 @@ public class DomainServiceResourceServer
@GET
@Path("/{serviceId}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response propertyDetails(
@PathParam("serviceId") final String serviceId,
@PathParam("propertyId") final String propertyId) {
@@ -109,7 +105,7 @@ public class DomainServiceResourceServer
final ObjectPropertyRepBuilder builder = ObjectPropertyRepBuilder.newBuilder(
resourceContext, serviceAdapter, property);
- return responseOfOk(RepresentationType.OBJECT_PROPERTY, builder, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.OBJECT_PROPERTY, Caching.ONE_DAY, builder).build();
}
@@ -120,7 +116,7 @@ public class DomainServiceResourceServer
@GET
@Path("/{serviceId}/actions/{actionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response actionPrompt(
@PathParam("serviceId") final String serviceId,
@PathParam("actionId") final String actionId) {
@@ -138,7 +134,7 @@ public class DomainServiceResourceServer
@GET
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response serviceInvokeActionQueryOnly(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId,
@@ -151,8 +147,8 @@ public class DomainServiceResourceServer
@PUT
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response serviceInvokeActionIdempotent(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId,
@@ -165,8 +161,8 @@ public class DomainServiceResourceServer
@POST
@Path("/{oid}/actions/{actionId}/invoke")
- @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_OBJECT, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_SCALAR_VALUE, RestfulMediaType.APPLICATION_JSON_ERROR })
public Response serviceInvokeAction(
@PathParam("oid") final String oidStr,
@PathParam("actionId") final String actionId,
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionRepBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionRepBuilder.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionRepBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionRepBuilder.java Tue Sep 27 16:41:19 2011
@@ -190,7 +190,7 @@ public class ObjectActionRepBuilder exte
extensions.mapPut("actionType", objectMember.getType().name().toLowerCase());
final ActionSemantics semantics = ActionSemantics.determine(resourceContext, objectMember);
- extensions.mapPut("actionSemantics", semantics.name().toLowerCase());
+ extensions.mapPut("actionSemantics", semantics.getName());
}
private void addLinksFormalDomainModel(JsonRepresentation links, ResourceContext resourceContext) {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java Tue Sep 27 16:41:19 2011
@@ -30,6 +30,7 @@ import javax.ws.rs.core.Response;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.json.applib.JsonRepresentation;
import org.apache.isis.viewer.json.applib.RepresentationType;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.apache.isis.viewer.json.applib.domaintypes.DomainTypeResource;
import org.apache.isis.viewer.json.viewer.representations.LinkToBuilder;
import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract;
@@ -44,7 +45,7 @@ public class DomainTypeResourceServersid
@GET
@Path("/")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPES })
public Response domainTypes() {
init();
@@ -60,25 +61,25 @@ public class DomainTypeResourceServersid
representation.mapPut("domainTypes", specList);
- return responseOfOk(RepresentationType.DOMAIN_TYPE, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.DOMAIN_TYPE, Caching.ONE_DAY, representation).build();
}
@GET
@Path("/{domainType}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPE })
public Response domainType(@PathParam("domainType") final String domainType){
init();
JsonRepresentation representation = JsonRepresentation.newMap();
representation.mapPut("self", LinkToBuilder.newBuilder(getResourceContext(), "self", "domainTypes/%s", domainType).build());
- return responseOfOk(RepresentationType.DOMAIN_TYPE, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.DOMAIN_TYPE, Caching.ONE_DAY, representation).build();
}
@GET
@Path("/{domainType}/properties/{propertyId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_PROPERTY })
public Response typeProperty(
@PathParam("domainType") final String domainType,
@PathParam("propertyId") final String propertyId){
@@ -87,12 +88,12 @@ public class DomainTypeResourceServersid
JsonRepresentation representation = JsonRepresentation.newMap();
representation.mapPut("self", LinkToBuilder.newBuilder(getResourceContext(), "self", "domainTypes/%s/properties/%s", domainType, propertyId).build());
- return responseOfOk(RepresentationType.DOMAIN_TYPE_PROPERTY, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.TYPE_PROPERTY, Caching.ONE_DAY, representation).build();
}
@GET
@Path("/{domainType}/collections/{collectionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_COLLECTION })
public Response typeCollection(
@PathParam("domainType") final String domainType,
@PathParam("collectionId") final String collectionId){
@@ -101,12 +102,12 @@ public class DomainTypeResourceServersid
JsonRepresentation representation = JsonRepresentation.newMap();
representation.mapPut("self", LinkToBuilder.newBuilder(getResourceContext(), "self", "domainType/%s/collections/%s", domainType, collectionId).build());
- return responseOfOk(RepresentationType.DOMAIN_TYPE_COLLECTION, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.TYPE_COLLECTION, Caching.ONE_DAY, representation).build();
}
@GET
@Path("/{domainType}/actions/{actionId}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_ACTION })
public Response typeAction(
@PathParam("domainType") final String domainType,
@PathParam("actionId") final String actionId){
@@ -115,12 +116,12 @@ public class DomainTypeResourceServersid
JsonRepresentation representation = JsonRepresentation.newMap();
representation.mapPut("self", LinkToBuilder.newBuilder(getResourceContext(), "self", "domainTypes/%s/actions/%s", domainType, actionId).build());
- return responseOfOk(RepresentationType.DOMAIN_TYPE_ACTION, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.TYPE_ACTION, Caching.ONE_DAY, representation).build();
}
@GET
@Path("/{domainType}/actions/{actionId}/params/{paramName}")
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_ACTION_PARAMETER })
public Response typeActionParam(
@PathParam("domainType") final String domainType,
@PathParam("actionId") final String actionId,
@@ -130,7 +131,7 @@ public class DomainTypeResourceServersid
JsonRepresentation representation = JsonRepresentation.newMap();
representation.mapPut("self", LinkToBuilder.newBuilder(getResourceContext(), "self", "domainTypes/%s/actions/%s/params/%s", domainType, actionId, paramName).build());
- return responseOfOk(RepresentationType.DOMAIN_TYPE_COLLECTION, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.TYPE_COLLECTION, Caching.ONE_DAY, representation).build();
}
}
\ No newline at end of file
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/home/HomePageResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/home/HomePageResourceServerside.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/home/HomePageResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/home/HomePageResourceServerside.java Tue Sep 27 16:41:19 2011
@@ -26,7 +26,7 @@ import javax.ws.rs.core.Response;
import org.apache.isis.viewer.json.applib.JsonRepresentation;
import org.apache.isis.viewer.json.applib.RepresentationType;
-import org.apache.isis.viewer.json.applib.RestfulResponse;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.apache.isis.viewer.json.applib.RestfulResponse.HttpStatusCode;
import org.apache.isis.viewer.json.applib.homepage.HomePageResource;
import org.apache.isis.viewer.json.viewer.JsonApplicationException;
@@ -41,7 +41,7 @@ public class HomePageResourceServerside
@Override
- @Produces(MediaType.APPLICATION_JSON)
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_HOME_PAGE} )
public Response resources() {
init();
@@ -57,7 +57,7 @@ public class HomePageResourceServerside
representation.mapPut("links", JsonRepresentation.newArray());
representation.mapPut("extensions", JsonRepresentation.newMap());
- return responseOfOk(RepresentationType.HOME_PAGE, representation, Caching.ONE_DAY).build();
+ return responseOfOk(RepresentationType.HOME_PAGE, Caching.ONE_DAY, representation).build();
}
private void fakeRuntimeExceptionIfXFail() {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/user/UserResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/user/UserResourceServerside.java?rev=1176463&r1=1176462&r2=1176463&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/user/UserResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/user/UserResourceServerside.java Tue Sep 27 16:41:19 2011
@@ -23,6 +23,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.viewer.json.applib.RepresentationType;
+import org.apache.isis.viewer.json.applib.RestfulMediaType;
import org.apache.isis.viewer.json.applib.user.UserResource;
import org.apache.isis.viewer.json.viewer.ResourceContext;
import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract;
@@ -30,14 +31,14 @@ import org.apache.isis.viewer.json.viewe
public class UserResourceServerside extends ResourceAbstract implements UserResource {
@Override
- @Produces({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_USER })
public Response user() {
init();
ResourceContext resourceContext = getResourceContext();
UserRepBuilder builder = UserRepBuilder.newBuilder(resourceContext).withAuthenticationSession(getAuthenticationSession());
- return responseOfOk(RepresentationType.USER, builder, Caching.ONE_HOUR).build();
+ return responseOfOk(RepresentationType.USER, Caching.ONE_HOUR, builder).build();
}
}