Community
Participate
Working Groups
Build Identifier: 201001291720 I have a deployed JET transformation in an Eclipse plugin bundle. And I install the bundle into eclipse dynamically. But the registry change event can't be handled successfully by DeployedJETBundleProvider. The newly deployed JET transformation can't come to work. I think DeployedJETBundleProvider.java may be changed as: public void startup() { IExtensionRegistry reg = Platform.getExtensionRegistry(); IConfigurationElement[] configElements = reg.getConfigurationElementsFor(EXTENSION_POINT_ID); addTransforms(configElements); // reg.addRegistryChangeListener(this, EXTENSION_POINT_ID); // EXTENSION_POINT_ID should be PLUGIN_ID reg.addRegistryChangeListener(this, PLUGIN_ID); } public void registryChanged(IRegistryChangeEvent event) { // IExtensionDelta[] deltas = event.getExtensionDeltas(EXTENSION_POINT_ID); // EXTENSION_POINT_ID should be PLUGIN_ID IExtensionDelta[] deltas = event.getExtensionDeltas(PLUGIN_ID); for (int i = 0; i < deltas.length; i++) { IExtension ext = deltas[i].getExtension(); if (deltas[i].getKind() == IExtensionDelta.ADDED) { addTransforms(ext.getConfigurationElements()); } else { removeTransforms(ext.getConfigurationElements()); } } } Reproducible: Always Steps to Reproduce: See details in Details :-)
Recommend code modification update: public void startup() { IExtensionRegistry reg = Platform.getExtensionRegistry(); IConfigurationElement[] configElements = reg.getConfigurationElementsFor(EXTENSION_POINT_ID); addTransforms(configElements); // reg.addRegistryChangeListener(this, EXTENSION_POINT_ID); // EXTENSION_POINT_ID should be PLUGIN_ID reg.addRegistryChangeListener(this, PLUGIN_ID); } public void registryChanged(IRegistryChangeEvent event) { // IExtensionDelta[] deltas = event.getExtensionDeltas(EXTENSION_POINT_ID); // EXTENSION_POINT_ID should be PLUGIN_ID, EXTENSION_NAME IExtensionDelta[] deltas = event.getExtensionDeltas(PLUGIN_ID, EXTENSION_NAME); for (int i = 0; i < deltas.length; i++) { IExtension ext = deltas[i].getExtension(); if (deltas[i].getKind() == IExtensionDelta.ADDED) { addTransforms(ext.getConfigurationElements()); } else { removeTransforms(ext.getConfigurationElements()); } } }