diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContribution.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContribution.java index 6b80fba52f5..524fde57c44 100644 --- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContribution.java +++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContribution.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice; import org.eclipse.cdt.debug.gdbjtag.core.Activator; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugPlugin; @@ -22,6 +23,7 @@ public class GDBJtagDeviceContribution { private String deviceName; private String deviceClassName; private IGDBJtagDevice device; + private String deviceClassBundleName; /** * @return the deviceId @@ -64,13 +66,21 @@ public class GDBJtagDeviceContribution { public void setDeviceClassName(String deviceClassName) { this.deviceClassName = deviceClassName; } + + public String getDeviceClassBundleName() { + return deviceClassBundleName; + } + + public void setDeviceClassBundleName(String deviceClassBundleName) { + this.deviceClassBundleName = deviceClassBundleName; + } public IGDBJtagDevice getDevice() throws NullPointerException { if (device != null) return device; Object o = null; try { - o = Class.forName(getDeviceClassName()).newInstance(); + o = Platform.getBundle(deviceClassBundleName).loadClass(deviceClassName).newInstance(); } catch (InstantiationException e) { Activator.log(new Status(IStatus.ERROR, Activator.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, "Error instantiating " diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContributionFactory.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContributionFactory.java index a74c0f67a3c..01c6f868fae 100644 --- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContributionFactory.java +++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/GDBJtagDeviceContributionFactory.java @@ -55,6 +55,7 @@ public class GDBJtagDeviceContributionFactory { adapter.setDeviceId(id); adapter.setDeviceName(name); adapter.setDeviceClassName(className); + adapter.setDeviceClassBundleName(configurationElement.getContributor().getName()); addContribution(adapter); } }