Merge code for XStream JSON processing article
This commit is contained in:
commit
3a5dc3d746
|
@ -14,6 +14,12 @@
|
||||||
<version>1.4.5</version>
|
<version>1.4.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.codehaus.jettison</groupId>
|
||||||
|
<artifactId>jettison</artifactId>
|
||||||
|
<version>1.3.7</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
|
|
|
@ -1,19 +1,23 @@
|
||||||
package com.baeldung.initializer;
|
package com.baeldung.initializer;
|
||||||
|
|
||||||
import com.thoughtworks.xstream.XStream;
|
import com.thoughtworks.xstream.XStream;
|
||||||
|
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
|
||||||
|
import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
|
||||||
|
|
||||||
public class SimpleXstreamInitializer {
|
public class SimpleXstreamInitializer {
|
||||||
|
|
||||||
private XStream xtreamInstance;
|
|
||||||
|
|
||||||
public XStream getXstreamInstance() {
|
public XStream getXstreamInstance() {
|
||||||
if (xtreamInstance == null) {
|
XStream xtreamInstance = new XStream();
|
||||||
synchronized (SimpleXstreamInitializer.class) {
|
|
||||||
if (xtreamInstance == null) {
|
|
||||||
xtreamInstance = new XStream();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return xtreamInstance;
|
return xtreamInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public XStream getXstreamJettisonMappedInstance() {
|
||||||
|
XStream xstreamInstance = new XStream(new JettisonMappedXmlDriver());
|
||||||
|
return xstreamInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public XStream getXstreamJsonHierarchicalInstance() {
|
||||||
|
XStream xstreamInstance = new XStream(new JsonHierarchicalStreamDriver());
|
||||||
|
return xstreamInstance;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,12 +1,10 @@
|
||||||
# Root logger option
|
# Root logger option
|
||||||
log4j.rootLogger=DEBUG, file
|
log4j.rootLogger=DEBUG, file
|
||||||
|
|
||||||
# Redirect log messages to console
|
# Redirect log messages to console
|
||||||
# log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
# log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||||
# log4j.appender.stdout.Target=System.out
|
# log4j.appender.stdout.Target=System.out
|
||||||
# log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
# log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||||
# log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
|
# log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
|
||||||
|
|
||||||
# Redirect log messages to a log file, support file rolling.
|
# Redirect log messages to a log file, support file rolling.
|
||||||
log4j.appender.file=org.apache.log4j.RollingFileAppender
|
log4j.appender.file=org.apache.log4j.RollingFileAppender
|
||||||
log4j.appender.file.File=D:\\Test\\xstream-application.log
|
log4j.appender.file.File=D:\\Test\\xstream-application.log
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.baeldung.test;
|
||||||
|
|
||||||
|
import com.baeldung.initializer.SimpleXstreamInitializer;
|
||||||
|
import com.baeldung.pojo.ContactDetails;
|
||||||
|
import com.baeldung.pojo.Customer;
|
||||||
|
import com.baeldung.utility.SimpleDataGeneration;
|
||||||
|
import com.thoughtworks.xstream.XStream;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class XStreamJettisonTest {
|
||||||
|
|
||||||
|
private Customer customer = null;
|
||||||
|
|
||||||
|
private String dataJson = null;
|
||||||
|
|
||||||
|
private XStream xstream = null;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void dataSetup() {
|
||||||
|
SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer();
|
||||||
|
xstream = simpleXstreamInitializer.getXstreamJettisonMappedInstance();
|
||||||
|
xstream.processAnnotations(Customer.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void convertObjectToJson() {
|
||||||
|
customer = SimpleDataGeneration.generateData();
|
||||||
|
xstream.alias("customer", Customer.class);
|
||||||
|
xstream.alias("contactDetails", ContactDetails.class);
|
||||||
|
xstream.aliasField("fn", Customer.class, "firstName");
|
||||||
|
dataJson = xstream.toXML(customer);
|
||||||
|
System.out.println(dataJson);
|
||||||
|
Assert.assertNotNull(dataJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void convertJsonToObject() {
|
||||||
|
customer = SimpleDataGeneration.generateData();
|
||||||
|
dataJson = xstream.toXML(customer);
|
||||||
|
customer = (Customer) xstream.fromXML(dataJson);
|
||||||
|
System.out.println(customer);
|
||||||
|
Assert.assertNotNull(customer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.baeldung.test;
|
||||||
|
|
||||||
|
import com.baeldung.initializer.SimpleXstreamInitializer;
|
||||||
|
import com.baeldung.pojo.ContactDetails;
|
||||||
|
import com.baeldung.pojo.Customer;
|
||||||
|
import com.baeldung.utility.SimpleDataGeneration;
|
||||||
|
import com.thoughtworks.xstream.XStream;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class XStreamJsonHierarchicalTest {
|
||||||
|
|
||||||
|
private Customer customer = null;
|
||||||
|
private String dataJson = null;
|
||||||
|
private XStream xstream = null;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void dataSetup() {
|
||||||
|
SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer();
|
||||||
|
xstream = simpleXstreamInitializer.getXstreamJsonHierarchicalInstance();
|
||||||
|
xstream.processAnnotations(Customer.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void convertObjectToJson() {
|
||||||
|
customer = SimpleDataGeneration.generateData();
|
||||||
|
xstream.alias("customer", Customer.class);
|
||||||
|
xstream.alias("contactDetails", ContactDetails.class);
|
||||||
|
xstream.aliasField("fn", Customer.class, "firstName");
|
||||||
|
dataJson = xstream.toXML(customer);
|
||||||
|
System.out.println(dataJson);
|
||||||
|
Assert.assertNotNull(dataJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = UnsupportedOperationException.class)
|
||||||
|
public void convertJsonToObject() {
|
||||||
|
customer = SimpleDataGeneration.generateData();
|
||||||
|
dataJson = xstream.toXML(customer);
|
||||||
|
customer = (Customer) xstream.fromXML(dataJson);
|
||||||
|
Assert.assertNotNull(customer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue