Anil Ramnanan wrote:
Ross Gardler wrote:


The wizard will then use this method to get the URL for each of the
plugin descriptors and processes them as you intended above.

When we change the forrest configuration system we would just need to
change the way the forrest.properties are read into the above class.



I am currently working on getting the plugin descriptors from the
forrest.properties file. What happens if there are no plugin descriptors
defined ? Is there somewhere that I can get a default list of
descriptors from ? I ask because when a new project is seeded
forrest.plugins.descriptors is not set as active.

If a property does not exist in the project forrest.properties file it uses the settings in the users forrest.properties (in their home directory), if there is nothing in there then it uses the setting from FORREST_HOME/main/webapp/default-forrest.properties

Also, I noticed the the default descirptors are all located online.When
user is offline,  where do you get the list of plugins then ?

At this stage you don't. The reason for this is that plugins have a different release cycle than Forrest. Meaning that it is updated much more frequently than Forrest. Therefore we need to retrieve an up to date list.

However, the descriptor file need not be online, any protocol that the ANT get task is supported. So a user who finds themselves offline alot could change the forest.plugins.descriptors file to include a file:// protocol to a downloaded version.

We have, in the past, considered doing a separate download of all the plugins to facilitate offline use (probably do four actually, input, output, internal, whiteboard). We could also do special downloads for certain use cases (views, publishing etc.) But nobody has actually found the time to do this yet.

Ultimately, we want to modify the plugins system so that it will use local files in preference to remote files if they are present in FORREST_HOME/plugins. But again, nobody has actually done this yet. I have put most of the infrastructure in place when I did the versioned plugin stuff. It should be a relatively small job to finish, but as ever, someone needs to have a strong enough itch.

We do *not* want this kind of functionality being written into the Eclipse plugin. This should only be an interface to functionality in the core Forrest application, there should be no new functionality in it.

----

So what should you do in the Eclipse plugin?

Given that behaviour will change in Forrest you want to implement something that will not require modification when Forrest changes. I'd therefore suggest that you use Forrests ANT scripts to retrieve the relevant descriptor files.

In other words use the fetch-plugins-descriptors task in FORREST_HOME/main/targets/plugins.xml to retrieve the descriptors and then process the downloaded files that can be found in ${project.temp-dir}.

This way whenever we modify the method for retrieving the descriptors (i.e. allow the use of local descriptors if they are available) your Eclipse plugin will automatically use the new functionality.

Ross

Reply via email to