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}