[wildfly-dev] smaller footprints

Stuart Douglas stuart.w.douglas at gmail.com
Tue Mar 4 01:37:37 EST 2014


I have made a start on this split, and I think the solution I am working 
on will meet all the use cases, including users that want to cut down an 
existing server, and users that want to re-use the jars in their maven 
repo using Bill's changes to JBoss Modules. It still needs a bit more 
work and a lot of cleanup, however it seems to work:

https://github.com/stuartwdouglas/wildfly/compare/wildfly-build-plugin

So basically the core of it is a maven plugin that builds a Wildfly 
distribution, either from scratch or use other distributions as a base.

It also supports building servers that use the new <artifact> 
functionality in jboss modules, and cutting down an existing server into 
a smaller server with only the specified modules (and their transitive 
dependencies).

The way this will work in practice is that each Wildfly sub project will 
produce two different server artifacts, one of which is a server without 
any jars using artifact references, and a more traditional version with 
jars packaged in the module directory. Downstream projects will consume 
the smaller version without all the jars, so when a version changes the 
download should be less than 5mb rather than larger than 100mb (the 
plugin has the ability to turn a server that uses artifact references 
into a server that contains the jars in the modules dir).

Basically the upshot is that it should be basically possible to build 
whatever configuration of server you want once this is part of our build 
process, and we should also be publishing lightweight server artifacts 
that use the jars in the maven repo as well as our traditional 
'everything and the kitchen sink' build.

It is anticipated that 3rd party projects build on Wildfly would also 
use this plugin (I think at the moment the standard approach has been to 
copy and modify our ant scripts).

This is still very much a work in progress, so nothing is set in stone 
yet and any comments are welcome.

Stuart


