You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by lu...@apache.org on 2004/11/24 17:20:42 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/transaction SlideXid.java

luetzkendorf    2004/11/24 08:20:42

  Modified:    src/share/org/apache/slide/store BindingStore.java
                        ExtendedStore.java
               src/share/org/apache/slide/search/basic
                        ComparableResourceImpl.java
               src/share/org/apache/slide/content ContentImpl.java
               src/share/org/apache/slide/common NamespaceConfig.java
                        UriPath.java
               src/share/org/apache/slide/structure ObjectNode.java
               src/share/org/apache/slide/search SearchImpl.java
               src/share/org/apache/slide/security SecurityImpl.java
               src/share/org/apache/slide/transaction SlideXid.java
  Log:
  some cleanup and optimizations
  
  Revision  Changes    Path
  1.6       +5 -5      jakarta-slide/src/share/org/apache/slide/store/BindingStore.java
  
  Index: BindingStore.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/store/BindingStore.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BindingStore.java	8 Nov 2004 09:35:19 -0000	1.5
  +++ BindingStore.java	24 Nov 2004 16:20:42 -0000	1.6
  @@ -425,7 +425,7 @@
               ObjectNode.Binding parentBinding = (ObjectNode.Binding) parentBindings.nextElement();
               Element parentElm = new Element("parent", NodeProperty.NamespaceCache.DEFAULT_NAMESPACE);
               Element hrefElm = new Element("href", NodeProperty.NamespaceCache.DEFAULT_NAMESPACE);
  -            String parentUriStr = new UriPath(objectNode.getUri()).parent().toString();
  +            String parentUriStr = UriPath.getParentUri(objectNode.getUri());
               Uri parentUri = new Uri(uri.getToken(), uri.getNamespace(), parentUriStr);
               String uriStr;
               if (useBinding) {
  
  
  
  1.26      +31 -22    jakarta-slide/src/share/org/apache/slide/store/ExtendedStore.java
  
  Index: ExtendedStore.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/store/ExtendedStore.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ExtendedStore.java	29 Oct 2004 13:32:03 -0000	1.25
  +++ ExtendedStore.java	24 Nov 2004 16:20:42 -0000	1.26
  @@ -388,9 +388,11 @@
        * @param key the key under which the object is stored in the caches.
        */
       public void removeObjectFromCache( Object key ) {
  -    	getLogger().log( "Removing " + key + " from cache.",
  -    		LOG_CHANNEL,
  -			Logger.DEBUG );
  +        if (getLogger().isEnabled(LOG_CHANNEL, Logger.DEBUG)) {
  +            getLogger().log( "Removing " + key + " from cache.",
  +            		LOG_CHANNEL,
  +        			Logger.DEBUG );
  +        }
       	if ( contentStore.cacheResults() && contentCachingEnabled ) {
       		contentCache.remove( key.toString(), "_" );
       	}
  @@ -419,7 +421,10 @@
        *            the key under which the object is stored in the caches.
        */
       public void removeObjectHierachyFromCache(Uri folderUri) {
  -        getLogger().log("Removing hierarchy" + folderUri + " from cache.", LOG_CHANNEL, Logger.DEBUG);
  +        if (getLogger().isEnabled(LOG_CHANNEL, Logger.DEBUG)) {
  +            getLogger().log("Removing hierarchy" + folderUri 
  +                    + " from cache.", LOG_CHANNEL, Logger.DEBUG);
  +        }
           if (contentStore.cacheResults() && contentCachingEnabled) {
               contentCache.remove(folderUri.toString(), "/");
           }
  @@ -1136,13 +1141,15 @@
   
       // FIXME needs suspend and resume here as well!
       public void start(Xid xid, int flags) throws XAException {
  -    	getLogger().log(
  -				"Thread "
  -						+ Thread.currentThread()
  -						+ (flags == TMNOFLAGS ? " starts"
  -								: flags == TMJOIN ? " joins" : " resumes")
  -						+ " work on behalf of transaction branch " + xid,
  -				LOG_CHANNEL, Logger.DEBUG);
  +        if (getLogger().isEnabled(LOG_CHANNEL, Logger.DEBUG)) {
  +            getLogger().log(new StringBuffer(128)
  +                    .append("Thread ").append(Thread.currentThread())
  +                    .append(flags == TMNOFLAGS ? " starts"
  +    								: flags == TMJOIN ? " joins" : " resumes")
  +                    .append(" work on behalf of transaction branch ")
  +                    .append(xid).toString(),
  +    				   LOG_CHANNEL, Logger.DEBUG);
  +        }
           
           Xid txId = (Xid) XidWrapper.wrap(xid);
           activeTransactionBranch.set(txId);
  @@ -1158,13 +1165,15 @@
       }
   
       public void end(Xid xid, int flags) throws XAException {
  -    	getLogger().log(
  -				"Thread "
  -						+ Thread.currentThread()
  -						+ (flags == TMSUSPEND ? " suspends"
  -								: flags == TMFAIL ? " fails" : " ends")
  -						+ " work on behalf of transaction branch " + xid,
  -				LOG_CHANNEL, Logger.DEBUG);
  +        if (getLogger().isEnabled(LOG_CHANNEL, Logger.DEBUG)) {
  +            getLogger().log(new StringBuffer(128)
  +                    .append("Thread ").append(Thread.currentThread())
  +                    .append((flags == TMSUSPEND ? " suspends"
  +    								: flags == TMFAIL ? " fails" : " ends"))
  +                    .append(" work on behalf of transaction branch ")
  +                    .append(xid).toString(),
  +    				LOG_CHANNEL, Logger.DEBUG);
  +        }
   
           activeTransactionBranch.set(null);
       }
  
  
  
  1.12      +5 -5      jakarta-slide/src/share/org/apache/slide/search/basic/ComparableResourceImpl.java
  
  Index: ComparableResourceImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/search/basic/ComparableResourceImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ComparableResourceImpl.java	1 Nov 2004 17:53:12 -0000	1.11
  +++ ComparableResourceImpl.java	24 Nov 2004 16:20:42 -0000	1.12
  @@ -155,7 +155,7 @@
                   // NodeRevisionDescriptor object
                   // isCollection = true;
                   revisionDescriptor = new NodeRevisionDescriptor(0);
  -                revisionDescriptor.setName(new UriPath(objectNode.getUri()).lastSegment());
  +                revisionDescriptor.setName(UriPath.getLastSegment(objectNode.getUri()));
               }
           }
           catch (AccessDeniedException e) {
  
  
  
  1.61      +8 -8      jakarta-slide/src/share/org/apache/slide/content/ContentImpl.java
  
  Index: ContentImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/content/ContentImpl.java,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- ContentImpl.java	5 Aug 2004 15:44:57 -0000	1.60
  +++ ContentImpl.java	24 Nov 2004 16:20:42 -0000	1.61
  @@ -460,7 +460,7 @@
           // set the display name (in case of copy)
           if (!Configuration.useBinding(namespace.getUri(token, strUri).getStore())) {
               if (revisionDescriptor.getName() == null || revisionDescriptor.getName().length() == 0) {
  -                revisionDescriptor.setName(new UriPath(strUri).lastSegment());
  +                revisionDescriptor.setName(UriPath.getLastSegment(strUri));
               }
           }
           
  @@ -1385,8 +1385,8 @@
           if (namespaceConfig.isPrincipal(associatedObject.getUri())) {
               // principals must have DAV:displayname
               if (revisionDescriptor.getName() == null || revisionDescriptor.getName().length() == 0) {
  -                UriPath uripath = new UriPath(associatedObject.getUri());
  -                revisionDescriptor.setName(uripath.lastSegment());
  +                revisionDescriptor.setName(
  +                        UriPath.getLastSegment(associatedObject.getUri()));
               }
               // principals must have DAV:principal in resourcetype
               String rt = revisionDescriptor.getResourceType();
  @@ -1491,7 +1491,7 @@
               return;
           }
           
  -        String parentUri = String.valueOf(new UriPath(strUri).parent());
  +        String parentUri = UriPath.getParentUri(strUri);
           try {
               NodeRevisionDescriptor parentNrd =
                   retrieve(token, retrieve(token, parentUri));
  
  
  
  1.37      +9 -12     jakarta-slide/src/share/org/apache/slide/common/NamespaceConfig.java
  
  Index: NamespaceConfig.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceConfig.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- NamespaceConfig.java	28 Jul 2004 09:38:17 -0000	1.36
  +++ NamespaceConfig.java	24 Nov 2004 16:20:42 -0000	1.37
  @@ -599,20 +599,17 @@
       }
   
       public boolean isPrincipal(String uri) {
  -        UriPath uriPath = new UriPath(uri);
  -        return (usersUriPath != null && usersUriPath.equals(uriPath.parent()) ||
  -                           rolesUriPath != null && rolesUriPath.equals(uriPath.parent()) ||
  -                           groupsUriPath != null && groupsUriPath.equals(uriPath.parent()));
  +        return (usersUriPath != null && usersUriPath.isParentOf(uri) ||
  +                rolesUriPath != null && rolesUriPath.isParentOf(uri) ||
  +                groupsUriPath != null && groupsUriPath.isParentOf(uri));
       }
   
       public boolean isRole(String uri) {
  -        UriPath uriPath = new UriPath(uri);
  -        return (rolesUriPath != null && rolesUriPath.equals(uriPath.parent()));
  +        return (rolesUriPath != null && rolesUriPath.isParentOf(uri));
       }
   
       public boolean isGroup(String uri) {
  -        UriPath uriPath = new UriPath(uri);
  -        return (groupsUriPath != null && groupsUriPath.equals(uriPath.parent()));
  +        return (groupsUriPath != null && groupsUriPath.isParentOf(uri));
       }
       
       
  
  
  
  1.7       +70 -4     jakarta-slide/src/share/org/apache/slide/common/UriPath.java
  
  Index: UriPath.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/UriPath.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- UriPath.java	8 Nov 2004 09:27:52 -0000	1.6
  +++ UriPath.java	24 Nov 2004 16:20:42 -0000	1.7
  @@ -81,6 +81,7 @@
           System.arraycopy(tokens, start, result.tokens, 0, result.tokens.length);
           return result;
       }
  +    
       public String subUriPathString(int start, int end) {
           if (end > start) {
               StringBuffer b = new StringBuffer(tokens.length * 20);
  @@ -93,6 +94,29 @@
           }
       }
       
  +    /**
  +     * Tests whether a given uri is a child of this uri path.
  +     * @param child uri of the possible child
  +     * @return <code>true</code> if <code>child</code> is a child of this path
  +     */
  +    public boolean isParentOf(String child) {
  +        StringTokenizer tokenizer = new StringTokenizer(child, "/");
  +        
  +        for(int i = 0; i < this.tokens.length && tokenizer.hasMoreTokens();) {
  +            String t = (String)tokenizer.nextToken();
  +            if (!t.equals(this.tokens[i])) {
  +                return false;
  +            }
  +        }
  +        // there must be exactly one more token 
  +        if (tokenizer.hasMoreTokens()) {
  +            tokenizer.nextToken();
  +            return !tokenizer.hasMoreTokens();
  +        } else {
  +            return false;
  +        }
  +    }
  +    
       public boolean equals(Object o) {
           boolean result = false;
           if (o instanceof UriPath) {
  @@ -134,5 +158,47 @@
       
       public static int segmentCount(String uri) {
           return new StringTokenizer(uri, "/").countTokens();
  +    }
  +    
  +    public static String getParentUri(String uri) {
  +        if ("/".equals(uri)) return null;
  +        
  +        int lastSlashPos = uri.endsWith("/") ? 
  +                uri.lastIndexOf('/', uri.length()-2) : uri.lastIndexOf('/');
  +        if (lastSlashPos == -1) {
  +            throw new RuntimeException("Can't create parent uri for: " + uri);
  +        }
  +        if (lastSlashPos == 0) {
  +            return "/";
  +        }
  +        
  +        return uri.substring(0, lastSlashPos);
  +    }
  +    
  +    public static String getLastSegment(String uri) {
  +        if ("/".equals(uri)) return null;
  +        
  +        int lastSlashPos = uri.endsWith("/") ? 
  +                uri.lastIndexOf('/', uri.length()-2) : uri.lastIndexOf('/');
  +        if (lastSlashPos == -1) {
  +            return uri;
  +        }
  +        
  +        return uri.endsWith("/") 
  +                ? uri.substring(lastSlashPos+1, uri.length()-1)
  +                : uri.substring(lastSlashPos+1);
  +    }
  +    
  +    public static void main(String[] args) {
  +        System.out.println(getParentUri("/"));
  +        System.out.println(getParentUri("/abc"));
  +        System.out.println(getParentUri("/abc/"));
  +        System.out.println(getParentUri("/abc/def"));
  +        System.out.println(getParentUri("/abc/def/"));
  +        System.out.println(getLastSegment("/"));
  +        System.out.println(getLastSegment("/abc"));
  +        System.out.println(getLastSegment("/abc/"));
  +        System.out.println(getLastSegment("/abc/def"));
  +        System.out.println(getLastSegment("/abc/def/"));
       }
   }
  
  
  
  1.30      +11 -24    jakarta-slide/src/share/org/apache/slide/structure/ObjectNode.java
  
  Index: ObjectNode.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/structure/ObjectNode.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- ObjectNode.java	26 Sep 2004 14:54:55 -0000	1.29
  +++ ObjectNode.java	24 Nov 2004 16:20:42 -0000	1.30
  @@ -26,9 +26,10 @@
   import java.io.Serializable;
   import java.util.Collections;
   import java.util.Enumeration;
  -import java.util.Vector;
  -import java.util.Set;
   import java.util.HashSet;
  +import java.util.Set;
  +import java.util.Vector;
  +
   import org.apache.slide.common.ObjectValidationFailedException;
   import org.apache.slide.common.UriPath;
   import org.apache.slide.util.EmptyEnumeration;
  @@ -528,7 +529,7 @@
               bindings=(BindingList)bindings.clone();
               bindingsShared=false;
           }
  -        String bindingName = lastUriSegment( child.getUri() );
  +        String bindingName = UriPath.getLastSegment( child.getUri() );
           bindings.remove(bindingName);
           childrenCache = null;
           child.removeParentBinding(bindingName, this);
  @@ -557,18 +558,6 @@
           return path;
       }
       
  -    /**
  -     * Get the last segment of the specified uri.
  -     *
  -     * @param    uri                 a  String
  -     *
  -     * @return   a String
  -     *
  -     */
  -    private String lastUriSegment( String uri ) {
  -        return new UriPath(uri).lastSegment();
  -    }
  -    
       private void computeChildren() {
           childrenCache = new Vector();
           Enumeration e = bindings.elements();
  @@ -594,13 +583,11 @@
               String c = (String)ch.nextElement();
               ObjectNode s = new SubjectNode(c);
               s.setUuri( s.getUri() );
  -            addBinding( lastUriSegment(c), s );
  +            addBinding( UriPath.getLastSegment(c), s );
           }
           ObjectNode p = null;
  -        UriPath up = new UriPath(uri);
  -        UriPath pup = up.parent();
  -        if (pup != null) {
  -            String pUri = pup.toString();
  +        String pUri = UriPath.getParentUri(uri);
  +        if (pUri != null) {
               p = new SubjectNode( pUri );
               p.setUuri( p.getUri() );
           }
  
  
  
  1.20      +4 -15     jakarta-slide/src/share/org/apache/slide/search/SearchImpl.java
  
  Index: SearchImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/search/SearchImpl.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SearchImpl.java	28 Jul 2004 09:35:09 -0000	1.19
  +++ SearchImpl.java	24 Nov 2004 16:20:42 -0000	1.20
  @@ -59,7 +59,6 @@
                         Structure structureHelper,
                         Content contentHelper) {
           this.namespace = namespace;
  -        this.namespaceConfig = namespaceConfig;
           this.structureHelper = structureHelper;
           this.contentHelper = contentHelper;
       }
  @@ -80,11 +79,6 @@
                                   SEARCH_LANGUAGES [i]);
       }
       
  -    /**
  -     * Log channel for logger
  -     */
  -    private final static String LOG_CHANNEL = SearchImpl.class.getName();
  -    
       
       /**
        * Namespace.
  @@ -96,11 +90,6 @@
        */
       private Structure structureHelper;
       
  -    
  -    /**
  -     * Namespace configuration.
  -     */
  -    private NamespaceConfig namespaceConfig;
       
       /**
        * Namespace configuration.
  
  
  
  1.59      +6 -6      jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java
  
  Index: SecurityImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- SecurityImpl.java	24 Nov 2004 11:36:18 -0000	1.58
  +++ SecurityImpl.java	24 Nov 2004 16:20:42 -0000	1.59
  @@ -414,7 +414,7 @@
                       if (!(permission.booleanValue())) {
                           throw new AccessDeniedException
                               (object.getUri(),
  -                             getPrincipal(token).getPath().toString(),
  +                             getPrincipal(token).getUri(),
                                action.getUri());
                       }
                   }
  @@ -422,7 +422,7 @@
           } catch (ObjectNotFoundException e) {
               String subjectUri = "*** Could not determine principal ***";
               try {
  -                subjectUri = getPrincipal(token).getPath().toString();
  +                subjectUri = getPrincipal(token).getUri();
               } catch (Exception x) {}
               throw new AccessDeniedException
                   (object.getUri(),
  
  
  
  1.9       +9 -6      jakarta-slide/src/share/org/apache/slide/transaction/SlideXid.java
  
  Index: SlideXid.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/transaction/SlideXid.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SlideXid.java	28 Jul 2004 09:34:33 -0000	1.8
  +++ SlideXid.java	24 Nov 2004 16:20:42 -0000	1.9
  @@ -113,8 +113,11 @@
        * Obtain a String representation of this xid.
        */
       public String toString() {
  -        return new String(getGlobalTransactionId()) + "-" 
  -            + new String(getBranchQualifier());
  +        return new StringBuffer()
  +            .append(this.globalTransactionId)
  +            .append('-')
  +            .append(this.branchQualifier)
  +            .toString();
       }
       
       
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org