Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cloudinary-core/src/main/java/com/cloudinary/Url.java
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ public String generate(String source) {
source = finalizedSource[0];
String sourceToSign = finalizedSource[1];

if (this.config.forceVersion && sourceToSign.contains("/") && !StringUtils.hasVersionString(sourceToSign) &&
if (this.config.forceVersion && sourceToSign.contains("/") && !StringUtils.startWithVersionString(sourceToSign) &&
!httpSource && StringUtils.isEmpty(version)) {
version = "1";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -340,26 +340,15 @@ public static String removeStartingChars(String s, char c) {
}

/**
* Checks whether the url contains a versioning string (v + number, e.g. v12345)
* @param url The url to check
* @return Whether a version string is contained within the url
* Checks whether a publicId starts a versioning string (v + number, e.g. v12345)
* @param publicId The url to check
* @return Whether a version string is contained within the publicId
*/
public static boolean hasVersionString(String url) {
boolean inVersion = false;
for (int i = 0; i < url.length(); i++) {
char c = url.charAt(i);
if (c == 'v') {
inVersion = true;
} else if (Character.isDigit(c) && inVersion) {
return true;
} else {
inVersion = false;
}


public static boolean startWithVersionString(String publicId){
if (publicId.startsWith("/")){
publicId = publicId.substring(1);
}

return false;
return publicId.length()>1 && publicId.startsWith("v") && Character.isDigit(publicId.charAt(1));
}

/**
Expand Down
33 changes: 21 additions & 12 deletions cloudinary-core/src/test/java/com/cloudinary/UtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,18 +129,27 @@ public void testMergeSlashes(){
}

@Test
public void testHasVersionString(){
assertTrue(StringUtils.hasVersionString("wqeasdlv31423423"));
assertTrue(StringUtils.hasVersionString("v1"));
assertTrue(StringUtils.hasVersionString("v1fdasfasd"));
assertTrue(StringUtils.hasVersionString("asdasv1fdasfasd"));
assertTrue(StringUtils.hasVersionString("12v1fdasfasd"));

assertFalse(StringUtils.hasVersionString("121fdasfasd"));
assertFalse(StringUtils.hasVersionString(""));
assertFalse(StringUtils.hasVersionString("vvv"));
assertFalse(StringUtils.hasVersionString("v"));
assertFalse(StringUtils.hasVersionString("asdvvv"));
public void testStartWithVersionString(){
assertTrue(StringUtils.startWithVersionString("v1"));
assertTrue(StringUtils.startWithVersionString("v1fdasfasd"));
assertTrue(StringUtils.startWithVersionString("v112fdasfasd"));
assertTrue(StringUtils.startWithVersionString("v112/fda/sfasd"));
assertTrue(StringUtils.startWithVersionString("v112/fda/v1sfasd"));
assertTrue(StringUtils.startWithVersionString("/v112/fda/v1sfasd"));

assertFalse(StringUtils.startWithVersionString("asdasv1fdasfasd"));
assertFalse(StringUtils.startWithVersionString("12v1fdasfasd"));
assertFalse(StringUtils.startWithVersionString("asdasv1fdasfasd"));
assertFalse(StringUtils.startWithVersionString("wqeasdlv31423423"));
assertFalse(StringUtils.startWithVersionString("wqeasdl/v31423423"));
assertFalse(StringUtils.startWithVersionString("121fdasfasd"));
assertFalse(StringUtils.startWithVersionString("/121fdasfasd"));
assertFalse(StringUtils.startWithVersionString("/"));
assertFalse(StringUtils.startWithVersionString("/v"));
assertFalse(StringUtils.startWithVersionString(""));
assertFalse(StringUtils.startWithVersionString("vvv"));
assertFalse(StringUtils.startWithVersionString("v"));
assertFalse(StringUtils.startWithVersionString("asdvvv"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,14 @@ public void testFoldersWithExcludeVersion() {
result = cloudinary.url().generate("folder/test");
assertEquals(DEFAULT_UPLOAD_PATH + "v1/folder/test", result);

// should not add version if the path STARTS with 'v[num]'
result = cloudinary.url().generate("v1234/folder/test");
assertEquals(DEFAULT_UPLOAD_PATH + "v1234/folder/test", result);

// should add version if the path CONTAINS 'v[num]'
result = cloudinary.url().generate("folder/v123test");
assertEquals(DEFAULT_UPLOAD_PATH + "v1/folder/v123test", result);

// should add version if forceVersion is true
result = cloudinary.url().forceVersion(true).generate("folder/test");
assertEquals(DEFAULT_UPLOAD_PATH + "v1/folder/test", result);
Expand Down
4 changes: 2 additions & 2 deletions java_shared.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
sourceCompatibility = 1.6
targetCompatibility = 1.6
sourceCompatibility = 1.7

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe make it a separate commit?

targetCompatibility = 1.7

javadoc {
options.encoding = 'UTF-8'
Expand Down