cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reinhard Poetz <>
Subject Changes in trunk after cleanup + what else needs to be done
Date Thu, 30 Mar 2006 14:48:43 GMT

First, this mail is rather long but everybody who works with trunk (or wants to 
work with it again) should read it!!! There are some changes and a couple of 
questions and TODOs which can't be solved by me (alone).

What did I change:
As proposed, I split up trunk into

- blocks
- blocks-tobeconverted
- commons
- core
[- site]
- tools

_blocks_ contains all blocks that already follow the new structure of
src/main/java (sources) and src/main/resources/COB-INF (samples) and
src/main/resources/META-INF/legacy (configuration files).

_blocks-tobeconverted_ cntains all blocks that have already been mavenzied but
don't follow the new structure. They require some more work.

_commons_ contains all the stuff that we need for distributions and general
stuff like logo, awards, etc. This will be the home directory of the Maven
assembly configurations that describe our future binary distributions.

_core_ contains the core stuff and the blocks-fw. I'm sure that core can be
split up into more blocks so that it gets even slimmer.

_site_ doesn't exist ATM. I will be filled with a Maven 2 module that contains
our core stuff. (my next task is providing a DaisyMojo as discussed two weeks ago)

_tools_ contains all modules that are used to develop *with* Cocoon or stuff
that we use to e.g. generate our documentation. You'll also find there our
archetypes Currently this is only the blocks-archetype but another archtetype
will be useful that creates a minimal webapp module.

                                       - o -

What's next?
Checkout trunk from SVN and run

$ mvn install -Dmaven.test.skip=true

from the root directory.

Then, if you use Eclipse, call

$ mvn eclipse:eclipse

and create the Eclispe project descriptors.

Next step is getting familiar with the new directory structure and where to find 
which module.

And, as I mentioned several times in the past, if you're not familiar with Maven 
2, follow their tutorial which is a good starting point 

                                       - o -

I also created a directory "attic". It contains all the stuff that doesn't seem
to be useful any longer. Please, review this. I will delete the folder on April,
30th. This should be enough time for everybody. Also have a look the things in
whiteboard. I guess there is a lot of outdated stuff there too.

Btw, the size of trunk was reduced from 214mb to 129mb.

                                       - o -

The blocks conversion script by Andreas was very helpful and certainly saved a
lot of time. One thing that we would need is a script that moves all resources
from src/main/java to src/main/resources. Could some bash-guru out there take
care of it please?

                                       - o -

Here is a list of blocks that are special to some extend:

hsqldb: It contains the database. How do we deal with it in the future?
javaflow: It contains a compile directory. I've no idea whether we need it any
scratchpad: Contains garbage and javacApi. Garbage could be its own block and
javacApi is the first implementation of the compiling classloader by Chris
Oliver, IIRC and should be completly replaced by commons-jci IIUC.

(there might be more but these where the warnings/errors produced by the 
conversion script)

If you convert one of these blocks, please find some solution for them.

                                       - o -

Because of the new structure in trunk, I had to work on the Maven build system. 
Currently it builds

  - cocoon-core
  - cocoon-webapp
  - cocoon-forms
  - cocoon-block-deployer

All other modules are commented out ATM. If you are familiar with a particular 
block, try to uncomment it (either to blocks/pom.xml or 
blocks-tobeconverted/pom.xml) and build it. Three things you should be aware of:

  - I used the version "x-SNAPSHOT" for all pom-modules. Pom-modules are modules
    that don't generate an artifact but are only used within the build system.
    I used the "x" as version to show that this is *not* a usual version number.
    Up-to-now the version number was 2.2.0 which isn't correct as we can start
    to have separate release cycles for modules soon!

    Though I'm not sure if this is a good idea to use a letter and not a number.
    Jorg (and others), WDYT? Would something like "x1" be better? I wonder
    what reasons could cause a version number change there ...

    For consistency we should use this pattern also for the pom-modules that
    are collections for impl/sample/mocks, WDYT?

  - Please use 3-digits version numbers for blocks. Unfortunatly I created
    2-digits version numbers for all converted blocks and noticed my mistake
    too late :-(

    As you have to touch pom.xml anyway, there shouldn't be too much overhead.

  - Blocks in 'blocks-tobeconverted' are the manually converted blocks and
    don't follow the structure yet. After changing the structure, please move
    them in the repo into /trunk/blocks.

                                       - o -

One very important thing: Can somebody take care of the unit-tests of 
cocoon-core? I got 79 errors and 2 failurs. Either we throw the failing tests 
away or fix them. Carsten, WDYT?

I want to use Continuum for continous integration very soon so that we see 
incompatible changes very soon.

                                       - o -

Thanks for reading so far :-)

Reinhard Pötz           Independent Consultant, Trainer & (IT)-Coach

{Software Engineering, Open Source, Web Applications, Apache Cocoon}


Telefonate ohne weitere Kosten vom PC zum PC:

View raw message