diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java index fb3b819db38bdb0d9d0de30a3e867d30d76c71be..213147837cf1e8fa9136932792ccee339751cf42 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/ResourceSyncRequestHandler.java @@ -15,10 +15,18 @@ */ package ch.ethz.sis.openbis.generic.server.dss; +import org.apache.commons.lang.time.DateUtils; + import ch.ethz.sis.openbis.generic.server.EntityRetriever; +import ch.systemsx.cisd.common.spring.HttpInvokerUtils; +import ch.systemsx.cisd.common.ssl.SslCertificateHelper; import ch.systemsx.cisd.openbis.dss.generic.server.oaipmh.JythonBasedRequestHandler; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.IRequestHandlerPluginScriptRunner; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IMasterDataRegistrationTransaction; +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.EncapsulatedCommonServer; +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataRegistrationService; +import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** @@ -32,8 +40,19 @@ public class ResourceSyncRequestHandler extends JythonBasedRequestHandler protected void setVariables(IRequestHandlerPluginScriptRunner runner, SessionContextDTO session) { super.setVariables(runner, session); - String url = ServiceProvider.getConfigProvider().getOpenBisServerUrl() + properties.get("server-url"); + + String openBisUrl = ServiceProvider.getConfigProvider().getOpenBisServerUrl(); + SslCertificateHelper.trustAnyCertificate(openBisUrl); + ICommonServer commonService = + HttpInvokerUtils.createServiceStub(ICommonServer.class, openBisUrl + "/openbis/rmi-common", + 5 * DateUtils.MILLIS_PER_MINUTE); + + EncapsulatedCommonServer encapsulatedServer = EncapsulatedCommonServer.create(commonService, session.getSessionToken()); + MasterDataRegistrationService service = new MasterDataRegistrationService(encapsulatedServer); + IMasterDataRegistrationTransaction masterDataRegistrationTransaction = service.transaction(); + runner.setVariable(V3_ENTITY_RETRIEVER_VARIABLE_NAME, - EntityRetriever.createWithSessionToken(ServiceProvider.getV3ApplicationService(), session.getSessionToken())); + EntityRetriever.createWithMasterDataRegistationTransaction(ServiceProvider.getV3ApplicationService(), session.getSessionToken(), + masterDataRegistrationTransaction)); } } diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/test/.gitignore b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/test/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/EntityRetriever.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/EntityRetriever.java index a52662844b1a9b199de8b4a4acff64b3589e06d5..dee08ffbb672160d20934189b871f5c5eab6140c 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/EntityRetriever.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/EntityRetriever.java @@ -80,6 +80,8 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.search.SpaceSearchCriteria import ch.ethz.sis.openbis.generic.shared.entitygraph.Edge; import ch.ethz.sis.openbis.generic.shared.entitygraph.EntityGraph; import ch.ethz.sis.openbis.generic.shared.entitygraph.Node; +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IMasterDataRegistrationTransaction; +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IPropertyTypeImmutable; public class EntityRetriever { @@ -87,19 +89,28 @@ public class EntityRetriever private final IApplicationServerApi v3Api; + private final IMasterDataRegistrationTransaction masterDataRegistrationTransaction; + private final String sessionToken; private static final int TIMEOUT = 10000; - private EntityRetriever(IApplicationServerApi v3Api, String sessionToken) + private EntityRetriever(IApplicationServerApi v3Api, String sessionToken, IMasterDataRegistrationTransaction masterDataRegistrationTransaction) { this.v3Api = v3Api; this.sessionToken = sessionToken; + this.masterDataRegistrationTransaction = masterDataRegistrationTransaction; } + public static EntityRetriever createWithMasterDataRegistationTransaction(IApplicationServerApi v3Api, String sessionToken, + IMasterDataRegistrationTransaction masterDataRegistrationTransaction) + { + return new EntityRetriever(v3Api, sessionToken, masterDataRegistrationTransaction); + } + public static EntityRetriever createWithSessionToken(IApplicationServerApi v3Api, String sessionToken) { - return new EntityRetriever(v3Api, sessionToken); + return new EntityRetriever(v3Api, sessionToken, null); } public EntityGraph<Node<?>> getEntityGraph(String spaceId) @@ -557,12 +568,16 @@ public class EntityRetriever } } + public List<IPropertyTypeImmutable> listPropertyTypes() + { + return masterDataRegistrationTransaction.listPropertyTypes(); + } + private List<DataSetType> getDataSetTypes() { DataSetTypeSearchCriteria searchCriteria = new DataSetTypeSearchCriteria(); DataSetTypeFetchOptions fetchOptions = new DataSetTypeFetchOptions(); fetchOptions.withPropertyAssignments().withPropertyType().withVocabulary(); - // withPropertyAssignments.withPropertyType(); SearchResult<DataSetType> searchResult = v3Api.searchDataSetTypes(sessionToken, searchCriteria, fetchOptions); return searchResult.getObjects();