RE: The "Using Blocks" tutorial
"Robby Pelssers" <[email protected]> Sun, 24 Oct 2010 11:21:53 +0200
| Newsgroups | gmane.text.xml.cocoon.documentation |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
------_=_NextPart_001_01CB735C.E5C3C81E
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Ok... this time some sample pom's i made up based on my actual project.
Assuming you have a workspace like:
{workspace}
- mywebapp_parent_pom
- block-1
- block-2
parent pom of your application:
---------------------------------
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<project=20
xmlns=3D"http://maven.apache.org/POM/4.0.0"=20
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance"=20
xsi:schemaLocation=3D"http://maven.apache.org/POM/4.0.0 =
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
=20
<groupId>com.mycompany</groupId>
<artifactId>mywebapp_parent_pom</artifactId>
<version>1.0-SNAPSHOT</version>
=20
<name>MyWebapp parent pom</name>
=20
<modules>
<module>../block-1</module>
<module>../block-2</module> =20
</modules>
=20
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-core</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-servlet-service-components</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-template-impl</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-flowscript-impl</artifactId>
<version>1.0.0</version>
</dependency> =20
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-forms-impl</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-html-impl</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-batik-impl</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>saxon</artifactId>
<version>8.7</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
</dependencyManagement>
=20
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
=20
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation> =20
<build>
<finalName>MyWebapp</finalName>
</build>
</profile>
</profiles>
=20
</project>
pom of block-1:
--------------------
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<project xmlns=3D"http://maven.apache.org/POM/4.0.0" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xsi:schemaLocation=3D"http://maven.apache.org/POM/4.0.0 =
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>com.nxp.spider2</groupId>
<artifactId>mywebapp_parent_pom</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../mywebapp_parent_pom/pom.xml</relativePath>
</parent>
=20
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<name>block-1</name>
<groupId>com.mycompany</groupId>
<artifactId>block-1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-servlet-service-components</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-template-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-flowscript-impl</artifactId>
</dependency> =20
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-forms-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-batik-impl</artifactId>
</dependency> =20
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency> =20
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>saxon</artifactId>
<scope>runtime</scope>
</dependency>
=20
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency> =20
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-maven-plugin</artifactId>
<version>1.0.0-M2</version>
<executions>
<execution>
<id>prepare</id>
<phase>compile</phase>
<goals>
<goal>prepare</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<connectors>
<connector =
implementation=3D"org.mortbay.jetty.nio.SelectChannelConnector">
<port>8888</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
=
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourc=
eDirectory>
<contextPath>/</contextPath>
<systemProperties>
<systemProperty>
<name>org.apache.cocoon.mode</name>
<value>dev</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifestEntries>
<Cocoon-Block-Name>${pom.artifactId}</Cocoon-Block-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
</project>
pom of block-2:
----------------
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<project xmlns=3D"http://maven.apache.org/POM/4.0.0" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xsi:schemaLocation=3D"http://maven.apache.org/POM/4.0.0 =
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>com.nxp.spider2</groupId>
<artifactId>mywebapp_parent_pom</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../mywebapp_parent_pom/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<name>block-2</name>
<groupId>com.mycompany</groupId>
<artifactId>block-2</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>block-2</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency> =20
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-servlet-service-components</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-template-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-flowscript-impl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>saxon</artifactId>
<scope>runtime</scope>
</dependency> =20
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency> =20
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-maven-plugin</artifactId>
<version>1.0.0-M2</version>
<executions>
<execution>
<id>prepare</id>
<phase>compile</phase>
<goals>
<goal>prepare</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<connectors>
<connector =
implementation=3D"org.mortbay.jetty.nio.SelectChannelConnector">
<port>8888</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
=
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourc=
eDirectory>
<contextPath>/</contextPath>
<systemProperties>
<systemProperty>
<name>org.apache.cocoon.mode</name>
<value>dev</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifestEntries>
<Cocoon-Block-Name>${pom.artifactId}</Cocoon-Block-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
</project>
As you can see i declared 2 modules in the parent pom. Actually you =
would also need a webapp project as well in order to build the complete =
webapp. But that's for later. Let us first get you started with those 2 =
blocks.
I also declared in block-2 a dependency on block-1. But if we were to =
install both blocks and run mvn jetty:run from inside the folder =
block-2, block-2 would start properly on http://localhost:8888/block-2 =
but http://localhost:8888/block-1 would not work yet. You also need to =
change our servlet-service spring context.
E.g.:
<bean name=3D"com.nxp.spider2.producttransformer.service" =
class=3D"org.apache.cocoon.sitemap.SitemapServlet">
<servlet:context mount-path=3D"/block-2" =
context-path=3D"blockcontext:/block-2/">
<servlet:connections>
<entry key=3D"block-1" =
value-ref=3D"com.mycompany.block-1.service"/> =20
</servlet:connections> =20
</servlet:context>
</bean>
So after you made those changes you should be able to run the second =
block and you should be able to call services from block-1 as well.
Hope this clarifies enough.
Kind regards,
Robby Pelssers
------_=_NextPart_001_01CB735C.E5C3C81E
Content-Type: application/ms-tnef;
name="winmail.dat"
Content-Transfer-Encoding: base64
eJ8+IjcJAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy
b3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEEgAEAIAAAAFJFOiBUaGUgIlVzaW5nIEJs
b2NrcyIgdHV0b3JpYWwAjgoBBYADAA4AAADaBwoAGAALABUANQAAAFgBASCAAwAOAAAA2gcKABgA
CwAVADYAAABZAQEJgAEAIQAAADJCMEEwNjIxMDM0NDQ4NDM5RTRDNDk4QTU4MzcyRTc2AOIGAQOQ
BgBEFQAAOQAAAAMAJgAAAAAAAwA2AAAAAABAADkAHsjD5VxzywEeAD0AAQAAAAUAAABSRTogAAAA
AAIBRwABAAAAMAAAAGM9dXM7YT0gO3A9RUNzb2Z0O2w9RVVTRVgwMS0xMDEwMjQwOTIxNTNaLTM5
OTc0AB4ASQABAAAAIAAAAFJlOiBUaGUgIlVzaW5nIEJsb2NrcyIgdHV0b3JpYWwAQABOAACZAPIb
cssBHgBaAAEAAAATAAAAc3Bhc21vaWRAZ21haWwuY29tAAACAVsAAQAAAEMAAAAAAAAAgSsfpL6j
EBmdbgDdAQ9UAgAAAABzcGFzbW9pZEBnbWFpbC5jb20AU01UUABzcGFzbW9pZEBnbWFpbC5jb20A
AAIBXAABAAAAGAAAAFNNVFA6U1BBU01PSURAR01BSUwuQ09NAB4AXQABAAAADwAAAFRlcmVuY2Ug
S2Vhcm5zAAACAV4AAQAAAEMAAAAAAAAAgSsfpL6jEBmdbgDdAQ9UAgAAAABUZXJlbmNlIEtlYXJu
cwBTTVRQAGluZm9AdGVyZW5jZWtlYXJucy5jb20AAAIBXwABAAAAHAAAAFNNVFA6SU5GT0BURVJF
TkNFS0VBUk5TLkNPTQAeAGYAAQAAAAUAAABTTVRQAAAAAB4AZwABAAAAEwAAAHNwYXNtb2lkQGdt
YWlsLmNvbQAAHgBoAAEAAAAFAAAAU01UUAAAAAAeAGkAAQAAABcAAABpbmZvQHRlcmVuY2VrZWFy
bnMuY29tAAAeAHAAAQAAABwAAABUaGUgIlVzaW5nIEJsb2NrcyIgdHV0b3JpYWwAAgFxAAEAAAAb
AAAAActyHDNt/bZm3CLcRGuZVmWbCdNgJABP8e1uAB4AdAABAAAAFwAAAGRvY3NAY29jb29uLmFw
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
F2Ueu/ZIiGETYWkREBIyCJCUcaYglEC4IGdoHrtLlvCJJUFlZymAZHMs/1TQUm9iYhTwUMZAOXAL
oDH/VH1dIAAAHgA1EAEAAAA/AAAAPDdDNjU1QzA0QjZGNTk2NDNBMUVGNjYwNTZDMEUwOTVFQTk5
QzU5QGV1c2V4MDEuc3dlZGVuLmVjc29mdD4AAB4AORABAAAAfgAAADxBQU5Ma1RpPTQzS0hfaTdj
ZVcyc3NTOWM3NXlYNVU1T252czlIQmdoWkM1ZHJAbWFpbC5nbWFpbC5jb20+IDxBQU5Ma1Rpbnox
WU4zekEtaFdQYXpwPVFWVVZtejVETVBQSDYtaUJCaUxUVnVAbWFpbC5nbWFpbC5jb20+AAAAHgBH
EAEAAAAPAAAAbWVzc2FnZS9yZmM4MjIAAAsA8hABAAAAHwDzEAEAAABUAAAAUgBFACUAMwBBACAA
VABoAGUAIAAlADIAMgBVAHMAaQBuAGcAIABCAGwAbwBjAGsAcwAlADIAMgAgAHQAdQB0AG8AcgBp
AGEAbAAuAEUATQBMAAAACwD2EAAAAABAAAcwbyQk+1tzywFAAAgwKBbS5VxzywEDAN4/r28AAAMA
8T8TBAAAHgD4PwEAAAAPAAAAUm9iYnkgUGVsc3NlcnMAAAIB+T8BAAAATwAAAAAAAADcp0DIwEIQ
GrS5CAArL+GCAQAAAAAAAAAvTz1FQ1NPRlQvT1U9QUcgRVUvQ049UkVDSVBJRU5UUy9DTj1ST0JC
WS5QRUxTU0VSUwAAHgD6PwEAAAAVAAAAU3lzdGVtIEFkbWluaXN0cmF0b3IAAAAAAgH7PwEAAAAe
AAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAAAAAAAC4AAAADAP0/5AQAAAMAGUAAAAAAAwAaQAAA
AAADAB1AAAAAAAMAHkAAAAAAHgAwQAEAAAAPAAAAUk9CQlkuUEVMU1NFUlMAAB4AMUABAAAADwAA
AFJPQkJZLlBFTFNTRVJTAAAeADJAAQAAABMAAABzcGFzbW9pZEBnbWFpbC5jb20AAB4AM0ABAAAA
FwAAAGluZm9AdGVyZW5jZWtlYXJucy5jb20AAB4AOEABAAAADwAAAFJPQkJZLlBFTFNTRVJTAAAe
ADlAAQAAAAIAAAAuAAAAAwB2QP////8LACkAAAAAAAsAIwAAAAAAAwAGENf0TLUDAAcQfB8AAAMA
EBAAAAAAAwAREAAAAAAeAAgQAQAAAGUAAABPS1RISVNUSU1FU09NRVNBTVBMRVBPTVNJTUFERVVQ
QkFTRURPTk1ZQUNUVUFMUFJPSkVDVEFTU1VNSU5HWU9VSEFWRUFXT1JLU1BBQ0VMSUtFOldPUktT
UEFDRS1NWVdFQkFQAAAAAAIBfwABAAAAPwAAADw3QzY1NUMwNEI2RjU5NjQzQTFFRjY2MDU2QzBF
MDk1RUE5OUM1OUBldXNleDAxLnN3ZWRlbi5lY3NvZnQ+AAAq8g==
------_=_NextPart_001_01CB735C.E5C3C81E--