Commit Graph

291 Commits

Author SHA1 Message Date
Oliver Gierke
a2e5cc439e DATACMNS-141 - Added Before and After as query parser keywords.
The query parser now supports After, IsAfter, Before and IsBefore as keywords. Added the Is* prefix to suitable keywords as well and refactored unit tests quite a bit to ease adding new keyword tests.
2012-04-09 17:39:16 +02:00
Oliver Gierke
b811fa3ea8 DATACMNS-124 - Added missing package-info.java files.
Polished JavaDocs. Polished MappingContextEvent and added deprecations to it to be cleaned up for 1.3.GA.
2012-04-04 17:39:30 +02:00
Oliver Gierke
5c248983d2 DATACMNS-120 - Added equals(…) and hashCode() methods to Parameter. 2012-04-03 10:32:52 +02:00
Oliver Gierke
cb375b250f DATACMNS-142 - Polished API of UserCredentials.
Added constant to represent no credentials. Removed empty constructor. Added methods to ask whether username or password is configured.
2012-04-02 15:24:09 +02:00
Oliver Gierke
b4d21008e3 DATACMNS-111 - Added query parser keywords StartingWith, EndingWith and Containing. 2012-03-21 16:41:51 +01:00
Oliver Gierke
8e52d75ca9 DATACMNS-135 - Added accessor for the underlying content to Revisions. 2012-03-21 12:38:12 +01:00
Oliver Gierke
9e44d587f8 DATACMNS-136 - Made some Spring dependencies optional in template.mf.
We have declared some Spring dependencies optional in the pom.xml file. I've changed the template.mf to declare the package dependencies of these artifacts as optional as well.
2012-03-20 11:45:21 +01:00
Oliver Gierke
f8d5e310a7 DATACMNS-135 - Added basic infrastructure to support historiography of data.
Added interfaces for common abstractions needed to implement historiography. A Revision is an entity associated with some RevisionMetadata. That in turn consists of a revision number and date at least and is backed by a implementation specific delegate. The Revisions wrapper class allows accessing the latest revision from a list of Revision instances no matter what order they are in. A RevisionRepository allows access the revision an entity was changed in the last time, access all Revisions of an entity as well as paged access to it.
2012-03-20 11:33:02 +01:00
Oliver Gierke
2f39b74cbc DATACMNS-133 - Fixed bean lookup in DomainClassConverter.
Previously DomainClassConverter looked up the RepositoryInformation instances from the entire BeanFactory hierarchy but only looked the actual repository up from the current BeanFactory and not the entire hierarchy. Fixed and added test case.
2012-03-20 11:03:51 +01:00
Oliver Gierke
c2fd1e255a DATACMNS-134 - Changed instantation infrastructure to be able to instantiate member types.
In case a member class is not static the compiler will either create a constructor with a parameter of the enclosing type or alter the existing ones to add a first parameter of that type. Thus when instantiating the class we need to detect that case and hand in the parent object as parameter value.

Updated PreferredConstructor and Parameter abstractions to allow detecting this case as well as the ParameterValueProvider abstraction to capture the parent object.
2012-03-09 15:06:06 +01:00
Oliver Gierke
9005e1903d DATACMNS-133 - Improved DomainClassConverter implementation.
DomainClassConverter now registers itself with the ConversionService handed into it. Added integration tests for lookup of RepositoryFactoryInformation.
2012-02-28 19:03:58 +01:00
Spring Buildmaster
3903fa7281 Next development version. 2012-02-07 11:23:22 -08:00
Spring Buildmaster
257d8af077 Release version 1.3.0.RELEASE. 2012-02-07 11:23:19 -08:00
Oliver Gierke
bfd306dba7 DATACMNS-131 - Formatting. 2012-02-03 12:07:56 +01:00
Oliver Gierke
4fcb4a7649 DATACMNS-131 - Polished pom.xml. 2012-02-03 12:07:41 +01:00
Oliver Gierke
01898131a6 DATACMNS-129 - Introduced CrudRepository.findAll(Iterable<ID> ids). 2012-02-02 18:29:30 +01:00
Oliver Gierke
b1f2eac2b9 DATACMNS-128 - Introduced ParameterAccessor.hasBindableNullValue(). 2012-02-02 18:29:30 +01:00
Oliver Gierke
15c3b74c3f DATACMNS-127 - Added DelegatingEntityInformation. 2012-02-02 18:29:23 +01:00
Oliver Gierke
e150264f3e Polished namespace schema. 2012-01-31 20:06:26 +01:00
Oliver Gierke
ef65df279f DATACMNS-125 - QueryExecutorMethodInterceptor now correctly rejects repository interfaces with query methods if no QueryLookupStrategy defined. 2012-01-24 10:23:45 +01:00
Oliver Gierke
c683d28add DATACMNS-123 - Deprecated types of persistence package. 2012-01-24 10:02:40 +01:00
Oliver Gierke
35697d639a DATACMNS-122 - Introduced further abstractions to improve entity instantiation.
PersistentEntity now has a isConstructorArgument(…) allowing to find out whether a PersistentProperty is referred to from a constructor argument. The PreferredConstructor abstraction now keeps track of the PersistentEntity it is built for and thus allows finding out whether a constructor Parameter maps a PersistentProperty.

