stephan     2002/07/04 10:32:41

  Modified:    src/scratchpad/src/org/apache/cocoon/acting
                        SourceUploadAction.java
               src/scratchpad/src/org/apache/cocoon/components/repository/impl
                        slide.xconf
               src/scratchpad/src/org/apache/cocoon/components/source/impl
                        SlideSourceFactory.java
               src/scratchpad/webapp/samples/slide rdf2html4content.xsl
                        rdf2html4properties.xsl
  Added:       src/scratchpad/src/org/apache/cocoon/components/repository
                        Principal.java PrincipalGroup.java
                        PrincipalProvider.java Repository.java
                        principalprovider.roles
               src/scratchpad/src/org/apache/cocoon/components/repository/impl
                        SlidePrincipalProvider.java SlideRepository.java
                        slidepp.xconf
  Removed:     src/scratchpad/src/org/apache/cocoon/components/repository
                        SourceRepository.java
               src/scratchpad/src/org/apache/cocoon/components/repository/impl
                        SlideSourceRepository.java
  Log:
  Some classes for user management of repositories added.
  SourceRepository to Repository renamed since the source resolving
  went totally to the SlideSourceFactory.
  
  Revision  Changes    Path
  1.3       +1 -3      
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/acting/SourceUploadAction.java
  
  Index: SourceUploadAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/acting/SourceUploadAction.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SourceUploadAction.java   2 Jul 2002 16:54:25 -0000       1.2
  +++ SourceUploadAction.java   4 Jul 2002 17:32:41 -0000       1.3
  @@ -143,8 +143,6 @@
                   else
                       uri = uri+"/"+filename;
   
  -                System.out.println("uri="+uri);
  -
                   Source source = resolver.resolveURI(uri);
   
                   if (source instanceof RestrictableSource)
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/Principal.java
  
  Index: Principal.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.repository;
  
  /**
   * This class represents a principal. The implementation is based
   * on the interface java.security.Principal.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Stephan Michels</a>
   * @version $Id: Principal.java,v 1.1 2002/07/04 17:32:41 stephan Exp $
   */
  public class Principal implements java.security.Principal {
  
      private String name = null;
      private String role = null;
      private String password = null;
  
      public Principal(String name) {
          this.name = name;
      }
  
      public Principal(String name, String password) {
          this.name = name;
          this.password = password;
      }
  
      public Principal(String name, String role, String password) {
          this.name = name;
          this.role = role;
          this.password = password;
      } 
  
      /**
       * Returns the name of the principal
       *
       * @return Name of principal
       */
      public String getName() {
          return this.name;
      }
  
      /**
       * Sets the name
       *
       * @param name Name of principal
       */
      public void setName(String name) {
          this.name = name;
      }
  
      /**
       * Returns the role of the principal
       *
       * @return Role of the principal
       */
      public String getRole() {
          return this.role;
      }
    
      /**
       * Sets the role of the user
       *
       * @param Role of the principal
       */
      public void setRole(String role) {
          this.role = role;
      }
  
      /**
       * Returns the password of the principal
       *
       * @return Password of the principal
       */
      public String getPassword() {
          return this.password;
      }
  
      /**
       * Sets the password of the user
       *
       * @param password Password of the principal
       */
      public void setPassword(String password) {
          this.password = password;
      }
  
      /** 
       * Compares this principal to the specified object. Returns true 
       * if the object passed in matches the principal.
       *
       * @param another Principal to compare with.
       * @return True if the principal passed in is the same as that 
       *         encapsulated by this principal, and false otherwise.
       */
      public boolean equals(Object another) {
          if (another instanceof java.security.Principal)
              return this.name.equals(((java.security.Principal)another).getName());
          return false;
      }
  
      /**
       * Returns a string representation of this principal.
       *
       * @return A string representation of this principal.
       */
      public String toString() {
          return this.name;
      }
  
      /**
       * Returns a hashcode for this principal.
       *
       * @return A hashcode for this principal.
       */
      public int hashCode() {
          return this.name.hashCode();
      }
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/PrincipalGroup.java
  
  Index: PrincipalGroup.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.repository;
  
  /**
   * This class represents a group of principals. 
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Stephan Michels</a>
   * @version $Id: PrincipalGroup.java,v 1.1 2002/07/04 17:32:41 stephan Exp $
   */
  public class PrincipalGroup {
  
      private String name = null;
  
      public PrincipalGroup(String name) {
          this.name = name;
      }
  
      /**
       * Returns the name of the group.
       *
       * @return Name of the group.
       */
      public String getName() {
          return this.name = name;
      }
  
      /**
       * Sets the name of the group.
       * 
       * @param Name of the group.
       */
      public void setName(String name) {
          this.name = name;
      }
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/PrincipalProvider.java
  
  Index: PrincipalProvider.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.repository;
  
  import org.apache.avalon.framework.component.Component;
  
  import org.apache.cocoon.ProcessingException;
  
  import java.util.Enumeration;
  
  /**
   * Manager for principals and grop of users. The implementation
   * is similar to the classes java.security.* .
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Stephan Michels</a>
   * @version $Id: PrincipalProvider.java,v 1.1 2002/07/04 17:32:41 stephan Exp $
   */
  public interface PrincipalProvider extends Component {
  
      /** Role for the component */
      public final static String ROLE = 
"org.apache.cocoon.components.repository.PrincipalProvider";
  
      /**
       * Return all users.
       *
       * @param caller The principal, which should do the operation
       * @return List of all principals
       */
      public Principal[] getPrincipals(Principal caller) 
          throws ProcessingException;
  
      /**
       * Add or modify a given principal.
       *
       * @param caller The principal, which should do the operation.
       * @param principal The Principal, which should be add/modified.
       */
      public void addPrincipal(Principal caller, Principal principal) 
          throws ProcessingException;
  
      /**
       * Return all groups.
       *
       * @param caller The principal, which should do the operation.
       * @return List of all groups.
       */
      public PrincipalGroup[] getPrincipalGroups(Principal caller) 
          throws ProcessingException;
  
      /**
       * Add or modify a given group.
       *
       * @param caller The principal, which should do the operation.
       * @param group The group, which shoud be add/modified.
       */
      public void addPrincipalGroup(Principal caller, PrincipalGroup group) 
          throws ProcessingException;
  
      /**
       * Adds the specified member to the group.
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @param user The principal to add to this group.
       */
      public void addMember(Principal caller, PrincipalGroup group, Principal user) 
          throws ProcessingException;
  
      /** 
       * Returns true if the passed principal is a member of the group. 
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @param member The principal whose membership is to be checked.
       * @return True if the principal is a member of this group, false otherwise.
       */
      public boolean isMember(Principal caller, PrincipalGroup group, Principal 
member) 
          throws ProcessingException;
      
      /** 
       * Returns an array of the members in the group. The 
       * returned objects are instances of Principal 
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @return An array of the group members.
       */
      public Principal[] members(Principal caller, PrincipalGroup group) 
          throws ProcessingException;
  
      /**
       * Removes the specified member from the group.
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @param principal The principal to remove from this group.
       */
      public void removeMember(Principal caller, PrincipalGroup group, Principal 
principal) 
          throws ProcessingException;
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/Repository.java
  
  Index: Repository.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.repository;
  
  import org.apache.avalon.framework.component.Component;
  
  /**
   * This interface represents a repository from a CMS.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Stephan Michels</a>
   * @version $Id: Repository.java,v 1.1 2002/07/04 17:32:41 stephan Exp $
   */
  public interface Repository extends Component {
  
      /** Role for the component */
      public final static String ROLE = 
"org.apache.cocoon.components.repository.SourceRepository";
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/principalprovider.roles
  
  Index: principalprovider.roles
  ===================================================================
  <?xml version="1.0"?>
  <xroles xpath="/role-list" 
unless="role[@name='org.apache.cocoon.components.repository.PrincipalProvider']">
    <role name="org.apache.cocoon.components.repository.PrincipalProvider"
          shorthand="principalprovider"
          default-class="org.apache.cocoon.components.ExtendedComponentSelector"/>
  </xroles>
  
  
  
  1.8       +1 -1      
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/impl/slide.xconf
  
  Index: slide.xconf
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/impl/slide.xconf,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- slide.xconf       1 Jul 2002 18:57:46 -0000       1.7
  +++ slide.xconf       4 Jul 2002 17:32:41 -0000       1.8
  @@ -11,7 +11,7 @@
               default="slide">
   
     <!-- Default implementation via Jakarta Slide -->
  -  <component-instance 
class="org.apache.cocoon.components.repository.impl.SlideSourceRepository" 
  +  <component-instance 
class="org.apache.cocoon.components.repository.impl.SlideRepository" 
                         name="slide"
                         logger="core.repositories.slide"
                         file="context://samples/slide/slide.xconf"/>
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/impl/SlidePrincipalProvider.java
  
  Index: SlidePrincipalProvider.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.repository.impl;
  
  import org.apache.avalon.framework.activity.Initializable;
  import org.apache.avalon.framework.component.Component;
  import org.apache.avalon.framework.component.ComponentException;
  import org.apache.avalon.framework.component.ComponentManager;
  import org.apache.avalon.framework.component.Composable;
  import org.apache.avalon.framework.component.ComponentSelector;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  
  import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.components.repository.Principal;
  import org.apache.cocoon.components.repository.PrincipalGroup;
  import org.apache.cocoon.components.repository.PrincipalProvider;
  import org.apache.cocoon.components.repository.Repository;
  import org.apache.cocoon.components.repository.impl.SlideRepository;
  
  import org.apache.slide.authenticate.CredentialsToken;
  import org.apache.slide.authenticate.SecurityToken;
  //import org.apache.slide.common.EmbeddedDomain;
  import org.apache.slide.common.NamespaceAccessToken;
  import org.apache.slide.common.NamespaceConfig;
  import org.apache.slide.common.SlideException;
  import org.apache.slide.common.SlideToken;
  import org.apache.slide.common.SlideTokenImpl;
  import org.apache.slide.content.Content;
  import org.apache.slide.content.NodeProperty;
  //import org.apache.slide.content.NodeRevisionContent;
  import org.apache.slide.content.NodeRevisionDescriptor;
  import org.apache.slide.content.NodeRevisionDescriptors;
  //import org.apache.slide.content.RevisionContentNotFoundException;
  import org.apache.slide.content.RevisionDescriptorNotFoundException;
  //import org.apache.slide.content.RevisionNotFoundException;
  import org.apache.slide.content.NodeRevisionNumber;
  import org.apache.slide.lock.Lock;
  //import org.apache.slide.lock.NodeLock;
  //import org.apache.slide.lock.ObjectLockedException;
  import org.apache.slide.macro.Macro;
  //import org.apache.slide.security.AccessDeniedException;
  import org.apache.slide.security.NodePermission;
  import org.apache.slide.security.Security;
  import org.apache.slide.structure.GroupNode;
  import org.apache.slide.structure.ObjectNode;
  import org.apache.slide.structure.ObjectNotFoundException;
  import org.apache.slide.structure.Structure;
  import org.apache.slide.structure.SubjectNode;
  
  import java.util.Enumeration;
  import java.util.Vector;
  
  /**
   * Manger for principals and groups of principals
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Stephan Michels</a>
   * @version $Id: SlidePrincipalProvider.java,v 1.1 2002/07/04 17:32:41 stephan Exp $
   */
  public class SlidePrincipalProvider extends AbstractLogEnabled 
      implements PrincipalProvider, Composable, Configurable, Initializable{
  
      /** The component manager instance */
      private ComponentManager manager = null;
  
      /** Namespace access token. */
      private NamespaceAccessToken nat;
  
      /** Configuration of namespace */
      private NamespaceConfig config;
  
      /** Structure helper. */
      private Structure structure;
  
      /** Content helper. */
      private Content content;
  
      /** Security helper. */
      private Security security;
  
      /** Lock helper. */
      private Lock lock;
  
      /** Macro helper. */
      private Macro macro;
  
      /** Slide token. */
      private SlideToken slidetoken;
  
      private String repository = null;
      private String namespace = null;
  
      /*public SlidePrincipalProvider(NamespaceAccessToken nat, SlideToken slidetoken) 
{
  
          this.config = this.nat.getNamespaceConfig();
          this.structure = nat.getStructureHelper();
          this.content = nat.getContentHelper();
          this.security = nat.getSecurityHelper();
          this.lock = nat.getLockHelper();
          this.macro = nat.getMacroHelper();
  
          this.slidetoken = slidetoken;
      }*/
  
      /**
       * Set the current <code>ComponentManager</code> instance used by this
       * <code>Composable</code>.
       */
      public void compose(ComponentManager manager) throws ComponentException {
          this.manager = manager;
      }
  
      /**
       * Pass the Configuration to the Configurable class. This method must 
       * always be called after the constructor and before any other method.
       *
       * @param configuration the class configurations.
       */
      public void configure(Configuration configuration)
          throws ConfigurationException {
  
          this.repository = configuration.getAttribute("repository", "slide");
          this.namespace = configuration.getAttribute("namespace", "slide");
      }
  
      /**
       * Initialialize the component. Initialization includes
       * allocating any resources required throughout the
       * components lifecycle.
       *
       * @throws Exception if an error occurs
       */
      public void initialize() throws Exception {
  
          ComponentSelector repositories = null;
          Repository repository = null;
          try {
              repositories = 
(ComponentSelector)this.manager.lookup(Repository.ROLE+"Selector");
  
              repository = (Repository)repositories.select(this.repository);
  
              if (!(repository instanceof SlideRepository)) {
                  getLogger().error("Can't get Slide repository");
                  return ;
              }
  
              SlideRepository sliderepository =
                  (SlideRepository)repository;
  
              if (this.namespace==null)
                  this.namespace = sliderepository.getDomain().getDefaultNamespace();
  
              if (sliderepository.getDomain().getNamespaceToken(namespace)==null)
                  throw new ProcessingException("Repository with the namespace 
'"+this.namespace+"' couldn't be found");
  
              this.nat = sliderepository.getDomain().getNamespaceToken(this.namespace);
              this.structure = nat.getStructureHelper();
              this.content = nat.getContentHelper();
              this.security = nat.getSecurityHelper();
              this.lock = nat.getLockHelper();
              this.macro = nat.getMacroHelper();
  
          } catch (ComponentException ce) {
              getLogger().error("Could not lookup for component.", ce);
          } finally {
              if ((repository!=null) && (repository instanceof Component))
                  repositories.release((Component)repository);
              repository = null;
  
              if (repositories!=null)
                  this.manager.release(repositories);
              repositories = null;
          }
      }
  
      /**
       * Return all users.
       *
       * @param caller The principal, which should do the operation
       * @return List of all principals
       */
      public Principal[] getPrincipals(Principal caller) throws ProcessingException {
          try {
              SlideToken slidetoken = new SlideTokenImpl(new CredentialsToken(caller));
  
              String userspath = config.getUsersPath();
  
              ObjectNode userobjects = structure.retrieve(slidetoken, userspath);
  
              Vector principals = new Vector();
  
              String user;
              ObjectNode userobject;
              for(Enumeration children = userobjects.enumerateChildren(); 
children.hasMoreElements();) {
                  user = (String)children.nextElement();
  
                  userobject = structure.retrieve(slidetoken, user);
  
                  if (!(userobject instanceof GroupNode)) {
                      String name = userobject.getUri().substring(userspath.length(), 
userobject.getUri().length()-userspath.length());
                      
                      // FIXME the CVS code from slide does only implement getRoles
                      /*Enumeration roles = this.security.getRoles(user);
                      String role = null;
                      if (roles.hasMoreElements())
                          role = (String)children.nextElement();*/
  
                      NodeRevisionDescriptors revisionDescriptors = 
                          content.retrieve(this.slidetoken, user);
  
                      // Retrieve latest revision descriptor
                      NodeRevisionDescriptor revisionDescriptor = 
this.content.retrieve(slidetoken, revisionDescriptors);
                      String password = 
revisionDescriptor.getProperty("password").getValue().toString();
  
                      principals.add(new Principal(name, /*role,*/ password));
                  }
              }
  
              Principal[] principalArray = new Principal[principals.size()];
              int i=0;
              for(Enumeration e = principals.elements(); e.hasMoreElements() ; i++) 
                  principalArray[i] = (Principal)e.nextElement();
  
              return principalArray;
          } catch (SlideException se) {
              throw new ProcessingException(se);
          }
      }
  
      /**
       * Add or modify a given principal.
       *
       * @param caller The principal, which should do the operation.
       * @param principal The Principal, which should be add/modified.
       */
      public void addPrincipal(Principal caller, Principal principal) throws 
ProcessingException {
      }
  
      /**
       * Return all groups.
       *
       * @param caller The principal, which should do the operation.
       * @return List of all groups.
       */
      public PrincipalGroup[] getPrincipalGroups(Principal caller) throws 
ProcessingException {
          try {
              SlideToken slidetoken = new SlideTokenImpl(new CredentialsToken(caller));
  
              String userspath = config.getUsersPath();
  
              ObjectNode userobjects = structure.retrieve(slidetoken, userspath);
  
              Vector principalgroups = new Vector();
  
              String group;
              ObjectNode groupobject;
              for(Enumeration children = userobjects.enumerateChildren(); 
children.hasMoreElements();) {
                  group = (String)children.nextElement();
  
                  groupobject = structure.retrieve(slidetoken, group);
  
                  if (groupobject instanceof GroupNode) {
                      String name = groupobject.getUri().substring(userspath.length(), 
groupobject.getUri().length()-userspath.length());
  
                      principalgroups.add(new PrincipalGroup(name));
                  }
              }
  
              PrincipalGroup[] principalgroupArray = new 
PrincipalGroup[principalgroups.size()];
              int i=0;
              for(Enumeration e = principalgroups.elements(); e.hasMoreElements() ; 
i++)
                  principalgroupArray[i] = (PrincipalGroup)e.nextElement();
  
              return principalgroupArray;
          } catch (SlideException se) {
              throw new ProcessingException(se);
          }
      }
  
      /**
       * Add or modify a given group.
       *
       * @param caller The principal, which should do the operation.
       * @param group The group, which shoud be add/modified.
       */
      public void addPrincipalGroup(Principal caller, PrincipalGroup group) throws 
ProcessingException {
      }
  
      /**
       * Adds the specified member to the group.
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @param user The principal to add to this group.
       */
      public void addMember(Principal caller, PrincipalGroup group, Principal user) 
throws ProcessingException {
      }
  
      /** 
       * Returns true if the passed principal is a member of the group. 
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @param member The principal whose membership is to be checked.
       * @return True if the principal is a member of this group, false otherwise.
       */
      public boolean isMember(Principal caller, PrincipalGroup group, Principal 
member) throws ProcessingException {
          return false;
      }
  
      /** 
       * Returns an enumeration of the members in the group. The returned objects are 
instances of Principal 
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @return An enumeration of the group members.
       */
      public Principal[] members(Principal caller, PrincipalGroup group) throws 
ProcessingException {
          return null;
      }
  
      /**
       * Removes the specified member from the group.
       *
       * @param caller The principal, which should do the operation
       * @param group The given group.
       * @param principal The principal to remove from this group.
       */
      public void removeMember(Principal caller, PrincipalGroup group, Principal 
principal) throws ProcessingException {
      }
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/impl/SlideRepository.java
  
  Index: SlideRepository.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.repository.impl;
  
  import org.apache.avalon.excalibur.xml.Parser;
  import org.apache.avalon.framework.activity.Initializable;
  import org.apache.avalon.framework.component.Component;
  import org.apache.avalon.framework.component.ComponentException;
  import org.apache.avalon.framework.component.ComponentManager;
  import org.apache.avalon.framework.component.Composable;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
  import org.apache.avalon.framework.context.Context;
  import org.apache.avalon.framework.context.ContextException;
  import org.apache.avalon.framework.context.Contextualizable;
  import org.apache.avalon.framework.logger.LogEnabled;
  import org.apache.avalon.framework.logger.Logger;
  import org.apache.avalon.framework.thread.ThreadSafe;
  
  //import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.components.repository.Repository;
  
  import org.apache.excalibur.source.Source;
  import org.apache.excalibur.source.SourceException;
  import org.apache.excalibur.source.SourceResolver;
  
  //import org.apache.slide.authenticate.CredentialsToken;
  import org.apache.slide.common.EmbeddedDomain;
  //import org.apache.slide.common.SlideTokenImpl;
  
  import org.xml.sax.InputSource;
  
  //import java.util.Map;
  
  /**
   * The class represent a manger for slide repositories
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Stephan Michels</a>
   * @version $Id: SlideRepository.java,v 1.1 2002/07/04 17:32:41 stephan Exp $
   */
  public class SlideRepository implements Repository, ThreadSafe, 
                                          Composable, Configurable, LogEnabled, 
Initializable {
  
      /** The component manager instance */
      protected ComponentManager manager = null;
  
      private EmbeddedDomain domain = new EmbeddedDomain();
      private Logger logger;
      private String file;
  
      /**
       * Provide component with a logger.
       *
       * @param logger the logger
       */
      public void enableLogging(Logger logger) {
          this.logger = logger;
          domain.setLogger(new SlideLoggerAdapter(this.logger));
      }
  
      /**
       * Set the current <code>ComponentManager</code> instance used by this
       * <code>Composable</code>.
       */
      public void compose(ComponentManager manager) throws ComponentException {
          this.manager = manager;
      }
  
      /**
       * Pass the Configuration to the Configurable class. This method must 
       * always be called after the constructor and before any other method.
       *
       * @param configuration the class configurations.
       */
      public void configure(Configuration configuration)
          throws ConfigurationException {
  
          this.file = configuration.getAttribute("file", "WEB-INF/slide.xconf");
      }
  
      /**
       * Initialialize the component. Initialization includes
       * allocating any resources required throughout the
       * components lifecycle.
       *
       * @throws Exception if an error occurs
       */
      public void initialize() throws Exception {
          SourceResolver resolver = null;
          Parser parser = null;
          Source source = null;
          Configuration configuration = null;
  
          try {
              resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
  
              parser = (Parser)this.manager.lookup(Parser.ROLE);
              SAXConfigurationHandler confighandler = new SAXConfigurationHandler();
  
              source = resolver.resolveURI(this.file);
  
              parser.parse(new InputSource(source.getInputStream()), confighandler);
  
              configuration = confighandler.getConfiguration();
  
          } catch (Exception e) {
              this.logger.error("Could not load slide configuration file", e);
              return;
          } finally {
              if (source!=null)
                  resolver.release(source);
              if (parser!=null) 
                  this.manager.release(parser);
              if (resolver!=null)
                  this.manager.release(resolver);
          }
  
          try {
              domain.setDefaultNamespace(configuration.getAttribute("default", 
"slide"));
  
              this.logger.info("Initializing Domain");
  
              Configuration[] namespaceDefinitions = 
configuration.getChildren("namespace");
  
              for (int i=0; i<namespaceDefinitions.length; i++) {
  
                  // Initializes a new namespace based on the given configuration data.
      
                  this.logger.info("Initializing namespace : "
                                   + namespaceDefinitions[i].getAttribute("name"));
  
                  String name = namespaceDefinitions[i].getAttribute("name");
  
                  Configuration namespaceDefinition =
                        namespaceDefinitions[i].getChild("definition");
  
                  Configuration namespaceConfigurationDefinition =
                      namespaceDefinitions[i].getChild("configuration");
  
                  Configuration namespaceBaseDataDefinition =
                      namespaceDefinitions[i].getChild("data");
  
                  domain.addNamespace(name, new 
SlideLoggerAdapter(this.logger.getChildLogger(name)),
                                            new 
SlideConfigurationAdapter(namespaceDefinition),
                                            new 
SlideConfigurationAdapter(namespaceConfigurationDefinition),
                                            new 
SlideConfigurationAdapter(namespaceBaseDataDefinition));
  
                  this.logger.info("Namespace configuration complete");
              }
          } catch (ConfigurationException ce) {
              this.logger.error("Could not configure Slide domain", ce);
              return;
          }
      }
  
      public EmbeddedDomain getDomain() {
          return this.domain;
      }
  
      /**
       * Returns the user manager by a given admin user.
       */
      /*public UserManager getUserManager(User admin) throws ProcessingException {
          return new 
SlideUserManager(domain.getNamespaceToken(domain.getDefaultNamespace()), 
                     new SlideTokenImpl(new CredentialsToken(admin.getPrincipal())));
      }*/
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/repository/impl/slidepp.xconf
  
  Index: slidepp.xconf
  ===================================================================
  <?xml version="1.0"?>
  <xconf xpath="/cocoon" 
unless="component[@role='org.apache.cocoon.components.repository.PrincipalProviderSelector']">
  
   <!-- Principal providers:
     The principal providers handles principals/users, they should use for user
     management,
     -->
   <component role="org.apache.cocoon.components.repository.PrincipalProviderSelector" 
              class="org.apache.cocoon.components.ExtendedComponentSelector"
              logger="core.repositories" default="slide">
  
    <!-- Default implementation via Jakarta Slide -->
    <component-instance 
class="org.apache.cocoon.components.repository.impl.SlidePrincipalProvider" 
                        name="slide" logger="core.repositories.slide"
                        repository="slide" namespace="slide"/>
   </component>
  </xconf>
  
  
  
  1.3       +22 -22    
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/source/impl/SlideSourceFactory.java
  
  Index: SlideSourceFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/components/source/impl/SlideSourceFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SlideSourceFactory.java   2 Jul 2002 16:54:25 -0000       1.2
  +++ SlideSourceFactory.java   4 Jul 2002 17:32:41 -0000       1.3
  @@ -70,8 +70,8 @@
   import org.apache.avalon.framework.thread.ThreadSafe;
   
   import org.apache.cocoon.Constants;
  -import org.apache.cocoon.components.repository.SourceRepository;
  -import org.apache.cocoon.components.repository.impl.SlideSourceRepository;
  +import org.apache.cocoon.components.repository.Repository;
  +import org.apache.cocoon.components.repository.impl.SlideRepository;
   import org.apache.cocoon.components.source.RestrictableSource;
   import org.apache.cocoon.components.source.VersionableSource;
   import org.apache.cocoon.components.source.helpers.SourceCredential;
  @@ -141,7 +141,7 @@
               locationParameters = new SourceParameters();
           }
   
  -        String repository = locationParameters.getParameter("cocoon-repository", 
null);
  +        String repositoryname = 
locationParameters.getParameter("cocoon-repository", null);
           String namespace = 
locationParameters.getParameter("cocoon-repository-namespace", null);
           String principal = 
locationParameters.getParameter("cocoon-source-principal", "guest");
           String password = locationParameters.getParameter("cocoon-source-password", 
null);
  @@ -157,40 +157,40 @@
           if (location.length()==0)
             location = "/";
   
  -        ComponentSelector sourcerepositories = null;
  -        SourceRepository sourcerepository = null;
  +        ComponentSelector repositories = null;
  +        Repository repository = null;
           try {
  -            sourcerepositories = 
(ComponentSelector)this.manager.lookup(SourceRepository.ROLE+"Selector");
  +            repositories = 
(ComponentSelector)this.manager.lookup(Repository.ROLE+"Selector");
   
  -            sourcerepository = 
(SourceRepository)sourcerepositories.select(repository);
  +            repository = (Repository)repositories.select(repositoryname);
   
  -            if (!(sourcerepository instanceof SlideSourceRepository)) {
  -                getLogger().error("Can't get Slide source repository"); 
  +            if (!(repository instanceof SlideRepository)) {
  +                getLogger().error("Can't get Slide repository"); 
                   return null;
               }
   
  -            SlideSourceRepository slidesourcerepository = 
  -                (SlideSourceRepository)sourcerepository;
  +            SlideRepository sliderepository = 
  +                (SlideRepository)repository;
   
               if (namespace==null)
  -                namespace = slidesourcerepository.getDomain().getDefaultNamespace();
  +                namespace = sliderepository.getDomain().getDefaultNamespace();
   
  -            if 
(slidesourcerepository.getDomain().getNamespaceToken(namespace)==null)
  +            if (sliderepository.getDomain().getNamespaceToken(namespace)==null)
                   throw new SourceException("Repository with the namespace 
'"+namespace+"' couldn't be found");
   
  -            return new 
SlideSource(slidesourcerepository.getDomain().getNamespaceToken(namespace), 
  +            return new 
SlideSource(sliderepository.getDomain().getNamespaceToken(namespace), 
                                      protocol, location, credential, revision, 
branch);
   
           } catch (ComponentException ce) {
               getLogger().error("Could not lookup for component.", ce);
           } finally {
  -            if ((sourcerepository!=null) && (sourcerepository instanceof Component))
  -                sourcerepositories.release((Component)sourcerepository);
  -            sourcerepository = null;
  -
  -            if (sourcerepositories!=null)
  -                this.manager.release(sourcerepositories);
  -            sourcerepositories = null;
  +            if ((repository!=null) && (repository instanceof Component))
  +                repositories.release((Component)repository);
  +            repository = null;
  +
  +            if (repositories!=null)
  +                this.manager.release(repositories);
  +            repositories = null;
           }
   
           return null;
  
  
  
  1.2       +6 -4      
xml-cocoon2/src/scratchpad/webapp/samples/slide/rdf2html4content.xsl
  
  Index: rdf2html4content.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/webapp/samples/slide/rdf2html4content.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- rdf2html4content.xsl      2 Jul 2002 23:42:39 -0000       1.1
  +++ rdf2html4content.xsl      4 Jul 2002 17:32:41 -0000       1.2
  @@ -128,7 +128,7 @@
               <table width="100%" cellspacing="0" cellpadding="5" align="center">
                <font size="+0" face="arial,helvetica,sanserif" color="#000000">
                 <tr>
  -               <td align="left"><b>Child</b></td>
  +               <td align="left"><b>Filename</b></td>
                  <td align="left"><b>Type</b></td>
                  <td align="left"><b>Size</b></td>
                  <td align="left"><b>Last Modified</b></td>
  @@ -142,11 +142,12 @@
                     ><xsl:value-of select="@rdf:resource"/></a>
                   </td>
                   <xsl:variable name="location"><xsl:value-of 
select="@rdf:resource"/></xsl:variable>
  -                <td align="left"></td>
                   <td align="left"><xsl:value-of
  -                  
select="/rdf:RDF/rdf:Description[@rdf:about=$location]/dav:getcontentlength"/></td>
  +                  
select="/rdf:RDF/rdf:Description[@rdf:about=$location]/source:mime-type"/></td>
                   <td align="left"><xsl:value-of
  -                  
select="/rdf:RDF/rdf:Description[@rdf:about=$location]/dav:etlastmodified"/></td>
  +                  
select="/rdf:RDF/rdf:Description[@rdf:about=$location]/source:contentlength"/></td>
  +                <td align="left"><xsl:value-of
  +                  
select="/rdf:RDF/rdf:Description[@rdf:about=$location]/dav:getlastmodified"/></td>
                   <td align="right">
                    <form action="" method="post">
                    <input type="hidden" name="uri" value="{../../@rdf:about}"/>
  @@ -163,6 +164,7 @@
                    <input name="filename" type="text" size="25" maxlength="40"/>
                   </td>
                   <td align="left" colspan="3">
  +                 File:
                    <input type="file" name="file" size="30" />
                   </td>
                   <td align="right">
  
  
  
  1.3       +2 -2      
xml-cocoon2/src/scratchpad/webapp/samples/slide/rdf2html4properties.xsl
  
  Index: rdf2html4properties.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/webapp/samples/slide/rdf2html4properties.xsl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- rdf2html4properties.xsl   2 Jul 2002 23:42:39 -0000       1.2
  +++ rdf2html4properties.xsl   4 Jul 2002 17:32:41 -0000       1.3
  @@ -143,7 +143,7 @@
                  <td align="left"><xsl:value-of select="local-name(.)"/></td>
                  <td align="left"><xsl:value-of select="."/></td>
                  <td align="right">
  -                <form action="" method="get">
  +                <form action="" method="post">
                    <input type="hidden" name="uri" value="{../@rdf:about}"/>
                    <input type="hidden" name="namespace" value="{namespace-uri()}"/>
                    <input type="hidden" name="name" value="{local-name()}"/>
  @@ -155,7 +155,7 @@
                </xsl:for-each>
   
                <tr>
  -              <form action="" method="get">
  +              <form action="" method="post">
                  <input type="hidden" name="uri" value="{@rdf:about}"/>
                   <td align="left">
                    <input name="namespace" type="text" size="25" maxlength="40"/>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to