Had an interesting idea this morning (in the shower ... what do YOU
think about in the shower?) that dovetails with Bob's initiative to
track & rate third party libraries.

How about a Tapestry app that collects information from the user:
basic information as with the Maven archetype, but additional things
such as which Tapestry and 3rd party libraries to include, which
version of Tapestry to use, and maybe a few other things (like which
database drivers to use), locales to support, etc.

At the end of all this, a .zip file of the project source is created.
Pretty much an extended version of what gets produced by the Maven
archetype.

I kind of imagined a data-driven approach, where there would be a DB,
or more likely, a JSON document, that described the different options
and how they relate.

This could be combined with Freemarker templates to generate the
artifacts (build scripts, source files).

Some things would just "bolt on", some would be either-or, some would
be dependent.

For example: Ant build vs. Maven build vs. Gradle build

If you choose Hibernate or JPA support ... an option to choose one or
more drivers for different databases.

Some selection logic so that a 3rd party library that isn't compatible
with the selected Tapestry version would be disabled.

Internally, this could use Ant libraries and Maven Ant Tasks to
properly download the dependencies (for an Ant build).

Before you download, there would be an optional "survey" page that
would collect information about the app you are building.

The app could be deployed into EC2 or GAE or hosted in the Apache Jail.

-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to