-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wed, 18 Jan 2006, Reinhard Poetz wrote:

Date: Wed, 18 Jan 2006 08:15:40 +0100
From: Reinhard Poetz <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: M10N

Giacomo Pati wrote:
 Recently I was thinking about how we want our new build system to behave
 from a user perspective because I wanted to get the plugins going ASAP.
 Now I want to make sure that we all align on the same things.

 In general the build system of Cocoon 2.1.x was quite handy for most of
 us.

     ./buils.[sh|bat]
     ./cocoon.[sh|bat]

 Was all one needed to type to get a running system (yes some needed to
 adjust the local.[build|block].properties file but with M2 this should be
 doable in a similar but more Mavne-like way).

 Now, is it the goal of M10N to get as close to this as well? Or are we
 going to have different building procedures (mvn goals) depending on
 whether it is a component block, application block, webapp block, etc.

 M2 offers quite a lot of possibilities how to interact with its
 lifecycle/build phases so that building different types of artifacts could
 be standardized with our plugins which may be attached into those
 lifecycles/build phases.

 We can define our own artifact types so that there is possibilities to
 supply archetypes for things like application blocks, component blocks,
 abstract blocks, whatever and build them in a consistent way (from the
 users perspective), but package them as we need/like.

 I.e.

=>  mvn   # build the package depending on the artifact we
#  want to produce for a certain module (single modules
#  as well as multi module build)

    mvn cocoon:run  # run it (independent whether this is the root or
                    # a single module)

 WDYT?

First contact with Cocoon
-------------------------
We can provide "ready to use" downloads that basically consist of

 - container (Jetty)
 - web application with blocks

I think we need to do so. Cocoon is a complex thing and an effort giving an easy to install and use distribution to get in touch with it will be a must.

We can also offer different sizes:

 - standard: contains the most important samples blocks
   (forms, template, auth, flowscript, javaflow)
   + all required blocks

 - portal: just the portal samples
   + all required blocks

 - full: all our samples
   + all required blocks

Ok.

These downloads are *not* the starting point for new Cocoon projects but only show the functionality.

I know that.

These download packages can also be used at cocoon.zones.apache.org for our live demos. I'm sure we can automate the packaging process in some way using the block deployer Maven plugin.

BTW, I wouldn't even say these downloads are our _releases_ as IMO our releases are the block jars that we make available at our download pages and (more important!) via the Maven repositories.

Correct. But I think we need a thing for "first contact".

Start your Cocoon project
-------------------------
As I said above, a Cocoon project is also a block. You create your block skeleton using the Maven block archetype, add your dependencies, e.g. your block depends on forms and template, and that's it.

Yes, I see that, too.

It's the same process as adding a Maven plugin to your pom.xml. You browse the Cocoon website and find a list of all available blocks. Than you add the required block to block.xml as requirement.

As pointed out in the tutorial, you can use the "cocoon:simple-deploy" and "jetty6:run" to test-drive your block at development time.

Ok.

See http://cocoon.zones.apache.org/daisy/documentation/g2/796.html

A Cocoon web application
------------------------
The "cocoon:simple-deploy" is only useful at development time as you don't have the possibility to change e.g. your web.xml and you can't use more than one block.

Shouldn't it be "you can't use more than _this_ block". This in contrary to the "full blown sample distribution" where all our samples blocks are independant (application) blocks which itself depend on (composition/service) blocks (i.e. like cron, or ajax which itself will be referenced by many of those independant blocks). Such a "full blown sample distribution" could well be a separate block in our repository just for building that distribution (at the ent it could be a war package).

My plan is doing it the same way like other webapp projects. You provide your web application in /src/main/webapp which means that you put your web.xml there at least. Then you create your block-deploy.xml and you can say there which blocks you want to deploy, how they are configured and which implementations you want to use to fulfill their requirements.

Fine. Do you have in mind to support this by a Maven plugin to create descriptors, based on dependencies defined in the pom, unpack them to create the webapp structure suitable for war packaging?

See http://cocoon.zones.apache.org/daisy/documentation/g2/797.html

Developing Cocoon (--> for Cocoon developers)
---------------------------------------------
AFAIU there is no difference to developing an "application block" (I even think that we should restrain from introducing this distinction.).

The difference is made up in the descriptors (i.e. has a sitemap, just supplies some common components/services).

- -- Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDzfsBLNdJvZjjVZARAr8TAJ0XycDgjPrrqjUzZ23q2+mA8+X2wQCePwKV
9R1tvu2PmmqPy0zNW6u9sco=
=CA7U
-----END PGP SIGNATURE-----