Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-debug-dev] Classloader won't find external tool classes

Hello folks,
 
here is what I want to do:
1) I want to create a plugin which defines a launch type for an external tool.
2) The tool is actually an ant buildfile which contains an FTP task (which will transfer an executable from host to target system).
3) The buildfile does not need to be modified for different executables, only the connection parameters need to be changed from one target to another. The buildfile was already successfully tested with a standard ant launch configuration.
4) But I want to add ease of use by developping a custom launch.
 
Here is how I go about it:
1) For a first step I just want to define my own launch delegate so I don't have to bother with my own GUI.
2) As a GUI I want to use the standard ant launch configuration tabgroup.
 
So here is my plugin.xml:
============================= Snippet: plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
   id="de.siemens.aud.rtp.ftpbeamerui"
   name="Ftpbeamerui Plug-in"
   version="1.0.0"
   provider-name="Siemens AG">
   <runtime>
      <library name="ftpbeamerui.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <import plugin="org.eclipse.debug.core"/>
      <import plugin="org.eclipse.debug.ui"/>
      <import plugin="org.eclipse.jdt.debug.ui"/>
   </requires>
   <extension
         id="de.siemens.aud.rtp.ftpbeamerui.tabgroups"
         name="Tab Groups"
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="de.siemens.aud.rtp.ftpbeamer.launchConfigurationType"
            class="org.eclipse.ant.internal.ui.launchConfigurations.AntTabGroup"
            id="de.siemens.aud.rtpftpbeamerui.launchConfigurationTabGroup"/>
   </extension>
</plugin>
============================= End snippet.
 
Note that in the launchConfigurationTabGroup element I reference the standard org.eclipse.ant.internal.ui.launchConfigurations.AntTabGroup while the launch configuration type refers to my custom de.siemens.aud.rtp.ftpbeamer.launchConfigurationType (which is defined in another plugin).
 
Here is the problem:
When I start eclipse (as runtime-workbench in debug mode) with this plugin and open the External Tools configuration dialog I to see my launch configuration type In the configurations list on the left, but if I try to create a new instance I get an error message box:
 
"Plug-in de.siemens.aud.rtp.ftpbeamerui was unable to load class org.eclipse.ant.internal.ui.lauchConfigurations.AntTabGroup."
 
Here is the log entry:
 
!SESSION Mar 01, 2005 07:47:14.52 ----------------------------------------------
eclipse.buildId=unknown
java.version=1.4.2_06
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -application org.eclipse.ui.ide.workbench -pdelaunch
 
!ENTRY org.eclipse.core.runtime 4 1 Mar 01, 2005 07:47:14.52
!MESSAGE Plug-in de.siemens.aud.rtp.ftpbeamerui was unable to load class org.eclipse.ant.internal.ui.launchConfigurations.AntTabGroup.
!STACK 0
java.lang.ClassNotFoundException: org.eclipse.ant.internal.ui.launchConfigurations.AntTabGroup
Some more remarks:
1) The assertion that the class loader cannot find the AntTabGroup is a lie since I can create and manage standard ant configurations perfectly well.
2) I looked into the sources and found that AntTabGroup is a public class.
3) When configuring my plug-in I used the plugin.xml creation wizard rather than typing the xml directly at the keybord. Specifically I used the class browser to select the AntTabGroup as the entry into the lauchConfigurationTabGroup element's "class" attribute. So a typo cannot have happened.
4) The runtime-workbench launch configuration on the plug-ins tab has the "Launch with all workspace and enabled external plug-ins" selected, so it should also see the all the necessary plug-ins - this is also proven by 1).
 
Hope you can give me a hint about either
1) what am I doing wrong or
2) a smarter way to achieve what I want to do.
 
Thanks a lot
 
 
Norbert Plött
 
 

Back to the top