blob: 101d07dd6c4200e5cd2f854b41fa23acf704d83e [file] [log] [blame]
package eclipselink.example.jpamoxy.simple;
import java.io.File;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import eclipselink.example.jpamoxy.simple.model.Customer;
public class Marshall {
public static void main(String[] args) throws JAXBException {
if (args.length != 1) {
System.out.println("Error media type not specified. Should be either 'json' or 'xml'");
}
String mediaType = args[0];
// JPA Query
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("customer");
EntityManager em = emf.createEntityManager();
Customer customer = em.find(Customer.class, 1l);
em.close();
emf.close();
// JAXB Marshall
JAXBContext context = JAXBContext.newInstance(Customer.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true));
marshaller.setProperty("eclipselink.media-type", "application/" + mediaType);
marshaller.setProperty("eclipselink.json.include-root", false);
marshaller.setProperty("eclipselink.json.wrapper-as-array-name", true);
File file = new File("target/customer." + mediaType);
marshaller.marshal(customer, file);
}
}