Apps Strategy (overview):


The strategy for building "apps" here is that Maven will build the variations of mailreader apps by repeating a process that, for each mailreader app:

a) copies the "shared" base file structure and files
to the target dir b) copies **/*.* (from the app) over top of (a) c) generates any docs/javadocs/etc and wars the artifact
(would also run the full test suite)

This process would repeat for each "one-off mailreader"....like so:

 -- default --
apps/trunk/mailreader/blank
apps/trunk/mailreader/shared
apps/trunk/mailreader/el
apps/trunk/mailreader/shale
apps/trunk/mailreader/jericho
apps/trunk/mailreader/resources (impl using commons-resources)
apps/trunk/mailreader/chain     (this demonstrates chain for a wizard)
apps/trunk/mailreader/i18n      (using commons-i18n)
apps/trunk/mailreader/tiles     (this is not the tiles doc app)

 -- optional --
apps/trunk/mailreader/faces     (the integration library)
apps/trunk/mailreader/j2ee      (mostly xdoclet generated ejb 3.0
                                 against HSSQLDB)
apps/trunk/mailreader/spring
apps/trunk/mailreader/hibernate
apps/trunk/mailreader/spring-hibernate     (it's a beautiful thing)
apps/trunk/mailreader/resources-hibernate  (HSSQLDB with Hibernate)
apps/trunk/mailreader/resources-iBatis     (HSSQLDB with iBatis)
apps/trunk/mailreader/resources-jdbc       (HSSQLDB with JDBC)


There's a main project.xml in apps/trunk/
Each mailreader app project.xml extends that and overrides only what it
needs to for that specific app.  This is more or less why Maven was 
invented in the first place (from what I've read).

This way we don't have to have full blown webapp structures that 
duplicate 95% of the code.  Only the files that are actually different
than the "shared" will exist in these "one off"'s....what do we call
these anyway?  "Mailreader app demo"?  (MAD)

So, in the end, if you were to add some new button or page to 
the shared app, they would all inherit it.  And if something changes 
that breaks any one of the "MAD"s (LOL), the extensive test coverage
would catch that....yes I'm volunteering again ;)

What are the current targets (other than stock maven ones)

mailreader:template - produces the basic folders and project.xml/maven.xml that
                      would allow for an alternate implementation of the 
                      mailreader application
                      


Details:
-------
 [-] apps
  ' [-] trunk
  '  '   maven.xml   (reactor!!!)
  '  '   project.xml (parent config)
  '  '
  '  ' [-] blank
  '  '      maven.xml   
  '  '      project.xml (parent config)
  '  '
  '  '    [-] src
  '  '       [+] java (nothing in here right now)
  '  '       [+] resources
  '  '       [-] webapp
  '  '          [+] WEB-INF
  '  '    [-] test
  '  '   
  '  '
  ' [-]  mailreader
  '  ' [-] src
  '  '    [+] java
  '  '    [+] resources
  '  '    [+] test
  '  '    [+] webapp
  '  '
  ' [-]  examples
  '  '     (exercise, upload, validator)
  '  '     (i feel this should be renamed to 'modules')
  '  ' [-] src
  '  '    [+] java
  '  '    [+] resources
  '  '    [+] test
  '  '    [+] webapp
  '  '
  ' [-]  test
  '  '      (really need to get this back in order
  '  '       or figure out a new strategy..more on
  '  '       this later)
  '  ' [-] src
  '  '    [+] java
  '  '    [+] resources
  '  '    [+] test
  '  '    [+] webapp
  '  '
  ' [-] tile-documentation
  '  '     (this should probably go to tiles/trunk)
  '  ' [-] src
  '  '    [+] java
  '  '    [+] resources
  '  '    [+] test
  '  '    [+] webapp

  • No labels