You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2022/01/29 12:16:55 UTC

[hop] branch master updated: HOP-3202 Code cleanup and Sonar issues

This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new a8d8976  HOP-3202 Code cleanup and Sonar issues
     new 981fe07  Merge pull request #1301 from gvdutra/HOP-3202
a8d8976 is described below

commit a8d8976e5c74fe6f24f65f9ef361e872a7e44adb
Author: Gabriel Dutra <gv...@gmail.com>
AuthorDate: Thu Jan 27 21:00:40 2022 -0800

    HOP-3202 Code cleanup and Sonar issues
---
 core/src/main/java/org/apache/hop/core/Const.java  | 31 ++++++++--------
 .../test/java/org/apache/hop/core/ConstTest.java   | 42 +++++++++++-----------
 .../hop/neo4j/perspective/HopNeo4jPerspective.java |  3 +-
 .../apache/hop/neo4j/shared/DriverSingleton.java   |  3 +-
 .../org/apache/hop/neo4j/shared/NeoConnection.java | 37 ++++++++-----------
 .../apache/hop/neo4j/transforms/cypher/Cypher.java |  7 ++--
 .../stringoperations/StringOperations.java         |  4 +--
 .../apache/hop/ui/hopgui/dialog/NotePadDialog.java |  2 +-
 8 files changed, 60 insertions(+), 69 deletions(-)

diff --git a/core/src/main/java/org/apache/hop/core/Const.java b/core/src/main/java/org/apache/hop/core/Const.java
index ba14319..7e67390 100644
--- a/core/src/main/java/org/apache/hop/core/Const.java
+++ b/core/src/main/java/org/apache/hop/core/Const.java
@@ -21,6 +21,7 @@ import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.lang.text.StrBuilder;
+import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.util.EnvUtil;
 import org.apache.hop.core.util.Utils;
