You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by Warwick Burrows <wa...@e2open.com> on 2004/11/23 22:26:46 UTC

Real filenames in slide tx store

Hi,

I have a question regarding the way that content is actually physically
stored in the tx filesystem store. At one time I had thought that the Slide
content in the physical filesystem matched the hierarchy of the folder
structure. Is that not the case anymore or have I accidentally vi done
something to change this? ie. in my content store right now I only see a
bunch of files like this under store/content:

$ls
L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDE0LzEwMDYyLzEwMDY0XzEuMA%3D%3D
L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDE0LzEwMDYyLzEwMDcwLzEwMDcyXzEuMA%3D%3D
L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDEwLzEwMDE2LzEwMDI3XzEuMA%3D%3D
L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDEwLzEwMDE2LzEwMDIxXzEuMA%3D%3D
L2hpc3RvcnkvMS9oM18xLjA%3D
L2hpc3RvcnkvMS9oMF8xLjA%3D
L2hpc3RvcnkvMS9oMV8xLjA%3D
L2hpc3RvcnkvMS9oMl8xLjA%3D
L2hpc3RvcnkvMS9oNF8xLjA%3D

And I see no separate history folder with the history revisions in it. Have
I changed the way that the files are physically stored in the filesystem by
enabling one of the other features? Eg. UTF-8 support? I enabled the
"history uri hack" to defray the creation of history revisions in the
filesystem but this seems to be the opposite since its now storing all files
including history in the one directory. This won't be performant for a large
number of files and revisions.

My domain.xml is included below. Sorry its so huge but I comment out what I
don't need but leave it in the file so I can diff it against the 2.1 release
tree. Diff it against the 2.1 release Domain.xml to see what's changed.

Thanks,
Warwick


------------ domain.xml ----------------

<?xml version="1.0"?>
<slide logger="log4j.Log4jLogger" logger-level="7">
    <namespace name="slide">
        <definition>
            <store name="tx">
                <parameter name="cache-mode">off</parameter>
                <nodestore
classname="org.apache.slide.store.impl.rdbms.JDBCStore">
                  <parameter
name="adapter">org.apache.slide.store.impl.rdbms.DB2RDBMSAdapter</parameter>
                  <parameter
name="driver">com.ibm.db2.jcc.DB2Driver</parameter>
                  <parameter
name="url">jdbc:db2://machine:50000/DB</parameter>
                  <parameter name="user">user</parameter>
                  <parameter name="password">pwd</parameter>
                  <parameter name="dbcpPooling">true</parameter>
                  <parameter name="maxPooledConnections">50</parameter>
                  <parameter name="isolation">READ_COMMITTED</parameter>
                  <parameter name="compress">false</parameter>
                </nodestore>
                <sequencestore>
                  <reference store="nodestore" />
                </sequencestore>
                <securitystore>
                  <reference store="nodestore" />
                </securitystore>
                <lockstore>
                  <reference store="nodestore" />
                </lockstore>
                <revisiondescriptorsstore>
                  <reference store="nodestore" />
                </revisiondescriptorsstore>
                <revisiondescriptorstore>
                  <reference store="nodestore" />
                </revisiondescriptorstore>
                <contentstore
classname="org.apache.slide.store.txfile.TxFileContentStore">
                    <parameter name="rootpath">store/content</parameter>
                    <parameter name="workpath">work/content</parameter>
                    <parameter name="url-encode-path">true</parameter>
                    <!-- WB: Slide user list suggested disabling this for
filestore to avoid deadlock with high load -->
                    <parameter name="defer-saving">false</parameter>
                    <parameter name="timeout">120</parameter>
                </contentstore>
                <!-- uncomment if you want to use the sample Indexer -->
                <!-- be sure to have Lucene in your classpath
-->
                <!--
                <contentindexer
classname="org.apache.slide.index.SampleTxtContainsIndexer">
                <parameter name="indexpath">./index</parameter>
                </contentindexer>
                -->
            </store>
            <scope match="/" store="tx"/>
        </definition>
        <configuration>
            <!-- Actions mapping -->
            <read-object>/actions/read</read-object>
            <create-object>/actions/write</create-object>
            <remove-object>/actions/write</remove-object>
            <grant-permission>/actions/write-acl</grant-permission>
            <revoke-permission>/actions/write-acl</revoke-permission>
            <read-permissions>/actions/read-acl</read-permissions>
 
<read-own-permissions>/actions/read-current-user-privilege-set</read-own-per
missions>
            <lock-object>/actions/write</lock-object>
            <kill-lock>/actions/unlock</kill-lock>
            <read-locks>/actions/read</read-locks>
            <read-revision-metadata>/actions/read</read-revision-metadata>
 
