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