DATACMNS-557 - Polishing.
Renamed CdiRepositoryConfigurationSource to CdiRepositoryConfiguration. Turned anonymous inner default implementation into dedicated enum to avoid repeated instantiation. Changed the CdiRepositoryBean to rather take a Bean instance of the custom implementation instead of the resolved object to make sure both instances (the custom implementation and the repository proxy) are instantiated at the same time. Fixed imports. Some early returns to avoid unnecessary nesting. Adapted architecture description to allow CDI module accessing the configuration module. Related pull request: #92.
This commit is contained in:
@@ -15,12 +15,6 @@
|
||||
*/
|
||||
package org.springframework.data.repository.cdi;
|
||||
|
||||
import javax.enterprise.context.NormalScope;
|
||||
import javax.enterprise.context.spi.Contextual;
|
||||
import javax.enterprise.context.spi.CreationalContext;
|
||||
import javax.enterprise.event.Observes;
|
||||
import javax.enterprise.inject.spi.AfterBeanDiscovery;
|
||||
import javax.enterprise.inject.spi.BeanManager;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -28,6 +22,14 @@ import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.enterprise.context.NormalScope;
|
||||
import javax.enterprise.context.spi.Contextual;
|
||||
import javax.enterprise.context.spi.CreationalContext;
|
||||
import javax.enterprise.event.Observes;
|
||||
import javax.enterprise.inject.spi.AfterBeanDiscovery;
|
||||
import javax.enterprise.inject.spi.Bean;
|
||||
import javax.enterprise.inject.spi.BeanManager;
|
||||
|
||||
import org.apache.webbeans.context.AbstractContext;
|
||||
import org.apache.webbeans.context.creational.BeanInstanceBag;
|
||||
import org.mockito.Mockito;
|
||||
@@ -40,15 +42,14 @@ import org.mockito.Mockito;
|
||||
*/
|
||||
public class DummyCdiExtension extends CdiRepositoryExtensionSupport {
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
|
||||
afterBeanDiscovery.addContext(new MyCustomScope());
|
||||
for (Entry<Class<?>, Set<Annotation>> type : getRepositoryTypes()) {
|
||||
|
||||
CdiRepositoryConfigurationSource configurationSource = lookupConfiguration(beanManager, type.getValue());
|
||||
Object customImplementation = findCustomImplementation(type.getKey(), beanManager, type.getValue());
|
||||
|
||||
DummyCdiRepositoryBean bean = new DummyCdiRepositoryBean(type.getValue(), type.getKey(), beanManager, customImplementation);
|
||||
Bean<?> customImplementation = getCustomImplementationBean(type.getKey(), beanManager, type.getValue());
|
||||
DummyCdiRepositoryBean bean = new DummyCdiRepositoryBean(type.getValue(), type.getKey(), beanManager,
|
||||
customImplementation);
|
||||
registerBean(bean);
|
||||
afterBeanDiscovery.addBean(bean);
|
||||
}
|
||||
@@ -60,7 +61,8 @@ public class DummyCdiExtension extends CdiRepositoryExtensionSupport {
|
||||
super(qualifiers, repositoryType, beanManager);
|
||||
}
|
||||
|
||||
DummyCdiRepositoryBean(Set<Annotation> qualifiers, Class<T> repositoryType, BeanManager beanManager, Object customImplementation) {
|
||||
DummyCdiRepositoryBean(Set<Annotation> qualifiers, Class<T> repositoryType, BeanManager beanManager,
|
||||
Bean<?> customImplementation) {
|
||||
super(qualifiers, repositoryType, beanManager, customImplementation);
|
||||
}
|
||||
|
||||
@@ -80,6 +82,7 @@ public class DummyCdiExtension extends CdiRepositoryExtensionSupport {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
static class MyCustomScope extends AbstractContext {
|
||||
|
||||
MyCustomScope() {
|
||||
|
||||
Reference in New Issue
Block a user