Shapeshifter

Contact

PDF-ikonen

View page as PDF

How to install the Shapeshifter system

Follow these steps:

  1. First, install Cocoon (version 2.1.8) and eXist. You need at least version 20051203 of eXist.
  2. Optionally, also install Tomcat or some other server software.
  3. Read the installation instructions for eXist, and install eXist (if you do not already have it). Note that the page has instructions for Cocoon version 2.1.7 and 2.1.8.
  4. Then, install all the folders in the shapecms.zip file on top of that installation. Open the eXist web DAV interface, or the eXist Admin client, and copy the folders in the DB folder, into the (almost) empty database. Look at the database structure page, to see where it all goes. Some collections are created by the system, when they are needed.

(Installation instructions verified Jan 3 2006)

Configuring the sitemap

All the shapeCMS pipelines are in the hemsidesitemap.xmap. You can take the pipelines you need from there, or you can mount it from your sitemap.xmap:

(for instance, replacing)

First, replace the <map:match pattern=""> section with:

<!-- welcome page -->
<map:match pattern="">
      <map:mount check-reload="yes" src="hemsidesitemap.xmap" uri-prefix="{uri-prefix}"/>
</map:match>

And

    <!--+
        | Mount everything else by calling the sitemap.xmap file located
        | in the requested folder.
        +-->
<map:match pattern="*/**">
      <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
</map:match>

With:

    <!--+
        | Mount shapeCMS
        +-->
 
<map:match pattern="**">
     <map:mount check-reload="yes" src="hemsidesitemap.xmap"uri-prefix="{uri-prefix}"/>
</map:match>   <map:match pattern="">
     <map:mount check-reload="yes" src="hemsidesitemap.xmap"uri-prefix="{uri-prefix}"/>
   </map:match>

Remove this mount statement:

    <!--+
        | Mount everything else by calling the sitemap.xmap file located
        | in the requested folder.
        +-->
<map:match pattern="*/**">
  <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
</map:match>

If you want to still be able to reach the Cocoon samples, then also add the following, before mounting shapeCMS:

    <map:match pattern="samples/**">
      <map:mount check-reload="yes" src="samples/" uri-prefix="samples"/>
    </map:match>
 

You also might want to add some eXist configuration items, from the eXist sitemap:

Generators

Xquerygenerator, status generator and cluster topology generator

<!--#######################################################-->
<!-- Xquery generator for eXist                            -->
<!--#######################################################-->
                   
                           <map:generator label="content" name="xquery" src="org.exist.cocoon.XQueryGenerator"/>
<!--#######################################################-->
    <!-- Status generator for eXist                            -->
<!--#######################################################-->
 
    <map:generator label="content,data" name="exist-status" src="org.exist.cocoon.StatusGenerator"/>
 
<!--#######################################################-->
<!-- Cluster topology generator for eXist                            -->
<!--#######################################################-->
 
      <map:generator label="content,data" name="exist-cluster" src="org.exist.cluster.cocoon.ClusterGenerator"/>
 
      <map:generator label="content,data" name="cluster-info" src="org.exist.cluster.cocoon.ClusterInfoGenerator"/>
 
</map:generators>

Transformers

XMLdbTransformer

<!--#######################################################-->
    <!-- eXist's XMLDBTransformer                              -->
<!--#######################################################-->
 
    <map:transformer name="xmldb" src="org.exist.cocoon.XMLDBTransformer"/>
</map:transformers>
 

Actions

XMLDBSessionLoginAction

   <!--#######################################################-->
   <!-- Register eXist's XMLDBSessionLoginAction              -->
   <!--#######################################################-->
 
   <map:action logger="sitemap.action.xmldb.login" name="xmldb-login" src="org.exist.cocoon.XMLDBSessionLoginAction"/>
 
   <map:action logger="sitemap.action.xmldb.shutdown" name="xmldb-shutdown"
 
                         src="org.exist.cocoon.ShutdownAction"/>
 
</map:actions>

eXist Web Dav

To get eXist webDav running, go to WEB-INF/web.xml

(This follows the instructions from http://wiki.exist-db.org/space/MinimalWebapp and http://wiki.exist-db.org/space/CocoonInstall. You have to install eXist first, using the instructions there)

Delete

<!-- Definition and configuration of Slide's WebDAV servlet. -->
<servlet>
</servlet>

Also delete

<!-- Mapping of Slide's WebDAV servlet. -->
 <servlet-mapping>
  <servlet-name>webdav</servlet-name>
  <url-pattern>/webdav/*</url-pattern>
</servlet-mapping>
 

XSP (file uploads into shapeCMS)

To enable eXist for XSP, and thereby get file uploads, you have to make sure that WEB-INF/cocoon.xconf contains the exist logicsheet:

After:

      <!--+
          | Properties for the java language
          +-->
<target-language name="java">
<!-- Defines the XSP Core logicsheet for the Java language -->
 <parameter name="core-logicsheet"
            value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>

You should have:

<!--..... Start configuration from 'exist-logicsheet' -->
 
  <builtin-logicsheet>
    <parameter name="prefix" value="xmldb"/>
    <parameter name="uri" value="http://exist-db.org/xmldb/1.0"/>
    <parameter name="href" value="resource://org/exist/xmldb.xsl"/>
  </builtin-logicsheet>
<!--..... End configuration from 'exist-logicsheet' -->