Tamino WebDAV Server
====================

TWS is a slide-based WebDAV server that stores content in the Tamino XML database.

CAUTION:
  This is Tamino WebDAV Server for Slide HEAD, it doesn't work until SAG released
  TaminoAPI4J with JDom Beta 10 support.
  
  If you want to build a version for slide 2, check out with
        cvs -d juergen@cvs.apache.org:/home/cvs -q co -P -r TAMINOWEBDAVSERVER_4_2_1 jakarta-slide/proposals/tamino

Build instructions
------------------

o Install jdk 1.4.0 or later:
  o make sure that JAVA_HOME points to the install directory
  o slide supports jdk 1.3, but tws doesn't

o Install ant 1.6.0 or later:
  o slide supports ant 1.5.x, but tws doesn't
  o make sure to copy junit.jar into ant's lib directory
  o make sure there's no CLASSPATH variable defined in the shell you're using;
    ant uses CLASSPATH which might result in obsure problems (like log4j.ConsoleAppender class
    not found)

o You need a properly built Slide HEAD to run tws:
  o adjust jakarta-slide/build.properties
  o run
        cd jakarta-slide
        ant dist
        cd jakarta-slide/webdavclient
        ant dist-clientlib
        cd jakarta-slide/testsuite
        ant make

o Build tws:
  o Change to the Tamino WebDAV Server directory
        cd jakarta-slide/proposals/tamino
  o Create a properties file
        copy build.properties.sample build.properties
  o Adjust build.properties, following the comments within.
    You have to install various software packages.
  o Build tws: run
        ant tree
    which results in a directory build/tree
  o Start the server: run
        build/tree/bin/inodavserver run
  o Note: run
        ant -projecthelp
    to get a list of available build targets. E.g, you can build a distribution by running
        ant dist

Known Issues
------------

o DTMException when building the documentation
  o probably Xalan bug observed with jdk 1.4.1_01
  -> jdk 1.4.2_022 seems to works
  
o inodavconfig install/remove services
  o doesn't work with Tomcat 5
  o does not work Java is installed on a network drive

o Tomcat 4 issues a
    java.lang.Exception: ManagedBean is not found with URMRealm4
        at org.apache.catalina.mbeans.MBeanUtils.createMBean(MBeanUtils.java:642)
  upon start-up. This problem can be ignored - it's solved in Tomcat 5.
  If you want to fix it:
    in server.xml, change
       <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
    to
       <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0" descriptors="/tws-descriptors.xml" />
    and provide a file tomcat/server/classes/tws-desciptors.xml with the following content
      <?xml version="1.0"?>
      <!DOCTYPE mbeans-descriptors PUBLIC "-//Apache Software Foundation//DTD Model MBeans Configuration File"
          "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">
      <mbeans-descriptors>
        <mbean name="URMRealm4" className="org.apache.catalina.mbeans.ClassNameMBean" description="URM Realm" domain="Catalina" group="Realm" type="org.apache.slide.urm.realm.URMRealm4">
                <attribute name="className" description="Fully qualified class name of the managed object" type="java.lang.String" writeable="false"/>
                <attribute name="debug" description="The debugging detail level for this component" type="int"/>
        </mbean>
      </mbeans-descriptors>

o "ant doc" fails with Java 1.5
   o [xslt] Transforming into /home/mhm/src/projects/slide/inodav/build/tree/doc
     [xslt] Processing /home/mhm/src/projects/slide/inodav/doc/main.xml to /home/mhm/src/projects/slide/inodav/build/tree/doc/main.html
     [xslt] Loading stylesheet /FS/BolXChange/mhm/inodavext/docbook-xsl-1.64.1/html/chunk.xsl
     [xslt] : Error! The first argument to the non-static Java function 'dayAbbreviation' is not a valid object reference.
     [xslt] : Error! Cannot convert data-type 'void' to 'reference'.
     [xslt] : Fatal Error! Could not compile stylesheet
     [xslt] Failed to process /home/mhm/src/projects/slide/inodav/doc/main.xml
   o work-around: use Java 1.4
   
o tp.functional (on 87) fails with NullPointerException in URMUserImpl if read-only ssx is used

Running the testsuite
---------------------

o Enter Tamino WebDAV Server directory
      cd jakarta-slide/proposals/tamino

o make sure you've adjusted the test.* properties in build.properties

o Install security (because we tested the test cases with security enabled):
      ant tws.security

o Generate a TProcessor configuration file:
      ant tp.properties

o Start tws
      build/tree/bin/inodavserver run

o Configure stores and run the functional Tests:
      cd jakarta-slide/testsuite
      ant tp.stores
      ant tp.functional
  (use ant -projecthelp to get a list of available targets)

 

Enable Tomcat Manager
---------------------

(optional - needed only if you want to use manager commands in inodaverserver)

o add a user "tws" with role "manager" to tomcat/conf/tomcat-users.xml

o security tip:
  block external process my adding
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/>
  to the manager's context declaration.

Know How
--------

o Get slide
  o release branch:
        cvs -d juergen@cvs.apache.org:/home/cvs -q co -P -r SLIDE_2_0_RELEASE_BRANCH -d jakarta-slide-release jakarta-slide
  o head
        cvs -d juergen@cvs.apache.org:/home/cvs -q co -P jakarta-slide

