Skip to content

Commit 0c77064

Browse files
committed
Remove Spring Dependency
1 parent 523a6d9 commit 0c77064

File tree

2 files changed

+18
-21
lines changed

2 files changed

+18
-21
lines changed

orchestration/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,6 @@
8989
<groupId>com.google.guava</groupId>
9090
<artifactId>guava</artifactId>
9191
</dependency>
92-
93-
<!-- TODO: only needed for JsonObjectMapperBuilder, maybe we can use Jackson natively to avoid this dependency -->
94-
<dependency>
95-
<groupId>org.springframework</groupId>
96-
<artifactId>spring-web</artifactId>
97-
</dependency>
9892
<!-- scope "provided" -->
9993
<dependency>
10094
<groupId>org.projectlombok</groupId>

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationClient.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,31 @@
3333
import org.apache.hc.client5.http.classic.methods.HttpPost;
3434
import org.apache.hc.core5.http.ContentType;
3535
import org.apache.hc.core5.http.io.entity.StringEntity;
36-
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
3736

3837
/** Client to execute requests to the orchestration service. */
3938
@Slf4j
4039
public class OrchestrationClient {
4140
static final ObjectMapper JACKSON;
4241

4342
static {
44-
JACKSON =
45-
new Jackson2ObjectMapperBuilder()
46-
.modules(new JavaTimeModule())
47-
.visibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE)
48-
.visibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.NONE)
49-
.serializationInclusion(JsonInclude.Include.NON_NULL)
50-
.mixIn(LLMModuleResult.class, JacksonMixins.LLMModuleResultMixIn.class)
51-
.mixIn(
52-
ModuleResultsOutputUnmaskingInner.class,
53-
JacksonMixins.ModuleResultsOutputUnmaskingInnerMixIn.class)
54-
.mixIn(FilterConfig.class, JacksonMixins.NoTypeInfoMixin.class)
55-
.mixIn(MaskingProviderConfig.class, JacksonMixins.NoTypeInfoMixin.class)
56-
.mixIn(TemplatingModuleConfig.class, JacksonMixins.NoTypeInfoMixin.class)
57-
.build();
43+
JACKSON = new ObjectMapper();
44+
JACKSON.registerModule(new JavaTimeModule());
45+
46+
// Disable automatic detection of getters and setters
47+
JACKSON.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE);
48+
JACKSON.setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.NONE);
49+
50+
// Only serialize non-null values
51+
JACKSON.setSerializationInclusion(JsonInclude.Include.NON_NULL);
52+
53+
// Add mix-ins
54+
JACKSON.addMixIn(LLMModuleResult.class, JacksonMixins.LLMModuleResultMixIn.class);
55+
JACKSON.addMixIn(
56+
ModuleResultsOutputUnmaskingInner.class,
57+
JacksonMixins.ModuleResultsOutputUnmaskingInnerMixIn.class);
58+
JACKSON.addMixIn(FilterConfig.class, JacksonMixins.NoTypeInfoMixin.class);
59+
JACKSON.addMixIn(MaskingProviderConfig.class, JacksonMixins.NoTypeInfoMixin.class);
60+
JACKSON.addMixIn(TemplatingModuleConfig.class, JacksonMixins.NoTypeInfoMixin.class);
5861
}
5962

6063
@Nonnull private final Supplier<AiCoreDeployment> deployment;

0 commit comments

Comments
 (0)