diff --git a/pom.xml b/pom.xml index c5bc464..2e7555e 100644 --- a/pom.xml +++ b/pom.xml @@ -87,11 +87,13 @@ org.slf4j - slf4j-log4j12 + slf4j-api + provided org.slf4j - slf4j-api + slf4j-log4j12 + provided diff --git a/src/main/java/org/gcube/portal/wssynclibrary/thredds/ThreddsConverter.java b/src/main/java/org/gcube/portal/wssynclibrary/thredds/ThreddsConverter.java index c7dbcf1..f841b11 100644 --- a/src/main/java/org/gcube/portal/wssynclibrary/thredds/ThreddsConverter.java +++ b/src/main/java/org/gcube/portal/wssynclibrary/thredds/ThreddsConverter.java @@ -3,6 +3,7 @@ package org.gcube.portal.wssynclibrary.thredds; import java.util.function.Function; import org.gcube.portal.wssynclibrary.shared.thredds.Status; +import org.gcube.portal.wssynclibrary.shared.thredds.Sync_Status; import org.gcube.portal.wssynclibrary.shared.thredds.ThCatalogueBean; import org.gcube.portal.wssynclibrary.shared.thredds.ThProcessDescriptor; import org.gcube.portal.wssynclibrary.shared.thredds.ThProcessStatus; @@ -12,6 +13,7 @@ import org.gcube.usecases.ws.thredds.engine.impl.ProcessDescriptor; import org.gcube.usecases.ws.thredds.engine.impl.ProcessStatus; import org.gcube.usecases.ws.thredds.model.SyncFolderDescriptor; import org.gcube.usecases.ws.thredds.model.SynchFolderConfiguration; +import org.gcube.usecases.ws.thredds.model.SynchronizedElementInfo; import org.gcube.usecases.ws.thredds.model.gui.CatalogBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -92,6 +94,7 @@ public class ThreddsConverter { + ThSynchFolderConfiguration.class.getSimpleName()); return mySync; } + mySync.setFilter(t.getFilter()); mySync.setRemotePath(t.getRemotePath()); mySync.setRemotePersistence(t.getRemotePersistence()); @@ -185,5 +188,23 @@ public class ThreddsConverter { return mySync; } }; + + + public static Function toSyncStatus = new Function() { + + public Sync_Status apply(SynchronizedElementInfo sei) { + + if (sei == null) { + logger.info("Input " + SynchronizedElementInfo.class.getSimpleName() + " is null, returning null " + + Sync_Status.class.getSimpleName()); + return null; + } + + logger.warn("toSyncStatus not implemented yet!!!!!!"); + + return null; + } + }; + } diff --git a/src/main/java/org/gcube/portal/wssynclibrary/thredds/WorkspaceThreddsSynchronize.java b/src/main/java/org/gcube/portal/wssynclibrary/thredds/WorkspaceThreddsSynchronize.java index 14aa93a..78899ab 100644 --- a/src/main/java/org/gcube/portal/wssynclibrary/thredds/WorkspaceThreddsSynchronize.java +++ b/src/main/java/org/gcube/portal/wssynclibrary/thredds/WorkspaceThreddsSynchronize.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.storagehub.client.dsl.StorageHubClient; import org.gcube.portal.wssynclibrary.shared.ItemNotSynched; import org.gcube.portal.wssynclibrary.shared.WorkspaceFolderLocked; @@ -30,10 +29,12 @@ import org.gcube.usecases.ws.thredds.faults.WorkspaceNotSynchedException; import org.gcube.usecases.ws.thredds.model.SyncFolderDescriptor; import org.gcube.usecases.ws.thredds.model.SyncOperationCallBack; import org.gcube.usecases.ws.thredds.model.SynchFolderConfiguration; +import org.gcube.usecases.ws.thredds.model.SynchronizedElementInfo; import org.gcube.usecases.ws.thredds.model.gui.CatalogBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +// TODO: Auto-generated Javadoc /** * The Class WorkspaceThreddsSynchronize. * @@ -53,8 +54,6 @@ public class WorkspaceThreddsSynchronize private static StorageHubClient storageHubInstance; - public static final String WS_SYNCH_SYNCH_STATUS = "WS-SYNCH.SYNCH-STATUS"; - /** The map call back. */ // Fully synchronized HashMap private Map mapCallBack = Collections.synchronizedMap(new HashMap<>()); @@ -94,12 +93,6 @@ public class WorkspaceThreddsSynchronize } - /* - * (non-Javadoc) - * - * @see org.gcube.portal.wssynclibrary.WorkspaceSynchronizedRepository# - * isItemSynchronized(java.lang.String) - */ /** * Check item synched. * @@ -148,12 +141,11 @@ public class WorkspaceThreddsSynchronize } } - /** * Sets the synchronized folder. * * @param thConfig the th config - * @param itemId the item id + * @param itemId the item id * @return the th sync folder descriptor * @throws Exception the exception */ @@ -177,12 +169,6 @@ public class WorkspaceThreddsSynchronize return null; } - /* - * (non-Javadoc) - * - * @see org.gcube.portal.wssynclibrary.WorkspaceSynchronizedRepository# - * doSynchronization(java.lang.String) - */ /** * Do sync. * @@ -226,12 +212,6 @@ public class WorkspaceThreddsSynchronize } - /* - * (non-Javadoc) - * - * @see - * org.gcube.portal.wssynclibrary.DoSyncItem#getSyncStatus(java.lang.String) - */ /** * Monitor sync status. * @@ -378,42 +358,6 @@ public class WorkspaceThreddsSynchronize return "Sync repository for Thredds"; } - /** - * Gets the synched status from item property. - * - * @param itemId the item id - * @param username the username - * @return the synched status from item property - * @throws ItemNotSynched the item not synched - * @throws Exception the exception - */ - public Sync_Status getSynchedStatusFromItemProperty(String itemId, String username) - throws ItemNotSynched, Exception { - - if (itemId == null) - throw new Exception("Invalid parameter itemId is null"); - - String scope = ScopeProvider.instance.get(); - if (scope == null || scope.isEmpty()) - throw new Exception("You must set a valid scope into ScopeProvider instance"); - - String wsSyncStatus = null; - try { - - Map map = storageHubInstance.open(itemId).asItem().get().getMetadata().getMap(); - wsSyncStatus = (String) map.get(WS_SYNCH_SYNCH_STATUS); - logger.debug("Item id: " + itemId + " read from Shub has current: " + WS_SYNCH_SYNCH_STATUS + " value at: " - + wsSyncStatus); - if (wsSyncStatus == null) - return null; - - return Sync_Status.valueOf(wsSyncStatus); - } catch (Exception e) { - logger.warn(wsSyncStatus + " is not value of " + Sync_Status.values() + ", returning null"); - return null; - } - } - /** * Register callback for id. * @@ -440,7 +384,7 @@ public class WorkspaceThreddsSynchronize }; // REGISTER CALLBACK TO MONITOR PROGRESS - logger.debug("Registering callback on itemId: " + itemId); + logger.debug("Registering callback for itemId: " + itemId); engine.registerCallBack(itemId, callback); } catch (ProcessNotFoundException e) { logger.error("Register callback for id: " + itemId + " threw ProcessNotFoundException: ", e); @@ -493,15 +437,11 @@ public class WorkspaceThreddsSynchronize return listCtlgs; } - /* - * (non-Javadoc) - * - * @see org.gcube.portal.wssynclibrary.DoSyncItem#doUnSync(java.lang.String) - */ + /** * Do un sync. * - * @param itemId the item id + * @param itemId the item id * @param deleteRemoteContent the delete remote content * @return the boolean * @throws Exception the exception @@ -521,6 +461,15 @@ public class WorkspaceThreddsSynchronize } } + /** + * Gets the configuration. + * + * @param itemId the item id + * @return the configuration + * @throws WorkspaceInteractionException the workspace interaction exception + * @throws WorkspaceNotSynchedException the workspace not synched exception + * @throws Exception the exception + */ @Override public ThSyncFolderDescriptor getConfiguration(String itemId) throws WorkspaceInteractionException, WorkspaceNotSynchedException, Exception { @@ -536,8 +485,27 @@ public class WorkspaceThreddsSynchronize return new ThSyncFolderDescriptor(itemId, null, toFolderConfig, false, null); } catch (Exception e) { - logger.error("GetConfig error on folder: "+itemId, e); + logger.error("GetConfig error on folder: " + itemId, e); throw new Exception("An error occurred on getting (sync) configuration for the item id: " + itemId, e); } } + + + /** + * Gets the info. + * + * @param itemId the item id + * @return the info + * @throws Exception the exception + */ + public Sync_Status getInfo(String itemId) throws Exception { + + if (itemId == null) + throw new Exception("Invalid parameter: itemId is null"); + + SynchronizedElementInfo infoStatus = engine.getInfo(itemId); + Sync_Status infoSyncStatus = ThreddsConverter.toSyncStatus.apply(infoStatus); + + return infoSyncStatus; + } }