Removed bean creation responsibility from BeanWrapper and introduced EntityInstantiator abstraction to allow the entity instantiation mechanism be short circuited via custom implementations. The reflection based implementation from BeanWrapper is now residing in ReflectionEntityInstantiator.
2012-01-24 10:00:27 +01:00
Oliver Gierke
59d8852921 DATACMNS-119 - Order now implements Serializable. 2012-01-11 13:37:31 +01:00
Oliver Gierke
8c360af381 DATACMNS-118 - Prepare 1.3.0 development branch. 2011-12-22 20:24:42 +01:00
Oliver Gierke
5213eace28 DATACMNS-118 - Preparations for 1.2.0 release.
Updated changelog and version. Removed milestone repository and use Artifactory repository now.
2011-12-22 20:17:11 +01:00
Oliver Gierke
0053e335b5 DATACMNS-104 - Upgraded to Spring 3.0.7.
Removed GenericTypeResolver copy as all necessary local changes have been released with Spring 3.0.7.
2011-12-22 20:08:44 +01:00
Oliver Gierke
48d4c05a9d DATACMNS-114 - Improved detection of custom implementations for repositories.
Fixed edge case scenario where the lookup for repository implementation classes picked up multiple classes if they ended with the same suffix (e.g. FooRepoImpl, AnotherFooRepoImpl). We're now expecting the classname to be an exact match but still allow nested packages. Changed the parser to reject multiple found implementation classes strictly now to at least avoid undiscoverable errors in case an ambiguity is popping up.
2011-12-20 12:29:38 +01:00
Oliver Gierke
89410efb7a DATACMNS-112, DATACMNS-109 - Upgraded to Querydsl 2.3.0. 2011-12-19 18:03:08 +01:00
Dirk Mahler
eebc822dff DATACMNS-110 - Added support for CDI integration for repositories.
Added custom CDI extension to use repositories in a CDI environment. Base class picks up all Spring Data repository interfaces and allows working with qualifiers to bind beans to be created to qualifiers.
2011-12-19 16:29:46 +01:00
Oliver Gierke
0334a2dd78 DATACMNS-113 - Introduced annotations to resolve custom conversion disambiguities.
Introduced @ReadingConverter and @WritingConverter to allow to resolve disambiguates that might arise when implementing custom Converters.

