public static Map translateLockTokens(Map lockTokens, String baseURL) { Map translatedLocks = new TreeMap(); for (Iterator urls = lockTokens.keySet().iterator(); urls.hasNext();) { String url = (String) urls.next(); String token = (String) lockTokens.get(url); url = url.equals(baseURL) ? "" : url.substring(baseURL.length() + 1); translatedLocks.put(SVNEncodingUtil.uriDecode(url), token); } lockTokens.clear(); lockTokens.putAll(translatedLocks); return lockTokens; }
public static Map translateLockTokens(Map lockTokens, String baseURL) { Map translatedLocks = new TreeMap(); for (Iterator urls = lockTokens.keySet().iterator(); urls.hasNext();) { String url = (String) urls.next(); String token = (String) lockTokens.get(url); url = url.equals(baseURL) ? "" : url.substring(baseURL.length() + 1); translatedLocks.put(SVNEncodingUtil.uriDecode(url), token); } lockTokens.clear(); lockTokens.putAll(translatedLocks); return lockTokens; }
public static Map translateLockTokens(Map lockTokens, String baseURL) { Map translatedLocks = new TreeMap(); for (Iterator urls = lockTokens.keySet().iterator(); urls.hasNext();) { String url = (String) urls.next(); String token = (String) lockTokens.get(url); url = url.equals(baseURL) ? "" : url.substring(baseURL.length() + 1); translatedLocks.put(SVNEncodingUtil.uriDecode(url), token); } lockTokens.clear(); lockTokens.putAll(translatedLocks); return lockTokens; }
public static Map translateLockTokens(Map lockTokens, String baseURL) { Map translatedLocks = new TreeMap(); for (Iterator urls = lockTokens.keySet().iterator(); urls.hasNext();) { String url = (String) urls.next(); String token = (String) lockTokens.get(url); url = url.equals(baseURL) ? "" : url.substring(baseURL.length() + 1); translatedLocks.put(SVNEncodingUtil.uriDecode(url), token); } lockTokens.clear(); lockTokens.putAll(translatedLocks); return lockTokens; }
public String getVersionURL() throws SVNException { if (myVURL == null) { if (myMediator != null) { myVURL = myMediator.getWorkspaceProperty(SVNEncodingUtil.uriDecode(myPath), "svn:wc:ra_dav:version-url"); } } return myVURL; }
private byte[] getName() throws UnsupportedEncodingException { if (name == null) { if (locationUrl != null) { name = SVNEncodingUtil.uriDecode(SVNPathUtil.tail(locationUrl.toDecodedString())).getBytes("UTF-8"); } } return name; }
public static StringBuffer generateLockDataRequest(StringBuffer target, String root, String path, Map locks) { target = target == null ? new StringBuffer() : target; target.append("<S:lock-token-list xmlns:S=\"svn:\">"); for (Iterator paths = locks.keySet().iterator(); paths.hasNext();) { String lockPath = (String) paths.next(); if (path == null || isChildPath(path, lockPath)) { String token = (String) locks.get(lockPath); target.append("<S:lock><S:lock-path>"); lockPath = getRelativePath(lockPath, root); target.append(SVNEncodingUtil.xmlEncodeCDATA(SVNEncodingUtil.uriDecode(lockPath))); target.append("</S:lock-path><S:lock-token>"); target.append(token); target.append("</S:lock-token></S:lock>"); } } target.append("</S:lock-token-list>"); return target; }
private String mapToReposRelPath(String pathOrUrl) { if (SVNPathUtil.isURL(pathOrUrl)) { return SVNPathUtil.getPathAsChild(SVNEncodingUtil.uriDecode(pathOrUrl), repositoryRoot.toDecodedString()); } else { return SVNPathUtil.append(baseRelPath, pathOrUrl.startsWith("/") ? pathOrUrl.substring("/".length()) : pathOrUrl); } }
public void linkPath(SVNURL url, String path, String lockToken, long revision, SVNDepth depth, boolean startEmpty) throws SVNException { Map attrs = new SVNHashMap(); attrs.put(REVISION_ATTR, String.valueOf(revision)); attrs.put("depth", SVNDepth.asString(depth)); if (lockToken != null) { if (lockTokens != null) { lockTokens.put(path, lockToken); } attrs.put("lock-token", lockToken); } if (startEmpty) { attrs.put("start-empty", Boolean.TRUE.toString()); } String linkedPath = url.getURIEncodedPath(); DAVBaselineInfo info = DAVUtil.getBaselineInfo(connection, null, linkedPath, revision, false, false, null); linkedPath = SVNEncodingUtil.uriDecode(info.baselinePath); if (!linkedPath.startsWith("/")) { linkedPath = "/" + linkedPath; } attrs.put("linkpath", linkedPath); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "entry", path, attrs, report); }
private String getResourcePathInfo(HttpServletRequest request) throws SVNException { String pathInfo = request.getPathInfo(); if (pathInfo == null || "".equals(pathInfo)) { pathInfo = "/"; } else { pathInfo = SVNEncodingUtil.uriDecode(pathInfo); } if (getDAVConfig().isUsingRepositoryPathDirective()) { return pathInfo; } if (pathInfo == null || pathInfo.length() == 0 || "/".equals(pathInfo)) { SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_REQUEST_FAILED), SVNLogType.NETWORK); //TODO: client tried to access repository parent path, result status code should be FORBIDDEN. } return DAVPathUtil.removeHead(pathInfo, true); }
public static StringBuffer generateLockDataRequest(StringBuffer target, String root, String path, Map locks) { target = target == null ? new StringBuffer() : target; SVNXMLUtil.openNamespaceDeclarationTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token-list", SVN_NAMESPACES_LIST, SVNXMLUtil.PREFIX_MAP, target); for (Iterator paths = locks.keySet().iterator(); paths.hasNext();) { String lockPath = (String) paths.next(); if (path == null || SVNPathUtil.getPathAsChild(path, lockPath) != null) { String relativePath = SVNPathUtil.getRelativePath(root, lockPath); String token = (String) locks.get(lockPath); SVNXMLUtil.openXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock", SVNXMLUtil.XML_STYLE_NORMAL, null, target); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-path", SVNEncodingUtil.uriDecode(relativePath), target); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token", token, target); SVNXMLUtil.closeXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock", target); } } SVNXMLUtil.closeXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token-list", target); return target; }
public static StringBuffer generateLockDataRequest(StringBuffer target, String root, String path, Map locks) { target = target == null ? new StringBuffer() : target; SVNXMLUtil.openNamespaceDeclarationTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token-list", SVN_NAMESPACES_LIST, SVNXMLUtil.PREFIX_MAP, target); for (Iterator paths = locks.keySet().iterator(); paths.hasNext();) { String lockPath = (String) paths.next(); if (path == null || SVNPathUtil.getPathAsChild(path, lockPath) != null) { String relativePath = SVNPathUtil.getRelativePath(root, lockPath); String token = (String) locks.get(lockPath); SVNXMLUtil.openXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock", SVNXMLUtil.XML_STYLE_NORMAL, null, target); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-path", SVNEncodingUtil.uriDecode(relativePath), target); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token", token, target); SVNXMLUtil.closeXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock", target); } } SVNXMLUtil.closeXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token-list", target); return target; }
public static StringBuffer generateLockDataRequest(StringBuffer target, String root, String path, Map locks) { target = target == null ? new StringBuffer() : target; SVNXMLUtil.openNamespaceDeclarationTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token-list", SVN_NAMESPACES_LIST, SVNXMLUtil.PREFIX_MAP, target); for (Iterator paths = locks.keySet().iterator(); paths.hasNext();) { String lockPath = (String) paths.next(); if (path == null || SVNPathUtil.getPathAsChild(path, lockPath) != null) { String relativePath = SVNPathUtil.getRelativePath(root, lockPath); String token = (String) locks.get(lockPath); SVNXMLUtil.openXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock", SVNXMLUtil.XML_STYLE_NORMAL, null, target); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-path", SVNEncodingUtil.uriDecode(relativePath), target); SVNXMLUtil.openCDataTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token", token, target); SVNXMLUtil.closeXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock", target); } } SVNXMLUtil.closeXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, "lock-token-list", target); return target; }
public SVNPath(String target, boolean keepPegRevision) throws SVNException { myTarget = target; parsePegRevision(keepPegRevision); myTarget = SVNPathUtil.canonicalizePath(myTarget); assertControlChars(isURL() ? SVNEncodingUtil.uriDecode(myTarget) : myTarget); }
public SVNPath(String target, boolean keepPegRevision) throws SVNException { myTarget = target; parsePegRevision(keepPegRevision); myTarget = SVNPathUtil.canonicalizePath(myTarget); assertControlChars(isURL() ? SVNEncodingUtil.uriDecode(myTarget) : myTarget); }
public SVNPath(String target, boolean keepPegRevision, boolean parsePegRevision) throws SVNException { myTarget = target; if (parsePegRevision) { parsePegRevision(keepPegRevision); } myTarget = SVNPathUtil.canonicalizePath(myTarget); assertControlChars(isURL() ? SVNEncodingUtil.uriDecode(myTarget) : myTarget); }
public SVNPath(String target, boolean keepPegRevision, boolean parsePegRevision) throws SVNException { myTarget = target; if (parsePegRevision) { parsePegRevision(keepPegRevision); } myTarget = SVNPathUtil.canonicalizePath(myTarget); assertControlChars(isURL() ? SVNEncodingUtil.uriDecode(myTarget) : myTarget); }
public SVNPath(String target, boolean hasPegRevision) throws SVNException { myTarget = target; myHasPegRevision = hasPegRevision; if (myHasPegRevision) { parsePegRevision(true); } else { parsePegRevision(false); } myTarget = SVNPathUtil.canonicalizePath(myTarget); assertControlChars(isURL() ? SVNEncodingUtil.uriDecode(myTarget) : myTarget); }
public SVNLock doGetLock(String path, DAVRepository repos) throws SVNException { DAVBaselineInfo info = DAVUtil.getBaselineInfo(this, repos, path, -1, false, true, null); StringBuffer body = DAVGetLockHandler.generateGetLockRequest(null); DAVGetLockHandler handler = new DAVGetLockHandler(); SVNErrorMessage context = SVNErrorMessage.create(SVNErrorCode.RA_DAV_REQUEST_FAILED, "Failed to fetch lock information"); HTTPStatus rc = myHttpConnection.request("PROPFIND", path, null, body, 200, 207, null, handler, context); String id = handler.getID(); if (id == null) { return null; } String comment = handler.getComment(); String owner = rc.getHeader().getFirstHeaderValue(HTTPHeader.LOCK_OWNER_HEADER); String created = rc.getHeader().getFirstHeaderValue(HTTPHeader.CREATION_DATE_HEADER); Date createdDate = created != null ? SVNTimeUtil.parseDate(created) : null; path = SVNEncodingUtil.uriDecode(info.baselinePath); if (!path.startsWith("/")) { path = "/" + path; } return new SVNLock(path, id, owner, comment, createdDate, null); }
public SVNLock doGetLock(String path, DAVRepository repos) throws SVNException { beforeCall(); DAVBaselineInfo info = DAVUtil.getBaselineInfo(this, repos, path, -1, false, true, null); StringBuffer body = DAVLockHandler.generateGetLockRequest(null); DAVLockHandler handler = new DAVLockHandler(); SVNErrorMessage context = SVNErrorMessage.create(SVNErrorCode.RA_DAV_REQUEST_FAILED, "Failed to fetch lock information"); IHTTPConnection httpConnection = getConnection(); HTTPStatus rc = performHttpRequest(httpConnection, "PROPFIND", path, null, body, 200, 207, null, handler, context); String id = handler.getID(); if (id == null) { return null; } String comment = handler.getComment(); String owner = rc.getHeader().getFirstHeaderValue(HTTPHeader.LOCK_OWNER_HEADER); String created = rc.getHeader().getFirstHeaderValue(HTTPHeader.CREATION_DATE_HEADER); Date createdDate = created != null ? SVNDate.parseDate(created) : null; path = SVNEncodingUtil.uriDecode(info.baselinePath); if (!path.startsWith("/")) { path = "/" + path; } return new SVNLock(path, id, owner, comment, createdDate, null); }