Skip to content
Snippets Groups Projects
Commit 3f092823 authored by felmer's avatar felmer
Browse files

LMS-2077 Providing IShareManager by ServiceProvider and use it in SegmentedStoreShufflingTask.

SVN: 20086
parent ad490171
No related branches found
No related tags found
No related merge requests found
......@@ -44,6 +44,7 @@ import ch.systemsx.cisd.common.utilities.PropertyParametersUtil;
import ch.systemsx.cisd.common.utilities.PropertyUtils;
import ch.systemsx.cisd.etlserver.ETLDaemon;
import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
import ch.systemsx.cisd.openbis.dss.generic.shared.IShareIdManager;
import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
import ch.systemsx.cisd.openbis.dss.generic.shared.utils.SegmentedStoreUtils;
......@@ -133,11 +134,15 @@ public class SegmentedStoreShufflingTask implements IMaintenanceTask
this(ETLDaemon.getIdsOfIncomingShares(), ServiceProvider.getOpenBISService(),
new SimpleFreeSpaceProvider(), new IDataSetMover()
{
private IEncapsulatedOpenBISService service = ServiceProvider
.getOpenBISService();
private IShareIdManager manager = ServiceProvider.getShareIdManager();
public void moveDataSetToAnotherShare(File dataSetDirInStore, File share)
{
SegmentedStoreUtils.moveDataSetToAnotherShare(dataSetDirInStore, share,
ServiceProvider.getOpenBISService());
service, manager);
}
}, new Log4jSimpleLogger(operationLog));
}
......
......@@ -22,6 +22,8 @@ import org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter;
import com.marathon.util.spring.StreamSupportingHttpInvokerServiceExporter;
import ch.systemsx.cisd.openbis.dss.generic.server.ShareIdManager;
/**
* Provider of remote service onto openBIS.
*
......@@ -31,6 +33,8 @@ public class ServiceProvider
{
// applicationContex it lazily initialized
private static BeanFactory applicationContext = null;
private static IShareIdManager shareIdManager;
public static void setBeanFactory(BeanFactory applicationContext)
{
......@@ -55,6 +59,15 @@ public class ServiceProvider
return ((IEncapsulatedOpenBISService) getApplicationContext().getBean("openBIS-service"));
}
public static IShareIdManager getShareIdManager()
{
if (shareIdManager == null)
{
shareIdManager = new ShareIdManager(getOpenBISService(), 86400);
}
return shareIdManager;
}
public static HttpInvokerServiceExporter getDataStoreServer()
{
return ((HttpInvokerServiceExporter) getApplicationContext().getBean("data-store-server"));
......
......@@ -42,6 +42,7 @@ import ch.systemsx.cisd.common.logging.LogLevel;
import ch.systemsx.cisd.common.utilities.ITimeProvider;
import ch.systemsx.cisd.common.utilities.SystemTimeProvider;
import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
import ch.systemsx.cisd.openbis.dss.generic.shared.IShareIdManager;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
......@@ -211,7 +212,7 @@ public class SegmentedStoreUtils
* @param service to access openBIS AS.
*/
public static void moveDataSetToAnotherShare(File dataSetDirInStore, File share,
IEncapsulatedOpenBISService service)
IEncapsulatedOpenBISService service, IShareIdManager shareIdManager)
{
String dataSetCode = dataSetDirInStore.getName();
ExternalData dataSet = service.tryGetDataSet(dataSetCode);
......@@ -227,7 +228,9 @@ public class SegmentedStoreUtils
dataSetDirInNewShare.mkdirs();
copyToShare(dataSetDirInStore, dataSetDirInNewShare);
long size = assertEqualSizeAndChildren(dataSetDirInStore, dataSetDirInNewShare);
service.updateShareIdAndSize(dataSetCode, share.getName(), size);
String shareId = share.getName();
shareIdManager.setShareId(dataSetCode, shareId);
service.updateShareIdAndSize(dataSetCode, shareId, size);
FileUtilities.deleteRecursively(dataSetDirInStore);
}
......
......@@ -37,6 +37,7 @@ import ch.systemsx.cisd.common.logging.LogLevel;
import ch.systemsx.cisd.common.test.RecordingMatcher;
import ch.systemsx.cisd.common.utilities.ITimeProvider;
import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
import ch.systemsx.cisd.openbis.dss.generic.shared.IShareIdManager;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
......@@ -67,6 +68,7 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
private Mockery context;
private IEncapsulatedOpenBISService service;
private IShareIdManager shareIdManager;
private ISimpleLogger log;
private IFreeSpaceProvider freeSpaceProvider;
private ITimeProvider timeProvider;
......@@ -78,6 +80,7 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
{
context = new Mockery();
service = context.mock(IEncapsulatedOpenBISService.class);
shareIdManager = context.mock(IShareIdManager.class);
freeSpaceProvider = context.mock(IFreeSpaceProvider.class);
timeProvider = context.mock(ITimeProvider.class);
context.checking(new Expectations()
......@@ -199,12 +202,13 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
will(returnValue(new ExternalData()));
one(service).updateShareIdAndSize("ds-1", "2", 11L);
one(shareIdManager).setShareId("ds-1", "2");
}
});
assertEquals(true, dataSetDirInStore.exists());
assertFileNames(share2uuid01, "22");
SegmentedStoreUtils.moveDataSetToAnotherShare(dataSetDirInStore, share2, service);
SegmentedStoreUtils.moveDataSetToAnotherShare(dataSetDirInStore, share2, service, shareIdManager);
assertEquals(false, dataSetDirInStore.exists());
assertFileNames(share2uuid01, "02", "22");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment