Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 26752 invoked from network); 1 Jul 2007 18:54:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Jul 2007 18:54:23 -0000 Received: (qmail 15143 invoked by uid 500); 1 Jul 2007 18:54:25 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 14712 invoked by uid 500); 1 Jul 2007 18:54:24 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@cocoon.apache.org List-Id: Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 14700 invoked by uid 99); 1 Jul 2007 18:54:24 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 01 Jul 2007 11:54:24 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS X-Spam-Check-By: apache.org Received-SPF: neutral (herse.apache.org: local policy) Received: from [216.86.168.178] (HELO mxout-03.mxes.net) (216.86.168.178) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 01 Jul 2007 11:54:20 -0700 Received: from [192.168.0.129] (unknown [80.240.191.89]) by smtp.mxes.net (Postfix) with ESMTP id 9B29E5193D for ; Sun, 1 Jul 2007 14:53:58 -0400 (EDT) Message-ID: <4687F82A.6030402@apache.org> Date: Sun, 01 Jul 2007 20:53:30 +0200 From: Grzegorz Kossakowski User-Agent: Thunderbird 2.0.0.4 (X11/20070604) MIME-Version: 1.0 To: dev@cocoon.apache.org Subject: Re: cocoon 2.2 - some more questions References: <11382520.post@talk.nabble.com> <4687C798.3010607@apache.org> <11382998.post@talk.nabble.com> <4687D1BC.1070802@apache.org> <11383411.post@talk.nabble.com> <4687E4FA.8060103@apache.org> <11384177.post@talk.nabble.com> In-Reply-To: <11384177.post@talk.nabble.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org xweber pisze: > wow - i am glad to know my crystalball is still working ;-) ;) >> Most of the infrastructure is already there (especially configuration, >> building and packaging parts). >> > building and packaging via maven? Yes. > I have discovered that ones (thanks to the > tutorial steps) > configuration? well - you mean the pom.xml things? No, no. We have fairy powerful Spring configurator module, see: http://cocoon.zones.apache.org/daisy/cdocs-spring-configurator/g1/1304.html and info about new features (that are not documented yet): http://thread.gmane.org/gmane.text.xml.cocoon.devel/70670 Thanks to Carsten's work you can configure almost everything using properties. This way you can get a block packaged as JAR and customize its component definitions and dependencies very heavily. I guess it covers all configuration needs. >> The only part still >> under development is wiring (servlet-service-fw). With blocks polymorphism >> (see COCOON-2038 issue) and postable source (see COCOON-2046) you >> will get all needed tools to handle even more sophisticated set-ups. >> > polymorphism would be nice for the database implementation of the concrete > drivers (backend). That kind of polymorphism is achieved with Spring and configurator mechanism. For example, you can always configure a concrete class to use other DB provider (also a Spring component) that you have implemented. > For wiring beyond spring block i thought i could use > something like "inner piplelines". We have had a concept of internal requests for years in Cocoon. What servlet-service-fw brings new is something like that: [some transformations] You define "styling-block" as block's connection, and have in styling-block you have: Ok, it's nice because you can have one block that is responsible for styling but it's not the end of story. Polymorphism begins when you create a third block, let's call it "fancy-styling-block", and declare that "styling-block" is its super block. Now, thanks to properties, you can change connection declared in first block, so it connects to "fancy-styling-block" instead of "styling-block". Next you define in "fancy-styling-block" another matcher: This way you _override_ pipeline from "styling-block". Of course, you can override only a few pipelines you want to customize and leave rest untouched. This way you get very powerful mechanism for extending your blocks. > yes, there are a lot of question (which is still first try to figure out > myself). > But here is one: > > rcl.properties reads like: > com.mycompany.myBlock2.block%classes-dir=../myBlock2/target/classes > %exclude-lib=com.mycompany:myBlock2 > > ok, i can guess the first line - but why (and when) to exclude libs? The doc > http://cocoon.zones.apache.org/daisy/cdocs/g1/g5/g1/g1/1298.html does not > give that much detailed information yet I'm not sure (I hope that Reinhard will comment) but I think that you include classes compiled by your IDE (first line) and thus you must exclude classes from JAR of block2. If we didn't do this, we would have every class in classpath present twice. -- Grzegorz Kossakowski http://reflectingonthevicissitudes.wordpress.com/