Issue Details (XML | Word | Printable)

Key: FOR-388
Type: Improvement Improvement
Status: Reopened Reopened
Priority: Major Major
Assignee: Unassigned
Reporter: Ross Gardler
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Forrest

Use plugins in-place if src available

Created: 24/Nov/04 01:49 PM   Updated: Thursday 12:58 AM
Return to search
Component/s: Plugins (general issues)
Affects Version/s: 0.7, 0.8, 0.9-dev
Fix Version/s: 0.10

Time Tracking:
Not Specified

Issue Links:
Blocker
 
Reference
 

Urgency: Normal


 Description  « Hide
At present Forrest will attempt to download plugins even if they are available in src form in the local filesystem as part of an SVN checkout.

Have Forrest mount plugins from designated directories in preference to downloading them wherever possible (need more than posible location for src plugins as some people may be developing their own plugins outside of Forrest)



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Stefan Bernemann added a comment - 14/Dec/04 01:22 PM
It seems to me that I cannot install plugins behind an authenticating proxy (or did I miss some options?). In this case, this issue becomes very important!

Ross Gardler added a comment - 14/Dec/04 02:29 PM
The plugins system uses the GET task in ANT to retrieve the plugins, I believe that this task uses the Operating Systems defailt settings for proxy configuration (although I may be wrong).

Alternatively, you can manually install the plugins you need. If you have the source tree then simply cd into FORREST_HOME/plugins/PLUGIN_NAME and run "ant local-deploy".

If you do not have the src tree then download the plugin zip file from the location indicated in http://forrest.apache.org/plugins/plugins.xml and unztip it into FORREST_HOME/build/plugins

(this information is now in the message displayed if a plugin fails to install).

OF course, these are all just workarounds, implementing the in-place functioning of plugins is the best solution.

Ross Gardler added a comment - 14/Nov/05 10:36 PM
Regarding Stefans proxy problem, you can now configure Forrest to access via an quthenticating proxy. See the proxy properties in forrest.properties.

Ross Gardler added a comment - 26/Nov/05 02:59 PM
Currently plugins are used from the build directory, if we do a Forrest clean it removes the plugins thus causing someone to have to download again, this would not be necessary if the plugins were used inplace and the src was available.

Ross Gardler added a comment - 15/Dec/05 05:00 AM
I've put a "half-way" solution to this in place.

Plugins are not used in place, they still need to be deployed. However, during startup Forrest will now look in the local src directories before trying to download (for unversioned plugins only, versioned plugins are still downloaded from a remote repository).

Forrestbot installations will now use the local src. This means that our continuous integration tests on the zone will use the most recent development version of the plugin, rather than the most recent release.

Another benefit is that we can now provide a separate zip of plugins and whiteboard plugins for users with problems with the auto-download mechanism, we will simply direct them to download the plugins zips and install them in their FORREST_HOME directory.

However, this is not a final solution, it should be considered a hack and removed when we implement prooper in-place use of plugins. See the commits for this issue to evaluate the code that will need to be removed.

David Crossley added a comment - 19/Dec/05 05:45 PM
The target "configure-plugin" in main/targets/plugins.xml calls "configure-plugin-locationmap" at runtime to add a plugin locationmap if the plugin supplies one. A locationmap should be able to be supplied subsequently without restarting Forrest.

Ross Gardler added a comment - 15/May/06 10:14 PM
Great work Cyriaque

Ross Gardler added a comment - 07/Jun/06 05:55 PM
Reopening as the current solution does not provide "in place" use. That is it still deploys the plugin code to the build directory rather than using it from the source directory. Therefore, plugins still need to be deployed (or Forrest restarted) if they have been edited.

Although it shoul dbe noted the current solution elegantly solves the problem of installing plugins when network connection is poor.

Ross Gardler added a comment - 07/Jun/06 05:57 PM
Changing priority and target release. The current solution is a massive improvement and is worthy of a minor release. We'll finish the job for the next release.

Thorsten Scherler added a comment - 07/Jun/06 07:12 PM
We need to be aware that some parts of plugins need to be builded first and then deployed because they e.g. provide java classes. Meaning that at least the src/java needs to be deployed where xsl, sitemaps, etc. can be used copyless.

Ross Gardler added a comment - 07/Jun/06 07:31 PM
With respect to java classes -

Just add them to the classpath i their standard location. No need to deploy them, just ensure they are compiled.

This does cause a problem with reloading edited java files - but I plan to explore the CompilingClassLoader in Cocoon as soon as I get a chance.