public static void initializeForTests(ProcessRecorder.ExecutionRecordWriter recordWriter) { sINSTANCE = new ProcessRecorderFactory(); ProcessRecorder.resetForTests(); setEnabled(true); sINSTANCE.setRecordWriter(recordWriter); publishInitialRecords(); }
public static void initialize(ILogger logger, File out) throws IOException { synchronized (LOCK) { if (sINSTANCE.isInitialized() || !isEnabled()) { return; } sINSTANCE.setLogger(logger); sINSTANCE.setOutputFile(out); sINSTANCE.setRecordWriter(new ProcessRecorder.JsonRecordWriter(new FileWriter(out))); publishInitialRecords(); } }
public static void shutdown() throws InterruptedException { synchronized (LOCK) { List<GarbageCollectorMXBean> garbageCollectorMXBeans = ManagementFactory .getGarbageCollectorMXBeans(); ThreadRecorder.get().record(ExecutionType.FINAL_METADATA, Recorder.EmptyBlock, new Recorder.Property("build_time", Long.toString(System.currentTimeMillis() - sINSTANCE.startTime)), new Recorder.Property("gc_count", Long.toString(garbageCollectorMXBeans.get(0).getCollectionCount() - sINSTANCE.gcCountAtStart)), new Recorder.Property("gc_time", Long.toString(garbageCollectorMXBeans.get(0).getCollectionTime() - sINSTANCE.gcTimeAtStart))); if (sINSTANCE.isInitialized()) { sINSTANCE.get().finish(); sINSTANCE.uploadData(); } sINSTANCE.processRecorder = null; } }
/** * Sets the {@link ProcessRecorder.JsonRecordWriter } * @param recordWriter */ public synchronized void setRecordWriter( @NonNull ProcessRecorder.ExecutionRecordWriter recordWriter) { assertRecorderNotCreated(); this.recordWriter = recordWriter; }
public static Recorder get() { return ProcessRecorderFactory.isEnabled() ? recorder : dummyRecorder; }
@SuppressWarnings("VariableNotUsedInsideIf") private void assertRecorderNotCreated() { if (isInitialized()) { throw new RuntimeException("ProcessRecorder already created."); } }
@NonNull static ProcessRecorder get() { return ProcessRecorderFactory.sINSTANCE.get(); }
public synchronized void setLogger(@NonNull ILogger iLogger) { assertRecorderNotCreated(); this.iLogger = iLogger; }