Anil Ramnanan wrote:
Ross Gardler (JIRA) wrote:

Ross Gardler commented on FOR-585:
----------------------------------

I've applied patch ActivatePluginPatch270705.diff but I'm not closing this issue as the current solution causes a maintenance problem since all plugin names are hard coded into the java code. We need to extract those from the plugins.xml file.
I am going to use the plugins.xml file located in _FORREST_HOME/plugins to get the list of available plugins. Is this the right location ? I ask because I see taht there is a plugin.descriptors properties in forrest.properties which points to http://forrest.apache.org/plugins/plugins.xml.

The current solution is fine for now. Don't get too bogged down in detail, you have much to do for GSoC and this goes beyond the scope of your original proposal. I have added it to the issue tracker as a reminder of potential improvements not as an "instruction" for any particular dev.

That said, please feel free to go ahead and implement it if you want to scratch the itch, as long as you understand this is not something that I (with my GSoC mentor hat on) consider a requirement for your GSoC proposal. If you choose not to implement this please add a comment to the issue linking to this thread in the archives as you have raised some important points that we should maintain.

Now, to answer your question...

The plugins.descriptors file can actually take multiple values, i.e. there can be more than one descriptor. So you should really take this property and interpret all the available plugins in the various descriptors.

The reason for multiple descriptors is that people may build custom plugins for their own site.

Furthermore, you should use the published version because plugins have a different release cycle to that of Forrest. Hence there may be more plugins available than are specified in the local FORREST_HOME/plugins/plugins.xml file.

Finally, that particular file is not a part of the binary distribution of Forrest, so your solution would only work with source distributions.

How does this sound as a solution:

We create a forrestProperties.java file which will read in the values from forrest.properties and make them available via appropriate methods, for example:

/**
 * Retrieve a list of plugin descriptor files used by this site.
 * @return an array of URLs pointing to plugin descriptor files
 */
public Array getPluginDescriptorURLs();

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.

Ross

Reply via email to