Skip to content

Commit

Permalink
Improve simulations-related schema
Browse files Browse the repository at this point in the history
Major schema changes:

1. SimulationDefinitionType was introduced. The system config
now contains a list of these definitions (to be selected from for the
tasks). A task can contain a custom simulation definition as well.

2. SimulationResultType has now start and end timestamps
and its definition.

Other changes:

- Simulation result is closed when the activity finishes: the end
timestamp is recorded and the metric values are computed. (Not working
quite well with distributed and delegated activities for now.)

- Minor code improvements: documenting and renaming things.
  • Loading branch information
mederly committed Jan 16, 2023
1 parent 56588f0 commit 391e67e
Show file tree
Hide file tree
Showing 30 changed files with 887 additions and 303 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@
import java.util.List;
import java.util.stream.Collectors;

import com.evolveum.midpoint.gui.impl.component.data.column.PrismPropertyWrapperColumn;
import com.evolveum.midpoint.web.component.data.column.LinkColumn;

import com.evolveum.midpoint.web.component.data.column.ObjectNameColumn;

import com.evolveum.midpoint.web.component.util.SelectableBean;
Expand Down Expand Up @@ -51,7 +48,7 @@
import com.evolveum.midpoint.web.page.error.PageError404;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationMetricType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationMetricValueType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationResultType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TagType;

Expand Down Expand Up @@ -123,11 +120,11 @@ private void initLayout() {
// todo implement
IModel<List<SmallBoxData>> data = () -> {

List<SimulationMetricType> metrics = model.getObject().getMetric();
List<SimulationMetricValueType> metrics = model.getObject().getMetric();
return metrics.stream().map(m -> {
SmallBoxData sbd = new SmallBoxData();
sbd.setDescription(m.getIdentifier());
sbd.setTitle(m.getMatchedObjects().longValue() + "/" + m.getProcessedObjects().longValue());
sbd.setTitle(String.valueOf(m.getValue()));
sbd.setSmallBoxCssClass("bg-info");
sbd.setLinkText("More info");
sbd.setIcon("fa fa-database");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.schema.merger.simulation;

import static com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationDefinitionType.F_SUPER;

import java.util.Map;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import com.evolveum.midpoint.schema.merger.BaseMergeOperation;
import com.evolveum.midpoint.schema.merger.GenericItemMerger;
import com.evolveum.midpoint.schema.merger.IgnoreSourceItemMerger;
import com.evolveum.midpoint.schema.merger.OriginMarker;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationDefinitionType;

/**
* Merges {@link SimulationDefinitionType} objects.
*/
public class SimulationDefinitionMergeOperation extends BaseMergeOperation<SimulationDefinitionType> {

public SimulationDefinitionMergeOperation(
@NotNull SimulationDefinitionType target,
@NotNull SimulationDefinitionType source,
@Nullable OriginMarker originMarker) {

super(target,
source,
new GenericItemMerger(
originMarker,
createPathMap(Map.of(
F_SUPER, IgnoreSourceItemMerger.INSTANCE
))));
}
}

0 comments on commit 391e67e

Please sign in to comment.