Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jun 10, 2020
2 parents 1863874 + dfdf370 commit 239f99b
Show file tree
Hide file tree
Showing 67 changed files with 1,634 additions and 1,091 deletions.
4 changes: 3 additions & 1 deletion dist/javadoc/pom.xml
Expand Up @@ -57,7 +57,9 @@
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<source>${project.source.version}</source>
<includeDependencySources>true</includeDependencySources>
<includeTransitiveDependencySources>true</includeTransitiveDependencySources>
<dependencySourceIncludes>
Expand Down Expand Up @@ -104,8 +106,8 @@
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>javadoc-jar</id>
Expand Down
4 changes: 3 additions & 1 deletion dist/midpoint-api/pom.xml
Expand Up @@ -79,7 +79,9 @@
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<source>${project.source.version}</source>
<includeDependencySources>true</includeDependencySources>
<dependencySourceIncludes>
<dependencySourceInclude>com.evolveum.*:*</dependencySourceInclude>
Expand Down Expand Up @@ -116,8 +118,8 @@
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>javadoc-jar</id>
Expand Down
Expand Up @@ -6,6 +6,11 @@
*/
package com.evolveum.midpoint.gui.impl.factory.wrapper;

import com.evolveum.midpoint.gui.api.prism.wrapper.ShadowWrapper;
import com.evolveum.midpoint.util.logging.Trace;

import com.evolveum.midpoint.util.logging.TraceManager;

import org.springframework.stereotype.Component;

import com.evolveum.midpoint.gui.api.prism.ItemStatus;
Expand All @@ -23,9 +28,14 @@
@Component
public class ShadowWrapperFactoryImpl extends PrismObjectWrapperFactoryImpl<ShadowType> {

private static final transient Trace LOGGER = TraceManager.getTrace(ShadowWrapperFactoryImpl.class);

@Override
public PrismObjectWrapper<ShadowType> createObjectWrapper(PrismObject<ShadowType> object, ItemStatus status) {
return new ShadowWrapperImpl(object, status);
LOGGER.trace("create shadow wrapper");
ShadowWrapper shadowWrapper = new ShadowWrapperImpl(object, status);
LOGGER.trace("Shadow wrapper created: {}", shadowWrapper);
return shadowWrapper;
}

@Override
Expand Down
Expand Up @@ -59,36 +59,47 @@ private void initLayout() {

try {

long attributesStart = System.currentTimeMillis();
ItemPanelSettingsBuilder attributesSettingsBuilder = new ItemPanelSettingsBuilder()
.visibilityHandler(itemWrapper -> checkShadowContainerVisibility(itemWrapper, getModel()));
Panel attributesPanel = getPageBase().initItemPanel(ID_ATTRIBUTES, ShadowAttributesType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getModel(), ShadowType.F_ATTRIBUTES),
attributesSettingsBuilder.build());
add(attributesPanel);
long attributesEnd = System.currentTimeMillis();
LOGGER.trace("Attributes finished in {} ms", attributesEnd - attributesStart);

long associationStart = System.currentTimeMillis();
ItemPanelSettingsBuilder associationBuilder = new ItemPanelSettingsBuilder()
.visibilityHandler(itemWrapper -> checkShadowContainerVisibility(itemWrapper, getModel()));
Panel associationsPanel = getPageBase().initItemPanel(ID_ASSOCIATIONS, ShadowAssociationType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getModel(), ShadowType.F_ASSOCIATION),
associationBuilder.build());
associationsPanel.add(new VisibleBehaviour(() -> checkAssociationsVisibility()));
add(associationsPanel);
long associationEnd = System.currentTimeMillis();
LOGGER.trace("Association finished in {} ms", associationEnd - associationStart);


long activationStart = System.currentTimeMillis();
ItemPanelSettingsBuilder activationBuilder = new ItemPanelSettingsBuilder()
.visibilityHandler(itemWrapper -> checkShadowContainerVisibility(itemWrapper, getModel()));
Panel activationPanel = getPageBase().initItemPanel(ID_ACTIVATION, ActivationType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getModel(), ShadowType.F_ACTIVATION),
activationBuilder.build());
activationPanel.add(new VisibleBehaviour(() -> isActivationSupported()));
add(activationPanel);
long activationEnd = System.currentTimeMillis();
LOGGER.trace("Activation finished in {} ms", activationEnd - activationStart);

