Hi Jacob,

the problem is that Slide doesn't support multiple scopes per store. So you have to 
define a separate store for the history of project1.

Also, within the <data> section, the <objectnode> elements must reflect the namespace 
hierarchy, i.e. the <objectnode> element for /files/project1 must be inside the 
element for /files. Same for /history/project1 and /history.

I attached a modified Domain.xml ... hope this helps.

Regards,
Peter

> -----Original Message-----
> From: Nevermann, Dr., Peter 
> Sent: Thursday, March 04, 2004 21:17
> To: Nevermann, Dr., Peter
> Subject: FW: structure of History and how to clean up
> 
> 
> -----Original Message-----
> From: Jacob Lund [mailto:[EMAIL PROTECTED]
> Sent: Thursday, March 04, 2004 13:04
> To: 'Slide Developers Mailing List'
> Subject: RE: structure of History and how to clean up
> 
> 
> Here it is!
> 
> /jacob
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]
> 
> Sent: 4. marts 2004 12:56
> To: [EMAIL PROTECTED]
> Subject: RE: structure of History and how to clean up
> 
> Jacob,
> 
> At first go, I don't see what the cause could be.
> Could you send me your (impersonalized) Domain.xml, please?
> 
> Regards,
> Peter
> 
> > -----Original Message-----
> > From: Jacob Lund [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, March 04, 2004 11:09
> > To: 'Slide Developers Mailing List'
> > Subject: RE: structure of History and how to clean up
> > 
> > 
> > Hi Peter!
> > 
> > I can get most of it working except the history part. If I change
> > historypath in my domain.xml to:
> > <parameter name="historypath">/history/${store}</parameter>
> > 
> > Then the server fails when I try to set versioning on a resource:
> > 
> > /files/project2/MySqlSchema.sql
> > java.lang.NullPointerException
> >         at java.lang.StringBuffer.replace(StringBuffer.java:717)
> >         at
> > 
> org.apache.slide.webdav.util.HistoryPathHandler.getResolvedHistoryPat
> > hHandler(HistoryPathHandler.java:73)
> >         at
> > 
> org.apache.slide.webdav.util.HistoryPathHandler.getResolvedHistoryPat
> > hHandler(HistoryPathHandler.java:56)
> >         at
> > 
> org.apache.slide.webdav.util.UriHandler.createNextHistoryUri(UriHandl
> > er.java:102)
> >         at
> > 
> org.apache.slide.webdav.util.VersioningHelper.versionControl(Versioni
> > ngHelper.java:297)
> >         at
> > 
> org.apache.slide.webdav.method.PutMethod.executeRequest(PutMethod.jav
> > a:380)
> >         at
> > 
> org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebda
> > vMethod.java:315)
> > 
> > Did I miss something?
> > 
> > /jacob
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED]
> > 
> > Sent: 3. marts 2004 16:18
> > To: [EMAIL PROTECTED]
> > Subject: RE: structure of History and how to clean up
> > 
> > Hi Jacob,
> > 
> > you *can* configure Slide s.t. history data of project1 is 
> > separated from
> > history data of project2. You *can* configure your stores 
> > s.t. for each
> > project data and history data are stored together in one DB.
> > 
> > Is that what you need?
> > 
> > If yes, proceed as follows (all in Domain.xml):
> > 
> > 1) Set historypath parameter (at the end of Domain.xml) to be
> > /history/${store}
> > 2) Configure a default store (e.g. TX filesystem store) with 
> > scope matching
> > "/"
> > 3) Configure the project1 store (e.g. MySQL store) with 
> scope matching
> > "/files/project1" and database="DB1"
> > 4) Configure the history1 store with scope matching 
> > "/history/project1" and
> > database="DB1"
> > 5) Configure the project2 store with scope matching 
> > "/files/project2" and
> > database="DB2"
> > 6) Configure the history2 store with scope matching 
> > "/history/project2" and
> > database="DB2"
> > 7) Initialize all of the nodes /files, /files/project1, 
> > /files/project2,
> > /history, /history/project1, /history/project2 (within the 
> > <data> element)
> > 
> > If needed, proceed in the same manner with workspace and 
> > workingresource
> > data.
> > 
> > Regards,
> > Peter 
> > 
> > > -----Original Message-----
> > > From: Jacob Lund [mailto:[EMAIL PROTECTED]
> > > Sent: Wednesday, March 03, 2004 14:11
> > > To: 'Slide Developers Mailing List'
> > > Subject: structure of History and how to clean up
> > > 
> > > 
> > > Hi!
> > > 
> > > One of my concerns with slide in production is the handling 
> > of history
> > > versions.
> > > 
> > > How do I clean up in my history files?
> > > 
> > > I would really like to keep the collection hierarchy between 
> > > /files and
> > > /history. That way I would be able to separate a collection 
> > > and its history
> > > versions in the same database.
> > > 
> > > E.G.: /files/project1 and /history/project1 are directed 
> to the same
> > > database in domain.xml. When project1 is no longer necessary 
> > > I can simply
> > > delete this part and both files and history will be cleaned up.
> > > 
> > > Another way could be the possibility of defining a separate 
> > > history uri to
> > > each store.
> > > 
> > > I do not believe that this would be a problem with respect to 
> > > the deltaV
> > > standard.
> > > 
> > > /Jacob 
> > > 
> > > 
> > > 
> > 
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > 
> > > 
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
<?xml version="1.0"?>
<slide logger="org.apache.slide.util.logger.SimpleLogger" logger-level="6" default="slide">
	<namespace name="slide">
		<definition>
			<store name="tx">
				<nodestore classname="org.apache.slide.store.txfile.TxXMLFileDescriptorsStore">
					<parameter name="rootpath">e:/tomcat4/store/store/metadata</parameter>
					<parameter name="workpath">e:/tomcat4/store/work/metadata</parameter>
					<parameter name="url-encode-path">true</parameter>
				</nodestore>
				<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">e:/tomcat4/store/store/content</parameter>
					<parameter name="workpath">e:/tomcat4/store/work/content</parameter>
					<parameter name="url-encode-path">false</parameter>
				</contentstore>
			</store>
			<store name="project1">
				<nodestore classname="org.apache.slide.store.impl.rdbms.JDBCStore">
					<parameter name="adapter">org.apache.slide.store.impl.rdbms.SQLServerRDBMSAdapter</parameter>
					<parameter name="driver">com.microsoft.jdbc.sqlserver.SQLServerDriver</parameter>
					<parameter name="url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sl;SelectMethod=cursor</parameter>
					<parameter name="user">sl</parameter>
					<parameter name="password">sl</parameter>
					<parameter name="dbcpPooling">true</parameter>
					<parameter name="maxPooledConnections">10</parameter>
					<parameter name="isolation">READ_COMMITTED</parameter>
					<parameter name="SendStringParametersAsUnicode">false</parameter>
				</nodestore>
				<securitystore>
					<reference store="nodestore"/>
				</securitystore>
				<lockstore>
					<reference store="nodestore"/>
				</lockstore>
				<revisiondescriptorsstore>
					<reference store="nodestore"/>
				</revisiondescriptorsstore>
				<revisiondescriptorstore>
					<reference store="nodestore"/>
				</revisiondescriptorstore>
				<contentstore>
					<reference store="nodestore"/>
				</contentstore>
			</store>
			<store name="history_project1">
				<nodestore classname="org.apache.slide.store.impl.rdbms.JDBCStore">
					<parameter name="adapter">org.apache.slide.store.impl.rdbms.SQLServerRDBMSAdapter</parameter>
					<parameter name="driver">com.microsoft.jdbc.sqlserver.SQLServerDriver</parameter>
					<parameter name="url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sl;SelectMethod=cursor</parameter>
					<parameter name="user">sl</parameter>
					<parameter name="password">sl</parameter>
					<parameter name="dbcpPooling">true</parameter>
					<parameter name="maxPooledConnections">10</parameter>
					<parameter name="isolation">READ_COMMITTED</parameter>
					<parameter name="SendStringParametersAsUnicode">false</parameter>
				</nodestore>
				<securitystore>
					<reference store="nodestore"/>
				</securitystore>
				<lockstore>
					<reference store="nodestore"/>
				</lockstore>
				<revisiondescriptorsstore>
					<reference store="nodestore"/>
				</revisiondescriptorsstore>
				<revisiondescriptorstore>
					<reference store="nodestore"/>
				</revisiondescriptorstore>
				<contentstore>
					<reference store="nodestore"/>
				</contentstore>
			</store>
			<scope match="/" store="tx"/>
			<scope match="/files/project1" store="project1"/>
			<scope match="/history/project1" store="history_project1"/>
		</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>
			<groupspath>/groups</groupspath>
			<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">1</parameter>
		</configuration>
		<data>
			<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/">
				<permission action="all" subject="/groups/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="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"/>
						</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"/>
						</revision>
					</objectnode>
					<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users/john2">
						<revision>
							<property namespace="http://jakarta.apache.org/slide/"; name="password"/>
						</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"/>
						</revision>
					</objectnode>
				</objectnode>
				<!-- /roles -->
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/groups">
					<permission action="all" subject="self" inheritable="true"/>
					<permission action="all" subject="unauthenticated" inheritable="true" negative="true"/>
					<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/groups/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="/groups/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>]]></property>
						</revision>
					</objectnode>
					<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/groups/guest">
						<revision>
							<property name="group-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/users/guest</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="/groups/user" inheritable="true"/>
					<permission action="/actions/read-acl" subject="owner" inheritable="true"/>
    				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/files/project1">
    					<permission action="all" subject="unauthenticated" inheritable="true"/>
    					<permission action="/actions/write" subject="/groups/user" inheritable="true"/>
    					<permission action="/actions/read-acl" subject="owner" inheritable="true"/>
    				</objectnode>
				</objectnode>
				<!-- DeltaV: default history and workspace paths -->
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/history">
					<permission action="all" subject="unauthenticated" inheritable="true"/>
    				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/history/project1">
    					<permission action="all" subject="unauthenticated" inheritable="true"/>
    				</objectnode>
				</objectnode>
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workspace">
					<permission action="all" subject="unauthenticated" inheritable="true"/>
				</objectnode>
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workingresource">
					<permission action="all" subject="unauthenticated" inheritable="true"/>
				</objectnode>
			</objectnode>
		</data>
	</namespace>
	<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>
</slide>

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

Reply via email to