Integrating Component Repositories
There's been some talk about marketing Tapestry
on the tapestry-user mailing list. I've been thinking about how the palette can
be modified to make discovering and installing third party component libraries
an integral part of the development cycle.
I've had to figure out how the Eclipse Plugin
Update Site project structure works to implement the update site for the
Tapestry Palette plugin. I'd like to implement something similar for discovery
and download of Tapestry component libraries into Tapestry
projects.
This feature would give a
developer access to third party component libraries at remote sites from within
Eclipse
A user would be able to add a
URL for a 'Tapestry Component Library Update Site' to a list of such locations.
The update site would consist of a site.xml file with details of the component
library including:
A
title
A
description
A preferred namespace name for
the library (e.g. 'contrib')
A URL for the
library JAR file
A version number for the
library.
A URL pattern for the component
library documentation
A list of components in
the library, assigned to named
categories
Author/Credits,
etc.
A list of Tapestry versions
supported.
The palette can then
download the site.xml, use the information, including the categories to display
what's in the library and offer the user the option of adding the library to the
project. If the user chooses the option the library will be added to the
Tapestry application specification and to the Eclipse project dependencies and
be available from the palette tree to be dragged into pages and components in
the application.
The documentation URL
pattern would be used to access the component reference documentation from the ?
button in the palette component inspector just as it works for the framework
and contrib libraries.
If the palette
downloads all of these libraries to a folder outside of the Eclipse workspace
they can then be automatically added to new Tapestry
projects.
The palette can use the update site
URLs to check for updates to the library and notify the user of updates and
bug-fixes.
There's lots more to
think through:
I'd like to be able to
display component descriptions in the palette in i18n, right now I'm taking them
from the component specification files and they are in one language
only
A central repository of library
update sites would allow the palette to provide the user with a list of
libraries without the user having to enter any
URLs.
The palette would be able to
prune the list, or warn the developer when components are used which do not
support the version of Tapestry in
use.
If the update site information is
comprehensive the palette can offer a search feature to find out if there is a
third party component available that does what the developer wants without
having to implement from
scratch.
Any
comments?
Posted: Sun - November 14, 2004 at 07:09 PM :
:
: : : :
: