From 776984f04581abd77707ec54e227ab09a891fdd0 Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Tue, 12 Mar 2019 08:40:57 +0100 Subject: [PATCH] SSDM-7493: Refactoring by introducing parameter classes WritingContext and DeliveryExecutionContext --- .../datasource/AbstractEntityDeliverer.java | 20 ++- .../sync/datasource/DataSetDeliverer.java | 9 +- .../datasource/DataSourceRequestHandler.java | 129 ++++++++++++++++-- .../plugins/sync/datasource/Deliverers.java | 9 +- .../datasource/DeliveryExecutionContext.java | 90 ++++++++++++ .../sync/datasource/ExperimentDeliverer.java | 10 +- .../plugins/sync/datasource/IDeliverer.java | 9 +- .../sync/datasource/MasterDataDeliverer.java | 10 +- .../sync/datasource/MaterialDeliverer.java | 9 +- .../sync/datasource/ProjectDeliverer.java | 9 +- .../sync/datasource/SampleDeliverer.java | 9 +- .../sync/datasource/SpaceDeliverer.java | 9 +- 12 files changed, 269 insertions(+), 53 deletions(-) create mode 100644 datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DeliveryExecutionContext.java diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/AbstractEntityDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/AbstractEntityDeliverer.java index dea4b97a31b..75e9f98eb09 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/AbstractEntityDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/AbstractEntityDeliverer.java @@ -29,6 +29,7 @@ import javax.xml.stream.XMLStreamWriter; import org.apache.log4j.Logger; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.attachment.Attachment; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.ICodeHolder; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IModificationDateHolder; @@ -72,21 +73,26 @@ abstract class AbstractEntityDeliverer<T> implements IDeliverer } @Override - public void deliverEntities(XMLStreamWriter writer, IDataSourceQueryService queryService, String sessionToken, Set<String> spaces, Date requestTimestamp) throws XMLStreamException + public void deliverEntities(DeliveryExecutionContext context) throws XMLStreamException { + IDataSourceQueryService queryService = context.getQueryService(); + String sessionToken = context.getSessionToken(); List<T> allEntities = getAllEntities(queryService, sessionToken); - executeInBatches(allEntities, entities -> deliverEntities(writer, sessionToken, spaces, entities)); + executeInBatches(allEntities, entities -> deliverEntities(context, entities)); } - + protected List<T> getAllEntities(IDataSourceQueryService queryService, String sessionToken) { return Collections.emptyList(); } - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<T> entities) - throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<T> entities) throws XMLStreamException { + } + protected IApplicationServerApi getV3Api() + { + return context.getV3api(); } protected void addProperties(XMLStreamWriter writer, Map<String, String> properties) throws XMLStreamException @@ -188,12 +194,12 @@ abstract class AbstractEntityDeliverer<T> implements IDeliverer addAttribute(writer, attributeName, value); } } - + protected void addAttribute(XMLStreamWriter writer, String attributeName, Boolean value) throws XMLStreamException { addAttribute(writer, attributeName, value, v -> String.valueOf(v)); } - + protected <O> void addAttribute(XMLStreamWriter writer, String attributeName, O object, Function<O, String> mapper) throws XMLStreamException { if (object != null) diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSetDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSetDeliverer.java index 034c6509423..47c5c04ce20 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSetDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSetDeliverer.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.ContentCopy; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.DataSet; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.LinkedData; @@ -46,10 +47,14 @@ public class DataSetDeliverer extends AbstractEntityWithPermIdDeliverer } @Override - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<String> dataSets) throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<String> dataSets) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); + String sessionToken = context.getSessionToken(); + Set<String> spaces = context.getSpaces(); + IApplicationServerApi v3api = getV3Api(); List<DataSetPermId> permIds = dataSets.stream().map(DataSetPermId::new).collect(Collectors.toList()); - Collection<DataSet> fullDataSets = context.getV3api().getDataSets(sessionToken, permIds, createDataSetFetchOptions()).values(); + Collection<DataSet> fullDataSets = v3api.getDataSets(sessionToken, permIds, createDataSetFetchOptions()).values(); int count = 0; for (DataSet dataSet : fullDataSets) { diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSourceRequestHandler.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSourceRequestHandler.java index 127e50469fe..f48f43849d6 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSourceRequestHandler.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DataSourceRequestHandler.java @@ -57,16 +57,26 @@ public class DataSourceRequestHandler implements IRequestHandler RESOURCE_LIST("resourcelist", CAPABILITY_LIST, true) { @Override - void writeUrls(XMLStreamWriter writer, DeliveryContext context, IDataSourceQueryService queryService, IDeliverer deliverer, - Map<String, List<String>> parameterMap, String sessionToken, Date requestTimestamp) throws XMLStreamException + void writeUrls(WritingContext context) throws XMLStreamException { SpaceSearchCriteria searchCriteria = new SpaceSearchCriteria(); SpaceFetchOptions fetchOptions = new SpaceFetchOptions(); - List<Space> spaces = context.getV3api().searchSpaces(sessionToken, searchCriteria, fetchOptions).getObjects(); + DeliveryContext deliveryContext = context.getDeliveryContext(); + String sessionToken = context.getSessionToken(); + List<Space> spaces = deliveryContext.getV3api().searchSpaces(sessionToken, searchCriteria, fetchOptions).getObjects(); List<String> spaceCodes = spaces.stream().map(Space::getCode).collect(Collectors.toList()); + Map<String, List<String>> parameterMap = context.getParameterMap(); Set<String> requestedSpaces = DataSourceUtils.getRequestedAndAllowedSubSet(spaceCodes, parameterMap.get("white_list"), parameterMap.get("black_list")); - deliverer.deliverEntities(writer, queryService, sessionToken, requestedSpaces, requestTimestamp); + IDeliverer deliverer = context.getDeliverer(); + IDataSourceQueryService queryService = context.getQueryService(); + DeliveryExecutionContext executionContext = new DeliveryExecutionContext(); + executionContext.setQueryService(queryService); + executionContext.setRequestTimestamp(context.getRequestTimestamp()); + executionContext.setSessionToken(sessionToken); + executionContext.setSpaces(requestedSpaces); + executionContext.setWriter(context.getWriter()); + deliverer.deliverEntities(executionContext); } }; @@ -109,30 +119,31 @@ public class DataSourceRequestHandler implements IRequestHandler return name + ".xml"; } - void write(XMLStreamWriter writer, DeliveryContext context, IDataSourceQueryService queryService, IDeliverer deliverer, - Map<String, List<String>> parameterMap, String sessionToken, Date requestTimestamp) throws XMLStreamException + void write(WritingContext context) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); writer.writeStartElement("rs:ln"); String verb = up == null ? asVerb() : up.asVerb(); - writer.writeAttribute("href", createDownloadUrl(context, verb)); + writer.writeAttribute("href", createDownloadUrl(context.getDeliveryContext(), verb)); writer.writeAttribute("rel", up == null ? "describedby" : "up"); writer.writeEndElement(); writer.writeStartElement("rs:md"); if (withAt) { + Date requestTimestamp = context.getRequestTimestamp(); writer.writeAttribute("at", DataSourceUtils.convertToW3CDate(requestTimestamp)); } writer.writeAttribute("capability", capabilityAttribute); writer.writeEndElement(); - writeUrls(writer, context, queryService, deliverer, parameterMap, sessionToken, requestTimestamp); + writeUrls(context); } - void writeUrls(XMLStreamWriter writer, DeliveryContext context, IDataSourceQueryService queryService, IDeliverer deliverer, - Map<String, List<String>> parameterMap, String sessionToken, Date requestTimestamp) throws XMLStreamException + void writeUrls(WritingContext context) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); writer.writeStartElement("url"); writer.writeStartElement("loc"); - writer.writeCharacters(createDownloadUrl(context, down.asVerb())); + writer.writeCharacters(createDownloadUrl(context.getDeliveryContext(), down.asVerb())); writer.writeEndElement(); writer.writeStartElement("rs:md"); writer.writeAttribute("capability", down.name); @@ -193,7 +204,15 @@ public class DataSourceRequestHandler implements IRequestHandler Date requestTimestamp = getRequestTimestamp(queryService); Set<String> verbs = new HashSet<>(parameterMap.get("verb")); Capability capability = findMatchingCapability(verbs); - capability.write(writer, deliveryContext, queryService, deliverer, parameterMap, sessionToken, requestTimestamp); + WritingContext writingContext = new WritingContext(); + writingContext.setWriter(writer); + writingContext.setDeliveryContext(deliveryContext); + writingContext.setQueryService(queryService); + writingContext.setDeliverer(deliverer); + writingContext.setParameterMap(parameterMap); + writingContext.setSessionToken(sessionToken); + writingContext.setRequestTimestamp(requestTimestamp); + capability.write(writingContext); writer.writeEndElement(); writer.writeEndDocument(); } catch (Exception e) @@ -243,4 +262,90 @@ public class DataSourceRequestHandler implements IRequestHandler return parameterMap; } + private static final class WritingContext + { + private XMLStreamWriter writer; + + private DeliveryContext context; + + private IDataSourceQueryService queryService; + + private IDeliverer deliverer; + + private Map<String, List<String>> parameterMap; + + private String sessionToken; + + private Date requestTimestamp; + + public XMLStreamWriter getWriter() + { + return writer; + } + + public void setWriter(XMLStreamWriter writer) + { + this.writer = writer; + } + + public DeliveryContext getDeliveryContext() + { + return context; + } + + public void setDeliveryContext(DeliveryContext context) + { + this.context = context; + } + + public IDataSourceQueryService getQueryService() + { + return queryService; + } + + public void setQueryService(IDataSourceQueryService queryService) + { + this.queryService = queryService; + } + + public IDeliverer getDeliverer() + { + return deliverer; + } + + public void setDeliverer(IDeliverer deliverer) + { + this.deliverer = deliverer; + } + + public Map<String, List<String>> getParameterMap() + { + return parameterMap; + } + + public void setParameterMap(Map<String, List<String>> parameterMap) + { + this.parameterMap = parameterMap; + } + + public String getSessionToken() + { + return sessionToken; + } + + public void setSessionToken(String sessionToken) + { + this.sessionToken = sessionToken; + } + + public Date getRequestTimestamp() + { + return requestTimestamp; + } + + public void setRequestTimestamp(Date requestTimestamp) + { + this.requestTimestamp = requestTimestamp; + } + } } diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/Deliverers.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/Deliverers.java index 580c0ac7c8e..56fe763d63e 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/Deliverers.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/Deliverers.java @@ -17,14 +17,9 @@ package ch.ethz.sis.openbis.generic.server.dss.plugins.sync.datasource; import java.util.ArrayList; -import java.util.Date; import java.util.List; -import java.util.Set; import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; - -import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.IDataSourceQueryService; /** * @author Franz-Josef Elmer @@ -39,11 +34,11 @@ public class Deliverers implements IDeliverer } @Override - public void deliverEntities(XMLStreamWriter writer, IDataSourceQueryService queryService, String sessionToken, Set<String> spaces, Date requestTimestamp) throws XMLStreamException + public void deliverEntities(DeliveryExecutionContext context) throws XMLStreamException { for (IDeliverer deliverer : deliverers) { - deliverer.deliverEntities(writer, queryService, sessionToken, spaces, requestTimestamp); + deliverer.deliverEntities(context); } } diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DeliveryExecutionContext.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DeliveryExecutionContext.java new file mode 100644 index 00000000000..8f40605510b --- /dev/null +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/DeliveryExecutionContext.java @@ -0,0 +1,90 @@ +/* + * Copyright 2019 ETH Zuerich, SIS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.ethz.sis.openbis.generic.server.dss.plugins.sync.datasource; + +import java.util.Date; +import java.util.Set; + +import javax.xml.stream.XMLStreamWriter; + +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.IDataSourceQueryService; + +/** + * @author Franz-Josef Elmer + */ +class DeliveryExecutionContext +{ + private XMLStreamWriter writer; + + private IDataSourceQueryService queryService; + + private String sessionToken; + + private Set<String> spaces; + + private Date requestTimestamp; + + public XMLStreamWriter getWriter() + { + return writer; + } + + public void setWriter(XMLStreamWriter writer) + { + this.writer = writer; + } + + public IDataSourceQueryService getQueryService() + { + return queryService; + } + + public void setQueryService(IDataSourceQueryService queryService) + { + this.queryService = queryService; + } + + public String getSessionToken() + { + return sessionToken; + } + + public void setSessionToken(String sessionToken) + { + this.sessionToken = sessionToken; + } + + public Set<String> getSpaces() + { + return spaces; + } + + public void setSpaces(Set<String> spaces) + { + this.spaces = spaces; + } + + public Date getRequestTimestamp() + { + return requestTimestamp; + } + + public void setRequestTimestamp(Date requestTimestamp) + { + this.requestTimestamp = requestTimestamp; + } +} diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ExperimentDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ExperimentDeliverer.java index 3001f89d6bd..ad20d53b45c 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ExperimentDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ExperimentDeliverer.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.EntityKind; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.Experiment; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.fetchoptions.ExperimentFetchOptions; @@ -42,11 +43,14 @@ public class ExperimentDeliverer extends AbstractEntityWithPermIdDeliverer } @Override - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<String> experiments) - throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<String> experiments) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); + String sessionToken = context.getSessionToken(); + Set<String> spaces = context.getSpaces(); + IApplicationServerApi v3api = getV3Api(); List<ExperimentPermId> permIds = experiments.stream().map(ExperimentPermId::new).collect(Collectors.toList()); - Collection<Experiment> fullExperiments = context.getV3api().getExperiments(sessionToken, permIds, createFullFetchOptions()).values(); + Collection<Experiment> fullExperiments = v3api.getExperiments(sessionToken, permIds, createFullFetchOptions()).values(); int count = 0; for (Experiment experiment : fullExperiments) { diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/IDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/IDeliverer.java index aca57a8ea1b..3ffa75cacaa 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/IDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/IDeliverer.java @@ -16,13 +16,7 @@ package ch.ethz.sis.openbis.generic.server.dss.plugins.sync.datasource; -import java.util.Date; -import java.util.Set; - import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; - -import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.IDataSourceQueryService; /** * @author Franz-Josef Elmer @@ -32,7 +26,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.IDataSourceQuery interface IDeliverer { - void deliverEntities(XMLStreamWriter writer, IDataSourceQueryService queryService, String sessionToken, - Set<String> spaces, Date requestTimestamp) throws XMLStreamException; + void deliverEntities(DeliveryExecutionContext context) throws XMLStreamException; } \ No newline at end of file diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MasterDataDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MasterDataDeliverer.java index d7e2421df9d..c4c3824b814 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MasterDataDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MasterDataDeliverer.java @@ -18,7 +18,6 @@ package ch.ethz.sis.openbis.generic.server.dss.plugins.sync.datasource; import static ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant.INTERNAL_NAMESPACE_PREFIX; -import java.util.Date; import java.util.List; import java.util.Set; @@ -90,14 +89,15 @@ public class MasterDataDeliverer extends AbstractEntityDeliverer<Object> } @Override - public void deliverEntities(XMLStreamWriter writer, IDataSourceQueryService queryService, - String sessionToken, Set<String> spaces, Date requestTimestamp) throws XMLStreamException + public void deliverEntities(DeliveryExecutionContext context) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); startUrlElement(writer); addLocation(writer, "MASTER_DATA", "MASTER_DATA"); - addLastModificationDate(writer, requestTimestamp); + addLastModificationDate(writer, context.getRequestTimestamp()); writer.writeStartElement("xmd:masterData"); - addFileFormatTypes(writer, queryService, sessionToken); + String sessionToken = context.getSessionToken(); + addFileFormatTypes(writer, context.getQueryService(), sessionToken); addValidationPlugins(writer, sessionToken); addVocabularies(writer, sessionToken); addPropertyTypes(writer, sessionToken); diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MaterialDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MaterialDeliverer.java index 8529d6b0ee5..a6896053db0 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MaterialDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/MaterialDeliverer.java @@ -27,6 +27,7 @@ import java.util.stream.Collectors; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.material.Material; import ch.ethz.sis.openbis.generic.asapi.v3.dto.material.fetchoptions.MaterialFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.material.id.MaterialPermId; @@ -55,11 +56,13 @@ public class MaterialDeliverer extends AbstractEntityDeliverer<Material> } @Override - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<Material> materials) - throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<Material> materials) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); + String sessionToken = context.getSessionToken(); + IApplicationServerApi v3api = getV3Api(); List<MaterialPermId> permIds = materials.stream().map(Material::getPermId).collect(Collectors.toList()); - Collection<Material> fullMaterials = context.getV3api().getMaterials(sessionToken, permIds, createFullFetchOptions()).values(); + Collection<Material> fullMaterials = v3api.getMaterials(sessionToken, permIds, createFullFetchOptions()).values(); for (Material material : fullMaterials) { startUrlElement(writer); diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ProjectDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ProjectDeliverer.java index 69b3f75a533..b7d37ab9cb4 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ProjectDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/ProjectDeliverer.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.Project; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.fetchoptions.ProjectFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.ProjectPermId; @@ -41,10 +42,14 @@ public class ProjectDeliverer extends AbstractEntityWithPermIdDeliverer } @Override - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<String> projectPermIds) throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<String> projectPermIds) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); + String sessionToken = context.getSessionToken(); + Set<String> spaces = context.getSpaces(); + IApplicationServerApi v3api = getV3Api(); List<ProjectPermId> permIds = projectPermIds.stream().map(ProjectPermId::new).collect(Collectors.toList()); - Collection<Project> fullProjects = context.getV3api().getProjects(sessionToken, permIds, createFullFetchOptions()).values(); + Collection<Project> fullProjects = v3api.getProjects(sessionToken, permIds, createFullFetchOptions()).values(); int count = 0; for (Project project : fullProjects) { diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SampleDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SampleDeliverer.java index 14ce682aa71..f8e52aa2390 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SampleDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SampleDeliverer.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.EntityKind; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.Sample; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions.SampleFetchOptions; @@ -42,10 +43,14 @@ public class SampleDeliverer extends AbstractEntityWithPermIdDeliverer } @Override - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<String> samplePermIds) throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<String> samplePermIds) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); + String sessionToken = context.getSessionToken(); + Set<String> spaces = context.getSpaces(); + IApplicationServerApi v3api = getV3Api(); List<SamplePermId> permIds = samplePermIds.stream().map(SamplePermId::new).collect(Collectors.toList()); - Collection<Sample> fullSamples = context.getV3api().getSamples(sessionToken, permIds, createFullFetchOptions()).values(); + Collection<Sample> fullSamples = v3api.getSamples(sessionToken, permIds, createFullFetchOptions()).values(); int count = 0; for (Sample sample : fullSamples) { diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SpaceDeliverer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SpaceDeliverer.java index fa41473da13..767a792dc62 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SpaceDeliverer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/datasource/SpaceDeliverer.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.Space; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.fetchoptions.SpaceFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.id.SpacePermId; @@ -41,10 +42,14 @@ public class SpaceDeliverer extends AbstractEntityWithPermIdDeliverer } @Override - protected void deliverEntities(XMLStreamWriter writer, String sessionToken, Set<String> spaces, List<String> allSpaces) throws XMLStreamException + protected void deliverEntities(DeliveryExecutionContext context, List<String> allSpaces) throws XMLStreamException { + XMLStreamWriter writer = context.getWriter(); + String sessionToken = context.getSessionToken(); + Set<String> spaces = context.getSpaces(); + IApplicationServerApi v3api = getV3Api(); List<SpacePermId> permIds = allSpaces.stream().map(SpacePermId::new).collect(Collectors.toList()); - Collection<Space> fullSpaces = context.getV3api().getSpaces(sessionToken, permIds, createSpaceFetchOptions()).values(); + Collection<Space> fullSpaces = v3api.getSpaces(sessionToken, permIds, createSpaceFetchOptions()).values(); int count = 0; for (Space space : fullSpaces) { -- GitLab