Refactor Prov DB handling
[dmaap/datarouter.git] / datarouter-prov / src / main / java / org / onap / dmaap / datarouter / provisioning / beans / IngressRoute.java
index 555c5b6..d520a41 100644 (file)
@@ -32,7 +32,6 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;\r
 import java.sql.ResultSet;\r
 import java.sql.SQLException;\r
-import java.sql.Statement;\r
 import java.util.Collection;\r
 import java.util.Set;\r
 import java.util.SortedSet;\r
@@ -41,7 +40,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.codec.binary.Base64;\r
 import org.json.JSONArray;\r
 import org.json.JSONObject;\r
-import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
+import org.onap.dmaap.datarouter.provisioning.utils.ProvDbUtils;\r
 \r
 /**\r
  * The representation of one route in the Ingress Route Table.\r
@@ -137,21 +136,15 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
      */\r
     public static Set<IngressRoute> getIngressRoutesForSeq(int seq) {\r
         return getAllIngressRoutesForSQL(\r
-                "select SEQUENCE, FEEDID, USERID, SUBNET, NODESET from INGRESS_ROUTES where SEQUENCE = " + seq);\r
+            "select SEQUENCE, FEEDID, USERID, SUBNET, NODESET from INGRESS_ROUTES where SEQUENCE = " + seq);\r
     }\r
 \r
     private static SortedSet<IngressRoute> getAllIngressRoutesForSQL(String sql) {\r
         SortedSet<IngressRoute> set = new TreeSet<>();\r
-        try {\r
-            DB db = new DB();\r
-            @SuppressWarnings("resource")\r
-            Connection conn = db.getConnection();\r
-            try (Statement stmt = conn.createStatement()) {\r
-                try (ResultSet rs = stmt.executeQuery(sql)) {\r
-                    addIngressRouteToSet(set, rs);\r
-                }\r
-            }\r
-            db.release(conn);\r
+        try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+            PreparedStatement ps = conn.prepareStatement(sql);\r
+            ResultSet rs = ps.executeQuery()) {\r
+            addIngressRouteToSet(set, rs);\r
         } catch (SQLException e) {\r
             intlogger.error("PROV0001 getAllIngressRoutesForSQL: " + e.getMessage(), e);\r
         }\r
@@ -189,15 +182,12 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
 \r
     private static int getMax(String sql) {\r
         int rv = 0;\r
-        DB db = new DB();\r
-        try (Connection conn = db.getConnection();\r
-                Statement stmt = conn.createStatement()) {\r
-            try (ResultSet rs = stmt.executeQuery(sql)) {\r
-                if (rs.next()) {\r
-                    rv = rs.getInt("MAX");\r
-                }\r
+        try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+            PreparedStatement ps = conn.prepareStatement(sql);\r
+            ResultSet rs = ps.executeQuery(sql)) {\r
+            if (rs.next()) {\r
+                rv = rs.getInt("MAX");\r
             }\r
-            db.release(conn);\r
         } catch (SQLException e) {\r
             intlogger.error("PROV0002 getMax: " + e.getMessage(), e);\r
         }\r
@@ -214,10 +204,9 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
      */\r
     public static IngressRoute getIngressRoute(int feedid, String user, String subnet) {\r
         IngressRoute ir = null;\r
-        DB db = new DB();\r
-        String sql = "select SEQUENCE, NODESET from INGRESS_ROUTES where FEEDID = ? AND USERID = ? and SUBNET = ?";\r
-        try (Connection conn = db.getConnection();\r
-                PreparedStatement ps = conn.prepareStatement(sql)) {\r
+        try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+            PreparedStatement ps = conn.prepareStatement(\r
+                "select SEQUENCE, NODESET from INGRESS_ROUTES where FEEDID = ? AND USERID = ? and SUBNET = ?")) {\r
             ps.setInt(1, feedid);\r
             ps.setString(2, user);\r
             ps.setString(3, subnet);\r
@@ -228,7 +217,6 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
                     ir = new IngressRoute(seq, feedid, user, subnet, nodeset);\r
                 }\r
             }\r
-            db.release(conn);\r
         } catch (SQLException e) {\r
             intlogger.error("PROV0003 getIngressRoute: " + e.getMessage(), e);\r
         }\r
@@ -283,7 +271,7 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
      * Compare IP addresses as byte arrays to a subnet specified as a CIDR. Taken from\r
      * org.onap.dmaap.datarouter.node.SubnetMatcher and modified somewhat.\r
      */\r
-    public class SubnetMatcher {\r
+    public static class SubnetMatcher {\r
 \r
         private byte[] sn;\r
         private int len;\r
@@ -295,7 +283,7 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
          *\r
          * @param subnet The CIDR to match\r
          */\r
-        public SubnetMatcher(String subnet) {\r
+        SubnetMatcher(String subnet) {\r
             int index = subnet.lastIndexOf('/');\r
             if (index == -1) {\r
                 try {\r
@@ -359,14 +347,10 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
 \r
     private Collection<String> readNodes() {\r
         Collection<String> set = new TreeSet<>();\r
-        DB db = new DB();\r
-        String sql = "select NODEID from NODESETS where SETID = ?";\r
-        try (Connection conn = db.getConnection()) {\r
-            try (PreparedStatement ps = conn.prepareStatement(sql)) {\r
-                ps.setInt(1, nodelist);\r
-                addNodeToSet(set, ps);\r
-            }\r
-            db.release(conn);\r
+        try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+            PreparedStatement ps = conn.prepareStatement("select NODEID from NODESETS where SETID = ?")) {\r
+            ps.setInt(1, nodelist);\r
+            addNodeToSet(set, ps);\r
         } catch (SQLException e) {\r
             intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
         }\r
@@ -391,8 +375,8 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
     public boolean doDelete(Connection conn) {\r
         boolean rv = true;\r
         try (PreparedStatement ps = conn.prepareStatement(\r
-                 "delete from INGRESS_ROUTES where FEEDID = ? and USERID = ? and SUBNET = ?");\r
-                PreparedStatement ps2 = conn.prepareStatement("delete from NODESETS where SETID = ?")) {\r
+            "delete from INGRESS_ROUTES where FEEDID = ? and USERID = ? and SUBNET = ?");\r
+            PreparedStatement ps2 = conn.prepareStatement("delete from NODESETS where SETID = ?")) {\r
             // Delete the Ingress Route\r
             ps.setInt(1, feedid);\r
             ps.setString(2, userid);\r
@@ -403,7 +387,7 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
             ps2.execute();\r
         } catch (SQLException e) {\r
             rv = false;\r
-            intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
+            intlogger.error("PROV0007 doDelete: " + e.getMessage(), e);\r
         }\r
         return rv;\r
     }\r
@@ -412,8 +396,8 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
     public boolean doInsert(Connection conn) {\r
         boolean rv = false;\r
         try (PreparedStatement ps = conn.prepareStatement("insert into NODESETS (SETID, NODEID) values (?,?)");\r
-                PreparedStatement ps2 = conn.prepareStatement("insert into INGRESS_ROUTES (SEQUENCE, FEEDID, USERID,"\r
-                        + " SUBNET, NODESET) values (?, ?, ?, ?, ?)")) {\r
+            PreparedStatement ps2 = conn.prepareStatement("insert into INGRESS_ROUTES (SEQUENCE, FEEDID, USERID,"\r
+                + " SUBNET, NODESET) values (?, ?, ?, ?, ?)")) {\r
             // Create the NODESETS rows & set nodelist\r
             this.nodelist = getMaxNodeSetID() + 1;\r
             for (String node : nodes) {\r
@@ -431,7 +415,7 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
             ps2.execute();\r
             rv = true;\r
         } catch (SQLException e) {\r
-            intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
+            intlogger.error("PROV0005 doInsert: " + e.getMessage(), e);\r
         }\r
         return rv;\r
     }\r
@@ -460,7 +444,7 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
     @Override\r
     public String getKey() {\r
         return String\r
-                .format("%d/%s/%s/%d", feedid, (userid == null) ? "" : userid, (subnet == null) ? "" : subnet, seq);\r
+            .format("%d/%s/%s/%d", feedid, (userid == null) ? "" : userid, (subnet == null) ? "" : subnet, seq);\r
     }\r
 \r
     @Override\r
@@ -503,6 +487,6 @@ public class IngressRoute extends NodeClass implements Comparable<IngressRoute>
     @Override\r
     public String toString() {\r
         return String.format("INGRESS: feed=%d, userid=%s, subnet=%s, seq=%d", feedid, (userid == null) ? "" : userid,\r
-                (subnet == null) ? "" : subnet, seq);\r
+            (subnet == null) ? "" : subnet, seq);\r
     }\r
 }\r