XMLMarshaller.java

package com.tradecloud.domain.utils;

import com.tradecloud.domain.MainMenu;
import com.tradecloud.domain.Menu;
import com.tradecloud.domain.common.TradecloudStaticData;
import com.tradecloud.domain.model.ordermanagement.Consignment;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.shipment.Shipment;
import org.apache.log4j.Logger;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;

import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;

public class XMLMarshaller {

    private static final Jaxb2Marshaller MARSHALLER;
    private static Logger log = Logger.getLogger(XMLMarshaller.class);

    static {
        MARSHALLER = new Jaxb2Marshaller();
        MARSHALLER.setClassesToBeBound(TradecloudStaticData.class, Menu.class, MainMenu.class, OrganisationalUnit.class, Shipment.class,
                Consignment.class);
    }

    public static String marshal(Object object) {
        StringWriter writer = new StringWriter();
        MARSHALLER.marshal(object, new StreamResult(writer));
        String xml = writer.toString();
        log.debug(xml);
        xml = xml.substring(xml.indexOf("?>") + 2, xml.length());
        log.debug(xml);
        return xml;
    }
}