long passwordStart = System.currentTimeMillis();
ItemPanelSettingsBuilder passwordSettingsBuilder = new ItemPanelSettingsBuilder()
.visibilityHandler(itemWrapper -> checkShadowContainerVisibility(itemWrapper, getModel()));
Panel passwordPanel = getPageBase().initItemPanel(ID_PASSWORD, PasswordType.COMPLEX_TYPE, PrismContainerWrapperModel.fromContainerWrapper(getModel(), ItemPath.create(ShadowType.F_CREDENTIALS, CredentialsType.F_PASSWORD)),
passwordSettingsBuilder.build());
passwordPanel.add(new VisibleBehaviour(() -> isCredentialsSupported()));
add(passwordPanel);
long passwordEnd = System.currentTimeMillis();
LOGGER.trace("Password finished in {} ms", passwordEnd - passwordStart);
} catch (SchemaException e) {
getSession().error("Cannot create panels for shadow, reason: " + e.getMessage());
LOGGER.error("Cannot create panels for shadow, reason: {}", e.getMessage(), e);
LOGGER.trace("Cannot create panels for shadow, reason: {}", e.getMessage(), e);

}
}
Expand Down
Expand Up @@ -29,8 +29,6 @@ public class DropDownChoicePanel<T> extends InputPanel {
private static final long serialVersionUID = 1L;
private static final String ID_INPUT = "input";

private boolean sortChoices = true;

public DropDownChoicePanel(String id, IModel<T> model, IModel<? extends List<? extends T>> choices) {
this(id, model, choices, false);
}
Expand Down Expand Up @@ -66,16 +64,6 @@ protected String getNullValidDisplayValue() {
return DropDownChoicePanel.this.getNullValidDisplayValue();
}

@Override
public IModel<? extends List<? extends T>> getChoicesModel() {
IModel<? extends List<? extends T>> choices = super.getChoicesModel();
if (sortChoices) {
return Model.ofList(WebComponentUtil.sortDropDownChoices(choices, renderer));
} else {
return choices;
}
}

@Override
public String getModelValue() {
T object = this.getModelObject();
Expand Down Expand Up @@ -108,12 +96,4 @@ public IModel<T> getModel() {
protected String getNullValidDisplayValue() {
return getString("DropDownChoicePanel.notDefined");
}

public boolean isSortChoices() {
return sortChoices;
}

public void setSortChoices(boolean sortChoices) {
this.sortChoices = sortChoices;
}
}
Expand Up @@ -475,27 +475,6 @@ private void addSelectedAccountPerformed(AjaxRequestTarget target, List<Resource
target.add(getMultivalueContainerListPanel());
}

private IModel<PrismContainerWrapper<ShadowType>> createEmptyShadowWrapperModel() {
ShadowType shadow = new ShadowType();
ShadowWrapper wrapper = null;
Task task = getPageBase().createSimpleTask("create empty shadow wrapper");
try {
getPageBase().getPrismContext().adopt(shadow);
wrapper = ((PageAdminFocus) getPage()).loadShadowWrapper(shadow.asPrismContainer(), task, task.getResult());
} catch (SchemaException e) {
getPageBase().showResult(task.getResult(), "pageAdminFocus.message.couldntCreateShadowWrapper");
LOGGER.error("Couldn't create shadow wrapper", e);
}
final ShadowWrapper ret = wrapper;
return new IModel<PrismContainerWrapper<ShadowType>>() {

@Override
public PrismContainerWrapper<ShadowType> getObject() {
return ret;
}
};
}

private List<InlineMenuItem> createShadowMenu() {
List<InlineMenuItem> items = new ArrayList<>();

Expand Down
Expand Up @@ -136,6 +136,8 @@ public void continueEditing(AjaxRequestTarget target) {
}

private List<ShadowWrapper> loadShadowWrappers(boolean noFetch) {
LOGGER.trace("Loading shadow wrapper");
long start = System.currentTimeMillis();
List<ShadowWrapper> list = new ArrayList<>();

PrismObjectWrapper<F> focusWrapper = getObjectModel().getObject();
Expand All @@ -152,17 +154,22 @@ private List<ShadowWrapper> loadShadowWrappers(boolean noFetch) {
LOGGER.trace("Skiping reference for shadow with null oid");
continue; // default value
}
long shadowTimestampBefore = System.currentTimeMillis();
OperationResult subResult = task.getResult().createMinorSubresult(OPERATION_LOAD_SHADOW);
PrismObject<ShadowType> projection = getPrismObjectForWrapper(ShadowType.class, reference.getOid(),
noFetch, task, subResult, createLoadOptionForShadowWrapper());

long shadowTimestampAfter = System.currentTimeMillis();
LOGGER.trace("Got shadow: {} in {}", projection, shadowTimestampAfter - shadowTimestampBefore);
if(projection == null) {
// showResult(subResult, "pageAdminFocus.message.couldntLoadShadowProjection");
LOGGER.error("Couldn't load shadow projection");
continue;
}

long timestampWrapperStart = System.currentTimeMillis();
try {

ShadowWrapper wrapper = loadShadowWrapper(projection, task, subResult);
wrapper.setLoadWithNoFetch(noFetch);

Expand All @@ -178,7 +185,11 @@ private List<ShadowWrapper> loadShadowWrappers(boolean noFetch) {
showResult(subResult, "pageAdminFocus.message.couldntCreateShadowWrapper");
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't create shadow wrapper", e);
}
long timestampWrapperEnd = System.currentTimeMillis();
LOGGER.trace("Load wrapper in {}", timestampWrapperEnd - timestampWrapperStart);
}
long end = System.currentTimeMillis();
LOGGER.trace("Load projctions in {}", end - start);
return list;
}

Expand All @@ -198,6 +209,8 @@ public ShadowWrapper loadShadowWrapper(PrismObject<ShadowType> projection, Task
}

public void loadFullShadow(PrismObjectValueWrapper<ShadowType> shadowWrapperValue, AjaxRequestTarget target) {
LOGGER.trace("Loading full shadow");
long start = System.currentTimeMillis();
if(shadowWrapperValue.getRealValue() == null) {
error(getString("pageAdminFocus.message.couldntCreateShadowWrapper"));
LOGGER.error("Couldn't create shadow wrapper, because RealValue is null in " + shadowWrapperValue);
Expand All @@ -206,16 +219,20 @@ public void loadFullShadow(PrismObjectValueWrapper<ShadowType> shadowWrapperValu
String oid = shadowWrapperValue.getRealValue().getOid();
Task task = createSimpleTask(OPERATION_LOAD_SHADOW);
OperationResult result = task.getResult();
long loadStart = System.currentTimeMillis();
PrismObject<ShadowType> projection = getPrismObjectForWrapper(ShadowType.class, oid, false, task,
result, createLoadOptionForShadowWrapper());

long loadEnd = System.currentTimeMillis();
LOGGER.trace("Load projection in {} ms", loadEnd - loadStart);
if (projection == null) {
result.recordFatalError(getString("PageAdminFocus.message.loadFullShadow.fatalError", shadowWrapperValue.getRealValue()));
showResult(result);
target.add(getFeedbackPanel());
return;
}

long wrapperStart = System.currentTimeMillis();
ShadowWrapper shadowWrapperNew;
try {
shadowWrapperNew = loadShadowWrapper(projection, task, result);
Expand All @@ -233,6 +250,10 @@ public void loadFullShadow(PrismObjectValueWrapper<ShadowType> shadowWrapperValu
error(getString("pageAdminFocus.message.couldntCreateShadowWrapper"));
LOGGER.error("Couldn't create shadow wrapper", e);
}
long wrapperEnd = System.currentTimeMillis();
LOGGER.trace("Wrapper loaded in {} ms", wrapperEnd - wrapperStart);
long end = System.currentTimeMillis();
LOGGER.trace("Got full shadow in {} ms", end - start);
}

// @Override
Expand Down
Expand Up @@ -7,6 +7,24 @@

package com.evolveum.midpoint.web.page.admin.configuration;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;

import com.evolveum.midpoint.gui.api.model.NonEmptyModel;
import com.evolveum.midpoint.gui.api.model.NonEmptyWrapperModel;
import com.evolveum.midpoint.schema.result.OperationResult;
Expand All @@ -25,27 +43,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.MappingEvaluationRequestType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.MappingEvaluationResponseType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.MappingType;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;

/**
* @author mederly
*/
@PageDescriptor(url = "/admin/config/evaluateMapping", action = {
@AuthorizationAction(actionUri = PageAdminConfiguration.AUTH_CONFIGURATION_ALL,
label = PageAdminConfiguration.AUTH_CONFIGURATION_ALL_LABEL, description = PageAdminConfiguration.AUTH_CONFIGURATION_ALL_DESCRIPTION),
Expand Down Expand Up @@ -113,12 +111,7 @@ protected void onSubmit(AjaxRequestTarget target) {

final DropDownChoice<String> sampleChoice = new DropDownChoice<>(ID_MAPPING_SAMPLE,
Model.of(""),
new IModel<List<String>>() {
@Override
public List<String> getObject() {
return SAMPLES;
}
},
(IModel<List<String>>) () -> SAMPLES,
new StringResourceChoiceRenderer("PageEvaluateMapping.sample"));
sampleChoice.setNullValid(true);
sampleChoice.add(new OnChangeAjaxBehavior() {
Expand All @@ -135,17 +128,14 @@ protected void onUpdate(AjaxRequestTarget target) {
}

private String readResource(String name) {
InputStream is = PageEvaluateMapping.class.getResourceAsStream(name);
if (is != null) {
try {
try (InputStream is = PageEvaluateMapping.class.getResourceAsStream(name)) {
if (is != null) {
return IOUtils.toString(is, StandardCharsets.UTF_8);
} catch (IOException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't read sample from resource {}", e, name);
} finally {
IOUtils.closeQuietly(is);
} else {
LOGGER.warn("Resource {} containing sample couldn't be found", name);
}
} else {
LOGGER.warn("Resource {} containing sample couldn't be found", name);
} catch (IOException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't read sample from resource {}", e, name);
}
return null;
}
Expand Down Expand Up @@ -201,6 +191,4 @@ private void executeMappingPerformed(AjaxRequestTarget target) {
showResult(result);
target.add(this);
}


}

0 comments on commit 239f99b

Please sign in to comment.