<create-revision-metadata>/actions/write-properties</create-revision-metadat
a>
 
<modify-revision-metadata>/actions/write-properties</modify-revision-metadat
a>
 
<remove-revision-metadata>/actions/write-properties</remove-revision-metadat
a>
            <read-revision-content>/actions/read</read-revision-content>
 
<create-revision-content>/actions/write-content</create-revision-content>
 
<modify-revision-content>/actions/write-content</modify-revision-content>
 
<remove-revision-content>/actions/write-content</remove-revision-content>
            <bind-member>/actions/bind</bind-member>
            <unbind-member>/actions/unbind</unbind-member>
            <!-- Paths configuration -->
            <userspath>/users</userspath>
            <rolespath>/roles</rolespath>
            <actionspath>/actions</actionspath>
            <filespath>/files</filespath>
            <parameter name="dav">true</parameter>
            <parameter name="standalone">true</parameter>
            <parameter name="acl_inheritance_type">path</parameter>
            <!-- Nested roles: 0 means no nesting (default), 1 means one
sublevel, etc. -->
            <parameter name="nested_roles_maxdepth">0</parameter>
            <!-- Can be "off", "write" and "full" -->
            <parameter name="sequential-mode">full</parameter>
            <!-- "false" lets all read-only methods be executed outside of
transactions -->
            <parameter name="all-methods-in-transactions">true</parameter>
            <!-- Setting this to true will force Slide to internally convert
the username a user
                 enters at login to lowercase. This is useful for users who
can't be bothered
                 with turning off their capslock key before logging in. -->
            <parameter name="force-lowercase-login">false</parameter>
            <!-- Speed up access to /history by making hierarchy based on 
                 history id eg.

                 fileA.doc was /history/8 stays as /history/8
                 fileB.doc was /history/18 becomes as /history/1/h8
                 fileC.doc was /history/137 becomes /history/1/3/h7
            -->
            <parameter name="history-collection-hack">true</parameter>
        </configuration>
        <data>
            <objectnode classname="org.apache.slide.structure.SubjectNode"
uri="/">
                <!-- Subject can be:
                any user             "all"
                authenticated user   "authenticated"
                unauthenticated user "unauthenticated"
                self                 "self"
                owner of resource    "owner"
                a user               "/users/john"
                a role               "/roles/admin"
                -->
                <permission action="all" subject="unauthenticated"
inheritable="true"/>

                <!--
                <permission action="/actions/read-acl" subject="all"
inheritable="true" negative="true"/>
                <permission action="/actions/write-acl" subject="all"
inheritable="true" negative="true"/>
                <permission action="/actions/unlock" subject="all"
inheritable="true" negative="true"/>
                <permission action="/actions/read" subject="all"
inheritable="true"/>
                -->
                <!-- /users -->
                <!--
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users">
                    <permission action="all" subject="self"
inheritable="true"/>
                    <permission action="all" subject="/roles/projector"
inheritable="true"/>
                    <permission action="all" subject="unauthenticated"
inheritable="true" negative="true"/>
                    -->
                    <!-- /users/root represents the administrator -->
                    <!--
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users/root">
                        <revision>
                            <property
namespace="http://jakarta.apache.org/slide/" name="password">root</property>

                        </revision>
                    </objectnode>
                    -->
                    <!-- /users/john and /users/john2 represent
authenticated users -->
                    <!--
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users/john">
                        <revision>
                            <property
namespace="http://jakarta.apache.org/slide/" name="password">john</property>

                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users/john2">
                        <revision>
                            <property
namespace="http://jakarta.apache.org/slide/"
name="password">john2</property> 
                        </revision>
                    </objectnode>
                     -->
                    <!-- /users/guest represents an authenticated or
unauthenticated guest user -->
                    <!--
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users/guest">
                        <revision>
                            <property
namespace="http://jakarta.apache.org/slide/"
name="password">guest</property> 
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users/projector">
                        <revision>
                            <property
namespace="http://jakarta.apache.org/slide/"
name="password">projector</property> 
                        </revision>
                    </objectnode>
                </objectnode>
                -->
                <!-- /roles -->
                <!--
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/roles">
                    <permission action="all" subject="self"
inheritable="true"/>
                    <permission action="all" subject="/roles/projector"
inheritable="true"/>
                    <permission action="all" subject="unauthenticated"
inheritable="true" negative="true"/>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/roles/root">
                        <revision>
                            <property
name="group-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/users/root</D:href>]]></property>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/roles/user">
                        <revision>
                            <property
name="group-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/users/john</D:href><D:href
xmlns:D='DAV:'>/users/john2</D:href><D:href
xmlns:D='DAV:'>/users/root</D:href><D:href
xmlns:D='DAV:'>/users/projector</D:href>]]></property>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/roles/guest">
                        <revision>
                            <property