Bill Burke wrote:
> A lot of users want that ability, would you rather have them roll Netty
> + whatever?
>
> On 2/23/2014 9:10 PM, Stuart Douglas wrote:
>> No, because that means we essentially have to support and test every
>> possible combination that someone might select.
>>
>> Stuart
>>
>>
>> On Mon, Feb 24, 2014 at 7:13 AM, Misty Stanley-Jones<misty at redhat.com
>> <mailto:misty at redhat.com>>  wrote:
>>
>>      I know you guys aren’t there yet, but can we think about wrapping a
>>      GUI around this, so that the developer only needs to tick the boxes
>>      for what he does/doesn’t want, with dependencies sorted out
>>      automatically? Maybe some default profiles that select a group of
>>      things, but the ability to go in and add or remove individual
>>      subsystems as needed? Maybe this could be part of the installer but
>>      could optionally be run post-install as well.
>>
>>      On Feb 22, 2014, at 2:01 AM, Brian Stansberry
>>      <brian.stansberry at redhat.com<mailto:brian.stansberry at redhat.com>>
>>      wrote:
>>
>>       >  When I said "Web" I meant the thing described on that wiki page Tomaz
>>       >  linked:
>>       >
>>       >  "Web
>>       >
>>       >  Undertow subsystem, and all related dependencies, including a small
>>       >  subset of EE and JNDI. This is basically just a Servlet
>>      container, and
>>       >  will provide a platform for people that want to create web based
>>       >  appliances or applications, and don't need all the additional
>>       >  functionality that Wildfly provides. We should end up with
>>      something as
>>       >  lightweight as Tomcat or Jetty, but with all our advanced management
>>       >  functionality."
>>       >
>>       >  On 2/21/14, 9:40 AM, Bill Burke wrote:
>>       >>  Its also "Web" minus some stuff.  For my project I want just
>>      Servlet,
>>       >>  JAX-RS, JPA, and datasources.   Its very very hard to figure out
>>      how to
>>       >>  remove a subsystem and all its associated modules.
>>       >>
>>       >>  BTW, I think my maven artifact thing got into JBoss Modules. So it
>>       >>  would be possible to load jars on demand, or at least use it as
>>      a way to
>>       >>  figure out which modules aren't being used ;).
>>       >>
>>       >>
>>       >>  On 2/21/2014 10:22 AM, Brian Stansberry wrote:
>>       >>>  This will move things in the right direction, but not all the
>>      way there
>>       >>>  yet. Note the set of capabilities Bill mention: web, CDI,
>>      JAX-RS, JPA.
>>       >>>  That sounds like our "Web" variant, plus some stuff. It's the
>>      easy "plus
>>       >>>  some stuff" part that needs sorting at some point.
>>       >>>
>>       >>>  On 2/21/14, 9:08 AM, Tomaž Cerar wrote:
>>       >>>>  Bill,
>>       >>>>
>>       >>>>  that is exactly idea we have in mind of 9.
>>       >>>>  We already started with producing WildFly core distribution in
>>      that is
>>       >>>>  WildFly with no subsystems, upon which you can build you own
>>      wildfly.
>>       >>>>  It is only 15mb and contains whole mgmt capabilites (CLI,
>>      standalone,
>>       >>>>  domain,...) you can grab it at:
>>       >>>>
>>      http://download.jboss.org/wildfly/8.0.0.Final/core/wildfly-core-8.0.0.Final.zip
>>       >>>>
>>       >>>>  For 9 we have plans to move things bit further and have
>>      decided that we
>>       >>>>  will also do split codebase for core, ee, web, .. and other
>>      distributions.
>>       >>>>
>>       >>>>  Current idea on code split up is here
>>       >>>>  https://community.jboss.org/wiki/SplittingUpTheWildflyCodeBase
>>       >>>>
>>       >>>>  --
>>       >>>>  tomaz
>>       >>>>
>>       >>>>
>>       >>>>
>>       >>>>  On Fri, Feb 21, 2014 at 3:00 PM, Bill Burke<bburke at redhat.com
>>      <mailto:bburke at redhat.com>
>>       >>>>  <mailto:bburke at redhat.com<mailto:bburke at redhat.com>>>  wrote:
>>       >>>>
>>       >>>>       On Resteasy list I have a few people "rolling their own
>>      app server"
>>       >>>>       using Netty, Weld, Resteasy and JPA.  I asked one of them
>>      "I don't
>>       >>>>       understand why you are rolling your own app server" response:
>>       >>>>
>>       >>>>       "It's actually a lot more lightweight.  The minimum I can
>>      run the
>>       >>>>       equivalent on AS7 on is ~ 180 mb in binaries, but
>>      throwing this
>>       >>>>       together is about 32 mb (and compresses further when its
>>      packaged).
>>       >>>>       I'm able to start the JVM on the bare minimum (~100mb on
>>      my linux VM)
>>       >>>>       but AS7 with all I need is about 756mb.  When rolling out
>>      in the
>>       >>>>       cloud, where all of my REST APIs are stateless, running
>>      with this
>>       >>>>       configuration helps us get a lot more per node."
>>       >>>>
>>       >>>>       I'm not complaining :), just something to think about. It
>>      might be
>>       >>>>       really valuable to focus a bit in Wildfly 9 to make it
>>      easier to create
>>       >>>>       custom profiles or even different packaging options for
>>      the app server
>>       >>>>       instead of the exploded style we currently have.
>>       >>>>       --
>>       >>>>       Bill Burke
>>       >>>>       JBoss, a division of Red Hat
>>       >>>>  http://bill.burkecentral.com
>>       >>>>       _______________________________________________
>>       >>>>       wildfly-dev mailing list
>>       >>>>  wildfly-dev at lists.jboss.org
>>      <mailto:wildfly-dev at lists.jboss.org>
>>      <mailto:wildfly-dev at lists.jboss.org
>>      <mailto:wildfly-dev at lists.jboss.org>>
>>       >>>>  https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>       >>>>
>>       >>>>
>>       >>>>
>>       >>>>
>>       >>>>  _______________________________________________
>>       >>>>  wildfly-dev mailing list
>>       >>>>  wildfly-dev at lists.jboss.org<mailto:wildfly-dev at lists.jboss.org>
>>       >>>>  https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>       >>>>
>>       >>>
>>       >>>
>>       >>
>>       >
>>       >
>>       >  --
>>       >  Brian Stansberry
>>       >  Senior Principal Software Engineer
>>       >  JBoss by Red Hat
>>       >  _______________________________________________
>>       >  wildfly-dev mailing list
>>       >  wildfly-dev at lists.jboss.org<mailto:wildfly-dev at lists.jboss.org>
>>       >  https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>
>>      Misty Stanley-Jones, RHCE
>>      Manager, Content Services (Middleware)
>>      Direct: + 61 7 3514 8105<tel:%2B%2061%207%203514%208105>  / Mobile:
>>      +61 429 595 932<tel:%2B61%20429%20595%20932>   (TZ: GMT+10)
>>      IRC: misty (Freenode / RH)
>>
>>
>>      _______________________________________________
>>      wildfly-dev mailing list
>>      wildfly-dev at lists.jboss.org<mailto:wildfly-dev at lists.jboss.org>
>>      https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>
>>
>>
>>
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>
>

-- 
Sent using Postbox:
http://www.getpostbox.com


More information about the wildfly-dev mailing list