diff --git a/sqldev/pom.xml b/sqldev/pom.xml
index f43e4ed0..559ef2db 100644
--- a/sqldev/pom.xml
+++ b/sqldev/pom.xml
@@ -33,10 +33,10 @@
oracle
- javatools-nodeps
- 13.0.0
+ oracle.javatools-nodeps
+ 12.2.1
system
- ${sqldev.basedir}/modules/oracle.javatools/javatools-nodeps.jar
+ ${sqldev.basedir}/external/oracle.javatools-nodeps.jar
oracle
@@ -192,19 +192,19 @@
org.springframework
spring-jdbc
- 5.2.6.RELEASE
+ 5.3.2
org.springframework
spring-core
- 5.2.6.RELEASE
+ 5.3.2
org.springframework
spring-web
- 5.2.6.RELEASE
+ 5.3.2
@@ -222,7 +222,7 @@
org.jetbrains
annotations
- 13.0
+ 20.1.0
compile
@@ -430,17 +430,33 @@
META-INF/extension.xml=target/classes/META-INF/extension.xml
- org.utplsql.sqldev,
+ org.utplsql.sqldev.coverage,
+ org.utplsql.sqldev.dal,
+ org.utplsql.sqldev.exception,
org.utplsql.sqldev.menu,
+ org.utplsql.sqldev.model,
+ org.utplsql.sqldev.model.oddgen,
+ org.utplsql.sqldev.model.parser,
org.utplsql.sqldev.model.preference,
- org.utplsql.sqldev.actions,
- org.utplsql.sqldev.resources
+ org.utplsql.sqldev.model.runner,
+ org.utplsql.sqldev.model.ut,
+ org.utplsql.sqldev.oddgen,
+ org.utplsql.sqldev.parser,
+ org.utplsql.sqldev.resources,
+ org.utplsql.sqldev.runner,
+ org.utplsql.sqldev.snippet,
+ org.utplsql.sqldev.ui.common,
+ org.utplsql.sqldev.ui.coverage,
+ org.utplsql.sqldev.ui.preference,
+ org.utplsql.sqldev.ui.runner
<_exportcontents>
org.aspectj.runtime.internal,
org.aspectj.lang,
org.aspectj.runtime,
- org.aspectj.lang.reflect
+ org.aspectj.lang.reflect,
+ org.springframework.core.style,
+ org.springframework.lang
oracle.javatools,
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/JsonToStringStyler.java b/sqldev/src/main/java/org/utplsql/sqldev/model/JsonToStringStyler.java
index 2fd04e73..1b5a99c0 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/JsonToStringStyler.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/JsonToStringStyler.java
@@ -25,10 +25,11 @@
import org.springframework.core.style.ValueStyler;
public class JsonToStringStyler implements ToStringStyler, ValueStyler{
- public static final ToStringStyler INSTANCE = new JsonToStringStyler();
public static final String INDENT_SPACES = " ";
private int indent = 0;
-
+
+ private static ThreadLocal threadLocal = ThreadLocal.withInitial(JsonToStringStyler::new);
+
private void newLine(StringBuilder buffer) {
buffer.append('\n');
buffer.append(getIndentSpaces(0));
@@ -45,7 +46,7 @@ private String getIndentSpaces(int indentOffset) {
private String getStringStyle(String value) {
StringBuilder sb = new StringBuilder();
sb.append('"');
- sb.append(value.replace("\"", "\\\"").replace("\n", "\\n").replace("\r", ""));
+ sb.append(value.replace("\\", "\\\\").replace("\"", "\\\"").replace("\n", "\\n").replace("\r", "").replace("\t", "\\t"));
sb.append('"');
return sb.toString();
}
@@ -95,7 +96,11 @@ private String getMapStyle(Map, ?> map) {
private String getDefaultStyle(Object value) {
return String.valueOf(value);
}
-
+
+ public static ToStringStyler getInstance() {
+ return threadLocal.get();
+ }
+
@Override
public void styleStart(StringBuilder buffer, Object obj) {
indent++;
@@ -157,7 +162,7 @@ public String style(Object value) {
} else if (value instanceof Map) {
return getMapStyle((Map, ?>) value);
} else {
- return getDefaultStyle(value);
+ return getDefaultStyle(value.toString());
}
}
}
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/oddgen/GenContext.java b/sqldev/src/main/java/org/utplsql/sqldev/model/oddgen/GenContext.java
index 30fdfbf9..41fc456e 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/oddgen/GenContext.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/oddgen/GenContext.java
@@ -40,7 +40,7 @@ public Connection getConn() {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("conn", conn)
.append("objectType", objectType)
.append("objectName", objectName)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/parser/PlsqlObject.java b/sqldev/src/main/java/org/utplsql/sqldev/model/parser/PlsqlObject.java
index 122cfc1c..51806d53 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/parser/PlsqlObject.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/parser/PlsqlObject.java
@@ -29,7 +29,7 @@ public class PlsqlObject {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("name", name)
.append("type", type)
.append("position", position)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/parser/Unit.java b/sqldev/src/main/java/org/utplsql/sqldev/model/parser/Unit.java
index 990e877c..c6bdc5f8 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/parser/Unit.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/parser/Unit.java
@@ -25,7 +25,7 @@ public class Unit {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("name", name)
.append("position", position)
.append("positionOfName", positionOfName)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/preference/PreferenceModel.java b/sqldev/src/main/java/org/utplsql/sqldev/model/preference/PreferenceModel.java
index 693ace05..33a3d190 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/preference/PreferenceModel.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/preference/PreferenceModel.java
@@ -70,7 +70,7 @@ public static PreferenceModel getInstance(final PropertyStorage prefs) {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append(KEY_USE_REALTIME_REPORTER, isUseRealtimeReporter())
.append(KEY_UNSHARED_WORKSHEET, isUnsharedWorksheet())
.append(KEY_RESET_PACKAGE, isResetPackage())
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Counter.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Counter.java
index e14dc387..255a52cc 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Counter.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Counter.java
@@ -35,7 +35,7 @@ public Counter() {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("disabled", disabled)
.append("success", success)
.append("failure", failure)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.java
index 2738bce1..2ca29452 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Expectation.java
@@ -28,7 +28,7 @@ public class Expectation {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("description", description)
.append("message", message)
.append("caller", caller)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Item.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Item.java
index 059102c5..5f578ca2 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Item.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Item.java
@@ -34,7 +34,7 @@ public Item() {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("id", id)
.append("startTime", startTime)
.append("endTime", endTime)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostEvent.java
index f24f8f52..73b4599a 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostEvent.java
@@ -29,7 +29,7 @@ public abstract class PostEvent extends RealtimeReporterEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("startTime", startTime)
.append("endTime", endTime)
.append("executionTime", executionTime)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostRunEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostRunEvent.java
index 8c8dbe2f..0a167432 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostRunEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostRunEvent.java
@@ -22,7 +22,7 @@ public class PostRunEvent extends PostEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
// ancestor
.append("startTime", getStartTime())
.append("endTime", getEndTime())
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostSuiteEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostSuiteEvent.java
index 292671c4..94671c33 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostSuiteEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostSuiteEvent.java
@@ -23,7 +23,7 @@ public class PostSuiteEvent extends PostEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
// ancestor
.append("startTime", getStartTime())
.append("endTime", getEndTime())
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostTestEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostTestEvent.java
index 92a43484..36b99abd 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostTestEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PostTestEvent.java
@@ -29,7 +29,7 @@ public class PostTestEvent extends PostEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
// ancestor
.append("startTime", getStartTime())
.append("endTime", getEndTime())
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreRunEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreRunEvent.java
index dd1f0db8..3e150fec 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreRunEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreRunEvent.java
@@ -27,7 +27,7 @@ public class PreRunEvent extends RealtimeReporterEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("items", items)
.append("totalNumberOfTests", totalNumberOfTests)
.toString();
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreSuiteEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreSuiteEvent.java
index 7b3ccf5c..7026952a 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreSuiteEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreSuiteEvent.java
@@ -23,7 +23,7 @@ public class PreSuiteEvent extends RealtimeReporterEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("id", id)
.toString();
}
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreTestEvent.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreTestEvent.java
index 1fdbd362..30019335 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreTestEvent.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/PreTestEvent.java
@@ -25,7 +25,7 @@ public class PreTestEvent extends RealtimeReporterEvent {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("id", id)
.append("testNumber", testNumber)
.append("totalNumberOfTests", totalNumberOfTests)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Run.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Run.java
index 9d6b3358..eaae53b2 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Run.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Run.java
@@ -21,6 +21,7 @@
import org.springframework.core.style.ToStringCreator;
import org.utplsql.sqldev.model.JsonToStringStyler;
+import org.utplsql.sqldev.model.URLTools;
@SuppressWarnings("unused")
public class Run {
@@ -45,7 +46,7 @@ public class Run {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("reporterId", reporterId)
.append("connectionName", connectionName)
.append("pathList", pathList)
@@ -82,7 +83,7 @@ public void setStartTime(final String startTime) {
public String getName() {
final String time = startTime.substring(11, 19);
- final String conn = connectionName != null ? connectionName.substring(15) : "n/a";
+ final String conn = connectionName != null ? URLTools.replaceHexChars(connectionName.substring(15)) : "n/a";
return time + " (" + conn + ")";
}
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Suite.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Suite.java
index b6ec4be2..1b9b1c1b 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Suite.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Suite.java
@@ -32,7 +32,7 @@ public Suite() {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
// ancestor
.append("id", getId())
.append("startTime", getStartTime())
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Test.java b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Test.java
index 69338662..d24b8203 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Test.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/runner/Test.java
@@ -37,7 +37,7 @@ public class Test extends Item {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
// ancestor
.append("id", getId())
.append("startTime", getStartTime())
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/ut/Annotation.java b/sqldev/src/main/java/org/utplsql/sqldev/model/ut/Annotation.java
index 3f69ef77..47e792c7 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/ut/Annotation.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/ut/Annotation.java
@@ -27,7 +27,7 @@ public class Annotation {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("objectOwner", objectOwner)
.append("objectName", objectName)
.append("name", name)
diff --git a/sqldev/src/main/java/org/utplsql/sqldev/model/ut/OutputLines.java b/sqldev/src/main/java/org/utplsql/sqldev/model/ut/OutputLines.java
index a8a041ae..75343d6b 100644
--- a/sqldev/src/main/java/org/utplsql/sqldev/model/ut/OutputLines.java
+++ b/sqldev/src/main/java/org/utplsql/sqldev/model/ut/OutputLines.java
@@ -24,7 +24,7 @@ public class OutputLines {
@Override
public String toString() {
- return new ToStringCreator(this, JsonToStringStyler.INSTANCE)
+ return new ToStringCreator(this, JsonToStringStyler.getInstance())
.append("lines", lines)
.append("numlines", numlines)
.toString();