From 98fd079b2186452652eccb275f1cd0d6193008a8 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 9 Feb 2015 10:52:37 +0100 Subject: [PATCH] DATAREST-469 - Added dedicated resource type for search links. RepositorySearchController now returns a RepositorySearchesResources so that users can implement a custom ResourceProcessor to augment the list of links exposed for Spring Data repository query methods. --- .../webmvc/RepositorySearchController.java | 4 +-- .../webmvc/RepositorySearchesResource.java | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchesResource.java diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchController.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchController.java index 00231091f..e3ec5c7e5 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchController.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchController.java @@ -134,7 +134,7 @@ class RepositorySearchController extends AbstractRepositoryRestController { */ @ResponseBody @RequestMapping(value = BASE_MAPPING, method = RequestMethod.GET) - public ResourceSupport listSearches(RootResourceInformation resourceInformation) { + public RepositorySearchesResource listSearches(RootResourceInformation resourceInformation) { verifySearchesExposed(resourceInformation); @@ -144,7 +144,7 @@ class RepositorySearchController extends AbstractRepositoryRestController { throw new ResourceNotFoundException(); } - ResourceSupport result = new ResourceSupport(); + RepositorySearchesResource result = new RepositorySearchesResource(); result.add(queryMethodLinks); return result; diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchesResource.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchesResource.java new file mode 100644 index 000000000..1d8e81589 --- /dev/null +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositorySearchesResource.java @@ -0,0 +1,27 @@ +/* + * Copyright 2015 the original author or authors. + * + * Licensed 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.springframework.data.rest.webmvc; + +import org.springframework.hateoas.ResourceProcessor; +import org.springframework.hateoas.ResourceSupport; + +/** + * A custom {@link ResourceSupport} type to be able to write custom {@link ResourceProcessor}s to add additional links + * to ones automatically exposed for Spring Data repository query methods. + * + * @author Oliver Gierke + */ +public class RepositorySearchesResource extends ResourceSupport {}