Cherry picking 2 more commits with the working selective indexing but improperly
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/99c75ccd Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/99c75ccd Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/99c75ccd Branch: refs/heads/release-2.1.1 Commit: 99c75ccd6ca16f93e3be934e5f1c5455d6e375c5 Parents: 58e6cf3 Author: George Reyes <[email protected]> Authored: Wed Mar 9 12:18:36 2016 -0800 Committer: George Reyes <[email protected]> Committed: Thu Mar 24 09:06:42 2016 -0700 ---------------------------------------------------------------------- .../corepersistence/CpEntityManager.java | 21 +- .../usergrid/persistence/EntityManager.java | 2 +- .../rest/applications/ApplicationResource.java | 2 +- .../rest/applications/CollectionResource.java | 199 +++++++++++++++++++ .../rest/applications/ServiceResource.java | 142 ++++++------- .../collection/CollectionsResourceIT.java | 13 +- .../services/AbstractCollectionService.java | 23 ++- .../services/AbstractConnectionsService.java | 10 +- .../usergrid/services/AbstractService.java | 12 +- .../org/apache/usergrid/services/Service.java | 3 + .../usergrid/services/ServiceRequest.java | 5 + .../applications/ApplicationsService.java | 11 +- 12 files changed, 338 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java index 6a6d036..d5ba946 100644 --- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java +++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java @@ -1754,27 +1754,32 @@ public class CpEntityManager implements EntityManager { schemaMap.put("lastReindexed",0); schemaMap.putAll( properties ); - //Map<String,Object> fields = properties.get( "properties" ); - - //for(Object) - MapManager mm = getMapManagerForTypes(); - mm.putString( collectionName,schemaMap.toString() ); + mm.putString( collectionName,JsonUtils.mapToJsonString( schemaMap ) ); return schemaMap; } @Override - public Entity createCollectionSchema( String collectionName ){ + public Object getCollectionSchema( String collectionName ){ MapManager mm = getMapManagerForTypes(); String jsonMap = mm.getString( collectionName ); Object obj = JsonUtils.parse( jsonMap ); - - return null; + return obj; } +// @Override +// public Entity createCollectionSchema( String collectionName ){ +// MapManager mm = getMapManagerForTypes(); +// String jsonMap = mm.getString( collectionName ); +// +// Object obj = JsonUtils.parse( jsonMap ); +// +// return null; +// } + @Override public void grantRolePermission( String roleName, String permission ) throws Exception { http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java index 7c5cc5b..13fb098 100644 --- a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java +++ b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java @@ -514,7 +514,7 @@ public interface EntityManager { public Map createCollectionSchema( String collectionName, String owner ,Map<String, Object> properties ); - Entity createCollectionSchema( String collectionName ); + Object getCollectionSchema( String collectionName ); public void grantRolePermission( String roleName, String permission ) throws Exception; http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java index f2d07e3..9836f1c 100644 --- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java +++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java @@ -82,7 +82,7 @@ import static org.apache.usergrid.utils.StringUtils.stringOrSubstringBeforeFirst MediaType.APPLICATION_JSON, "application/javascript", "application/x-javascript", "text/ecmascript", "application/ecmascript", "text/jscript" }) -public class ApplicationResource extends ServiceResource { +public class ApplicationResource extends CollectionResource { public static final Logger logger = LoggerFactory.getLogger( ApplicationResource.class ); http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java new file mode 100644 index 0000000..856bce0 --- /dev/null +++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/CollectionResource.java @@ -0,0 +1,199 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.usergrid.rest.applications; + + +import java.util.UUID; + +import javax.ws.rs.DefaultValue; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.PathSegment; +import javax.ws.rs.core.UriInfo; + +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import org.apache.commons.lang.StringUtils; + +import org.apache.usergrid.persistence.Query; +import org.apache.usergrid.rest.AbstractContextResource; +import org.apache.usergrid.rest.ApiResponse; +import org.apache.usergrid.rest.RootResource; +import org.apache.usergrid.rest.security.annotations.RequireApplicationAccess; +import org.apache.usergrid.services.AbstractCollectionService; +import org.apache.usergrid.services.ServiceAction; +import org.apache.usergrid.services.ServiceParameter; +import org.apache.usergrid.services.ServicePayload; + +import com.fasterxml.jackson.jaxrs.json.annotation.JSONP; + + +/** + * A collection resource that stands before the Service Resource. If it cannot find + * the specified method then we should route the call to the service resource proper. + * Otherwise handle it in here. + */ +@Component +@Scope("prototype") +@Produces({ + MediaType.APPLICATION_JSON, "application/javascript", "application/x-javascript", "text/ecmascript", + "application/ecmascript", "text/jscript" +}) +public class CollectionResource extends ServiceResource { + + public CollectionResource() { + } + + /** + * THE BEGINNINGS OF AN ENDPOINT THAT WILL ALLOW TO DEFINE WHAT TO + * STORE IN ELASTICSEARCH. + * @param ui + * @param callback + * @return + * @throws Exception + */ + @POST + @Path("_indexes") + @Produces({ MediaType.APPLICATION_JSON,"application/javascript"}) + @RequireApplicationAccess + @JSONP + public ApiResponse executePostOnIndexes( @Context UriInfo ui, String body, + @QueryParam("callback") @DefaultValue("callback") String callback ) + throws Exception { + + if(logger.isTraceEnabled()){ + logger.trace( "ServiceResource.executePostOnIndexes" ); + } + + Object json; + if ( StringUtils.isEmpty( body ) ) { + json = null; + } else { + json = readJsonToObject( body ); + } + + ApiResponse response = createApiResponse(); + + response.setAction( "post" ); + response.setApplication( services.getApplication() ); + response.setParams( ui.getQueryParameters() ); + + ServicePayload payload = getPayload( json ); + + executeServicePostRequestForSchema( ui,response, ServiceAction.POST,payload ); + + return response; + } + + @GET + @Path("_index") + @Produces({MediaType.APPLICATION_JSON,"application/javascript"}) + @RequireApplicationAccess + @JSONP + public ApiResponse executeGetOnIndex( @Context UriInfo ui, String body, + @QueryParam("callback") @DefaultValue("callback") String callback ) + throws Exception { + + if(logger.isTraceEnabled()){ + logger.trace( "CollectionResource.executeGetOnIndex" ); + } + + Object json; + if ( StringUtils.isEmpty( body ) ) { + json = null; + } else { + json = readJsonToObject( body ); + } + + ApiResponse response = createApiResponse(); + + + + response.setAction( "get" ); + response.setApplication( services.getApplication() ); + response.setParams( ui.getQueryParameters() ); + + executeServiceGetRequestForSchema( ui,response,ServiceAction.GET,null ); + + ///ServicePayload payload = getPayload( json ); + + ///emf.getEntityManager( getApplicationId() ).get + + //executeServiceRequest( ui, response, ServiceAction.GET, payload ); + + return response; + } + + @Override + @Path( RootResource.ENTITY_ID_PATH) + public AbstractContextResource addIdParameter( @Context UriInfo ui, @PathParam("entityId") PathSegment entityId ) + throws Exception { + + if(logger.isTraceEnabled()){ + logger.trace( "ServiceResource.addIdParameter" ); + } + + UUID itemId = UUID.fromString( entityId.getPath() ); + + ServiceParameter.addParameter( getServiceParameters(), itemId ); + + addMatrixParams( getServiceParameters(), ui, entityId ); + + return getSubResource( CollectionResource.class ); + } + + + @Override + @Path("{itemName}") + public AbstractContextResource addNameParameter( @Context UriInfo ui, @PathParam("itemName") PathSegment itemName ) + throws Exception { + if(logger.isTraceEnabled()){ + logger.trace( "ServiceResource.addNameParameter" ); + logger.trace( "Current segment is {}", itemName.getPath() ); + } + + + if ( itemName.getPath().startsWith( "{" ) ) { + Query query = Query.fromJsonString( itemName.getPath() ); + if ( query != null ) { + ServiceParameter.addParameter( getServiceParameters(), query ); + } + } + else { + ServiceParameter.addParameter( getServiceParameters(), itemName.getPath() ); + } + + addMatrixParams( getServiceParameters(), ui, itemName ); + + return getSubResource( CollectionResource.class ); + } + +// @ +// public ServiceResource doLogicInServiceResource() throws Exception{ +// return getSubResource( ServiceResource.class ); +// } + +} http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ServiceResource.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ServiceResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ServiceResource.java index 3318adf..c723366 100644 --- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ServiceResource.java +++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ServiceResource.java @@ -244,7 +244,64 @@ public class ServiceResource extends AbstractContextResource { return getSubResource( ServiceResource.class ); } - public ServiceResults executeServiceRequestForSchema(UriInfo ui, ApiResponse response, ServiceAction action, + + public ServiceResults executeServiceGetRequestForSchema(UriInfo ui, ApiResponse response, ServiceAction action, + ServicePayload payload) throws Exception { + + if(logger.isTraceEnabled()){ + logger.trace( "ServiceResource.executeServiceRequest" ); + } + + + boolean tree = "true".equalsIgnoreCase( ui.getQueryParameters().getFirst( "tree" ) ); + + String connectionQueryParm = ui.getQueryParameters().getFirst("connections"); + boolean returnInboundConnections = true; + boolean returnOutboundConnections = true; + + addQueryParams( getServiceParameters(), ui ); + + ServiceRequest r = services.newRequest( action, tree, getServiceParameters(), payload, + returnInboundConnections, returnOutboundConnections ); + + response.setServiceRequest( r ); + + + AbstractCollectionService abstractCollectionService = new AbstractCollectionService(); + + // abstractCollectionService + ServiceResults results = abstractCollectionService.getCollectionSchema( r ); + + // ServiceResults results = r.execute(); + if ( results != null ) { + if ( results.hasData() ) { + response.setData( results.getData() ); + } + if ( results.getServiceMetadata() != null ) { + response.setMetadata( results.getServiceMetadata() ); + } + Query query = r.getLastQuery(); + if ( query != null ) { + if ( query.hasSelectSubjects() ) { + response.setList( QueryUtils.getSelectionResults( query, results ) ); + response.setCount( response.getList().size() ); + response.setNext( results.getNextResult() ); + response.setPath( results.getPath() ); + return results; + } + } + + response.setResults( results ); + } + + httpServletRequest.setAttribute( "applicationId", services.getApplicationId() ); + + return results; + + + } + + public ServiceResults executeServicePostRequestForSchema(UriInfo ui, ApiResponse response, ServiceAction action, ServicePayload payload) throws Exception { if(logger.isTraceEnabled()){ @@ -264,7 +321,13 @@ public class ServiceResource extends AbstractContextResource { returnInboundConnections, returnOutboundConnections ); response.setServiceRequest( r ); - ServiceResults results = r.execute(); + + + AbstractCollectionService abstractCollectionService = new AbstractCollectionService(); + + ServiceResults results = abstractCollectionService.postCollectionSchema( r ); + +// ServiceResults results = r.execute(); if ( results != null ) { if ( results.hasData() ) { response.setData( results.getData() ); @@ -402,81 +465,6 @@ public class ServiceResource extends AbstractContextResource { } - /** - * THE BEGINNINGS OF AN ENDPOINT THAT WILL ALLOW TO DEFINE WHAT TO - * STORE IN ELASTICSEARCH. - * @param ui - * @param callback - * @return - * @throws Exception - */ - @POST - @Path("_indexes") - @Produces({MediaType.APPLICATION_JSON,"application/javascript"}) - @RequireApplicationAccess - @JSONP - public ApiResponse executePostOnIndexes( @Context UriInfo ui, String body, - @QueryParam("callback") @DefaultValue("callback") String callback ) - throws Exception { - - if(logger.isTraceEnabled()){ - logger.trace( "ServiceResource.executePostOnIndexes" ); - } - - Object json; - if ( StringUtils.isEmpty( body ) ) { - json = null; - } else { - json = readJsonToObject( body ); - } - - ApiResponse response = createApiResponse(); - - response.setAction( "post" ); - response.setApplication( services.getApplication() ); - response.setParams( ui.getQueryParameters() ); - - ServicePayload payload = getPayload( json ); - - executeServiceRequestForSchema( ui,response,ServiceAction.SCHEMA,payload ); - - return response; - } - - @GET - @Path("_index") - @Produces({MediaType.APPLICATION_JSON,"application/javascript"}) - @RequireApplicationAccess - @JSONP - public ApiResponse executeGetOnIndex( @Context UriInfo ui, String body, - @QueryParam("callback") @DefaultValue("callback") String callback ) - throws Exception { - - if(logger.isTraceEnabled()){ - logger.trace( "ServiceResource.executePostOnIndexes" ); - } - - Object json; - if ( StringUtils.isEmpty( body ) ) { - json = null; - } else { - json = readJsonToObject( body ); - } - - ApiResponse response = createApiResponse(); - - - - response.setAction( "get" ); - response.setApplication( services.getApplication() ); - response.setParams( ui.getQueryParameters() ); - - ServicePayload payload = getPayload( json ); - - executeServiceRequest( ui, response, ServiceAction.GET, payload ); - - return response; - } @SuppressWarnings({ "unchecked" }) http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java index 773317b..cea9d5e 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/CollectionsResourceIT.java @@ -149,7 +149,7 @@ public class CollectionsResourceIT extends AbstractRestIT { payload.put( "fields", indexingArray); //Post index to the collection metadata - Object thing = this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload ); + Entity thing = this.app().collection( "testCollection" ).collection( "_indexes" ).post( payload ); refreshIndex(); //Below is what needs to be implemented along with the index call above @@ -157,12 +157,11 @@ public class CollectionsResourceIT extends AbstractRestIT { //Get the collection schema and verify that it contains the same schema as posted above. Collection collection = this.app().collection( "testCollection" ).collection( "_index" ).get(); - Entity testCollectionSchema = (Entity)collection.getResponse().getEntity(); - //the below will have to be replaced by the values that I deem correct. - assertEquals( "lastUpdated", testCollectionSchema.get( "lastUpdated" )); - assertEquals( "lastUpdatedBy",testCollectionSchema.get( "lastUpdatedBy" ) ); - assertEquals( "lastReindex",testCollectionSchema.get( "lastReindex" ) ); - + LinkedHashMap testCollectionSchema = (LinkedHashMap)collection.getResponse().getData(); + //TODO: the below will have to be replaced by the values that I deem correct. + assertEquals( ( thing ).get( "lastUpdated" ), testCollectionSchema.get( "lastUpdated" )); + assertEquals( ( thing ).get( "lastUpdateBy" ),testCollectionSchema.get( "lastUpdateBy" ) ); + assertEquals( ( thing ).get( "lastReindexed" ),testCollectionSchema.get( "lastReindexed" ) ); ArrayList<String> schema = ( ArrayList<String> ) testCollectionSchema.get( "fields" ); assertEquals( "one",schema.get( 0 ) ); http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java index f6d2849..4d73fa5 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java @@ -55,6 +55,11 @@ public class AbstractCollectionService extends AbstractService { declareMetadataType( "indexes" ); } + public AbstractCollectionService(ServiceRequest serviceRequest){ + setServiceManager( serviceRequest.getServices() ); + } + + @Override public Entity getEntity( ServiceRequest request, UUID uuid ) throws Exception { if ( !isRootService() ) { @@ -324,7 +329,10 @@ public class AbstractCollectionService extends AbstractService { } @Override - public ServiceResults postCollectionSchema( ServiceContext context ) throws Exception { + public ServiceResults postCollectionSchema( ServiceRequest serviceRequest ) throws Exception { + setServiceManager( serviceRequest.getServices() ); + ServiceContext context = serviceRequest.getAppContext(); + context.setAction( ServiceAction.POST ); checkPermissionsForCollection( context ); Subject currentUser = SubjectUtils.getSubject(); @@ -337,6 +345,19 @@ public class AbstractCollectionService extends AbstractService { } + @Override + public ServiceResults getCollectionSchema( ServiceRequest serviceRequest ) throws Exception { + setServiceManager( serviceRequest.getServices() ); + ServiceContext context = serviceRequest.getAppContext(); + context.setAction( ServiceAction.GET ); + checkPermissionsForCollection( context ); + + Object collectionSchema = em.getCollectionSchema( context.getCollectionName() ); + + return new ServiceResults( this, context, Type.COLLECTION, Results.fromData( collectionSchema ), null, null ); + + } + @Override public ServiceResults postCollection( ServiceContext context ) throws Exception { http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/services/src/main/java/org/apache/usergrid/services/AbstractConnectionsService.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/AbstractConnectionsService.java b/stack/services/src/main/java/org/apache/usergrid/services/AbstractConnectionsService.java index 666f676..395f2d4 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/AbstractConnectionsService.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/AbstractConnectionsService.java @@ -392,8 +392,14 @@ public class AbstractConnectionsService extends AbstractService { @Override - public ServiceResults postCollectionSchema( final ServiceContext context ) throws Exception { - throw new UnsupportedServiceOperationException( context ); + public ServiceResults postCollectionSchema( final ServiceRequest request ) throws Exception { + throw new UnsupportedServiceOperationException( request ); + } + + + @Override + public ServiceResults getCollectionSchema( final ServiceRequest serviceRequest ) throws Exception { + throw new UnsupportedServiceOperationException( serviceRequest ); } http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/services/src/main/java/org/apache/usergrid/services/AbstractService.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/AbstractService.java b/stack/services/src/main/java/org/apache/usergrid/services/AbstractService.java index 3c5503c..7d33144 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/AbstractService.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/AbstractService.java @@ -656,6 +656,7 @@ public abstract class AbstractService implements Service { * the queue. Remaining parameters are left for next service request to allow for request chaining. */ + @Override public ServiceContext getContext( ServiceAction action, ServiceRequest request, ServiceResults previousResults, ServicePayload payload ) throws Exception { @@ -828,9 +829,6 @@ public abstract class AbstractService implements Service { case HEAD: return headCollection( context ); - - case SCHEMA: - return postCollectionSchema( context ); } throw new ServiceInvocationException( context, "Request action unhandled " + context.getAction() ); @@ -891,8 +889,10 @@ public abstract class AbstractService implements Service { return getItemsByQuery( context, query ); } + public abstract ServiceResults postCollectionSchema( ServiceRequest serviceRequest ) throws Exception; + - public abstract ServiceResults postCollectionSchema( ServiceContext context ) throws Exception; + public abstract ServiceResults getCollectionSchema( ServiceRequest serviceRequest ) throws Exception; public ServiceResults postCollection( ServiceContext context ) throws Exception { @@ -1366,8 +1366,8 @@ public abstract class AbstractService implements Service { if ( currentUser == null ) { return; } - String perm = - getPermissionFromPath( em.getApplicationRef().getUuid(), context.getAction().toString().toLowerCase(), + //this is breaking because there is no entity manager there. + String perm = getPermissionFromPath( em.getApplicationRef().getUuid(), context.getAction().toString().toLowerCase(), path ); boolean permitted = currentUser.isPermitted( perm ); http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/services/src/main/java/org/apache/usergrid/services/Service.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/Service.java b/stack/services/src/main/java/org/apache/usergrid/services/Service.java index f463813..0a84dbf 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/Service.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/Service.java @@ -47,4 +47,7 @@ public interface Service { public Entity writeEntity( ServiceRequest request, Entity entity ) throws Exception; public Entity updateEntity( ServiceRequest request, EntityRef ref, ServicePayload payload ) throws Exception; + + ServiceContext getContext( ServiceAction action, ServiceRequest request, ServiceResults previousResults, + ServicePayload payload ) throws Exception; } http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/services/src/main/java/org/apache/usergrid/services/ServiceRequest.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/ServiceRequest.java b/stack/services/src/main/java/org/apache/usergrid/services/ServiceRequest.java index 2c95465..f8a5abb 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/ServiceRequest.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/ServiceRequest.java @@ -236,6 +236,11 @@ public class ServiceRequest { return sb.toString(); } + public ServiceContext getAppContext() throws Exception { + Service s = services.getService( serviceName ); + + return s.getContext( action,this,null,payload ); + } public ServiceResults execute( ServiceResults previousResults ) throws Exception { http://git-wip-us.apache.org/repos/asf/usergrid/blob/99c75ccd/stack/services/src/main/java/org/apache/usergrid/services/applications/ApplicationsService.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/services/applications/ApplicationsService.java b/stack/services/src/main/java/org/apache/usergrid/services/applications/ApplicationsService.java index cf4aa80..0eef711 100644 --- a/stack/services/src/main/java/org/apache/usergrid/services/applications/ApplicationsService.java +++ b/stack/services/src/main/java/org/apache/usergrid/services/applications/ApplicationsService.java @@ -32,6 +32,7 @@ import org.apache.usergrid.services.AbstractService; import org.apache.usergrid.services.ServiceContext; import org.apache.usergrid.services.ServiceParameter.QueryParameter; import org.apache.usergrid.services.ServicePayload; +import org.apache.usergrid.services.ServiceRequest; import org.apache.usergrid.services.ServiceResults; import org.apache.usergrid.services.ServiceResults.Type; import org.apache.usergrid.services.exceptions.UnsupportedServiceOperationException; @@ -95,8 +96,14 @@ public class ApplicationsService extends AbstractService { @Override - public ServiceResults postCollectionSchema( final ServiceContext context ) throws Exception { - throw new UnsupportedServiceOperationException( context ); + public ServiceResults postCollectionSchema( final ServiceRequest request ) throws Exception { + throw new UnsupportedServiceOperationException( request ); + } + + + @Override + public ServiceResults getCollectionSchema( final ServiceRequest serviceRequest ) throws Exception { + throw new UnsupportedServiceOperationException( serviceRequest ); }
