1111import org .orcid .core .manager .ProfileEntityCacheManager ;
1212import org .orcid .core .manager .impl .OrcidUrlManager ;
1313import org .orcid .core .utils .OrcidRequestUtil ;
14+ import org .slf4j .Logger ;
15+ import org .slf4j .LoggerFactory ;
16+ import org .springframework .beans .factory .InitializingBean ;
17+ import org .springframework .beans .factory .annotation .Value ;
1418import org .springframework .scheduling .concurrent .ThreadPoolTaskExecutor ;
19+ import org .springframework .stereotype .Component ;
1520
1621import com .sun .jersey .api .core .InjectParam ;
1722import com .sun .jersey .spi .container .ContainerRequest ;
1823import com .sun .jersey .spi .container .ContainerResponse ;
1924import com .sun .jersey .spi .container .ContainerResponseFilter ;
2025
2126@ Provider
22- public class AnalyticsFilter implements ContainerResponseFilter {
27+ @ Component
28+ public class AnalyticsFilter implements ContainerResponseFilter , InitializingBean {
2329
30+ private static final Logger LOGGER = LoggerFactory .getLogger (AnalyticsFilter .class );
31+
2432 @ InjectParam ("orcidSecurityManager" )
2533 private OrcidSecurityManager orcidSecurityManager ;
2634
@@ -39,10 +47,15 @@ public class AnalyticsFilter implements ContainerResponseFilter {
3947 @ Context
4048 private HttpServletRequest httpServletRequest ;
4149
50+ @ Value ("${org.orcid.mapi.enableAnalytics:false}" )
51+ private boolean enableMemberAPIAnalytics ;
52+
4253 @ Override
4354 public ContainerResponse filter (ContainerRequest request , ContainerResponse response ) {
44- AnalyticsProcess analyticsProcess = getAnalyticsProcess (request , response );
45- apiAnalyticsTaskExecutor .execute (analyticsProcess );
55+ if (enableMemberAPIAnalytics ) {
56+ AnalyticsProcess analyticsProcess = getAnalyticsProcess (request , response );
57+ apiAnalyticsTaskExecutor .execute (analyticsProcess );
58+ }
4659 return response ;
4760 }
4861
@@ -60,4 +73,8 @@ private AnalyticsProcess getAnalyticsProcess(ContainerRequest request, Container
6073 return process ;
6174 }
6275
76+ @ Override
77+ public void afterPropertiesSet () throws Exception {
78+ LOGGER .info ("Is Members Api Analytics filter enabled? " + enableMemberAPIAnalytics );
79+ }
6380}
0 commit comments