Hi there!

I created a BasicWebdavStore Module and enabled it in the slide configuration. My module connects to my server and calls appropriate functions in my Document Service through RMI. Unfortunately, each request takes very long. Even an Options command tooks 6s (see output below). I logged each time a storage is created and the commands. Obviously, the storage creation with service lookup takes most of the time ....

I am wondering why so many storages are created for an OPTIONS (its the same for propstat, etc.) and why it calls isFolder("steam") repeatedly (thats my files/ location). The configuration is basically the example domain.xml with a few changes.

I am deploying in jboss using jaas.

Any help would be appreciated!
Thanx in advance,
Tom

<?xml version="1.0"?>
<slide>
    <namespace name="slide">
        <definition>
            <store name="simple">
                <parameter name="cache-mode">cluster</parameter>
                <!-- uncomment this if you are using Slide 2.2
                     and want more caching with timeout
                    (100 sec in this case) -->
                <!--parameter name="cache-timeout">100</parameter>
                <parameter name="cache-mode">full</parameter-->
                <nodestore classname="org.apache.slide.simple.store.WebdavStoreAdapter">
                    <parameter name="callback-store">org.opensteam.webdav.WebdavStorage</parameter>
                    <parameter name="rootpath">/Users/tom/store</parameter>
                </nodestore>
                <contentstore>
                    <reference store="nodestore"/>
                </contentstore>
                <revisiondescriptorsstore>
                    <reference store="nodestore"/>
                </revisiondescriptorsstore>
                <revisiondescriptorstore>
                    <reference store="nodestore"/>
                </revisiondescriptorstore>
                <lockstore>
                    <reference store="nodestore"/>
                </lockstore>
                <securitystore>
                    <reference store="nodestore"/>
                </securitystore>
                
            </store>
            <store name="memory">
                <nodestore classname="org.apache.slide.store.mem.TransientNodeStore"/>
                <contentstore classname="org.apache.slide.store.mem.TransientContentStore"/>
                <revisiondescriptorsstore classname="org.apache.slide.store.mem.TransientDescriptorsStore"/>
                <revisiondescriptorstore classname="org.apache.slide.store.mem.TransientDescriptorStore"/>
                <securitystore classname="org.apache.slide.store.mem.TransientSecurityStore"/>
                <lockstore classname="org.apache.slide.store.mem.TransientLockStore"/>
            </store>
            <scope match="/" store="memory"/>
            <scope match="/steam" store="simple"/>
        </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-permissions>
            <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-metadata>
            <modify-revision-metadata>/actions/write-properties</modify-revision-metadata>
            <remove-revision-metadata>/actions/write-properties</remove-revision-metadata>
            <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>/steam</filespath>
            <auto-create-users>true</auto-create-users>
            <auto-create-users-role>org.apache.slide.structure.SubjectNode</auto-create-users-role>
            <parameter name="dav">true</parameter>
            <parameter name="standalone">true</parameter>
            <parameter name="acl_semantics">org.opensteam.webdav.Security</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>
            <!-- enable this if you use Slide 2.2 and want more fine grained locks 
                 resulting in improved concurrency -->
            <!--parameter name="sequential-mode">fine-grain</parameter-->
            <!-- "false" lets all read-only methods be executed outside of transactions -->
            <parameter name="all-methods-in-transactions">false</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>
            <parameter name="auto-create-users">true</parameter>
            <parameter name="auto-create-users-role">slideroles.basic.RootRoleImpl</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="/roles/root" 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>]]></property>
                        </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="/steam">
                        <!-- to make clear to stores that rely on it this is a collection -->
                        <revision>
                            <property name="resourcetype"><![CDATA[<collection/>]]></property>
                        </revision>
                    <permission action="all" subject="all" inheritable="true"/>
                    <permission action="all" subject="/roles/user" 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>
    <parameter name="auto-version">checkout-checkin</parameter>
    <parameter name="auto-version-control">false</parameter>
    <parameter name="versioncontrol-exclude"/>
    <parameter name="checkout-fork">forbidden</parameter>
    <parameter name="checkin-fork">forbidden</parameter>


    <!-- Extractor configuration -->
    <extractors>
        <extractor classname="org.apache.slide.extractor.SimpleXmlExtractor" uri="/steam/articles/test.xml">
            <configuration>
                <instruction property="title" xpath="/article/title/text()" />
                <instruction property="summary" xpath="/article/summary/text()" />
            </configuration>
        </extractor>
        <extractor classname="org.apache.slide.extractor.OfficeExtractor" uri="/steam/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="/steam/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="/steam/"
				/>
			</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>true</update-displayname>
            <update-owner-on-move>false</update-owner-on-move>
            <update-owner-on-copy>true</update-owner-on-copy>
          </configuration>
        </listener>
    </events>
</slide>

10:20:29,077 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:29,303 INFO  [STDOUT] objectExists /steam
10:20:29,325 INFO  [STDOUT] isFolder /steam
10:20:29,373 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:29,598 INFO  [STDOUT] objectExists /steam
10:20:29,626 INFO  [STDOUT] isFolder /steam
10:20:29,682 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:29,905 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:30,144 INFO  [STDOUT] objectExists /steam
10:20:30,169 INFO  [STDOUT] isFolder /steam
10:20:30,223 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:30,446 INFO  [STDOUT] objectExists /steam
10:20:30,467 INFO  [STDOUT] isFolder /steam
10:20:30,524 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:30,749 INFO  [STDOUT] objectExists /steam
10:20:30,768 INFO  [STDOUT] isFolder /steam
10:20:30,816 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:31,042 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:31,280 INFO  [STDOUT] objectExists /steam
10:20:31,976 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:32,203 INFO  [STDOUT] objectExists /steam
10:20:32,227 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:32,479 INFO  [STDOUT] objectExists /steam
10:20:32,502 INFO  [STDOUT] isFolder /steam
10:20:32,555 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:32,778 INFO  [STDOUT] objectExists /steam
10:20:32,797 INFO  [STDOUT] objectExists /steam
10:20:32,814 INFO  [STDOUT] isFolder /steam
10:20:32,831 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:33,055 INFO  [STDOUT] objectExists /steam
10:20:33,078 INFO  [STDOUT] isFolder /steam
10:20:33,126 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:33,350 INFO  [STDOUT] objectExists /steam
10:20:33,375 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:33,601 INFO  [STDOUT] objectExists /steam
10:20:33,621 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:33,850 INFO  [STDOUT] objectExists /steam
10:20:33,874 INFO  [STDOUT] isFolder /steam
10:20:33,927 INFO  [STDOUT] ################ Creating WebDAV Storage!
10:20:34,161 INFO  [STDOUT] objectExists /steam
10:20:34,182 INFO  [STDOUT] objectExists /steam
10:20:34,199 INFO  [STDOUT] isFolder /steam
10:20:34,217 INFO [STDOUT] http-127.0.0.1-8080-1, 24-Mai-2007 10:20:29, astra, OPTIONS, 200 "OK", 5145 ms, /steam/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to