Plugins List
Please note: This FAQ is old. Please visit the Plugin Development section in the wiki for more up to date information.

From version 2.0.4.0 on, Azureus supports plugins.
This document is built as a FAQ, but can still be read in a sequential way to get a complete overview of the plugin interface.

1. What can I do with Plugins today ?
2. What will I be able to do tomorrow ?
3. About this extended protocol you just listed, what will I be able to do with it ?
4. What can I do today with this Plugin interface ?
5. How does it work ?
6. What do I need to make a Plugin ?
7. I've created a Plugin...
8. Where can I find javadocs about the Plugin Interface ?
9. Where is the Plugin Interface jar file ?
10. Is there an example available to download ?
11. I've made a great Plugin, how can I publish it ?
   
   
   
1. What can I do with Plugins today ?
  Not much. You can have you own 'View' within Azureus, and ask azureus to load a torrent file / torrent URL. That's all you can do so far.
top
2. What will I be able to do tomorrow ?
  We're planning on extending the interface in 2 ways :
  1. Interacting with current Azureus : you should be able to interact more deeply with Azureus, it'll start by gathering information about current downloads, then you'll get the ability to act (as Azureus user does) with the core, finally, you might be able to 'Plug-in' algorithms for most critical functions.
  2. Using the extend protocol interface : We're working on an extended BT protocol. Maybe even before you get the previously listed items, you'll get, as soon as the extended protocol is done, a way to register your own messages within azureus and to send custom messages to other Azureus clients (or any extended protocol client).
top
3. About this extended protocol, what will I be able to do with it ?
  You'll have to show us :)
top
4. What can I do today with this Plugin interface ?
  Still, you can do a lot of things ... like a GUI that lists files from a specific site, and allow you to do : searching, sorting, downloading of them. You can implement another Chat client, work on a 'channel' thing with auto-posting and downloading of torrent files ... you can do whatever you want as long as it's simply displaying things within azureus and start downloads.
top
5. How does it work ?
  Plugins must be bundled as one or multiple jar files. One of those file MUST contain at its root level a file named 'plugin.properties' , standard java property file, with one entry : 'plugin.class' which must contain the fully qualified name of your Plugin 'main class'. You also need to create a 'plugins' directory for azureus (as of 2.0.8.0, the plugins dir is created for you, in the same dir where your user preferences are stored), and put all your files in a sub-dir of this plugins dir (eg: plugins/myplugin/ ). Azureus loads plugins on startup, wich means that you need to re-start azureus to test (or re-test) your plugin. (We'll change this later).
top
6. What do I need to make a Plugin ?
  You need to know Java, and SWT (SWT is easy to learn). You need the PluginInterface.jar file , and also an Azureus client.
top
7. I've created a Plugin...
 
  • ... that uses a Thread to do some periodic/asynchronous stuff, but when I update the GUI, Azureus crashes with and 'InvalidThreadAccess' exception ...
All SWT access must be done from the GUI Thread. embed your calls in a Runnable, from the Composite given during initialization of your view, get the Display object, then call : display.aSyncExec(Runnable r);
top
8. Where can I find javadocs about the Plugin Interface ?
  Here (for latest release) and here (for CVS).
top
9. Where is the Plugin Interface jar file ?
  There currently isn't one. Please use the javadoc for reference, and the source (or azureus2.jar) for name completion/compiling. You can find a very old jar file here, however it's v2.0.6.0 or lower.
top
10. Is there an example available to download ?
  Yes. Here.
top
11. I've made a great Plugin, how can I publish it ?
  If the license is GPL, give us the sources, and the executable code, we'll test it, and publish it on this site, with a link to your site if you have one.
top