Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java')
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java146
1 files changed, 69 insertions, 77 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java
index 2a245e1c2c..07ec240950 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java
@@ -1,77 +1,69 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.internal.util.container;
-
-import org.eclipse.net4j.internal.util.bundle.OM;
-import org.eclipse.net4j.internal.util.factory.PluginFactoryRegistry;
-import org.eclipse.net4j.util.container.IElementProcessor;
-import org.eclipse.net4j.util.container.IPluginContainer;
-import org.eclipse.net4j.util.container.ManagedContainer;
-import org.eclipse.net4j.util.factory.IFactory;
-import org.eclipse.net4j.util.factory.IFactoryKey;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-import org.eclipse.net4j.util.om.log.OMLogger;
-import org.eclipse.net4j.util.registry.IRegistry;
-
-import java.util.List;
-
-/**
- * @author Eike Stepper
- */
-public class PluginContainer extends ManagedContainer implements IPluginContainer
-{
- private static PluginContainer instance;
-
- private PluginContainer()
- {
- }
-
- @Override
- protected IRegistry<IFactoryKey, IFactory> createFactoryRegistry()
- {
- return new PluginFactoryRegistry();
- }
-
- @Override
- protected List<IElementProcessor> createPostProcessors()
- {
- return new PluginElementProcessorList();
- }
-
- public static void dispose()
- {
- if (instance != null)
- {
- LifecycleUtil.deactivate(instance, OMLogger.Level.WARN);
- instance = null;
- }
- }
-
- public static synchronized PluginContainer getInstance()
- {
- if (instance == null)
- {
- instance = new PluginContainer();
-
- try
- {
- instance.activate();
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- instance = null;
- }
- }
-
- return instance;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.internal.util.container;
+
+import org.eclipse.net4j.internal.util.factory.PluginFactoryRegistry;
+import org.eclipse.net4j.util.container.IElementProcessor;
+import org.eclipse.net4j.util.container.IPluginContainer;
+import org.eclipse.net4j.util.container.ManagedContainer;
+import org.eclipse.net4j.util.factory.IFactory;
+import org.eclipse.net4j.util.factory.IFactoryKey;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
+import org.eclipse.net4j.util.registry.IRegistry;
+
+import java.util.List;
+
+/**
+ * @author Eike Stepper
+ */
+public class PluginContainer extends ManagedContainer implements IPluginContainer
+{
+ private static PluginContainer instance;
+
+ private PluginContainer()
+ {
+ }
+
+ @Override
+ protected IRegistry<IFactoryKey, IFactory> createFactoryRegistry()
+ {
+ return new PluginFactoryRegistry();
+ }
+
+ @Override
+ protected List<IElementProcessor> createPostProcessors()
+ {
+ return new PluginElementProcessorList();
+ }
+
+ public static void dispose()
+ {
+ if (instance != null)
+ {
+ LifecycleUtil.deactivate(instance, OMLogger.Level.WARN);
+ instance = null;
+ }
+ }
+
+ public static synchronized PluginContainer getInstance()
+ {
+ if (instance == null)
+ {
+ PluginContainer container = new PluginContainer();
+ container.activate();
+
+ instance = container; // Leave instance==null in case of a Throwable in activate()
+ }
+
+ return instance;
+ }
+}

Back to the top