[forge-dev] JBoss Stacks: Requirements

James Perkins jperkins at redhat.com
Mon Jul 2 19:23:51 EDT 2012

On 07/02/2012 03:33 PM, Pete Muir wrote:
> All,
> I chatted with Max at JBoss World about requirements for what I'm code-naming JBoss Stacks, which is a really an extension of the JBoss BOMs project.
> The JBoss Stacks project takes all the BOMs, all the archetypes, and all the runtimes, and identifies which work with which. This can then be used by tools (like JBDS, Forge, Maven plugins) to correctly configure users projects.
> The stacks project requires 3 different dictionaries:
> * available BOMs
> * available archetypes
> * available runtimes
> and the ability to see the intersection between these things (i.e. if I'm on runtime version 1.2.3.Final, what BOMs are possible, what BOM is recommended, what archetypes are available, what is recommended).
> The runtime should include a download URL, so that plugins such as James' AS plugin for forge can download it. It should also contain a some options. I'm not sure exactly what is needed here, but James can provide details and what makes most sense.
So far the only information I would need is the version number, the 
current version (both seem to be taken care of so far) and whether or 
not the version of AS requires the -logmodule argument for JBoss 
Modules. Really since that's kind of a special use case it could just be 
hard-coded into the plugin code, but having some kind of metadata for 
something like that would be ideal IMO.
> The runtimes should include what type they are (e.g. JBoss AS, EAP) to allow categorisation, filtering, sorting
> The Yaml parser in use should be pluggable, to avoid introducing uncessary extra dependencies
> There should be a recommended runtime per major version and per minor version (so you can say "I want JBoss AS 7" and you get back AS 7.1.1.Final or you can say "I want JBoss AS 7.0" and you get back 7.0.2.Final).
> We're going to need to be careful about compat, eventually, so we need to get everything in there, and get it right. We'll have a long beta cycle ;-)
> There will be a client utility, written in Java. This should be a single source file, which projects can copy in. It must have no dependencies other than a Yaml parser.
> I think Rafael is going to take the lead on this. But we'll decide on Monday next week.
> Pete

Overall I think this is a great idea. It will be great not to have to 
hard-code versions and do a new release every time something new comes out.

One suggestion for the YAML; I see there is a availableVersions, which 
is great, but I also think a supportedVersions could be useful. For 
example in the Forge plugin there is an option to execute CLI commands. 
That CLI API wasn't available until 7.1.1 IIRC. It *should* work for 
7.0.x, but some operations that are available 7.1.1 might not be 
available in 7.0.x.

Also the packaging type could be useful too. Again with the AS 7 plugin 
it's downloading a ZIP file and extracting the directory structure.

James R. Perkins
JBoss by Red Hat

More information about the forge-dev mailing list