}
else if (singleInstanceManager.isMasterPresent()) {
starter.setDontLoadLastMaps();
}
loadPlugins(context);
final Controller controller = starter.createController();
starter.createModeControllers(controller);
try {
final ServiceReference[] controllerProviders = context.getServiceReferences(
IControllerExtensionProvider.class.getName(), null);
if (controllerProviders != null) {
for (int i = 0; i < controllerProviders.length; i++) {
final ServiceReference controllerProvider = controllerProviders[i];
final IControllerExtensionProvider service = (IControllerExtensionProvider) context
.getService(controllerProvider);
service.installExtension(controller);
context.ungetService(controllerProvider);
}
}
}
catch (final InvalidSyntaxException e) {
e.printStackTrace();
}
try {
final Set<String> modes = controller.getModes();
for (final String modeName : modes) {
final ServiceReference[] modeControllerProviders = context.getServiceReferences(
IModeControllerExtensionProvider.class.getName(), "(mode=" + modeName + ")");
if (modeControllerProviders != null) {
final ModeController modeController = controller.getModeController(modeName);
Controller.getCurrentController().selectModeForBuild(modeController);
for (int i = 0; i < modeControllerProviders.length; i++) {
final ServiceReference modeControllerProvider = modeControllerProviders[i];
final IModeControllerExtensionProvider service = (IModeControllerExtensionProvider) context
.getService(modeControllerProvider);
service.installExtension(modeController);
context.ungetService(modeControllerProvider);
}
}
}
}
catch (final InvalidSyntaxException e) {
e.printStackTrace();
}
if ("true".equals(System.getProperty("org.freeplane.exit_on_start", null))) {
controller.getViewController().invokeLater(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
}
catch (final InterruptedException e) {
}
System.exit(0);
}
});
return;
}
controller.getViewController().invokeLater(new Runnable() {
public void run() {
final Bundle[] bundles = context.getBundles();
final HashSet<String> plugins = new HashSet<String>();
for(Bundle bundle:bundles){
plugins.add(bundle.getSymbolicName());