Commit Graph

1035 Commits

Author SHA1 Message Date
Oliver Gierke
b400bacc0a DATACMNS-788 - template.mf now uses placeholder for Slf4j. 2015-11-23 13:27:48 +01:00
Oliver Gierke
3ed2f44e60 DATACMNS-787 - QuerydsBindings now allows aliasing of paths.
If a single path is now handed to QuerydslBindings.bind(…), a specialized AliasingPathBinder is returned which allows defining an alias the binding will be exposed under.

By default that alias will cause the original binding being black-listed and thus become unavailable for binding. This can be overridden by explicitly white-listing the properties to be bindable.
2015-11-23 13:07:19 +01:00
Oliver Gierke
60794a8923 DATACMNS-786 - Fixed typo in section of repository populators in reference documentation. 2015-11-20 17:39:25 +01:00
Oliver Gierke
c013c71e7a DATACMNS-670 - Upgraded to Querydsl 4.
Switched to new Querydsl 4 artifacts and adapted to changed package names and API changes.

Cleaned up some JavaDoc and APIs in QuerydslBindingsFactory and QuerydslBinderCustomizer.
2015-11-17 11:07:05 +01:00
Oliver Gierke
db2a09192b DATACMNS-785 - Added RevisionRepository.findRevision(ID, N). 2015-11-16 17:09:32 +01:00
Oliver Gierke
2564e0e8b1 DATACMNS-784 - Updated changelog. 2015-11-16 08:25:50 +01:00
Oliver Gierke
d2737983c3 DATACMNS-783 - DefaultTypeMapper now specializes raw generic types.
If the type lookup from the store source returns a raw generic type (e.g. resolving the value of a generic property against a value of that generic type - i.e. not a more concrete type binding the generic information) in the context of a generic property, we previously did not apply the generics information of the contextual instance to that very raw type.

We now expose a TypeInformation.specialize(ClassTypeInformation) which applies the current generics context to the given raw type and basically creates a synthetic parameterized TypeInformation instance.

DefaultTypeMapper applies this specialization by default now with ClassTypeInformation simply returning the given type as is so that we don't create any resolution overhead in case no generics are involved in the first place.
2015-11-13 17:16:47 +01:00
Oliver Gierke
0d6476c642 DATACMNS-782 - ProxyProjectionFactory now converts primitive attribute values.
The ProjectingMethodInterceptor now uses a default ConversionService instance to try to convert a potentially not matching result of the target invocation into the type the projection requires before the attempt to create nested projection.
2015-11-12 11:17:43 +01:00
Oliver Gierke
d3a194c408 DATACMNS-779 - Fixed JavaDoc in QuerydslPredicateBuilder.
Added JavaDoc to the constructor of QuerydslPredicateBuilder.
2015-10-22 11:45:17 +02:00
Oliver Gierke
896cc76fc7 DATACMNS-777 - Updated changelog. 2015-10-14 14:08:23 +02:00
Oliver Gierke
1185e71214 DATACMNS-768 - Added support for Optional as query method parameter type.
Query method parameter values of JDK 8 or Guava Optional type are now transparently unwrapped on parameter value access. ParametersParameterAccessor now unwraps them on instance creation.
2015-10-07 19:28:19 +02:00
Ricardo Espirito Santo
91eaf1bc50 DATACMNS-771 - Fixed typo in BasicPersistentEntity.
Original pull request: #145.
2015-10-05 18:32:07 +02:00
Oliver Gierke
828c19a4e5 DATACMNS-773 - Added support for persisting ZoneId instances as Strings.
We now ship converters for JSR-310 and ThreeTenBP's ZoneId conversion to String and back.
2015-10-05 18:03:42 +02:00
Oliver Gierke
be47572e56 DATACMNS-769 - Fixed assignability check for from QueryMethod.
The assignability check of method return types now explicitly detects wrapper types supported in QueryExceutionConverters and automatically unwraps those before the actual check.
2015-10-05 12:04:26 +02:00
Oliver Gierke
01f2c30b1d DATACMNS-753 - Fixed default handling of empty sort parameter.
We now correctly inspect the sort parameter values and also fall back to the default if a single, empty parameter value is given.

