Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions build-logic/src/main/kotlin/buildlogic.java-conventions.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -77,34 +77,6 @@ afterEvaluate {

dependsOn(configurations.testRuntimeClasspath)

// Configure JVM args to suppress warnings
jvmArgs(
"-XX:+EnableDynamicAgentLoading",
"-Djdk.instrument.traceUsage=false",
"-Xshare:off",
"--add-opens=java.base/sun.misc=ALL-UNNAMED",
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"--add-opens=java.base/java.nio=ALL-UNNAMED",
"--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED",
"--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
"--add-opens=java.base/java.util=ALL-UNNAMED",
"--enable-native-access=ALL-UNNAMED",
"-Dio.netty.tryReflectionSetAccessible=true",
"-Dio.netty.noUnsafe=false",
"-Dnet.bytebuddy.experimental=true",
"-Dnet.bytebuddy.dump=${System.getProperty("java.io.tmpdir")}",
"--add-exports=java.base/sun.nio.ch=ALL-UNNAMED",
"--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED",
"--add-exports=java.base/sun.misc=ALL-UNNAMED"
)

// Suppress specific warnings by redirecting stderr for test processes
systemProperty("java.util.logging.config.file", "")
systemProperty("sun.misc.unsafe.disableWarnings", "true")

// Redirect stderr to filter out ByteBuddy warnings
environment("JAVA_TOOL_OPTIONS", "-XX:+EnableDynamicAgentLoading -Djdk.instrument.traceUsage=false")

// Configure test output to suppress warnings
testLogging {
showStandardStreams = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.ApplicationContext
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Primary
import org.springframework.context.annotation.Scope
import org.springframework.core.Ordered
import org.springframework.core.annotation.Order
Expand Down Expand Up @@ -73,9 +72,10 @@ class JacksonAutoConfiguration(private val jacksonProperties: JacksonProperties)
return builder
}

@Primary
@Bean(name = [DEFAULT_OBJECT_MAPPER_BEAN_NAME])
@ConditionalOnMissingBean(name = [DEFAULT_OBJECT_MAPPER_BEAN_NAME])
@ConditionalOnMissingBean(value = [ObjectMapper::class])
@org.springframework.context.annotation.Primary
@org.springframework.beans.factory.annotation.Qualifier("primary")
fun jacksonObjectMapper(builder: Jackson2ObjectMapperBuilder): ObjectMapper {
log.debug("create jackson objectMapper, builder: {}", builder)
return builder.createXmlMapper(false).build()
Expand Down Expand Up @@ -155,7 +155,8 @@ class JacksonAutoConfiguration(private val jacksonProperties: JacksonProperties)

@Order(Ordered.LOWEST_PRECEDENCE)
@Bean(name = [NON_IGNORE_OBJECT_MAPPER_BEAN_NAME])
fun nonIgnoreObjectMapper(mapper: ObjectMapper): ObjectMapper {
@org.springframework.beans.factory.annotation.Qualifier("nonIgnoreObjectMapper")
fun nonIgnoreObjectMapper(@org.springframework.beans.factory.annotation.Qualifier("primary") mapper: ObjectMapper): ObjectMapper {
log.debug("register non-ignore objectMapper, defaultMapper = {}", mapper)
return mapper.copy().apply {
disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
Expand Down
6 changes: 6 additions & 0 deletions depend/depend-jackson/src/test/resources/application.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
spring:
output:
ansi:
enabled: always
test:
print-condition-evaluation-report: false
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ org-springframework-modulith = "2.0.0-M1"
org-springframework-security = "6.5.3"
org-testcontainers = "1.21.3"
org-testng = "7.11.0"
project = "0.0.31"
project = "0.0.32"

[libraries]
ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" }
Expand Down
1 change: 1 addition & 0 deletions integrate-test/depend/jackson/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ dependencies {

testImplementation(projects.testtoolkit.testtoolkitSpringmvc)
testImplementation(libs.org.springframework.boot.spring.boot.starter.web)
testImplementation(libs.org.springframework.boot.spring.boot.starter.json)
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package itest.integrate.depend.jackson

import com.fasterxml.jackson.databind.ObjectMapper
import io.github.truenine.composeserver.depend.jackson.autoconfig.JacksonAutoConfiguration
import jakarta.annotation.Resource
import org.springframework.boot.test.context.SpringBootTest
import com.fasterxml.jackson.databind.ObjectMapper
import kotlin.test.BeforeTest
import kotlin.test.Test
import kotlin.test.assertNotNull
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class NonInternalObjectMapperIntegrationTest {
@Resource(name = JacksonAutoConfiguration.NON_IGNORE_OBJECT_MAPPER_BEAN_NAME)
private lateinit var mapper: ObjectMapper
@Resource(name = JacksonAutoConfiguration.NON_IGNORE_OBJECT_MAPPER_BEAN_NAME) private lateinit var mapper: ObjectMapper

@BeforeTest
fun setup() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package itest.integrate.depend.jackson

import com.fasterxml.jackson.databind.ObjectMapper
import io.github.truenine.composeserver.depend.jackson.autoconfig.JacksonAutoConfiguration
import io.github.truenine.composeserver.testtoolkit.log
import jakarta.annotation.Resource
import kotlin.test.Test
import kotlin.test.assertEquals
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest(classes = [TestEntrance::class])
class TypedJacksonTest {
@Resource(name = JacksonAutoConfiguration.NON_IGNORE_OBJECT_MAPPER_BEAN_NAME) lateinit var mapper: ObjectMapper

@Test
fun inject_test() {
val a = mapOf("a" to "b")
val json = mapper.writeValueAsString(a)
log.info("json: {}", json)
assertEquals($$"""{"@class":"java.util.Collections$SingletonMap","a":"b"}""", json)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ spring:
output:
ansi:
enabled: always
test:
print-condition-evaluation-report: false
Loading