Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Mar 17, 2021
2 parents b6b84df + fdb376f commit 3daad30
Show file tree
Hide file tree
Showing 91 changed files with 2,147 additions and 1,067 deletions.
Expand Up @@ -539,7 +539,10 @@ private MainMenuItem createObjectsCollectionItems() {
private MainMenuItem createRepositoryObjectsMenu() {
MainMenuItem repositoryObjectsMenu = createMainMenuItem("PageAdmin.menu.top.configuration.repositoryObjects", "fa fa-file-text");
repositoryObjectsMenu.addMenuItem(new MenuItem("PageAdmin.menu.top.configuration.repositoryObjectsList", PageDebugList.class));
repositoryObjectsMenu.addMenuItem(new MenuItem("PageAdmin.menu.top.configuration.repositoryObjectView", PageDebugView.class));
boolean editActive = classMatches(PageDebugView.class);
if (editActive) {
repositoryObjectsMenu.addMenuItem(new MenuItem("PageAdmin.menu.top.configuration.repositoryObjectView", PageDebugView.class));
}
return repositoryObjectsMenu;
}

Expand Down
Expand Up @@ -30,7 +30,7 @@ public class TaskHandlerWrapperFactory extends PrismPropertyWrapperFactoryImpl<S
@Override
protected LookupTableType getPredefinedValues(PrismProperty<String> item, WrapperContext ctx) {
PrismObject<?> prismObject = getParent(ctx);
if (!TaskType.class.equals(prismObject.getCompileTimeClass())) {
if (prismObject == null || !TaskType.class.equals(prismObject.getCompileTimeClass())) {
return super.getPredefinedValues(item, ctx);
}

Expand Down
Expand Up @@ -41,41 +41,6 @@ public static <C extends Containerable> String getDisplayName(PrismContainerValu
String displayName = getDefaultDisplayName(prismContainerValue.getCompileTimeClass());
return StringEscapeUtils.escapeHtml4(displayName);

// String displayName = null;
//
// if (prismContainerValue.canRepresent(LifecycleStateType.class)) {
// displayName = getDisplayName((LifecycleStateType) containerable);
// } else if (prismContainerValue.canRepresent(ItemConstraintType.class)) {
// displayName = getDisplayName((ItemConstraintType) containerable);
// } else if (prismContainerValue.canRepresent(AssignmentType.class)) {
// displayName = getDisplayName((AssignmentType) containerable);
// } else if (prismContainerValue.canRepresent(ExclusionPolicyConstraintType.class)) {
// displayName = getDisplayName((ExclusionPolicyConstraintType) containerable);
// } else if (prismContainerValue.canRepresent(AbstractPolicyConstraintType.class)) {
// displayName = getDisplayName((AbstractPolicyConstraintType) containerable);
// } else if (prismContainerValue.canRepresent(RichHyperlinkType.class)) {
// displayName = getDisplayName((RichHyperlinkType) containerable);
// } else if (prismContainerValue.canRepresent(UserInterfaceFeatureType.class)) {
// displayName = getDisplayName((UserInterfaceFeatureType) containerable);
// } else if (prismContainerValue.canRepresent(GuiObjectColumnType.class)) {
// displayName = getDisplayName((GuiObjectColumnType) containerable);
// } else if (prismContainerValue.canRepresent(GuiObjectListViewType.class)) {
// displayName = getDisplayName((GuiObjectListViewType) containerable);
// } else if (prismContainerValue.canRepresent(GenericPcpAspectConfigurationType.class)) {
// displayName = getDisplayName((GenericPcpAspectConfigurationType) containerable);
// } else if (prismContainerValue.canRepresent(RelationDefinitionType.class)) {
// displayName = getDisplayName((RelationDefinitionType) containerable);
// } else if (prismContainerValue.canRepresent(ResourceItemDefinitionType.class)) {
// displayName = getDisplayName((ResourceItemDefinitionType) containerable);
// } else if (prismContainerValue.canRepresent(MappingType.class)) {
// displayName = getDisplayName((MappingType) containerable);
// } else if (prismContainerValue.canRepresent(ProvenanceAcquisitionType.class)) {
// displayName = getDisplayName((ProvenanceAcquisitionType) containerable);
// } else {


// }

}

private static <C extends Containerable> String getDefaultDisplayName(Class<C> cValClass) {
Expand Down Expand Up @@ -183,10 +148,6 @@ public static String getDisplayName(GuiObjectColumnType guiObjectColumn) {
return guiObjectColumn.getName();
}

// public static String getDisplayName(GuiObjectListViewType guiObjectListView) {
// return guiObjectListView.getName();
// }

public static String getDisplayName(GenericPcpAspectConfigurationType genericPcpAspectConfiguration) {
return genericPcpAspectConfiguration.getName();
}
Expand Down Expand Up @@ -253,4 +214,31 @@ public static String getDisplayName(ProvenanceAcquisitionType acquisition) {
public static String getDisplayName(TaskErrorHandlingStrategyEntryType taskErrorHandlingStrategy) {
return "Strategy (order " + (taskErrorHandlingStrategy.getOrder() == null ? " not defined)" : Integer.toString(taskErrorHandlingStrategy.getOrder()) + ")");
}

//TODO improve
public static String getDisplayName(TaskPartitionDefinitionType partitionDefinition) {
Integer index = partitionDefinition.getIndex();
TaskWorkManagementType workManagementType = partitionDefinition.getWorkManagement();

String string = "";
if (index != null) {
string += "Partition " + index;
}

if (workManagementType != null) {
TaskKindType taskKindType = workManagementType.getTaskKind();
if (taskKindType != null) {
string = appendKind(string, taskKindType);
}
}
return string;
}

private static String appendKind(String string, TaskKindType taskKindType) {
if (string.isBlank()) {
return string += taskKindType;
}

return string += ", " + taskKindType;
}
}
Expand Up @@ -12,7 +12,10 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.MappingsStatisticsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.EnvironmentalPerformanceInformationType;

import org.apache.wicket.model.StringResourceModel;

import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -46,28 +49,28 @@ public String getObject() {
return object;
}

public int getCount() {
return count;
public String getCount() {
return getString(count);
}

public Long getAverageTime() {
public String getAverageTime() {
if (count > 0) {
return totalTime / count;
return getString(totalTime / count);
} else {
return null;
}
}

public Long getMinTime() {
return minTime;
public String getMinTime() {
return getString(minTime);
}

public Long getMaxTime() {
return maxTime;
public String getMaxTime() {
return getString(maxTime);
}

public long getTotalTime() {
return totalTime;
public String getTotalTime() {
return getString(totalTime);
}

protected static List<MappingsLineDto> extractFromOperationalInformation(MappingsStatisticsType mappingsStatisticsType) {
Expand All @@ -81,4 +84,7 @@ protected static List<MappingsLineDto> extractFromOperationalInformation(Mapping
return retval;
}

private String getString(Object numerToFormat) {
return new StringResourceModel("StatisticsPanel.provisioningStatistics.averageTime.formatted").setParameters(numerToFormat).getString();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2010-2015 Evolveum and contributors
* Copyright (c) 2010-2021 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
Expand Down Expand Up @@ -27,12 +27,12 @@ public class ProvisioningStatisticsLineDto {

private ObjectReferenceType resourceRef;
private QName objectClass;
private List<ProvisioningStatisticsOperationEntryType> operations;
private List<ProvisioningStatisticsOperationDto> operations;

public ProvisioningStatisticsLineDto(ProvisioningStatisticsEntryType entry) {
this.resourceRef = entry.getResourceRef();
this.objectClass = entry.getObjectClass();
this.operations = entry.getOperation();
this.operations = ProvisioningStatisticsOperationDto.extractFromOperationalInformation(entry.getOperation());
}

public ObjectReferenceType getResourceRef() {
Expand Down
@@ -0,0 +1,92 @@
/*
* Copyright (c) 2021 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.web.component.progress;

import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ProvisioningStatisticsEntryType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ProvisioningStatisticsOperationEntryType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ProvisioningStatisticsType;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.wicket.model.StringResourceModel;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class ProvisioningStatisticsOperationDto implements Serializable {

public static final String F_AVG_TIME = "avgTime";

private Long avgTime;

private ProvisioningStatisticsOperationEntryType entry;


ProvisioningStatisticsOperationDto(ProvisioningStatisticsOperationEntryType entry) {
this.entry = entry;
computeAvg();
}

public static List<ProvisioningStatisticsOperationDto> extractFromOperationalInformation(List<ProvisioningStatisticsOperationEntryType> entries) {
List<ProvisioningStatisticsOperationDto> retval = new ArrayList<>();
if (CollectionUtils.isEmpty(entries)) {
return retval;
}
for (ProvisioningStatisticsOperationEntryType entry : entries) {
retval.add(new ProvisioningStatisticsOperationDto(entry));
}
return retval;
}

private void computeAvg() {
Integer count = entry.getCount();
if (count == null || count == 0) {
return;
}

Long totalTime = entry.getTotalTime();
if (totalTime == null) {
return;
}

avgTime = totalTime / count;
}

public String getCount() {
return getString(entry.getCount());
}

public String getMaxTime() {
return getString(entry.getMaxTime());
}

public String getMinTime() {
return getString(entry.getMinTime());
}

public String getTotalTime() {
return getString(entry.getTotalTime());
}

public String getAvgTime() {
return getString(avgTime);
}

public OperationResultStatusType getStatus() {
return entry.getStatus();
}

public String getOperation() {
return entry.getOperation();
}

private String getString(Object numberToFormat) {
return new StringResourceModel("StatisticsPanel.provisioningStatistics.averageTime.formatted").setParameters(numberToFormat).getString();
}
}
Expand Up @@ -10,20 +10,20 @@
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;

import com.evolveum.midpoint.web.component.data.BoxedTablePanel;

import com.evolveum.midpoint.web.component.data.column.EnumPropertyColumn;
import com.evolveum.midpoint.web.component.util.ListDataProvider;

import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationStatsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ProvisioningStatisticsOperationEntryType;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -83,16 +83,16 @@ protected void initLayout() {
ListView<ProvisioningStatisticsLineDto> provisioningLines = new ListView<>(ID_PROVISIONING_STATISTICS_LINES, new PropertyModel<>(getModel(), StatisticsDto.F_PROVISIONING_LINES)) {
protected void populateItem(final ListItem<ProvisioningStatisticsLineDto> item) {

ListDataProvider<ProvisioningStatisticsOperationEntryType> provider = new ListDataProvider<>(StatisticsPanel.this, new PropertyModel<>(item.getModel(), ProvisioningStatisticsLineDto.F_OPERATIONS));
BoxedTablePanel<ProvisioningStatisticsOperationEntryType> provisioningTable = new BoxedTablePanel<>(ID_PROVISIONING_OPERATIONS, provider, createProvisioningStatisticsColumns()) {
ListDataProvider<ProvisioningStatisticsOperationDto> provider = new ListDataProvider<>(StatisticsPanel.this, new PropertyModel<>(item.getModel(), ProvisioningStatisticsLineDto.F_OPERATIONS));
BoxedTablePanel<ProvisioningStatisticsOperationDto> provisioningTable = new BoxedTablePanel<>(ID_PROVISIONING_OPERATIONS, provider, createProvisioningStatisticsColumns()) {

@Override
protected WebMarkupContainer createHeader(String headerId) {
return new ProvisioningStatisticsHeaderFragment(headerId, ID_PROVISIONING_TITLE, StatisticsPanel.this, item.getModel());
}

@Override
protected Item<ProvisioningStatisticsOperationEntryType> customizeNewRowItem(Item<ProvisioningStatisticsOperationEntryType> item, IModel<ProvisioningStatisticsOperationEntryType> model) {
protected Item<ProvisioningStatisticsOperationDto> customizeNewRowItem(Item<ProvisioningStatisticsOperationDto> item, IModel<ProvisioningStatisticsOperationDto> model) {
item.add(AttributeModifier.append("class", new ReadOnlyModel<>(() -> {
if (model.getObject() != null && OperationResultStatusType.FATAL_ERROR == model.getObject().getStatus()) {
return "bg-red disabled color-palette";
Expand Down Expand Up @@ -154,22 +154,28 @@ protected boolean hideFooterIfSinglePage() {
contentsPanel.add(lastMessage);
}

private List<IColumn<ProvisioningStatisticsOperationEntryType, String>> createProvisioningStatisticsColumns() {
List<IColumn<ProvisioningStatisticsOperationEntryType, String>> columns = new ArrayList<>();
columns.add(createProvisioningStatisticsPropertyColumns(ProvisioningStatisticsOperationEntryType.F_OPERATION));
columns.add(createProvisioningStatisticsPropertyColumns(ProvisioningStatisticsOperationEntryType.F_COUNT));
columns.add(createProvisioningStatisticsPropertyColumns(ProvisioningStatisticsOperationEntryType.F_MAX_TIME));
columns.add(createProvisioningStatisticsPropertyColumns(ProvisioningStatisticsOperationEntryType.F_MIN_TIME));
columns.add(createProvisioningStatisticsPropertyColumns(ProvisioningStatisticsOperationEntryType.F_STATUS));
columns.add(createProvisioningStatisticsPropertyColumns(ProvisioningStatisticsOperationEntryType.F_TOTAL_TIME));
private List<IColumn<ProvisioningStatisticsOperationDto, String>> createProvisioningStatisticsColumns() {
List<IColumn<ProvisioningStatisticsOperationDto, String>> columns = new ArrayList<>();
columns.add(createProvisioningStatisticsPropertyColumn(ProvisioningStatisticsOperationEntryType.F_OPERATION));
columns.add(createProvisioningStatisticsPropertyEnumColumn(ProvisioningStatisticsOperationEntryType.F_STATUS));
columns.add(createProvisioningStatisticsPropertyColumn(ProvisioningStatisticsOperationEntryType.F_COUNT));
columns.add(new PropertyColumn<>(createStringResource("StatisticsPanel.provisioningStatistics.averageTime"), ProvisioningStatisticsOperationDto.F_AVG_TIME));
columns.add(createProvisioningStatisticsPropertyColumn(ProvisioningStatisticsOperationEntryType.F_MIN_TIME));
columns.add(createProvisioningStatisticsPropertyColumn(ProvisioningStatisticsOperationEntryType.F_MAX_TIME));
columns.add(createProvisioningStatisticsPropertyColumn(ProvisioningStatisticsOperationEntryType.F_TOTAL_TIME));
return columns;
}

private IColumn<ProvisioningStatisticsOperationEntryType, String> createProvisioningStatisticsPropertyColumns(QName column) {
private IColumn<ProvisioningStatisticsOperationDto, String> createProvisioningStatisticsPropertyColumn(QName column) {
String columnName = column.getLocalPart();
return new PropertyColumn<>(createStringResource("ProvisioningStatisticsOperationEntryType." + columnName), columnName);
}

private IColumn<ProvisioningStatisticsOperationDto, String> createProvisioningStatisticsPropertyEnumColumn(QName column) {
String columnName = column.getLocalPart();
return new EnumPropertyColumn<>(createStringResource("ProvisioningStatisticsOperationEntryType." + columnName), columnName);
}

private List<IColumn<MappingsLineDto, String>> createMappingsColumn() {
List<IColumn<MappingsLineDto,String>> columns = new ArrayList<>();
columns.add(new PropertyColumn<>(createStringResource("MappingsStatistics.Object"), MappingsLineDto.F_OBJECT));
Expand Down
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2010-2013 Evolveum
~ Copyright (c) 2010-2021 Evolveum
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
Expand All @@ -23,6 +23,8 @@
<a class="btn btn-default" wicket:id="back" />
</span>
<a class="btn btn-primary" wicket:id="save"/>

<a class="btn btn-default pull-right" wicket:id="editXml"/>
</div>
</form>
</wicket:extend>
Expand Down

0 comments on commit 3daad30

Please sign in to comment.