diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/NewExternalDataDAG.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/NewExternalDataDAG.java index 577423a95c4ae45105b2774215960451c88d79fd..82082591ddebcba1d6cc245e6bb987e2bb98324a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/NewExternalDataDAG.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/NewExternalDataDAG.java @@ -21,6 +21,8 @@ import java.util.HashMap; import java.util.List; import ch.systemsx.cisd.common.collections.DAG; +import ch.systemsx.cisd.common.conversation.context.ServiceConversationsThreadContext; +import ch.systemsx.cisd.common.conversation.progress.IServiceConversationProgressListener; import ch.systemsx.cisd.openbis.generic.shared.dto.NewContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; @@ -78,6 +80,11 @@ public class NewExternalDataDAG */ private void constructGraph() { + IServiceConversationProgressListener listener = + ServiceConversationsThreadContext.getProgressListener(); + + int index = 0; + for (NewExternalData dataSet : dataSetRegistrations) { String dataSetCode = dataSet.getCode(); @@ -99,6 +106,8 @@ public class NewExternalDataDAG } dependencyGraph.put(dataSet.getCode(), dependents); + + listener.update("constructGraph", dataSetRegistrations.size(), ++index); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ArrayPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ArrayPredicate.java index cb264d749d40fe4446c5f4023e0e89b4f69851b4..70350e9c31f7522560d7535281e5c6cea2f30555 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ArrayPredicate.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ArrayPredicate.java @@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate; import java.util.List; +import ch.systemsx.cisd.common.conversation.context.ServiceConversationsThreadContext; +import ch.systemsx.cisd.common.conversation.progress.IServiceConversationProgressListener; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.StatusFlag; import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider; @@ -31,6 +33,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; */ public final class ArrayPredicate<T> extends AbstractPredicate<T[]> { + private final IPredicate<T> predicate; public ArrayPredicate(final IPredicate<T> predicate) @@ -65,10 +68,14 @@ public final class ArrayPredicate<T> extends AbstractPredicate<T[]> } @Override - protected - final Status doEvaluation(final PersonPE person, final List<RoleWithIdentifier> allowedRoles, - final T[] value) + protected final Status doEvaluation(final PersonPE person, + final List<RoleWithIdentifier> allowedRoles, final T[] value) { + IServiceConversationProgressListener listener = + ServiceConversationsThreadContext.getProgressListener(); + + int index = 0; + for (final T item : value) { final Status status = itemEvaluate(person, allowedRoles, item); @@ -76,6 +83,7 @@ public final class ArrayPredicate<T> extends AbstractPredicate<T[]> { return status; } + listener.update("authorize", value.length, ++index); } return Status.OK; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/CollectionPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/CollectionPredicate.java index 17535d26475f2324b81f0139d3c4d15e8b5e660f..ebef9212f1dc2709d6cb284f65797b1d0e71d0a2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/CollectionPredicate.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/CollectionPredicate.java @@ -19,6 +19,8 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate; import java.util.Collection; import java.util.List; +import ch.systemsx.cisd.common.conversation.context.ServiceConversationsThreadContext; +import ch.systemsx.cisd.common.conversation.progress.IServiceConversationProgressListener; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.StatusFlag; import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider; @@ -56,10 +58,14 @@ public final class CollectionPredicate<T> extends AbstractPredicate<Collection<T } @Override - protected - final Status doEvaluation(final PersonPE person, final List<RoleWithIdentifier> allowedRoles, - final Collection<T> value) + protected final Status doEvaluation(final PersonPE person, + final List<RoleWithIdentifier> allowedRoles, final Collection<T> value) { + IServiceConversationProgressListener listener = + ServiceConversationsThreadContext.getProgressListener(); + + int index = 0; + for (final T item : value) { final Status status = itemEvaluate(person, allowedRoles, item); @@ -67,6 +73,7 @@ public final class CollectionPredicate<T> extends AbstractPredicate<Collection<T { return status; } + listener.update("authorize", value.size(), ++index); } return Status.OK; }