import com.sun.enterprise.v3.common.JsonActionReporter;
import com.sun.enterprise.v3.common.XMLActionReporter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.glassfish.api.ActionReport;

/**
 *
 * @author jasonlee
 */
public class ActionReporterChangeTester {
    public static void main(String... args) {
        ActionReport xml = new XMLActionReporter();
        ActionReport json = new JsonActionReporter();
        xml.getTopMessagePart().getProps().put("list", new ArrayList() {{
            add("foo");
            add("something with spaces");
            add(new ArrayList() {{ add("item1"); add("item2"); }} );
            add(new HashMap() {{ put ("some key", "some value"); }} );
        }});
        xml.getTopMessagePart().getProps().put("map", new HashMap() {{
            put("foo", "bar");
            put("baz", "something with spaces");
            put("nestedList", new ArrayList() {{ add("item1"); add("item2"); }} );
            put("nestedMap", new HashMap() {{ 
                put ("some key", "some value");
                put("nestedList", new ArrayList() {{ add("item1"); add("item2"); }} );
                put("nestedMap", new HashMap() {{
                    put ("some key", "some value");
                }} );
            }} );
        }});
        json.getTopMessagePart().getProps().putAll(xml.getTopMessagePart().getProps());

        try {
            System.out.println("****************** XML");
            xml.writeReport(System.out);
            System.out.println();
            System.out.println("****************** JSON");
            json.writeReport(System.out);
        } catch (IOException ex) {
            Logger.getLogger(ActionReporterChangeTester.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}