Suppose we implemented a Converter<String, Class> and the store is able to handle both String and Class as native types. In this case there's no way to determine whether the converter shall actually be used to convert String properties into Class instances when writing or to create Class instances from Strings when reading. Thus the @ReadingConverter comes in handy in this case to tell the infrastructure to consider the converter for reading only.
2011-12-16 14:11:08 +01:00
Mark Pollack
a0c91672ae prepare for Spring Data Commons 1.2.0.BUILD-SNAPSHOT 2011-12-06 17:37:12 -05:00
Mark Pollack
a15186013f prepare for Spring Data Commons 1.2.0.RC1 2011-12-06 17:07:08 -05:00
Oliver Gierke
188e396268 DATACMNS-107 - Allow IsTrue/IsFalse as keywords for True/False. 2011-12-06 17:02:54 +01:00
Oliver Gierke
ca4d2f504a DATACMNS-108 - Fixed ClassCastException in RepositoryFactorySupport. 2011-12-05 18:58:49 +01:00
Oliver Gierke
b3c8cb5620 DATACMNS-88 - Map value types are now resolve correctly for generic types extending Map.
Extracted base ParentTypeAwareTypeInformation class as base class for TypeInformations that need to consider the parent's type variable map.
2011-12-05 16:56:29 +01:00
Oliver Gierke
498f40b69f DATACMNS-107 - Added support for True and False as query method keywords. 2011-12-05 12:52:52 +01:00
Oliver Gierke
f7b796dcee DATACMNS-94 - Added Regex and Exists keywords for query parser. 2011-12-05 12:52:21 +01:00
Oliver Gierke
e6431fccc7 DATACMNS-106 - Introduced QueryMethod.getReturnedObjectType(). 2011-12-02 23:31:07 +01:00
Oliver Gierke
4a8d7a6f7c DATACMNS-39 - Formatting. 2011-12-02 15:34:23 +01:00
Oliver Gierke
e195abc5c9 DATACMNS-39 - TypeDiscoverer handles WildcardTypes now.
We now resolve the first bound from wildcard types now.
2011-12-02 15:34:08 +01:00
Oliver Gierke
f8b37b8501 DATACMNS-91 - Clarify contract for CrudRepository.
Added JavaDoc to document expected exceptions for null parameters.
2011-12-02 13:31:02 +01:00
Oliver Gierke
0b04251bbe DATACMNS-92 - PersistentEntities are not held in cache if verify() fails.
Documented verify() to throw a MappingException in case verification fails. Let this exception flying cause the PersistentEntity already added to the cache be removed from it in turn.

Fixed execution of integration tests and tests in classes starting with Abstract* along the way. Upgraded to Mockito 1.8.5.
2011-12-02 12:54:51 +01:00
Oliver Gierke
a5a925e37a DATACMNS-77 - Introduced caching inside ClassTypeInformation.
ClassTypeInformation now holds a cache for Class<?> to TypeInformation<?> mappings. It also exposes constants for Object, Collection, Set, List and Map TypeInformations.
2011-12-02 11:29:11 +01:00
Oliver Gierke
a4ac30d52b DATACMNS-108 - BeanWrapper now handles exceptions.
Removed explicit declaration of throwing IllegalAccessException and InvocationTargetException.
2011-12-02 10:08:10 +01:00
Oliver Gierke
8286bffb89 DATACMNS-101 - Made AbstractMappingContext more flexible for extension.
The former getNestedTypeToAdd(…) method in AbstractMappingContext is now located in PersistentProperty to allow easier customization of the implementation. We also not only support returning one type from it but rather an Iterable of them to prepare handling of custom types implementing Collection interfaces.
2011-11-28 15:01:54 +01:00
Oliver Gierke
f0735392d9 DATACMNS-103 - Create hybrid Spring 3.0.6 / 3.1 build.
Introduced version range for Spring dependency of [3.0.6.RELEASE, 3.1.0.RC1]. This causes Maven to scan the metadata in the configured repositories to find the latest version up to Spring 3.1.0.RC1. For users having the Spring Milestone repo configured this will resolve against 3.1.0.RC1 then. All others will get the latest one from Maven Central which is 3.0.6. To let Bundlor still use 3.0.6 I've created a org.springframework.version.30 property and let template.mf use that.
2011-11-28 12:10:51 +01:00
Oliver Gierke
1fb6e70c2e DATACMNS-100 - Removed Number from the Set of simple types.
Removing Number from SimpleTypeHolder's default Set of types results in
Number sub-types not explicitly listed not being considered as simple
by default.
2011-11-24 15:15:01 +01:00
Oliver Gierke
966b9e1da9 Removed unused import. 2011-11-23 12:40:06 +01:00
Oliver Gierke
1468ba5735 DATACMNS-99 - SimpleTypeHolder considers complex Enums as simple now.
Fixed SimpleTypeHolder.isSimpleType(Class<?> type) for calls where the Class object handed in is derived from an Enum that implements an abstract method. These Class objects return false for a call to isEnum(). So an ….isAssignableFrom(…) check is safer.
2011-11-23 11:51:25 +01:00
Oliver Gierke
904578d034 DATACMNS-97 - Added PartTree.getParts(Type type).
Added method to allow iterating over Parts of a given type.
2011-11-21 19:00:36 +01:00