X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=datarouter-prov%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdatarouter%2Fprovisioning%2Fbeans%2FGroup.java;h=4d6b0ee2fdb82025197818fef92200848c35dd3a;hb=f20778ffa99aa9c6f30a0f84112a5392b259ea63;hp=a021a60e6e3c6cda9d8674ee98e1b77844c5c2d6;hpb=a1cc0279360b09663c1b59fd0b89a1c2e081dfbd;p=dmaap%2Fdatarouter.git diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/Group.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/Group.java index a021a60e..4d6b0ee2 100644 --- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/Group.java +++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/Group.java @@ -23,6 +23,8 @@ package org.onap.dmaap.datarouter.provisioning.beans; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import java.io.InvalidObjectException; import java.sql.Connection; import java.sql.PreparedStatement; @@ -33,11 +35,9 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; - -import org.apache.log4j.Logger; +import java.util.Objects; import org.json.JSONObject; import org.onap.dmaap.datarouter.provisioning.utils.DB; -import org.onap.dmaap.datarouter.provisioning.utils.URLUtilities; /** * The representation of a Subscription. Subscriptions can be retrieved from the DB, or stored/updated in the DB. @@ -46,8 +46,11 @@ import org.onap.dmaap.datarouter.provisioning.utils.URLUtilities; * @version $Id: Group.java,v 1.0 2016/07/19 */ public class Group extends Syncable { - private static Logger intlogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.internal"); - private static int next_groupid = getMaxGroupID() + 1; + + private static final String GROUP_ID_CONST = "groupid"; + private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog"); + private static int nextGroupid = getMaxGroupID() + 1; + private static final String SQLEXCEPTION = "SQLException: "; private int groupid; private String authid; @@ -57,6 +60,60 @@ public class Group extends Syncable { private String members; private Date last_mod; + public Group() { + this("", "", ""); + } + + public Group(String name, String desc, String members) { + this.groupid = -1; + this.authid = ""; + this.name = name; + this.description = desc; + this.members = members; + this.classification = ""; + this.last_mod = new Date(); + } + + + public Group(ResultSet rs) throws SQLException { + this.groupid = rs.getInt("GROUPID"); + this.authid = rs.getString("AUTHID"); + this.name = rs.getString("NAME"); + this.description = rs.getString("DESCRIPTION"); + this.classification = rs.getString("CLASSIFICATION"); + this.members = rs.getString("MEMBERS"); + this.last_mod = rs.getDate("LAST_MOD"); + } + + + public Group(JSONObject jo) throws InvalidObjectException { + this("", "", ""); + try { + // The JSONObject is assumed to contain a vnd.dmaap-dr.group representation + this.groupid = jo.optInt(GROUP_ID_CONST, -1); + String gname = jo.getString("name"); + String gdescription = jo.getString("description"); + + this.authid = jo.getString("authid"); + this.name = gname; + this.description = gdescription; + this.classification = jo.getString("classification"); + this.members = jo.getString("members"); + + if (gname.length() > 50) { + throw new InvalidObjectException("Group name is too long"); + } + if (gdescription.length() > 256) { + throw new InvalidObjectException("Group Description is too long"); + } + } catch (InvalidObjectException e) { + throw e; + } catch (Exception e) { + intlogger.warn("Invalid JSON: " + e.getMessage(), e); + throw new InvalidObjectException("Invalid JSON: " + e.getMessage()); + } + } + public static Group getGroupMatching(Group gup) { String sql = String.format( @@ -83,7 +140,7 @@ public class Group extends Syncable { return list.size() > 0 ? list.get(0) : null; } - public static Group getGroupByAuthId(String id) { + static Group getGroupByAuthId(String id) { String sql = "select * from GROUPS where AUTHID = '" + id + "'"; List list = getGroupsForSQL(sql); return list.size() > 0 ? list.get(0) : null; @@ -94,151 +151,51 @@ public class Group extends Syncable { } private static List getGroupsForSQL(String sql) { - List list = new ArrayList(); + List list = new ArrayList<>(); try { DB db = new DB(); @SuppressWarnings("resource") Connection conn = db.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(sql); - while (rs.next()) { - Group group = new Group(rs); - list.add(group); + try (Statement stmt = conn.createStatement()) { + try (ResultSet rs = stmt.executeQuery(sql)) { + while (rs.next()) { + Group group = new Group(rs); + list.add(group); + } + } } - rs.close(); - stmt.close(); db.release(conn); } catch (SQLException e) { - e.printStackTrace(); + intlogger.error("PROV0009 getGroupsForSQL: " + e.getMessage(), e); } return list; } - public static int getMaxGroupID() { + private static int getMaxGroupID() { int max = 0; try { DB db = new DB(); @SuppressWarnings("resource") Connection conn = db.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery("select MAX(groupid) from GROUPS"); - if (rs.next()) { - max = rs.getInt(1); + try (Statement stmt = conn.createStatement()) { + try (ResultSet rs = stmt.executeQuery("select MAX(groupid) from GROUPS")) { + if (rs.next()) { + max = rs.getInt(1); + } + } } - rs.close(); - stmt.close(); db.release(conn); } catch (SQLException e) { - intlogger.info("getMaxSubID: " + e.getMessage()); - e.printStackTrace(); + intlogger.info("PROV0001 getMaxSubID: " + e.getMessage(), e); } return max; } - public static Collection getGroupsByClassfication(String classfication) { - List list = new ArrayList(); - String sql = "select * from GROUPS where classification = '" + classfication + "'"; - try { - DB db = new DB(); - @SuppressWarnings("resource") - Connection conn = db.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(sql); - while (rs.next()) { - int groupid = rs.getInt("groupid"); - //list.add(URLUtilities.generateSubscriptionURL(groupid)); - } - rs.close(); - stmt.close(); - db.release(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - return list; - } - - /** - * Return a count of the number of active subscriptions in the DB. - * - * @return the count - */ - public static int countActiveSubscriptions() { - int count = 0; - try { - DB db = new DB(); - @SuppressWarnings("resource") - Connection conn = db.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery("select count(*) from SUBSCRIPTIONS"); - if (rs.next()) { - count = rs.getInt(1); - } - rs.close(); - stmt.close(); - db.release(conn); - } catch (SQLException e) { - intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage()); - e.printStackTrace(); - } - return count; - } - - public Group() { - this("", "", ""); - } - - public Group(String name, String desc, String members) { - this.groupid = -1; - this.authid = ""; - this.name = name; - this.description = desc; - this.members = members; - this.classification = ""; - this.last_mod = new Date(); - } - - - public Group(ResultSet rs) throws SQLException { - this.groupid = rs.getInt("GROUPID"); - this.authid = rs.getString("AUTHID"); - this.name = rs.getString("NAME"); - this.description = rs.getString("DESCRIPTION"); - this.classification = rs.getString("CLASSIFICATION"); - this.members = rs.getString("MEMBERS"); - this.last_mod = rs.getDate("LAST_MOD"); - } - - - public Group(JSONObject jo) throws InvalidObjectException { - this("", "", ""); - try { - // The JSONObject is assumed to contain a vnd.att-dr.group representation - this.groupid = jo.optInt("groupid", -1); - String gname = jo.getString("name"); - String gdescription = jo.getString("description"); - - this.authid = jo.getString("authid"); - this.name = gname; - this.description = gdescription; - this.classification = jo.getString("classification"); - this.members = jo.getString("members"); - - if (gname.length() > 50) - throw new InvalidObjectException("Group name is too long"); - if (gdescription.length() > 256) - throw new InvalidObjectException("Group Description is too long"); - } catch (InvalidObjectException e) { - throw e; - } catch (Exception e) { - throw new InvalidObjectException("invalid JSON: " + e.getMessage()); - } - } - public int getGroupid() { return groupid; } - public static Logger getIntlogger() { + public static EELFLogger getIntlogger() { return intlogger; } @@ -246,18 +203,10 @@ public class Group extends Syncable { this.groupid = groupid; } - public static void setIntlogger(Logger intlogger) { + public static void setIntlogger(EELFLogger intlogger) { Group.intlogger = intlogger; } - public static int getNext_groupid() { - return next_groupid; - } - - public static void setNext_groupid(int next_groupid) { - Group.next_groupid = next_groupid; - } - public String getAuthid() { return authid; } @@ -294,23 +243,10 @@ public class Group extends Syncable { return members; } - public void setMembers(String members) { - this.members = members; - } - - public Date getLast_mod() { - return last_mod; - } - - public void setLast_mod(Date last_mod) { - this.last_mod = last_mod; - } - - @Override public JSONObject asJSONObject() { JSONObject jo = new JSONObject(); - jo.put("groupid", groupid); + jo.put(GROUP_ID_CONST, groupid); jo.put("authid", authid); jo.put("name", name); jo.put("description", description); @@ -327,12 +263,12 @@ public class Group extends Syncable { try { if (groupid == -1) { // No feed ID assigned yet, so assign the next available one - setGroupid(next_groupid++); + setGroupid(nextGroupid++); } // In case we insert a gropup from synchronization - if (groupid > next_groupid) - next_groupid = groupid + 1; - + if (groupid > nextGroupid) { + nextGroupid = groupid + 1; + } // Create the GROUPS row String sql = "insert into GROUPS (GROUPID, AUTHID, NAME, DESCRIPTION, CLASSIFICATION, MEMBERS) values (?, ?, ?, ?, ?, ?)"; @@ -347,13 +283,14 @@ public class Group extends Syncable { ps.close(); } catch (SQLException e) { rv = false; - intlogger.warn("PROV0005 doInsert: " + e.getMessage()); - e.printStackTrace(); + intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e); } finally { try { - ps.close(); + if (ps != null) { + ps.close(); + } } catch (SQLException e) { - e.printStackTrace(); + intlogger.error(SQLEXCEPTION + e.getMessage(), e); } } return rv; @@ -375,13 +312,14 @@ public class Group extends Syncable { ps.executeUpdate(); } catch (SQLException e) { rv = false; - intlogger.warn("PROV0006 doUpdate: " + e.getMessage()); - e.printStackTrace(); + intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e); } finally { try { - ps.close(); + if (ps != null) { + ps.close(); + } } catch (SQLException e) { - e.printStackTrace(); + intlogger.error(SQLEXCEPTION + e.getMessage(), e); } } return rv; @@ -398,13 +336,14 @@ public class Group extends Syncable { ps.execute(); } catch (SQLException e) { rv = false; - intlogger.warn("PROV0007 doDelete: " + e.getMessage()); - e.printStackTrace(); + intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e); } finally { try { - ps.close(); + if (ps != null) { + ps.close(); + } } catch (SQLException e) { - e.printStackTrace(); + intlogger.error(SQLEXCEPTION + e.getMessage(), e); } } return rv; @@ -417,21 +356,28 @@ public class Group extends Syncable { @Override public boolean equals(Object obj) { - if (!(obj instanceof Group)) + if (!(obj instanceof Group)) { return false; + } Group os = (Group) obj; - if (groupid != os.groupid) + if (groupid != os.groupid) { return false; - if (authid != os.authid) + } + if (authid != os.authid) { return false; - if (!name.equals(os.name)) + } + if (!name.equals(os.name)) { return false; - if (description != os.description) + } + if (description != os.description) { return false; - if (!classification.equals(os.classification)) + } + if (!classification.equals(os.classification)) { return false; - if (!members.equals(os.members)) + } + if (!members.equals(os.members)) { return false; + } return true; } @@ -440,4 +386,9 @@ public class Group extends Syncable { public String toString() { return "GROUP: groupid=" + groupid; } + + @Override + public int hashCode() { + return Objects.hash(groupid, authid, name, description, classification, members, last_mod); + } }