Skip to content
This repository was archived by the owner on Aug 13, 2020. It is now read-only.

Commit 1d5b3e9

Browse files
author
matt-rich
authored
Merge pull request #413 from CJSCommonPlatform/improved-scanner-logging
Improve logging in bean scanning
2 parents 74fb551 + 05f4297 commit 1d5b3e9

File tree

17 files changed

+60
-53
lines changed

17 files changed

+60
-53
lines changed

components/event/event-listener/src/test/java/uk/gov/justice/services/components/event/listener/interceptors/it/EventBufferAndFilterChainIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,14 @@
3030
import uk.gov.justice.services.core.annotation.ServiceComponent;
3131
import uk.gov.justice.services.core.cdi.LoggerProducer;
3232
import uk.gov.justice.services.core.dispatcher.DispatcherCache;
33-
import uk.gov.justice.services.core.dispatcher.DispatcherFactory;
3433
import uk.gov.justice.services.core.dispatcher.EmptySystemUserProvider;
3534
import uk.gov.justice.services.core.dispatcher.ServiceComponentObserver;
3635
import uk.gov.justice.services.core.dispatcher.SystemUserUtil;
3736
import uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandlerProducer;
3837
import uk.gov.justice.services.core.enveloper.Enveloper;
3938
import uk.gov.justice.services.event.buffer.api.AbstractEventFilter;
4039
import uk.gov.justice.services.event.buffer.api.AllowAllEventFilter;
41-
import uk.gov.justice.services.core.extension.AnnotationScanner;
40+
import uk.gov.justice.services.core.extension.ServiceComponentScanner;
4241
import uk.gov.justice.services.core.extension.BeanInstantiater;
4342
import uk.gov.justice.services.core.interceptor.Interceptor;
4443
import uk.gov.justice.services.core.interceptor.InterceptorCache;
@@ -108,7 +107,7 @@ public class EventBufferAndFilterChainIT {
108107
@Classes(cdi = true, value = {
109108
AbcEventHandler.class,
110109
DefEventHandler.class,
111-
AnnotationScanner.class,
110+
ServiceComponentScanner.class,
112111
RequesterProducer.class,
113112
ServiceComponentObserver.class,
114113

components/event/event-listener/src/test/java/uk/gov/justice/services/components/event/listener/interceptors/it/EventBufferIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@
2929
import uk.gov.justice.services.core.annotation.ServiceComponent;
3030
import uk.gov.justice.services.core.cdi.LoggerProducer;
3131
import uk.gov.justice.services.core.dispatcher.DispatcherCache;
32-
import uk.gov.justice.services.core.dispatcher.DispatcherFactory;
3332
import uk.gov.justice.services.core.dispatcher.EmptySystemUserProvider;
3433
import uk.gov.justice.services.core.dispatcher.ServiceComponentObserver;
3534
import uk.gov.justice.services.core.dispatcher.SystemUserUtil;
3635
import uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandlerProducer;
3736
import uk.gov.justice.services.core.enveloper.Enveloper;
38-
import uk.gov.justice.services.core.extension.AnnotationScanner;
37+
import uk.gov.justice.services.core.extension.ServiceComponentScanner;
3938
import uk.gov.justice.services.core.extension.BeanInstantiater;
4039
import uk.gov.justice.services.core.interceptor.Interceptor;
4140
import uk.gov.justice.services.core.interceptor.InterceptorCache;
@@ -108,7 +107,7 @@ public class EventBufferIT {
108107
@Module
109108
@Classes(cdi = true, value = {
110109
AbcEventHandler.class,
111-
AnnotationScanner.class,
110+
ServiceComponentScanner.class,
112111
RequesterProducer.class,
113112
ServiceComponentObserver.class,
114113

components/event/event-listener/src/test/java/uk/gov/justice/services/components/event/listener/interceptors/it/EventFilterIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import uk.gov.justice.services.core.dispatcher.SystemUserUtil;
3333
import uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandlerProducer;
3434
import uk.gov.justice.services.core.enveloper.Enveloper;
35-
import uk.gov.justice.services.core.extension.AnnotationScanner;
35+
import uk.gov.justice.services.core.extension.ServiceComponentScanner;
3636
import uk.gov.justice.services.core.extension.BeanInstantiater;
3737
import uk.gov.justice.services.core.interceptor.Interceptor;
3838
import uk.gov.justice.services.core.interceptor.InterceptorCache;
@@ -96,7 +96,7 @@ public class EventFilterIT {
9696
@Classes(cdi = true, value = {
9797
AbcEventHandler.class,
9898
DefEventHandler.class,
99-
AnnotationScanner.class,
99+
ServiceComponentScanner.class,
100100
RequesterProducer.class,
101101
ServiceComponentObserver.class,
102102

core/src/main/java/uk/gov/justice/services/core/dispatcher/ServiceComponentObserver.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
package uk.gov.justice.services.core.dispatcher;
22

3+
import static org.slf4j.LoggerFactory.getLogger;
4+
35
import uk.gov.justice.services.core.extension.BeanInstantiater;
46
import uk.gov.justice.services.core.extension.ServiceComponentFoundEvent;
7+
import uk.gov.justice.services.core.extension.ServiceComponentScanner;
58

69
import javax.enterprise.context.ApplicationScoped;
710
import javax.enterprise.event.Observes;
811
import javax.inject.Inject;
912

13+
import org.slf4j.Logger;
14+
1015
@ApplicationScoped
1116
public class ServiceComponentObserver {
1217

18+
private static final Logger LOGGER = getLogger(ServiceComponentObserver.class);
19+
1320
@Inject
1421
BeanInstantiater beanInstantiater;
1522

@@ -23,6 +30,11 @@ public class ServiceComponentObserver {
2330
* @param event the {@link ServiceComponentFoundEvent} to register
2431
*/
2532
void register(@Observes final ServiceComponentFoundEvent event) {
33+
LOGGER.info("Registering {} handlers in class {} for component {}",
34+
event.getLocation(),
35+
event.getHandlerBean().getBeanClass().getSimpleName(),
36+
event.getComponentName());
37+
2638
dispatcherCache.dispatcherFor(event)
2739
.register(beanInstantiater.instantiate(event.getHandlerBean()));
2840
}

core/src/main/java/uk/gov/justice/services/core/extension/AnnotationScanner.java renamed to core/src/main/java/uk/gov/justice/services/core/extension/ServiceComponentScanner.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
/**
3535
* Scans all beans and processes framework specific annotations.
3636
*/
37-
public class AnnotationScanner implements Extension {
37+
public class ServiceComponentScanner implements Extension {
3838

39-
private static final Logger LOGGER = getLogger(HandlerRegistry.class);
39+
private static final Logger LOGGER = getLogger(ServiceComponentScanner.class);
4040

4141
private List<Object> events = synchronizedList(new ArrayList<>());
4242

@@ -81,7 +81,7 @@ private boolean isServiceComponent(final Class<?> beanClass) {
8181
*/
8282
private void processServiceComponentsForEvents(final Bean<?> bean) {
8383
final Class<?> clazz = bean.getBeanClass();
84-
LOGGER.info("Identified ServiceComponent {}", clazz.getSimpleName());
84+
LOGGER.info("Found class {} as part of component {}", clazz.getSimpleName(), componentFrom(clazz));
8585

8686
events.add(new ServiceComponentFoundEvent(componentFrom(clazz), bean, componentLocationFrom(clazz)));
8787
}

core/src/main/java/uk/gov/justice/services/core/interceptor/InterceptorChainObserver.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ public class InterceptorChainObserver implements Extension {
2929
@SuppressWarnings({"unused"})
3030
void afterDeploymentValidation(@Observes final AfterDeploymentValidation event, final BeanManager beanManager) {
3131
beanManager.getBeans(InterceptorChainProvider.class, AnyLiteral.create()).stream()
32-
.peek(this::logInteceptorChainProvider)
32+
.peek(this::logInterceptorChainProvider)
3333
.forEach(interceptorChainProviderBeans::add);
3434

3535
beanManager.getBeans(Interceptor.class, AnyLiteral.create()).stream()
36-
.peek(this::logInteceptor)
36+
.peek(this::logInterceptor)
3737
.forEach(interceptorBeans::add);
3838
}
3939

@@ -45,11 +45,11 @@ List<Bean<?>> getInterceptorBeans() {
4545
return interceptorBeans;
4646
}
4747

48-
private void logInteceptorChainProvider(final Bean<?> bean) {
49-
LOGGER.info("Identified Interceptor Chain Provider {}", bean.getBeanClass().getSimpleName());
48+
private void logInterceptorChainProvider(final Bean<?> bean) {
49+
LOGGER.info("Found interceptor chain provider {}", bean.getBeanClass().getSimpleName());
5050
}
5151

52-
private void logInteceptor(final Bean<?> bean) {
53-
LOGGER.info("Identified Dispatcher Interceptor {}", bean.getBeanClass().getSimpleName());
52+
private void logInterceptor(final Bean<?> bean) {
53+
LOGGER.info("Found interceptor {}", bean.getBeanClass().getSimpleName());
5454
}
55-
}
55+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
uk.gov.justice.services.core.extension.AnnotationScanner
2-
uk.gov.justice.services.core.interceptor.InterceptorChainObserver
1+
uk.gov.justice.services.core.extension.ServiceComponentScanner
2+
uk.gov.justice.services.core.interceptor.InterceptorChainObserver

core/src/test/java/uk/gov/justice/services/core/dispatcher/ServiceComponentObserverTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package uk.gov.justice.services.core.dispatcher;
22

3+
import static org.mockito.Mockito.doReturn;
34
import static org.mockito.Mockito.verify;
45
import static org.mockito.Mockito.when;
56
import static uk.gov.justice.services.core.annotation.ServiceComponentLocation.LOCAL;
@@ -40,11 +41,12 @@ public class ServiceComponentObserverTest {
4041
public void shouldRegisterHandler() throws Exception {
4142
final ServiceComponentFoundEvent foundEvent = new ServiceComponentFoundEvent("COMMAND_API", bean, LOCAL);
4243

44+
doReturn(Object.class).when(bean).getBeanClass();
4345
when(dispatcherCache.dispatcherFor(foundEvent)).thenReturn(dispatcher);
4446
when(beanInstantiater.instantiate(bean)).thenReturn(handler);
4547

4648
serviceComponentObserver.register(foundEvent);
4749

4850
verify(dispatcher).register(handler);
4951
}
50-
}
52+
}

core/src/test/java/uk/gov/justice/services/core/extension/AnnotationScannerTest.java renamed to core/src/test/java/uk/gov/justice/services/core/extension/ServiceComponentScannerTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import org.mockito.runners.MockitoJUnitRunner;
4444

4545
@RunWith(MockitoJUnitRunner.class)
46-
public class AnnotationScannerTest {
46+
public class ServiceComponentScannerTest {
4747

4848
private static final String TEST_EVENT_NAME = "Test-Event";
4949

@@ -58,11 +58,11 @@ public class AnnotationScannerTest {
5858
@Mock
5959
private BeanManager beanManager;
6060

61-
private AnnotationScanner annotationScanner;
61+
private ServiceComponentScanner serviceComponentScanner;
6262

6363
@Before
6464
public void setup() {
65-
annotationScanner = new AnnotationScanner();
65+
serviceComponentScanner = new ServiceComponentScanner();
6666
}
6767

6868
@Test
@@ -109,7 +109,7 @@ public void shouldNotFireAnyEventWithNoHandler() throws Exception {
109109

110110
mockBeanManagerGetBeansWith(TestBean.of(Object.class));
111111

112-
annotationScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
112+
serviceComponentScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
113113

114114
verify(beanManager, never()).fireEvent(any());
115115
}
@@ -121,7 +121,7 @@ public void shouldFireEventForDirectHandlerIfCorrespondingDirectAdapterExists()
121121
doReturn(new HashSet<Bean<Object>>(asList(TestBean.of(TestDirectQueryViewAdapter.class), TestBean.of(TestDirectQueryApiHandler.class)))).when(beanManager).getBeans(any(), any());
122122
doReturn(new HashSet<Bean<Object>>(asList(TestBean.of(TestDirectQueryViewAdapter.class)))).when(beanManager).getBeans(SynchronousDirectAdapter.class);
123123

124-
annotationScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
124+
serviceComponentScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
125125

126126
verify(beanManager).fireEvent(captor.capture());
127127
assertThat(captor.getValue(), instanceOf(ServiceComponentFoundEvent.class));
@@ -139,7 +139,7 @@ public void shouldNotFireEventForDirectComponentIfCorrespondingDirectAdapterDoes
139139
doReturn(new HashSet<Bean<Object>>(asList(TestBean.of(OtherTestDirectAdapter.class))))
140140
.when(beanManager).getBeans(SynchronousDirectAdapter.class);
141141

142-
annotationScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
142+
serviceComponentScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
143143

144144
verify(beanManager, never()).fireEvent(any());
145145
}
@@ -161,7 +161,7 @@ private void verifyIfServiceComponentFoundEventFiredWith(final Bean<Object> hand
161161
final ArgumentCaptor<ServiceComponentFoundEvent> captor = ArgumentCaptor.forClass(ServiceComponentFoundEvent.class);
162162
mockBeanManagerGetBeansWith(handler);
163163

164-
annotationScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
164+
serviceComponentScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
165165

166166
verify(beanManager).fireEvent(captor.capture());
167167
assertThat(captor.getValue(), instanceOf(ServiceComponentFoundEvent.class));
@@ -172,7 +172,7 @@ private void verifyIfRemoteServiceComponentFoundEventFiredWith(final Bean<Object
172172
final ArgumentCaptor<ServiceComponentFoundEvent> captor = ArgumentCaptor.forClass(ServiceComponentFoundEvent.class);
173173
mockBeanManagerGetBeansWith(handler);
174174

175-
annotationScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
175+
serviceComponentScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
176176

177177
verify(beanManager).fireEvent(captor.capture());
178178
assertThat(captor.getAllValues(), hasSize(1));
@@ -185,8 +185,8 @@ private void verifyIfEventFoundEventFiredWith(final ProcessAnnotatedType process
185185
final ArgumentCaptor<EventFoundEvent> captor = ArgumentCaptor.forClass(EventFoundEvent.class);
186186
mockProcessAnnotatedType();
187187

188-
annotationScanner.processAnnotatedType(processAnnotatedType);
189-
annotationScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
188+
serviceComponentScanner.processAnnotatedType(processAnnotatedType);
189+
serviceComponentScanner.afterDeploymentValidation(NOT_USED_AFTER_DEPLOYMENT_VALIDATION, beanManager);
190190

191191
verify(beanManager).fireEvent(captor.capture());
192192
assertThat(captor.getValue(), instanceOf(EventFoundEvent.class));

core/src/test/java/uk/gov/justice/services/core/it/AllEventsHandlerIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,12 @@
2424
import uk.gov.justice.services.core.annotation.ServiceComponent;
2525
import uk.gov.justice.services.core.cdi.LoggerProducer;
2626
import uk.gov.justice.services.core.dispatcher.DispatcherCache;
27-
import uk.gov.justice.services.core.dispatcher.DispatcherFactory;
2827
import uk.gov.justice.services.core.dispatcher.EmptySystemUserProvider;
2928
import uk.gov.justice.services.core.dispatcher.ServiceComponentObserver;
3029
import uk.gov.justice.services.core.dispatcher.SystemUserUtil;
3130
import uk.gov.justice.services.core.envelope.EnvelopeValidationExceptionHandlerProducer;
3231
import uk.gov.justice.services.core.enveloper.Enveloper;
33-
import uk.gov.justice.services.core.extension.AnnotationScanner;
32+
import uk.gov.justice.services.core.extension.ServiceComponentScanner;
3433
import uk.gov.justice.services.core.extension.BeanInstantiater;
3534
import uk.gov.justice.services.core.interceptor.Interceptor;
3635
import uk.gov.justice.services.core.interceptor.InterceptorCache;
@@ -83,7 +82,7 @@ public class AllEventsHandlerIT {
8382
@Classes(cdi = true, value = {
8483
AbcEventHandler.class,
8584
AllEventsHandler.class,
86-
AnnotationScanner.class,
85+
ServiceComponentScanner.class,
8786
RequesterProducer.class,
8887
ServiceComponentObserver.class,
8988

0 commit comments

Comments
 (0)