Skip to content

Commit bc49bb6

Browse files
laurentschoelensmattrpav
authored andcommitted
[#568] add example of toString extended strategy and tests for toString OK for each version
1 parent 5adc7ef commit bc49bb6

File tree

43 files changed

+631
-105
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+631
-105
lines changed

basics/tests/po-older-runtime/pom.xml basics/tests/po-0.11.0-runtime/pom.xml

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
<version>2.0.15-SNAPSHOT</version>
99
<relativePath>../../pom.xml</relativePath>
1010
</parent>
11-
<artifactId>jaxb2-basics-test-po-older-runtime</artifactId>
11+
<artifactId>jaxb2-basics-test-po-0.11.0-runtime</artifactId>
1212
<packaging>jar</packaging>
13-
<name>JAXB Tools :: JAXB Basics :: Test [po-older-runtime]</name>
13+
<name>JAXB Tools :: JAXB Basics :: Test [po-0.11.0-runtime]</name>
1414
<dependencies>
1515
<dependency>
1616
<groupId>org.glassfish.jaxb</groupId>
@@ -35,10 +35,12 @@
3535
<artifactId>jaxb-maven-plugin</artifactId>
3636
<configuration>
3737
<extension>true</extension>
38-
<generatePackage>generatedolder</generatePackage>
38+
<generatePackage>generated.v0_11_0</generatePackage>
3939
<args>
4040
<arg>-Xequals</arg>
4141
<arg>-XhashCode</arg>
42+
<arg>-XtoString</arg>
43+
<arg>-XtoString-toStringStrategyClass=internal.v0_11_0.EnumToStringStrategy</arg>
4244
</args>
4345
<plugins>
4446
<plugin>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package internal.v0_11_0;
2+
3+
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
4+
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
5+
6+
public class EnumToStringStrategy extends JAXBToStringStrategy {
7+
8+
public boolean isUseIdentityHashCode() {
9+
return false;
10+
}
11+
12+
public StringBuilder appendStart(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
13+
if (parent instanceof Enum) {
14+
return stringBuilder;
15+
} else {
16+
return super.appendStart(parentLocator, parent, stringBuilder);
17+
}
18+
}
19+
20+
public StringBuilder appendEnd(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
21+
if (parent instanceof Enum) {
22+
return appendEnum((Enum) parent, stringBuilder);
23+
} else {
24+
return super.appendEnd(parentLocator, parent, stringBuilder);
25+
}
26+
}
27+
28+
protected StringBuilder appendEnum(Enum e, StringBuilder stringBuilder) {
29+
stringBuilder.append(e.name());
30+
return stringBuilder;
31+
}
32+
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.jvnet.jaxb2_commons.tests.v0_11_0;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class EqualsPo_V0_11_0_Test {
7+
8+
@Test
9+
public void testEqualsOld() {
10+
generated.v0_11_0.Items.Item item = new generated.v0_11_0.Items.Item();
11+
item.setComment("a");
12+
13+
14+
generated.v0_11_0.Items.Item anotherItem = new generated.v0_11_0.Items.Item();
15+
anotherItem.setComment("a");
16+
17+
Assert.assertEquals("equals doesnt work with 0.11.0 runtime", item, anotherItem);
18+
}
19+
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.jvnet.jaxb2_commons.tests.v0_11_0;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class ToStringPo_V0_11_0_Test {
7+
8+
@Test
9+
public void testToString() {
10+
generated.v0_11_0.Items.Item item = new generated.v0_11_0.Items.Item();
11+
item.setComment("a");
12+
13+
Assert.assertEquals("toString doesnt work with 0.11.0 runtime",
14+
"generated.v0_11_0.Items$Item[productName=<null>(default), quantity=0, usPrice=<null>(default), comment=a, shipDate=<null>(default), partNum=<null>(default)]",
15+
item.toString());
16+
}
17+
18+
}

basics/tests/po-old-runtime/pom.xml basics/tests/po-0.13.1-runtime/pom.xml

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
<version>2.0.15-SNAPSHOT</version>
99
<relativePath>../../pom.xml</relativePath>
1010
</parent>
11-
<artifactId>jaxb2-basics-test-po-old-runtime</artifactId>
11+
<artifactId>jaxb2-basics-test-po-0.13.1-runtime</artifactId>
1212
<packaging>jar</packaging>
13-
<name>JAXB Tools :: JAXB Basics :: Test [po-old-runtime]</name>
13+
<name>JAXB Tools :: JAXB Basics :: Test [po-0.13.1-runtime]</name>
1414
<dependencies>
1515
<dependency>
1616
<groupId>org.glassfish.jaxb</groupId>
@@ -35,10 +35,12 @@
3535
<artifactId>jaxb-maven-plugin</artifactId>
3636
<configuration>
3737
<extension>true</extension>
38-
<generatePackage>generatedold</generatePackage>
38+
<generatePackage>generated.v0_13_1</generatePackage>
3939
<args>
4040
<arg>-Xequals</arg>
4141
<arg>-XhashCode</arg>
42+
<arg>-XtoString</arg>
43+
<arg>-XtoString-toStringStrategyClass=internal.v0_13_1.EnumToStringStrategy</arg>
4244
</args>
4345
<plugins>
4446
<plugin>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package internal.v0_13_1;
2+
3+
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
4+
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
5+
6+
public class EnumToStringStrategy extends JAXBToStringStrategy {
7+
8+
public boolean isUseIdentityHashCode() {
9+
return false;
10+
}
11+
12+
public StringBuilder appendStart(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
13+
if (parent instanceof Enum) {
14+
return stringBuilder;
15+
} else {
16+
return super.appendStart(parentLocator, parent, stringBuilder);
17+
}
18+
}
19+
20+
public StringBuilder appendEnd(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
21+
if (parent instanceof Enum) {
22+
return appendEnum((Enum) parent, stringBuilder);
23+
} else {
24+
return super.appendEnd(parentLocator, parent, stringBuilder);
25+
}
26+
}
27+
28+
protected StringBuilder appendEnum(Enum e, StringBuilder stringBuilder) {
29+
stringBuilder.append(e.name());
30+
return stringBuilder;
31+
}
32+
33+
}

basics/tests/po-old-runtime/src/test/java/org/jvnet/jaxb2_commons/tests/old/EqualsPoOldTest.java basics/tests/po-0.13.1-runtime/src/test/java/org/jvnet/jaxb2_commons/tests/v0_13_1/EqualsPo_V0_13_1_Test.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
package org.jvnet.jaxb2_commons.tests.old;
1+
package org.jvnet.jaxb2_commons.tests.v0_13_1;
22

33
import org.junit.Assert;
44
import org.junit.Test;
55

6-
public class EqualsPoOldTest {
6+
public class EqualsPo_V0_13_1_Test {
77

88
@Test
99
public void testEqualsOld() {
10-
generatedold.Items.Item item = new generatedold.Items.Item();
10+
generated.v0_13_1.Items.Item item = new generated.v0_13_1.Items.Item();
1111
item.setComment("a");
1212

1313

14-
generatedold.Items.Item anotherItem = new generatedold.Items.Item();
14+
generated.v0_13_1.Items.Item anotherItem = new generated.v0_13_1.Items.Item();
1515
anotherItem.setComment("a");
1616

1717
Assert.assertEquals("equals doesnt work with 0.13.1 runtime", item, anotherItem);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.jvnet.jaxb2_commons.tests.v0_13_1;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class ToStringPo_V0_13_1_Test {
7+
8+
@Test
9+
public void testToString() {
10+
generated.v0_13_1.Items.Item item = new generated.v0_13_1.Items.Item();
11+
item.setComment("a");
12+
13+
Assert.assertEquals("toString doesnt work with 0.13.1 runtime",
14+
"generated.v0_13_1.Items$Item[productName=<null>(default), quantity=0, usPrice=<null>(default), comment=a, shipDate=<null>(default), partNum=<null>(default)]",
15+
item.toString());
16+
}
17+
18+
}

basics/tests/po-fake-older-runtime/pom.xml basics/tests/po-1.11.1-runtime/pom.xml

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
<version>2.0.15-SNAPSHOT</version>
99
<relativePath>../../pom.xml</relativePath>
1010
</parent>
11-
<artifactId>jaxb2-basics-test-po-fake-older-runtime</artifactId>
11+
<artifactId>jaxb2-basics-test-po-1.11.1-runtime</artifactId>
1212
<packaging>jar</packaging>
13-
<name>JAXB Tools :: JAXB Basics :: Test [po-fake-older-runtime]</name>
13+
<name>JAXB Tools :: JAXB Basics :: Test [po-1.11.1-runtime]</name>
1414
<dependencies>
1515
<dependency>
1616
<groupId>org.glassfish.jaxb</groupId>
@@ -35,10 +35,12 @@
3535
<artifactId>jaxb-maven-plugin</artifactId>
3636
<configuration>
3737
<extension>true</extension>
38-
<generatePackage>generatedfakeolder</generatePackage>
38+
<generatePackage>generated.v1_11_1</generatePackage>
3939
<args>
4040
<arg>-Xequals</arg>
4141
<arg>-XhashCode</arg>
42+
<arg>-XtoString</arg>
43+
<arg>-XtoString-toStringStrategyClass=internal.v1_11_1.EnumToStringStrategy</arg>
4244
</args>
4345
<plugins>
4446
<plugin>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package internal.v1_11_1;
2+
3+
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
4+
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
5+
6+
public class EnumToStringStrategy extends JAXBToStringStrategy {
7+
8+
public boolean isUseIdentityHashCode() {
9+
return false;
10+
}
11+
12+
public StringBuilder appendStart(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
13+
if (parent instanceof Enum) {
14+
return stringBuilder;
15+
} else {
16+
return super.appendStart(parentLocator, parent, stringBuilder);
17+
}
18+
}
19+
20+
public StringBuilder appendEnd(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
21+
if (parent instanceof Enum) {
22+
return appendEnum((Enum) parent, stringBuilder);
23+
} else {
24+
return super.appendEnd(parentLocator, parent, stringBuilder);
25+
}
26+
}
27+
28+
protected StringBuilder appendEnum(Enum e, StringBuilder stringBuilder) {
29+
stringBuilder.append(e.name());
30+
return stringBuilder;
31+
}
32+
33+
}

basics/tests/po-fake-older-runtime/src/test/java/org/jvnet/jaxb2_commons/tests/fakeolder/EqualsPoFakeOlderTest.java basics/tests/po-1.11.1-runtime/src/test/java/org/jvnet/jaxb2_commons/tests/v1_11_1/EqualsPo_V1_11_1_Test.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
package org.jvnet.jaxb2_commons.tests.fakeolder;
1+
package org.jvnet.jaxb2_commons.tests.v1_11_1;
22

33
import org.junit.Assert;
44
import org.junit.Test;
55

6-
public class EqualsPoFakeOlderTest {
6+
public class EqualsPo_V1_11_1_Test {
77

88
@Test
99
public void testEqualsFakeOlder() {
10-
generatedfakeolder.Items.Item item = new generatedfakeolder.Items.Item();
10+
generated.v1_11_1.Items.Item item = new generated.v1_11_1.Items.Item();
1111
item.setComment("a");
1212

1313

14-
generatedfakeolder.Items.Item anotherItem = new generatedfakeolder.Items.Item();
14+
generated.v1_11_1.Items.Item anotherItem = new generated.v1_11_1.Items.Item();
1515
anotherItem.setComment("a");
1616

1717
Assert.assertEquals("equals doesnt work with 1.11.1 runtime", item, anotherItem);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.jvnet.jaxb2_commons.tests.v1_11_1;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class ToStringPo_V1_11_1_Test {
7+
8+
@Test
9+
public void testToString() {
10+
generated.v1_11_1.Items.Item item = new generated.v1_11_1.Items.Item();
11+
item.setComment("a");
12+
13+
Assert.assertEquals("toString doesnt work with 1.11.1 runtime",
14+
"generated.v1_11_1.Items$Item[productName=<null>(default), quantity=0, usPrice=<null>(default), comment=a, shipDate=<null>(default), partNum=<null>(default)]",
15+
item.toString());
16+
}
17+
18+
}
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>org.jvnet.jaxb</groupId>
7+
<artifactId>jaxb-basics-project</artifactId>
8+
<version>2.0.15-SNAPSHOT</version>
9+
<relativePath>../../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>jaxb2-basics-test-po-2.0.14-runtime</artifactId>
12+
<packaging>jar</packaging>
13+
<name>JAXB Tools :: JAXB Basics :: Test [po-2.0.14-runtime]</name>
14+
<dependencies>
15+
<dependency>
16+
<groupId>org.glassfish.jaxb</groupId>
17+
<artifactId>jaxb-runtime</artifactId>
18+
</dependency>
19+
<dependency>
20+
<groupId>org.jvnet.jaxb</groupId>
21+
<artifactId>jaxb-maven-plugin-testing</artifactId>
22+
<scope>test</scope>
23+
</dependency>
24+
<dependency>
25+
<groupId>org.jvnet.jaxb</groupId>
26+
<artifactId>jaxb2-basics-runtime</artifactId>
27+
<version>2.0.14</version>
28+
</dependency>
29+
</dependencies>
30+
<build>
31+
<defaultGoal>test</defaultGoal>
32+
<plugins>
33+
<plugin>
34+
<groupId>org.jvnet.jaxb</groupId>
35+
<artifactId>jaxb-maven-plugin</artifactId>
36+
<configuration>
37+
<extension>true</extension>
38+
<generatePackage>generated.v2_0_14</generatePackage>
39+
<args>
40+
<arg>-Xequals</arg>
41+
<arg>-XhashCode</arg>
42+
<arg>-XtoString</arg>
43+
<arg>-XtoString-toStringStrategyClass=internal.v2_0_14.EnumToStringStrategy</arg>
44+
</args>
45+
<plugins>
46+
<plugin>
47+
<groupId>org.jvnet.jaxb</groupId>
48+
<artifactId>jaxb2-basics</artifactId>
49+
<version>2.0.14</version>
50+
</plugin>
51+
</plugins>
52+
</configuration>
53+
</plugin>
54+
</plugins>
55+
</build>
56+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package internal.v2_0_14;
2+
3+
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
4+
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
5+
6+
public class EnumToStringStrategy extends JAXBToStringStrategy {
7+
8+
public boolean isUseIdentityHashCode() {
9+
return false;
10+
}
11+
12+
public StringBuilder appendStart(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
13+
if (parent instanceof Enum) {
14+
return stringBuilder;
15+
} else {
16+
return super.appendStart(parentLocator, parent, stringBuilder);
17+
}
18+
}
19+
20+
public StringBuilder appendEnd(ObjectLocator parentLocator, Object parent, StringBuilder stringBuilder) {
21+
if (parent instanceof Enum) {
22+
return appendEnum((Enum) parent, stringBuilder);
23+
} else {
24+
return super.appendEnd(parentLocator, parent, stringBuilder);
25+
}
26+
}
27+
28+
protected StringBuilder appendEnum(Enum e, StringBuilder stringBuilder) {
29+
stringBuilder.append(e.name());
30+
return stringBuilder;
31+
}
32+
33+
}

0 commit comments

Comments
 (0)