Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Apr 17, 2015
  1. @olivergierke

    DATAREST-522 - Improved exception handling in DelegatingHandlerMapping.

    olivergierke authored
    We now also handle HttpRequestMethodNotSupportedException and UnsatisfiedServletRequestParameterException and traverse the chain before eventually rejecting the mapping attempt with the last exception found.
    
    Related tickets: DATAREST-409.
Commits on Apr 16, 2015
  1. @olivergierke
  2. @olivergierke

    DATAREST-521 - Excerpts now contain all links of the projection target.

    olivergierke authored
    Extended the serialization capabilities to explicitly treat projection proxies by wrapping them into a ProjectionResource and collecting links for the target backing the projection if the target is an exported resource.
Commits on Apr 14, 2015
  1. @olivergierke
  2. @olivergierke
  3. @olivergierke

    DATAREST-293 - Added new module to easily add a HAL browser to Spring…

    olivergierke authored
    … Data REST apps.
    
    Added a module that repackages the webjar version of the HAL browser. The repackaging is necessary to be able to control the exposure of the browser dynamically and prevent Spring Boot's auto-exposure of webjars from kicking in.
    
    Tweaked BasePathAwareHandlerMapping to default the Accept header to the one defined in the configuration if none is present in the request or */* is given. This will make sure we default to a JSON dialect in case no header is set.
Commits on Apr 13, 2015
  1. @olivergierke

    DATAREST-517 - Null query results are now translated into 404.

    olivergierke authored
    We now explicitly handle null query execution results by returning 404 Not Found.
  2. @olivergierke

    DATAREST-516 - Fixed link to ALPS representation descriptors of assoc…

    olivergierke authored
    …iations.
    
    Previously the link pointing to representation descriptors of associations neither pointed to the ALPS controller nor to the representation descriptor.
  3. @olivergierke

    DATAREST-511 - Support for executing repository methods returning Opt…

    olivergierke authored
    …ionals.
    
    Added an UnwrappingRepositoryInvokerFactory that transparently unwraps JDK 8 and Guava Optionals to make sure the consuming code works with values or plain nulls correctly.
Commits on Apr 12, 2015
  1. @olivergierke

    DATAREST-506 - NotModified responses now return headers, too.

    olivergierke authored
    Responses for item resources that result in 304 Not Modifier now also return the headers they'd return if a 200 Ok would've been returned.
Commits on Apr 11, 2015
  1. @olivergierke

    DATAREST-515 - RepositorySearchesResource now exposes domain type.

    olivergierke authored
    RepositorySearchesResource now exposes the domain type for whom the searches are listed to allow implementations of ResourceProcessor add links by type more easily.
Commits on Apr 10, 2015
  1. @olivergierke

    DATAREST-514 - Fixed resource exposure for customized associations.

    olivergierke authored
    We no correctly handle the customized association path if @RestResource is used on an association. Took the chance to refactor the resource mapping subsystem quite significantly to improve the handling of property mappings. Those had been externalized before.
Commits on Apr 8, 2015
  1. @olivergierke
  2. @olivergierke

    DATAREST-507 - Fixed IllegalArgumentException in RepositoryRestExcept…

    olivergierke authored
    …ionHandler.
    
    A lot of cleanups in RepositoryRestExceptionHandler: prefer static methods where possible. Removed delegates where only one client was calling the method. Consistent argument ordering with optional (nullable) parameters last.
    
    Silenced logging in unit tests for RepositoryRestExceptionHandler.
  3. @olivergierke

    DATAREST-506 - Support for conditional GETs on item resources.

    olivergierke authored
    We now inspect If-None-Match and If-Modified-Since headers on GET requests to item resources and return 304 Not Modified if appropriate.
    
    Disable rendering of version property in Jackson serializer as it's reflected in the ETag.
    
    Related tickets: DATAREST-160, DATAREST-471.
Commits on Apr 7, 2015
  1. @olivergierke

    DATAREST-502 - Prepare request parameters to enable URI-to-entity res…

    olivergierke authored
    …olution for executing searches.
    
    RepositorySearchController now takes all request parameters as MultiValueMap to execute query methods. For parameters mapping to a managed resource we try to interpret the given parameter value as URI to actually trigger the URI-to-entity resolution through the newly registered UriToEntityConverter.
    
    The latter is now registered with the default ConversionService registered so that it's
    
    A lot of cleanups in RepositorySearchController. Removed some obsolete prints to the console to reduce log output during test execution.
    
    Related ticket: DATACMNS-678.
Commits on Apr 2, 2015
  1. @gregturn

    DATAREST-503 - Fix typo in reference docs

    gregturn authored
    Mispelled word in SDR's reference documentation. Patched.
    
    Courtesy of #172
  2. @olivergierke

    DATAREST-302 - Rendering projections includes/keeps links.

    olivergierke authored
    We now treat embedded projections as Resource instances and equip them with a self link. This should also allow to register ResourceProcessor instances for projection types to even add projection specific links if necessary.
    
    Also removed the explicit removal of the association link in case a projection is rendered for an association.
Commits on Mar 30, 2015
  1. @olivergierke

    DATAREST-500 - Enable lazy-loading proxy resolution on Hibernate 4 mo…

    olivergierke authored
    …dule.
    
    We now explicitly activate the resolution of lazy-loading proxies on Hibernate 4 to make sure not already populated lazy-loading proxies are actively resolved.
  2. @olivergierke

    DATAREST-498 - IncomingRequest now correctly evaluates parameterized …

    olivergierke authored
    …media types.
    
    IncomingRequest.isJsonPatchRequest()/….isJsonMergePatchRequest() previously did a hard equals comparison to the media type discovered in the request. This fails if the request's media type contains parameters (e.g. the charset).
    
    We now rather use MediaType.isCompatibleWith(…) to compare the media types more leniently.
    
    Renamed test case to match conventions so that the Maven build actually executes them.
Commits on Mar 23, 2015
  1. @olivergierke
  2. @spring-buildmaster
  3. @spring-buildmaster
  4. @olivergierke
  5. @olivergierke
  6. @olivergierke

    DATAREST-494 - ALPS metadata now links to JSON Schema.

    olivergierke authored
    The ALPS document rendered now links to the JSON Schema document from within the core representation descriptor to allow clients to obtain more detailed information about the payloads to send and receive.
Commits on Mar 22, 2015
  1. @olivergierke

    DATAREST-492 - Fixed JSON Schema type detection for primitive numbers.

    olivergierke authored
    We now correctly detect primitive numbers in domain objects so that the JSON Schema type of the property is number as expected.
  2. @gregturn @olivergierke

    DATAREST-449 - Polished up reference docs.

    gregturn authored olivergierke committed
    Original pull request: #170.
  3. @gregturn @olivergierke

    DATAREST-478 - Polished up bits of documentation.

    gregturn authored olivergierke committed
    Original pull request: #169.
  4. @gregturn @olivergierke

    DATAREST-453 - Added appendix linking to Spring Data examples.

    gregturn authored olivergierke committed
    Added a new section that lists Spring Data REST specific example projects.
    
    Original pull request: #168.
Commits on Mar 20, 2015
  1. @olivergierke

    DATAREST-491 - Fixed handling of non-entity maps in JSON processing.

    olivergierke authored
    During our custom JSON handling on PUT requests, we previously piped all JSON objects through code that expected that one to be mapped to a PersistentEntity. This fails for JSON objects that basically represent maps.
    
    We now skip that code paths for non-entity properties.
  2. @olivergierke

    DATAREST-34 - Polishing.

    olivergierke authored
    Moved decision logic on whether to return response bodies int RepositoryRestConfig to ease testability of the controller. Added more unit tests and simplified the controller integration tests accordingly. Had to deactivate some Cassandra related tests as they don't seem to handle nulling of properties correctly.
    
    Changed configuration to rely on the presence of the Accept header by default. Deprecated parameterless isReturnBodyFor…(…) methods in favor of the ones taking the Accept header to avoid the null checks on the calling side.
    
    Polished JavaDoc for the isReturnBodyOn(Create|Update) methods. Polished formatting in RepositoryEntityController.
    
    Original pull request: #167.
  3. @jrrickard @olivergierke

    DATAREST-34 - PUT and POST request now consider Accept header by defa…

    jrrickard authored olivergierke committed
    …ult.
    
    By default, whether to return response bodies for PUT and POST is determined by the presence of an Accept header, unless explicitly activated or deactivated in RepositoryRestConfiguration.
    
    Original pull request: #167.
Commits on Mar 11, 2015
  1. @olivergierke

    DATAREST-490 - Makes sure content negotiation works for manual resour…

    olivergierke authored
    …ce overrides with dedicated media type.
    
    In case a manually implemented controller is registered to add a dedicated media type for a Spring Data REST resource (e.g. an HTML representation for item resources) we now continue to serve JSON in case the request indicates it wants to see it.
    
    Previously this didn't work as the manually implemented controller method was detected to partially match (only the produces-clause not matching) and thus an exception being thrown from the HandlerMapping lookup. This caused the HandlerMapping registered for repositories not being considered at all.
    
    This is now fixed by hiding the HandlerMapping instances we register behind a DelegatingHandlerMapping that continues to try delegates even in a case of an exception being caused in a particular resolution attempt. Should all resolution attempts fail, we then throw the original exception if one occurred in the first place.
  2. @olivergierke
Something went wrong with that request. Please try again.