import java.sql.ResultSet;\r
import java.sql.SQLException;\r
import java.sql.Statement;\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Date;\r
-import java.util.List;\r
+import java.util.*;\r
\r
-import org.apache.log4j.Logger;\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import org.json.JSONObject;\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
-import org.onap.dmaap.datarouter.provisioning.utils.URLUtilities;\r
\r
/**\r
* The representation of a Subscription. Subscriptions can be retrieved from the DB, or stored/updated in the DB.\r
* @version $Id: Group.java,v 1.0 2016/07/19\r
*/\r
public class Group extends Syncable {\r
- private static Logger intlogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.internal");\r
+\r
+ private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
private static int next_groupid = getMaxGroupID() + 1;\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
\r
private int groupid;\r
private String authid;\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery(sql);\r
- while (rs.next()) {\r
- Group group = new Group(rs);\r
- list.add(group);\r
+ try (Statement stmt = conn.createStatement()) {\r
+ try (ResultSet rs = stmt.executeQuery(sql)) {\r
+ while (rs.next()) {\r
+ Group group = new Group(rs);\r
+ list.add(group);\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ intlogger.error("PROV0009 getGroupsForSQL: " + e.getMessage(), e);\r
}\r
return list;\r
}\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery("select MAX(groupid) from GROUPS");\r
- if (rs.next()) {\r
- max = rs.getInt(1);\r
+ try (Statement stmt = conn.createStatement()) {\r
+ try (ResultSet rs = stmt.executeQuery("select MAX(groupid) from GROUPS")) {\r
+ if (rs.next()) {\r
+ max = rs.getInt(1);\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.info("getMaxSubID: " + e.getMessage());\r
- e.printStackTrace();\r
+ intlogger.info("PROV0001 getMaxSubID: " + e.getMessage(), e);\r
}\r
return max;\r
}\r
\r
public static Collection<String> getGroupsByClassfication(String classfication) {\r
- List<String> list = new ArrayList<String>();\r
- String sql = "select * from GROUPS where classification = '" + classfication + "'";\r
+ List<String> list = new ArrayList<>();\r
+ String sql = "select * from GROUPS where classification = ?";\r
try {\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery(sql);\r
- while (rs.next()) {\r
- int groupid = rs.getInt("groupid");\r
- //list.add(URLUtilities.generateSubscriptionURL(groupid));\r
+ try (PreparedStatement stmt = conn.prepareStatement(sql)) {\r
+ stmt.setString(1, classfication);\r
+ try (ResultSet rs = stmt.executeQuery()) {\r
+ while (rs.next()) {\r
+ int groupid = rs.getInt("groupid");\r
+\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ intlogger.error("PROV0002 getGroupsByClassfication: " + e.getMessage(), e);\r
}\r
return list;\r
}\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery("select count(*) from SUBSCRIPTIONS");\r
- if (rs.next()) {\r
- count = rs.getInt(1);\r
+ try (Statement stmt = conn.createStatement()) {\r
+ try (ResultSet rs = stmt.executeQuery("select count(*) from SUBSCRIPTIONS")) {\r
+ if (rs.next()) {\r
+ count = rs.getInt(1);\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage());\r
- e.printStackTrace();\r
+ intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage(), e);\r
}\r
return count;\r
}\r
public Group(JSONObject jo) throws InvalidObjectException {\r
this("", "", "");\r
try {\r
- // The JSONObject is assumed to contain a vnd.att-dr.group representation\r
+ // The JSONObject is assumed to contain a vnd.dmaap-dr.group representation\r
this.groupid = jo.optInt("groupid", -1);\r
String gname = jo.getString("name");\r
String gdescription = jo.getString("description");\r
this.classification = jo.getString("classification");\r
this.members = jo.getString("members");\r
\r
- if (gname.length() > 50)\r
+ if (gname.length() > 50) {\r
throw new InvalidObjectException("Group name is too long");\r
- if (gdescription.length() > 256)\r
+ }\r
+ if (gdescription.length() > 256) {\r
throw new InvalidObjectException("Group Description is too long");\r
+ }\r
} catch (InvalidObjectException e) {\r
throw e;\r
} catch (Exception e) {\r
- throw new InvalidObjectException("invalid JSON: " + e.getMessage());\r
+ intlogger.warn("Invalid JSON: " + e.getMessage(), e);\r
+ throw new InvalidObjectException("Invalid JSON: " + e.getMessage());\r
}\r
}\r
\r
return groupid;\r
}\r
\r
- public static Logger getIntlogger() {\r
+ public static EELFLogger getIntlogger() {\r
return intlogger;\r
}\r
\r
this.groupid = groupid;\r
}\r
\r
- public static void setIntlogger(Logger intlogger) {\r
+ public static void setIntlogger(EELFLogger intlogger) {\r
Group.intlogger = intlogger;\r
}\r
\r
setGroupid(next_groupid++);\r
}\r
// In case we insert a gropup from synchronization\r
- if (groupid > next_groupid)\r
+ if (groupid > next_groupid) {\r
next_groupid = groupid + 1;\r
-\r
+ }\r
\r
// Create the GROUPS row\r
String sql = "insert into GROUPS (GROUPID, AUTHID, NAME, DESCRIPTION, CLASSIFICATION, MEMBERS) values (?, ?, ?, ?, ?, ?)";\r
ps.close();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
- e.printStackTrace();\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
- ps.close();\r
+ if (ps != null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.executeUpdate();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
- e.printStackTrace();\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
- ps.close();\r
+ if (ps != null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
- e.printStackTrace();\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
- ps.close();\r
+ if (ps != null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
\r
@Override\r
public boolean equals(Object obj) {\r
- if (!(obj instanceof Group))\r
+ if (!(obj instanceof Group)) {\r
return false;\r
+ }\r
Group os = (Group) obj;\r
- if (groupid != os.groupid)\r
+ if (groupid != os.groupid) {\r
return false;\r
- if (authid != os.authid)\r
+ }\r
+ if (authid != os.authid) {\r
return false;\r
- if (!name.equals(os.name))\r
+ }\r
+ if (!name.equals(os.name)) {\r
return false;\r
- if (description != os.description)\r
+ }\r
+ if (description != os.description) {\r
return false;\r
- if (!classification.equals(os.classification))\r
+ }\r
+ if (!classification.equals(os.classification)) {\r
return false;\r
- if (!members.equals(os.members))\r
+ }\r
+ if (!members.equals(os.members)) {\r
return false;\r
+ }\r
\r
return true;\r
}\r
public String toString() {\r
return "GROUP: groupid=" + groupid;\r
}\r
+\r
+ @Override\r
+ public int hashCode() {\r
+ return Objects.hash(groupid, authid, name, description, classification, members, last_mod);\r
+ }\r
}\r