Skip to content

Commit b6c07b9

Browse files
author
Alexey Zarakovskiy
committed
TSI-2200 ODataContextEngine is now initialized only for Context Service claims provider
1 parent 092fee0 commit b6c07b9

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

dxa-framework/dxa-web8-provider/src/main/java/com/sdl/webapp/tridion/SpringContextConfiguration.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.sdl.webapp.tridion;
22

3-
import com.sdl.context.odata.client.api.ODataContextEngine;
43
import com.sdl.web.api.content.BinaryContentRetriever;
54
import com.sdl.web.api.dynamic.BinaryContentRetrieverImpl;
65
import com.sdl.web.api.dynamic.DynamicMappingsRetriever;
@@ -39,7 +38,7 @@ public TaxonomyFactory webTaxonomyFactory() {
3938
public TaxonomyRelationManager taxonomyRelationManager() {
4039
return new TaxonomyRelationManager();
4140
}
42-
41+
4342
@Bean
4443
public BrokerLinkProvider linkProvider() {
4544
BrokerLinkProvider linkProvider = new BrokerLinkProvider();
@@ -110,11 +109,6 @@ public DynamicMappingsRetriever dynamicMappingsRetriever() {
110109
return new DynamicMappingsRetrieverImpl();
111110
}
112111

113-
@Bean
114-
public ODataContextEngine oDataContextEngine() {
115-
return new ODataContextEngine();
116-
}
117-
118112
@Configuration
119113
@Profile("dxa.no-cache")
120114
public static class NoCacheConfiguration {

dxa-framework/dxa-web8-provider/src/main/java/com/sdl/webapp/tridion/contextengine/ContextServiceClaimsProvider.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.springframework.beans.factory.annotation.Value;
1818
import org.springframework.stereotype.Component;
1919

20+
import javax.annotation.PostConstruct;
2021
import javax.servlet.http.Cookie;
2122
import javax.servlet.http.HttpServletRequest;
2223
import java.util.Collections;
@@ -33,7 +34,7 @@ public class ContextServiceClaimsProvider implements ContextClaimsProvider {
3334
@Value("${dxa.context.service.publication.id:false}")
3435
private boolean isPublicationIdExpected;
3536

36-
@Autowired
37+
//todo dxa2 replace with bean initialization based on negated Spring profile
3738
private ODataContextEngine oDataContextEngine;
3839

3940
@Autowired
@@ -72,6 +73,11 @@ private static Map<String, Object> getClaimsForAspect(ContextMap<? extends Aspec
7273
return result;
7374
}
7475

76+
@PostConstruct
77+
public void init() {
78+
oDataContextEngine = new ODataContextEngine();
79+
}
80+
7581
@Override
7682
public Map<String, Object> getContextClaims(String aspectName) throws DxaException {
7783
HttpServletRequest request = HttpUtils.getCurrentRequest();

dxa-framework/dxa-web8-provider/src/test/java/com/sdl/webapp/tridion/contextengine/ContextServiceClaimsProviderTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.sdl.context.api.exception.ResolverException;
44
import com.sdl.context.api.resolution.Evidence;
55
import com.sdl.context.odata.client.api.ODataContextEngine;
6+
import com.sdl.odata.client.api.exception.ODataClientRuntimeException;
67
import com.sdl.webapp.common.api.WebRequestContext;
78
import com.sdl.webapp.common.api.localization.Localization;
89
import com.sdl.webapp.common.exceptions.DxaException;
@@ -19,6 +20,7 @@
1920
import org.springframework.web.context.request.RequestContextHolder;
2021
import org.springframework.web.context.request.ServletRequestAttributes;
2122

23+
import javax.annotation.PostConstruct;
2224
import javax.servlet.http.HttpServletRequest;
2325
import java.util.Map;
2426

@@ -54,6 +56,7 @@ public void init() {
5456
when(localization.getId()).thenReturn("1");
5557

5658
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(httpServletRequest));
59+
ReflectionTestUtils.setField(contextServiceClaimsProvider, "oDataContextEngine", oDataContextEngine);
5760
}
5861

5962
@Test
@@ -113,4 +116,10 @@ public void describeTo(Description description) {
113116
}
114117
}));
115118
}
119+
120+
@Test(expected = ODataClientRuntimeException.class)
121+
public void shouldInitContextEngineOnStart() throws NoSuchMethodException {
122+
assertTrue(contextServiceClaimsProvider.getClass().getDeclaredMethod("init").isAnnotationPresent(PostConstruct.class));
123+
contextServiceClaimsProvider.init();
124+
}
116125
}

0 commit comments

Comments
 (0)