cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roger I Martin PhD" <hypernex...@hypernexinc.com>
Subject Re: [Newbie] Where do cocoon apps go?
Date Mon, 01 Apr 2002 16:31:31 GMT
I wrote the following in answer to some other newbie questions(not far from
there myself so I understand.)  The most important thing to know is that all
you need to put into your own webapp is the cocoon.jar(not cocoon.war so
this is not a typo below).  It could stand a rewrite but here it is right
now.

Understand that what you download from the apache Cocoon site is not a
software tool or IDE but a super-powered servlet with many illustrations of
how to use it, all in one huge example webapp (much beyond a typical "Hello
World!" example).  Your starting point is getting this one huge example web
app to deploy once or twice on tomcat by placing the cocoon.war file in the
webapps folder of tomcat.  The "as is" Cocoon installation either works or
it doesn't.  There is nothing you can do right or wrong. Especially for the
Current Version System CVS revision xml-cocoon2 from the jakarta site
http://jakarta.apache.org/site/cvsindex.html.  My current tomcat revision is
Apache Tomcat/4.0.2-b1.  After I get a stable Cocoon revision running I use
it for a few months and back it up religiously when I go for the next cvs.
The command line:

 build.bat -Dinclude.webapp.libs=yes -Dinstall.war=%TOMCAT_HOME%\webapps

often will not work depending on the exact TOMCAT_HOME environment variable
you are using.  For example c:/Program Files/tomcat... has a space and can
cause age old problems.  Just copy the cocoon.war to the
%TOMCAT_HOME%\webapps yourself.  Fire tomcat up.  It either works or you got
a bum revision or copy of Cocoon.war. If it doesn't work the second time you
fire it up, delete the generated ...tomcat/work/localhost/cocoon and the
...tomcat/webapps/cocoon folders so that it has to deploy from the
cocoon.war file again.  May have to do this repeatedly until you rebuild
cocoon.war without hsqldb active or start making your own webapp
project(deployed through your own *.war file).  The problem is with the
hsqldb database example has a bug while shutting down.  The sooner that you
rebuild cocoon from its sources with
<hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl"
logger="core.hsqldb-server"
pool-max="1" pool-min="1">
<parameter name="port" value="9002"/>
<parameter name="silent" value="true"/>
<parameter name="trace" value="false"/>
</hsqldb-server>

commented out in the src/webapp/cocoon.xconf file, the better.  The the rest
of the examples will start and stop just find.  Note that some of the
examples need extra jars placed in the cocoon/lib folder such as jndi.jar,
phpsrvlt.jar, etc. The important thing is to get past flopping around in
this one huge example webapp and start your own serious webapp as soon as
possible after you see Cocoon's one huge example webapp run once or twice.

Cocoon is not a typically installed software package and so to apply it to
your own web app at first is not intuitive.  The documentation has a long
way to go to catch up; remember it is a work in progress and tends to assume
that we know the small but totally baffling how-to-get-started stuff.  I
finally discovered a cool way to do it and perhaps with editing from the
Cocoon 2 Team we can put together a "How to apply Cocoon 2" for their web
site.  The most important thing is to set up your own webapp project build
area.  This takes some work but you can do it in stages.  To start, create a
project folder(sibling to the xml-cocoon2 folder), name it according to your
project, prepare your directory structure:

+->lib
        <all of the jars from your current working xml-cocoon2/lib folder>
        <plus the cocoon.jar from the xml-cocoon2/build/cocoon folder>
        //this is key because now your own build can be simplyfied
+->src //For your own custom additions to cocoon
    +->documentation //At first just a copy from the xml-cocoon2/src
            //You can eventually put your own or only things you need here
    +->java //Only your own custom code here.  No cocoon code because
                    cocoon.jar already has the compiled Cocoon classes.
    +->webapp    //At first a copy of the webapp from xml-cocoon2/src
                      //This you start modifying starting with the homepage
                      //and sitemap.xmap
appendcp.bat
                    //classpath appender
build.bat
build.xml    //A stripped down or commented out revision from the one
                   //in the xml-cocoon2 folder.  Have it generate a build
folder
                   // for construction of  your webapp jar and war files.
database.properties.
                    //set up your database initialization
                    //you will need to set somethings according to
                    //
http://xml.apache.org/cocoon/developing/datasources.html

Your custom webapp's build.xml can be pared down considerably from the huge
example cocoon webapp.  Until you make custom source code additions to your
...src/java folder you can disable the compile target.  Mostly you are
having it build the stuff it needs for your war file while applying build
variables such as
database-driver=org.gjt.mm.mysql.Driver.


The next stage is studying the ...src/webapp/sitemap.xmap file and modify
the welcome pattern matching to something you know and want.  There is no
need to pare the sitemap.xmap file down; eventually you will need more and
more of it and anything not in immediate use just lies dormant.  Finding the
first welcome page can require some sleuthing.  Currently it is nearly half
way down sitemap.xmap and looks like:
<map:pipeline>

<map:match pattern="">

<map:redirect-to uri="welcome"/>

</map:match>

<map:match pattern="welcome">

<map:generate src="docs/samples/samples.xml"/>

...

So ...src/webapp/docs/samples/samples.xml is the home page!  For those
familiar with Cocoon, this is no surprise but this was where I first started
to catch on!  What it meant to me is that I could start building my own
serious webapp now that I had the starting page and could study, modify
small parts of the whole to observe the changes that would occur after each
redeployment on tomcat.  I changed the welcome pattern matching to:
<map:pipeline>
<map:match pattern="">

<map:redirect-to uri="welcome"/>

</map:match>

<map:match pattern="welcome">

<map:generate src="home.xml"/>

where home.xml is a stripped down ...src/webapp/docs/samples/samples.xml to
pieces pertinent to my serious webapp.  It depends at this point on what you
want your web app to do.  For me I already had a number of mysql databases I
wanted to display and administrate so I studied
http://xml.apache.org/cocoon/developing/datasources.html and pooled them up.
Then got into my own xsp development applying the esql.xsl stylesheet.
Studying xsl is very important for creating your own webapp's consistent
look and feel.  The consistent look and feel is maintained by the xsl
stylesheets and the formatted objects namespace
xmlns:fo="http:www.w3.org/1999/XSL/Format".  Only a few of the xsl
stylesheets in the one huge example cocoon webapp are sacred and those are
mostly in ...src/java.  Others such as
...src/webapp/stylesheets/page/simple-page2html.xsl you are encouraged to
modify, rename or replace (updating the sitemap.xmap pattern matching
required) in your webapp.  The power of Cocoon is that when you change a
presentation attribute or style, after the next build and deployment, your
entire website has the new look and feel consistently throughout it's pages.
After some up front hard work, web site maintainance becomes dynamic and
fun; not a mundane chore. Here we would need to branch into chapters; one
for each stylesheet or webapp segments goal?

This is Saturday morning, January 19 and I just couldn't focus on my
projects so I tried to help someone else instead. Those just starting keep
asking [specific] questions and those with more experience than me, please
revise this description of "How to apply Cocoon 2" or use anything from this
message if you find anything includable in the documentation.

Regards,

Roger


----- Original Message -----
From: "Robert Leftwich" <r.t.l@bigpond.com>
To: <cocoon-users@xml.apache.org>
Sent: Sunday, March 31, 2002 10:04 PM
Subject: Re: [Newbie] Where do cocoon apps go?


> At 12:32 PM 1/04/2002, Eric de Groot wrote:
> >I read all the articles and tutorials with the cocoon documentation, but
I cannot find any information telling me how to actually let an app use
cocoon.  Does the app need to be in a sub-directory of /webapps/cocoon/ ,
without it s own web.xml, etc..?  How can I have my application
/webapps/myapp/ use cocoon?  Do I need to route everything through Cocoon2
in my web.xml?  How will cocoon know where my sitemap is?  Is there any
documentation that details how to create a cocoon application from scratch?
The tutorial says we need a sitemap, this code, this sql, etc.., but doesn t
explain where any of it goes.  Any help to get me started would be
appreciated.  Thanks.
> >
> >-Eric de Groot
>
> You might take a look at Chello (http://chello.sourceforge.net/), which is
a minimal 'hello world' style web app with a setup including the following
features:
>
> ·       Project compilation using ANT
> ·       Unit Testing with JUnit
> ·       Functional Testing with HTTPUnit
> ·       Continuous integration process with CruiseControl
> ·       Documentation generation for
> ·       your Java Code using Javadoc
> ·       your XSL Stylesheets using XSLDoc
> ·       Your project documentation using Cocoon
> ·       Automatic build of Web archive file (WAR) for easy distribution
>
> Note that the existing setup is for an older release of Cocoon (v2 rc2). I
am currently running it with the latest v2.02 release of cocoon and was
going to submit the change list to the chello site for feedback (as I am a
newbie as well) prior to telling the rest of the world about it, but I guess
I've just done that :-)
>
> HTH
>
> Robert
>
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <cocoon-users-unsubscribe@xml.apache.org>
> For additional commands, e-mail: <cocoon-users-help@xml.apache.org>
>
>



---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <cocoon-users-unsubscribe@xml.apache.org>
For additional commands, e-mail: <cocoon-users-help@xml.apache.org>


Mime
View raw message