cocoon-docs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From da...@cocoon.zones.apache.org
Subject [DAISY] Updated: Modularize Cocoon apps (Using blocks)
Date Mon, 28 May 2007 13:10:38 GMT
A document has been updated:

http://cocoon.zones.apache.org/daisy/documentation/1291.html

Document ID: 1291
Branch: main
Language: default
Name: Modularize Cocoon apps (Using blocks) (unchanged)
Document Type: Cocoon Document (unchanged)
Updated on: 5/28/07 1:10:35 PM
Updated by: Reinhard Pötz

A new version has been created, state: draft

Parts
=====

Content
-------
This part has been updated.
Mime type: text/xml (unchanged)
File name:  (unchanged)
Size: 3755 bytes (previous version: 787 bytes)
Content diff:
(2 equal lines skipped)
    
    <p>In the basic tutorial
    <a href="http://cocoon.zones.apache.org/daisy/cdocs/g2/g1/g2/1159.html">"Your
--- first Cocoon application using Maven 2"</a> you have created your first block.
--- Cocoon 2.2 introduced the concept of blocks because it should help you to split
--- your application into smaller parts. This increases the maintainability and
+++ first Cocoon application using Maven 2"</a> you created your first block. Cocoon
+++ 2.2 introduced the concept of blocks because it should help you to split your
+++ application into smaller parts. This increases the maintainability and
    reusability by orders of magnitude.</p>
    
    <p>In this tutorial you will</p>
(7 equal lines skipped)
    
    <h1>Create a second block</h1>
    
--- <p class="fixme">TBD</p>
+++ <p>For this purpose move into the <tt>getting-started-app</tt> directory
and use
+++ the Maven 2 archetype again:</p>
    
+++ <pre>mvn archetype:create
+++   -DarchetypeGroupId=org.apache.cocoon
+++   -DarchetypeArtifactId=cocoon-22-archetype-block
+++   -DarchetypeVersion=1.0.0-RC1
+++   -DgroupId=com.mycompany
+++   -DartifactId=<strong>myBlock2</strong> </pre>
+++ 
+++ <p>The result is a second block and you should find following directory
+++ structure:</p>
+++ 
+++ <pre>getting-started-app
+++ <tt> +-</tt><tt>myBlock1
+++  |  +-pom.xml
+++  |  +-src
+++  |     +-[...]</tt>
+++ <tt> +-</tt><tt>myBlock2
+++     +-pom.xml
+++     +-src
+++        +-[...]
+++ 
+++ </tt></pre>
+++ 
+++ <p>Then run</p>
+++ 
+++ <pre>mvn install eclipse:eclipse</pre>
+++ 
+++ <p>in order to make it ready for be imported in Eclipse and to put it into the
+++ local Maven repository. Then you can import the project into Eclipse.</p>
+++ 
    <h1>Connect two blocks</h1>
    
--- <p class="fixme">TBD</p>
+++ <p>Let's assume that you want to use a pipeline defined in <tt>block2</tt>
from
+++ within <tt>block1</tt>. You have to establish the connection between the two
+++ blocks. Edit
+++ <tt>getting-started-app/<strong>myBlock1</strong>/src/main/resources/META-INF/cocoon/spring/servlet-service.xml:</tt>
+++ </p>
    
+++ <pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+++ &lt;beans xmlns="http://www.springframework.org/schema/beans"
+++   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+++   xmlns:servlet="http://cocoon.apache.org/schema/servlet"
+++   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+++   http://cocoon.apache.org/schema/servlet http://cocoon.apache.org/schema/servlet/cocoon-servlet-1.0.xsd"&gt;
+++ 
+++   &lt;bean id="com.mycompany.myBlock1.block" class="org.apache.cocoon.sitemap.SitemapServlet"&gt;
+++     &lt;servlet:context mount-path="/myBlock1" context-path="blockcontext:/myBlock1/"&gt;
+++ <strong>      &lt;servlet:connections&gt;
+++         &lt;entry key="block2" value-ref="com.mycompany.myBlock2.block"/&gt;
+++       &lt;/servlet:connections&gt;</strong>
+++     &lt;/servlet:context&gt;
+++   &lt;/bean&gt;
+++ 
+++ &lt;/beans&gt;
+++ </pre>
+++ 
+++ <p>Additionally add the new block as dependency to the block's Maven project
+++ descriptor (<tt>getting-started-app/<strong>myBlock1</strong>/pom.xml</tt>):</p>
+++ 
+++ <pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+++ &lt;project&gt;
+++   [...]
+++   &lt;dependencies&gt;
+++     [...]
+++ <strong>    &lt;dependency&gt;
+++       &lt;groupId&gt;com.mycompany&lt;/groupId&gt;
+++       &lt;artifactId&gt;myBlock2&lt;/artifactId&gt;
+++       &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
+++     &lt;/dependency&gt;</strong>
+++   &lt;/dependencies&gt;
+++   [...]
+++ &lt;/project&gt;
+++ </pre>
+++ 
+++ <p>If you use the RCL goal of the Cocoon Maven plugin, you will also want to add
+++ the location of the new block to the configuration file of block1. This has the
+++ advantage that you can work on block2 and the changes take effect immediatly.
+++ Open getting-started-app/myBlock1/rcl.properties and add</p>
+++ 
+++ <pre>com.mycompany.myBlock1.block%classes-dir=./target/classes
+++ 
+++ <strong>com.mycompany.myBlock2.block%classes-dir=../myBlock2/target/classes
+++ %exclude-lib=com.mycompany:myBlock2</strong>
+++ </pre>
+++ 
    <h1>Use a pipeline fragment</h1>
    
    <p class="fixme">TBD</p>
(3 equal lines skipped)


Mime
View raw message