@@ -1235,7 +1236,7 @@ public class Const {
     // If the field already contains quotes, we don't touch it anymore, just
     // return the same string...
     // also return it if no spaces are found
-    if (string.indexOf(quote) >= 0 || (string.indexOf(' ') < 0 && string.indexOf('=') < 0)) {
+    if (string.contains(quote) || (string.indexOf(' ') < 0 && string.indexOf('=') < 0)) {
       return string;
     } else {
       return quote + string + quote;
@@ -1401,7 +1402,7 @@ public class Const {
     String os = getSystemOs();
     String s = "";
     @SuppressWarnings("unused")
-    Boolean errorOccured = false;
+    boolean errorOccured = false;
     if (os.equalsIgnoreCase("Windows NT")
         || os.equalsIgnoreCase("Windows 2000")
         || os.equalsIgnoreCase("Windows XP")
@@ -1417,7 +1418,7 @@ public class Const {
 
         while (!procDone(p)) {
           while ((s = stdInput.readLine()) != null) {
-            if (s.indexOf("MAC") >= 0) {
+            if (s.contains("MAC")) {
               int idx = s.indexOf('=');
               mac = s.substring(idx + 2);
             }
@@ -1474,7 +1475,7 @@ public class Const {
 
         while (!procDone(p)) {
           while ((s = stdInput.readLine()) != null) {
-            if (s.indexOf("MAC") >= 0) {
+            if (s.contains("MAC")) {
               int idx = s.indexOf("0x");
               mac = s.substring(idx + 2);
             }
@@ -2061,7 +2062,7 @@ public class Const {
     }
 
     // Return list as array
-    return splitList.toArray(new String[splitList.size()]);
+    return splitList != null ? splitList.toArray(new String[splitList.size()]) : new String[0];
   }
 
   private static String removeEnclosure(String stringToSplit, String enclosure) {
@@ -2091,9 +2092,7 @@ public class Const {
       return new String[] {};
     }
     HashSet<String> set = new HashSet<>();
-    for (String string : strings) {
-      set.add(string);
-    }
+    Collections.addAll(set, strings);
     List<String> list = new ArrayList<>(set);
     Collections.sort(list);
     return list.toArray(new String[0]);
@@ -2254,9 +2253,7 @@ public class Const {
     String[] nums = Const.getNumberFormats();
     int totsize = dats.length + nums.length;
     String[] formats = new String[totsize];
-    for (int x = 0; x < dats.length; x++) {
-      formats[x] = dats[x];
-    }
+    System.arraycopy(dats, 0, formats, 0, dats.length);
     for (int x = 0; x < nums.length; x++) {
       formats[dats.length + x] = nums[x];
     }
@@ -2548,7 +2545,7 @@ public class Const {
    * @param dateFormat the time format
    * @return date = input + time
    */
-  public static Date addTimeToDate(Date input, String time, String dateFormat) throws Exception {
+  public static Date addTimeToDate(Date input, String time, String dateFormat) throws HopException {
     if (Utils.isEmpty(time)) {
       return input;
     }
@@ -2561,7 +2558,7 @@ public class Const {
   }
 
   // Decodes a time value in specified date format and returns it as milliseconds since midnight.
-  public static int decodeTime(String s, String dateFormat) throws Exception {
+  public static int decodeTime(String s, String dateFormat) throws HopException {
     SimpleDateFormat f = new SimpleDateFormat(dateFormat);
     TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
     f.setTimeZone(utcTimeZone);
@@ -2569,7 +2566,7 @@ public class Const {
     ParsePosition p = new ParsePosition(0);
     Date d = f.parse(s, p);
     if (d == null) {
-      throw new Exception("Invalid time value " + dateFormat + ": \"" + s + "\".");
+      throw new HopException("Invalid time value " + dateFormat + ": \"" + s + "\".");
     }
     return (int) d.getTime();
   }
@@ -2597,7 +2594,7 @@ public class Const {
     return counter;
   }
 
-  public static String[] GetAvailableFontNames() {
+  public static String[] getAvailableFontNames() {
     GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
     Font[] fonts = ge.getAllFonts();
     String[] fontName = new String[fonts.length];
@@ -2669,7 +2666,7 @@ public class Const {
    *     enter an infinite loop. 3- For a null pad, it would throw an NPE 4- For a null valueToPad,
    *     it would throw an NPE
    */
-  public static String Lpad(String valueToPad, String filler, int size) {
+  public static String lpad(String valueToPad, String filler, int size) {
     if ((size == 0) || (valueToPad == null) || (filler == null)) {
       return valueToPad;
     }
@@ -2709,7 +2706,7 @@ public class Const {
    *     zero characters ("") the former method would enter an infinite loop. 3- For a null pad, it
    *     would throw an NPE 4- For a null valueToPad, it would throw an NPE
    */
-  public static String Rpad(String valueToPad, String filler, int size) {
+  public static String rpad(String valueToPad, String filler, int size) {
     if ((size == 0) || (valueToPad == null) || (filler == null)) {
       return valueToPad;
     }
diff --git a/core/src/test/java/org/apache/hop/core/ConstTest.java b/core/src/test/java/org/apache/hop/core/ConstTest.java
index a8b5d6c..28c4bd7 100644
--- a/core/src/test/java/org/apache/hop/core/ConstTest.java
+++ b/core/src/test/java/org/apache/hop/core/ConstTest.java
@@ -2665,7 +2665,7 @@ public class ConstTest {
 
   @Test
   public void testGetAvailableFontNames() {
-    assertTrue(Const.GetAvailableFontNames().length > 0);
+    assertTrue(Const.getAvailableFontNames().length > 0);
   }
 
   @Test
@@ -2693,33 +2693,33 @@ public class ConstTest {
   @Test
   public void testLpad() {
     final String s = "pad me";
-    assertEquals(s, Const.Lpad(s, "-", 0));
-    assertEquals(s, Const.Lpad(s, "-", 3));
-    assertEquals("--" + s, Const.Lpad(s, "-", 8));
+    assertEquals(s, Const.lpad(s, "-", 0));
+    assertEquals(s, Const.lpad(s, "-", 3));
+    assertEquals("--" + s, Const.lpad(s, "-", 8));
     // add in some edge cases
-    assertEquals(s, Const.Lpad(s, null, 15)); // No NPE
-    assertEquals(s, Const.Lpad(s, "", 15));
-    assertEquals(s, Const.Lpad(s, "*", 5));
-    assertEquals(null, Const.Lpad(null, "*", 15));
-    assertEquals("****Test", Const.Lpad("Test", "**********", 8));
-    assertEquals("*Test", Const.Lpad("Test", "**", 5));
-    assertEquals("****", Const.Lpad("", "*", 4));
+    assertEquals(s, Const.lpad(s, null, 15)); // No NPE
+    assertEquals(s, Const.lpad(s, "", 15));
+    assertEquals(s, Const.lpad(s, "*", 5));
+    assertEquals(null, Const.lpad(null, "*", 15));
+    assertEquals("****Test", Const.lpad("Test", "**********", 8));
+    assertEquals("*Test", Const.lpad("Test", "**", 5));
+    assertEquals("****", Const.lpad("", "*", 4));
   }
 
   @Test
   public void testRpad() {
     final String s = "pad me";
-    assertEquals(s, Const.Rpad(s, "-", 0));
-    assertEquals(s, Const.Rpad(s, "-", 3));
-    assertEquals(s + "--", Const.Rpad(s, "-", 8));
+    assertEquals(s, Const.rpad(s, "-", 0));
+    assertEquals(s, Const.rpad(s, "-", 3));
+    assertEquals(s + "--", Const.rpad(s, "-", 8));
     // add in some edge cases
-    assertEquals(s, Const.Rpad(s, null, 15)); // No NPE
-    assertEquals(s, Const.Rpad(s, "", 15));
-    assertEquals(s, Const.Rpad(s, "*", 5));
-    assertEquals(null, Const.Rpad(null, "*", 15));
-    assertEquals("Test****", Const.Rpad("Test", "**********", 8));
-    assertEquals("Test*", Const.Rpad("Test", "**", 5));
-    assertEquals("****", Const.Rpad("", "*", 4));
+    assertEquals(s, Const.rpad(s, null, 15)); // No NPE
+    assertEquals(s, Const.rpad(s, "", 15));
+    assertEquals(s, Const.rpad(s, "*", 5));
+    assertEquals(null, Const.rpad(null, "*", 15));
+    assertEquals("Test****", Const.rpad("Test", "**********", 8));
+    assertEquals("Test*", Const.rpad("Test", "**", 5));
+    assertEquals("****", Const.rpad("", "*", 4));
   }
 
   @Test
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/perspective/HopNeo4jPerspective.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/perspective/HopNeo4jPerspective.java
index a8da8d2..dd77976 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/perspective/HopNeo4jPerspective.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/perspective/HopNeo4jPerspective.java
@@ -20,6 +20,7 @@ package org.apache.hop.neo4j.perspective;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.Props;
+import org.apache.hop.core.exception.HopConfigException;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.core.logging.ILogChannel;
@@ -901,7 +902,7 @@ public class HopNeo4jPerspective implements IHopPerspective {
     }
   }
 
-  private void openItem(NeoConnection connection, String id, String name, String type) {
+  private void openItem(NeoConnection connection, String id, String name, String type) throws HopConfigException {
 
     try (Driver driver = connection.getDriver(hopGui.getLog(), hopGui.getVariables())) {
       try (Session session =
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/DriverSingleton.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/DriverSingleton.java
index 70b5414..42825cd 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/DriverSingleton.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/DriverSingleton.java
@@ -18,6 +18,7 @@
 
 package org.apache.hop.neo4j.shared;
 
+import org.apache.hop.core.exception.HopConfigException;
 import org.apache.hop.core.logging.ILogChannel;
 import org.apache.hop.core.variables.IVariables;
 import org.neo4j.driver.Driver;
@@ -44,7 +45,7 @@ public class DriverSingleton {
     return singleton;
   }
 
-  public static Driver getDriver(ILogChannel log, IVariables variables, NeoConnection connection) {
+  public static Driver getDriver(ILogChannel log, IVariables variables, NeoConnection connection) throws HopConfigException {
     DriverSingleton ds = getInstance();
 
     String key = getDriverKey(connection, variables);
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java
index 673a19f..d313804 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java
@@ -20,9 +20,11 @@ package org.apache.hop.neo4j.shared;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.encryption.Encr;
+import org.apache.hop.core.exception.HopConfigException;
+import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.logging.ILogChannel;
 import org.apache.hop.core.logging.LogChannel;
-import org.apache.hop.core.row.value.ValueMetaString;
+import org.apache.hop.core.row.value.ValueMetaBase;
 import org.apache.hop.core.util.Utils;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.HopMetadata;
@@ -35,6 +37,7 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URLEncoder;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
@@ -183,10 +186,10 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
   /**
    * Test this connection to Neo4j
    *
-   * @throws Exception In case anything goes wrong
+   * @throws HopException In case anything goes wrong
    * @param variables
    */
-  public void test(IVariables variables) throws Exception {
+  public void test(IVariables variables) throws HopException {
 
     try (Driver driver = getDriver(LogChannel.GENERAL, variables)) {
       SessionConfig.Builder builder = SessionConfig.builder();
@@ -202,7 +205,7 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
         int zero = value.asInt();
         assert (zero == 0);
       } catch (Exception e) {
-        throw new Exception("Unable to connect to database '" + name + "' : " + e.getMessage(), e);
+        throw new HopException("Unable to connect to database '" + name + "' : " + e.getMessage(), e);
       }
     }
   }
@@ -223,9 +226,7 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
       List<String> serverStrings = new ArrayList<>();
       String serversString = variables.resolve(server);
       if (isUsingRouting(variables)) {
-        for (String serverString : serversString.split(",")) {
-          serverStrings.add(serverString);
-        }
+        Collections.addAll(serverStrings, serversString.split(","));
       } else {
         serverStrings.add(serversString);
       }
@@ -313,7 +314,7 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
     if (!Utils.isEmpty(usingEncryptionVariable)) {
       String value = variables.resolve(usingEncryptionVariable);
       if (!Utils.isEmpty(value)) {
-        return ValueMetaString.convertStringToBoolean(value);
+        return ValueMetaBase.convertStringToBoolean(value);
       }
     }
     return false;
@@ -323,23 +324,13 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
     if (!Utils.isEmpty(trustAllCertificatesVariable)) {
       String value = variables.resolve(trustAllCertificatesVariable);
       if (!Utils.isEmpty(value)) {
-        return ValueMetaString.convertStringToBoolean(value);
-      }
-    }
-    return false;
-  }
-
-  public boolean version4VariableSet(IVariables variables) {
-    if (!Utils.isEmpty(version4Variable)) {
-      String value = variables.resolve(version4Variable);
-      if (!Utils.isEmpty(value)) {
-        return ValueMetaString.convertStringToBoolean(value);
+        return ValueMetaBase.convertStringToBoolean(value);
       }
     }
     return false;
   }
 
-  public Driver getDriver(ILogChannel log, IVariables variables) {
+  public Driver getDriver(ILogChannel log, IVariables variables) throws HopConfigException {
 
     try {
       List<URI> uris = getURIs(variables);
@@ -414,7 +405,7 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
             uris.get(0), AuthTokens.basic(realUsername, realPassword), config);
       }
     } catch (URISyntaxException e) {
-      throw new RuntimeException(
+      throw new HopConfigException(
           "URI syntax problem, check your settings, hostnames especially.  For routing use comma separated server values.",
           e);
     }
@@ -424,7 +415,7 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
     if (!Utils.isEmpty(routingVariable)) {
       String value = variables.resolve(routingVariable);
       if (!Utils.isEmpty(value)) {
-        return ValueMetaString.convertStringToBoolean(value);
+        return ValueMetaBase.convertStringToBoolean(value);
       }
     }
     return routing;
@@ -442,7 +433,7 @@ public class NeoConnection extends HopMetadataBase implements IHopMetadata {
       return isAutomatic();
     } else {
       String automaticString = variables.resolve(automaticVariable);
-      Boolean auto = ValueMetaString.convertStringToBoolean(automaticString);
+      Boolean auto = ValueMetaBase.convertStringToBoolean(automaticString);
       return auto != null && auto;
     }
   }
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/Cypher.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/Cypher.java
index 8909e71..d0834e5 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/Cypher.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/Cypher.java
@@ -19,6 +19,7 @@ package org.apache.hop.neo4j.transforms.cypher;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.Const;
+import org.apache.hop.core.exception.HopConfigException;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.exception.HopTransformException;
 import org.apache.hop.core.row.IValueMeta;
@@ -141,12 +142,12 @@ public class Cypher extends BaseTransform<CypherMeta, CypherData>
     }
   }
 
-  private void createDriverSession() {
+  private void createDriverSession() throws HopConfigException {
     data.driver = data.neoConnection.getDriver(log, this);
     data.session = data.neoConnection.getSession(log, data.driver, this);
   }
 
-  private void reconnect() {
+  private void reconnect() throws HopConfigException {
     closeSessionDriver();
 
     log.logBasic("RECONNECTING to database");
@@ -312,7 +313,7 @@ public class Cypher extends BaseTransform<CypherMeta, CypherData>
 
   private void runCypherStatementsBatch() throws HopException {
 
-    if (data.cypherStatements == null || data.cypherStatements.size() == 0) {
+    if (data.cypherStatements == null || data.cypherStatements.isEmpty()) {
       // Nothing to see here, move along
       return;
     }
diff --git a/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperations.java b/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperations.java
index b7ff6a2..09ca619 100644
--- a/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperations.java
+++ b/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperations.java
@@ -93,10 +93,10 @@ public class StringOperations extends BaseTransform<StringOperationsMeta, String
     if (!Utils.isEmpty(rcode)) {
       switch (padType) {
         case StringOperationsMeta.PADDING_LEFT:
-          rcode = Const.Lpad(rcode, padChar, padLen);
+          rcode = Const.lpad(rcode, padChar, padLen);
           break;
         case StringOperationsMeta.PADDING_RIGHT:
-          rcode = Const.Rpad(rcode, padChar, padLen);
+          rcode = Const.rpad(rcode, padChar, padLen);
           break;
         default:
           break;
diff --git a/ui/src/main/java/org/apache/hop/ui/hopgui/dialog/NotePadDialog.java b/ui/src/main/java/org/apache/hop/ui/hopgui/dialog/NotePadDialog.java
index d53c502..21acd11 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/dialog/NotePadDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/dialog/NotePadDialog.java
@@ -199,7 +199,7 @@ public class NotePadDialog extends Dialog {
     fdlFontName.right = new FormAttachment(middle, -margin);
     wlFontName.setLayoutData(fdlFontName);
     wFontName = new CCombo(wNoteFontComp, SWT.BORDER | SWT.READ_ONLY);
-    wFontName.setItems(Const.GetAvailableFontNames());
+    wFontName.setItems(Const.getAvailableFontNames());
     props.setLook(wFontName);
     FormData fdFontName = new FormData();
     fdFontName.left = new FormAttachment(middle, 0);