Related ticket: DATACMNS-408.
Related pull request: #138.
2015-09-09 17:56:27 +02:00
Ruben Dijkstra
9d9f230ed4 DATACMNS-753 - Added test case to see parsing of Sort is not considering defaults for empty parameter.
Related ticket: DATACMNS-408.
Original pull request: #138.
2015-09-09 17:55:43 +02:00
Oliver Gierke
360e473c3a DATACMNS-763 - Fixed constructor in example of custom repository base class.
Added hint to which constructor of the superclass to override. Added test cas e to make sure the expected types are advertised in the case of an error.
2015-09-07 09:15:13 +02:00
Oliver Gierke
8992cc80a1 DATACMNS-762 - Polished section on dependencies in reference documentation.
Linked back to the release train names from the section on dependency management with Boot for clarity. Added additional line break to avoid the first line in the repositories.adoc being interpreted as text.
2015-09-03 18:13:50 +02:00
Oliver Gierke
167b52f7b4 DATACMNS-761 - Fixed page size detection for a PageableHandlerMethodArgumentResolver configured to one-indexed parameters. 2015-09-02 16:13:36 +02:00
Oliver Gierke
bfc5a68697 DATACMNS-759 - After release cleanups. 2015-09-01 12:11:01 +02:00
Spring Buildmaster
f6bb8a7fd9 DATACMNS-759 - Prepare next development iteration. 2015-09-01 00:55:11 -07:00
Spring Buildmaster
6ef8cc86fc DATACMNS-759 - Release version 1.11.0.RELEASE (Gosling GA). 2015-09-01 00:55:08 -07:00
Oliver Gierke
37830dae6e DATACMNS-759 - Prepare 1.11.0.RELEASE (Gosling GA). 2015-09-01 09:44:21 +02:00
Oliver Gierke
05d4b0d3b6 DATACMNS-759 - Updated changelog. 2015-09-01 09:44:09 +02:00
Oliver Gierke
be812e28cd DATACMNS-759 - Switched to Spring HATEOAS version property provided by the build parent. 2015-09-01 09:25:59 +02:00
Oliver Gierke
8c90594e9e DATACMNS-760 - Removed cyclic dependency in Querydsl packages.
Moved @QuerydslPredicate into the non-web-related Querydsl package to avoid a cyclic dependency.
2015-09-01 09:23:04 +02:00
Christoph Strobl
ed64dd186e DATACMNS-751 - Added newly introduced features to the reference documentation.
Added sections to the reference documentation to elaborate on the newly introduced web integration for Querydsl.

Added documentation for Future<T> return types.

Corrected the closing tag for dependency for Spring Data Commons section on dependencies. Fix broken links to Spring Framework reference documentation. Update build requirements in readme.

Original Pull Request: #137
2015-08-19 10:19:28 +02:00
Oliver Gierke
cc2696fcc4 DATACMNS-755 - Fixed QSort property translation for plain paths.
If standard Querydsl StringPaths are used without any reference to a query class tree, we previously dropped the first segment of the path expression.

Moved to a completely different algorithm to determine the path by just using the Path's toString() representation and the root removed if necessary.
2015-08-18 13:53:02 +02:00
Martin Grigorov
d61b687cd6 DATACMNS-754 - Fixed code sample in repositories reference documentation.
PersonRepository example now shows Person persisted instead of User instances.

Original pull request: #140.
2015-08-17 18:14:27 +02:00
Oliver Gierke
cc1aa713f9 DATACMNS-750 - Fixed part creation in query methods that have keywords in property paths.
If a keyword was contained in a complex property path (like In in SomeInfo), the property path was invalidly cut of in the middle. We now simply use the length of the keyword to extract the actual property from the candidate. This should be faster anyway as it doesn't require another lookup of the pattern in the source candidate.

Related pull request: #136.
2015-08-13 12:37:30 +02:00
Oliver Gierke
6775d11c65 DATACMNS-749 - RepositoryFactorySupport now registers global ExposeInvocationInterceptor.
This frees RepositoryProxyPostProcessors from having to register the interceptor manually and thus prevents it from being registered multiple times.
2015-08-08 10:58:06 +02:00
Oliver Gierke
7b791d2825 DATACMNS-748 - Fixed Spring 4.2 detection in QueryExecutionConverters.
Replaced the unreliable usage of SpringVersion.getVersion() with a dedicated lookup for a type only present in Spring 4.2.
2015-08-08 10:51:09 +02:00
Oliver Gierke
1befa529e9 DATACMNS-746 - Improved JavaDoc of PersistentPropertyAccessor.
The JavaDoc of PersistentPropertyAccessor now explicitly hints to PersistentEntity.getPropertyAccessor(…) to make obvious how instances of it can be obtained.
2015-08-07 16:16:21 +02:00
Oliver Gierke
e722030fa5 DATACMNS-742 - After release cleanups. 2015-08-04 14:09:19 +02:00
Spring Buildmaster
9fcf2850eb DATACMNS-742 - Prepare next development iteration. 2015-08-04 03:58:20 -07:00
Spring Buildmaster
3013b63c2b DATACMNS-742 - Release version 1.11.0 RC1 (Gosling RC1). 2015-08-04 03:58:18 -07:00
Oliver Gierke
e3d62ea213 DATACMNS-742 - Prepare 1.11.0.RC1 (Gosling RC1). 2015-08-04 11:56:20 +02:00
Oliver Gierke
ec2e33f408 DATACMNS-742 - Updated changelog. 2015-08-04 11:56:20 +02:00
Oliver Gierke
be5e571a23 DATACMNS-742 - Upgraded to Spring HATEOAS 0.18.0. 2015-08-04 11:55:55 +02:00
Oliver Gierke
9afb5777e9 DATACMNS-744 - Removed strong dependency to Querydsl in web support.
Moved all Querydsl related bean definitions and customizations to a dedicated configuration class that only gets included if Querydsl is on the classpath.

