diff --git a/src/main/java/com/fasterxml/jackson/dataformat/xml/JacksonXmlModule.java b/src/main/java/com/fasterxml/jackson/dataformat/xml/JacksonXmlModule.java
index c9a57c1d..3a8b68a7 100644
--- a/src/main/java/com/fasterxml/jackson/dataformat/xml/JacksonXmlModule.java
+++ b/src/main/java/com/fasterxml/jackson/dataformat/xml/JacksonXmlModule.java
@@ -1,5 +1,6 @@
package com.fasterxml.jackson.dataformat.xml;
+import com.fasterxml.jackson.core.json.PackageVersion;
import com.fasterxml.jackson.databind.AnnotationIntrospector;
import com.fasterxml.jackson.databind.module.SimpleModule;
diff --git a/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlFactory.java b/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlFactory.java
index 521c9bde..48a9304c 100644
--- a/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlFactory.java
+++ b/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlFactory.java
@@ -4,6 +4,7 @@
import javax.xml.stream.*;
+import com.fasterxml.jackson.core.json.PackageVersion;
import org.codehaus.stax2.XMLInputFactory2;
import org.codehaus.stax2.io.Stax2ByteArraySource;
import org.codehaus.stax2.io.Stax2CharArraySource;
diff --git a/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlMapper.java b/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlMapper.java
index 0fc5c1e9..be79caf1 100644
--- a/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlMapper.java
+++ b/src/main/java/com/fasterxml/jackson/dataformat/xml/XmlMapper.java
@@ -8,6 +8,7 @@
import javax.xml.stream.XMLStreamWriter;
import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.core.json.PackageVersion;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.cfg.CoercionAction;
diff --git a/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/FromXmlParser.java b/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/FromXmlParser.java
index 654aafbe..5509294f 100644
--- a/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/FromXmlParser.java
+++ b/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/FromXmlParser.java
@@ -18,10 +18,10 @@
import com.fasterxml.jackson.core.exc.StreamConstraintsException;
import com.fasterxml.jackson.core.io.IOContext;
import com.fasterxml.jackson.core.io.NumberInput;
+import com.fasterxml.jackson.core.json.PackageVersion;
import com.fasterxml.jackson.core.util.ByteArrayBuilder;
import com.fasterxml.jackson.core.util.JacksonFeatureSet;
-import com.fasterxml.jackson.dataformat.xml.PackageVersion;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.XmlNameProcessor;
import com.fasterxml.jackson.dataformat.xml.util.CaseInsensitiveNameSet;
diff --git a/src/test/java/com/fasterxml/jackson/dataformat/xml/CustomAnnotationIntrospectorNoWrapperTest.java b/src/test/java/com/fasterxml/jackson/dataformat/xml/CustomAnnotationIntrospectorNoWrapperTest.java
new file mode 100644
index 00000000..f27aa357
--- /dev/null
+++ b/src/test/java/com/fasterxml/jackson/dataformat/xml/CustomAnnotationIntrospectorNoWrapperTest.java
@@ -0,0 +1,70 @@
+package com.fasterxml.jackson.dataformat.xml;
+
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.PropertyName;
+import com.fasterxml.jackson.databind.introspect.Annotated;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * A regression test for https://github.com/FasterXML/jackson-databind/issues/4595
+ */
+public class CustomAnnotationIntrospectorNoWrapperTest extends XmlTestBase {
+ private final XmlMapper MAPPER = newMapper();
+
+ public void testNoWrapper() throws Exception {
+ Foo foo = new Foo(Arrays.asList("Value1", "Value2"));
+
+ assertEquals("Value1Value2", MAPPER.writeValueAsString(foo));
+
+ MAPPER
+ .registerModule(new SimpleModule("NoWrapperModule") {
+ @Override
+ public void setupModule(SetupContext context) {
+ context.insertAnnotationIntrospector(new NoWrapperIntrospector());
+ super.setupModule(context);
+ }
+ });
+
+ // TODO: update after fixing https://github.com/FasterXML/jackson-databind/issues/4595
+ // Should be assertEquals("Value1Value2", MAPPER.writeValueAsString(foo));
+ assertEquals("Value1Value2", MAPPER.writeValueAsString(foo));
+ }
+
+ public static class Foo {
+ private final List bar;
+
+ public Foo(List bar) {
+ this.bar = bar;
+ }
+
+ @NoWrapper
+ public List getBar() {
+ return bar;
+ }
+ }
+
+ public static class NoWrapperIntrospector extends AnnotationIntrospector {
+ @Override
+ public Version version() {
+ return com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION;
+ }
+
+ @Override
+ public PropertyName findWrapperName(Annotated ann) {
+ if (ann.hasAnnotation(NoWrapper.class)) {
+ return PropertyName.NO_NAME;
+ }
+ return super.findWrapperName(ann);
+ }
+ }
+
+ @Retention(RetentionPolicy.RUNTIME)
+ public @interface NoWrapper {
+ }
+}
diff --git a/src/test/java/com/fasterxml/jackson/dataformat/xml/VersionInfoTest.java b/src/test/java/com/fasterxml/jackson/dataformat/xml/VersionInfoTest.java
index 3dca6dd6..21e3a44e 100644
--- a/src/test/java/com/fasterxml/jackson/dataformat/xml/VersionInfoTest.java
+++ b/src/test/java/com/fasterxml/jackson/dataformat/xml/VersionInfoTest.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.core.Versioned;
+import com.fasterxml.jackson.core.json.PackageVersion;
public class VersionInfoTest extends XmlTestBase
{