use of net.sourceforge.processdash.util.lock.NotLockedException in project processdash by dtuma.
the class ResourceBridgeClient method pingLock.
public synchronized void pingLock() throws LockFailureException {
if (userName == null)
throw new NotLockedException();
ProfTimer pt = new ProfTimer(logger, "ResourceBridgeClient.pingLock[" + remoteUrl + "]");
try {
doLockPostRequest(PING_LOCK_ACTION);
pt.click("Pinged bridged lock");
} catch (LockFailureException lfe) {
throw lfe;
} catch (Exception e) {
throw new LockUncertainException(e);
}
}
use of net.sourceforge.processdash.util.lock.NotLockedException in project processdash by dtuma.
the class ResourceBridgeClient method doAssertLock.
private synchronized void doAssertLock(String action) throws LockFailureException {
if (userName == null)
throw new NotLockedException();
ProfTimer pt = new ProfTimer(logger, "ResourceBridgeClient." + action + "[" + remoteUrl + "]");
try {
doLockPostRequest(action);
pt.click("Asserted bridged lock");
} catch (LockFailureException lfe) {
throw lfe;
} catch (Exception e) {
throw new LockUncertainException(e);
}
}
use of net.sourceforge.processdash.util.lock.NotLockedException in project processdash by dtuma.
the class ResourceBridgeClient method saveDefaultExcludedFiles.
public synchronized void saveDefaultExcludedFiles() throws IOException, LockFailureException {
if (userName == null)
throw new NotLockedException();
List params = new ArrayList();
for (String name : ResourceFilterFactory.DEFAULT_EXCLUDE_FILENAMES) {
addFileUploadParams(params, name);
}
if (!params.isEmpty()) {
startZipUploadThread(params);
doPostRequest(UPLOAD_ACTION, (Object[]) params.toArray());
logger.fine("Uploaded default excluded files");
}
}
use of net.sourceforge.processdash.util.lock.NotLockedException in project processdash by dtuma.
the class ResourceBridgeClient method syncUp.
public synchronized boolean syncUp(SyncFilter filter) throws IOException, LockFailureException {
if (userName == null)
throw new NotLockedException();
ProfTimer pt = new ProfTimer(logger, "ResourceBridgeClient.syncUp[" + remoteUrl + "]");
ResourceCollectionDiff diff = getDiff();
applySyncFilter(diff, filter);
pt.click("Computed local-vs-remote diff");
if (diff == null || diff.noDifferencesFound()) {
logger.finer("no changes to sync up");
return false;
}
boolean madeChange = false;
List<String> filesToDownload = new ArrayList<String>();
// collection (but not in our local collection)
if (!diff.getOnlyInB().isEmpty()) {
List<String> params = new ArrayList<String>();
for (String resourceName : diff.getOnlyInB()) {
if (isSyncDownOnly(resourceName)) {
filesToDownload.add(resourceName);
} else {
logger.fine("deleting remote resource " + resourceName);
params.add(DELETE_FILE_PARAM);
params.add(resourceName);
}
}
if (!params.isEmpty()) {
doPostRequest(DELETE_ACTION, (Object[]) params.toArray());
pt.click("Deleted remote resources");
madeChange = true;
}
}
// collection
if (!diff.getOnlyInA().isEmpty() || !diff.getDiffering().isEmpty()) {
List params = new ArrayList();
for (String resourceName : diff.getOnlyInA()) {
if (isSyncDownOnly(resourceName)) {
logger.fine("deleting local resource " + resourceName);
localCollection.deleteResource(resourceName);
madeChange = true;
} else {
logger.fine("uploading new resource " + resourceName);
addFileUploadParamsWithBatching(params, resourceName);
madeChange = true;
}
}
for (String resourceName : diff.getDiffering()) {
if (isSyncDownOnly(resourceName)) {
filesToDownload.add(resourceName);
} else {
logger.fine("uploading modified resource " + resourceName);
addFileUploadParamsWithBatching(params, resourceName);
madeChange = true;
}
}
if (!params.isEmpty()) {
startZipUploadThread(params);
doPostRequest(UPLOAD_ACTION, (Object[]) params.toArray());
pt.click("Uploaded new/modified resources");
madeChange = true;
}
}
if (!filesToDownload.isEmpty()) {
List params = addMultiple(null, INCLUDE_PARAM, filesToDownload);
downloadFiles(makeGetRequest(DOWNLOAD_ACTION, params));
madeChange = true;
}
if (!madeChange) {
logger.finer("no changes to sync up");
}
return madeChange;
}
Aggregations