| Summary: | JET transformation in new installed bundles can't come to work | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Hoiyor Chen <hoiyor> |
| Component: | Jet | Assignee: | Project Inbox <m2t.jet-inbox> |
| Status: | NEW --- | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | hoiyor, pelder.eclipse |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
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());
}
}
}
|
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 :-)