name="group-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/users/guest</D:href>]]></property>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/roles/projector">
                        <revision>
                            <property
name="group-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/users/root</D:href><D:href
xmlns:D='DAV:'>/users/projector</D:href>]]></property>
                        </revision>
                    </objectnode>
                </objectnode>
                -->
                <!-- action -->
                <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions">
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/read">
                        <revision>
                            <property
name="privilege-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/actions/read-acl</D:href> <D:href
xmlns:D='DAV:'>/actions/read-current-user-privilege-set</D:href>]]></propert
y>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/read-acl">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode"
uri="/actions/read-current-user-privilege-set">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/write">
                        <revision>
                            <property
name="privilege-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/actions/write-acl</D:href> <D:href
xmlns:D='DAV:'>/actions/write-properties</D:href> <D:href
xmlns:D='DAV:'>/actions/write-content</D:href>]]></property>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/write-acl">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode"
uri="/actions/write-properties">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode"
uri="/actions/write-content">
                        <revision>
                            <property
name="privilege-member-set"><![CDATA[<D:href
xmlns:D='DAV:'>/actions/bind</D:href> <D:href
xmlns:D='DAV:'>/actions/unbind</D:href>]]></property>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/bind">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/unbind">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                    <objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/unlock">
                        <revision>
                            <property name="privilege-member-set"/>
                        </revision>
                    </objectnode>
                </objectnode>
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/files">
                    <permission action="all" subject="unauthenticated"
inheritable="true"/>
                    <!--
                    <permission action="/actions/write"
subject="/roles/user" inheritable="true"/>
                    <permission action="/actions/read-acl" subject="owner"
inheritable="true"/>
                    -->
                </objectnode>
                <!--
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/projector">
                    <permission action="all" subject="unauthenticated"
inheritable="true"/>
                    <permission action="/actions/write"
subject="/roles/projector" inheritable="true"/>
                    <permission action="/actions/read-acl" subject="owner"
inheritable="true"/>
                    <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/projector/work">
                    </objectnode>
                </objectnode>
                -->
                <!-- DeltaV: default history and workspace paths -->
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/history">
                    <permission action="all" subject="unauthenticated"
inheritable="true"/>
                    <!--
                    <permission action="/actions/write"
subject="/roles/user" inheritable="true"/>
                    <permission action="/actions/read-acl" subject="owner"
inheritable="true"/>
                    -->
                </objectnode>
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/workspace">
                    <permission action="all" subject="unauthenticated"
inheritable="true"/>
                    <!--
                    <permission action="/actions/write"
subject="/roles/user" inheritable="true"/>
                    <permission action="/actions/read-acl" subject="owner"
inheritable="true"/>
                    -->
                </objectnode>
                <objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/workingresource">
                    <permission action="all" subject="unauthenticated"
inheritable="true"/>
                    <!--
                    <permission action="/actions/write"
subject="/roles/user" inheritable="true"/>
                    <permission action="/actions/read-acl" subject="owner"
inheritable="true"/>
                    -->
                </objectnode>
            </objectnode>
        </data>
    </namespace>
    <!--
    DeltaV global parameters
    ========================
    * historypath (mandatory=no, default="/history"):
    Specifies a Slide path which determines the location where this DeltaV
    server stores history data.

    * workspacepath (mandatory=no, default="/workspace"):
    Specifies a Slide path which determines the location where this DeltaV
    server allows workspaces to reside.

    * workingresourcepath (mandatory=no, default="/workingresource"):
    Specifies a Slide path which determines the location where this DeltaV
    server stores working resources.

    * auto-version (mandatory=no, default="checkout-checkin"):
    Controls the DeltaV auto-version behaviour.

    * auto-version-control (mandatory=no, default="false"):
    Indicates if a resource just created by a PUT should be set under
    version-control.

   * versioncontrol-exclude (mandatory=no, default=""):
   Specifies a Slide path which determines resources which are excluded from
version-control.
   The default value "" makes no path being excluded.

    * checkout-fork (mandatory=no, default="forbidden"):
    Controls the DeltaV check-out behaviour when a version is already
    checked-out or has a successor.

    * checkin-fork (mandatory=no, default="forbidden"):
    Controls the DeltaV check-out behaviour when a version has already a
    successor.

    * standardLivePropertiesClass (mandatory=no,
 
default="org.apache.slide.webdav.util.resourcekind.AbstractResourceKind"):
    Determines the "agent" knowing about what the standard live properties
