|
|
|
@ -1,26 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.net.MalformedURLException;
|
|
|
|
|
|
|
|
|
|
import org.gcube.common.homelibrary.home.HomeLibrary;
|
|
|
|
|
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
|
|
|
|
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
|
|
|
|
import org.gcube.common.homelibrary.home.exceptions.UserNotFoundException;
|
|
|
|
|
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
|
|
|
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
|
|
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException;
|
|
|
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
|
|
|
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException;
|
|
|
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
|
|
|
|
import org.gcube.common.scope.api.ScopeProvider;
|
|
|
|
|
import org.gcube.common.scope.impl.ScopeBean;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.SyncEngine;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.engine.impl.ProcessDescriptor;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.engine.impl.ProcessStatus;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.faults.InternalException;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.faults.ProcessNotFoundException;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.faults.WorkspaceInteractionException;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.faults.WorkspaceLockedException;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.faults.WorkspaceNotSynchedException;
|
|
|
|
|
import org.gcube.usecases.ws.thredds.model.SyncOperationCallBack;
|
|
|
|
@ -42,26 +24,11 @@ public class TestWsThreddsEngine {
|
|
|
|
|
|
|
|
|
|
public static String TEST_FOLDER_ID = "";
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws ProcessNotFoundException, InternalErrorException, WorkspaceInteractionException, InternalException, WorkspaceFolderNotFoundException, ItemNotFoundException, InsufficientPrivilegesException, ItemAlreadyExistException, HomeNotFoundException, UserNotFoundException, MalformedURLException, IOException {
|
|
|
|
|
public static void main(String[] args) throws Exception{
|
|
|
|
|
|
|
|
|
|
// GET ENGINE : SINGLETON INSTANCE
|
|
|
|
|
SyncEngine engine=SyncEngine.get();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Workspace ws = HomeLibrary
|
|
|
|
|
.getHomeManagerFactory()
|
|
|
|
|
.getHomeManager()
|
|
|
|
|
.getHome(TEST_USER)
|
|
|
|
|
.getWorkspace();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//TEST INFO...
|
|
|
|
|
//TestCommons.setScope();
|
|
|
|
|
ScopeBean scope = new ScopeBean(DEFAULT_SCOPE);
|
|
|
|
|
ScopeProvider.instance.set(scope.toString());
|
|
|
|
|
WorkspaceFolder folder=(WorkspaceFolder) ws.getItem(TEST_FOLDER_ID);
|
|
|
|
|
|
|
|
|
|
// FOLDER CONFIGURATION BEAN
|
|
|
|
|
//SynchFolderConfiguration config=TestCommons.getSynchConfig();
|
|
|
|
|
|
|
|
|
@ -69,33 +36,33 @@ public class TestWsThreddsEngine {
|
|
|
|
|
String remotePersistence = "";
|
|
|
|
|
String remotePath = "";
|
|
|
|
|
String targetToken = "";
|
|
|
|
|
SynchFolderConfiguration config = new SynchFolderConfiguration(remotePath, filter, targetToken, remotePersistence, folder.getId());
|
|
|
|
|
SynchFolderConfiguration config = new SynchFolderConfiguration(remotePath, filter, targetToken, remotePersistence, TEST_FOLDER_ID);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
//try to clean it up, first..
|
|
|
|
|
System.out.println("Cleaning it up..");
|
|
|
|
|
engine.unsetSynchronizedFolder(folder.getId(), false);
|
|
|
|
|
engine.unsetSynchronizedFolder(TEST_FOLDER_ID, false);
|
|
|
|
|
}catch(WorkspaceNotSynchedException e) {
|
|
|
|
|
// it was already cleared
|
|
|
|
|
}catch(WorkspaceLockedException e) {
|
|
|
|
|
engine.forceUnlock(folder.getId());
|
|
|
|
|
engine.unsetSynchronizedFolder(folder.getId(), false);
|
|
|
|
|
engine.forceUnlock(TEST_FOLDER_ID);
|
|
|
|
|
engine.unsetSynchronizedFolder(TEST_FOLDER_ID, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// WHEN OPENING A FOLDER, INVOKE CHECK TO UPDATE SYNCH STATUS
|
|
|
|
|
engine.check(folder.getId(), false);
|
|
|
|
|
engine.check(TEST_FOLDER_ID, false);
|
|
|
|
|
}catch(WorkspaceNotSynchedException e) {
|
|
|
|
|
System.out.println("Folder not synched, configurin it..");
|
|
|
|
|
engine.setSynchronizedFolder(config, folder.getId());
|
|
|
|
|
engine.setSynchronizedFolder(config, TEST_FOLDER_ID);
|
|
|
|
|
}catch(WorkspaceLockedException e) {
|
|
|
|
|
System.out.println("Workspace locked, going to force unlock.."); // MAINLY FOR TEST PURPOSES, OR WHEN SOMETHIGN GOES WRONG.. USE CAUTIOUSLY
|
|
|
|
|
engine.forceUnlock(folder.getId());
|
|
|
|
|
engine.forceUnlock(TEST_FOLDER_ID);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// INVOKE SYNCHRONIZATION ON FOLDER
|
|
|
|
|
ProcessDescriptor descriptor=engine.doSync(folder.getId());
|
|
|
|
|
ProcessDescriptor descriptor=engine.doSync(TEST_FOLDER_ID);
|
|
|
|
|
|
|
|
|
|
System.out.println("Obtained descriptor : "+descriptor);
|
|
|
|
|
|
|
|
|
@ -115,10 +82,10 @@ public class TestWsThreddsEngine {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// REGISTER CALLBACK TO MONITOR PROGRESS
|
|
|
|
|
engine.registerCallBack(folder.getId(), syncCall);
|
|
|
|
|
engine.registerCallBack(TEST_FOLDER_ID, syncCall);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
engine.check(folder.getId(), true);
|
|
|
|
|
engine.check(TEST_FOLDER_ID, true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// INVOKE WHEN PORTAL SHUTS DOWN TO FREE RESOURCES AND STOP SYNC PROCESSES
|
|
|
|
|