Extracted a QuerydslActivator for use in Spring Data REST, which uses HateoasAwareSpringDataWebConfiguration via inheritance, not via @EnableSpringDataWebSupport.

Previously, we exposed a QuerydslBindingsFactory as bean method return type which breaks Spring bootstrap even if it's lazy due to its references to Querydsl types.

Related tickets: DATACMNS-669.
2015-08-04 09:05:58 +02:00
Oliver Gierke
b9125ee83d DATACMNS-742 - Upgraded test dependencies.
XmlUnit 1.3 -> 1.6
Groovy 1.8.6 -> 2.4.4
2015-08-03 15:34:47 +02:00
Oliver Gierke
8d2933f109 DATACMNS-669 - Introduced QuerydslBindingsFactory.
QuerydslBindingsFactory creates a completely build up and customized QuerydslBindings instance for a given QuerydslBinderCustomizer type and domain type.

This basically involves creating or obtaining an instance of the customizer with the following algorithm:

1. If an explicit customizer type is given and no BeanFactory is configured, we'll simply instantiate the configured type. This allows simple customizer implementations with a no-arg constructor.
2. If a BeanFactory is configured and a customizer type configured, we're trying to locate a bean of that type in the BeanFactory, falling back to creating an instance of the customizer through the BeanFactory if no existing bean definition can be found. This allows unique customizer bean definitions or complex prototype scoped customizer beans created on the fly.
3. If no customizer type is configured, we check whether the the repository of the domain type implements QuerydslBinderCustomizer and use it if so.

The extraction of that functionality allows that algorithm being used by Spring Data REST, although only step 3 is currently used there as no explicit customizer can currently be configured with Spring Data REST.
2015-08-03 15:34:47 +02:00
Oliver Gierke
9dc581df43 DATACMNS-738 - Removed deprecations in BeanWrapper.
Removed deprecated static factory method and made the class package protected.
2015-08-03 15:34:47 +02:00
Oliver Gierke
1a0e1aa5dd DATACMNS-740 - Updated changelog. 2015-07-28 16:40:53 +02:00
Oliver Gierke
85d96c71f2 DATACMNS-736 - Polishing.
Tweaked unit test to check for the correct wording. Polished DistanceFormatterUnitTests to actually run in a Maven build.

Original pull request: #134.
2015-07-21 16:52:48 +02:00
David Syer
a597549c4e DATACMNS-736 - Fixed validation error message in PointFormatter.
PointFormatter error message now states it's expecting comma separated values. Previously it erroneously reported expecting a semicolon.

Original pull request: #134.
2015-07-21 16:52:44 +02:00
Oliver Gierke
e3668c621d DATACMNS-734 - Improved Querydsl predicate binding using formatters.
We now default to a FormattingConversionService to make sure comma-separated values are transformed into arrays correctly. Also, we now build up dedicated TypeDescriptor instances for the property or field about to be bound to potentially pick up formatting annotations on those.
2015-07-21 15:47:09 +02:00
Christoph Strobl
11056be292 DATACMNS-734 - Allow comma separated list of values to be bound to an array.
We now convert comma separated values for an array property by splitting values and converting each of them. This allows to convert address.location=40.740337,-73.995146 to 

class Address {
  Double[] location;
}
2015-07-21 15:47:09 +02:00
Oliver Gierke
ac080bacf7 DATACMNS-733 - Made all references to DefaultParameterNameDiscoverer non-static.
To prevent classes from being garbage collected due to Class<?> references within DefaultParameterNameDiscoverer we no keep all ParameterNameDiscoverer instances in a non-static field.
2015-07-20 08:28:26 +02:00
Oliver Gierke
c5e5244162 DATACMNS-669 - Moved some types for better code structure.
Introduced dedicated querydsl.bindings package to contain all non-web projects to make sure domain types and repositories don't have to depend on types in a web package.

Updated Sonargraph architecture description accordingly.

Original pull request: #132.
2015-07-20 08:12:28 +02:00