Hi all,

When slide is configured to split the history collection into seperate stores <parameter name="historypath">/history/${store}</parameter>, then the history-collection-hack breaks the versioning part of slide.

I have attached an example domain.xml file. When history-collection-hack is set to false it works fine.

I tested this with 2.1rc1.

/jacob
<?xml version="1.0"?>
<slide>
	<namespace name="slide">
		<definition>
			<store name="tx">
				<parameter name="tlock-timeout">120</parameter>
				<nodestore classname="org.apache.slide.store.txfile.TxXMLFileDescriptorsStore">
					<parameter name="rootpath">store/metadata</parameter>
					<parameter name="workpath">work/metadata</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</nodestore>
				<sequencestore classname="org.apache.slide.store.txfile.FileSequenceStore">
					<parameter name="rootpath">store/sequence</parameter>
				</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="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</contentstore>
			</store>
			<scope match="/" store="tx"/>
			<store name="tx2">
				<parameter name="tlock-timeout">120</parameter>
				<nodestore classname="org.apache.slide.store.txfile.TxXMLFileDescriptorsStore">
					<parameter name="rootpath">storeh/metadata</parameter>
					<parameter name="workpath">workh/metadata</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</nodestore>
				<sequencestore classname="org.apache.slide.store.txfile.FileSequenceStore">
					<parameter name="rootpath">storeh/sequence</parameter>
				</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">storeh/content</parameter>
					<parameter name="workpath">workh/content</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</contentstore>
			</store>
			<scope match="/history/tx" store="tx2"/>
			<store name="files">
				<parameter name="tlock-timeout">120</parameter>
				<nodestore classname="org.apache.slide.store.txfile.TxXMLFileDescriptorsStore">
					<parameter name="rootpath">storef/metadata</parameter>
					<parameter name="workpath">worfk/metadata</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</nodestore>
				<sequencestore classname="org.apache.slide.store.txfile.FileSequenceStore">
					<parameter name="rootpath">storef/sequence</parameter>
				</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">storef/content</parameter>
					<parameter name="workpath">workf/content</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</contentstore>
			</store>
			<scope match="/files" store="files"/>
			<store name="files2">
				<parameter name="tlock-timeout">120</parameter>
				<nodestore classname="org.apache.slide.store.txfile.TxXMLFileDescriptorsStore">
					<parameter name="rootpath">storefh/metadata</parameter>
					<parameter name="workpath">workfh/metadata</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</nodestore>
				<sequencestore classname="org.apache.slide.store.txfile.FileSequenceStore">
					<parameter name="rootpath">storefh/sequence</parameter>
				</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">storefh/content</parameter>
					<parameter name="workpath">workfh/content</parameter>
					<parameter name="defer-saving">true</parameter>
					<parameter name="timeout">120</parameter>
				</contentstore>
			</store>
			<scope match="/history/files" store="files2"/>
		</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>/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">2</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>
			<parameter name="history-collection-hack">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>
		</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="/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>
				<!-- 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 classname="org.apache.slide.structure.SubjectNode" uri="/history/tx"/>
					<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/history/files"/>
				</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/${store}</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="/files/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="/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>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>

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

Reply via email to