Extensions Manager

Information for extensions deployers

Objective

We aim to provide the information needed to allow extensions deployers to publish extensions that can be managed with the extensions Manager.

Where does the Extensions Manager retrieve the information

Extensions Manager has three distinct logical source of information, they are described below.

Installed BlueJ extensions

The list of extensions that can be deleted/updated is retrieved by listing two directories and BlueJ itself.

Predefined URL

The information on updates and newly available extensions is retrieved by downloading and parsing information taken from a predefined URL. This URL can be overridden by defining the property extension.updater.defaultUrl containing a valid URL where extensions.xml can be found.

The predefined file is:

Extensions derived URL

Extensions Manager also does look for information on extensions that can be updated or installed on locations derived from the currently available extensions. The URL that further describes an extension is retrieved from the available local extensions and that URL is then used to form a new URL that is used to obtain extensions information. As an example let's assume that the Submitter extension has as information URL the following: http://www.cs.kent.ac.uk/projects/bluej/submitter/submitter.html then the Extensions Manager will try to retrieve http://www.cs.kent.ac.uk/projects/bluej/submitter/extensions.xml An information URL is the one returned by the

public URL getURL ()

method of the bluej.extensions.Extension API.

 

The structure of extensions.xml

Extensions Manager needs some information to be provided to allow extensions to be updated or installed. In this section we see what is that must be provided to perform the desired task.

Extensions.xml has the following parts.

Technology and examples

Extensions.xml is an xml file. Xml is a simple content describing language that shares most of the structure with html. The files structure is fairly simple and should pose no problem, if further xml information is needed it can be found in Internet by searching "xml tutorial".

What follows is an example of extensions.xml.


extensions.xml

An <extensions-list> is a sequence of <extension> items eache one describing an extensions. An example of extensions.xml follows.

 

<extensions-list>

<extension>
<name>Extensions Updater</name>
<class>uk.ac.kent.damiano.extupdater.Extupdater</class>
<version>2004.06.03</version>
<size>66000</size>
<jarUrl>extupdater.jar</jarUrl>
<description>New extension updater</description>
</extension>

<extension>
<name>Project Exporter</name>
<class>uk.ac.kent.damiano.exporter.Exporter</class>
<version>2004.02.02</version>
<size>66000</size>
<jarUrl>exporter.jar</jarUrl>
<description>Project exporter descritpion</description>
</extension>


<extension>
<name>Submitter</name>
<class>org.bluej.extensions.submitter.Submitter</class>
<version>New</version>
<size>139364</size>
<jarUrl>submitter.jar</jarUrl>
<description>The submitter</description>
</extension>

<extension>
<name>BlueJScript</name>
<class>uk.ac.ukc.db3.bluejscript.BlueJscript</class>
<version>2004.4</version>
<size>4726831</size>
<jarUrl>bluejscript.jar</jarUrl>
<description>Javascript enabled tutorial builder</description>
</extension>

<extension>
<name>Simple Extension</name>
<class>SimpleExtension</class>
<version>2004.5</version>
<size>15092</size>
<jarUrl>simpleExtension.jar</jarUrl>
<description>A simple extension</description>
</extension>


<extension>
<name>JRefactory</name>
<class>org.acm.seguin.ide.bluej.Refactor</class>
<version>2004.01.22</version>
<size>3820508</size>
<jarUrl>Jrefactory.jar</jarUrl>
<description>JRrefactory for BlueJ</description>
</extension>


</extensions-list>