Commit Graph

16 Commits

Author SHA1 Message Date
Christoph Strobl
d6ee87ace5 DATAKV-187 - Remove restriction of ID type to be Serializable.
Original pull request: #25.
2017-07-21 15:31:47 +02:00
Mark Paluch
12301efd94 DATAKV-169 - Polishing.
Fix typo in test method names. Some minor language level cleanups and removal of deprecated API usage.

Original pull request: #23.
2017-04-18 09:39:14 +02:00
Christoph Strobl
551b27deb2 DATAKV-112 - Make caching repository queries more explicit.
We introduced an explicit CachingKeyValuePartTreeQuery and allow setting the gernal repository query stategy via QueryCreatorType.
By default queries will not be cached.

Original pull request: #18.
2016-03-10 17:08:18 +01:00
Oliver Gierke
e3733ab9b5 DATAKV-105 - Polishing.
Moved KeySpaceResolver interfaces into mapping package. Let defaulting happen in BasicKeyValuePersistentEntity so that ClassNameKeySpaceResolver can be made package protected.

FowardingCloseableIterator is now generically typed and not bound to Map.Entry.

Original pull request: #11.
2015-05-19 17:36:00 +02:00
Christoph Strobl
f19a6c0faf DATAKV-105 - Polish implementation after recent addition of features.
Remove obsolete method hasKeyspace() from KeyValueAdapter. Transition from List to Iterable for find methods in KeyValueTemplate.

We now offer a plug able KeySpace resolution by providing a KeySpaceResolver via the KeyValueMappingContext. By default an AnnotationBasedKeySpaceResolver will be used to examine the type for @KeySpace. In case of non explicit keySpace we fall back to using the class' fully-qualified name as the default key space.

Key space resolution is now fixed on resolving @KeySpace on a given PersistentEntity. In case no annotation key space can be found we by default fall back to a class name based key space. It is possible to configure the fallback via the MappingContext.

Refactored names & visibility of types required for tests.
Removed shortcut for returning results not having an explicit key space, since we now can no longer rely on the type name strategy dividing non explicit types into separate key spaces.

Original pull request: #11.
2015-05-19 17:35:56 +02:00
Christoph Strobl
02759f58ea DATAKV-99 - Polishing.
Removed dedicated Entry<K,V> interface, since Map.Entry<K,V> is already sufficient. Favoured CloseableIterator over KeyValueIterator since it offers no additional functionality but less generic parameter clutter.
Added missing JavaDoc.
2015-05-13 12:53:44 +02:00
Christoph Strobl
952a901164 DATAKV-101 - Favor Iterable over Collection types for KeyValueOperations.
Change return types for Adapter and Operations from Collection types to Iterable. Added count(keyspace) to KeyValueAdapter.

Original pull request: #8.
2015-05-11 11:39:56 +02:00
Christoph Strobl
16dc4b5e7d DATAKV-99 - Add KeyValueIterator.
We now offer the possibility to iterate through available key/value pairs via a KeyValueIterator. The default implementation for java.util.Map based Adapters is a ForwardingKeyValueIterator delegating to the underlying entrySet iterator.

Original pull request: #7.
2015-05-11 11:26:31 +02:00
Christoph Strobl
07b3a1547c DATAKV-91 - Add support for sending application events.
We now allow definition of event types to be published via the application context.

Original pull request: #5.
2015-05-05 16:09:31 +02:00
Christoph Strobl
a8a37d4a32 DATAKV-98 - Adapt to changes in Spring Data Commons.
Tweaked method signatures in KeyValueRepositoryFactory after some signature changes in Spring Data Commons. Use newly introduced getTragetRepositoryViaReflection(…) to obtain the repository instance via the super class.

Added repositoryBaseClass() attribute to @EnableMapRepositories.

Related tickets: DATACMNS-542.
2015-05-05 12:20:30 +02:00
Christoph Strobl
b8de114457 DATAKV-94 - Remove @since attributes from left over from sd-commons. 2014-12-19 08:36:24 +01:00
Oliver Gierke
bc88cb48ac DATAKV-87 - Polished implementation of configurability of Map type on @EnableMapRepositories.
Removed the MapKeyValueAdapterFactory in favor of using instantiating MapKeyValueAdapters directly. Reverted additional hook in KeyValueRepositoryConfigurationExtension as we now rather use inner bean definitions.

Original pull request: #2.
2014-12-05 19:38:13 +01:00
Christoph Strobl
b16a454c6c DATAKV-87 - Allow definition of target Map type via @EnableMapRepositories.
We added the configuration attribute ‘mapType’ to @EnableMapRepositories which allows to change defaulting of the Map structure used by the MapKeyValueAdapter. To do so we now register a MapKeyValueAdapterFactory and delegate creation of the adapter to it. This also allows usage of interface types such as plain java.util.Map which will initialize the adapter with the approximated type resolved via CollectionFactory.

Original pull request #2.
2014-12-05 19:37:55 +01:00
Oliver Gierke
5a14d7bc12 DATAVK-86 - Improved auto-template-registration infrastructure.
KeyValueRepositoryConfigurationExtension now need to report the default value for the KeyValueTemplate reference. We now only register a default template if the reference has not been customized. Changed the default reference value for Maps to mapKeyValueTemplate to allow individual defaults per store.

Removed obsolete RepositoryNamespaceHandler.

Original pull request: #1.
2014-12-01 16:35:28 +01:00
Christoph Strobl
ff1338a99c DATAKV-86 - Move configuration infrastructure for Map-based repositories.
We removed the EnableKeyValueRepositories in favor of store specific implementations. In this case EnableMapRepositories.

The configuration now defaults a KeyValueTemplate with a MapKeyValueAdapter but allows overriding the template in a bean named keyValueTemplate.
2014-12-01 16:13:01 +01:00
Oliver Gierke
42a13a7403 DATAKV-85 - Ported key-value infrastructure from Spring Data Commons. 2014-11-27 14:19:30 +01:00