are.
    It should be a loadable class containing the following static methods:
    - boolean isLiveProperty(String propName)
    - boolean isProtectedProperty(String propName)
    - boolean isComputedProperty(String propName)
    - Set getAllLiveProperties()
    - Set getAllProtectedProperties()
    - Set getAllComputedProperties()

    * uriRedirectorClass (mandatory=no,
    default="org.apache.slide.webdav.util.DeltavUriRedirector"):
    Determines the URI redirector class. The DeltaV URI redirector is in
    charge of the following redirections:
    - version URI to history URI, e.g. /history/2/1.4 to /history/2
    - latest revision number for history resource to 0.0
    - latest revision number for version resource to last URI token,
    e.g. /history/2/1.4 to 1.4
    It should be a loadable class containing the following static methods:
    - String redirectUri(String uri)
    - NodeRevisionNumber redirectLatestRevisionNumber(String uri)
    -->
    <parameter name="historypath">/history</parameter>
    <parameter name="workspacepath">/workspace</parameter>
    <parameter name="workingresourcepath">/workingresource</parameter>
    <!-- WB: Slide user list suggests disabling auto-version control to
avoid deadlocks -->
    <parameter name="auto-version"/>    <!-- empty string -->
    <parameter name="auto-version-control">false</parameter>
    <!-- WB -->
    <parameter name="versioncontrol-exclude"/>    <!-- empty string -->
    <parameter name="checkout-fork"/>
    <parameter name="checkin-fork"/>


    <!-- Extractor configuration -->
    <!--
    <extractors>
           This extractor requires jaxen-dom.jar and xml-im-exporter1.1.jar 
           to be copied to tomcat common/lib.

        <extractor classname="org.apache.slide.extractor.SimpleXmlExtractor"
uri="/files/articles/test.xml">
            <configuration>
                <instruction property="title" xpath="/article/title/text()"
/>
                <instruction property="summary"
xpath="/article/summary/text()" />
            </configuration>
        </extractor>
           This extractor requires poi-2.5-final-date.jar and 
           xml-im-exporter1.1.jar to be copied to tomcat common/lib.

        <extractor classname="org.apache.slide.extractor.OfficeExtractor"
uri="/files/docs/">
            <configuration>
                <instruction property="author" id="SummaryInformation-0-4"
/>
                <instruction property="application"
id="SummaryInformation-0-18" />
            </configuration>
        </extractor>
    </extractors>
    -->

    <!-- Event configuration -->
    <events>
        <event classname="org.apache.slide.webdav.event.WebdavEvent"
enable="true" />
        <event classname="org.apache.slide.event.ContentEvent" enable="true"
/>
        <event classname="org.apache.slide.event.ContentEvent"
method="retrieve" enable="false" />
        <event classname="org.apache.slide.event.EventCollection"
enable="true" />
        <event classname="org.apache.slide.event.TransactionEvent"
enable="true" />

        <event classname="org.apache.slide.event.MacroEvent" enable="true"/>

        <!--listener classname="org.apache.slide.util.event.EventLogger"
/-->
        <listener classname="org.apache.slide.event.VetoableEventCollector"
/>
        <listener classname="org.apache.slide.event.TransientEventCollector"
/>
        <listener
classname="org.apache.slide.webdav.event.NotificationTrigger">
            <configuration>
                <notification include-events="false" />
                <persist-subscriptions filename="subscriptions.xml" />
            </configuration>
        </listener>
        <listener
classname="org.apache.slide.extractor.PropertyExtractorTrigger" />
        <listener classname="org.apache.slide.search.IndexTrigger">
            <configuration>
                <indexer classname="org.apache.slide.search.LoggingIndexer"
synchronous="false" uri="/files/articles" />
            </configuration>
        </listener>
        
        <!-- Uncomment for cluster support. Be sure to local-host and
repository-host -->
        <!--
        <listener
classname="org.apache.slide.cluster.ClusterCacheRefresher">
            <configuration>
                <node local-host="local.host.domain" 
                    local-port="4444"
                    repository-host="remote.host.domain"
                    repository-port="8080"
                    repository-protocol="http"
                    username="root"
                    password="root"
                    base-uri="/files/"
                    />
            </configuration>
        </listener>
        -->

        <listener classname="org.apache.slide.macro.MacroPropertyUpdater">
          <!-- Listener that updates some properties if resources are 
               copied or moved.  This requires MacroEvents enabled (at 
               least methods copy and move) -->
          <configuration>
            <update-displayname>false</update-displayname>
            <update-owner-on-move>false</update-owner-on-move>
            <update-owner-on-copy>false</update-owner-on-copy>
          </configuration>
        </listener>
    </events>
</slide>

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: Real filenames in slide tx store

Posted by Oliver Zeigermann <ol...@gmail.com>.
You have set

 <parameter name="url-encode-path">true</parameter>

Remove it and it will be the old behavior.

Oliver


