Content-Length: 13712 | pFad | http://github.com/utPLSQL/utPLSQL-cli/pull/171.patch
thub.com
From eca111507a2760d64941e33b56d7d1da4c53374e Mon Sep 17 00:00:00 2001
From: pesse
Date: Tue, 10 Dec 2019 23:32:48 +0100
Subject: [PATCH 1/6] Move Locale-Initialization to Run-Action
Also configure Logger not before Run-Action and log it when we change
the locale based on LC_ALL environment variable
---
src/main/java/org/utplsql/cli/Cli.java | 3 ---
src/main/java/org/utplsql/cli/LocaleInitializer.java | 10 +++++++++-
src/main/java/org/utplsql/cli/RunAction.java | 1 +
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/utplsql/cli/Cli.java b/src/main/java/org/utplsql/cli/Cli.java
index 2671988..e330818 100644
--- a/src/main/java/org/utplsql/cli/Cli.java
+++ b/src/main/java/org/utplsql/cli/Cli.java
@@ -17,9 +17,6 @@ public static void main(String[] args) {
static int runPicocliWithExitCode(String[] args) {
- LoggerConfiguration.configure(LoggerConfiguration.ConfigLevel.NONE);
- LocaleInitializer.initLocale();
-
CommandLine commandLine = new CommandLine(UtplsqlPicocliCommand.class);
commandLine.setTrimQuotes(true);
diff --git a/src/main/java/org/utplsql/cli/LocaleInitializer.java b/src/main/java/org/utplsql/cli/LocaleInitializer.java
index 44a755a..bcb0fe7 100644
--- a/src/main/java/org/utplsql/cli/LocaleInitializer.java
+++ b/src/main/java/org/utplsql/cli/LocaleInitializer.java
@@ -1,5 +1,7 @@
package org.utplsql.cli;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.utplsql.api.EnvironmentVariableUtil;
import java.util.Locale;
@@ -18,6 +20,8 @@
*/
class LocaleInitializer {
+ private static final Logger logger = LoggerFactory.getLogger(RunAction.class);
+
private static final Pattern REGEX_LOCALE = Pattern.compile("^([a-zA-Z]+)[_-]([a-zA-Z]+)"); // We only need the very first part and are pretty forgiving in parsing
/**
@@ -27,7 +31,10 @@ static void initLocale() {
boolean localeChanged = setDefaultLocale(EnvironmentVariableUtil.getEnvValue("LC_ALL"));
if (!localeChanged) {
- setDefaultLocale(EnvironmentVariableUtil.getEnvValue("LANG"));
+ localeChanged = setDefaultLocale(EnvironmentVariableUtil.getEnvValue("LANG"));
+ }
+ if ( !localeChanged ) {
+ logger.debug("Java Locale not changed from LC_ALL or LANG environment variable");
}
}
@@ -54,6 +61,7 @@ private static boolean setDefaultLocale(String localeString) {
Locale l = new Locale.Builder().setLanguageTag(sb.toString()).build();
if (l != null) {
Locale.setDefault(l);
+ logger.debug("Java Locale changed to {}", l);
return true;
}
}
diff --git a/src/main/java/org/utplsql/cli/RunAction.java b/src/main/java/org/utplsql/cli/RunAction.java
index ba8c934..29d248b 100644
--- a/src/main/java/org/utplsql/cli/RunAction.java
+++ b/src/main/java/org/utplsql/cli/RunAction.java
@@ -48,6 +48,7 @@ public RunAction(RunCommandConfig config) {
void init() {
LoggerConfiguration.configure(config.getLogConfigLevel());
+ LocaleInitializer.initLocale();
}
public RunCommandConfig getConfig() {
From dddafb00f681da104b2452c08273b33c55b0c903 Mon Sep 17 00:00:00 2001
From: pesse
Date: Tue, 10 Dec 2019 23:33:13 +0100
Subject: [PATCH 2/6] Exclude the correct packages from java-api
---
pom.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/pom.xml b/pom.xml
index f05df21..3b38f34 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,15 +27,15 @@
compile
- com.oracle.jdbc
+ com.oracle.ojdbc
ucp
- com.oracle.jdbc
+ com.oracle.ojdbc
ojdbc8
- com.oracle.jdbc
+ com.oracle.ojdbc
orai18n
@@ -67,7 +67,7 @@
-
+
com.oracle.ojdbc
orai18n
${oracle.jdbc.version}
From ebda7369922a9566f6fdabfd5c6e892089232951 Mon Sep 17 00:00:00 2001
From: pesse
Date: Wed, 11 Dec 2019 00:02:41 +0100
Subject: [PATCH 3/6] Make ut_documentation_reporter the default for
commandline
Fixes #170
---
.../java/org/utplsql/cli/RunPicocliCommand.java | 2 +-
.../org/utplsql/cli/PicocliRunCommandTest.java | 14 ++++++++++++++
src/test/java/org/utplsql/cli/RunCommandIT.java | 14 ++++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/utplsql/cli/RunPicocliCommand.java b/src/main/java/org/utplsql/cli/RunPicocliCommand.java
index da0d871..f172564 100644
--- a/src/main/java/org/utplsql/cli/RunPicocliCommand.java
+++ b/src/main/java/org/utplsql/cli/RunPicocliCommand.java
@@ -99,7 +99,7 @@ public class RunPicocliCommand implements IRunCommand {
private List reporters = new ArrayList<>();
static class Format {
- @Option(names = {"-f", "--format"}, required = true, description = "Enables specified format reporting")
+ @Option(names = {"-f", "--format"}, required = true, description = "Enables specified format reporting", defaultValue = "ut_documentation_reporter")
String format;
@Option(names = {"-o"}, description = "Outputs format to file")
String outputFile;
diff --git a/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java b/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java
index c29d3fd..ea22627 100644
--- a/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java
+++ b/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java
@@ -163,6 +163,20 @@ void multipleReporters() throws Exception {
assertTrue(reporterConfig.isForceToScreen());
}
+ @Test
+ void outputWithDefaultReporter() throws Exception {
+ RunCommandConfig config = parseForConfig("run",
+ TestHelper.getConnectionString(),
+ "-o=output1.txt");
+
+ assertNotNull( config.getReporters() );
+
+ ReporterConfig reporterConfig = config.getReporters()[0];
+ assertEquals("ut_documentation_reporter", reporterConfig.getName());
+ assertEquals("output1.txt", reporterConfig.getOutput());
+ assertFalse(reporterConfig.isForceToScreen());
+ }
+
@Test
void sourceFileMapping() throws Exception {
RunCommandConfig config = parseForConfig("run",
diff --git a/src/test/java/org/utplsql/cli/RunCommandIT.java b/src/test/java/org/utplsql/cli/RunCommandIT.java
index 336f2a8..e6ac671 100644
--- a/src/test/java/org/utplsql/cli/RunCommandIT.java
+++ b/src/test/java/org/utplsql/cli/RunCommandIT.java
@@ -75,4 +75,18 @@ void run_withDbmsOutputEnabled() throws Exception {
assertValidReturnCode(result);
}
+
+ @Test
+ void run_withOutputButNoReporterDefined() throws Exception {
+
+ String outputFileName = "output_" + System.currentTimeMillis() + ".xml";
+ addTempPath(Paths.get(outputFileName));
+
+ int result = TestHelper.runApp("run",
+ TestHelper.getConnectionString(),
+ "-o=" + outputFileName,
+ "--failure-exit-code=2");
+
+ assertValidReturnCode(result);
+ }
}
From 1b044c23fc0616bccde804c3fc3e9e1e25d15793 Mon Sep 17 00:00:00 2001
From: pesse
Date: Wed, 11 Dec 2019 08:08:23 +0100
Subject: [PATCH 4/6] Moved default value to ReporterConfig instead of Command
line interpretation
---
src/main/java/org/utplsql/cli/RunPicocliCommand.java | 2 +-
src/main/java/org/utplsql/cli/config/ReporterConfig.java | 8 +++++++-
src/test/java/org/utplsql/cli/PicocliRunCommandTest.java | 2 +-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/utplsql/cli/RunPicocliCommand.java b/src/main/java/org/utplsql/cli/RunPicocliCommand.java
index f172564..da0d871 100644
--- a/src/main/java/org/utplsql/cli/RunPicocliCommand.java
+++ b/src/main/java/org/utplsql/cli/RunPicocliCommand.java
@@ -99,7 +99,7 @@ public class RunPicocliCommand implements IRunCommand {
private List reporters = new ArrayList<>();
static class Format {
- @Option(names = {"-f", "--format"}, required = true, description = "Enables specified format reporting", defaultValue = "ut_documentation_reporter")
+ @Option(names = {"-f", "--format"}, required = true, description = "Enables specified format reporting")
String format;
@Option(names = {"-o"}, description = "Outputs format to file")
String outputFile;
diff --git a/src/main/java/org/utplsql/cli/config/ReporterConfig.java b/src/main/java/org/utplsql/cli/config/ReporterConfig.java
index e68d6ab..e3e74ba 100644
--- a/src/main/java/org/utplsql/cli/config/ReporterConfig.java
+++ b/src/main/java/org/utplsql/cli/config/ReporterConfig.java
@@ -1,5 +1,7 @@
package org.utplsql.cli.config;
+import org.utplsql.api.reporter.CoreReporters;
+
import java.beans.ConstructorProperties;
public class ReporterConfig {
@@ -10,7 +12,11 @@ public class ReporterConfig {
@ConstructorProperties({"name", "output", "forceToScreen"})
public ReporterConfig(String name, String output, Boolean forceToScreen) {
- this.name = name;
+ if ( name != null ) {
+ this.name = name;
+ } else {
+ this.name = CoreReporters.UT_DOCUMENTATION_REPORTER.name();
+ }
this.output = output;
if (forceToScreen != null) this.forceToScreen = forceToScreen;
}
diff --git a/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java b/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java
index ea22627..809912d 100644
--- a/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java
+++ b/src/test/java/org/utplsql/cli/PicocliRunCommandTest.java
@@ -172,7 +172,7 @@ void outputWithDefaultReporter() throws Exception {
assertNotNull( config.getReporters() );
ReporterConfig reporterConfig = config.getReporters()[0];
- assertEquals("ut_documentation_reporter", reporterConfig.getName());
+ assertEquals("ut_documentation_reporter", reporterConfig.getName().toLowerCase());
assertEquals("output1.txt", reporterConfig.getOutput());
assertFalse(reporterConfig.isForceToScreen());
}
From 2be9ea4e41db329f614cbf2521bbb4516037a2f0 Mon Sep 17 00:00:00 2001
From: pesse
Date: Wed, 11 Dec 2019 08:27:32 +0100
Subject: [PATCH 5/6] Add section about charset handling to the documentation
---
README.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/README.md b/README.md
index 1368172..fd518ec 100644
--- a/README.md
+++ b/README.md
@@ -51,6 +51,22 @@ ALTER SESSION SET NLS_LANGUAGE='AMERICAN';
ALTER SESSION SET NLS_TERRITORY='AMERICA';
```
+## Charset
+
+Java will use the default charset of your system for any string output.
+You can change this by passing the `-Dfile.encoding` property to the JVM when running a java-application.
+To avoid changing the utPLSQL-cli shell- or batchscript, you can define `-Dfile.encoding` in the environment variable `JAVA_TOOL_OPTIONS`.
+This environment variable will be picked up and interpreted by the JVM:
+
+```
+export JAVA_TOOL_OPTIONS='-Dfile.encoding=utf8'
+utplsql run user/pw@connecstring
+
+> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf8
+```
+
+Make sure that the defined charset matches with the codepage your console is using.
+
## Usage
Currently, utPLSQL-cli supports the following sub-commands:
- run
From b78ac3826c1701ea7bc4db359e7e03977af687e8 Mon Sep 17 00:00:00 2001
From: pesse
Date: Wed, 11 Dec 2019 08:34:23 +0100
Subject: [PATCH 6/6] Set Logging to none in VersionInfo and Reporters-Command
---
src/main/java/org/utplsql/cli/ReportersCommand.java | 1 +
src/main/java/org/utplsql/cli/VersionInfoCommand.java | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/main/java/org/utplsql/cli/ReportersCommand.java b/src/main/java/org/utplsql/cli/ReportersCommand.java
index 257f2ca..f7dcddd 100644
--- a/src/main/java/org/utplsql/cli/ReportersCommand.java
+++ b/src/main/java/org/utplsql/cli/ReportersCommand.java
@@ -28,6 +28,7 @@ public class ReportersCommand implements ICommand {
@Override
public int run() {
+ LoggerConfiguration.configure(LoggerConfiguration.ConfigLevel.NONE);
try {
DataSource ds = DataSourceProvider.getDataSource(connectionString, 1);
diff --git a/src/main/java/org/utplsql/cli/VersionInfoCommand.java b/src/main/java/org/utplsql/cli/VersionInfoCommand.java
index d6a40ea..821d0ba 100644
--- a/src/main/java/org/utplsql/cli/VersionInfoCommand.java
+++ b/src/main/java/org/utplsql/cli/VersionInfoCommand.java
@@ -23,6 +23,7 @@ public class VersionInfoCommand implements ICommand {
boolean help;
public int run() {
+ LoggerConfiguration.configure(LoggerConfiguration.ConfigLevel.NONE);
System.out.println(CliVersionInfo.getInfo());
System.out.println(JavaApiVersionInfo.getInfo());
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/utPLSQL/utPLSQL-cli/pull/171.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy