[jboss-as7-dev] maven artifact based distributions/moduels/etc.

Bill Burke bburke at redhat.com
Wed May 30 17:49:03 EDT 2012


I've brought this up before, but I'd like to bring it up again.  I think 
it would be immensely useful to be able to reference maven artifacts 
from a modules.xml file.  i.e.

<module xmlns="urn:jboss:module:1.1" 
name="org.jboss.resteasy.resteasy-jaxrs">
...
     <resources>
         <resource-root 
artifact="org.jboss.resteasy:resteasy-jaxrs:2.3.4.Final"/>
     </resources>

     <dependencies>
...
     </dependencies>
</module>


* First things first, we could ship multiple profiles very easily as all 
jar dependencies point to a maven repository.  A different profile 
becomes 100k instead of 100M.

* Development becomes easier.  If I'm coding Resteasy and testing with 
AS7, I just modify the AS7 module.xml to reflect the new maven artifact 
for resteasy.  Then as I iterate on Resteasy, I just build resteasy, and 
AS7 automatically picks up the the snapshot (without having to manually 
copy jars or re-run AS7 dist scripts).

* If you combines all module.xml files and standalone.xml into one big 
monster file/format a bunch of other things start to happen:
- You don't even need a JBoss distribution to run AS7.  All you would 
need is some small bin.jar and a maven repository.
- You instantly have a cloud-ready provisioning file format
- You instantly have a nice REST format.  If you sprinkle in various 
Atom links so that you can easily micro manage
- Managing the Fedora/RHEL/RPM poop becomes just managing a local maven 
repository.
- You could also have a "jboss" executable that took a standalone.xml 
file as a parameter. The "jboss" executable is just a tiny script around 
the tiny boot.jar that should rarely change, if ever.  This type of 
setup, IMO, makes a Fedora distribution feasible

* I think this would make it easier to write a jboss-as7-maven-plugin as 
somebody could include a full standalone.xml in their resources 
directory much as the jetty-maven-plugin does with web-app/.

* Even better, allow some form of "document inheritance/overrides", then 
you can embed specific jboss config/module changes directly within your 
pom.xml file.

* Expand this even further and allow maven artifacts to be specified 
with JAR, WAR, EAR manifests and be included as deployable elements. 
This would allow a operating system wide shared library directly and 
allow us full applications and their third-party dependencies to be 
managed the same way Sys admins manage any other shared library on the 
system.



-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the jboss-as7-dev mailing list