| | |
| | | */
|
| | | public static String getMD5(String string) {
|
| | | try {
|
| | | MessageDigest md = MessageDigest.getInstance("MD5");
|
| | | md.reset();
|
| | | md.update(string.getBytes("iso-8859-1"));
|
| | | byte[] digest = md.digest();
|
| | | return toHex(digest);
|
| | | return getMD5(string.getBytes("iso-8859-1"));
|
| | | } catch (UnsupportedEncodingException u) {
|
| | | throw new RuntimeException(u);
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * Calculates the MD5 of the string.
|
| | | * |
| | | * @param string
|
| | | * @return md5 of the string
|
| | | */
|
| | | public static String getMD5(byte [] bytes) {
|
| | | try {
|
| | | MessageDigest md = MessageDigest.getInstance("MD5");
|
| | | md.reset();
|
| | | md.update(bytes);
|
| | | byte[] digest = md.digest();
|
| | | return toHex(digest);
|
| | | } catch (NoSuchAlgorithmException t) {
|
| | | throw new RuntimeException(t);
|
| | | }
|
| | |
| | | * @return the relative path
|
| | | */
|
| | | public static String getRelativePath(String basePath, String fullPath) {
|
| | | String relativePath = fullPath.substring(basePath.length()).replace('\\', '/');
|
| | | if (relativePath.charAt(0) == '/') {
|
| | | relativePath = relativePath.substring(1);
|
| | | String bp = basePath.replace('\\', '/').toLowerCase();
|
| | | String fp = fullPath.replace('\\', '/').toLowerCase();
|
| | | if (fp.startsWith(bp)) {
|
| | | String relativePath = fullPath.substring(basePath.length()).replace('\\', '/');
|
| | | if (relativePath.charAt(0) == '/') {
|
| | | relativePath = relativePath.substring(1);
|
| | | }
|
| | | return relativePath;
|
| | | }
|
| | | return relativePath;
|
| | | return fullPath;
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | public static int compareRepositoryNames(String r1, String r2) {
|
| | | // sort root repositories first, alphabetically
|
| | | // then sort grouped repositories, alphabetically
|
| | | r1 = r1.toLowerCase();
|
| | | r2 = r2.toLowerCase();
|
| | | int s1 = r1.indexOf('/');
|
| | | int s2 = r2.indexOf('/');
|
| | | if (s1 == -1 && s2 == -1) {
|
| | |
| | | }
|
| | | return path;
|
| | | }
|
| | | |
| | | /**
|
| | | * Variation of String.matches() which disregards case issues.
|
| | | * |
| | | * @param regex
|
| | | * @param input
|
| | | * @return true if the pattern matches
|
| | | */
|
| | | public static boolean matchesIgnoreCase(String input, String regex) {
|
| | | Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
|
| | | Matcher m = p.matcher(input);
|
| | | return m.matches();
|
| | | }
|
| | | } |