stefan      2004/07/16 09:37:56

  Modified:    proposals/jcrri/src/org/apache/slide/jcr/core Path.java
                        PropertyId.java PropertyImpl.java QName.java
                        RepositoryFactory.java RepositoryImpl.java
  Log:
  jcrri
  
  Revision  Changes    Path
  1.5       +5 -6      
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/Path.java
  
  Index: Path.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/Path.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Path.java 2 Jul 2004 16:25:02 -0000       1.4
  +++ Path.java 16 Jul 2004 16:37:56 -0000      1.5
  @@ -25,11 +25,11 @@
   
   import org.apache.slide.jcr.util.MalformedPathException;
   
  -import javax.jcr.PathNotFoundException;
   import javax.jcr.NamespaceException;
  +import javax.jcr.PathNotFoundException;
   import java.util.ArrayList;
  -import java.util.LinkedList;
   import java.util.Arrays;
  +import java.util.LinkedList;
   import java.util.regex.Matcher;
   import java.util.regex.Pattern;
   
  @@ -118,7 +118,6 @@
       }
   
       /**
  -     *
        * @param master
        * @param relPath
        * @param canonicalize
  @@ -606,7 +605,7 @@
            int index = getIndex();
            /** FIXME the [1] subscript should only be suppressed if the item
             * in question can't have same-name siblings.
  -          */
  +          */
            //if (index > 0) {
            if (index > 1) {
                sb.append('[');
  
  
  
  1.4       +0 -0      
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/PropertyId.java
  
  Index: PropertyId.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/PropertyId.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  
  
  
  1.16      +5 -2      
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/PropertyImpl.java
  
  Index: PropertyImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/PropertyImpl.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- PropertyImpl.java 9 Jul 2004 16:48:44 -0000       1.15
  +++ PropertyImpl.java 16 Jul 2004 16:37:56 -0000      1.16
  @@ -110,6 +110,7 @@
                persistentState = 
itemStateMgr.createPersistentPropertyState(thisState.getParentUUID(), 
thisState.getName());
            }
            // copy state from transient state
  +         persistentState.setDefinitionId(thisState.getDefinitionId());
            persistentState.setType(thisState.getType());
            persistentState.setValues(thisState.getValues());
            // make state persistent
  @@ -178,6 +179,7 @@
        * Same as <code>[EMAIL PROTECTED] Property#setValue(String)}</code> except that
        * this method takes a <code>QName</code> instead of a <code>String</code>
        * value.
  +     *
        * @param name
        * @throws ValueFormatException
        * @throws RepositoryException
  @@ -194,6 +196,7 @@
        * Same as <code>[EMAIL PROTECTED] Property#setValue(String[])}</code> except 
