mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
remove unused ExtensionsArea.unregister*
This commit is contained in:
@@ -53,10 +53,6 @@ public interface ExtensionsArea {
|
||||
|
||||
void registerExtension(@NotNull PluginDescriptor pluginDescriptor, @NotNull Element extensionElement);
|
||||
|
||||
void unregisterExtensionPoint(@NotNull String pluginName, @NotNull Element extensionPointElement);
|
||||
|
||||
void unregisterExtension(@NotNull String pluginName, @NotNull Element extensionElement);
|
||||
|
||||
@NotNull
|
||||
PicoContainer getPluginContainer(@NotNull String pluginName);
|
||||
|
||||
|
||||
+2
-41
@@ -22,8 +22,6 @@ import gnu.trove.THashMap;
|
||||
import org.jdom.Attribute;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.Namespace;
|
||||
import org.jdom.output.Format;
|
||||
import org.jdom.output.XMLOutputter;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
@@ -31,8 +29,6 @@ import org.picocontainer.MutablePicoContainer;
|
||||
import org.picocontainer.PicoContainer;
|
||||
import org.picocontainer.defaults.ConstructorInjectionComponentAdapter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.util.*;
|
||||
|
||||
@SuppressWarnings({"HardCodedStringLiteral"})
|
||||
@@ -58,7 +54,6 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
|
||||
|
||||
private final AreaInstance myAreaInstance;
|
||||
private final String myAreaClass;
|
||||
private final Map<Element,ExtensionComponentAdapter> myExtensionElement2extension = new THashMap<Element, ExtensionComponentAdapter>();
|
||||
|
||||
public ExtensionsAreaImpl(String areaClass, AreaInstance areaInstance, PicoContainer parentPicoContainer, @NotNull LogProvider logger) {
|
||||
myCreationTrace = DEBUG_REGISTRATION ? new Throwable("Area creation trace") : null;
|
||||
@@ -160,7 +155,6 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
|
||||
else {
|
||||
adapter = new ExtensionComponentAdapter(extensionPoint.getClassName(), extensionElement, container, pluginDescriptor, true);
|
||||
}
|
||||
myExtensionElement2extension.put(extensionElement, adapter);
|
||||
internalGetPluginContainer().registerComponent(adapter);
|
||||
extensionPoint.registerExtensionAdapter(adapter);
|
||||
}
|
||||
@@ -205,37 +199,6 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
|
||||
return myPicoContainer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterExtensionPoint(@NotNull String pluginName, @NotNull Element extensionPointElement) {
|
||||
String epName = pluginName + '.' + extensionPointElement.getAttributeValue("name");
|
||||
unregisterExtensionPoint(epName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterExtension(@NotNull String pluginName, @NotNull Element extensionElement) {
|
||||
String epName = extractEPName(extensionElement);
|
||||
if (!myExtensionElement2extension.containsKey(extensionElement)) {
|
||||
XMLOutputter xmlOutputter = new XMLOutputter();
|
||||
Format format = Format.getCompactFormat().setIndent(" ").setTextMode(Format.TextMode.NORMALIZE);
|
||||
xmlOutputter.setFormat(format);
|
||||
StringWriter stringWriter = new StringWriter();
|
||||
try {
|
||||
xmlOutputter.output(extensionElement, stringWriter);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
myLogger.warn(stringWriter.toString());
|
||||
throw new IllegalArgumentException("Trying to unregister extension element that was never registered");
|
||||
}
|
||||
ExtensionComponentAdapter adapter = myExtensionElement2extension.remove(extensionElement);
|
||||
if (adapter == null) return;
|
||||
if (getExtensionPoint(epName).unregisterExtensionAdapter(adapter)) {
|
||||
MutablePicoContainer pluginContainer = internalGetPluginContainer();
|
||||
pluginContainer.unregisterComponent(adapter.getComponentKey());
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings({"unchecked"})
|
||||
private void initialize() {
|
||||
for (Map.Entry<String, String> entry : ourDefaultEPs.entrySet()) {
|
||||
@@ -332,14 +295,11 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
|
||||
myExtensionPoints.put(name, extensionPoint);
|
||||
notifyEPRegistered(extensionPoint);
|
||||
if (DEBUG_REGISTRATION) {
|
||||
//noinspection ThrowableResultOfMethodCallIgnored
|
||||
myEPTraces.put(name, new Throwable("Original registration for " + name));
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean equal(final String areaClass, final String anotherAreaClass) {
|
||||
return areaClass == null ? anotherAreaClass == null : areaClass.equals(anotherAreaClass);
|
||||
}
|
||||
|
||||
@SuppressWarnings({"unchecked"})
|
||||
private void notifyEPRegistered(final ExtensionPoint extensionPoint) {
|
||||
Collection<ExtensionPointAvailabilityListener> listeners = myAvailabilityListeners.get(extensionPoint.getName());
|
||||
@@ -369,6 +329,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
|
||||
@Override
|
||||
@NotNull
|
||||
public <T> ExtensionPointImpl<T> getExtensionPoint(@NotNull String extensionPointName) {
|
||||
//noinspection unchecked
|
||||
ExtensionPointImpl<T> extensionPoint = myExtensionPoints.get(extensionPointName);
|
||||
if (extensionPoint == null) {
|
||||
throw new IllegalArgumentException("Missing extension point: " + extensionPointName + " in area " + myAreaInstance);
|
||||
|
||||
+4
-67
@@ -16,17 +16,10 @@
|
||||
|
||||
package com.intellij.openapi.extensions.impl;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPoint;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.extensions.AreaPicoContainer;
|
||||
import junit.framework.TestCase;
|
||||
import org.picocontainer.MutablePicoContainer;
|
||||
import org.picocontainer.PicoContainer;
|
||||
import org.picocontainer.PicoInitializationException;
|
||||
import org.picocontainer.PicoIntrospectionException;
|
||||
import org.picocontainer.defaults.DefaultPicoContainer;
|
||||
import org.picocontainer.defaults.AbstractComponentAdapter;
|
||||
import org.jdom.Element;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -34,70 +27,14 @@ import java.util.List;
|
||||
* @author mike
|
||||
*/
|
||||
public class ExtensionsAreaTest extends TestCase {
|
||||
private ExtensionsAreaImpl myExtensionsArea;
|
||||
private MutablePicoContainer myPicoContainer;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
myExtensionsArea = new ExtensionsAreaImpl("foo", null, new DefaultPicoContainer(), new Extensions.SimpleLogProvider());
|
||||
myPicoContainer = myExtensionsArea.getPicoContainer();
|
||||
}
|
||||
|
||||
public void testGetComponentAdapterDoesntDuplicateAdapters() throws Exception {
|
||||
myPicoContainer.registerComponentImplementation("runnable", ExtensionsAreaTest.class);
|
||||
MutablePicoContainer picoContainer =
|
||||
new ExtensionsAreaImpl("foo", null, new DefaultPicoContainer(), new Extensions.SimpleLogProvider()).getPicoContainer();
|
||||
picoContainer.registerComponentImplementation("runnable", ExtensionsAreaTest.class);
|
||||
|
||||
final List adapters = myPicoContainer.getComponentAdaptersOfType(ExtensionsAreaTest.class);
|
||||
final List adapters = picoContainer.getComponentAdaptersOfType(ExtensionsAreaTest.class);
|
||||
assertEquals(1, adapters.size());
|
||||
}
|
||||
|
||||
public void testNoCreateOnUnregisterElement() {
|
||||
myExtensionsArea.registerExtensionPoint("test.ep", TestClass.class.getName(), ExtensionPoint.Kind.BEAN_CLASS);
|
||||
final Element element = ExtensionComponentAdapterTest.readElement("<extension point=\"test.ep\"/>");
|
||||
TestClass.ourCreationCount = 0;
|
||||
myExtensionsArea.registerExtension("test", element);
|
||||
assertEquals(0, TestClass.ourCreationCount);
|
||||
myExtensionsArea.unregisterExtension("test", element);
|
||||
assertEquals(0, TestClass.ourCreationCount);
|
||||
}
|
||||
|
||||
public void testNoCreateOnUnregisterExisting() {
|
||||
myExtensionsArea.registerExtensionPoint("test.ep", TestClass.class.getName(), ExtensionPoint.Kind.BEAN_CLASS);
|
||||
final Element element = ExtensionComponentAdapterTest.readElement("<extension point=\"test.ep\"/>");
|
||||
TestClass.ourCreationCount = 0;
|
||||
myExtensionsArea.registerExtension("test", element);
|
||||
assertEquals(0, TestClass.ourCreationCount);
|
||||
final AreaPicoContainer container = myExtensionsArea.getPicoContainer();
|
||||
List instances = container.getComponentInstancesOfType(TestClass.class);
|
||||
assertEquals(1, instances.size());
|
||||
assertEquals(1, TestClass.ourCreationCount);
|
||||
final Object[] extensions = myExtensionsArea.getExtensionPoint("test.ep").getExtensions();
|
||||
assertEquals(1, extensions.length);
|
||||
instances = container.getComponentInstancesOfType(TestClass.class);
|
||||
assertEquals(1, instances.size());
|
||||
container.registerComponent(new AbstractComponentAdapter(new Object(), Object.class) {
|
||||
@Override
|
||||
public Object getComponentInstance(PicoContainer container) throws PicoInitializationException, PicoIntrospectionException {
|
||||
fail("Should not be invoked");
|
||||
throw new Error(); // not reached
|
||||
}
|
||||
|
||||
@Override
|
||||
public void verify(PicoContainer container) throws PicoIntrospectionException {
|
||||
}
|
||||
});
|
||||
final TestClass extension = new TestClass();
|
||||
myExtensionsArea.getExtensionPoint("test.ep").registerExtension(extension);
|
||||
myExtensionsArea.unregisterExtension("test", element);
|
||||
myExtensionsArea.getExtensionPoint("test.ep").unregisterExtension(extension);
|
||||
}
|
||||
|
||||
public static class TestClass {
|
||||
public static int ourCreationCount = 0;
|
||||
|
||||
public TestClass() {
|
||||
ourCreationCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user