Fantastic!  Thanks very much...

I think my setup is a bit odd, as I have checked and double checked my
Domain.xml file.  It's attached, if anyone wants to take a look!  Those
things appear in the children table because I put them there manually; I am
working thru each table and adding the tuples that are supposed to be there,
once I know what they are...

Heres the big one at the moment - on server startup, it throws a
NullPointerException when it tries to execute this query:

SELECT * FROM links WHERE linkto='/actions';

Presumably Slide is trying to determine what is linked to /actions...  but I
have no idea what that means!  What should be in that table?!

Cheers
Stu



-----Original Message-----
From: David Leahy [mailto:[EMAIL PROTECTED] 
Sent: 14 August 2003 17:46
To: Slide Users Mailing List
Subject: Re: JDBCDescriptorsStore setup

Hi Stuart,

For some reason you are missing the /actions/read, /actions/write, and 
/actions/manage ActionNodes from your objects table.  They should be 
created by the default Domain.xml -- and weirdly enough, these nodes 
appear in the children table (which describes the hierarchy), but not in 
the objects table!

I bet you could fix this by grabbing an original Domain.xml and seeing 
how those sub-nodes should be created; it must have been deleted or 
commented out or something in your Domain.xml file.

Also, you have no user nodes.  Examples of these (root, john) appear in 
the out-of-the-box Domain.xml.  You'll need a user node to be able to 
authenticate and to be authorized to see content.

Once these nodes are created in your persistent store by Domain.xml, 
then you don't need them in Domain.xml anymore, unless you want to start 
over.  OTOH, it doesn't do any harm if Slide tries to re-create these 
nodes on subsequent start ups.

Your 500 errors are coming from the missing action nodes, though, methinks.

                                Dave Leahy
                                Sandia National Labs
                                925-294-2678
                                [EMAIL PROTECTED]

Stuart MacPherson wrote:
> Here is the lowdown on my DB schema contents - I presume there is more
wrong
> with it that I know about - please advise!  It looks very empty to me...
> what else needs to go in there?  Anyone have any ideas why it's not
updated
> automatically?  Also, does anyone know which table JDBCContentStore puts
the
> documents in to?
> 
> 
> 
> Branches -    empty
> 
> Children -    uri                     childuri
>               /                       /users
>               /                       /tempaction
>               /                       /actions
>               /actions                /read
>               /actions                /write
>               /actions                /manage
> 
> label -       empty
> 
> links -       empty
> 
> locks -       empty (I presume this is ok at the mo)
> 
> objects -     uri                     classname
>               /
> org.apache.slide.structure.SubjectNode
>               /tempaction
> org.apache.slide.structure.ActionNode
>               /users          org.apache.slide.structure.SubjectNode
>               /actions
> org.apache.slide.structure.ActionNode
> 
> permissions - lots of stuff in this one - looks ok!
> 
> Property - empty
> 
> Revision - empty
> 
> Revisioncontent - empty
> 
> Revisions - empty
> 
> Workingrevision - empty
> 
> 
> 
> Thanks again in advance
> stu
> 
> 
> 
> -----Original Message-----
> From: Stuart MacPherson [mailto:[EMAIL PROTECTED] 
> Sent: 14 August 2003 15:44
> To: 'Slide Users Mailing List'
> Subject: JDBCDescriptorsStore setup
> 
> Hi everybody
> 
> I am having bother setting up JDBCDescriptorsStore...
> 
> I have had a flash of inspiration, and have ripped JDBCDescriptorsStore
> source to shreds trying to find out what makes it tick.  I have added in
> loads of debug code, and I have found that it is throwing a
> NullPointerException because it is trying to retrieve stuff from the
> database that isn't there...  I know I went the roundabout route to figure
> that out when it should have been obvious, but at least now I know!  
> 
> More specifically, it is trying to do the following statement:
> 
> SELECT * FROM links WHERE linkto='/actions';
> 
> I have had a look at the links table, and it's empty...  This is
definitely
> what is causing me grief!  
> 
> Now, I am know that the 'linkto' column should have uri's in it like
> '/actions', but what others?!  Also, I am guessing that there should also
be
> uri's in the 'link' column, and this is how Slide determines what uri's
are
> linked to each other ;o)
> 
> As my links table is empty...  what are the basics that need to go in
there?
> If I knew what '/actions' is linked to, I could do it myself!  I presume
> there is other stuff to go in there aswell tho...
> 
> I am working through all the things that need to be added to the DB (so
far
> I have sorted stuff relating to /actions in both the objects and children
> tables) and I am creating a patch SQL script, for anyone that experiences
> the same problems (I have seen a couple of similar queries on the forum,
but
> no solutions).
> 
> 
> 
> Many thanks
> Stuart
> 
> 
> 
> 
> -----Original Message-----
> From: Oliver Zeigermann [mailto:[EMAIL PROTECTED] 
> Sent: 14 August 2003 11:09
> To: [EMAIL PROTECTED]
> Subject: Re: weird error on file PUT
> 
> Hi Stuart,
> 
> I just compiled 1.0.16 slide-stores.jar including XMLDescriptorsStore 
> and additionally necessary files. Maybe this gets it working. Maybe you 
> will need a up to date copy of JDOM, just try.
> 
> Of course I can not guaranty for anything. If this does not work, don't 
> blame me ;)
> 
> Oliver
> 
> Stuart MacPherson wrote:
> 
> 
>>Hi Oliver
>>
>>Do you think it would be possible to pull XMLDescriptorsStore.java out of
>>the CVS, compile it, and then slot the class into the slide-stores.jar
> 
> file?
> 
>>I suppose that would just be a case of playing it by ear ;o)
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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="7" 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">
        </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.FileContentStore">
          <parameter name="rootpath">filestore/contentstore</parameter>
          <parameter name="version">false</parameter>
          <parameter name="resetBeforeStarting">false</parameter>
        </contentstore>
      </store>
      <scope match="/" store="memory" />
    </definition>
	-->
	
	
	<!-- XMLDescriptorsStore as found with help from Slide-Users list -->
	<!--
	<definition>
      <store name="file">
        <nodestore classname="slidestore.file.FileDescriptorsStoreNoVersioning">
			<parameter name="rootpath">nodestore</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.FileContentStore">
          <parameter name="rootpath">contentstore</parameter>
          <parameter name="version">false</parameter>
          <parameter name="resetBeforeStarting">false</parameter>
        </contentstore>
      </store>
      <scope match="/" store="file" />
    </definition>
	-->	
	
	
	<definition>
  <store name="jdbc">
    <nodestore classname="slidestore.mysql.MySQLDescriptorsStore">
     <parameter name="driver">org.gjt.mm.mysql.Driver</parameter>
     <parameter name="url">mysql://localhost:3306/slide</parameter>
	 <parameter name="user">slideuser</parameter>
	 <parameter name="password">slidepass</parameter>
     <parameter name="jdbcversion">2</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.mysql.MySQLContentStore">
     <parameter name="driver">org.gjt.mm.mysql.Driver</parameter>
     <parameter name="url">mysql://localhost:3306/slide</parameter>
	 <parameter name="user">slideuser</parameter>
	 <parameter name="password">slidepass</parameter>
     <parameter name="jdbcversion">2</parameter>
    </contentstore>
	
	<!--
    <contentstore classname="slidestore.reference.FileContentStore">
      <parameter name="rootpath">files</parameter>
    </contentstore>
	-->
  </store>
  <scope match="/" store="jdbc"/>
</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>
	
		<content-interceptor class="docEdge.CustomContentInterceptor"/>

      <!-- 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 name="foo" namespace="nsfoo/" value="bar"
       role="user"/>
      <default-property name="password" namespace="slide/" 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 name="password">root</property>
            </revision>
          </objectnode>
          
          <!-- /users/john represents an authenticated user -->
          
          <objectnode classname="slideroles.basic.UserRoleImpl" 
           uri="/users/john">
            <revision>
              <property 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 name="password"></property>
            </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>
        
      </objectnode>
	  
	</data>
    
  </namespace>
  
</slide>

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

Reply via email to