diff --git a/cube-manager-api/pom.xml b/cube-manager-api/pom.xml
index eb3faf4..d933f49 100644
--- a/cube-manager-api/pom.xml
+++ b/cube-manager-api/pom.xml
@@ -4,7 +4,7 @@
org.gcube.data.analysis.tabulardata
cube-manager-parent
- 3.5.2-SNAPSHOT
+ 3.5.3-SNAPSHOT
cube-manager-api
Cube Manager API
diff --git a/cube-manager-data/pom.xml b/cube-manager-data/pom.xml
index c7e51ca..0ff7290 100644
--- a/cube-manager-data/pom.xml
+++ b/cube-manager-data/pom.xml
@@ -4,7 +4,7 @@
org.gcube.data.analysis.tabulardata
cube-manager-parent
- 3.5.2-SNAPSHOT
+ 3.5.3-SNAPSHOT
cube-manager-data
Cube Manager Data
@@ -27,12 +27,6 @@
7.0.41
-
- commons-lang
- commons-lang
- 20030203.000129
-
-
postgresql
postgresql
diff --git a/cube-manager-data/src/main/java/org/gcube/data/analysis/tabulardata/cube/data/SQLDatabaseWrangler.java b/cube-manager-data/src/main/java/org/gcube/data/analysis/tabulardata/cube/data/SQLDatabaseWrangler.java
index efa8832..6fe3455 100644
--- a/cube-manager-data/src/main/java/org/gcube/data/analysis/tabulardata/cube/data/SQLDatabaseWrangler.java
+++ b/cube-manager-data/src/main/java/org/gcube/data/analysis/tabulardata/cube/data/SQLDatabaseWrangler.java
@@ -9,6 +9,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
+import java.util.Random;
import java.util.regex.Pattern;
import javax.annotation.PostConstruct;
@@ -17,7 +18,6 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import org.apache.commons.dbutils.DbUtils;
-import org.apache.commons.lang.RandomStringUtils;
import org.gcube.data.analysis.tabulardata.cube.data.connection.DatabaseConnectionProvider;
import org.gcube.data.analysis.tabulardata.cube.data.connection.admin.Admin;
import org.gcube.data.analysis.tabulardata.cube.data.connection.unprivileged.Unprivileged;
@@ -35,6 +35,8 @@ public class SQLDatabaseWrangler implements DatabaseWrangler {
private static Logger log = LoggerFactory.getLogger(SQLDatabaseWrangler.class);
+ private static RandomString randomString = new RandomString(32);
+
private DatabaseConnectionProvider adminConnectionProvider;
private DatabaseConnectionProvider unprivilegedConnectionProvider;
@@ -219,7 +221,7 @@ public class SQLDatabaseWrangler implements DatabaseWrangler {
int count = 0;
do {
- tableName = RandomStringUtils.random(32, true, false).toLowerCase();
+ tableName = randomString.nextString().toLowerCase();
log.debug("Generated table name: " + tableName);
Connection connection = null;
Statement statement = null;
@@ -341,4 +343,34 @@ public class SQLDatabaseWrangler implements DatabaseWrangler {
public void createUniqueIndex(String tableName, String columnName) {
executeQuery(String.format("CREATE UNIQUE INDEX ON %s ( %s );", tableName, columnName));
}
+
+ public static class RandomString {
+
+ private static final char[] symbols;
+
+ static {
+ StringBuilder tmp = new StringBuilder();
+ for (char ch = '0'; ch <= '9'; ++ch)
+ tmp.append(ch);
+ for (char ch = 'a'; ch <= 'z'; ++ch)
+ tmp.append(ch);
+ symbols = tmp.toString().toCharArray();
+ }
+
+ private final Random random = new Random();
+
+ private final char[] buf;
+
+ public RandomString(int length) {
+ if (length < 1)
+ throw new IllegalArgumentException("length < 1: " + length);
+ buf = new char[length];
+ }
+
+ public String nextString() {
+ for (int idx = 0; idx < buf.length; ++idx)
+ buf[idx] = symbols[random.nextInt(symbols.length)];
+ return new String(buf);
+ }
+ }
}
diff --git a/cube-manager-metadata/pom.xml b/cube-manager-metadata/pom.xml
index 37ca31d..63556c3 100644
--- a/cube-manager-metadata/pom.xml
+++ b/cube-manager-metadata/pom.xml
@@ -4,7 +4,7 @@
org.gcube.data.analysis.tabulardata
cube-manager-parent
- 3.5.2-SNAPSHOT
+ 3.5.3-SNAPSHOT
cube-manager-metadata
Cube Manager Metadata
diff --git a/cube-manager/pom.xml b/cube-manager/pom.xml
index bbff2ad..ed08e7c 100644
--- a/cube-manager/pom.xml
+++ b/cube-manager/pom.xml
@@ -4,7 +4,7 @@
org.gcube.data.analysis.tabulardata
cube-manager-parent
- 3.5.2-SNAPSHOT
+ 3.5.3-SNAPSHOT
cube-manager
Cube Manager
diff --git a/cube-manager/src/main/java/org/gcube/data/analysis/tabulardata/cube/tablemanagers/DefaultTableCreator.java b/cube-manager/src/main/java/org/gcube/data/analysis/tabulardata/cube/tablemanagers/DefaultTableCreator.java
index ed8e006..2532478 100644
--- a/cube-manager/src/main/java/org/gcube/data/analysis/tabulardata/cube/tablemanagers/DefaultTableCreator.java
+++ b/cube-manager/src/main/java/org/gcube/data/analysis/tabulardata/cube/tablemanagers/DefaultTableCreator.java
@@ -10,8 +10,8 @@ import java.util.Set;
import javax.enterprise.event.Event;
-import org.apache.commons.lang.RandomStringUtils;
import org.gcube.data.analysis.tabulardata.cube.data.DatabaseWrangler;
+import org.gcube.data.analysis.tabulardata.cube.data.SQLDatabaseWrangler.RandomString;
import org.gcube.data.analysis.tabulardata.cube.events.TableCreationEvent;
import org.gcube.data.analysis.tabulardata.cube.exceptions.NoSuchTableException;
import org.gcube.data.analysis.tabulardata.cube.exceptions.TableCreationException;
@@ -40,6 +40,8 @@ public abstract class DefaultTableCreator implements TableCreator {
private static Logger logger = LoggerFactory.getLogger(DefaultTableCreator.class);
+ private static RandomString randomString = new RandomString(6);
+
protected DatabaseWrangler dbWrangler;
protected CubeMetadataWrangler mdWrangler;
protected TableManager tableManager;
@@ -354,7 +356,7 @@ public abstract class DefaultTableCreator implements TableCreator {
public static class ColumnNameGenerator {
public static String generateColumnName() {
- return RandomStringUtils.random(6, true, false).toLowerCase();
+ return randomString.nextString().toLowerCase();
}
}
diff --git a/pom.xml b/pom.xml
index 46269ff..5bd2a89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
org.gcube.data.analysis.tabulardata
cube-manager-parent
- 3.5.2-SNAPSHOT
+ 3.5.3-SNAPSHOT
pom