kpiroumian 02/04/30 08:32:21
Modified: src/webapp sitemap.xmap
Added: src/webapp/myapp myapp.spp readme.html sitemap.xmap
src/webapp/myapp/xml page.xml
src/webapp/myapp/xsp page.xsp
src/webapp/myapp/xsl style.xsl
Log:
Added a "Quick start" application template to be used
for "minimal Cocoon" build target.
Revision Changes Path
1.49 +6 -0 xml-cocoon2/src/webapp/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/sitemap.xmap,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- sitemap.xmap 25 Apr 2002 16:26:29 -0000 1.48
+++ sitemap.xmap 30 Apr 2002 15:32:21 -0000 1.49
@@ -482,6 +482,12 @@
-->
<map:pipelines>
+ <!-- MyApp - minimal Cocoon Application Mount -->
+ <map:pipeline>
+ <map:match pattern="myapp/**">
+ <map:mount uri-prefix="myapp" src="myapp/" check-reload="yes"/>
+ </map:match>
+ </map:pipeline>
<!-- sub-sitemap example pipeline -->
<map:pipeline>
1.1 xml-cocoon2/src/webapp/myapp/myapp.spp
Index: myapp.spp
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Project>
<Folder FolderName="XML Files" ExtStr="xml;cml;math;mtx;rdf;smil;svg;wml">
<File FilePath=".\xml\page.xml" HomeFolder="Yes"/>
</Folder>
<Folder FolderName="XSP" ExtStr="xsp">
<File FilePath=".\xsp\page.xsp" HomeFolder="Yes"/>
</Folder>
<Folder FolderName="XSL Files" ExtStr="xsl;xslt">
<File FilePath=".\xsl\style.xsl" HomeFolder="Yes"/>
</Folder>
<Folder FolderName="HTML Files" ExtStr="html;htm;xhtml;asp">
<File FilePath=".\readme.html" HomeFolder="Yes"/>
<File FilePath=".\readme.txt" HomeFolder="Yes"/>
</Folder>
<Folder FolderName="DTD/Schemas" ExtStr="dtd;dcd;xdr;biz;xsd"/>
<Folder FolderName="Entities" ExtStr="ent"/>
<File FilePath=".\sitemap.xmap" HomeFolder="Yes"/>
</Project>
1.1 xml-cocoon2/src/webapp/myapp/readme.html
Index: readme.html
===================================================================
<!-- CVS: $Id: readme.html,v 1.1 2002/04/30 15:32:21 kpiroumian Exp $ -->
<html>
<head>
<title>Minimal Cocoon Web Application - README</title>
</head>
<body>
<pre>
==================================================================
Minimal Cocoon Web Application Template
by Konstantin Piroumian ([EMAIL PROTECTED])
Date: $Date: 2002/04/30 15:32:21 $
==================================================================
This is the place where you can start hacking with Cocoon.
What you have to know before using this template
------------------------------------------------
1. You should know basics of XML: how to create content
2. You should be familiar more or less with XSLT
3. You should be familiar with Web Applications
and servlet environment
4. It's not neccessary, but it'd be fine if you were familiar
with Java language, so you could create dynamic pages
For newbies
------------
1. Create XML files, drop them into 'xml' directory
2. Edit the stylesheet named style.xsl to render your xml,
just drop it into 'xsl' directory
3. Access this URL: http://localhost:<port>/cocoon/myapp/<page>.xml
where
'page' is actual name of your xml file, say 'index.xml'
'port' your app server port where it handles servlet requests,
8080 for Tomcat
4. Enjoy!
Note: Templates for XML, XSLT files are provided for your convenience.
A little more advanced users
----------------------------
1. Create XSP files, drop them into 'xml' directory
2. Create/reuse stylesheet(s) to render your XSP output
3. Access this URL: http://localhost:<port>/cocoon/myapp/<page>.xsp
4. Fix your XSP, try again
5. Enjoy!
Very advanced users
--------------------
1. Read User docs (http://xml.apache.org/cocoon/userdocs/)
2. Edit your sitemap.xmap as needed for your application:
- add/use components (see root sitemap to see what is availble)
- add/modify pipelines (change matching patterns, add actions)
- use more transformations in pipeline
- use aggregation
- create sitemap resources
- create sitemap views
Not all the above is necessary for every application.
For advanced developers
------------------------
You don't need this application, you can create your own, if no,
then look a few lines upper ;)
1. Read Developer docs (http://xml.apache.org/cocoon/developing/extending.html)
2. Implement your own components:
- actions
- generators
- transformers
- serializers
- sources
- [add your own]
Note: You can find a lot of samples to learn from in Cocoon sources.
3. Declare your components in sitemap
4. Debug your sitemap
5. Debug your components
6. Enjoy when it works!
For all kind of users
---------------------
- Join Cocoon Users mail list and ask questions if you don't find the answer in FAQ
or docs
- Join Cocoon Dev mail list to participate in Cocoon development
That's all folks!
Cocoon Team wishes you Happy Hacking with Cocoon 2.1!
</pre>
</body>
</html>
1.1 xml-cocoon2/src/webapp/myapp/sitemap.xmap
Index: sitemap.xmap
===================================================================
<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- CVS: $Id: sitemap.xmap,v 1.1 2002/04/30 15:32:21 kpiroumian Exp $ -->
<!--
Minimal sitemap to start making XML/XSP/XSLT transformations.
Author: Konstantin Piroumian "[EMAIL PROTECTED]"
-->
<map:components>
<map:generators default="file"/>
<map:transformers default="xslt"/>
<map:readers default="resource"/>
<map:serializers default="html"/>
<map:matchers default="wildcard"/>
<map:selectors default="browser"/>
</map:components>
<!-- =========================== Pipelines ================================= -->
<map:pipelines>
<map:pipeline>
<!-- Default URL matcher. Matches '/' URLs-->
<map:match pattern="">
<map:redirect-to uri="readme.html" />
</map:match>
<!-- This matches requests like 'page.xml' to display static output
-->
<map:match pattern="*.xml">
<!-- {1} contains the value that substituted '*' in the
pattern-->
<map:generate src="xml/{1}.xml"/>
<!-- You can change 'src' to 'xsl/{1}.xsl' to use custom
stylesheets
for every page, e.g.: mypage.xml -> mypage.xsl -->
<map:transform src="xsl/style.xsl"/>
<!-- Just output the result as HTML (default)
Add 'type' attribute with 'xml' value to get XML output
-->
<map:serialize/>
</map:match>
<!-- This matches requests like 'page.xsp' to display dynamic output
-->
<map:match pattern="*.xsp">
<!-- This generator uses 'serverpages' generator.
See the root sitemap for other types of available components
-->
<map:generate type="serverpages" src="xsp/{1}.xsp"/>
<map:transform src="xsl/style.xsl"/>
<map:serialize/>
</map:match>
<!-- Display static HTML files, like readme.html -->
<map:match pattern="*.html">
<map:read src="{1}.html" mime-type="text/html" />
</map:match>
<!-- Add your pipelines here -->
</map:pipeline>
</map:pipelines>
</map:sitemap>
<!-- end of file -->
1.1 xml-cocoon2/src/webapp/myapp/xml/page.xml
Index: page.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- CVS: $Id: page.xml,v 1.1 2002/04/30 15:32:21 kpiroumian Exp $ -->
<page>
<title>My App page</title>
<content>
<para>Just a static contents</para>
</content>
</page>
1.1 xml-cocoon2/src/webapp/myapp/xsp/page.xsp
Index: page.xsp
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- CVS: $Id: page.xsp,v 1.1 2002/04/30 15:32:21 kpiroumian Exp $ -->
<!--
XSP can be assotiated with the logicsheet using processing
instruction xml-logicsheet or the xsp:logicsheet element.
Do not use both methods!
<?xml-logicsheet href="logicsheets/hello.xsl"?>
-->
<xsp:page language="java" xmlns:xsp="http://apache.org/xsp">
<!-- Place your imports here. Note, that you shoud have imported
packages somewhere in classpath. -->
<xsp:structure>
<xsp:include>java.util.Date</xsp:include>
</xsp:structure>
<!-- Place your class level logic here -->
<xsp:logic>
private Date getDate() {
return new Date();
}
</xsp:logic>
<!-- Your content root element -->
<page>
<!-- Place logicsheet declarations here. Href is relative to app context -->
<!--
<xsp:logicsheet location="logicsheets/hello.xsl"/>
-->
<title>My App XSP Page</title>
<content>
<para>
Some dynamic content <xsp:expr>getDate()</xsp:expr>
</para>
</content>
</page>
</xsp:page>
1.1 xml-cocoon2/src/webapp/myapp/xsl/style.xsl
Index: style.xsl
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- CVS: $Id: style.xsl,v 1.1 2002/04/30 15:32:21 kpiroumian Exp $ -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="page">
<html>
<head>
<title><xsl:value-of select="title" /></title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="title">
<h1><xsl:value-of select="." /></h1>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]