Merge pull request #327 from Degubi/mappingctx_refactor
Refactor MappingContext.java
diff --git a/.gitignore b/.gitignore
index 283e0e3..3160630 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/target/
+/target-tck/
.classpath
.project
.idea/
diff --git a/.travis.yml b/.travis.yml
index 54d6a25..bc7dc80 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,11 +14,11 @@
include:
- stage: install-yasson
script: mvn -U -C -Pstaging clean install
- - stage: run-jmh
- script:
- - cd yasson-jmh
- - mvn clean install
- - java -jar target/yasson-jmh.jar -t 1 -f 2
+# - stage: run-jmh
+# script:
+# - cd yasson-jmh
+# - mvn clean install
+# - java -jar target/yasson-jmh.jar -t 1 -f 2
- stage: tck-run
script: bash tck.sh
diff --git a/README.md b/README.md
index c6d7f2e..8501d06 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,7 @@
[](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.eclipse%22%20a%3A%22yasson%22)
[](https://oss.sonatype.org/content/repositories/snapshots/org/eclipse/yasson/)
+[](https://www.javadoc.io/doc/org.eclipse/yasson)
[](https://travis-ci.org/eclipse-ee4j/yasson)
[](https://opensource.org/licenses/EPL-1.0)
diff --git a/src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java b/src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java
index b45e5c1..601ca4f 100644
--- a/src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java
+++ b/src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java
@@ -4,16 +4,17 @@
import org.eclipse.yasson.internal.model.JsonbCreator;
import org.eclipse.yasson.internal.properties.MessageKeys;
import org.eclipse.yasson.internal.properties.Messages;
-import org.eclipse.yasson.spi.JsonbComponentInstanceCreator;
import java.lang.reflect.Constructor;
import java.lang.reflect.Executable;
+import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;
+import java.util.Arrays;
import java.util.logging.Logger;
class ConstructorPropertiesAnnotationIntrospector {
- private static final Logger LOG = Logger.getLogger(JsonbComponentInstanceCreator.class.getName());
+ private static final Logger LOG = Logger.getLogger(ConstructorPropertiesAnnotationIntrospector.class.getName());
private final JsonbContext jsonbContext;
private final AnnotationFinder constructorProperties;
@@ -43,6 +44,12 @@
if (!(properties instanceof String[])) {
continue;
}
+ if (!Modifier.isPublic(constructor.getModifiers())) {
+ String declaringClass = constructor.getDeclaringClass().getName();
+ String message = "The constructor of {0} annotated with @ConstructorProperties {1} is not accessible and will be ignored.";
+ LOG.finest(String.format(message, declaringClass, Arrays.toString((String[]) properties)));
+ continue;
+ }
if (jsonbCreator != null) {
// don't fail in this case, because it is perfectly allowed to have more than one
// @ConstructorProperties-Annotation in general.
diff --git a/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTest.java b/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTest.java
index 5dda126..d8b4a0e 100644
--- a/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTest.java
+++ b/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTest.java
@@ -7,8 +7,10 @@
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAndConstructorPropertiesAnnotation;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAnnotatedConstructor;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAnnotatedFactoryMethod;
-import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithMissingConstructorAnnotation;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAnnotatedProtectedConstructor;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithTwoJsonbCreatorAnnotatedSpots;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithoutAnnotatedConstructor;
import org.eclipse.yasson.internal.model.JsonbCreator;
import javax.json.bind.JsonbConfig;
@@ -16,6 +18,8 @@
import javax.json.spi.JsonProvider;
+import org.hamcrest.core.IsInstanceOf;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -60,6 +64,23 @@
}
@Test
+ public void testJsonbAnnotatedProtectedConstructorLeadsToAnException() {
+ exception.expect(JsonbException.class);
+ exception.expectCause(IsInstanceOf.instanceOf(IllegalAccessException.class));
+ JsonbCreator creator = instrospector.getCreator(ObjectWithJsonbCreatorAnnotatedProtectedConstructor.class);
+ assertCreatedInstanceContainsAllParameters(ObjectWithJsonbCreatorAnnotatedProtectedConstructor.example(), creator);
+ }
+
+ // TODO Under discussion: https://github.com/eclipse-ee4j/yasson/issues/326
+ @Ignore
+ @Test
+ public void testNoArgConstructorShouldBePreferredOverUnusableJsonbAnnotatedProtectedConstructor() {
+ JsonbCreator creator = instrospector.getCreator(ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor.class);
+ assertParameters(ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor.parameters(), creator);
+ assertCreatedInstanceContainsAllParameters(ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor.example(), creator);
+ }
+
+ @Test
public void testMoreThanOneAnnotatedCreatorMethodShouldLeadToAnException() {
exception.expect(JsonbException.class);
exception.expectMessage("More than one @" + JsonbCreator.class.getSimpleName());
@@ -68,7 +89,7 @@
@Test
public void testCreatorShouldBeNullOnMissingConstructorAnnotation() {
- assertNull(instrospector.getCreator(ObjectWithMissingConstructorAnnotation.class));
+ assertNull(instrospector.getCreator(ObjectWithoutAnnotatedConstructor.class));
}
}
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTestFixtures.java b/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTestFixtures.java
index c58273b..aa711a5 100644
--- a/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTestFixtures.java
+++ b/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorTestFixtures.java
@@ -43,10 +43,7 @@
return new ObjectWithoutAnnotatedConstructor("a string", Long.MAX_VALUE);
}
- @JsonbCreator
- public ObjectWithoutAnnotatedConstructor( //
- @JsonbProperty("string") String aString, //
- @JsonbProperty("primitive") long aPrimitive) {
+ public ObjectWithoutAnnotatedConstructor(String aString, long aPrimitive) {
this.string = aString;
this.primitive = aPrimitive;
}
@@ -93,6 +90,88 @@
}
}
+ public static class ObjectWithJsonbCreatorAnnotatedProtectedConstructor implements ProvidesParameterRepresentation {
+ private final String string;
+ private final long primitive;
+
+ public static final Map<String, Type> parameters() {
+ return twoParameters("string", String.class, "primitive", long.class);
+ }
+
+ public static final ProvidesParameterRepresentation example() {
+ return new ObjectWithJsonbCreatorAnnotatedProtectedConstructor("a string", Long.MAX_VALUE);
+ }
+
+ @JsonbCreator
+ protected ObjectWithJsonbCreatorAnnotatedProtectedConstructor( //
+ @JsonbProperty("string") String aString, //
+ @JsonbProperty("primitive") long aPrimitive) {
+ this.string = aString;
+ this.primitive = aPrimitive;
+ }
+
+ @Override
+ public Object[] asParameters() {
+ return new Object[] { string, primitive };
+ }
+
+ @Override
+ public String toString() {
+ return "ObjectWithJsonbCreatorAnnotatedProtectedConstructor [string=" + string + ", primitive=" + primitive + "]";
+ }
+ }
+
+ public static class ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor implements ProvidesParameterRepresentation {
+ private String string;
+ private long primitive;
+
+ public static final Map<String, Type> parameters() {
+ return twoParameters("string", String.class, "primitive", long.class);
+ }
+
+ public static final ProvidesParameterRepresentation example() {
+ return new ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor("a string", Long.MAX_VALUE);
+ }
+
+ public ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor() {
+ super();
+ }
+
+ @JsonbCreator
+ protected ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor( //
+ @JsonbProperty("string") String aString, //
+ @JsonbProperty("primitive") long aPrimitive) {
+ this.string = aString;
+ this.primitive = aPrimitive;
+ }
+
+ public String getString() {
+ return string;
+ }
+
+ public void setString(String string) {
+ this.string = string;
+ }
+
+ public long getPrimitive() {
+ return primitive;
+ }
+
+ public void setPrimitive(long primitive) {
+ this.primitive = primitive;
+ }
+
+ @Override
+ public Object[] asParameters() {
+ return new Object[] { string, primitive };
+ }
+
+ @Override
+ public String toString() {
+ return "ObjectWithNoArgAndJsonbCreatorAnnotatedProtectedConstructor [string=" + string + ", primitive=" + primitive + "]";
+ }
+ }
+
public static class ObjectWithJsonbCreatorAnnotatedFactoryMethod implements ProvidesParameterRepresentation {
private final String string;
private final long primitive;
@@ -265,6 +344,161 @@
}
}
+ public static class ObjectWithPublicNoArgAndAnnotatedPrivateConstructor implements ProvidesParameterRepresentation {
+ private String string;
+ private Long primitive;
+
+ public static final Map<String, Type> parameters() {
+ return twoParameters("string", String.class, "primitive", long.class);
+ }
+
+ public static final ProvidesParameterRepresentation example() {
+ return new ObjectWithPublicNoArgAndAnnotatedPrivateConstructor(" ", Long.valueOf(-12));
+ }
+
+ public ObjectWithPublicNoArgAndAnnotatedPrivateConstructor() {
+ super();
+ }
+
+ @ConstructorProperties({ "string", "primitive" })
+ private ObjectWithPublicNoArgAndAnnotatedPrivateConstructor(String aString, long aPrimitive) {
+ this.string = aString;
+ this.primitive = aPrimitive;
+ }
+
+ public Long getPrimitive() {
+ return primitive;
+ }
+
+ public void setPrimitive(Long primitive) {
+ this.primitive = primitive;
+ }
+
+ public String getString() {
+ return string;
+ }
+
+ public void setString(String string) {
+ this.string = string;
+ }
+
+ @Override
+ public Object[] asParameters() {
+ return new Object[] { string, primitive };
+ }
+
+ @Override
+ public String toString() {
+ return "ObjectWithPublicNoArgAndAnnotatedPrivateConstructor [string=" + string + ", primitive=" + primitive + "]";
+ }
+ }
+
+ public static class ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor implements ProvidesParameterRepresentation {
+ private String string;
+ private Long primitive;
+
+ public static final Map<String, Type> parameters() {
+ return twoParameters("string", String.class, "primitive", long.class);
+ }
+
+ public static final ProvidesParameterRepresentation example() {
+ return new ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor(" ", Long.valueOf(-12));
+ }
+
+ public static final ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor create(String aString, long aPrimitive) {
+ return new ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor(aString, aPrimitive);
+ }
+
+ public ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor() {
+ super();
+ }
+
+ @ConstructorProperties({ "string", "primitive" })
+ ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor(String aString, long aPrimitive) {
+ this.string = aString;
+ this.primitive = aPrimitive;
+ }
+
+ public Long getPrimitive() {
+ return primitive;
+ }
+
+ public void setPrimitive(Long primitive) {
+ this.primitive = primitive;
+ }
+
+ public String getString() {
+ return string;
+ }
+
+ public void setString(String string) {
+ this.string = string;
+ }
+
+ @Override
+ public Object[] asParameters() {
+ return new Object[] { string, primitive };
+ }
+
+ @Override
+ public String toString() {
+ return "ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor [string=" + string + ", primitive=" + primitive + "]";
+ }
+ }
+
+ public static class ObjectWithPublicNoArgAndAnnotatedProtectedConstructor implements ProvidesParameterRepresentation {
+ private String string;
+ private Long primitive;
+
+ public static final Map<String, Type> parameters() {
+ return twoParameters("string", String.class, "primitive", long.class);
+ }
+
+ public static final ProvidesParameterRepresentation example() {
+ return new ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor(" ", Long.valueOf(-12));
+ }
+
+ public static final ObjectWithPublicNoArgAndAnnotatedProtectedConstructor create(String aString, long aPrimitive) {
+ return new ObjectWithPublicNoArgAndAnnotatedProtectedConstructor(aString, aPrimitive);
+ }
+
+ @ConstructorProperties({ "string", "primitive" })
+ protected ObjectWithPublicNoArgAndAnnotatedProtectedConstructor(String aString, long aPrimitive) {
+ this.string = aString;
+ this.primitive = aPrimitive;
+ }
+
+ public ObjectWithPublicNoArgAndAnnotatedProtectedConstructor() {
+ super();
+ }
+
+ public Long getPrimitive() {
+ return primitive;
+ }
+
+ public void setPrimitive(Long primitive) {
+ this.primitive = primitive;
+ }
+
+ public String getString() {
+ return string;
+ }
+
+ public void setString(String string) {
+ this.string = string;
+ }
+
+ @Override
+ public Object[] asParameters() {
+ return new Object[] { string, primitive };
+ }
+
+ @Override
+ public String toString() {
+ return "ObjectWithJsonbCreatorAndConstructorPropertiesAnnotation [string=" + string + ", primitive=" + primitive + "]";
+ }
+ }
+
public static class ObjectWithMissingConstructorAnnotation implements ProvidesParameterRepresentation {
private final String string;
private final long primitive;
diff --git a/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorWithoutOptionalModulesTest.java b/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorWithoutOptionalModulesTest.java
index 6ef7997..1dd2e92 100644
--- a/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorWithoutOptionalModulesTest.java
+++ b/src/test/java/org/eclipse/yasson/internal/AnnotationIntrospectorWithoutOptionalModulesTest.java
@@ -6,7 +6,7 @@
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAnnotatedConstructor;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAnnotatedFactoryMethod;
-import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithMissingConstructorAnnotation;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithoutAnnotatedConstructor;
import org.eclipse.yasson.internal.model.JsonbCreator;
import javax.json.bind.JsonbConfig;
@@ -47,7 +47,7 @@
@Test
public void testCreatorShouldBeNullOnMissingConstructorAnnotation() {
- assertNull(instrospector.getCreator(ObjectWithMissingConstructorAnnotation.class));
+ assertNull(instrospector.getCreator(ObjectWithoutAnnotatedConstructor.class));
}
@Test
diff --git a/src/test/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospectorTest.java b/src/test/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospectorTest.java
index 5cd166f..4360f70 100644
--- a/src/test/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospectorTest.java
+++ b/src/test/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospectorTest.java
@@ -8,6 +8,9 @@
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithConstructorPropertiesAnnotation;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithJsonbCreatorAnnotatedConstructor;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithPublicNoArgAndAnnotatedPrivateConstructor;
+import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithPublicNoArgAndAnnotatedProtectedConstructor;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithTwoConstructorPropertiesAnnotation;
import org.eclipse.yasson.internal.AnnotationIntrospectorTestFixtures.ObjectWithoutAnnotatedConstructor;
import org.eclipse.yasson.internal.model.JsonbCreator;
@@ -65,4 +68,21 @@
assertNull(creator);
}
+ @Test
+ public void testAnnotatedInaccessiblePrivateConstructorShouldBeIgnored() {
+ JsonbCreator creator = instrospector.getCreator(constructorsOf(ObjectWithPublicNoArgAndAnnotatedPrivateConstructor.class));
+ assertNull(creator);
+ }
+
+ @Test
+ public void testAnnotatedInaccessiblePackageProtectedConstructorShouldBeIgnored() {
+ JsonbCreator creator = instrospector.getCreator(constructorsOf(ObjectWithPublicNoArgAndAnnotatedPackageProtectedConstructor.class));
+ assertNull(creator);
+ }
+
+ @Test
+ public void testAnnotatedInaccessibleProtectedConstructorShouldBeIgnored() {
+ JsonbCreator creator = instrospector.getCreator(constructorsOf(ObjectWithPublicNoArgAndAnnotatedProtectedConstructor.class));
+ assertNull(creator);
+ }
}
\ No newline at end of file
diff --git a/tck.sh b/tck.sh
old mode 100644
new mode 100755
index 487af85..b5cf594
--- a/tck.sh
+++ b/tck.sh
@@ -9,31 +9,36 @@
# http://www.eclipse.org/org/documents/edl-v10.php.
#
-export TCK_HOME=`pwd`
+mvn clean install -DskipTests
GF_BUNDLE_URL="central.maven.org/maven2/org/glassfish/main/distributions/glassfish/5.1.0/glassfish-5.1.0.zip"
TCK_NAME=jsonb-tck
-TS_HOME=$TCK_HOME/$TCK_NAME
+TCK_VERSION=1.0.0
-mvn clean install -DskipTests
+export TCK_HOME=`pwd`"/target-tck"
+rm -r ${TCK_HOME}
+mkdir ${TCK_HOME}
+cd ${TCK_HOME}
+TS_HOME=${TCK_HOME}/${TCK_NAME}
echo "Downloading JSON-B TCK tests"
-wget -q http://download.eclipse.org/ee4j/jakartaee-tck/jakartaee8-eftl/promoted/eclipse-jsonb-tck-1.0.0.zip
+wget -q http://download.eclipse.org/ee4j/jakartaee-tck/jakartaee8-eftl/promoted/eclipse-${TCK_NAME}-$TCK_VERSION.zip
echo "Exporting downloaded TCK tests"
-unzip -qq eclipse-jsonb-tck-*.zip -d ${TCK_HOME}
+unzip -qq eclipse-${TCK_NAME}-*.zip -d ${TCK_HOME}
echo "Downloading GlassFish"
-wget -q --no-cache $GF_BUNDLE_URL -O latest-glassfish.zip
+wget -q --no-cache ${GF_BUNDLE_URL} -O latest-glassfish.zip
echo "Exporting downloaded GlassFish"
unzip -qq ${TCK_HOME}/latest-glassfish.zip -d ${TCK_HOME}
cp -a ${TCK_HOME}/target/yasson.jar ${TCK_HOME}/glassfish5/glassfish/modules/yasson.jar
-cd $TS_HOME/bin
+cd ${TS_HOME}/bin
-sed -i "s#^report.dir=.*#report.dir=${TS_HOME}report/${TCK_NAME}#g" ts.jte
-sed -i "s#^work.dir=.*#work.dir=${TS_HOME}work/${TCK_NAME}#g" ts.jte
-sed -i "s#jsonb\.classes=.*#jsonb.classes=$TCK_HOME/glassfish5/glassfish/modules/jakarta.json.jar:$TCK_HOME/glassfish5/glassfish/modules/jakarta.json.bind-api.jar:$TCK_HOME/glassfish5/glassfish/modules/jakarta.json.jar:$TCK_HOME/glassfish5/glassfish/modules/jakarta.inject.jar:$TCK_HOME/glassfish5/glassfish/modules/jakarta.servlet-api.jar:$TCK_HOME/glassfish5/glassfish/modules/yasson.jar#" ts.jte
+# Intentionally no space between "-i" and ".bak" for interop with both MacOS and Linux
+sed -i.bak "s#^report.dir=.*#report.dir=${TS_HOME}report/${TCK_NAME}#g" ts.jte
+sed -i.bak "s#^work.dir=.*#work.dir=${TS_HOME}work/${TCK_NAME}#g" ts.jte
+sed -i.bak "s#jsonb\.classes=.*#jsonb.classes=${TCK_HOME}/glassfish5/glassfish/modules/jakarta.json.jar:${TCK_HOME}/glassfish5/glassfish/modules/jakarta.json.bind-api.jar:${TCK_HOME}/glassfish5/glassfish/modules/jakarta.json.jar:${TCK_HOME}/glassfish5/glassfish/modules/jakarta.inject.jar:${TCK_HOME}/glassfish5/glassfish/modules/jakarta.servlet-api.jar:${TCK_HOME}/glassfish5/glassfish/modules/yasson.jar#" ts.jte
# TCK test excludes
# JDK 11 have date formating changed
@@ -55,7 +60,7 @@
mkdir -p ${TS_HOME}work/${TCK_NAME}
# ant config.vi
-cd $TS_HOME/src/com/sun/ts/tests/
+cd ${TS_HOME}/src/com/sun/ts/tests/
#ant deploy.all
ant run.all | tee ${TCK_HOME}/result.log
export FAILED_COUNT=`grep -c "Finished Test: FAILED" ${TCK_HOME}/result.log`
diff --git a/yasson-jmh/.gitignore b/yasson-jmh/.gitignore
new file mode 100644
index 0000000..2f7896d
--- /dev/null
+++ b/yasson-jmh/.gitignore
@@ -0,0 +1 @@
+target/
diff --git a/yasson-jmh/pom.xml b/yasson-jmh/pom.xml
index 4d9db79..233c92e 100644
--- a/yasson-jmh/pom.xml
+++ b/yasson-jmh/pom.xml
@@ -14,7 +14,7 @@
<properties>
<jmh.version>1.21</jmh.version>
- <yasson.version>1.0.3-SNAPSHOT</yasson.version>
+ <yasson.version>1.0.5-SNAPSHOT</yasson.version>
</properties>
@@ -98,4 +98,4 @@
</plugin>
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>