Hi,
I have been using a daily build from Nov 13th and just upgraded to the
Feb 23rd daily build.. When using either memory or hsql stores for
either version, I cannot seem to get the versioning to show up using the
struts tag lib "slide:node" tag. All I see is a node that says versioned
== false, and the list of revisions returned from the taglib is empty..
Since this is happening, I cannot pull the content back for the latest
revision using the tags, nor the properties for the latest revision. So,
I am assuming:
1) That versioning isn't working.. I don't believe this is the case, as
I've turned it on in the Domain.xml and I am seeing files showing up
under the history directory.. I don't have a Delta/V client other than
the web interface I'm building and any metadata SkunkDAV is seeing...
Any good windows clients out there that support Delta/V I can use to try
and confirm this possible bug?
2) The tag is broken - can someone confirm this using the daily build
from Feb 23rd? It seems to pull most of the interesting information
exposed from the NodeBean, except for versions (even locks are showing
up)
3) the MS web folder I'm using to push my test files in is confusing
Slide.. I have also tried to create a new file under a folder originally
created by MS using SkunkDAV and no luck with versioning being turned on
for that file.
4) Versioning doesn't work without security being turned on - I have it
turned off for now for quicker development
I am seeing the following properties via SkunkDAV:
host localhost
port 8080
name /slide/files/sites/www.calvaryaustin.org/xml/homepage/home.xml
creation date 2003-02-24T01:09:49Z
last modified date Mon, 24 Feb 2003 01:09:49 GMT
content type text/xml
content length 405
content language en
display name home.xml
resource type
etag 397939377_48563_405
supported locks Lock [scope=exclusive, type=write], Lock [scope=shared,
type=write]
active locks
links
Should I be seeing some properties related to versioning at all?
My Domain.xml is the following (pretty much stock minus versioning is
on):
<?xml version="1.0"?>
<slide logger="org.apache.slide.util.logger.SimpleLogger"
logger-level="6" default="slide">
<!--
logger
~~~~~~
org.apache.slide.util.logger.SimpleLogger
default logger with 1 log level
log4j.Log4jLogger
logger with fine granularity
see http://jakarta.apache.org/log4j/
logger-level
~~~~~~~~~~~~
0 EMERGENCY
1 CRITICAL
2 ERROR
4 WARNING
6 INFO
7 DEBUG
-->
<namespace name="slide">
<!-- ### Memory Configuration ###
The following memory configuration uses the
MemoryDescriptorsStore for
node, security, locks and revisions. For content the
FileContentStore
is used. Content is reset before start.
-->
<definition>
<store name="memory">
<nodestore
classname="slidestore.reference.MemoryDescriptorsStore"/>
<securitystore>
<reference store="nodestore"/>
</securitystore>
<lockstore>
<reference store="nodestore"/>
</lockstore>
<revisiondescriptorsstore>
<reference store="nodestore"/>
</revisiondescriptorsstore>
<revisiondescriptorstore>
<reference store="nodestore"/>
</revisiondescriptorstore>
<contentstore classname="slidestore.reference.FileContentStore">
<parameter name="rootpath">contentstore</parameter>
<parameter name="version">true</parameter>
<parameter name="resetBeforeStarting">true</parameter>
</contentstore>
</store>
<scope match="/" store="memory"/>
</definition>
<!-- ### JDBC Configuration ###
The following jdbc sample configuration uses the hsql Database
Engine
a relational database engine written in Java, for more info:
http://hsqldb.sourceforge.net/
-->
<!--
<definition>
<store name="jdbc">
<nodestore
classname="slidestore.reference.JDBCDescriptorsStore">
<parameter
name="driver">org.hsqldb.jdbcDriver</parameter>
<parameter
name="url">jdbc:hsqldb:slidestructure</parameter>
<parameter name="user">sa</parameter>
<parameter name="password"></parameter>
</nodestore>
<securitystore>
<reference store="nodestore" />
</securitystore>
<lockstore>
<reference store="nodestore" />
</lockstore>
<revisiondescriptorsstore>
<reference store="nodestore" />
</revisiondescriptorsstore>
<revisiondescriptorstore>
<reference store="nodestore" />
</revisiondescriptorstore>
<contentstore
classname="slidestore.reference.JDBCContentStore">
<parameter
name="driver">org.hsqldb.jdbcDriver</parameter>
<parameter
name="url">jdbc:hsqldb:slidecontent</parameter>
<parameter name="user">sa</parameter>
<parameter name="password"></parameter>
</contentstore>
</store>
<scope match="/" store="jdbc" />
</definition>
-->
<!-- ### Mixed JDBC - Filesystem ###
stores:
slidestore.reference.JDBCDescriptorsStore
slidestore.reference.FileContentStore
!!! set resetBeforeStarting parameter for
FileContentStore to false !!!
-->
<!-- ### Cloudscape configuration (embedded database)
###
stores:
slidestore.cloudscape.CloudscapeDescriptorsStore
slidestore.cloudscape.CloudscapeContentStore
driver: COM.cloudscape.core.JDBCDriver
url:
jdbc:cloudscape:slidestructure;create=true
jdbc:cloudscape:slidecontent;create=true
-->
<!-- ### Oracle configuration (thin driver) ###
stores:
slidestore.reference.JDBCDescriptorsStore
slidestore.oracle.OracleContentStore
driver: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:slide
-->
<configuration>
<!-- Actions mapping -->
<default-action>/actions</default-action>
<read-object>/actions/read</read-object>
<create-object>/actions/write</create-object>
<remove-object>/actions/write</remove-object>
<grant-permission>/actions/manage</grant-permission>
<revoke-permission>/actions/manage</revoke-permission>
<read-permissions>/actions/manage</read-permissions>
<lock-object>/actions/write</lock-object>
<kill-lock>/actions/manage</kill-lock>
<read-locks>/actions/read</read-locks>
<read-revision-metadata>/actions/read</read-revision-metadata>
<create-revision-metadata>/actions/write</create-revision-metadata>
<modify-revision-metadata>/actions/write</modify-revision-metadata>
<remove-revision-metadata>/actions/write</remove-revision-metadata>
<read-revision-content>/actions/read</read-revision-content>
<create-revision-content>/actions/write</create-revision-content>
<modify-revision-content>/actions/write</modify-revision-content>
<remove-revision-content>/actions/write</remove-revision-content>
<!-- Paths configuration -->
<userspath>/users</userspath>
<guestpath>guest</guestpath>
<filespath>/files</filespath>
<parameter name="dav">true</parameter>
<parameter name="standalone">true</parameter>
<!-- Roles definition -->
<role name="root">slideroles.basic.RootRole</role>
<role name="user">slideroles.basic.UserRole</role>
<role
name="guest">slideroles.basic.GuestRole</role>
<!-- Users management -->
<auto-create-users>true</auto-create-users>
<!-- Default properties mapping -->
<default-property
namespace="http://jakarta.apache.org/slide/" name="password" value=""
role="user"/>
</configuration>
<data>
<objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/">
<!-- Subject can be:
self "~"
all "nobody"
user "/users/john"
group "+/users/groupA"
role "root"
-->
<!-- Uncomment the following line to give all
permissions to
principals have the root role
-->
<!-- <permission action="/actions"
subject="root"/> -->
<permission action="/actions"
subject="/users/root"/>
<permission action="/actions/read"
subject="/users" inheritable="false"/>
<permission action="/actions/read"
subject="nobody" inheritable="false"/>
<!-- /users -->
<objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/users">
<permission action="/actions" subject="~"/>
<permission action="/actions"
subject="/users/guest" inheritable="true" negative="true"/>
<permission action="/actions/read"
subject="/users" inheritable="false"/>
<!-- Permission group example -->
<objectnode
classname="org.apache.slide.structure.GroupNode" uri="/users/groupA">
<objectnode
classname="org.apache.slide.structure.LinkNode" uri="/users/groupA/john"
linkedUri="/users/john"/>
<objectnode
classname="org.apache.slide.structure.LinkNode" uri="/users/groupA/root"
linkedUri="/users/root"/>
<objectnode
classname="org.apache.slide.structure.SubjectNode"
uri="/users/groupA/singleGroupMember"/>
</objectnode>
<!-- /users/root represents the administrator
-->
<objectnode
classname="slideroles.basic.RootRoleImpl" uri="/users/root">
<revision>
<property
namespace="http://jakarta.apache.org/slide/"
name="password">root</property>
</revision>
</objectnode>
<!-- /users/john represents an authenticated
user -->
<objectnode
classname="slideroles.basic.UserRoleImpl" uri="/users/john">
<revision>
<property
namespace="http://jakarta.apache.org/slide/"
name="password">john</property>
</revision>
</objectnode>
<!-- /users/guest represents an authenticated
or
unauthenticated guest user -->
<objectnode
classname="slideroles.basic.GuestRoleImpl" uri="/users/guest">
<revision>
<property
namespace="http://jakarta.apache.org/slide/" name="password"/>
</revision>
</objectnode>
</objectnode>
<objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions">
<objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/read"/>
<objectnode
classname="org.apache.slide.structure.ActionNode" uri="/actions/write"/>
<objectnode
classname="org.apache.slide.structure.ActionNode"
uri="/actions/manage"/>
</objectnode>
<objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/files">
<!-- ### Give read/write/manage permission to
guest ###
Uncomment the following line to give
permission to do all
actions on /files to guest
(unauthenticated users) -->
<!--
<permission action="/actions"
subject="/users/guest"/>
-->
<permission action="/actions/manage"
subject="/users/john"/>
<permission action="/actions/write"
subject="+/users/groupA"/>
<permission action="/actions/read"
subject="nobody"/>
</objectnode>
<!-- DeltaV: default history and workspace
paths -->
<objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/history"/>
<objectnode
classname="org.apache.slide.structure.SubjectNode" uri="/workspace"/>
<objectnode
classname="org.apache.slide.structure.SubjectNode"
uri="/workingresource"/>
</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">true</parameter>
<parameter
name="versioncontrol-exclude"></parameter>
<parameter
name="checkout-fork">forbidden</parameter>
<parameter
name="checkin-fork">forbidden</parameter>
</slide>
Any thoughts?
Thanks,
James