001package org.nuxeo.ecm.core.management.jtajca;
002
003import java.io.ByteArrayOutputStream;
004import java.io.IOException;
005import java.io.PrintStream;
006
007import javax.management.MalformedObjectNameException;
008import javax.management.ObjectName;
009
010import org.nuxeo.ecm.core.api.CoreInstance.RegistrationInfo;
011
012public class Defaults {
013
014    public static final Defaults instance = new Defaults();
015
016    public String name(Class<?> clazz) {
017        return name(clazz, "default");
018    }
019
020    public String name(Class<?> clazz, String name) {
021        return clazz.getPackage().getName() + ":type=" + clazz.getSimpleName() + ",name=" + name;
022    }
023
024    public ObjectName objectName(Class<?> clazz, String name) {
025        try {
026            return new ObjectName(name(clazz, name));
027        } catch (MalformedObjectNameException e) {
028            throw new UnsupportedOperationException("Cannot build  " + name, e);
029        }
030    }
031
032    public String printStackTrace(RegistrationInfo info) {
033        try (ByteArrayOutputStream bos = new ByteArrayOutputStream();) {
034            info.printStackTrace(new PrintStream(bos));
035            return bos.toString();
036        } catch (IOException e) {
037            throw new RuntimeException("Cannot write stack to byte array", e);
038        }
039    }
040}