that
        * this method takes an array of <code>QName</code> instead of
        * <code>String</code> values.
  +     *
        * @param names
        * @throws ValueFormatException
        * @throws RepositoryException
  
  
  
  1.4       +3 -3      
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/QName.java
  
  Index: QName.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/QName.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- QName.java        22 Jun 2004 18:03:07 -0000      1.3
  +++ QName.java        16 Jul 2004 16:37:56 -0000      1.4
  @@ -99,7 +99,7 @@
        * @see #toString()
        */
       public static QName valueOf(String s) {
  -     if ((s == null) || s.equals("")) {
  +     if ("".equals(s) || s == null) {
            throw new IllegalArgumentException("invalid QName literal");
        }
   
  
  
  
  1.11      +0 -0      
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/RepositoryFactory.java
  
  Index: RepositoryFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/RepositoryFactory.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  
  
  
  1.14      +48 -12    
jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/RepositoryImpl.java
  
  Index: RepositoryImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/jcrri/src/org/apache/slide/jcr/core/RepositoryImpl.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- RepositoryImpl.java       13 Jul 2004 15:49:30 -0000      1.13
  +++ RepositoryImpl.java       16 Jul 2004 16:37:56 -0000      1.14
  @@ -30,6 +30,7 @@
   import org.apache.slide.jcr.core.state.ItemStateException;
   import org.apache.slide.jcr.core.state.PersistenceManager;
   import org.apache.slide.jcr.core.state.PersistentItemStateManager;
  +import org.apache.slide.jcr.core.version.VersionManager;
   import org.apache.slide.jcr.fs.BasedFileSystem;
   import org.apache.slide.jcr.fs.FileSystem;
   import org.apache.slide.jcr.fs.FileSystemException;
  @@ -84,10 +85,14 @@
       private static final String REP_NAME = "JCR 1.0 Reference Implementation";
       private static final String REP_VERSION = "0.1";
   
  +    // system root location
  +    public static QName SYSTEM_ROOT_NAME = new 
QName(NamespaceRegistryImpl.NS_JCR_URI, "system");
  +
       private String rootNodeUUID;
   
       private final NamespaceRegistryImpl nsReg;
       private final NodeTypeRegistry ntReg;
  +    private final VersionManager vMgr;
   
       // the master filesystem
       private final FileSystem repStore;
  @@ -259,6 +264,25 @@
   
        ntReg = NodeTypeRegistry.create(nsReg, new BasedFileSystem(repStore, 
"/nodetypes"));
   
  +     /**
  +      * todo implement 'System' workspace
  +      * - the system workspace should have the /jcr:system node
  +      * - versions, version history and node types should be reflected in
  +      *   this system workspace as content under /jcr:system
  +      * - all other workspaces should be dynamic workspaces based on
  +      *   this 'read-only' system workspace
  +      */
  +
  +     // FIXME version manager should not operate on default workspace
  +     // check system root node of system workspace
  +     TicketImpl sysTicket = getSystemTicket((WorkspaceDef) 
wspDefs.get(DEFAULT_WORKSPACE_NAME));
  +     if 
(!sysTicket.getRootNode().hasNode(SYSTEM_ROOT_NAME.toJCRName(sysTicket.getNamespaceResolver())))
 {
  +         
sysTicket.getRootNode().addNode(SYSTEM_ROOT_NAME.toJCRName(sysTicket.getNamespaceResolver()),
 NodeTypeRegistry.NT_UNSTRUCTURED.toJCRName(sysTicket.getNamespaceResolver()));
  +         sysTicket.getRootNode().save();
  +     }
  +     // init version manager
  +     vMgr = new VersionManager(getSystemTicket((WorkspaceDef) 
wspDefs.get(DEFAULT_WORKSPACE_NAME)));
  +
        // load repository properties
        repProps = new Properties();
        loadRepProps();
  @@ -266,7 +290,6 @@
        nodesCount = Long.parseLong(repProps.getProperty(STATS_NODE_COUNT_PROPERTY));
        propsCount = Long.parseLong(repProps.getProperty(STATS_PROP_COUNT_PROPERTY));
   
  -
        // get the system ticket for every defined workspace and
        // register as an event listener
        Iterator iter = wspDefs.values().iterator();
  @@ -287,6 +310,10 @@
        return ntReg;
       }
   
  +    VersionManager getVersionManager() {
  +     return vMgr;
  +    }
  +
       String getRootNodeUUID() {
        return rootNodeUUID;
       }
  @@ -382,6 +409,13 @@
        * Shuts down this repository
        */
       protected void shutdown() {
  +     // persist repository properties
  +     try {
  +         storeRepProps();
  +     } catch (RepositoryException e) {
  +         log.error("failed to persist repository properties", e);
  +     }
  +
        /**
         * todo free resources, shutdown workspaces, close tickets,
         * shutdown item state mgr's, persistence mgr's, etc.
  @@ -398,13 +432,6 @@
            ObservationManagerFactory obsMgr = (ObservationManagerFactory) it.next();
            obsMgr.dispose();
        }
  -
  -     // persist repository properties
  -     try {
  -         storeRepProps();
  -     } catch (RepositoryException e) {
  -         log.error("failed to persist repository properties", e);
  -     }
       }
   
       private void loadRepProps() throws RepositoryException {
  @@ -460,7 +487,6 @@
       }
   
       /**
  -     *
        * @return
        */
       public Properties getProperties() {
  @@ -468,12 +494,22 @@
       }
   
       /**
  -     *
        * @param key
        * @return
        */
       public String getProperty(String key) {
        return repProps.getProperty(key);
  +    }
  +
  +    /**
  +     * Returns the system root node (i.e. /jcr:system)
  +     *
  +     * @param ticket
  +     * @return
  +     * @throws RepositoryException
  +     */
  +    public Node getSystemRootNode(TicketImpl ticket) throws RepositoryException {
  +     return 
ticket.getRootNode().getNode(SYSTEM_ROOT_NAME.toJCRName(ticket.getNamespaceResolver()));
       }
   
       //-----------------------------------------------------------< Repository >
  
  
  

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

Reply via email to