Skip to content

Commit c113cff

Browse files
Merge pull request #6674 from ORCID/StopSendingGAAnaliticsEventsFromAPIs
Add properties values to enable/disable sending GA events from the APIs
2 parents d5f2795 + db1fdf5 commit c113cff

4 files changed

Lines changed: 43 additions & 8 deletions

File tree

orcid-api-web/src/main/java/org/orcid/api/filters/AnalyticsFilter.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,24 @@
1111
import org.orcid.core.manager.ProfileEntityCacheManager;
1212
import org.orcid.core.manager.impl.OrcidUrlManager;
1313
import 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;
1418
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
19+
import org.springframework.stereotype.Component;
1520

1621
import com.sun.jersey.api.core.InjectParam;
1722
import com.sun.jersey.spi.container.ContainerRequest;
1823
import com.sun.jersey.spi.container.ContainerResponse;
1924
import 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
}

orcid-api-web/src/main/resources/orcid-api-web-context.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<import resource="classpath*:orcid-core-context.xml"/>
1111

12-
<context:component-scan base-package="org.orcid.api.common, org.orcid.api.member.common, org.orcid.core.security"/>
12+
<context:component-scan base-package="org.orcid.api.common, org.orcid.api.member.common, org.orcid.core.security, org.orcid.api.filters"/>
1313
<aop:aspectj-autoproxy />
1414

1515
<bean id="beanConfig" class="io.swagger.jaxrs.config.BeanConfig">

orcid-pub-web/src/main/java/org/orcid/api/filters/AnalyticsFilter.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,24 @@
1111
import org.orcid.core.manager.ProfileEntityCacheManager;
1212
import org.orcid.core.manager.impl.OrcidUrlManager;
1313
import 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;
1418
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
19+
import org.springframework.stereotype.Component;
1520

1621
import com.sun.jersey.api.core.InjectParam;
1722
import com.sun.jersey.spi.container.ContainerRequest;
1823
import com.sun.jersey.spi.container.ContainerResponse;
1924
import 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.papi.enableAnalytics:false}")
51+
private boolean enablePublicAPIAnalytics;
52+
4253
@Override
4354
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
44-
AnalyticsProcess analyticsProcess = getAnalyticsProcess(request, response);
45-
apiAnalyticsTaskExecutor.execute(analyticsProcess);
55+
if (enablePublicAPIAnalytics) {
56+
AnalyticsProcess analyticsProcess = getAnalyticsProcess(request, response);
57+
apiAnalyticsTaskExecutor.execute(analyticsProcess);
58+
}
4659
return response;
4760
}
4861

@@ -60,4 +73,9 @@ private AnalyticsProcess getAnalyticsProcess(ContainerRequest request, Container
6073
return process;
6174
}
6275

76+
@Override
77+
public void afterPropertiesSet() throws Exception {
78+
LOGGER.info("Is Public Api Analytics filter enabled? " + enablePublicAPIAnalytics);
79+
}
80+
6381
}

orcid-pub-web/src/main/resources/orcid-t1-web-context.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<import resource="orcid-core-context.xml"/>
1313
<import resource="statistics-core-context.xml"/>
1414

15-
<context:component-scan base-package="org.orcid.api.common, org.orcid.api.t1, org.orcid.api.common, org.orcid.core.security"/>
15+
<context:component-scan base-package="org.orcid.api.common, org.orcid.api.t1, org.orcid.api.common, org.orcid.core.security, org.orcid.api.filters"/>
1616
<aop:aspectj-autoproxy />
1717
<task:annotation-driven />
1818

0 commit comments

Comments
 (0)