/** * get. * * @return a {@link net.sourceforge.seqware.common.metadata.MetadataDB} object. */ public static synchronized MetadataDB get() { try { if (metadataDBWrapper.get() != null && ((metadataDBWrapper.get().getDb() != null && metadataDBWrapper.get().getDb().isClosed()))) // || db.getSql()!=null && db.getSql().isClosed())) { metadataDBWrapper.get().clean_up(); metadataDBWrapper.set(null); // db = null; } } catch (SQLException ex) { Log.error("Closing DB connection and creating a new one failed", ex); } if (metadataDBWrapper.get() == null) { metadataDBWrapper.set(new MetadataDB()); // Log.debug("DBAccess is using " + user + " " + pass + " on " + connection); DataSource ds = null; try { InitialContext initCtx = new InitialContext(); ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/SeqWareMetaDB"); } catch (NamingException ex) { Log.fatal(ex); ex.printStackTrace(); } if (ds != null) { Log.debug("init via db.init(ds), datasource is " + ds.getClass()); metadataDBWrapper.get().init(ds); } else { Log.debug("init via init(user,pass,connection)"); Map<String, String> settings = null; try { settings = ConfigTools.getSettings(); String connection = "jdbc:postgresql://" + settings.get("SW_DB_SERVER") + "/" + settings.get("SW_DB"); String user = settings.get("SW_DB_USER"); String pass = settings.get("SW_DB_PASS"); Log.debug("DBAccess is using " + user + " " + pass + " on " + connection); metadataDBWrapper.get().init(connection, user, pass); } catch (Exception ex) { Log.fatal("get() could not init ", ex); Logger.getLogger(DBAccess.class.getName()).log(Level.SEVERE, null, ex); } } } Log.debug(metadataDBWrapper.get().toString() + " was returned "); return metadataDBWrapper.get(); }
/** close. */ public static synchronized void close() { if (metadataDBWrapper.get() != null) { Log.debug(metadataDBWrapper.get().toString() + " was closed "); metadataDBWrapper.get().clean_up(); metadataDBWrapper.set(null); // db = null; } }
/** * Given a workflowRunAcc returns a list of file paths that were used in that run using * effectively, the workflow run reporter. * * <p>Hopefully, this is the last we'll use this approach! * * @param workflowRunAcc * @param filesToRun * @return */ private List<Integer> getListOfFiles(int workflowRunAcc) { Map<String, String> map = generateWorkflowRunMap(workflowRunAcc); List<Integer> ranOnList = new ArrayList<>(); if (map.isEmpty()) { return ranOnList; } String ranOnString = map.get("Immediate Input File SWIDs"); if (ranOnString == null) { return ranOnList; } String[] ranOnArr = ranOnString.split(","); if (ranOnString.isEmpty()) { return ranOnList; } for (String i : ranOnArr) { ranOnList.add(Integer.valueOf(i.trim())); Log.trace("Adding item: " + i); } Log.debug("Got list of files: " + StringUtils.join(ranOnList, ',')); return ranOnList; }