You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by do...@cocoon.apache.org on 2005/02/03 09:26:08 UTC

[Cocoon Wiki] New: CocoonAppAsJSR168Portlet

   Date: 2005-02-03T00:26:07
   Editor: BastianBowe
   Wiki: Cocoon Wiki
   Page: CocoonAppAsJSR168Portlet
   URL: http://wiki.apache.org/cocoon/CocoonAppAsJSR168Portlet

   no comment

New Page:

=== Content ===
This document describes how to run a existing cocoon application as a
JSR168 portlet. The following example illustrates how to deploy the
cocoon distribution as a JSR168 portlet in Pluto. Unfortunately the
only thing I managed so far is to display one page of the cocoon
app. Navigation inside the app is not possible (see [#linkproblem below]). It should
work with any JSR 168 portlet Container.

=== Tested on ===

 * jdk 1.4.2_04-b05

 * cocoon 2.1.6

 * pluto-src-1.0.1-rc2

 * Tomcat 4.1.31

=== Deployment ===

 1. copied blocks.properties to local.blocks.properties and disabled the scratchpad and cron (this one caused a problem on my configuration, but you might leave that step out) blocks

 1. created a portlet.xml in `<COCOON_HOME>/src/webapp/WEB-INF` by using `<COCOON_HOME>/src/blocks/portal/WEB-INF/portlet.xml` as a base and removed the first portlet node so that you only keep the second `portlet` node (`portlet-name` = `CocoonPortlet`). You're might be interested in changing the init-param ´servlet-path´ e.g. to the value "´/`" to see the output you normally get when opening http://localhost:8080/cocoon/

 1. built cocoon war from source

 1. deleted content of `<TOMCAT_HOME>/common/endorsed`

 1. copied `<COCOON_HOME>/lib/endorsed/x*.jar` to `<TOMCAT_HOME>/common/endorsed`

 1. built pluto-src-1.0.1-rc2 (`maven fullDeployment`)

 1. ran `maven deploy -Ddeploy=<COCOON_HOME>/build/cocoon-2.1.6/cocoon.war`

 1. deleted `<TOMCAT_HOME>/webapps/cocoon/WEB-INF/lib/pluto-1.0.1-rc1.jar` (makes trouble)

 1. you can savely delete portlet-api-1.0.jar (optional)

 1. modified `<PLUTO_HOME>/WEB-INF/data/portletcontexts.txt` {{{
/testsuite
/cocoon
}}}

 1. modified `<PLUTO_HOME>/WEB-INF/data/portletentityregistry.xml` to include the following after the `<portlet-entity-registry>` node:{{{
    <application id="9">
        <definition-id>cocoon</definition-id>
        <portlet id="1">
            <definition-id>cocoon.CocoonPortlet</definition-id>
        </portlet>
    </application>
}}}
 1. modified `<PLUTO_HOME>/WEB-INF/data/pageregistry.xml` to include the following after the `<portal>` node: {{{
  <fragment name="cocoon" type="page">
    <navigation>
      <title>Cocoon </title>
      <description>Cocoon distribution...</description>
    </navigation>

    <fragment name="row6" type="row">
      <fragment name="col6" type="column">
	<fragment name="p7" type="portlet">
	  <property name="portlet" value="9.1"/>
	</fragment>
      </fragment>
    </fragment>
  </fragment>
}}}

Your cocoon app should now be available as a portlet under
http://localhost:8080/pluto/portal/cocoon

[[Anchor(linkproblem)]]Anyway, clicking on a link in that portlet (assuming you've set
`servlet-path`'s value to "`/`") doesn't work. The link to "samples"
points to http://localhost:8080/pluto/portal/samples. Pointing
manually to http://localhost:8080/pluto/portal/cocoon/samples is the
same as http://localhost:8080/pluto/portal/cocoon.