[jboss-as7-dev] cant get rid of jetty maven plugin - so lets mavenize JBoss Modules

Bill Burke bburke at redhat.com
Mon Feb 25 16:18:07 EST 2013


JBoss AS and jboss-as-maven-plugin just doesn't meet my needs, so I've 
started the process of fixing it.  I have some initial code, but I need 
to know that my suggestions and pull-requests will be accepted before I 
proceed with the rest of the changes I would need to make.

What missing or very hard to do:

* Jetty maven plugin is great because there is no pre-installation 
needed.  It builds your war, automatically downloads jetty and runs it 
in embedded mode, then runs your tests (if you have maven pom configured 
right).  I'd like to replace this with JBoss AS....But...it is just not 
feasible.  jboss-as-maven-plugin does download the AS7 ZIP artifact if 
jboss isn't running already, but...it unzips the zip into every maven 
projects target/ directory.  FOR EVERY PROJECT.  So, if you have more 
than one test, you are unzipping 100M+ PER PROJECT.  This is just 
unworkable.

* I need the above for my O'Reilly Restful Java book examples. 
Currently I use Jetty and I can't replace with jboss-as-maven-plugin.  I 
refuse to require download/install of jboss and will just stick to jetty 
if I must.

* If you are developing on a subsystem integration on AS codebase,  as 
you build your submodule, you need to either rebuild the distribution, 
or copy the library to the built JBoss distribution.  Its just a pain. 
I'd like to remove this step and streamline integration module development.

* I'd like to have automated AS integration tests in the Resteasy build. 
  This sucks because of the previous problems.  Not only is an unzip of 
AS required per maven project, but I need to override resteasy speific 
AS modules with the current resteasy build.

* You can't distribute a profile of a complete jboss install without 
distributing *EVERY* jar it depends on.

What I'm doing to fix it:

* I've got a pull request for JBoss Modules that allows you to specific 
a maven repository artifact instead of a path for a resource-root: i.e.

     <resources>
         <resource-root group="org.jboss.resteasy" 
artifact="resteasy-jaxrs" version="3.0-beta-4"/>
         <resource-root group="org.jboss.resteasy" 
artifact="resteasy-client" version="3.0-beta-4"/>
     </resources>

Looks in the local maven repository for the artifact, if not there, 
barfs unless you've pointed a system property to a remote maven 
repository.  Then it will download the artifact with a nice updated 
download-progress message displayed on the console window.

Here's my pull request:

https://github.com/jbossas/jboss-modules/pull/28

* I'd like to change the JBoss AS distribution to use this new 
jboss-modules maven artifact feature.  This requires modifying 
module.xml creation as well as creating and distributing a local maven 
repository with the jars needed.

* Besides the modified distro, I'd like a new maven artifact that is 
just a zip of the JBoss AS directory structure and the corresponding 
configuration files.  No jars.

* I want to rev jboss-as-maven-plugin to take advantage of these new 
features and distros.  Specifically:
- Allow a src/jboss directory so that users can provide their own config 
files that are overlayed on top of the config-only AS distro.
- Make config-only AS distro something you can reference as an artifact 
dependency
- provide in-pom support for defining new and override modules.

I hope you can see that not only does this make development easier, but 
it also opens the door define JBoss AS profiles that can easily be 
exchanged and distributed.

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


More information about the jboss-as7-dev mailing list