On Tue, 23 Nov 2004 13:26:46 -0800, Warwick Burrows
<wa...@e2open.com> wrote:
> Hi,
> 
> I have a question regarding the way that content is actually physically
> stored in the tx filesystem store. At one time I had thought that the Slide
> content in the physical filesystem matched the hierarchy of the folder
> structure. Is that not the case anymore or have I accidentally vi done
> something to change this? ie. in my content store right now I only see a
> bunch of files like this under store/content:
> 
> $ls
> L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDE0LzEwMDYyLzEwMDY0XzEuMA%3D%3D
> L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDE0LzEwMDYyLzEwMDcwLzEwMDcyXzEuMA%3D%3D
> L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDEwLzEwMDE2LzEwMDI3XzEuMA%3D%3D
> L2ZpbGVzLzEwMDAwLzEwMDA3LzEwMDEwLzEwMDE2LzEwMDIxXzEuMA%3D%3D
> L2hpc3RvcnkvMS9oM18xLjA%3D
> L2hpc3RvcnkvMS9oMF8xLjA%3D
> L2hpc3RvcnkvMS9oMV8xLjA%3D
> L2hpc3RvcnkvMS9oMl8xLjA%3D
> L2hpc3RvcnkvMS9oNF8xLjA%3D
> 
> And I see no separate history folder with the history revisions in it. Have
> I changed the way that the files are physically stored in the filesystem by
> enabling one of the other features? Eg. UTF-8 support? I enabled the
> "history uri hack" to defray the creation of history revisions in the
> filesystem but this seems to be the opposite since its now storing all files
> including history in the one directory. This won't be performant for a large
> number of files and revisions.
> 
> My domain.xml is included below. Sorry its so huge but I comment out what I
> don't need but leave it in the file so I can diff it against the 2.1 release
> tree. Diff it against the 2.1 release Domain.xml to see what's changed.
> 
> Thanks,
> Warwick
> 
> ------------ domain.xml ----------------
> 
> <?xml version="1.0"?>
> <slide logger="log4j.Log4jLogger" logger-level="7">
>     <namespace name="slide">
>         <definition>
>             <store name="tx">
>                 <parameter name="cache-mode">off</parameter>
>                 <nodestore
> classname="org.apache.slide.store.impl.rdbms.JDBCStore">
>                   <parameter
> name="adapter">org.apache.slide.store.impl.rdbms.DB2RDBMSAdapter</parameter>
>                   <parameter
> name="driver">com.ibm.db2.jcc.DB2Driver</parameter>
>                   <parameter
> name="url">jdbc:db2://machine:50000/DB</parameter>
>                   <parameter name="user">user</parameter>
>                   <parameter name="password">pwd</parameter>
>                   <parameter name="dbcpPooling">true</parameter>
>                   <parameter name="maxPooledConnections">50</parameter>
>                   <parameter name="isolation">READ_COMMITTED</parameter>
>                   <parameter name="compress">false</parameter>
>                 </nodestore>
>                 <sequencestore>
>                   <reference store="nodestore" />
>                 </sequencestore>
>                 <securitystore>
>                   <reference store="nodestore" />
>                 </securitystore>
>                 <lockstore>
>                   <reference store="nodestore" />
>                 </lockstore>
>                 <revisiondescriptorsstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorsstore>
>                 <revisiondescriptorstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorstore>
>                 <contentstore
> classname="org.apache.slide.store.txfile.TxFileContentStore">
>                     <parameter name="rootpath">store/content</parameter>
>                     <parameter name="workpath">work/content</parameter>
>                     <parameter name="url-encode-path">true</parameter>
>                     <!-- WB: Slide user list suggested disabling this for
> filestore to avoid deadlock with high load -->
>                     <parameter name="defer-saving">false</parameter>
>                     <parameter name="timeout">120</parameter>
>                 </contentstore>
>                 <!-- uncomment if you want to use the sample Indexer -->
>                 <!-- be sure to have Lucene in your classpath
> -->
>                 <!--
>                 <contentindexer
> classname="org.apache.slide.index.SampleTxtContainsIndexer">
>                 <parameter name="indexpath">./index</parameter>
>                 </contentindexer>
>                 -->
>             </store>
>             <scope match="/" store="tx"/>
>         </definition>
>         <configuration>
>             <!-- Actions mapping -->
>             <read-object>/actions/read</read-object>
>             <create-object>/actions/write</create-object>
>             <remove-object>/actions/write</remove-object>
>             <grant-permission>/actions/write-acl</grant-permission>
>             <revoke-permission>/actions/write-acl</revoke-permission>
>             <read-permissions>/actions/read-acl</read-permissions>
> 
> <read-own-permissions>/actions/read-current-user-privilege-set</read-own-per
> missions>
>             <lock-object>/actions/write</lock-object>
>             <kill-lock>/actions/unlock</kill-lock>
>             <read-locks>/actions/read</read-locks>
>             <read-revision-metadata>/actions/read</read-revision-metadata>
> 
> <create-revision-metadata>/actions/write-properties</create-revision-metadat
> a>
> 
> <modify-revision-metadata>/actions/write-properties</modify-revision-metadat
> a>
> 
> <remove-revision-metadata>/actions/write-properties</remove-revision-metadat
> a>
>             <read-revision-content>/actions/read</read-revision-content>
> 
> <create-revision-content>/actions/write-content</create-revision-content>
> 
> <modify-revision-content>/actions/write-content</modify-revision-content>
> 
> <remove-revision-content>/actions/write-content</remove-revision-content>
>             <bind-member>/actions/bind</bind-member>
>             <unbind-member>/actions/unbind</unbind-member>
>             <!-- Paths configuration -->
>             <userspath>/users</userspath>
>             <rolespath>/roles</rolespath>
>             <actionspath>/actions</actionspath>
>             <filespath>/files</filespath>
>             <parameter name="dav">true</parameter>
>             <parameter name="standalone">true</parameter>
>             <parameter name="acl_inheritance_type">path</parameter>
>             <!-- Nested roles: 0 means no nesting (default), 1 means one
> sublevel, etc. -->
>             <parameter name="nested_roles_maxdepth">0</parameter>
>             <!-- Can be "off", "write" and "full" -->
>             <parameter name="sequential-mode">full</parameter>
>             <!-- "false" lets all read-only methods be executed outside of
> transactions -->
>             <parameter name="all-methods-in-transactions">true</parameter>
>             <!-- Setting this to true will force Slide to internally convert
> the username a user
>                  enters at login to lowercase. This is useful for users who
> can't be bothered
>                  with turning off their capslock key before logging in. -->
>             <parameter name="force-lowercase-login">false</parameter>
>             <!-- Speed up access to /history by making hierarchy based on
>                  history id eg.
> 
>                  fileA.doc was /history/8 stays as /history/8
>                  fileB.doc was /history/18 becomes as /history/1/h8
>                  fileC.doc was /history/137 becomes /history/1/3/h7
>             -->
>             <parameter name="history-collection-hack">true</parameter>
>         </configuration>
>         <data>
>             <objectnode classname="org.apache.slide.structure.SubjectNode"
> uri="/">
>                 <!-- Subject can be:
>                 any user             "all"
>                 authenticated user   "authenticated"
>                 unauthenticated user "unauthenticated"
>                 self                 "self"
>                 owner of resource    "owner"
>                 a user               "/users/john"
>                 a role               "/roles/admin"
>                 -->
>                 <permission action="all" subject="unauthenticated"
> inheritable="true"/>
> 
>                 <!--
>                 <permission action="/actions/read-acl" subject="all"
> inheritable="true" negative="true"/>
>                 <permission action="/actions/write-acl" subject="all"
> inheritable="true" negative="true"/>
>                 <permission action="/actions/unlock" subject="all"
> inheritable="true" negative="true"/>
>                 <permission action="/actions/read" subject="all"
> inheritable="true"/>
>                 -->
>                 <!-- /users -->
>                 <!--
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/users">
>                     <permission action="all" subject="self"
> inheritable="true"/>
>                     <permission action="all" subject="/roles/projector"
> inheritable="true"/>
>                     <permission action="all" subject="unauthenticated"
> inheritable="true" negative="true"/>
>                     -->
>                     <!-- /users/root represents the administrator -->
>                     <!--
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/users/root">
>                         <revision>
>                             <property
> namespace="http://jakarta.apache.org/slide/" name="password">root</property>
> 
>                         </revision>
>                     </objectnode>
>                     -->
>                     <!-- /users/john and /users/john2 represent
> authenticated users -->
>                     <!--
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/users/john">
>                         <revision>
>                             <property
> namespace="http://jakarta.apache.org/slide/" name="password">john</property>
> 
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/users/john2">
>                         <revision>
>                             <property
> namespace="http://jakarta.apache.org/slide/"
> name="password">john2</property>
>                         </revision>
>                     </objectnode>
>                      -->
>                     <!-- /users/guest represents an authenticated or
> unauthenticated guest user -->
>                     <!--
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/users/guest">
>                         <revision>
>                             <property
> namespace="http://jakarta.apache.org/slide/"
> name="password">guest</property>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/users/projector">
>                         <revision>
>                             <property
> namespace="http://jakarta.apache.org/slide/"
> name="password">projector</property>
>                         </revision>
>                     </objectnode>
>                 </objectnode>
>                 -->
>                 <!-- /roles -->
>                 <!--
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/roles">
>                     <permission action="all" subject="self"
> inheritable="true"/>
>                     <permission action="all" subject="/roles/projector"
> inheritable="true"/>
>                     <permission action="all" subject="unauthenticated"
> inheritable="true" negative="true"/>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/roles/root">
>                         <revision>
>                             <property
> name="group-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/users/root</D:href>]]></property>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/roles/user">
>                         <revision>
>                             <property
> name="group-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/users/john</D:href><D:href
> xmlns:D='DAV:'>/users/john2</D:href><D:href
> xmlns:D='DAV:'>/users/root</D:href><D:href
> xmlns:D='DAV:'>/users/projector</D:href>]]></property>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/roles/guest">
>                         <revision>
>                             <property
> name="group-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/users/guest</D:href>]]></property>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/roles/projector">
>                         <revision>
>                             <property
> name="group-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/users/root</D:href><D:href
> xmlns:D='DAV:'>/users/projector</D:href>]]></property>
>                         </revision>
>                     </objectnode>
>                 </objectnode>
>                 -->
>                 <!-- action -->
>                 <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions">
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/read">
>                         <revision>
>                             <property
> name="privilege-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/actions/read-acl</D:href> <D:href
> xmlns:D='DAV:'>/actions/read-current-user-privilege-set</D:href>]]></propert
> y>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/read-acl">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode"
> uri="/actions/read-current-user-privilege-set">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/write">
>                         <revision>
>                             <property
> name="privilege-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/actions/write-acl</D:href> <D:href
> xmlns:D='DAV:'>/actions/write-properties</D:href> <D:href
> xmlns:D='DAV:'>/actions/write-content</D:href>]]></property>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/write-acl">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode"
> uri="/actions/write-properties">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode"
> uri="/actions/write-content">
>                         <revision>
>                             <property
> name="privilege-member-set"><![CDATA[<D:href
> xmlns:D='DAV:'>/actions/bind</D:href> <D:href
> xmlns:D='DAV:'>/actions/unbind</D:href>]]></property>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/bind">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/unbind">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                     <objectnode
> classname="org.apache.slide.structure.ActionNode" uri="/actions/unlock">
>                         <revision>
>                             <property name="privilege-member-set"/>
>                         </revision>
>                     </objectnode>
>                 </objectnode>
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/files">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <!--
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                     -->
>                 </objectnode>
>                 <!--
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/projector">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <permission action="/actions/write"
> subject="/roles/projector" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                     <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/projector/work">
>                     </objectnode>
>                 </objectnode>
>                 -->
>                 <!-- DeltaV: default history and workspace paths -->
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/history">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <!--
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                     -->
>                 </objectnode>
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/workspace">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <!--
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                     -->
>                 </objectnode>
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/workingresource">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <!--
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                     -->
>                 </objectnode>
>             </objectnode>
>         </data>
>     </namespace>
>     <!--
>     DeltaV global parameters
>     ========================
>     * historypath (mandatory=no, default="/history"):
>     Specifies a Slide path which determines the location where this DeltaV
>     server stores history data.
> 
>     * workspacepath (mandatory=no, default="/workspace"):
>     Specifies a Slide path which determines the location where this DeltaV
>     server allows workspaces to reside.
> 
>     * workingresourcepath (mandatory=no, default="/workingresource"):
>     Specifies a Slide path which determines the location where this DeltaV
>     server stores working resources.
> 
>     * auto-version (mandatory=no, default="checkout-checkin"):
>     Controls the DeltaV auto-version behaviour.
> 
>     * auto-version-control (mandatory=no, default="false"):
>     Indicates if a resource just created by a PUT should be set under
>     version-control.
> 
>    * versioncontrol-exclude (mandatory=no, default=""):
>    Specifies a Slide path which determines resources which are excluded from
> version-control.
>    The default value "" makes no path being excluded.
> 
>     * checkout-fork (mandatory=no, default="forbidden"):
>     Controls the DeltaV check-out behaviour when a version is already
>     checked-out or has a successor.
> 
>     * checkin-fork (mandatory=no, default="forbidden"):
>     Controls the DeltaV check-out behaviour when a version has already a
>     successor.
> 
>     * standardLivePropertiesClass (mandatory=no,
> 
> default="org.apache.slide.webdav.util.resourcekind.AbstractResourceKind"):
>     Determines the "agent" knowing about what the standard live properties
> are.
>     It should be a loadable class containing the following static methods:
>     - boolean isLiveProperty(String propName)
>     - boolean isProtectedProperty(String propName)
>     - boolean isComputedProperty(String propName)
>     - Set getAllLiveProperties()
>     - Set getAllProtectedProperties()
>     - Set getAllComputedProperties()
> 
>     * uriRedirectorClass (mandatory=no,
>     default="org.apache.slide.webdav.util.DeltavUriRedirector"):
>     Determines the URI redirector class. The DeltaV URI redirector is in
>     charge of the following redirections:
>     - version URI to history URI, e.g. /history/2/1.4 to /history/2
>     - latest revision number for history resource to 0.0
>     - latest revision number for version resource to last URI token,
>     e.g. /history/2/1.4 to 1.4
>     It should be a loadable class containing the following static methods:
>     - String redirectUri(String uri)
>     - NodeRevisionNumber redirectLatestRevisionNumber(String uri)
>     -->
>     <parameter name="historypath">/history</parameter>
>     <parameter name="workspacepath">/workspace</parameter>
>     <parameter name="workingresourcepath">/workingresource</parameter>
>     <!-- WB: Slide user list suggests disabling auto-version control to
> avoid deadlocks -->
>     <parameter name="auto-version"/>    <!-- empty string -->
>     <parameter name="auto-version-control">false</parameter>
>     <!-- WB -->
>     <parameter name="versioncontrol-exclude"/>    <!-- empty string -->
>     <parameter name="checkout-fork"/>
>     <parameter name="checkin-fork"/>
> 
>     <!-- Extractor configuration -->
>     <!--
>     <extractors>
>            This extractor requires jaxen-dom.jar and xml-im-exporter1.1.jar
>            to be copied to tomcat common/lib.
> 
>         <extractor classname="org.apache.slide.extractor.SimpleXmlExtractor"
> uri="/files/articles/test.xml">
>             <configuration>
>                 <instruction property="title" xpath="/article/title/text()"
> />
>                 <instruction property="summary"
> xpath="/article/summary/text()" />
>             </configuration>
>         </extractor>
>            This extractor requires poi-2.5-final-date.jar and
>            xml-im-exporter1.1.jar to be copied to tomcat common/lib.
> 
>         <extractor classname="org.apache.slide.extractor.OfficeExtractor"
> uri="/files/docs/">
>             <configuration>
>                 <instruction property="author" id="SummaryInformation-0-4"
> />
>                 <instruction property="application"
> id="SummaryInformation-0-18" />
>             </configuration>
>         </extractor>
>     </extractors>
>     -->
> 
>     <!-- Event configuration -->
>     <events>
>         <event classname="org.apache.slide.webdav.event.WebdavEvent"
> enable="true" />
>         <event classname="org.apache.slide.event.ContentEvent" enable="true"
> />
>         <event classname="org.apache.slide.event.ContentEvent"
> method="retrieve" enable="false" />
>         <event classname="org.apache.slide.event.EventCollection"
> enable="true" />
>         <event classname="org.apache.slide.event.TransactionEvent"
> enable="true" />
> 
>         <event classname="org.apache.slide.event.MacroEvent" enable="true"/>
> 
>         <!--listener classname="org.apache.slide.util.event.EventLogger"
> /-->
>         <listener classname="org.apache.slide.event.VetoableEventCollector"
> />
>         <listener classname="org.apache.slide.event.TransientEventCollector"
> />
>         <listener
> classname="org.apache.slide.webdav.event.NotificationTrigger">
>             <configuration>
>                 <notification include-events="false" />
>                 <persist-subscriptions filename="subscriptions.xml" />
>             </configuration>
>         </listener>
>         <listener
> classname="org.apache.slide.extractor.PropertyExtractorTrigger" />
>         <listener classname="org.apache.slide.search.IndexTrigger">
>             <configuration>
>                 <indexer classname="org.apache.slide.search.LoggingIndexer"
> synchronous="false" uri="/files/articles" />
>             </configuration>
>         </listener>
> 
>         <!-- Uncomment for cluster support. Be sure to local-host and
> repository-host -->
>         <!--
>         <listener
> classname="org.apache.slide.cluster.ClusterCacheRefresher">
>             <configuration>
>                 <node local-host="local.host.domain"
>                     local-port="4444"
>                     repository-host="remote.host.domain"
>                     repository-port="8080"
>                     repository-protocol="http"
>                     username="root"
>                     password="root"
>                     base-uri="/files/"
>                     />
>             </configuration>
>         </listener>
>         -->
> 
>         <listener classname="org.apache.slide.macro.MacroPropertyUpdater">
>           <!-- Listener that updates some properties if resources are
>                copied or moved.  This requires MacroEvents enabled (at
>                least methods copy and move) -->
>           <configuration>
>             <update-displayname>false</update-displayname>
>             <update-owner-on-move>false</update-owner-on-move>
>             <update-owner-on-copy>false</update-owner-on-copy>
>           </configuration>
>         </listener>
>     </events>
> </slide>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org