@Override public FactoryDisabled copy() { return SerializationUtils.deepCopy(this); }
/** Create a deep copy/clone of any serializable object */ public static <T> T deepCopy(Serializable object) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { serialize(object, outputStream); return deserialize(new ByteArrayInputStream(outputStream.toByteArray())); } catch (Throwable e) { throw new RuntimeException("Failed in performing a deep copy", e); } } }
public static <T> T deserializeFromFile(String fileName) throws Throwable { InputStream inputStream = FileUtils.getInputStream(fileName); return deserialize(inputStream); }
public static void serializeToFile(Serializable object, String fileName) throws IOException { OutputStream outputStream = FileUtils.getOutputStream(fileName); serialize(object, outputStream); }
@Override public MonitorComposite get(String instanceKey) { try { MonitorComposite monitorComposite = super.get(instanceKey); if (monitorComposite!=null) { return monitorComposite; } String fileName = getFileName(instanceKey); if (FileUtils.exists(fileName)) { monitorComposite = SerializationUtils.deserializeFromFile(fileName); return monitorComposite; } else { return null; } } catch (Throwable e) { throw new RuntimeException("Exception while trying to load jamondata", e); } }
@Override public void put(String instanceKey) { try { createDirectory(); String fileName = getFileName(instanceKey); MonitorComposite monitorComposite = MonitorFactory.getRootMonitor().setInstanceName(instanceKey); SerializationUtils.serializeToFile(monitorComposite, fileName); } catch (IOException e) { throw new RuntimeException("Exception while trying to save jamondata", e); } }
/** * @since 2.79 * @return a deep copy of this object */ public MonitorComposite copy() { return SerializationUtils.deepCopy(this); }
@Override public FactoryEnabled copy() { return SerializationUtils.deepCopy(this); }