@Override public void printResults(OperationResult operationResult) { StatusOperationResult concreteOperationResult = (StatusOperationResult) operationResult; if (concreteOperationResult.getChangeSet().hasChanges()) { for (String newFile : concreteOperationResult.getChangeSet().getNewFiles()) { out.println("? "+newFile); } for (String changedFile : concreteOperationResult.getChangeSet().getChangedFiles()) { out.println("M "+changedFile); } for (String deletedFile : concreteOperationResult.getChangeSet().getDeletedFiles()) { out.println("D "+deletedFile); } } else { out.println("No local changes."); } }
ChangeSet localChanges = statusOperationResult.getChangeSet(); result.getStatusResult().setChangeSet(localChanges);
@Override public StatusOperationResult execute() throws Exception { logger.log(Level.INFO, ""); logger.log(Level.INFO, "Running 'Status' at client " + config.getMachineName() + " ..."); logger.log(Level.INFO, "--------------------------------------------"); if (options != null && options.isForceChecksum()) { logger.log(Level.INFO, "Force checksum ENABLED."); } if (options != null && !options.isDelete()) { logger.log(Level.INFO, "Delete missing files DISABLED."); } // Get local database logger.log(Level.INFO, "Querying current file tree from database ..."); eventBus.post(new StatusStartSyncExternalEvent(config.getLocalDir().getAbsolutePath())); // Path to actual file version final Map<String, FileVersion> filesInDatabase = localDatabase.getCurrentFileTree(); // Find local changes logger.log(Level.INFO, "Analyzing local folder " + config.getLocalDir() + " ..."); ChangeSet localChanges = findLocalChanges(filesInDatabase); if (!localChanges.hasChanges()) { logger.log(Level.INFO, "- No changes to local database"); } // Return result StatusOperationResult statusResult = new StatusOperationResult(); statusResult.setChangeSet(localChanges); eventBus.post(new StatusEndSyncExternalEvent(config.getLocalDir().getAbsolutePath(), localChanges.hasChanges())); return statusResult; }
private boolean hasLocalChanges() throws Exception { StatusOperationResult statusOperationResult = new StatusOperation(config, options.getStatusOptions()).execute(); return statusOperationResult.getChangeSet().hasChanges(); }
private void startIndexerThread(BlockingQueue<DatabaseVersion> databaseVersionQueue) { // Get a list of files that have been updated ChangeSet localChanges = result.getStatusResult().getChangeSet(); List<File> locallyUpdatedFiles = extractLocallyUpdatedFiles(localChanges); List<File> locallyDeletedFiles = extractLocallyDeletedFiles(localChanges); // Iterate over the changes, deduplicate, and feed DatabaseVersions into an iterator Deduper deduper = new Deduper(config.getChunker(), config.getMultiChunker(), config.getTransformer(), options.getTransactionSizeLimit(), options.getTransactionFileLimit()); AsyncIndexer asyncIndexer = new AsyncIndexer(config, deduper, locallyUpdatedFiles, locallyDeletedFiles, databaseVersionQueue); new Thread(asyncIndexer, "AsyncI/" + config.getLocalDir().getName()).start(); }