public void insertGrandprizePoint() throws IOException, SQLException { recordCounter = 0; System.out.println("Starting inserting Grand Prize point records into points' table.."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[INSERT GRANDPRIZE] Started: " + getCurrentTimeStamp()); // INSERT MONTHLY - Supposed to be executed on INIT w/CREATE TABLE function // Binding a single input stream CSV reader & its buffer CSVReader grandprizeReader = new CSVReader( new FileReader(workingDir + grandprizeFile), recSeparator, escChar, headerLine); String[] grandprize; String insertGrandprizeQuery; if (con == null) { db_object.openConnection(); con = db_object.getConnection(); } try { stm = con.createStatement(); while ((grandprize = grandprizeReader.readNext()) != null) { // System.out.println(monthly[0] + monthly[1] + monthly[2]); insertGrandprizeQuery = "INSERT INTO tbl_points_grandprize (point_cardno, point_grandprize) VALUES ('" + grandprize[1].trim() + "', " + grandprize[2].trim() + ");"; stm.addBatch(insertGrandprizeQuery); // stm = con.createStatement(); // affectedRow = stm.executeUpdate(updateGrandprizeQuery); recordCounter++; } stm.executeBatch(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { stm.close(); if (con != null) { try { db_object.closeConnection(); } catch (SQLException e) { e.printStackTrace(); } finally { con = null; } } } statGrandprize = true; System.out.println("Grand Prize Records Inserted:" + recordCounter); System.out.println("Grand Prize Records Finished Time: " + getCurrentTimeStamp()); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[INSERT GRANDPRIZE] Finished: " + getCurrentTimeStamp()); }
public void updateGrandprizePoint() throws IOException, SQLException { recordCounter = 0; System.out.println("Starting updating grand prize point records into points' table.."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[UPDATE GRANDPRIZE] Started: " + getCurrentTimeStamp()); // UPDATE GRANDPRIZE CSVReader grandprizeReader = new CSVReader( new FileReader(workingDir + grandprizeFile), recSeparator, escChar, headerLine); String[] grandprize; String updateGrandprizeQuery; if (con == null) { db_object.openConnection(); con = db_object.getConnection(); } try { stm = con.createStatement(); while ((grandprize = grandprizeReader.readNext()) != null) { // System.out.println(grandprize[0] + grandprize[1] + grandprize[2]); updateGrandprizeQuery = "UPDATE tbl_points SET point_grandprize = " + grandprize[2].trim() + " WHERE point_cardno = '" + grandprize[1].trim() + "';"; stm.addBatch(updateGrandprizeQuery); recordCounter++; } stm.executeBatch(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { stm.close(); if (con != null) { try { db_object.closeConnection(); } catch (SQLException e) { e.printStackTrace(); } finally { con = null; } } } statGrandprize = true; System.out.println("Updated Grand Prize Records: " + recordCounter); System.out.println("Grand Prize Records Finished Time: " + getCurrentTimeStamp()); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[UPDATE GRANDPRIZE] Finished: " + getCurrentTimeStamp()); }
public void updateMonthlyPoint() throws IOException, SQLException { recordCounter = 0; System.out.println("Starting updating monthly point records into points' table.."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[UPDATE MONTHLY] Started: " + getCurrentTimeStamp()); // UPDATE MONTHLY // Binding a single input stream CSV reader & its buffer CSVReader monthlyReader = new CSVReader(new FileReader(workingDir + monthlyFile), recSeparator, escChar, headerLine); String[] monthly; String updateMonthlyQuery; if (con == null) { db_object.openConnection(); con = db_object.getConnection(); } try { stm = con.createStatement(); while ((monthly = monthlyReader.readNext()) != null) { // System.out.println(monthly[0] + monthly[1] + monthly[2]); updateMonthlyQuery = "UPDATE tbl_points SET point_monthly = " + monthly[2].trim() + " WHERE point_cardno = '" + monthly[1].trim() + "';"; stm.addBatch(updateMonthlyQuery); recordCounter++; } stm.executeBatch(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { stm.close(); if (con != null) { try { db_object.closeConnection(); } catch (SQLException e) { e.printStackTrace(); } finally { con = null; } } } statMonthly = true; System.out.println("Updated Monthly Records:" + recordCounter); System.out.println("Monthly Records Update Finished Time: " + getCurrentTimeStamp()); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[UPDATE MONTHLY] Finished: " + getCurrentTimeStamp()); }
public void createTruncateUnitedPointTable() { System.out.println( "Starting creating a table if not exists yet or truncating non-empty table.."); System.out.println("[TABLE] Started: " + getCurrentTimeStamp()); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[TABLE] Started: " + getCurrentTimeStamp()); // CREATE TABLE & TRUNCATE AL PREV. DATA String createPointTableQuery = "CREATE TABLE IF NOT EXISTS `tbl_points` (" + " `point_id` int(11) NOT NULL NOT NULL DEFAULT '0'," + " `point_no` int(7) NOT NULL DEFAULT '0'," + " `point_accnum` varchar(20) NOT NULL DEFAULT '0'," + " `point_cardno` varchar(16) NOT NULL DEFAULT '0'," + " `point_monthly` int(6) NOT NULL DEFAULT '0'," + " `point_quarterly` int(6) NOT NULL DEFAULT '0'," + " `point_grandprize` int(6) NOT NULL DEFAULT '0'," + " `deleted` int(1) NOT NULL DEFAULT '0'," + " `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP" + ") ENGINE=InnoDB DEFAULT CHARSET=latin1;" + "ALTER TABLE `tbl_points` ADD PRIMARY KEY (`point_id`);" + "ALTER TABLE `tbl_points` MODIFY `point_id` int(11) NOT NULL AUTO_INCREMENT;"; String truncatePointTableQuery = "TRUNCATE TABLE `tbl_points`;"; try { if (con == null) { db_object.openConnection(); con = db_object.getConnection(); } stm = con.createStatement(); affectedRow = stm.executeUpdate(createPointTableQuery); affectedRow = stm.executeUpdate(truncatePointTableQuery); } catch (SQLException e) { e.printStackTrace(); } finally { if (con != null) { try { db_object.closeConnection(); } catch (SQLException e) { e.printStackTrace(); } finally { con = null; } } statCreate = true; } System.out.println("[TABLE] Finished: " + getCurrentTimeStamp()); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[TABLE] Finished: " + getCurrentTimeStamp()); }
public void reportAppendableHistory( FilePath path, final VcsAppendableHistorySessionPartner partner) throws VcsException { final FilePath committedPath = ChangesUtil.getCommittedPath(myVcs.getProject(), path); final LogLoader logLoader; if (path.isNonLocal()) { logLoader = new RepositoryLoader(myVcs, path); } else { logLoader = new LocalLoader(myVcs, path); } try { logLoader.preliminary(); } catch (SVNCancelException e) { return; } catch (SVNException e) { throw new VcsException(e); } logLoader.initSupports15(); final MyHistorySession historySession = new MyHistorySession( Collections.<VcsFileRevision>emptyList(), committedPath, Boolean.TRUE.equals(logLoader.mySupport15), null); final Ref<Boolean> sessionReported = new Ref<Boolean>(); final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); if (indicator != null) { indicator.setText(SvnBundle.message("progress.text2.collecting.history", path.getName())); } final Consumer<VcsFileRevision> consumer = new Consumer<VcsFileRevision>() { public void consume(VcsFileRevision vcsFileRevision) { if (!Boolean.TRUE.equals(sessionReported.get())) { partner.reportCreatedEmptySession(historySession); sessionReported.set(true); } partner.acceptRevision(vcsFileRevision); } }; logLoader.setConsumer(consumer); logLoader.load(); logLoader.check(); }
@SuppressWarnings("unused") public static void main(String[] args) throws IOException, SQLException { // Evaluation Timer System.out.println("[MAIN PROCESS] Started: " + getCurrentTimeStamp()); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[MAIN PROCESS] Started: " + getCurrentTimeStamp()); long startTime = System.currentTimeMillis(); pointDaemon = new PointUpdaterDaemon(); // Choose these options: // (A) Fresh start with ALL INSERT. Separated Tables. // 3 Separated Point Tables would be Created, then Inserted. // Creating Table must be DONE BEFORE running INSERTION Threads. pointDaemon.createTruncateSeparatedPointTables(); // 1. With Single, Blocking Process (No Thread Programming) if (false) { pointDaemon.insertMonthlyPoint(); pointDaemon.insertQuarterlyPoint(); pointDaemon.insertGrandprizePoint(); } // 2. With Concurrent, Multi-Thread Programming else if (true) { Runnable monthlyRunnable = new Runnable() { public void run() { System.out.println( "[THREAD] [" + getCurrentTimeStamp() + "]" + "Thread 1: Inserting Monthly Point Records.."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[THREAD 1 START] [" + getCurrentTimeStamp() + "]"); try { pointDaemon.insertMonthlyPoint(); } catch (IOException | SQLException e) { e.printStackTrace(); } System.out.println( "[THREAD] [" + getCurrentTimeStamp() + "]" + "Thread 1: Finished."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[THREAD 2 STOP] [" + getCurrentTimeStamp() + "]"); } }; Runnable quarterlyRunnable = new Runnable() { public void run() { System.out.println( "[THREAD] [" + getCurrentTimeStamp() + "]" + "Thread 2: Inserting Quarterly Point Records.."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[THREAD 2 START] [" + getCurrentTimeStamp() + "]"); try { pointDaemon.insertQuarterlyPoint(); } catch (IOException | SQLException e) { e.printStackTrace(); } System.out.println( "[THREAD] [" + getCurrentTimeStamp() + "]" + "Thread 2: Finished."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[THREAD 2 STOP] [" + getCurrentTimeStamp() + "]"); } }; Runnable grandprizeRunnable = new Runnable() { public void run() { System.out.println( "[" + getCurrentTimeStamp() + "]" + "Thread 3: Inserting Grand Prize Point Records.."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[THREAD 3 START] [" + getCurrentTimeStamp() + "]"); try { pointDaemon.insertGrandprizePoint(); } catch (IOException | SQLException e) { e.printStackTrace(); } System.out.println("[" + getCurrentTimeStamp() + "]" + "Thread 3: Finished."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[THREAD 3 STOP] [" + getCurrentTimeStamp() + "]"); } }; Thread monthlyThread = new Thread(monthlyRunnable); Thread quarterlyThread = new Thread(quarterlyRunnable); Thread grandprizeThread = new Thread(grandprizeRunnable); // Setting Daemon Mode if Necessary // monthlyThread.setDaemon(true); // quarterlyThread.setDaemon(true); // grandprizeThread.setDaemon(true); monthlyThread.start(); quarterlyThread.start(); grandprizeThread.start(); // Processing Time, If using No Thread Concept long endTime = System.currentTimeMillis(); long duration = endTime - startTime; System.out.println("[MAIN PROCESS] Duration: " + duration + " ms."); LogLoader.setInfo( PointUpdaterDaemon.class.getSimpleName(), "[MAIN PROCESS] Finished: " + getCurrentTimeStamp() + "(" + duration + " ms)."); } // (B) Fresh start with ONE INSERT, TWO UPDATES. One united point Table. // 1 Point Table would be Created, then Inserted once, Updated twice. /* pointDaemon.createTruncateUnitedPointTable(); pointDaemon.insertMonthlyPoint(); pointDaemon.updateQuarterlyPoint(); pointDaemon.updateGrandprizePoint(); */ // (C) Current start with existing records /* pointDaemon.updateMonthlyPoint(); pointDaemon.updateQuarterlyPoint(); pointDaemon.updateGrandprizePoint(); */ // Final Result Report if (statCreate) System.out.println("[RESULT]: TABLES CREATED."); if (statMonthly) System.out.println("[RESULT]: MONTHLY POINTS INSERTED."); if (statQuarterly) System.out.println("[RESULT]: QUARTERLY POINTS INSERTED."); if (statGrandprize) System.out.println("[RESULT]: GRAND PRIZE POINTS INSERTED."); }
public void reportAppendableHistory( FilePath path, final VcsAppendableHistorySessionPartner partner, @Nullable final SVNRevision from, @Nullable final SVNRevision to, final int limit, SVNRevision peg, final boolean forceBackwards) throws VcsException { FilePath committedPath = path; Change change = ChangeListManager.getInstance(myVcs.getProject()).getChange(path); if (change != null) { final ContentRevision beforeRevision = change.getBeforeRevision(); final ContentRevision afterRevision = change.getAfterRevision(); if (beforeRevision != null && afterRevision != null && !beforeRevision.getFile().equals(afterRevision.getFile()) && afterRevision.getFile().equals(path)) { committedPath = beforeRevision.getFile(); } // revision can be VcsRevisionNumber.NULL if (peg == null && change.getBeforeRevision() != null && change.getBeforeRevision().getRevisionNumber() instanceof SvnRevisionNumber) { peg = ((SvnRevisionNumber) change.getBeforeRevision().getRevisionNumber()).getRevision(); } } final boolean showMergeSources = SvnConfiguration.getInstance(myVcs.getProject()).isShowMergeSourcesInAnnotate(); final LogLoader logLoader; if (path.isNonLocal()) { logLoader = new RepositoryLoader( myVcs, committedPath, from, to, limit, peg, forceBackwards, showMergeSources); } else { logLoader = new LocalLoader(myVcs, committedPath, from, to, limit, peg, showMergeSources); } try { logLoader.preliminary(); } catch (SVNCancelException e) { throw new VcsException(e); } catch (SVNException e) { throw new VcsException(e); } logLoader.check(); if (showMergeSources) { logLoader.initSupports15(); } final SvnHistorySession historySession = new SvnHistorySession( myVcs, Collections.<VcsFileRevision>emptyList(), committedPath, showMergeSources && Boolean.TRUE.equals(logLoader.mySupport15), null, false, !path.isNonLocal()); final Ref<Boolean> sessionReported = new Ref<Boolean>(); final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); if (indicator != null) { indicator.setText(SvnBundle.message("progress.text2.collecting.history", path.getName())); } final Consumer<VcsFileRevision> consumer = new Consumer<VcsFileRevision>() { @Override public void consume(VcsFileRevision vcsFileRevision) { if (!Boolean.TRUE.equals(sessionReported.get())) { partner.reportCreatedEmptySession(historySession); sessionReported.set(true); } partner.acceptRevision(vcsFileRevision); } }; logLoader.setConsumer(consumer); logLoader.load(); logLoader.check(); }