From zvia@netmanage.co.il Tue Nov 9 19:28:58 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 22214 invoked from network); 9 Nov 1999 19:28:58 -0000
Received: from nmi-gate.netmanage.co.il (root@156.27.240.10)
by apache.org with SMTP; 9 Nov 1999 19:28:58 -0000
Received: from netmanage.co.il (eng-ts-p1.netmanage.co.il [156.27.241.181])
by nmi-gate.netmanage.co.il (8.9.2/8.9.1) with ESMTP id VAA17395;
Tue, 9 Nov 1999 21:29:09 +0200 (IST)
Message-ID: <382876CB.57D64D56@netmanage.co.il>
Date: Tue, 09 Nov 1999 21:32:27 +0200
From: Zvi Avraham
Reply-To: zvia@netmanage.co.il
X-Mailer: Mozilla 4.61 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
To: cocoon-dev@xml.apache.org
Subject: Unable to checkout sources from new CVS
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
This is what I get:
cvs checkout -P xml-cocoon (in directory C:\)
cvs checkout: warning: unrecognized response `cvs: setgroups: Operation
not permitted' from cvs server
cvs server: cannot find module `xml-cocoon' - ignored
cvs [checkout aborted]: cannot expand modules
*****CVS exited normally with code 1*****
From brian@collab.net Wed Nov 10 07:48:47 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 9798 invoked from network); 10 Nov 1999 07:48:47 -0000
Received: from lumberjack.collab.net (HELO yaz.hyperreal.org) (209.246.26.186)
by apache.org with SMTP; 10 Nov 1999 07:48:47 -0000
Received: (qmail 1477 invoked by uid 1000); 10 Nov 1999 07:48:45 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
by localhost with SMTP; 10 Nov 1999 07:48:45 -0000
Date: Tue, 9 Nov 1999 23:48:45 -0800 (PST)
From: Brian Behlendorf
X-Sender: brian@yaz.hyperreal.org
To: Zvi Avraham
cc: cocoon-dev@xml.apache.org
Subject: Re: Unable to checkout sources from new CVS
In-Reply-To: <382876CB.57D64D56@netmanage.co.il>
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
That's now fixed, give it another try.
Brian
On Tue, 9 Nov 1999, Zvi Avraham wrote:
> This is what I get:
>
> cvs checkout -P xml-cocoon (in directory C:\)
> cvs checkout: warning: unrecognized response `cvs: setgroups: Operation
> not permitted' from cvs server
> cvs server: cannot find module `xml-cocoon' - ignored
> cvs [checkout aborted]: cannot expand modules
>
> *****CVS exited normally with code 1*****
From zvia@netmanage.co.il Sat Nov 13 13:04:56 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 5463 invoked from network); 13 Nov 1999 13:04:56 -0000
Received: from alpha.netvision.net.il (194.90.1.13)
by apache.org with SMTP; 13 Nov 1999 13:04:56 -0000
Received: from netmanage.co.il (eng-ts-p2.netmanage.co.il [156.27.241.182])
by alpha.netvision.net.il (8.9.3/8.8.6) with ESMTP id PAA23064;
Sat, 13 Nov 1999 15:04:42 +0200 (IST)
Message-ID: <382D62CA.1301F4C8@netmanage.co.il>
Date: Sat, 13 Nov 1999 15:08:27 +0200
From: Zvi Avraham
Reply-To: zvia@netmanage.co.il
X-Mailer: Mozilla 4.61 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
To: cocoon-dev@xml.apache.org
Subject: DataChannel XPages ...
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Stefano,
you once mentioned DataChannel's XPages,
I also read about them in :
http://industry.java.sun.com/javanews/stories/story2/0,1072,20294,00.html
"- XPages, from DataChannel -- an XML application markup language for
quickly building data-driven, cross-platform Web applications that
integrate disparate data sources. An XPage application is defined by an
XML file that aggregates multiple data sources, makes that data URL
addressable and defines custom methods to access that data. The
DataChannel submission includes Java code for a servlet based engine"
Is this will be integrated with XSP ?
I don't find it on xml.apache.org,
what's the status of it ?
Regards
Zvi
From stefano@apache.org Sun Nov 14 13:20:13 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 18380 invoked from network); 14 Nov 1999 13:20:13 -0000
Received: from pop.systemy.it (194.20.140.28)
by apache.org with SMTP; 14 Nov 1999 13:20:13 -0000
Received: from apache.org (pv17-pri.systemy.it [194.21.255.17]) by pop.systemy.it (8.8.8/8.8.3) with ESMTP id OAA08136 for ; Sun, 14 Nov 1999 14:20:08 +0100
Message-ID: <382D838E.66600F9F@apache.org>
Date: Sat, 13 Nov 1999 16:28:14 +0100
From: Stefano Mazzocchi
Organization: Apache Software Foundation
X-Mailer: Mozilla 4.7 [en] (Win98; I)
X-Accept-Language: it,en
MIME-Version: 1.0
To: cocoon-dev@xml.apache.org
Subject: Re: DataChannel XPages ...
References: <382D62CA.1301F4C8@netmanage.co.il>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Zvi Avraham wrote:
>
> Stefano,
>
> you once mentioned DataChannel's XPages,
> I also read about them in :
> http://industry.java.sun.com/javanews/stories/story2/0,1072,20294,00.html
>
> "- XPages, from DataChannel -- an XML application markup language for
> quickly building data-driven, cross-platform Web applications that
> integrate disparate data sources. An XPage application is defined by an
> XML file that aggregates multiple data sources, makes that data URL
> addressable and defines custom methods to access that data. The
> DataChannel submission includes Java code for a servlet based engine"
>
> Is this will be integrated with XSP ?
At this point, no. We'll have both XPages _and_ XSP and we'll see what
the users decide/like.
> I don't find it on xml.apache.org,
> what's the status of it ?
DataChannel is working on cleaning the source code up to donate it to
the project. It will happen soon.
I haven't seen the source code yet, just a few example and they sound
like a mix between DCP, XSP and a PDOM, still allowing page compilation
but also offering some content/logic separation.
The PDOM capabilities might be attractive, but I need to see how this
works in practive before make any judgement since I'm kind of skeptical
on using DOM as a DBMS API.
--
Stefano Mazzocchi One must still have chaos in oneself to be
able to give birth to a dancing star.
Friedrich Nietzsche
From balld@phoenix.webslingerZ.com Sun Nov 14 22:16:48 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 8063 invoked from network); 14 Nov 1999 22:16:48 -0000
Received: from phoenix.webslingerz.com (balld@206.66.49.24)
by apache.org with SMTP; 14 Nov 1999 22:16:48 -0000
Received: from localhost (balld@localhost)
by phoenix.webslingerZ.com (8.8.7/8.8.7) with ESMTP id RAA01470
for ; Sun, 14 Nov 1999 17:18:40 -0500
Date: Sun, 14 Nov 1999 17:18:40 -0500 (EST)
From: Donald Ball
To: cocoon-dev@xml.apache.org
Subject: Re: DataChannel XPages ...
In-Reply-To: <382D838E.66600F9F@apache.org>
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
On Sat, 13 Nov 1999, Stefano Mazzocchi wrote:
> > I don't find it on xml.apache.org,
> > what's the status of it ?
>
> DataChannel is working on cleaning the source code up to donate it to
> the project. It will happen soon.
>
> I haven't seen the source code yet, just a few example and they sound
> like a mix between DCP, XSP and a PDOM, still allowing page compilation
> but also offering some content/logic separation.
>
> The PDOM capabilities might be attractive, but I need to see how this
> works in practive before make any judgement since I'm kind of skeptical
> on using DOM as a DBMS API.
I am as well but it sounds interesting. Is there an API or any docs on
this?
- donald
From Simon@BALR.com Mon Nov 15 23:02:31 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 23134 invoked from network); 15 Nov 1999 23:02:31 -0000
Received: from wagmail2.walgreens.com (207.70.75.100)
by apache.org with SMTP; 15 Nov 1999 23:02:31 -0000
Received: from NotesMTA.walgreens.com (mailhost4.walgreens.com [207.70.76.9])
by wagmail2.walgreens.com (8.9.1b+Sun/8.9.1) with SMTP id RAA24501
for ; Mon, 15 Nov 1999 17:02:39 -0600 (CST)
Received: from net3782.Walgreens.com ([60.130.7.174]) by NotesMTA.walgreens.com (Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) with SMTP id 8625682A.007E9007; Mon, 15 Nov 1999 17:02:24 -0600
Message-ID: <028301bf2fbd$3fddfb20$ae07823c@Walgreens.com>
From: "Simon McClenahan"
To: "Cocoon Dev"
Subject: Re: When, or where is latest development release?
Date: Mon, 15 Nov 1999 17:00:45 -0600
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
I'm replying to this new list instead of the Working Dogs list, hope =
that's OK ...
I downloaded and installed GNU's CVS, and I've followed the concept of =
AnonCVS outlined at http://xml.apache.org/cvs.html . Having not used CVS =
before, I briefly RTFM'd and managed to get some sort of listing, but I =
could not find Cocoon. Can someone give me some basic CVS commands to be =
able to grab the current Cocoon source as anoncvs?
I then discovered the Daily Archives at =
http://www.working-dogs.com/daily/ . So I got the latest version and did =
a make, but I got a bunch of "Package X not found in import" errors for =
all the parsers and xslt processors and the ecmascript interpreter. So =
this means that I am required to download all of these packages to be =
able to compile Cocoon! Is there a definitive list of required packages? =
Can I assume that Cocoon2 will use Xerces/Xalan in the distribution, =
and/or SAX, and not the individual packages mentioned?
Speaking of Cocoon2, where, and when? It was said that there would be a =
working version by the end of the year, what are the chances of someone =
getting something working within the next week or two? I'm just asking, =
not trying to pressure anyone or seem ungrateful.
cheers,
Simon
-------------------------------------------
From: "Donald Ball"
Date: Tue, 9 Nov 1999 02:05:05 -0500 (EST)
On Mon, 8 Nov 1999, Simon McClenahan wrote:
> The download area has 1.5, but the online documentation says 1.6-dev .
> I really want to try the XT processor. Is there a .jar file I can
> download, or do I just have to compile it myself from the emails I
> receive on this list? If this code is in CVS, could a nightly or
> regularly scheduled build be performed, available for download?
The code is in CVS. You should be able to simply grab the new =
processor's
source code, compile it, and it to the jar for 1.5 (or just compile a
whole new jar, whichever). I cannot schedule a nightly build from CVS =
but
vote +1 for this to happen. I guess we should beg jon* for help?
- donald
From kvisco@exoffice.com Mon Nov 15 23:13:33 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 3109 invoked from network); 15 Nov 1999 23:13:33 -0000
Received: from unknown (HELO titan.exoffice.com) (root@204.156.146.48)
by apache.org with SMTP; 15 Nov 1999 23:13:33 -0000
Received: from exoffice.com ([204.156.146.57])
by titan.exoffice.com (8.9.3/8.9.3) with ESMTP id QAA17309
for ; Mon, 15 Nov 1999 16:08:00 -0800
Message-ID: <38309423.C361116C@exoffice.com>
Date: Mon, 15 Nov 1999 15:15:47 -0800
From: Keith Visco
X-Mailer: Mozilla 4.7 [en] (Win98; I)
X-Accept-Language: en
MIME-Version: 1.0
To: cocoon-dev@xml.apache.org
Subject: Re: When, or where is latest development release?
References: <028301bf2fbd$3fddfb20$ae07823c@Walgreens.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
You are not required to download all the support packages, just
remove (or rename the class so that is does not have ".java") the XSL processor and XML parser wrapper classes for packages you do not have.
--Keith
Simon McClenahan wrote:
> I'm replying to this new list instead of the Working Dogs list, hope that's OK ...
>
> I downloaded and installed GNU's CVS, and I've followed the concept of AnonCVS outlined at http://xml.apache.org/cvs.html . Having not used CVS before, I briefly RTFM'd and managed to get some sort of listing, but I could not find Cocoon. Can someone give me some basic CVS commands to be able to grab the current Cocoon source as anoncvs?
>
> I then discovered the Daily Archives at http://www.working-dogs.com/daily/ . So I got the latest version and did a make, but I got a bunch of "Package X not found in import" errors for all the parsers and xslt processors and the ecmascript interpreter. So this means that I am required to download all of these packages to be able to compile Cocoon! Is there a definitive list of required packages? Can I assume that Cocoon2 will use Xerces/Xalan in the distribution, and/or SAX, and not the individual packages mentioned?
>
> Speaking of Cocoon2, where, and when? It was said that there would be a working version by the end of the year, what are the chances of someone getting something working within the next week or two? I'm just asking, not trying to pressure anyone or seem ungrateful.
>
> cheers,
> Simon
>
> -------------------------------------------
> From: "Donald Ball"
> Date: Tue, 9 Nov 1999 02:05:05 -0500 (EST)
>
> On Mon, 8 Nov 1999, Simon McClenahan wrote:
>
> > The download area has 1.5, but the online documentation says 1.6-dev .
> > I really want to try the XT processor. Is there a .jar file I can
> > download, or do I just have to compile it myself from the emails I
> > receive on this list? If this code is in CVS, could a nightly or
> > regularly scheduled build be performed, available for download?
>
> The code is in CVS. You should be able to simply grab the new processor's
> source code, compile it, and it to the jar for 1.5 (or just compile a
> whole new jar, whichever). I cannot schedule a nightly build from CVS but
> vote +1 for this to happen. I guess we should beg jon* for help?
>
> - donald
From stefano@apache.org Mon Nov 15 23:35:29 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 24554 invoked from network); 15 Nov 1999 23:35:29 -0000
Received: from pop.systemy.it (194.20.140.28)
by apache.org with SMTP; 15 Nov 1999 23:35:29 -0000
Received: from apache.org (pv15-pri.systemy.it [194.21.255.15]) by pop.systemy.it (8.8.8/8.8.3) with ESMTP id AAA13719 for ; Tue, 16 Nov 1999 00:35:16 +0100
Message-ID: <38309936.BB1C9BD7@apache.org>
Date: Tue, 16 Nov 1999 00:37:26 +0100
From: Stefano Mazzocchi
Organization: Apache Software Foundation
X-Mailer: Mozilla 4.7 [en] (Win98; I)
X-Accept-Language: it,en
MIME-Version: 1.0
To: cocoon-dev@xml.apache.org
Subject: Re: When, or where is latest development release?
References: <028301bf2fbd$3fddfb20$ae07823c@Walgreens.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Simon McClenahan wrote:
>
> I'm replying to this new list instead of the Working Dogs list, hope that's OK ...
>
> I downloaded and installed GNU's CVS, and I've followed the concept of AnonCVS outlined at http://xml.apache.org/cvs.html . Having not used CVS before, I briefly RTFM'd and managed to get some sort of listing, but I could not find Cocoon. Can someone give me some basic CVS commands to be able to grab the current Cocoon source as anoncvs?
>
> I then discovered the Daily Archives at http://www.working-dogs.com/daily/ . So I got the latest version and did a make, but I got a bunch of "Package X not found in import" errors for all the parsers and xslt processors and the ecmascript interpreter. So this means that I am required to download all of these packages to be able to compile Cocoon! Is there a definitive list of required packages? Can I assume that Cocoon2 will use Xerces/Xalan in the distribution, and/or SAX, and not the individual packages mentioned?
>
> Speaking of Cocoon2, where, and when? It was said that there would be a working version by the end of the year, what are the chances of someone getting something working within the next week or two? I'm just asking, not trying to pressure anyone or seem ungrateful.
Sorry, I'm really busy and the process of moving from java.apache to
xml.apache will take a while. Sorry about that, please be patient a
little more.
--
Stefano Mazzocchi One must still have chaos in oneself to be
able to give birth to a dancing star.
Friedrich Nietzsche
From Simon@BALR.com Tue Nov 16 15:44:08 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 27405 invoked from network); 16 Nov 1999 15:44:08 -0000
Received: from wagmail2.walgreens.com (207.70.75.100)
by apache.org with SMTP; 16 Nov 1999 15:44:08 -0000
Received: from NotesMTA.walgreens.com (mailhost4.walgreens.com [207.70.76.9])
by wagmail2.walgreens.com (8.9.1b+Sun/8.9.1) with SMTP id JAA07630;
Tue, 16 Nov 1999 09:44:15 -0600 (CST)
Received: from net3782.Walgreens.com ([60.130.7.174]) by NotesMTA.walgreens.com (Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) with SMTP id 8625682B.00566D38; Tue, 16 Nov 1999 09:44:00 -0600
Message-ID: <004b01bf3049$2e146e60$ae07823c@Walgreens.com>
From: "Simon McClenahan"
To: "Cocoon Dev"
Subject: Running processors from command line
Date: Tue, 16 Nov 1999 09:42:24 -0600
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
I don't suppose there could be a command-line interface to the =
SQLProcessor? Something like:
java org.apache.cocoon.processor.sql.SQLProcessor
or an abstract interface to any processor:
java org.apache.cocoon.processor type=3Dsql
cheers,
Simon
From bmclaugh@algx.net Wed Nov 17 16:51:56 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 29871 invoked from network); 17 Nov 1999 16:51:56 -0000
Received: from dfwns08.algx.net (216.99.225.37)
by apache.org with SMTP; 17 Nov 1999 16:51:56 -0000
Received: from dfwbmclaugh ([216.99.224.6]) by dfwns08.algx.net
(Post.Office MTA v3.5.2 release 221 ID# 0-56809U5000L5300S0V35)
with SMTP id net for ;
Wed, 17 Nov 1999 10:51:51 -0600
Message-ID: <00fe01bf311c$07465b80$8c0f0a0a@allegiancetelecom.com>
From: "Brett McLaughlin"
To:
Subject: Cocoon and Tomcat
Date: Wed, 17 Nov 1999 10:51:43 -0600
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
Has anyone had any luck getting Cocoon to work with Tomcat? I think I saw
something about this recently, but never really heard how it was done.
Thanks.
-Brett
From balld@phoenix.webslingerZ.com Wed Nov 17 20:05:27 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 3612 invoked from network); 17 Nov 1999 20:05:27 -0000
Received: from phoenix.webslingerz.com (balld@206.66.49.24)
by apache.org with SMTP; 17 Nov 1999 20:05:27 -0000
Received: from localhost (balld@localhost)
by phoenix.webslingerZ.com (8.8.7/8.8.7) with ESMTP id PAA29495
for ; Wed, 17 Nov 1999 15:06:40 -0500
Date: Wed, 17 Nov 1999 15:06:39 -0500 (EST)
From: Donald Ball
To: Cocoon Dev
Subject: Re: Running processors from command line
In-Reply-To: <004b01bf3049$2e146e60$ae07823c@Walgreens.com>
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
On Tue, 16 Nov 1999, Simon McClenahan wrote:
> I don't suppose there could be a command-line interface to the
> SQLProcessor? Something like:
>
> java org.apache.cocoon.processor.sql.SQLProcessor
Uh, you can. you just run the main cocoon class (org.apache.cocoon.Cocoon)
on an XML file that contains the PI...
- donald
From nader@makeit.no Thu Nov 18 09:48:07 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 25759 invoked from network); 18 Nov 1999 09:48:07 -0000
Received: from unknown (HELO home.netti.nu) (root@195.159.89.21)
by apache.org with SMTP; 18 Nov 1999 09:48:07 -0000
Received: from beta (mp-217-211-17.daxnet.no [193.217.211.17])
by home.netti.nu (8.9.1/8.9.1) with SMTP id JAA18648
for ; Thu, 18 Nov 1999 09:53:06 +0100
Message-ID: <000701bf31a8$60414420$0326f081@beta>
From: "Nader Aeinehchi"
To:
Subject: Re: Running processors from command line
Date: Thu, 18 Nov 1999 10:36:22 +0100
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.2106.4
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
Hi Donald:
This is the first I ever participate in Free Code Project. I have
registered myself in the CoCoon Project, but I can not see the status of the
project, where the existing/sample code or architecture is.
Can you guide me?
Best Regards....
-----Original Message-----
From: Donald Ball
To: Cocoon Dev
Date: Wednesday, November 17, 1999 10:02 PM
Subject: Re: Running processors from command line
>On Tue, 16 Nov 1999, Simon McClenahan wrote:
>
>> I don't suppose there could be a command-line interface to the
>> SQLProcessor? Something like:
>>
>> java org.apache.cocoon.processor.sql.SQLProcessor
>
>Uh, you can. you just run the main cocoon class (org.apache.cocoon.Cocoon)
>on an XML file that contains the PI...
>
>- donald
>
From pier@apache.org Thu Nov 18 10:26:28 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 10998 invoked from network); 18 Nov 1999 10:26:28 -0000
Received: from dnai-216-15-97-206.cust.dnai.com (HELO kali.betaversion.org) (216.15.97.206)
by apache.org with SMTP; 18 Nov 1999 10:26:28 -0000
Received: from sun(sun.betaversion.org[192.168.1.2]) (1205 bytes) by kali.betaversion.org
via smail with P:smtp/R:internet/T:smtp
(sender: )
id
for ; Thu, 18 Nov 1999 02:28:07 -0800 (PST)
(Smail-3.2.0.106 1999-Mar-31 #3 built 1999-Sep-21)
Message-ID: <01b501bf31af$c5cf7ad0$0201a8c0@betaversion.org>
From: "Pierpaolo Fumagalli"
To:
References: <000701bf31a8$60414420$0326f081@beta>
Subject: Re: Running processors from command line
Date: Thu, 18 Nov 1999 02:29:19 -0800
Organization: The Apache Software Foundation
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
From: Nader Aeinehchi
>
> Hi Donald:
>
> This is the first I ever participate in Free Code Project. I have
> registered myself in the CoCoon Project, but I can not see the status of
the
> project, where the existing/sample code or architecture is.
>
> Can you guide me?
You can checkout the code from the public cvs archive of xml.apache.org...
Get a cvs client (www.cyclic.org or www.wincvs.org).
Take a look here for more informations http://xml.apache.org/cvs.html
Pier
From stefano@hyperreal.org Sat Nov 20 01:13:23 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 215 invoked by uid 2016); 20 Nov 1999 01:13:23 -0000
Delivered-To: apcore-xml-cocoon-cvs@apache.org
Received: (qmail 29840 invoked by uid 218); 20 Nov 1999 01:12:24 -0000
Date: 20 Nov 1999 01:12:24 -0000
Message-ID: <19991120011224.29839.qmail@hyperreal.org>
From: stefano@hyperreal.org
To: xml-cocoon-cvs@apache.org
Subject: cvs commit: xml-cocoon changes.xml todo.xml LICENSE README index.html Todo
stefano 99/11/19 17:12:18
Modified: . LICENSE README
Added: . changes.xml todo.xml
Removed: . index.html Todo
Log:
Cleaning up and moving to total XML docs
Revision Changes Path
1.2 +46 -50 xml-cocoon/LICENSE
Index: LICENSE
===================================================================
RCS file: /home/cvs/xml-cocoon/LICENSE,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LICENSE 1999/11/06 13:19:03 1.1
+++ LICENSE 1999/11/20 01:11:57 1.2
@@ -1,53 +1,49 @@
-/* ====================================================================
- * Copyright (c) 1995-1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
+/*
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Cocoon" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
* apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * Stefano Mazzocchi . For more information on the Apache
+ * Software Foundation, please see .
*
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * Contributors... origin.. credits..
*/
-
-
-
1.2 +53 -13 xml-cocoon/README
Index: README
===================================================================
RCS file: /home/cvs/xml-cocoon/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- README 1999/11/06 13:19:03 1.1
+++ README 1999/11/20 01:11:58 1.2
@@ -1,26 +1,66 @@
- Apache
- Version 1.3 (and up)
-
+ C O C O O N @@VERSION@@
+
+
What is it?
-----------
+ Cocoon is a 100% pure Java publishing framework that relies on
+ new W3C technologies (such as XML, and XSL) to provide web content.
+
+ The Cocoon project aims to change the way web information is created,
+ rendered and delivered. This new paradigm is based on fact that document
+ content, style and logic are often created by different individuals or
+ working groups.
+
+ Cocoon aims to a complete separation of the three layers, allowing the
+ three layers to be indipendently designed, created and managed, reducing
+ management overhead, increasing work reuse and reducing time to market.
+
+ Where is it?
+ ------------
- The Latest Version
- ------------------
+ The home page for the Cocoon project can be found in the Apache XML Project
+ web site (http://xml.apache.org/cocoon/). There you also find information
+ on how to download the latest release as well as all the other information
+ you might need regarding this project.
- Documentation
- -------------
- Installation
+ Requirements
------------
+
+ Cocoon is implemented both as a Java servlet and a Java command line
+ application. The following requirements exist for installing it:
+
+ o A Java 1.1 or later compatible virtual machine for your operating system.
+
+ o Server API 2.x Servlet Engine (optional for command line operation).
+
+ o XML Parser with DOM support.
+
+ o XSL Processor with DOM support.
+
+
+ Installation Instructions and Documentation
+ -------------------------------------------
+
+ The documentation available as of the date of this release is
+ included in the "docs/" directory.
+
+ Look for the most updated documentation on the Cocoon web site under
+ the Apache XML Project (http://xml.apache.org/cocoon/).
+
+
+ Licensing and legal issues
+ --------------------------
- Licensing
- ---------
+ For legal and licensing issues, please read the LICENSE file.
- Please see the file called LICENSE.
- Acknowledgments
- ----------------
+ Thanks for using Cocoon.
+ The Apache XML Project
+ http://xml.apache.org/
+
+
\ No newline at end of file
1.1 xml-cocoon/changes.xml
Index: changes.xml
===================================================================
Removed all old PI formats from docs and properties file
Added a public method to FormatterFactory to allow more direct formatting
Patched EngineWrapper to allow FileProducer to work when called from command line.
Fixed concurrency problem in XML4j parser. Again thanks to Jeffrey Thomas
Harris for the info (SM)
Added JRun installation instructions. Thanks to Scott Stirling
for this (SM)
Added more info on the Cocoon status page. Thanks to David
Lehn for the patch. (SM)
Patched OpenXML that had a bug in the XML publisher that didn't support doctypes imposed from the
outside. This was breaking the WML formatter. (SM)
Patched XSL:P to support <xsl:processing-instruction> instead of
<xsl:pi> which is now deprecated.
This makes XSL:P a hybrid between XSLT revisions but it's easier this way than to create two sets
of examples that work with latest and oldest releases of XSLT. Hopefully XSLT will standardize soon. (SM)
Fixed portability issues with JRun and Sun's JSWDK. (HH)
Added parsed stylesheets caching capabilities to the AbstractXSLTProcessor:
now if produced files are changed but stylesheets don't, the second are not
reparsed, improving the system performance since this is a very frequent
case (SM)
Reduced the memory footprint of some classes by initializing the
hashtables to lower values than default (SM)
Improved the speed of PI searching by looking for first found PI instead
of scanning the whole file (SM)
Updated the cocoon processing instructions that drive the reaction: <?cocoon:process?>
drives the processing reaction, <?cocoon.format?> indicates the
formatter used to end processing and format the document (SM)
Removed the processor pipeline and replaced with a reactor-type router
with PI-based reaction. (SM)
Moved the example classes in their own package for easier installation and
testing (SM)
Modified a number of classes to fit the new Store and Cache subframeworks.
(SM)
Added a first implementation of the Cache interface based on dynamic
evaluation of changeable points. Since each page is created by different
logic blocks, each one is treated as a changeable point and queried
for change at request time. This allows the page to be recreated if one of
the changeable points changes. (SM)
Added a first implementation of the Store interface based on serialization
persistency wrapped by an adaptively managed memory buffer. The object
storage system is used by the Cache system and its ready for long-living
objects such as compiled pages and such that should survive the JVM
shutdown. (SM)
Added support for the Oracle XSL Processor (works only with the Oracle XML
Parser) (SM)
Added the Store framework (SM)
Included FOP Version 0.9.1 that partially supports latest XSL Formatting
Object specification (19990421) (JT)
Included XSL:P Version 1.0 Beta (19990823) that supports latest XSLT
specification (19990421) (KV)
Introduced the Actor/Director concept to allow cleaner implementation and
configuration of dynamically loaded objects. (SM)
Added the WAP example to show how Cocoon can serve the same content to fat
HTML clients and thin WML clients such as WAP-enabled cellular phones or PDA.
(SM).
Removed the need for a properties file in DCP (SM)
Fixed a minor bug in Configurations. (HH)
Added the Producer subframework for easier dynamic XML generation (SM)
Rewrote and cleaned up the formatting section using the Router abstract
class (SM)
Rewrote some of the underlying design pattern implementations (SM)
Fixed bug in SunXMLParser not implementing Status (CC)
Added support for Oracle XML parser (CC)
Added Dynamic Content Processor (RR)
Updated sample configurations to reflect the changes (SM)
Rewrote the PI parser for more general use in AbstractXSLProcessor (SM)
Created the EngineWrapper class to extend the Engine class for use on
non-servlet based applications. (SM)
Added the possibility to use request parameters to trigger special events
on the page. Currently debug and cache are supported (SM)
Added request and cache as parameters for the processor chain as requested
by more sophisticated processors (SM)
Changed the cache system interface to match new needs (SM) [note: the
cache system has not been yet ported]
Changed the printing architecture. Now, you don't need to specify the type
of formattation but the publishing system will understand it for you (based
on processing instructions and the specified document type) (SM)
Added white paper on the Cocoon 2 architecture for public review (SM)
Fixed typos, added support for more detailed verbosity and fixed a
path-parsing bug for win32 systems (PO)
Added support for James Tauber's FOP to translate XSL:FO-styled documents
into PDF documents (JT, SM)
Included more detailed example of future XSP technology (under examples/xsp).
Note: the Cocoon 1.x generation will not support XSP and they are currently
being designed. A very very early access of the working draft is available
under docs/xsp (SM)
Patched the Sun ProjectX parser wrapper to work with latest release. Added
also a Sun printer class (RS)
Added the ability to call Cocoon from the command line (DB and SM)
Fixed the final Vector.toString() problem in JDK 1.1 compilation (SM)
Fixed the "verify error" by using Jikes compiler for
distribution (SM)
Cleaned up documentation and added some entries in the FAQ (SM)
Removed win32 batch scripts and rewritten the makefile (SM)
Fixed a problem with the getClassloader() method returning null. Now
Cocoon doesn't always use the internal properties file but adds hardcoded
default values. This is because in Java 1.1 there is no getSystemClassloader()
method (SM).
Included the updated versions of both OpenXML 1.0.5 and XSL:P 19990326
which should fix lots of bugs and improve the overall performance (SM)
Patched to avoid the use of File.toURL() method which is not found under
the Java1 platform (SM, thanks to AD)
Added DoNothingCache to avoid caching during document debugging (GR)
Changed the stylesheet mapping processing instruction from illegal "xml:stylesheet"
to standard "xml-stylesheet"
Created Cocoon logo
Added LRU caching (both memory and disk)
Added support for XSL:P processor
Removed support for Koala XSL parser
Redesigned internal framework
Fixed some typos and English bugs in docs
Initial version
1.1 xml-cocoon/todo.xml
Index: todo.xml
===================================================================
Finish XML-ize the docs (changes.xml and faq.xml).
Write the stylesheets for the docs.
Add support for Xalan e Xerces and new FOP.
support external entities with relative URIs
pass request/session parameters to the XSLT processors for dynamic
stylesheet operation
Make sure you removed all the java.apache.org instances around.
Play around with Tomcat.
Add the Cocoon2 branch with the Kali sources.
Add the XSP compiler.
Write the NRG DTD WD and try to implement a formatter for this. (should we
create its own project? include with FOP?)
make the error page formatted with the wanted mime type and not only HTML
(probably impossible in Cocoon1 model)
Use Ant to build instead of makefile.
From stefano@hyperreal.org Sat Nov 20 01:14:54 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 577 invoked by uid 2016); 20 Nov 1999 01:14:54 -0000
Delivered-To: apcore-xml-cocoon-cvs@apache.org
Received: (qmail 452 invoked by uid 218); 20 Nov 1999 01:14:16 -0000
Date: 20 Nov 1999 01:14:16 -0000
Message-ID: <19991120011416.451.qmail@hyperreal.org>
From: stefano@hyperreal.org
To: xml-cocoon-cvs@apache.org
Subject: cvs commit: xml-cocoon/docs/dtd - New directory
stefano 99/11/19 17:14:14
xml-cocoon/docs/dtd - New directory
From stefano@hyperreal.org Sat Nov 20 01:15:03 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 633 invoked by uid 2016); 20 Nov 1999 01:15:03 -0000
Delivered-To: apcore-xml-cocoon-cvs@apache.org
Received: (qmail 534 invoked by uid 218); 20 Nov 1999 01:14:33 -0000
Date: 20 Nov 1999 01:14:33 -0000
Message-ID: <19991120011433.533.qmail@hyperreal.org>
From: stefano@hyperreal.org
To: xml-cocoon-cvs@apache.org
Subject: cvs commit: xml-cocoon/docs/stylesheets - New directory
stefano 99/11/19 17:14:31
xml-cocoon/docs/stylesheets - New directory
From stefano@hyperreal.org Sat Nov 20 01:16:57 1999
Return-Path:
Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm
Delivered-To: mailing list cocoon-dev@xml.apache.org
Received: (qmail 2723 invoked by uid 2016); 20 Nov 1999 01:16:57 -0000
Delivered-To: apcore-xml-cocoon-cvs@apache.org
Received: (qmail 2645 invoked by uid 218); 20 Nov 1999 01:16:55 -0000
Date: 20 Nov 1999 01:16:55 -0000
Message-ID: <19991120011655.2642.qmail@hyperreal.org>
From: stefano@hyperreal.org
To: xml-cocoon-cvs@apache.org
Subject: cvs commit: xml-cocoon/docs/stylesheets javadoc.html.css
stefano 99/11/19 17:16:53
Added: docs cocoon2.xml dcpprocessor.xml dynamic.xml faq.xml
guide.xml index.xml installing.xml license.xml
sqlprocessor.xml technologies.xml
docs/dtd blocks.ent changes.dtd characters.ent faq.dtd
page.dtd todo.dtd
docs/stylesheets javadoc.html.css
Removed: docs api.html changes.html cocoon2.html dcp.html
dynamic.html faq.html guide.html index.html
installing.html license.html sqlprocessor.html
stylesheet.css technologies.html todo.html
Log:
Cleaning up and moving to total XML docs
Revision Changes Path
1.1 xml-cocoon/docs/cocoon2.xml
Index: cocoon2.xml
===================================================================
The Cocoon Project has gone a long way since it's creation on
January 1999. It started as a simple servlet for static XSL styling and became
more and more powerful as new features were added. Unfortunately, design
decisions made early in the project influenced its evolution. Today, some of
those constraints that shaped the project were modified as XML standards have evolved and
solidified. For this reason, those design decisions need to be reconsidered
under this new light.
While Cocoon started as a small step in the direction of a new
web publishing idea based on better design patterns and reviewed estimations
of management issues, the technology used was not mature enough for tools to
emerge. Today, most web engineers consider XML as the key for an improved web
model and web site managers see XML as a way to reduce costs and ease
production.
In an era where services rather than software will be key for
economical success, a better and less expensive model for web publishing will
be a winner, especially if based on open standards.
Web serving environments must be fast and scalable to be
useful. Cocoon1 was born as a "proof of concept" rather than a
production software and had significant design restrictions based mainly on
the availability of freely redistributable tools. Other issues were lack of
detailed knowledge on the APIs available as well as underestimation of the
project success, being created as a way to learn XSL rather than a full
publishing system capable of taking care of all XML web publishing needs.
For the above reasons, Cocoon1 was based on the DOM level 1
API which is a passive API and was intended mainly for client side
operation. This is mainly due to the fact that most (if not all!) DOM
implementations require the document to reside in memory. While this is
practical for small documents and thus good for the "proof of
concept" stage, it is now considered a main design constraint for Cocoon
scalability.
Since the goal of Cocoon2 is the ability to process
simultaneously multiple 100Mb documents in JVM with a few Mbs of heap size,
careful memory use and tuning of internal components is a key issue. To reach
this goal, an improved API model was needed. This is now identified in the SAX
API which is, unlike DOM, event based (so active, in the sense that its
design is based the inversion of control principle).
The event model allows document producers to trigger producing
events that get handled in the various processing stages and get finally
formatted in the response stream. This has significant impacts on performance
and memory needs:
incremental operation: the response is created
during document production. Client's perceived performance is dramatically
improved since clients can start receiving data as soon as it is created,
not after all processing stages have been performed. In those cases where
incremental operation is not possible (for example, element sorting),
internal buffers store the events until the operation can be performed.
However, even in these cases performance can be increased with the use of
tuned memory structures.
lowered memory consumption: since most of the
server processing required in Cocoon is incremental, an incremental model
allows XML production events to be transformed directly into output events
and character written on streams, thus avoiding the need to store them in
memory.
easier scalability: reduce memory needs allow more
concurrent operation to be possible, thus allowing the publishing system
to scale as the load increases.
more optimizable code model: modern virtual
machines are based on the idea of hot spots, code fragments that
are used often and, if optimized, increase the process execution by far.
This new event model allows easier detection of hot spots since it's a
method driven operation, rather than a memory driven one. Hot methods can
be identified earlier and their optimization performed better.
reduced garbage collection: even the most advanced
and lightweight DOM implementation require at least three to five times
(and sometimes much more than this) more memory than original document
size. This does not only reduce the scalability of the operation, but also
impact overall performance by increasing the number of memory garbage that
must be collected after the response in sent to the client. Even if modern
virtual machines reduced the overhead of garbage collection, less garbage
will always have performance and scalability impacts.
The above points, alone, would be enough for the Cocoon2
paradigm shift, even if this event based model impacts not only the general
architecture of the publishing system but also its internal processing
components such as XSLT processing and PDF formatting. These components will
require substantial work and maybe design reconsideration to be able to follow
a pure event-based model. The Cocoon Project will work closely with the other
component projects to be able to influence their operation in this direction.
Another design choice that should be revised is the reactor
pattern that was introduced to allow components to be connected in more
flexible way. In fact, opposed to the fixed pipe model used up to Cocoon
1.3.1, the reactor approach allows components to be dynamically connected,
depending on reaction instructions introduced inside the documents.
While this at first seemed a very advanced and highly
appealing model, it turned out to be a very dangerous approach. The first
concern is mainly technical: porting the reactor pattern under an event-based
model requires limitations and tradeoffs since the generated events must be
cached until a reaction instruction is encountered.
But even if the technical difficulties are solved, a key limitation
remains: there is no single point of management.
The web was created to reduce information management costs by
distributing them back on information owners. While this model is great for
user communities (scientists, students, employees, or people in general) each
of them managing small amount of personal information, it becomes impractical
for highly centralized information systems where distributed management is
simply not practical.
While in the HTML web model the page format and URL names
where the only necessary contracts between individuals to create a world wide
web, in more structured information systems the number of contracts increases
by a significant factor due to the need of increased coherence between the
hosted information: common style, common design issues, common languages,
server side logic integration, data validation, etc...
It is only under this light that XML and its web model reveal
their power: the HTML web model had too little contracts to be able to develop
a structured and more coherent distributed information system, reason that is
mainly imposed by the lack of good and algorithmically certain information
indexing and knowledge seeking. Lacks that tend to degrade the quality of the
truly distributed web in favor of more structured web sites (that based their
improved site structure on internal contracts).
The simplification and engineering of web site management is
considered one of the most important Cocoon2 goals. This is done mainly by
technologically imposing a reduced number of contracts and place them in a hierarchical
shape suitable to replace current high-structure web site management
models.
The model that Cocoon2 adopts is the "pyramid model of
web contracts" which is outlined in the picture below
and is composed by four different working contexts (the rectangles)
the people that decide what the site should
contain, how it should behave and how it should appear
the people responsible to write, own and manage
the site content. This context may contain several sub-contexts one
for each language used to express page content.
the people responsible for integration with dynamic
content generation technologies and database systems.
the people responsible for information
presentation, look & feel, site graphics and its maintenance.
The above model can be applied only if the different contexts
never overlap, otherwise there is no chance of having a single management
point. For example, if the W3C-recommended method to link stylesheets to XML
documents is used, the content and style contexts overlap and it's impossible
to change the styling behavior of the document without changing it. The same
is true for the processing instructions used by the Cocoon1 reactor to drive
the page processing: each stage concur to determine the result thus increasing
management and debug complexity. Another overlapping in context contracts is
the need for URL-encoded parameters to drive the page output. These overlaps
break the pyramid model and increase the management costs.
In Cocoon2, the reactor pattern will be abandoned in favor of
a chain mapping technique. This is based on the fact that the number of
different contracts is limited even for big sites (for example, even if the
pages are millions, they probably all share no more than a few different DTDs
and each DTD has no more than a couple of stylesheets).
Also, for performance reasons, Cocoon2 will try to compile
everything that is possibly compilable (pages/XSP into producers, stylesheets
into processors, etc...) so, in this new model, the processing chain
that generates the page contains (in a direct executable form) all the
information/logic that handles the requested resource to generate its
response.
This means that instead of using even-driven request-time DTD
interpretation (done in all Cocoon1 processors), these will be either compiled
into processors directly (XSLT stylesheet compilation) or compiled into
producers using logicsheets and XSP which will remove totally the need for
request-time interpretation solutions like DCP that will be removed.
The cache system in Cocoon1 will be ported with no important
design changes since it's very flexible and was not polluted by early design
constraints since it appeared in later versions. The issue regards static file
caching that, no matter what, will always be slower than direct web server
caching.
To be able to put most of the static part job back on the web
server (where it belongs), Cocoon2 will greatly improve it's command line
operation, allowing the creation of site makefiles that will
automatically scan the web site and the source documents and will provide a
way to regenerate the static part of a web site (images and tables
included!) based on the same XML model used in the dynamic operation version.
It will be up to the web server administrator to use static
regeneration capabilities on a time basis, manually or triggered by some
particular event (database update signal) since Cocoon2 will only provide
servlet and command line capabilities. The nice integration is based on the
fact that there will be no behavioral difference if the files are dynamically
generated in Cocoon2 via the servlet operation and cached internally or
pre-generated and served directly by the web server, as long as URI contracts
are kept the same by the system administrator (via URL-rewriting or aliasing)
Also, it will be possible to avoid on-fly page and stylesheet
compilation (which make debugging harder) with command line pre-compilation
hooks that will work like normal compilers from a developer's point of view.
Cocoon2 is a big and very ambitious project, not only for the
technological issues involved (which will require strong integration with XML
components) but also for the significant paradigm shifts imposed by the new
technologies. On the other hand, we strongly believe this to be the winner
model for future web engineering and if you believe in this yourself, we
invite you to join us or help us in any way you can provide.
Web publishing is very limited without the ability to create
dynamic content. For dynamic XML we refer to the content that is created as a
function of request parameters or state of the requested resource. For this
reason, a lot of work and design has been put into Cocoon to allow dynamic XML
content to be generated.
People are used to write small Java programs to create their
dynamic web content. Servlets, and Java in general, are very powerful, easy to
write and fast to debug, but they impose (like any other pure-logic solution)
a significant management cost. This is due to the fact that programmable
components like servlets must include both the logic to generate the dynamic
code as well as all static elements (such as static content and style).The
need for a more useful solution soon appeared.
To fill the gap between Java programmers and web engineers (groups
that rarely overlap), Sun proposed the Java Server Pages (JSP) specification,
a markup language (today with both SGML and XML syntax) that allows web
engineers to include code in their pages, rather than include pages in their
code. The impact of this strategy was significant: servlets were written
directly in Java code if very little static content was to be used, otherwise
JSP or other compiled server pages technologies were used.
This said, it would seem that using servlets/JPS to create
dynamic XML content would be the perfect choice, unfortunately design issues
impose that we take a second look to the technology and understand why this
isn't so.
Java Servlets were introduced by the Java Web Server team as a
way to allow users to create their own web plug-ins. They were designed
to handle the HTTP protocol and all possible dynamic web content (including
HTML, XML, images, etc. both text and binary streams). Unfortunately, the need
for a componentized request handler was not taken into serious consideration
in the design phase but only later, when at an implementation phase.
In fact, the Java Web Server provided the ability to chain
multiple servlets, one becoming the filter of the other. Unfortunately, since
the API don't include such possibility in their design, such servlet chain is
very limited in its behavior and poses significant restriction on the API use.
Something that forced the Servlet API architects to come up with better
solutions.
The solution was servlet nesting: the ability to
include a servlet output inside its own transparently. This allowed
programmers to separate different logic on different servlets, thus removing
the need for servlet chaining
While servlet nesting was a major advantage over servlet
chaining because it allowed servlets to be somewhat modular without loosing
the full API power, a common design pattern applies to the Servlet model in
general: no servlet is allowed to modify the output of another servlet. This
holds true for all servlet API versions up to today (version 2.2).
This limitation is the key: if no further XML processing is
needed on the server side, using servlets/JSP for creating XML is a perfect
choice, but if this output requires some server side processing (for example
XSLT transformations), the Servlet API does not allow another servlet to post
process it's output. This other servlet is, in our case, Cocoon.
In a few words, the Servlet API doesn't support Servlet
Piping.
Rather than turning Cocoon into a servlet engine, thus
limiting its portability, this documents outlines some solutions that allow
Cocoon users to get the servlet-equivalent functionality with internal Cocoon
design ideas.
The Cocoon processing model is based on the separation of
where XML content is generated based on Request parameters (servlet equivalent)where the produced XML content is transformed/evaluatedwhere the XML content is finally formatted into the wanted output format for client use.
This separation of working contexts allows Cocoon users to
implement their own internal modules to add the functionality they require to
the whole publishing system. In fact, while a few of these components are
already shipped with Cocoon, the highly modular structure allows you to build
your own to fit your particular needs.
Producers initiate the request handling phase. They are
responsible to evaluate the HttpServletRequest parameters provided and create
XML content that is fed into the processing reactor. A servlet logic should be
translated into a producer if the request parameters can be used directly to
generate the XML content (for example the FileProducer which loads the
requested file from disk).
Here follows the code for an example producer distributed with
Cocoon:
"
+ ""
+ ""
+ "
"
+ "Hello from a dummy page"
+ "
"
+ "";
public Reader getStream(HttpServletRequest request) throws IOException {
return new StringReader(dummy);
}
public String getPath(HttpServletRequest request) {
return "";
}
public String getStatus() {
return "Dummy Producer";
}
}
]]>
The key method is getStream() which is responsible to create
process the given servlet request and provide an output stream for reading the
generated XML document.
Note that Produce has also another method, getDocument(request),
which is responsible to return directly a DOM tree. In case you need to render
you servlet code Cocoon-aware, the above example should tell you what to do.
Please, look at the shipped producers source code for example
code and look at the user guide on how to install and
use your own producers.
If your servlet needs many parameters to work, it is more
reasonable that you write a Processor instead. A Processor transforms a given
XML document (which, in this case should contain the needed static parameters)
into something else, driven both by the input document and by the request
object which is also available.
Here is a simple processor example that should show you what
the above means. Suppose you have the following document as input (note that
it may have been produced from a file, from other sources or dynamically, see
the above paragraph):
Current time is
]]>
Our simple example processor will look for the %lg;time/%gt; tags and will
expand them to the current local time, creating this result document:
Current time is 6:48PM
]]>
Please, look at the shipped processors source code for example
code and look at the user guide on how to install and
use your own processors.
The above example shows a very simple situation but needs
non-trivial code to implement it. For this reason, the Cocoon distribution
includes a number of processors that implement common needs and situations.
These are:
the XSLT processor that applies XSLT
transformations to the input document. XSLT allows you to solve your
transformation needs as well as simple tag evaluation/processing due to
its extensible and programmable nature.
the DCP processor that evaluates XML processing
instructions with multi-language (Java and EcmaScript) logic. This
processor allows you to do programmatic substitution and inclusion
eliminating the need for complex processing logic. See the DCP
user guide for more information.
the SQL processor that evaluates simple tags
describing SQL queries to JDBC drivers and formats their result-set in XML
depending on given parameters. See the SQL
processor user guide for more information.
While the above represents a complete set of usable components
for dynamic XML content generation, the Cocoon project aims to separate all
three layers (content, logic and style). While XSLT transformations allow a
perfect separation between content and style with the use of stylesheets, the
separation between content and logic in dynamically generated XML pages is not
achieved with current Cocoon features.
To fill this whole, the XSP
(eXtensible Server Pages) technology was proposed. While in the working
draft stage, we strongly believe that some of the issues expressed in that
specification will be keys to the future of dynamic XML.
1.1 xml-cocoon/docs/faq.xml
Index: faq.xml
===================================================================
I don't find my question answered here, what do I do?
First, checkout the Java Apache FAQ-O-Matic
that contains a Cocoon section. You may find what you're looking for there. If
not, you may consult the mail
list digests and archives (we are aware of the problems regarding lack of
searching capabilities in the mail list archive and, yes, we are trying
to solve them). Then, if your problem is still unresolved, you should send a
message describing your problem with very detailed information about your
system, your status and your issues and asking for advice.
Please, keep in mind that nobody gets paid to answer your questions and be
respectful of the time others are investing to answer you. Also, please,
respect individual privacy and time by submitting help requests only to the
mail lists and not directly to developers or individuals.
At the end, if you come up with a solution for your problem, please, don't
throw away your effort, share it with us by directly adding it to the FAQ-O-Matic
and post it to the mail list. Thanks.
How do I pipe my servlet output into Cocoon?
Simple answer: you don't!!! read this
instead to find out equivalent ways to do what you need.
Complex answer: the Servlet API was not designed with servlet
chaining capabilities in mind. Servlet chaining was a night hack of the
original Java web server authors that allowed to pipe one servlet output
into the request of another. Currently (version 2.2) the Servlet API spec
doesn't allow a servlet to post-process the output of another servlet, so,
since Cocoon is a servlet, there is no portable way for it to call
your servlet and to process its output.
The Cocoon Project is in close contact with the Servlet API Expert Group at
Sun (being Stefano Mazzocchi a member of that board) and will try to include
post-processing hooks in the next Servlet API specifications. Since this is
work in progress, please, don't fill up the mail list with questions about
this: Cocoon will reflect the API changes as soon as they are publicly
available.
Where do I get more information on XSL and XML?
The web community is very exited about XML and XSL and many sources of
information are coming up even if these languages are fairly new. Here is a list of
locations you might be interested in to continue to gather resources on this
state-of-the-art technology
The XSL book I found says the correct way of indicating the XSL stylesheet is by
using the XML processing instruction <?xml:stylesheet?> while Cocoon is
using <?xml-stylesheet?>. Who is right?
The PI <?xml:stylesheet type="text/xsl" href=""?>
is the old method of associating a stylesheet with an XML document. Unfortunately, this
technology is rapidly changing and your books should warn you that the topic they are
discussing is not even in W3C Recommendation state. Which means that more changes are on
their way.
The current and proper way to associate a stylesheet with an XML document can be found at http://www.w3.org/TR/xml-stylesheet and
clearly indicates that <?xml-stylesheet ...?> is the proper way.
I think that using Processing Instructions to "chain"
document layers somehow violates the context separation since I would like
to be able to place style sensible information in sessions or request
parameters. What do you think about this?
You are right, PI reaction breaks the context separation and it's, at the
very end, the wrong approach. To follow a complete "model, view,
controller" design pattern, one should be able to associate a different
processing chain for each requested URI and for every possible request state
(with request parameters, session parameters and environment parameters).
The proposed solution (as you read in the Cocoon2
outline) is to have a regular expression based site map where site
managers decide what processing chain to apply to each possible request.
This somehow follows the mod_rewrite model in the Apache Web Server, but
rather than URL rewriting, the site map allows site designers to control the
behavior of their documents in one place without having to modify every
single reactive PI in each source file.
So, you've been warned: the PIs will go away, current functionality will
remain but the processing management will be abstracted one layer up.
What is WAP and I do I browse WML?
WAP stands for Wireless Application Protocol and WML stands for Wireless
Markup Language. For more information about these two, please refer to the WAP
Forum. For a client able to browse WML 1.1 look for the Nokia
WAP Toolkit.
When I compile Cocoon on my system, I get all a bunch of errors. What's wrong?
You probably didn't add all the needed packages to your compiler's
classpath or used the wrong version of the servlet classes (Cocoon is
compiled with the Servlet 2.1 classes).
Note that Cocoon supports much more packages than you normally use and you should have
them all to compile the full source code (this is why the cocoon.jar is distributed). To
avoid this, simply remove (or rename) the classes that wrap around the packages you don't
use.
Note that if you tried to compile Cocoon.java alone, many classes are not compiled
because there is no hardcoded reference to them. Cocoon uses dynamic loading based on its
property file to get the modules it needs when started. For this reason, the compiler is
not able to tell which class will be use and its dependency checks are never complete. The
only way to compile it is to manually indicate all the files to compile or to use the
makefiles after removing the unwanted wrapper classes for the packages you don't have or
you don't want.
External XML entities don't get included in my documents. What's wrong?
This is a well known bug in Cocoon. External entities don't work if not
used in an absolute URL format, so you should either use an http:// or file://
URL with absolution location.
My stylesheet doesn't sense the presence of my request parameters. How do
I pass them to it?
Another well known bug. Cocoon is not yet able to pass request
parameters to the stylesheets. It will be fixed in future releases.
Why the name "Cocoon"?
(Cocoon's creator Stefano Mazzocchi answers): It's a pretty stupid reason and a funny
story: I spent my 1998 Xmas vacation with my girlfriend up on the Alps at her cottage. One
night, I couldn't sleep and I woke up to watch some TV and finishing reading the XSL
documentation I brought with me. Being a science fiction afficionado, I found out
that Ron Howard's movie Cocoon was on and I started watching it. The idea of the XSL
rendering servlet stoke me like the alien "cocoons" in the pool stroke those old men in the
movie and, while watching, I started paper-coding it right away. After a while the movie
was over and the publishing framework designed. The name "Cocoon" seemed right
for the thing, meaning to be a way to bring new life to old ideas as well as to create cocoons
for such new ideas to become beautiful butterflies. :-)
This document assumes the knowledge of the W3C recommendation
or working drafts used in Cocoon (mainly XML,
XSL in both its transformation
and formatting capabilities). This
document is not intended to be an XML or XSL tutorial but just shows how these
technologies may be used inside the Cocoon framework to create web content.
Cocoon is a publishing system that allows you to separate web development in three different
layers: content, style and logic.
Cocoon does not aim to simplify the creation of web content: in fact, it is harder to
create XML/XSL content than it is to use HTML from the beginning. So, if you
are happy with the web technology you are using today, don't waste your time
and stick with what you already have. Otherwise, if your troubles are site
management, if your graphic people is always in the way, if you HTML authors
always mess up your page logic, if your managers see no results in hiring new
people to work on the site, go on and make your life easier.
This comment posted on the Cocoon mail list shows you what we mean:
I've got a site up and running that uses Cocoon. It rocks, the management
loves me (they now treat me like I walk on water), and a couple of summer
interns that I had helping me on the project are suddenly getting massively
head-hunted by companies like AT&T now that they can put XML and XSL on
their resumes. In a word: Cocoon simply rocks!
Every good user guide starts with an Hello World example and since we hope to
write good documentation (even if its hard like hell!), we start from there
too. Here is a well-formed XML file that uses a custom and simple DTD
Hello World!This is my first Cocoon page!
]]>
Even if this page mimics HTML (in a sense, HTML was born as a simple DTD
for homepages), it is helpful to note that there is no style information
and all the styling and graphic part is missing. Where do I put the title? How
do I format the paragraph? How do I separated the content from the other
elements? All these questions do not have answers because in this context they
don't need one: this file should be created and maintained by people that
don't need to be aware of how this content if further processed to become a
served web document.
On the other hand, we need to indicate how the presentation questions will
be answered. To do this, we must indicate a stylesheet that is able to
indicate how to interpret the elements found in this document. Thus, we
follow a W3C recommendation
and add the XML processing instruction to map a stylesheet to a document:
]]>
Now that our content layer is done, we need to create a stylesheet to
convert it to a format readable by our web clients. Since most available web
clients use HTML as their lingua franca, we'll write a stylesheet to
convert our XML in HTML (More precisely, we convert to XHTML which is the XML
form of HTML, but we don't need to be that precise at this point).
Every valid stylesheet must start with the root element stylesheet
and define its own namespace accordingly to the W3C directions. So the
skeleton of your stylesheet is:
]]>
Once the skeleton is done, you must include your template elements,
which are the basic unit of operation for the XSLT language. Each template is
matched against the occurrence of some elements in the original document and
the element is replaced with the children elements, if they belong to other
namespaces, or, if they belong to the XSLT namespace, they are further
processed in a recursive way.
Let's make an example: in our HelloWorld.xml document page is the
root element. This must be transformed in all those tags that identify a good
HTML page. Your template becomes:
]]>
were some elements belong to the standard namespace (which we associate to
HTML) and some others to the xsl: namespace. Here we find two of those
XSLT elements: value-of and apply-templates. While
the first searches the page element direct children for the
title element and
replace itself with the content of the retrieved element, the second indicates
to the processor that should continue the processing of the other templates
described in the stylesheets from that point.
Other possible templates are:
]]>
After the XSLT processing, the original document is transformed to