From ed629e7a49f36ad0ec7dd40b22396f59e06efb39 Mon Sep 17 00:00:00 2001 From: David Morley Date: Mon, 4 Apr 2016 05:18:35 -0500 Subject: [PATCH] Clean up XStream examples --- xstream-introduction/.project | 14 ----- .../baeldung/annotation/pojo/Customer.java | 46 -------------- .../annotation/pojo/CustomerOmitField.java | 50 --------------- .../baeldung/complex/pojo/ContactDetails.java | 46 -------------- .../com/baeldung/complex/pojo/Customer.java | 57 ----------------- .../collection/pojo/ContactDetails.java | 46 -------------- .../implicit/collection/pojo/Customer.java | 59 ------------------ .../initializer/SimpleXstreamInitializer.java | 19 ------ .../com/baeldung/pojo/AddressDetails.java | 40 ------------ .../com/baeldung/pojo/ContactDetails.java | 28 --------- .../main/java/com/baeldung/pojo/Customer.java | 57 ----------------- .../baeldung/pojo/CustomerAddressDetails.java | 50 --------------- .../com/baeldung/pojo/CustomerPortfolio.java | 20 ------ .../com/baeldung/utility/MyDateConverter.java | 40 ------------ .../utility/MySingleValueConverter.java | 28 --------- .../utility/SimpleDataGeneration.java | 37 ----------- .../ComplexXmlToObjectAnnotationTest.java | 39 ------------ ...lexXmlToObjectAttributeCollectionTest.java | 43 ------------- .../ComplexXmlToObjectCollectionTest.java | 40 ------------ .../pojo/test/XmlToObjectAliasTest.java | 38 ------------ .../pojo/test/XmlToObjectAnnotationTest.java | 39 ------------ .../pojo/test/XmlToObjectFieldAliasTest.java | 40 ------------ .../test/XmlToObjectIgnoreFieldsTest.java | 39 ------------ .../baeldung/pojo/test/XmlToObjectTest.java | 47 -------------- .../utility/XStreamSimpleXmlTest.java | 61 ------------------- .../data-file-alias-field-complex.xml | 15 ----- .../test/resources/data-file-alias-field.xml | 5 -- .../data-file-alias-implicit-collection.xml | 13 ---- .../src/test/resources/data-file-alias.xml | 5 -- .../test/resources/data-file-ignore-field.xml | 6 -- .../src/test/resources/data-file.xml | 5 -- {xstream-introduction => xstream}/pom.xml | 14 +++++ .../baeldung/annotation/pojo/Customer.java | 46 ++++++++++++++ .../annotation/pojo/CustomerOmitField.java | 50 +++++++++++++++ .../baeldung/complex/pojo/ContactDetails.java | 46 ++++++++++++++ .../com/baeldung/complex/pojo/Customer.java | 57 +++++++++++++++++ .../collection/pojo/ContactDetails.java | 46 ++++++++++++++ .../implicit/collection/pojo/Customer.java | 59 ++++++++++++++++++ .../initializer/SimpleXstreamInitializer.java | 19 ++++++ .../com/baeldung/pojo/AddressDetails.java | 40 ++++++++++++ .../com/baeldung/pojo/ContactDetails.java | 28 +++++++++ .../main/java/com/baeldung/pojo/Customer.java | 57 +++++++++++++++++ .../baeldung/pojo/CustomerAddressDetails.java | 50 +++++++++++++++ .../com/baeldung/pojo/CustomerPortfolio.java | 20 ++++++ .../com/baeldung/utility/MyDateConverter.java | 40 ++++++++++++ .../utility/MySingleValueConverter.java | 28 +++++++++ .../utility/SimpleDataGeneration.java | 37 +++++++++++ .../src/main/resources/log4j.properties | 0 .../ComplexXmlToObjectAnnotationTest.java | 38 ++++++++++++ ...lexXmlToObjectAttributeCollectionTest.java | 42 +++++++++++++ .../ComplexXmlToObjectCollectionTest.java | 39 ++++++++++++ .../pojo/test/XmlToObjectAliasTest.java | 37 +++++++++++ .../pojo/test/XmlToObjectAnnotationTest.java | 38 ++++++++++++ .../pojo/test/XmlToObjectFieldAliasTest.java | 39 ++++++++++++ .../test/XmlToObjectIgnoreFieldsTest.java | 38 ++++++++++++ .../baeldung/pojo/test/XmlToObjectTest.java | 46 ++++++++++++++ .../utility/XStreamSimpleXmlTest.java | 57 +++++++++++++++++ .../data-file-alias-field-complex.xml | 15 +++++ .../test/resources/data-file-alias-field.xml | 5 ++ .../data-file-alias-implicit-collection.xml | 13 ++++ .../src/test/resources/data-file-alias.xml | 5 ++ .../test/resources/data-file-ignore-field.xml | 6 ++ xstream/src/test/resources/data-file.xml | 5 ++ 63 files changed, 1060 insertions(+), 1072 deletions(-) delete mode 100644 xstream-introduction/.project delete mode 100644 xstream-introduction/src/main/java/com/baeldung/annotation/pojo/Customer.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/complex/pojo/ContactDetails.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/complex/pojo/Customer.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/pojo/AddressDetails.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/pojo/ContactDetails.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/pojo/Customer.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/pojo/CustomerPortfolio.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/utility/MyDateConverter.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/utility/MySingleValueConverter.java delete mode 100644 xstream-introduction/src/main/java/com/baeldung/utility/SimpleDataGeneration.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java delete mode 100644 xstream-introduction/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java delete mode 100644 xstream-introduction/src/test/resources/data-file-alias-field-complex.xml delete mode 100644 xstream-introduction/src/test/resources/data-file-alias-field.xml delete mode 100644 xstream-introduction/src/test/resources/data-file-alias-implicit-collection.xml delete mode 100644 xstream-introduction/src/test/resources/data-file-alias.xml delete mode 100644 xstream-introduction/src/test/resources/data-file-ignore-field.xml delete mode 100644 xstream-introduction/src/test/resources/data-file.xml rename {xstream-introduction => xstream}/pom.xml (75%) create mode 100644 xstream/src/main/java/com/baeldung/annotation/pojo/Customer.java create mode 100644 xstream/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java create mode 100644 xstream/src/main/java/com/baeldung/complex/pojo/ContactDetails.java create mode 100644 xstream/src/main/java/com/baeldung/complex/pojo/Customer.java create mode 100644 xstream/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java create mode 100644 xstream/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java create mode 100644 xstream/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java create mode 100644 xstream/src/main/java/com/baeldung/pojo/AddressDetails.java create mode 100644 xstream/src/main/java/com/baeldung/pojo/ContactDetails.java create mode 100644 xstream/src/main/java/com/baeldung/pojo/Customer.java create mode 100644 xstream/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java create mode 100644 xstream/src/main/java/com/baeldung/pojo/CustomerPortfolio.java create mode 100644 xstream/src/main/java/com/baeldung/utility/MyDateConverter.java create mode 100644 xstream/src/main/java/com/baeldung/utility/MySingleValueConverter.java create mode 100644 xstream/src/main/java/com/baeldung/utility/SimpleDataGeneration.java rename {xstream-introduction => xstream}/src/main/resources/log4j.properties (100%) create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java create mode 100644 xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java create mode 100644 xstream/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java create mode 100644 xstream/src/test/resources/data-file-alias-field-complex.xml create mode 100644 xstream/src/test/resources/data-file-alias-field.xml create mode 100644 xstream/src/test/resources/data-file-alias-implicit-collection.xml create mode 100644 xstream/src/test/resources/data-file-alias.xml create mode 100644 xstream/src/test/resources/data-file-ignore-field.xml create mode 100644 xstream/src/test/resources/data-file.xml diff --git a/xstream-introduction/.project b/xstream-introduction/.project deleted file mode 100644 index cebf3c9cfa..0000000000 --- a/xstream-introduction/.project +++ /dev/null @@ -1,14 +0,0 @@ - - - xstream-introduction - An Introduction To XStream. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse. - - - - org.eclipse.jdt.core.javabuilder - - - - org.eclipse.jdt.core.javanature - - \ No newline at end of file diff --git a/xstream-introduction/src/main/java/com/baeldung/annotation/pojo/Customer.java b/xstream-introduction/src/main/java/com/baeldung/annotation/pojo/Customer.java deleted file mode 100644 index 42d1d039b0..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/annotation/pojo/Customer.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.annotation.pojo; - -import java.util.Date; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("customer") -public class Customer { - - @XStreamAlias("fn") - private String firstName; - - private String lastName; - - private Date dob; - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public Date getDob() { - return dob; - } - - public void setDob(Date dob) { - this.dob = dob; - } - - @Override - public String toString() { - return "Customer [firstName=" + firstName + ", lastName=" + lastName - + ", dob=" + dob + "]"; - } -} diff --git a/xstream-introduction/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java b/xstream-introduction/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java deleted file mode 100644 index 881d7a5fc7..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.baeldung.annotation.pojo; - -import java.util.Date; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamOmitField; - - -@XStreamAlias("customer") -public class CustomerOmitField { - - @XStreamOmitField - private String firstName; - - private String lastName; - - private Date dob; - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public Date getDob() { - return dob; - } - - public void setDob(Date dob) { - this.dob = dob; - } - - @Override - public String toString() { - return "CustomerOmitAnnotation [firstName=" + firstName + ", lastName=" - + lastName + ", dob=" + dob + "]"; - } - - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/complex/pojo/ContactDetails.java b/xstream-introduction/src/main/java/com/baeldung/complex/pojo/ContactDetails.java deleted file mode 100644 index 88e721a84b..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/complex/pojo/ContactDetails.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.complex.pojo; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; - -@XStreamAlias("ContactDetails") -public class ContactDetails { - - private String mobile; - - private String landline; - - @XStreamAsAttribute - private String contactType; - - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - public String getLandline() { - return landline; - } - - public void setLandline(String landline) { - this.landline = landline; - } - - public String getContactType() { - return contactType; - } - - public void setContactType(String contactType) { - this.contactType = contactType; - } - - @Override - public String toString() { - return "ContactDetails [mobile=" + mobile + ", landline=" + landline - + ", contactType=" + contactType + "]"; - } - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/complex/pojo/Customer.java b/xstream-introduction/src/main/java/com/baeldung/complex/pojo/Customer.java deleted file mode 100644 index 0cc3160c03..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/complex/pojo/Customer.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.baeldung.complex.pojo; - -import java.util.Date; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("customer") -public class Customer { - - private String firstName; - - private String lastName; - - private Date dob; - - private List contactDetailsList; - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public Date getDob() { - return dob; - } - - public void setDob(Date dob) { - this.dob = dob; - } - - public List getContactDetailsList() { - return contactDetailsList; - } - - public void setContactDetailsList(List contactDetailsList) { - this.contactDetailsList = contactDetailsList; - } - - @Override - public String toString() { - return "Customer [firstName=" + firstName + ", lastName=" + lastName - + ", dob=" + dob + ", contactDetailsList=" + contactDetailsList - + "]"; - } -} diff --git a/xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java b/xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java deleted file mode 100644 index 6d6a63bd7a..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.implicit.collection.pojo; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; - -@XStreamAlias("ContactDetails") -public class ContactDetails { - - private String mobile; - - private String landline; - - @XStreamAsAttribute - private String contactType; - - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - public String getLandline() { - return landline; - } - - public void setLandline(String landline) { - this.landline = landline; - } - - public String getContactType() { - return contactType; - } - - public void setContactType(String contactType) { - this.contactType = contactType; - } - - @Override - public String toString() { - return "ContactDetails [mobile=" + mobile + ", landline=" + landline - + ", contactType=" + contactType + "]"; - } - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java b/xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java deleted file mode 100644 index acbeff165e..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.baeldung.implicit.collection.pojo; - -import java.util.Date; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -@XStreamAlias("customer") -public class Customer { - - private String firstName; - - private String lastName; - - private Date dob; - - @XStreamImplicit - private List contactDetailsList; - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public Date getDob() { - return dob; - } - - public void setDob(Date dob) { - this.dob = dob; - } - - public List getContactDetailsList() { - return contactDetailsList; - } - - public void setContactDetailsList(List contactDetailsList) { - this.contactDetailsList = contactDetailsList; - } - - @Override - public String toString() { - return "Customer [firstName=" + firstName + ", lastName=" + lastName - + ", dob=" + dob + ", contactDetailsList=" + contactDetailsList - + "]"; - } -} diff --git a/xstream-introduction/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java b/xstream-introduction/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java deleted file mode 100644 index d7dc3f7a81..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.initializer; - -import com.thoughtworks.xstream.XStream; - -public class SimpleXstreamInitializer { - - private XStream xtreamInstance; - - public XStream getXstreamInstance() { - if (xtreamInstance == null) { - synchronized (SimpleXstreamInitializer.class) { - if (xtreamInstance == null) { - xtreamInstance = new XStream(); - } - } - } - return xtreamInstance; - } -} \ No newline at end of file diff --git a/xstream-introduction/src/main/java/com/baeldung/pojo/AddressDetails.java b/xstream-introduction/src/main/java/com/baeldung/pojo/AddressDetails.java deleted file mode 100644 index e9e30bf5fc..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/pojo/AddressDetails.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.baeldung.pojo; - -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("AddressDetails") -public class AddressDetails { - - private String address; - - private String zipcode; - - private List contactDetails; - - public String getZipcode() { - return zipcode; - } - - public void setZipcode(String zipcode) { - this.zipcode = zipcode; - } - - public List getContactDetails() { - return contactDetails; - } - - public void setContactDetails(List contactDetails) { - this.contactDetails = contactDetails; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/pojo/ContactDetails.java b/xstream-introduction/src/main/java/com/baeldung/pojo/ContactDetails.java deleted file mode 100644 index 66475b9d8e..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/pojo/ContactDetails.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.pojo; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("ContactDetails") -public class ContactDetails { - - private String mobile; - - private String landline; - - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - public String getLandline() { - return landline; - } - - public void setLandline(String landline) { - this.landline = landline; - } - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/pojo/Customer.java b/xstream-introduction/src/main/java/com/baeldung/pojo/Customer.java deleted file mode 100644 index 9bed3394ef..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/pojo/Customer.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.baeldung.pojo; - -import java.util.Date; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -@XStreamAlias("customer") -public class Customer { - - private String firstName; - - private String lastName; - - private Date dob; - - @XStreamImplicit - private List contactDetailsList; - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public Date getDob() { - return dob; - } - - public void setDob(Date dob) { - this.dob = dob; - } - - public List getContactDetailsList() { - return contactDetailsList; - } - - public void setContactDetailsList(List contactDetailsList) { - this.contactDetailsList = contactDetailsList; - } - - @Override - public String toString() { - return "Customer [firstName=" + firstName + ", lastName=" + lastName + ", dob=" + dob + "]"; - } -} diff --git a/xstream-introduction/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java b/xstream-introduction/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java deleted file mode 100644 index 30fda1b92c..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.baeldung.pojo; - -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("CustomerAddressDetails") -public class CustomerAddressDetails { - - private List addressDetails; - - private String firstName; - - private String lastName; - - private int age; - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - - public List getAddressDetails() { - return addressDetails; - } - - public void setAddressDetails(List addressDetails) { - this.addressDetails = addressDetails; - } -} diff --git a/xstream-introduction/src/main/java/com/baeldung/pojo/CustomerPortfolio.java b/xstream-introduction/src/main/java/com/baeldung/pojo/CustomerPortfolio.java deleted file mode 100644 index 6f1ce4b651..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/pojo/CustomerPortfolio.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.pojo; - -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("CustomerPortfolio") -public class CustomerPortfolio { - - private List customerAddressDetailsList; - - public List getCustomerAddressDetailsList() { - return customerAddressDetailsList; - } - - public void setCustomerAddressDetailsList(List customerAddressDetailsList) { - this.customerAddressDetailsList = customerAddressDetailsList; - } - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/utility/MyDateConverter.java b/xstream-introduction/src/main/java/com/baeldung/utility/MyDateConverter.java deleted file mode 100644 index 564a28d1c5..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/utility/MyDateConverter.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.baeldung.utility; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.GregorianCalendar; - -import com.thoughtworks.xstream.converters.ConversionException; -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.MarshallingContext; -import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.io.HierarchicalStreamReader; -import com.thoughtworks.xstream.io.HierarchicalStreamWriter; - -public class MyDateConverter implements Converter { - - private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); - - @Override - public boolean canConvert(Class clazz) { - return Date.class.isAssignableFrom(clazz); - } - - @Override - public void marshal(Object value , HierarchicalStreamWriter writer , MarshallingContext arg2) { - Date date = (Date) value; - writer.setValue(formatter.format(date)); - } - - @Override - public Object unmarshal(HierarchicalStreamReader reader , UnmarshallingContext arg1) { - GregorianCalendar calendar = new GregorianCalendar(); - try { - calendar.setTime(formatter.parse(reader.getValue())); - } catch (ParseException e) { - throw new ConversionException(e.getMessage() , e); - } - return calendar; - } -} diff --git a/xstream-introduction/src/main/java/com/baeldung/utility/MySingleValueConverter.java b/xstream-introduction/src/main/java/com/baeldung/utility/MySingleValueConverter.java deleted file mode 100644 index 358d647835..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/utility/MySingleValueConverter.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.utility; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import com.baeldung.pojo.Customer; -import com.thoughtworks.xstream.converters.SingleValueConverter; - -public class MySingleValueConverter implements SingleValueConverter { - - @Override - public boolean canConvert(Class clazz) { - return Customer.class.isAssignableFrom(clazz); - } - - @Override - public Object fromString(String arg0) { - return null; - } - - @Override - public String toString(Object obj) { - SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); - Date date = ((Customer) obj).getDob(); - return ((Customer) obj).getFirstName() + "," + ((Customer) obj).getLastName() + "," + formatter.format(date); - } - -} diff --git a/xstream-introduction/src/main/java/com/baeldung/utility/SimpleDataGeneration.java b/xstream-introduction/src/main/java/com/baeldung/utility/SimpleDataGeneration.java deleted file mode 100644 index 22d0f0ce77..0000000000 --- a/xstream-introduction/src/main/java/com/baeldung/utility/SimpleDataGeneration.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.baeldung.utility; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import com.baeldung.pojo.ContactDetails; -import com.baeldung.pojo.Customer; - -public class SimpleDataGeneration { - - public static Customer generateData() { - Customer customer = new Customer(); - Calendar cal = Calendar.getInstance(); - cal.set(1986 , 01 , 14); - customer.setDob(cal.getTime()); - customer.setFirstName("XStream"); - customer.setLastName("Java"); - - List contactDetailsList = new ArrayList(); - - ContactDetails contactDetails1 = new ContactDetails(); - contactDetails1.setLandline("0124-2460311"); - contactDetails1.setMobile("6673543265"); - - ContactDetails contactDetails2 = new ContactDetails(); - contactDetails2.setLandline("0120-223312"); - contactDetails2.setMobile("4676543565"); - - contactDetailsList.add(contactDetails1); - contactDetailsList.add(contactDetails2); - - customer.setContactDetailsList(contactDetailsList); - return customer; - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java deleted file mode 100644 index 10f59e843b..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.complex.pojo.Customer; -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.thoughtworks.xstream.XStream; - -public class ComplexXmlToObjectAnnotationTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.processAnnotations(Customer.class); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field-complex.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - Assert.assertNotNull(customer.getContactDetailsList()); - - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java deleted file mode 100644 index 876a407f76..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.complex.pojo.ContactDetails; -import com.baeldung.complex.pojo.Customer; -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.thoughtworks.xstream.XStream; - -public class ComplexXmlToObjectAttributeCollectionTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.processAnnotations(Customer.class); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field-complex.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - Assert.assertNotNull(customer.getContactDetailsList()); - for(ContactDetails contactDetails : customer.getContactDetailsList()){ - Assert.assertNotNull(contactDetails.getContactType()); - } - - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java deleted file mode 100644 index d701fc153b..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.implicit.collection.pojo.Customer; -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.thoughtworks.xstream.XStream; - -public class ComplexXmlToObjectCollectionTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.processAnnotations(Customer.class); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-alias-implicit-collection.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - Assert.assertNotNull(customer.getContactDetailsList()); - //System.out.println(customer); - - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java deleted file mode 100644 index cc6d945254..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.baeldung.pojo.Customer; -import com.thoughtworks.xstream.XStream; - -public class XmlToObjectAliasTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.alias("customer" , Customer.class); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-alias.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java deleted file mode 100644 index f2012e2b12..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.annotation.pojo.Customer; -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.thoughtworks.xstream.XStream; - -public class XmlToObjectAnnotationTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.processAnnotations(Customer.class); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - Assert.assertNotNull(customer.getFirstName()); - - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java deleted file mode 100644 index c4bba86265..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.baeldung.pojo.Customer; -import com.thoughtworks.xstream.XStream; - -public class XmlToObjectFieldAliasTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.alias("customer" , Customer.class); - xstream.aliasField("fn", Customer.class, "firstName"); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - Assert.assertNotNull(customer.getFirstName()); - - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java deleted file mode 100644 index cb13bb9570..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.baeldung.pojo.Customer; -import com.thoughtworks.xstream.XStream; - -public class XmlToObjectIgnoreFieldsTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.alias("customer" , Customer.class); - xstream.ignoreUnknownElements(); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file-ignore-field.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - //System.out.println(customer); - } catch (IOException e) { - e.printStackTrace(); - } - } - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java b/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java deleted file mode 100644 index e24e54aea4..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.baeldung.pojo.test; - -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.baeldung.pojo.Customer; -import com.baeldung.utility.SimpleDataGeneration; -import com.thoughtworks.xstream.XStream; - -public class XmlToObjectTest { - - private XStream xstream = null; - - @Before - public void dataSetup() { - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - } - - @Test - public void convertXmlToObjectFromFile() { - try { - ClassLoader classLoader = getClass().getClassLoader(); - FileReader reader = new FileReader(classLoader.getResource("data-file.xml").getFile()); - Customer customer = (Customer) xstream.fromXML(reader); - Assert.assertNotNull(customer); - - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Test - public void convertXmlToObjectFromString() { - Customer customer = SimpleDataGeneration.generateData(); - String dataXml = xstream.toXML(customer); - Customer convertedCustomer = (Customer) xstream.fromXML(dataXml); - Assert.assertNotNull(convertedCustomer); - } - - -} diff --git a/xstream-introduction/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java b/xstream-introduction/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java deleted file mode 100644 index ea60e68743..0000000000 --- a/xstream-introduction/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.baeldung.utility; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.baeldung.initializer.SimpleXstreamInitializer; -import com.baeldung.pojo.AddressDetails; -import com.baeldung.pojo.ContactDetails; -import com.baeldung.pojo.Customer; -import com.baeldung.utility.SimpleDataGeneration; -import com.thoughtworks.xstream.XStream; - -public class XStreamSimpleXmlTest { - - private Customer customer = null; - - private String dataXml = null; - - private XStream xstream = null; - - @Before - public void dataSetup() { - customer = SimpleDataGeneration.generateData(); - SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); - xstream = simpleXstreamInitializer.getXstreamInstance(); - xstream.processAnnotations(Customer.class); - xstream.processAnnotations(AddressDetails.class); - xstream.processAnnotations(ContactDetails.class); - xstream.omitField(Customer.class , "lastName"); - xstream.registerConverter(new MyDateConverter()); - // xstream.registerConverter(new MySingleValueConverter()); - xstream.aliasField("fn" , Customer.class , "firstName"); - dataXml = xstream.toXML(customer); - } - - @Test - public void testClassAliasedAnnotation() { - Assert.assertNotEquals(-1 , dataXml.indexOf("")); - } - - @Test - public void testFieldAliasedAnnotation() { - Assert.assertNotEquals(-1 , dataXml.indexOf("")); - } - - @Test - public void testImplicitCollection() { - Assert.assertEquals(-1 , dataXml.indexOf("contactDetailsList")); - } - - @Test - public void testDateFieldFormating() { - Assert.assertEquals("14-02-1986" , dataXml.substring(dataXml.indexOf("") + 5 , dataXml.indexOf(""))); - } - - @Test - public void testOmitField() { - Assert.assertEquals(-1 , dataXml.indexOf("lastName")); - } -} diff --git a/xstream-introduction/src/test/resources/data-file-alias-field-complex.xml b/xstream-introduction/src/test/resources/data-file-alias-field-complex.xml deleted file mode 100644 index 2235aa7044..0000000000 --- a/xstream-introduction/src/test/resources/data-file-alias-field-complex.xml +++ /dev/null @@ -1,15 +0,0 @@ - - XStream - Java - 1986-02-14 04:14:05.874 UTC - - - 6673543265 - 0124-2460311 - - - 4676543565 - 0120-223312 - - - \ No newline at end of file diff --git a/xstream-introduction/src/test/resources/data-file-alias-field.xml b/xstream-introduction/src/test/resources/data-file-alias-field.xml deleted file mode 100644 index 9bc1d0990a..0000000000 --- a/xstream-introduction/src/test/resources/data-file-alias-field.xml +++ /dev/null @@ -1,5 +0,0 @@ - - XStream - Java - 1986-02-14 03:46:16.381 UTC - \ No newline at end of file diff --git a/xstream-introduction/src/test/resources/data-file-alias-implicit-collection.xml b/xstream-introduction/src/test/resources/data-file-alias-implicit-collection.xml deleted file mode 100644 index d8731900b9..0000000000 --- a/xstream-introduction/src/test/resources/data-file-alias-implicit-collection.xml +++ /dev/null @@ -1,13 +0,0 @@ - - XStream - Java - 1986-02-14 04:14:20.541 UTC - - 6673543265 - 0124-2460311 - - - 4676543565 - 0120-223312 - - \ No newline at end of file diff --git a/xstream-introduction/src/test/resources/data-file-alias.xml b/xstream-introduction/src/test/resources/data-file-alias.xml deleted file mode 100644 index 964157f1dd..0000000000 --- a/xstream-introduction/src/test/resources/data-file-alias.xml +++ /dev/null @@ -1,5 +0,0 @@ - - XStream - Java - 1986-02-14 03:46:16.381 UTC - \ No newline at end of file diff --git a/xstream-introduction/src/test/resources/data-file-ignore-field.xml b/xstream-introduction/src/test/resources/data-file-ignore-field.xml deleted file mode 100644 index 865e93d4b4..0000000000 --- a/xstream-introduction/src/test/resources/data-file-ignore-field.xml +++ /dev/null @@ -1,6 +0,0 @@ - - XStream - Java - 1986-02-14 04:14:20.541 UTC - XStream Java - \ No newline at end of file diff --git a/xstream-introduction/src/test/resources/data-file.xml b/xstream-introduction/src/test/resources/data-file.xml deleted file mode 100644 index 59f2ea1cca..0000000000 --- a/xstream-introduction/src/test/resources/data-file.xml +++ /dev/null @@ -1,5 +0,0 @@ - - XStream - Java - 1986-02-14 03:46:16.381 UTC - \ No newline at end of file diff --git a/xstream-introduction/pom.xml b/xstream/pom.xml similarity index 75% rename from xstream-introduction/pom.xml rename to xstream/pom.xml index 2f0f26d6f2..8a5aec41e9 100644 --- a/xstream-introduction/pom.xml +++ b/xstream/pom.xml @@ -27,4 +27,18 @@ + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.5.1 + + 1.8 + 1.8 + + + + + \ No newline at end of file diff --git a/xstream/src/main/java/com/baeldung/annotation/pojo/Customer.java b/xstream/src/main/java/com/baeldung/annotation/pojo/Customer.java new file mode 100644 index 0000000000..2cdb0f56c9 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/annotation/pojo/Customer.java @@ -0,0 +1,46 @@ +package com.baeldung.annotation.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +import java.util.Date; + +@XStreamAlias("customer") +public class Customer { + + @XStreamAlias("fn") + private String firstName; + + private String lastName; + + private Date dob; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Date getDob() { + return dob; + } + + public void setDob(Date dob) { + this.dob = dob; + } + + @Override + public String toString() { + return "Customer [firstName=" + firstName + ", lastName=" + lastName + + ", dob=" + dob + "]"; + } +} diff --git a/xstream/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java b/xstream/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java new file mode 100644 index 0000000000..f5b98c9c1b --- /dev/null +++ b/xstream/src/main/java/com/baeldung/annotation/pojo/CustomerOmitField.java @@ -0,0 +1,50 @@ +package com.baeldung.annotation.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamOmitField; + +import java.util.Date; + + +@XStreamAlias("customer") +public class CustomerOmitField { + + @XStreamOmitField + private String firstName; + + private String lastName; + + private Date dob; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Date getDob() { + return dob; + } + + public void setDob(Date dob) { + this.dob = dob; + } + + @Override + public String toString() { + return "CustomerOmitAnnotation [firstName=" + firstName + ", lastName=" + + lastName + ", dob=" + dob + "]"; + } + + +} diff --git a/xstream/src/main/java/com/baeldung/complex/pojo/ContactDetails.java b/xstream/src/main/java/com/baeldung/complex/pojo/ContactDetails.java new file mode 100644 index 0000000000..e091492a1a --- /dev/null +++ b/xstream/src/main/java/com/baeldung/complex/pojo/ContactDetails.java @@ -0,0 +1,46 @@ +package com.baeldung.complex.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; + +@XStreamAlias("ContactDetails") +public class ContactDetails { + + private String mobile; + + private String landline; + + @XStreamAsAttribute + private String contactType; + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getLandline() { + return landline; + } + + public void setLandline(String landline) { + this.landline = landline; + } + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + @Override + public String toString() { + return "ContactDetails [mobile=" + mobile + ", landline=" + landline + + ", contactType=" + contactType + "]"; + } + +} diff --git a/xstream/src/main/java/com/baeldung/complex/pojo/Customer.java b/xstream/src/main/java/com/baeldung/complex/pojo/Customer.java new file mode 100644 index 0000000000..c6f98982f0 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/complex/pojo/Customer.java @@ -0,0 +1,57 @@ +package com.baeldung.complex.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +import java.util.Date; +import java.util.List; + +@XStreamAlias("customer") +public class Customer { + + private String firstName; + + private String lastName; + + private Date dob; + + private List contactDetailsList; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Date getDob() { + return dob; + } + + public void setDob(Date dob) { + this.dob = dob; + } + + public List getContactDetailsList() { + return contactDetailsList; + } + + public void setContactDetailsList(List contactDetailsList) { + this.contactDetailsList = contactDetailsList; + } + + @Override + public String toString() { + return "Customer [firstName=" + firstName + ", lastName=" + lastName + + ", dob=" + dob + ", contactDetailsList=" + contactDetailsList + + "]"; + } +} diff --git a/xstream/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java b/xstream/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java new file mode 100644 index 0000000000..38ec7ff077 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/implicit/collection/pojo/ContactDetails.java @@ -0,0 +1,46 @@ +package com.baeldung.implicit.collection.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; + +@XStreamAlias("ContactDetails") +public class ContactDetails { + + private String mobile; + + private String landline; + + @XStreamAsAttribute + private String contactType; + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getLandline() { + return landline; + } + + public void setLandline(String landline) { + this.landline = landline; + } + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + @Override + public String toString() { + return "ContactDetails [mobile=" + mobile + ", landline=" + landline + + ", contactType=" + contactType + "]"; + } + +} diff --git a/xstream/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java b/xstream/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java new file mode 100644 index 0000000000..a50ac850dd --- /dev/null +++ b/xstream/src/main/java/com/baeldung/implicit/collection/pojo/Customer.java @@ -0,0 +1,59 @@ +package com.baeldung.implicit.collection.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamImplicit; + +import java.util.Date; +import java.util.List; + +@XStreamAlias("customer") +public class Customer { + + private String firstName; + + private String lastName; + + private Date dob; + + @XStreamImplicit + private List contactDetailsList; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Date getDob() { + return dob; + } + + public void setDob(Date dob) { + this.dob = dob; + } + + public List getContactDetailsList() { + return contactDetailsList; + } + + public void setContactDetailsList(List contactDetailsList) { + this.contactDetailsList = contactDetailsList; + } + + @Override + public String toString() { + return "Customer [firstName=" + firstName + ", lastName=" + lastName + + ", dob=" + dob + ", contactDetailsList=" + contactDetailsList + + "]"; + } +} diff --git a/xstream/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java b/xstream/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java new file mode 100644 index 0000000000..5dec19d181 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/initializer/SimpleXstreamInitializer.java @@ -0,0 +1,19 @@ +package com.baeldung.initializer; + +import com.thoughtworks.xstream.XStream; + +public class SimpleXstreamInitializer { + + private XStream xtreamInstance; + + public XStream getXstreamInstance() { + if (xtreamInstance == null) { + synchronized (SimpleXstreamInitializer.class) { + if (xtreamInstance == null) { + xtreamInstance = new XStream(); + } + } + } + return xtreamInstance; + } +} \ No newline at end of file diff --git a/xstream/src/main/java/com/baeldung/pojo/AddressDetails.java b/xstream/src/main/java/com/baeldung/pojo/AddressDetails.java new file mode 100644 index 0000000000..53ba7e9a85 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/pojo/AddressDetails.java @@ -0,0 +1,40 @@ +package com.baeldung.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +import java.util.List; + +@XStreamAlias("AddressDetails") +public class AddressDetails { + + private String address; + + private String zipcode; + + private List contactDetails; + + public String getZipcode() { + return zipcode; + } + + public void setZipcode(String zipcode) { + this.zipcode = zipcode; + } + + public List getContactDetails() { + return contactDetails; + } + + public void setContactDetails(List contactDetails) { + this.contactDetails = contactDetails; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + +} diff --git a/xstream/src/main/java/com/baeldung/pojo/ContactDetails.java b/xstream/src/main/java/com/baeldung/pojo/ContactDetails.java new file mode 100644 index 0000000000..75408bdba8 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/pojo/ContactDetails.java @@ -0,0 +1,28 @@ +package com.baeldung.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +@XStreamAlias("ContactDetails") +public class ContactDetails { + + private String mobile; + + private String landline; + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getLandline() { + return landline; + } + + public void setLandline(String landline) { + this.landline = landline; + } + +} diff --git a/xstream/src/main/java/com/baeldung/pojo/Customer.java b/xstream/src/main/java/com/baeldung/pojo/Customer.java new file mode 100644 index 0000000000..728939c356 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/pojo/Customer.java @@ -0,0 +1,57 @@ +package com.baeldung.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamImplicit; + +import java.util.Date; +import java.util.List; + +@XStreamAlias("customer") +public class Customer { + + private String firstName; + + private String lastName; + + private Date dob; + + @XStreamImplicit + private List contactDetailsList; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Date getDob() { + return dob; + } + + public void setDob(Date dob) { + this.dob = dob; + } + + public List getContactDetailsList() { + return contactDetailsList; + } + + public void setContactDetailsList(List contactDetailsList) { + this.contactDetailsList = contactDetailsList; + } + + @Override + public String toString() { + return "Customer [firstName=" + firstName + ", lastName=" + lastName + ", dob=" + dob + "]"; + } +} diff --git a/xstream/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java b/xstream/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java new file mode 100644 index 0000000000..f203c9cce9 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/pojo/CustomerAddressDetails.java @@ -0,0 +1,50 @@ +package com.baeldung.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +import java.util.List; + +@XStreamAlias("CustomerAddressDetails") +public class CustomerAddressDetails { + + private List addressDetails; + + private String firstName; + + private String lastName; + + private int age; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + + public List getAddressDetails() { + return addressDetails; + } + + public void setAddressDetails(List addressDetails) { + this.addressDetails = addressDetails; + } +} diff --git a/xstream/src/main/java/com/baeldung/pojo/CustomerPortfolio.java b/xstream/src/main/java/com/baeldung/pojo/CustomerPortfolio.java new file mode 100644 index 0000000000..90722feb71 --- /dev/null +++ b/xstream/src/main/java/com/baeldung/pojo/CustomerPortfolio.java @@ -0,0 +1,20 @@ +package com.baeldung.pojo; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +import java.util.List; + +@XStreamAlias("CustomerPortfolio") +public class CustomerPortfolio { + + private List customerAddressDetailsList; + + public List getCustomerAddressDetailsList() { + return customerAddressDetailsList; + } + + public void setCustomerAddressDetailsList(List customerAddressDetailsList) { + this.customerAddressDetailsList = customerAddressDetailsList; + } + +} diff --git a/xstream/src/main/java/com/baeldung/utility/MyDateConverter.java b/xstream/src/main/java/com/baeldung/utility/MyDateConverter.java new file mode 100644 index 0000000000..af7ca19aac --- /dev/null +++ b/xstream/src/main/java/com/baeldung/utility/MyDateConverter.java @@ -0,0 +1,40 @@ +package com.baeldung.utility; + +import com.thoughtworks.xstream.converters.ConversionException; +import com.thoughtworks.xstream.converters.Converter; +import com.thoughtworks.xstream.converters.MarshallingContext; +import com.thoughtworks.xstream.converters.UnmarshallingContext; +import com.thoughtworks.xstream.io.HierarchicalStreamReader; +import com.thoughtworks.xstream.io.HierarchicalStreamWriter; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.GregorianCalendar; + +public class MyDateConverter implements Converter { + + private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); + + @Override + public boolean canConvert(Class clazz) { + return Date.class.isAssignableFrom(clazz); + } + + @Override + public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext arg2) { + Date date = (Date) value; + writer.setValue(formatter.format(date)); + } + + @Override + public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { + GregorianCalendar calendar = new GregorianCalendar(); + try { + calendar.setTime(formatter.parse(reader.getValue())); + } catch (ParseException e) { + throw new ConversionException(e.getMessage(), e); + } + return calendar; + } +} diff --git a/xstream/src/main/java/com/baeldung/utility/MySingleValueConverter.java b/xstream/src/main/java/com/baeldung/utility/MySingleValueConverter.java new file mode 100644 index 0000000000..9b242f1c7c --- /dev/null +++ b/xstream/src/main/java/com/baeldung/utility/MySingleValueConverter.java @@ -0,0 +1,28 @@ +package com.baeldung.utility; + +import com.baeldung.pojo.Customer; +import com.thoughtworks.xstream.converters.SingleValueConverter; + +import java.text.SimpleDateFormat; +import java.util.Date; + +public class MySingleValueConverter implements SingleValueConverter { + + @Override + public boolean canConvert(Class clazz) { + return Customer.class.isAssignableFrom(clazz); + } + + @Override + public Object fromString(String arg0) { + return null; + } + + @Override + public String toString(Object obj) { + SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); + Date date = ((Customer) obj).getDob(); + return ((Customer) obj).getFirstName() + "," + ((Customer) obj).getLastName() + "," + formatter.format(date); + } + +} diff --git a/xstream/src/main/java/com/baeldung/utility/SimpleDataGeneration.java b/xstream/src/main/java/com/baeldung/utility/SimpleDataGeneration.java new file mode 100644 index 0000000000..cf038bfd1b --- /dev/null +++ b/xstream/src/main/java/com/baeldung/utility/SimpleDataGeneration.java @@ -0,0 +1,37 @@ +package com.baeldung.utility; + +import com.baeldung.pojo.ContactDetails; +import com.baeldung.pojo.Customer; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +public class SimpleDataGeneration { + + public static Customer generateData() { + Customer customer = new Customer(); + Calendar cal = Calendar.getInstance(); + cal.set(1986, 01, 14); + customer.setDob(cal.getTime()); + customer.setFirstName("XStream"); + customer.setLastName("Java"); + + List contactDetailsList = new ArrayList(); + + ContactDetails contactDetails1 = new ContactDetails(); + contactDetails1.setLandline("0124-2460311"); + contactDetails1.setMobile("6673543265"); + + ContactDetails contactDetails2 = new ContactDetails(); + contactDetails2.setLandline("0120-223312"); + contactDetails2.setMobile("4676543565"); + + contactDetailsList.add(contactDetails1); + contactDetailsList.add(contactDetails2); + + customer.setContactDetailsList(contactDetailsList); + return customer; + } + +} diff --git a/xstream-introduction/src/main/resources/log4j.properties b/xstream/src/main/resources/log4j.properties similarity index 100% rename from xstream-introduction/src/main/resources/log4j.properties rename to xstream/src/main/resources/log4j.properties diff --git a/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java b/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java new file mode 100644 index 0000000000..479500c4a0 --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAnnotationTest.java @@ -0,0 +1,38 @@ +package com.baeldung.pojo.test; + +import com.baeldung.complex.pojo.Customer; +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class ComplexXmlToObjectAnnotationTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.processAnnotations(Customer.class); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field-complex.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + Assert.assertNotNull(customer.getContactDetailsList()); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java b/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java new file mode 100644 index 0000000000..8c569aa11e --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectAttributeCollectionTest.java @@ -0,0 +1,42 @@ +package com.baeldung.pojo.test; + +import com.baeldung.complex.pojo.ContactDetails; +import com.baeldung.complex.pojo.Customer; +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class ComplexXmlToObjectAttributeCollectionTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.processAnnotations(Customer.class); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field-complex.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + Assert.assertNotNull(customer.getContactDetailsList()); + for (ContactDetails contactDetails : customer.getContactDetailsList()) { + Assert.assertNotNull(contactDetails.getContactType()); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java b/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java new file mode 100644 index 0000000000..29ef7a5d64 --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/ComplexXmlToObjectCollectionTest.java @@ -0,0 +1,39 @@ +package com.baeldung.pojo.test; + +import com.baeldung.implicit.collection.pojo.Customer; +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class ComplexXmlToObjectCollectionTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.processAnnotations(Customer.class); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-alias-implicit-collection.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + Assert.assertNotNull(customer.getContactDetailsList()); + //System.out.println(customer); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java new file mode 100644 index 0000000000..8a4de3b70a --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAliasTest.java @@ -0,0 +1,37 @@ +package com.baeldung.pojo.test; + +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.baeldung.pojo.Customer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class XmlToObjectAliasTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.alias("customer", Customer.class); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-alias.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java new file mode 100644 index 0000000000..4a7ff2f74a --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectAnnotationTest.java @@ -0,0 +1,38 @@ +package com.baeldung.pojo.test; + +import com.baeldung.annotation.pojo.Customer; +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class XmlToObjectAnnotationTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.processAnnotations(Customer.class); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + Assert.assertNotNull(customer.getFirstName()); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java new file mode 100644 index 0000000000..3b1b8326ab --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectFieldAliasTest.java @@ -0,0 +1,39 @@ +package com.baeldung.pojo.test; + +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.baeldung.pojo.Customer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class XmlToObjectFieldAliasTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.alias("customer", Customer.class); + xstream.aliasField("fn", Customer.class, "firstName"); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-alias-field.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + Assert.assertNotNull(customer.getFirstName()); + + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java new file mode 100644 index 0000000000..95a034b3e7 --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectIgnoreFieldsTest.java @@ -0,0 +1,38 @@ +package com.baeldung.pojo.test; + +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.baeldung.pojo.Customer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileReader; +import java.io.IOException; + +public class XmlToObjectIgnoreFieldsTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.alias("customer", Customer.class); + xstream.ignoreUnknownElements(); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file-ignore-field.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + //System.out.println(customer); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java new file mode 100644 index 0000000000..b6b64ce8da --- /dev/null +++ b/xstream/src/test/java/com/baeldung/pojo/test/XmlToObjectTest.java @@ -0,0 +1,46 @@ +package com.baeldung.pojo.test; + +import com.baeldung.initializer.SimpleXstreamInitializer; +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; + +import java.io.FileReader; +import java.io.IOException; + +public class XmlToObjectTest { + + private XStream xstream = null; + + @Before + public void dataSetup() { + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + } + + @Test + public void convertXmlToObjectFromFile() { + try { + ClassLoader classLoader = getClass().getClassLoader(); + FileReader reader = new FileReader(classLoader.getResource("data-file.xml").getFile()); + Customer customer = (Customer) xstream.fromXML(reader); + Assert.assertNotNull(customer); + + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Test + public void convertXmlToObjectFromString() { + Customer customer = SimpleDataGeneration.generateData(); + String dataXml = xstream.toXML(customer); + Customer convertedCustomer = (Customer) xstream.fromXML(dataXml); + Assert.assertNotNull(convertedCustomer); + } + + +} diff --git a/xstream/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java b/xstream/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java new file mode 100644 index 0000000000..83a965ce1b --- /dev/null +++ b/xstream/src/test/java/com/baeldung/utility/XStreamSimpleXmlTest.java @@ -0,0 +1,57 @@ +package com.baeldung.utility; + +import com.baeldung.initializer.SimpleXstreamInitializer; +import com.baeldung.pojo.AddressDetails; +import com.baeldung.pojo.ContactDetails; +import com.baeldung.pojo.Customer; +import com.thoughtworks.xstream.XStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class XStreamSimpleXmlTest { + + private Customer customer; + private String dataXml; + private XStream xstream; + + @Before + public void dataSetup() { + customer = SimpleDataGeneration.generateData(); + SimpleXstreamInitializer simpleXstreamInitializer = new SimpleXstreamInitializer(); + xstream = simpleXstreamInitializer.getXstreamInstance(); + xstream.processAnnotations(Customer.class); + xstream.processAnnotations(AddressDetails.class); + xstream.processAnnotations(ContactDetails.class); + xstream.omitField(Customer.class, "lastName"); + xstream.registerConverter(new MyDateConverter()); + // xstream.registerConverter(new MySingleValueConverter()); + xstream.aliasField("fn", Customer.class, "firstName"); + dataXml = xstream.toXML(customer); + } + + @Test + public void testClassAliasedAnnotation() { + Assert.assertNotEquals(-1, dataXml.indexOf("")); + } + + @Test + public void testFieldAliasedAnnotation() { + Assert.assertNotEquals(-1, dataXml.indexOf("")); + } + + @Test + public void testImplicitCollection() { + Assert.assertEquals(-1, dataXml.indexOf("contactDetailsList")); + } + + @Test + public void testDateFieldFormating() { + Assert.assertEquals("14-02-1986", dataXml.substring(dataXml.indexOf("") + 5, dataXml.indexOf(""))); + } + + @Test + public void testOmitField() { + Assert.assertEquals(-1, dataXml.indexOf("lastName")); + } +} diff --git a/xstream/src/test/resources/data-file-alias-field-complex.xml b/xstream/src/test/resources/data-file-alias-field-complex.xml new file mode 100644 index 0000000000..06050cd1ed --- /dev/null +++ b/xstream/src/test/resources/data-file-alias-field-complex.xml @@ -0,0 +1,15 @@ + + XStream + Java + 1986-02-14 04:14:05.874 UTC + + + 6673543265 + 0124-2460311 + + + 4676543565 + 0120-223312 + + + \ No newline at end of file diff --git a/xstream/src/test/resources/data-file-alias-field.xml b/xstream/src/test/resources/data-file-alias-field.xml new file mode 100644 index 0000000000..7e71d721ca --- /dev/null +++ b/xstream/src/test/resources/data-file-alias-field.xml @@ -0,0 +1,5 @@ + + XStream + Java + 1986-02-14 03:46:16.381 UTC + \ No newline at end of file diff --git a/xstream/src/test/resources/data-file-alias-implicit-collection.xml b/xstream/src/test/resources/data-file-alias-implicit-collection.xml new file mode 100644 index 0000000000..0cb852fc04 --- /dev/null +++ b/xstream/src/test/resources/data-file-alias-implicit-collection.xml @@ -0,0 +1,13 @@ + + XStream + Java + 1986-02-14 04:14:20.541 UTC + + 6673543265 + 0124-2460311 + + + 4676543565 + 0120-223312 + + \ No newline at end of file diff --git a/xstream/src/test/resources/data-file-alias.xml b/xstream/src/test/resources/data-file-alias.xml new file mode 100644 index 0000000000..61ee9f1ac3 --- /dev/null +++ b/xstream/src/test/resources/data-file-alias.xml @@ -0,0 +1,5 @@ + + XStream + Java + 1986-02-14 03:46:16.381 UTC + \ No newline at end of file diff --git a/xstream/src/test/resources/data-file-ignore-field.xml b/xstream/src/test/resources/data-file-ignore-field.xml new file mode 100644 index 0000000000..7dc8023b96 --- /dev/null +++ b/xstream/src/test/resources/data-file-ignore-field.xml @@ -0,0 +1,6 @@ + + XStream + Java + 1986-02-14 04:14:20.541 UTC + XStream Java + \ No newline at end of file diff --git a/xstream/src/test/resources/data-file.xml b/xstream/src/test/resources/data-file.xml new file mode 100644 index 0000000000..b8dbce32c0 --- /dev/null +++ b/xstream/src/test/resources/data-file.xml @@ -0,0 +1,5 @@ + + XStream + Java + 1986-02-14 03:46:16.381 UTC + \ No newline at end of file