This package contains the service to control the flight recorder, and all classes related to that service.

The following example will print the names of all ongoing recordings:

		IConnectionManager manager = RJMXPlugin.getDefault().getConnectionManager();
		ConnectionDescriptorBuilder builder = new ConnectionDescriptorBuilder();
		IConnectionDescriptor descriptor = builder.hostName("localhost").port(0).build();
		IConnectionHandle handle = manager.connect(descriptor);
		IFlightRecorderService flr = handle.getServiceOrDummy(IFlightRecorderService.class);
		for (IRecordingDescriptor desc : flr.getAvailableRecordings()) {
			System.out.println(desc.getName());
		}
		manager.disconnect(handle);

The following will start a time bound recording, and then transfer the recording to a local file when completed:

		IConnectionManager manager = RJMXPlugin.getDefault().getConnectionManager();
		ConnectionDescriptorBuilder builder = new ConnectionDescriptorBuilder();
		IConnectionDescriptor descriptor = builder.hostName("localhost").port(0).build();
		IConnectionHandle handle = manager.connect(descriptor);
		IFlightRecorderService flr = handle.getServiceOrDummy(IFlightRecorderService.class);

		long duration = 5000;
		Map recordingOptions = new RecordingOptionsBuilder().name("MyRecording").duration(duration).build();
		IRecordingDescriptor recording = flr.start(recordingOptions, null);
		Thread.sleep(duration);
		while (recording.getState() != IRecordingDescriptor.RecordingState.STOPPED) {
			Thread.sleep(1000);
			recording = flr.getUpdatedRecordingDescripton(recording);
		}
		InputStream is = flr.openStream(recording, true);
		writeStreamToFile(is);		
		manager.disconnect(handle);