diff --git a/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryBean.java b/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryBean.java index 40d079a22..ac3b193d8 100644 --- a/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryBean.java +++ b/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryBean.java @@ -55,18 +55,20 @@ public class RedisRepositoryBean extends CdiRepositoryBean { Class repositoryType, BeanManager beanManager, @Nullable CustomRepositoryImplementationDetector detector) { super(qualifiers, repositoryType, beanManager, Optional.ofNullable(detector)); + Assert.notNull(keyValueTemplate, "Bean holding keyvalue template must not be null!"); this.keyValueTemplate = keyValueTemplate; } - protected T create(CreationalContext creationalContext, Class repositoryType, - Optional customImplementation) { + /* + * (non-Javadoc) + * @see org.springframework.data.repository.cdi.CdiRepositoryBean#create(javax.enterprise.context.spi.CreationalContext, java.lang.Class) + */ + @Override + protected T create(CreationalContext creationalContext, Class repositoryType) { KeyValueOperations keyValueTemplate = getDependencyInstance(this.keyValueTemplate, KeyValueOperations.class); - RedisRepositoryFactory factory = new RedisRepositoryFactory(keyValueTemplate, RedisQueryCreator.class); - return customImplementation.map(o -> factory.getRepository(repositoryType, o)) - .orElseGet(() -> factory.getRepository(repositoryType)); + return create(() -> new RedisRepositoryFactory(keyValueTemplate, RedisQueryCreator.class), repositoryType); } - } diff --git a/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepositoryCustom.java b/src/test/java/org/springframework/data/redis/repository/cdi/PersonFragment.java similarity index 95% rename from src/test/java/org/springframework/data/redis/repository/cdi/PersonRepositoryCustom.java rename to src/test/java/org/springframework/data/redis/repository/cdi/PersonFragment.java index d0dca8cb9..4ed7a71b9 100644 --- a/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepositoryCustom.java +++ b/src/test/java/org/springframework/data/redis/repository/cdi/PersonFragment.java @@ -13,13 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.redis.repository.cdi; /** * @author Mark Paluch */ -interface PersonRepositoryCustom { +interface PersonFragment { int returnOne(); } diff --git a/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepositoryImpl.java b/src/test/java/org/springframework/data/redis/repository/cdi/PersonFragmentImpl.java similarity index 91% rename from src/test/java/org/springframework/data/redis/repository/cdi/PersonRepositoryImpl.java rename to src/test/java/org/springframework/data/redis/repository/cdi/PersonFragmentImpl.java index 702b729a3..4c2d478e2 100644 --- a/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepositoryImpl.java +++ b/src/test/java/org/springframework/data/redis/repository/cdi/PersonFragmentImpl.java @@ -13,13 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.redis.repository.cdi; /** * @author Mark Paluch */ -public class PersonRepositoryImpl implements PersonRepositoryCustom { +public class PersonFragmentImpl implements PersonFragment { @Override public int returnOne() { diff --git a/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepository.java b/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepository.java index 08d62eb92..735bd85c5 100644 --- a/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepository.java +++ b/src/test/java/org/springframework/data/redis/repository/cdi/PersonRepository.java @@ -24,7 +24,7 @@ import org.springframework.data.repository.cdi.Eager; * @author Mark Paluch */ @Eager -public interface PersonRepository extends CrudRepository, PersonRepositoryCustom { +public interface PersonRepository extends CrudRepository, PersonFragment { List findAll();