com.evolveum.midpoint.infra
util
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/result/OpResult.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/result/OpResult.java
index 29fbb2d7587..9ee7a4cfa6b 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/result/OpResult.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/result/OpResult.java
@@ -17,7 +17,6 @@
package com.evolveum.midpoint.gui.api.component.result;
import com.evolveum.midpoint.gui.api.page.PageBase;
-import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.Visitable;
import com.evolveum.midpoint.prism.Visitor;
import com.evolveum.midpoint.schema.result.OperationResult;
@@ -142,7 +141,7 @@ public static OpResult getOpResult(PageBase page, OperationResult result){
try {
OperationResultType resultType = result.createOperationResultType();
ObjectFactory of = new ObjectFactory();
- opResult.xml = page.getPrismContext().serializeAtomicValue(of.createOperationResult(resultType), PrismContext.LANG_XML);
+ opResult.xml = page.getPrismContext().xmlSerializer().serialize(of.createOperationResult(resultType));
} catch (SchemaException|RuntimeException ex) {
String m = "Can't create xml: " + ex;
// error(m);
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java
index 8a96cf361a2..5188387349c 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java
@@ -33,6 +33,7 @@
import com.evolveum.midpoint.web.page.admin.configuration.*;
import com.evolveum.midpoint.web.page.admin.reports.*;
import com.evolveum.midpoint.web.page.self.*;
+import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.apache.wicket.AttributeModifier;
@@ -159,10 +160,6 @@
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.web.util.validation.MidpointFormValidatorRegistry;
import com.evolveum.midpoint.wf.api.WorkflowManager;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.AdminGuiConfigurationType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.RichHyperlinkType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.WorkItemType;
/**
* @author lazyman
@@ -870,8 +867,20 @@ public RestartResponseException getRestartResponseException(Class extends Page
return new RestartResponseException(defaultBackPageClass);
}
- protected void validateObject(String xmlObject, final Holder
objectHolder,
- boolean validateSchema, OperationResult result) {
+ protected void validateObject(String lexicalRepresentation, final Holder> objectHolder,
+ String language, boolean validateSchema, OperationResult result) {
+
+ if (language == null || PrismContext.LANG_JSON.equals(language) || PrismContext.LANG_YAML.equals(language)) {
+ PrismObject object;
+ try {
+ object = getPrismContext().parserFor(lexicalRepresentation).language(language).parse();
+ objectHolder.setValue(object);
+ } catch (RuntimeException | SchemaException e) {
+ result.recordFatalError("Couldn't parse object: " + e.getMessage(), e);
+ }
+ return;
+ }
+
EventHandler handler = new EventHandler() {
@Override
@@ -883,7 +892,7 @@ public EventResult preMarshall(Element objectElement, Node postValidationTree,
@Override
public EventResult postMarshall(PrismObject object, Element objectElement,
OperationResult objectResult) {
- objectHolder.setValue((P) object);
+ objectHolder.setValue((PrismObject) object);
return EventResult.cont();
}
@@ -894,7 +903,7 @@ public void handleGlobalError(OperationResult currentResult) {
Validator validator = new Validator(getPrismContext(), handler);
validator.setVerbose(true);
validator.setValidateSchema(validateSchema);
- validator.validateObject(xmlObject, result);
+ validator.validateObject(lexicalRepresentation, result);
result.computeStatus();
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AceEditor.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AceEditor.java
index 97ded86034a..11d504bcb4f 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AceEditor.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/AceEditor.java
@@ -16,16 +16,32 @@
package com.evolveum.midpoint.web.component;
+import com.evolveum.midpoint.prism.PrismContext;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.HashMap;
+import java.util.Map;
public class AceEditor extends TextArea {
public static final String MODE_XML = "ace/mode/xml";
+ public static final String MODE_JSON = "ace/mode/json";
+ public static final String MODE_YAML = "ace/mode/yaml";
+
+ public static final Map MODES = new HashMap<>();
+
+ static {
+ MODES.put(null, MODE_XML);
+ MODES.put(PrismContext.LANG_XML, MODE_XML);
+ MODES.put(PrismContext.LANG_JSON, MODE_JSON);
+ MODES.put(PrismContext.LANG_YAML, MODE_YAML);
+ }
private IModel readonly = new Model(false);
@@ -88,7 +104,11 @@ public void setMode(String mode) {
this.mode = mode;
}
- public void setReadonly(boolean readonly) {
+ public void setModeForDataLanguage(@Nullable String dataLanguage) {
+ setMode(MODES.get(dataLanguage));
+ }
+
+ public void setReadonly(boolean readonly) {
this.readonly.setObject(readonly);
}
@@ -102,4 +122,5 @@ public void refreshReadonly(AjaxRequestTarget target) {
target.appendJavaScript(sb.toString());
}
+
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorDto.java
index 966bdf7fae3..3d55fb0f2c5 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorDto.java
@@ -22,6 +22,7 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import org.apache.commons.lang.Validate;
import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition;
@@ -217,7 +218,7 @@ private List prepareAssignmentAttributes(AssignmentType assignme
try {
PrismContext prismContext = pageBase.getPrismContext();
- RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(resource,
+ RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource,
LayerType.PRESENTATION, prismContext);
RefinedObjectClassDefinition objectClassDefinition = refinedSchema
.getRefinedDefinition(ShadowKindType.ACCOUNT, construction.getIntent());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java
index 8afafa44bb3..93c807c913c 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentEditorPanel.java
@@ -18,6 +18,7 @@
import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition;
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.objecttypeselect.ObjectTypeSelectPanel;
@@ -32,6 +33,7 @@
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.OrFilter;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
@@ -536,13 +538,9 @@ private WebMarkupContainer createTenantContainer() {
@Override
protected ObjectQuery getChooseQuery() {
- ObjectQuery query = new ObjectQuery();
-
- ObjectFilter filter = EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class,
- getPageBase().getPrismContext(), null, true);
- query.setFilter(filter);
-
- return query;
+ return QueryBuilder.queryFor(OrgType.class, getPageBase().getPrismContext())
+ .item(OrgType.F_TENANT).eq(true)
+ .build();
}
@Override
@@ -581,16 +579,10 @@ private WebMarkupContainer createOrgContainer() {
@Override
protected ObjectQuery getChooseQuery() {
- ObjectQuery query = new ObjectQuery();
-
- ObjectFilter filter = OrFilter.createOr(
- EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class,
- getPageBase().getPrismContext(), null, false),
- EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class,
- getPageBase().getPrismContext(), null, null));
- query.setFilter(filter);
-
- return query;
+ return QueryBuilder.queryFor(OrgType.class, getPageBase().getPrismContext())
+ .item(OrgType.F_TENANT).eq(false)
+ .or().item(OrgType.F_TENANT).isNull()
+ .build();
}
@Override
@@ -740,7 +732,7 @@ private List loadAttributes() {
}
PrismContext prismContext = getPageBase().getPrismContext();
- RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(resource,
+ RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource,
LayerType.PRESENTATION, prismContext);
RefinedObjectClassDefinition objectClassDefinition = refinedSchema
.getRefinedDefinition(ShadowKindType.ACCOUNT, construction.getIntent());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java
index aae0570f210..b996df81cae 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java
@@ -26,6 +26,7 @@
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.logging.LoggingUtils;
@@ -242,10 +243,10 @@ private IModel getFilterModel(final boolean isRequestableFilter){
return new IModel() {
@Override
public ObjectFilter getObject() {
- ItemPath path = new ItemPath(FocusType.F_ACTIVATION, ActivationType.F_ADMINISTRATIVE_STATUS);
- ObjectFilter archivedRolesFilter = EqualFilter.createEqual(path, RoleType.class,
- getPageBase().getPrismContext(), null, ActivationStatusType.ARCHIVED);
- ObjectFilter filter = null;
+ ObjectFilter archivedRolesFilter = QueryBuilder.queryFor(RoleType.class, getPageBase().getPrismContext())
+ .item(RoleType.F_ACTIVATION, ActivationType.F_ADMINISTRATIVE_STATUS).eq(ActivationStatusType.ARCHIVED)
+ .buildFilter();
+ ObjectFilter filter;
if (isRequestableFilter) {
ObjectFilter assignableRolesFilter = getAssignableRolesFilter();
if (assignableRolesFilter instanceof NotFilter) {
@@ -336,8 +337,9 @@ protected void editValuePerformed(AjaxRequestTarget target, IModel rowM
supportedTypes.add(getPageBase().getPrismContext().getSchemaRegistry()
.findObjectDefinitionByCompileTimeClass(OrgType.class).getTypeName());
- ObjectFilter filter = EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class,
- getPageBase().getPrismContext(), null, true);
+ ObjectFilter filter = QueryBuilder.queryFor(OrgType.class, getPageBase().getPrismContext())
+ .item(OrgType.F_TENANT).eq(true)
+ .buildFilter();
ObjectBrowserPanel tenantPanel = new ObjectBrowserPanel(getPageBase().getMainPopupBodyId(),
OrgType.class, supportedTypes, false, getPageBase(), filter) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java
index bf22f562128..d45c091c722 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/dialog/DeleteAllPanel.java
@@ -7,6 +7,7 @@
import com.evolveum.midpoint.prism.query.NotFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
@@ -283,8 +284,10 @@ private void countShadows(boolean isAccountShadow){
options.add(SelectorOptions.create(ItemPath.EMPTY_PATH, opt));
try {
- ObjectFilter filter = EqualFilter.createEqual(ShadowType.F_KIND, ShadowType.class, getPagebase().getPrismContext(), null, ShadowKindType.ACCOUNT);
- if(isAccountShadow){
+ ObjectFilter filter = QueryBuilder.queryFor(ShadowType.class, getPagebase().getPrismContext())
+ .item(ShadowType.F_KIND).eq(ShadowKindType.ACCOUNT)
+ .buildFilter();
+ if (isAccountShadow) {
ObjectQuery query = ObjectQuery.createObjectQuery(filter);
dto.setAccountShadowCount(getPagebase().getModelService().countObjects(ShadowType.class, query, options, task, result));
dto.setObjectsToDelete(dto.getObjectsToDelete() + dto.getAccountShadowCount());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RefinedObjectTypeChoicePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RefinedObjectTypeChoicePanel.java
index 5fabc4cfac4..4f50c613999 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RefinedObjectTypeChoicePanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RefinedObjectTypeChoicePanel.java
@@ -18,6 +18,7 @@
import java.util.ArrayList;
import java.util.List;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.IModel;
@@ -48,7 +49,7 @@ private static IModel extends List extends RefinedObjectClassDefinition>> cr
public List extends RefinedObjectClassDefinition> getObject() {
RefinedResourceSchema refinedSchema;
try {
- refinedSchema = RefinedResourceSchema.getRefinedSchema(resourceModel.getObject());
+ refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceModel.getObject());
} catch (SchemaException e) {
throw new IllegalArgumentException(e.getMessage(),e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/SearchFilterPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/SearchFilterPanel.java
index 04d4abbb5a4..4ee67bf54e2 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/SearchFilterPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/SearchFilterPanel.java
@@ -71,7 +71,7 @@ private String loadFilterClause(PrismContext prismContext) {
T filter = getModelObject();
if (filter.containsFilterClause()) {
RootXNode clause = filter.getFilterClauseAsRootXNode();
- String xml = prismContext.serializeXNodeToString(clause, PrismContext.LANG_XML);
+ String xml = prismContext.xmlSerializer().serialize(clause);
return WebXmlUtil.stripNamespaceDeclarations(xml);
} else {
return null;
@@ -127,7 +127,7 @@ private void updateFilterClause(PrismContext context) throws SchemaException {
final String clauseString = clauseStringModel.getObject();
if (StringUtils.isNotEmpty(clauseString)) {
LOGGER.trace("Filter Clause to serialize: {}", clauseString);
- RootXNode filterClauseNode = (RootXNode) context.parseToXNode(clauseString, PrismContext.LANG_XML);
+ RootXNode filterClauseNode = (RootXNode) context.parserFor(clauseString).xml().parseToXNode();
getModelObject().setFilterClauseXNode(filterClauseNode);
} else {
if (getModelObject() != null) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/dto/ExpressionTypeDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/dto/ExpressionTypeDto.java
index 27b9d3a6c98..5aef16a72d7 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/dto/ExpressionTypeDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/dto/ExpressionTypeDto.java
@@ -63,12 +63,12 @@ public ExpressionTypeDto(@Nullable ExpressionType expression, @NotNull PrismCont
private void loadExpression(PrismContext context) {
try {
if (expressionObject.getExpressionEvaluator().size() == 1) {
- expression = context.serializeAtomicValue(expressionObject.getExpressionEvaluator().get(0), PrismContext.LANG_XML);
+ expression = context.xmlSerializer().serialize(expressionObject.getExpressionEvaluator().get(0));
} else {
StringBuilder sb = new StringBuilder();
for (JAXBElement> element: expressionObject.getExpressionEvaluator()) {
- String subElement = context.serializeAtomicValue(element, PrismContext.LANG_XML);
+ String subElement = context.xmlSerializer().serialize(element);
sb.append(subElement).append("\n");
}
expression = sb.toString();
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java
index 27c764097a2..db6877da57d 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java
@@ -23,6 +23,8 @@
import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.util.logging.Trace;
@@ -92,25 +94,19 @@ protected void onInitialize() {
}
private ObjectQuery createTaskQuery(String oid, PageBase page) {
- List filters = new ArrayList();
-
if (oid == null) {
oid = "non-existent"; // TODO !!!!!!!!!!!!!!!!!!!!
}
- try {
- filters.add(RefFilter.createReferenceEqual(TaskType.F_OBJECT_REF, TaskType.class,
- page.getPrismContext(), oid));
- filters.add(NotFilter.createNot(EqualFilter.createEqual(TaskType.F_EXECUTION_STATUS,
- TaskType.class, page.getPrismContext(), null, TaskExecutionStatusType.CLOSED)));
- filters.add(EqualFilter.createEqual(TaskType.F_PARENT, TaskType.class, page.getPrismContext(), null));
- } catch (SchemaException e) {
- throw new SystemException("Unexpected SchemaException when creating task filter", e);
- }
-
- return new ObjectQuery().createObjectQuery(AndFilter.createAnd(filters));
+ return QueryBuilder.queryFor(TaskType.class, page.getPrismContext())
+ .item(TaskType.F_OBJECT_REF).ref(oid)
+ .and()
+ .block()
+ .not().item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.CLOSED)
+ .endBlock()
+ .and().item(TaskType.F_PARENT).isNull()
+ .build();
}
-
@Override
protected List createTabs(final PageAdminObjectDetails parentPage) {
List tabs = new ArrayList<>();
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java
index 88bf2e5fc3b..494b771559e 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java
@@ -21,6 +21,7 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.web.component.prism.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.Validate;
@@ -216,7 +217,7 @@ private void addSelectedAccountPerformed(AjaxRequestTarget target, List createProperties(ContainerWrapper cWrapper, OperationR
// hack... we want to create a definition for Name
// PrismPropertyDefinition def = ((PrismContainerValue)
// pcv.getContainer().getParent()).getContainer().findProperty(ObjectType.F_NAME).getDefinition();
- PrismPropertyDefinition def = new PrismPropertyDefinition(ObjectType.F_NAME,
+ PrismPropertyDefinitionImpl def = new PrismPropertyDefinitionImpl(ObjectType.F_NAME,
DOMUtil.XSD_STRING, pcv.getPrismContext());
if (OrgType.COMPLEX_TYPE.equals(assignmentType.getTargetRef().getType())) {
@@ -260,13 +261,13 @@ private List createProperties(ContainerWrapper cWrapper, OperationR
RefinedResourceSchema refinedSchema;
CompositeRefinedObjectClassDefinition rOcDef;
try {
- refinedSchema = RefinedResourceSchema.getRefinedSchema(resource);
+ refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource);
rOcDef = refinedSchema.determineCompositeObjectClassDefinition(objectWrapper.getObject());
} catch (SchemaException e) {
throw new SystemException(e.getMessage(), e);
}
// Make sure even empty associations have their wrappers so they can be displayed and edited
- for (RefinedAssociationDefinition assocDef : rOcDef.getAssociations()) {
+ for (RefinedAssociationDefinition assocDef : rOcDef.getAssociationDefinitions()) {
QName name = assocDef.getName();
if (!assocMap.containsKey(name)) {
PrismContainer fractionalContainer = new PrismContainer<>(ShadowType.F_ASSOCIATION, ShadowAssociationType.class, prismContext);
@@ -278,7 +279,7 @@ private List createProperties(ContainerWrapper cWrapper, OperationR
}
for (Map.Entry> assocEntry : assocMap.entrySet()) {
- RefinedAssociationDefinition assocRDef = rOcDef.findAssociation(assocEntry.getKey());
+ RefinedAssociationDefinition assocRDef = rOcDef.findAssociationDefinition(assocEntry.getKey());
AssociationWrapper assocWrapper = new AssociationWrapper(cWrapper, assocEntry.getValue(),
cWrapper.isReadonly(), ValueStatus.NOT_CHANGED, assocRDef);
properties.add(assocWrapper);
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ObjectWrapperFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ObjectWrapperFactory.java
index 9cb03f32f0f..2bfd7aebb6e 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ObjectWrapperFactory.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ObjectWrapperFactory.java
@@ -207,7 +207,7 @@ private List> c
ContainerStatus status = container == null ? ContainerStatus.ADDING : ContainerStatus.MODIFYING;
List> list = new ArrayList<>();
if (container == null) {
- PrismContainerDefinition definition = getDefinition(object, objectDefinitionForEditing).findContainerDefinition(name);
+ PrismContainerDefinition> definition = getDefinition(object, objectDefinitionForEditing).findContainerDefinition(name);
container = definition.instantiate();
}
@@ -254,7 +254,7 @@ private void addContainerWrapper
LOGGER.trace("ObjectWrapper.createContainerWrapper processing definition: {}", def);
- PrismContainerDefinition containerDef = (PrismContainerDefinition) def;
+ PrismContainerDefinition> containerDef = (PrismContainerDefinition) def;
//todo this oWrapper.isShowAssignments() value is not set when initialization occurs (only default is there) [lazyman]
if (!oWrapper.isShowAssignments() && AssignmentType.COMPLEX_TYPE.equals(containerDef.getTypeName())) {
continue;
@@ -330,8 +330,8 @@ private void addResourceContainerWrapper(
// brutal hack - the definition has (errorneously) set maxOccurs =
// unbounded. But there can be only one configuration container.
// See MID-2317 and related issues
- PrismContainerDefinition definitionFixed = definition.clone();
- definitionFixed.setMaxOccurs(1);
+ PrismContainerDefinition definitionFixed = definition.clone();
+ ((PrismContainerDefinitionImpl) definitionFixed).setMaxOccurs(1);
if (container == null) {
container = definitionFixed.instantiate();
@@ -351,7 +351,7 @@ private void addShadowContainers(
PrismContainer attributesContainer = object.findContainer(ShadowType.F_ATTRIBUTES);
ContainerStatus status = attributesContainer != null ? cStatus : ContainerStatus.ADDING;
if (attributesContainer == null) {
- PrismContainerDefinition definition = object.getDefinition().findContainerDefinition(
+ PrismContainerDefinition> definition = object.getDefinition().findContainerDefinition(
ShadowType.F_ATTRIBUTES);
attributesContainer = definition.instantiate();
}
@@ -402,7 +402,7 @@ private void addReportContainers(
if (container == null) {
PrismSchema schema = ReportTypeUtil.parseReportConfigurationSchema(
(PrismObject) object, object.getPrismContext());
- PrismContainerDefinition definition = ReportTypeUtil.findReportConfigurationDefinition(schema);
+ PrismContainerDefinition> definition = ReportTypeUtil.findReportConfigurationDefinition(schema);
if (definition == null) {
return;
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java
index ed3d5beead0..750f54411d3 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismValuePanel.java
@@ -16,10 +16,7 @@
package com.evolveum.midpoint.web.component.prism;
-import com.evolveum.midpoint.common.refinery.CompositeRefinedObjectClassDefinition;
-import com.evolveum.midpoint.common.refinery.RefinedAssociationDefinition;
-import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition;
-import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
+import com.evolveum.midpoint.common.refinery.*;
import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteTextPanel;
import com.evolveum.midpoint.gui.api.component.password.PasswordPanel;
import com.evolveum.midpoint.gui.api.page.PageBase;
@@ -29,6 +26,7 @@
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.prism.xml.XsdTypeMapper;
import com.evolveum.midpoint.schema.DeltaConvertor;
import com.evolveum.midpoint.schema.GetOperationOptions;
@@ -42,7 +40,6 @@
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
-import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.LockoutStatusPanel;
@@ -570,7 +567,7 @@ public Object getObject() {
}
PrismContext prismContext = ((PageBase) getPage()).getPrismContext();
try {
- return prismContext.serializeAnyData(ppv.getValue(), name, PrismContext.LANG_XML);
+ return prismContext.xmlSerializer().serializeAnyData(ppv.getValue(), name);
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize property value of type: " + valueType + ": " + e.getMessage(), e);
}
@@ -705,7 +702,7 @@ public void checkInputValue(AutoCompleteTextField input, AjaxRequestTarget targe
RefinedResourceSchema refinedSchema;
CompositeRefinedObjectClassDefinition rOcDef;
try {
- refinedSchema = RefinedResourceSchema.getRefinedSchema(resource);
+ refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource);
rOcDef = refinedSchema.determineCompositeObjectClassDefinition(shadowType.asPrismObject());
} catch (SchemaException e) {
throw new SystemException(e.getMessage(),e);
@@ -714,7 +711,7 @@ public void checkInputValue(AutoCompleteTextField input, AjaxRequestTarget targe
RefinedObjectClassDefinition assocTargetDef = assocDef.getAssociationTarget();
ObjectQuery query = getAssociationsSearchQuery(prismContext, resource,
- assocTargetDef.getTypeName(), assocTargetDef.getKind(), assocTargetDef.getIntent());
+ assocTargetDef.getTypeName(), assocTargetDef.getKind());
List values = item.getValues();
return new AssociationValueChoicePanel(id, valueWrapperModel, values, false, ShadowType.class,
@@ -873,21 +870,12 @@ private void removeValue(AjaxRequestTarget target) {
target.add(parent.getParent());
}
- private ObjectQuery getAssociationsSearchQuery(PrismContext prismContext, PrismObject resource, QName objectClass, ShadowKindType kind,
- String intent) {
- try {
- ObjectFilter andFilter = AndFilter.createAnd(
- EqualFilter.createEqual(ShadowType.F_OBJECT_CLASS, ShadowType.class, prismContext, objectClass),
- EqualFilter.createEqual(ShadowType.F_KIND, ShadowType.class, prismContext, kind),
-// EqualFilter.createEqual(ShadowType.F_INTENT, ShadowType.class, prismContext, intent),
- RefFilter.createReferenceEqual(new ItemPath(ShadowType.F_RESOURCE_REF), ShadowType.class, prismContext, resource.getOid()));
- ObjectQuery query = ObjectQuery.createObjectQuery(andFilter);
- return query;
- } catch (SchemaException ex) {
- LoggingUtils.logUnexpectedException(LOGGER, "Unable to create associations search query", ex);
- return null;
- }
-
+ private ObjectQuery getAssociationsSearchQuery(PrismContext prismContext, PrismObject resource, QName objectClass, ShadowKindType kind) {
+ return QueryBuilder.queryFor(ShadowType.class, prismContext)
+ .item(ShadowType.F_OBJECT_CLASS).eq(objectClass)
+ .and().item(ShadowType.F_KIND).eq(kind)
+ .and().item(ShadowType.F_RESOURCE_REF).ref(resource.getOid())
+ .build();
}
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java
index eafe34d8ec1..a009e2d9df4 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java
@@ -17,12 +17,11 @@
package com.evolveum.midpoint.web.component.search;
import com.evolveum.midpoint.prism.*;
-import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
-import com.evolveum.midpoint.prism.match.StringIgnoreCaseMatchingRule;
-import com.evolveum.midpoint.prism.parser.QueryConvertor;
+import com.evolveum.midpoint.prism.marshaller.QueryConvertor;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.util.DebugDumpable;
@@ -185,8 +184,9 @@ private ObjectFilter createFilterForSearchValue(SearchItem item, DisplayableValu
ItemPath path = item.getPath();
if (definition instanceof PrismReferenceDefinition) {
- PrismReferenceValue value = (PrismReferenceValue) searchValue.getValue();
- return RefFilter.createReferenceEqual(path, (PrismReferenceDefinition) definition, value);
+ return QueryBuilder.queryFor(ObjectType.class, ctx)
+ .item(path, definition).ref((PrismReferenceValue) searchValue.getValue())
+ .buildFilter();
}
PrismPropertyDefinition propDef = (PrismPropertyDefinition) definition;
@@ -196,7 +196,8 @@ private ObjectFilter createFilterForSearchValue(SearchItem item, DisplayableValu
//or if it's boolean value
DisplayableValue displayableValue = (DisplayableValue) searchValue.getValue();
Object value = displayableValue.getValue();
- return EqualFilter.createEqual(path, propDef, value);
+ return QueryBuilder.queryFor(ObjectType.class, ctx)
+ .item(path, propDef).eq(value).buildFilter();
} else if (DOMUtil.XSD_INT.equals(propDef.getTypeName())
|| DOMUtil.XSD_INTEGER.equals(propDef.getTypeName())
|| DOMUtil.XSD_LONG.equals(propDef.getTypeName())
@@ -208,16 +209,19 @@ private ObjectFilter createFilterForSearchValue(SearchItem item, DisplayableValu
return null;
}
Object value = Long.parseLong((String) searchValue.getValue());
- return EqualFilter.createEqual(path, propDef, value);
+ return QueryBuilder.queryFor(ObjectType.class, ctx)
+ .item(path, propDef).eq(value).buildFilter();
} else if (DOMUtil.XSD_STRING.equals(propDef.getTypeName())) {
String text = (String) searchValue.getValue();
- return SubstringFilter.createSubstring(path, propDef, StringIgnoreCaseMatchingRule.NAME, text);
+ return QueryBuilder.queryFor(ObjectType.class, ctx)
+ .item(path, propDef).contains(text).matchingCaseIgnore().buildFilter();
} else if (SchemaConstants.T_POLY_STRING_TYPE.equals(propDef.getTypeName())) {
//we're looking for string value, therefore substring filter should be used
String text = (String) searchValue.getValue();
PolyStringNormalizer normalizer = ctx.getDefaultPolyStringNormalizer();
String value = normalizer.normalize(text);
- return SubstringFilter.createSubstring(path, propDef, PolyStringNormMatchingRule.NAME, value);
+ return QueryBuilder.queryFor(ObjectType.class, ctx)
+ .item(path, propDef).contains(text).matchingNorm().buildFilter();
}
//we don't know how to create filter from search item, should not happen, ha ha ha :)
@@ -268,7 +272,7 @@ private ObjectFilter createAdvancedObjectFilter(PrismContext ctx) throws SchemaE
return null;
}
- SearchFilterType search = ctx.parseAtomicValue(advancedQuery, SearchFilterType.COMPLEX_TYPE);
+ SearchFilterType search = ctx.parserFor(advancedQuery).type(SearchFilterType.COMPLEX_TYPE).parseRealValue();
return QueryConvertor.parseFilter(search, type, ctx);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/WizardStep.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/WizardStep.java
index 2e7755b9025..100dfbf0998 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/WizardStep.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/WizardStep.java
@@ -21,6 +21,7 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.page.admin.resources.PageResourceWizard;
import org.apache.commons.lang.StringUtils;
@@ -117,7 +118,7 @@ protected String createComponentPath(String... components) {
protected List loadResourceObjectClassList(IModel> model, Trace LOGGER, String message){
List list = new ArrayList<>();
try {
- ResourceSchema schema = RefinedResourceSchema.getResourceSchema(model.getObject(), getPageBase().getPrismContext());
+ ResourceSchema schema = RefinedResourceSchemaImpl.getResourceSchema(model.getObject(), getPageBase().getPrismContext());
if (schema != null) {
for (Definition def: schema.getDefinitions()) {
list.add(def.getTypeName());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/CapabilityStep.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/CapabilityStep.java
index d8c8594b89b..b46d5dec941 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/CapabilityStep.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/CapabilityStep.java
@@ -17,6 +17,7 @@
package com.evolveum.midpoint.web.component.wizard.resource;
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.model.NonEmptyLoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
@@ -307,7 +308,7 @@ protected List load() {
PrismObject resourcePrism = resourceModel.getObject();
try {
- ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resourcePrism, getPageBase().getPrismContext());
+ ResourceSchema schema = RefinedResourceSchemaImpl.getResourceSchema(resourcePrism, getPageBase().getPrismContext());
if (schema != null) {
ObjectClassComplexTypeDefinition def = schema.findDefaultObjectClassDefinition(ShadowKindType.ACCOUNT);
for (ResourceAttributeDefinition attribute : def.getAttributeDefinitions()) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/ConfigurationStep.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/ConfigurationStep.java
index 5a6369c4d2e..ec97b330fec 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/ConfigurationStep.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/ConfigurationStep.java
@@ -22,10 +22,7 @@
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.model.api.ModelService;
-import com.evolveum.midpoint.prism.ItemDefinition;
-import com.evolveum.midpoint.prism.PrismContainer;
-import com.evolveum.midpoint.prism.PrismContainerDefinition;
-import com.evolveum.midpoint.prism.PrismObject;
+import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.schema.PrismSchema;
@@ -129,12 +126,12 @@ private List createConfigContainerWrappers() throws SchemaExce
PrismContainerDefinition definition = ConnectorTypeUtil.findConfigurationContainerDefinition(connectorType, schema);
// Fixing (errorneously) set maxOccurs = unbounded. See MID-2317 and related issues.
PrismContainerDefinition definitionFixed = definition.clone();
- definitionFixed.setMaxOccurs(1);
+ ((PrismContainerDefinitionImpl) definitionFixed).setMaxOccurs(1);
configuration = definitionFixed.instantiate();
}
List containerDefinitions = getSortedConfigContainerDefinitions(configuration);
- for (PrismContainerDefinition containerDef : containerDefinitions) {
+ for (PrismContainerDefinition> containerDef : containerDefinitions) {
ItemPath containerPath = new ItemPath(ResourceType.F_CONNECTOR_CONFIGURATION, containerDef.getName());
PrismContainer container = configuration.findContainer(containerDef.getName());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/SchemaStep.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/SchemaStep.java
index 788da337266..d4cd5ce49e7 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/SchemaStep.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/SchemaStep.java
@@ -21,7 +21,6 @@
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.model.api.util.ResourceUtils;
import com.evolveum.midpoint.prism.PrismContainer;
-import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.SchemaConstantsGenerated;
import com.evolveum.midpoint.schema.result.OperationResult;
@@ -114,7 +113,7 @@ public String getObject() {
PageBase page = (PageBase) SchemaStep.this.getPage();
try {
- return page.getPrismContext().serializeContainerValueToString(xmlSchema.getValue(), SchemaConstantsGenerated.C_SCHEMA, PrismContext.LANG_XML);
+ return page.getPrismContext().xmlSerializer().serialize(xmlSchema.getValue(), SchemaConstantsGenerated.C_SCHEMA);
} catch (SchemaException|RuntimeException ex) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't serialize resource schema", ex);
return WebComponentUtil.exceptionToString("Couldn't serialize resource schema", ex);
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/SchemaListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/SchemaListPanel.java
index 62cdbb06cb4..1ec3ff2f1ff 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/SchemaListPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/SchemaListPanel.java
@@ -18,6 +18,7 @@
import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition;
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.NonEmptyLoadableModel;
import com.evolveum.midpoint.prism.PrismObject;
@@ -358,7 +359,7 @@ private RefinedResourceSchema loadResourceSchema() {
return null;
}
- return RefinedResourceSchema.getRefinedSchema(resource, getPageBase().getPrismContext());
+ return RefinedResourceSchemaImpl.getRefinedSchema(resource, getPageBase().getPrismContext());
} catch (SchemaException|RuntimeException ex) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse resource schema.", ex);
getSession().error(getString("SchemaListPanel.message.couldntParseSchema") + " " + ex.getMessage());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAssociationEditor.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAssociationEditor.java
index d614e2ae8a1..ac9167b1d89 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAssociationEditor.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAssociationEditor.java
@@ -23,6 +23,7 @@
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceAttributeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceSchema;
+import com.evolveum.midpoint.schema.processor.ResourceSchemaImpl;
import com.evolveum.midpoint.schema.util.ResourceTypeUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
@@ -462,7 +463,7 @@ private ResourceSchema loadResourceSchema() {
}
try {
- return ResourceSchema.parse(xsdSchema, resource.toString(), getPageBase().getPrismContext());
+ return ResourceSchemaImpl.parse(xsdSchema, resource.toString(), getPageBase().getPrismContext());
} catch (SchemaException|RuntimeException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse resource schema.", e);
getSession().error(getString("ResourceAssociationEditor.message.cantParseSchema") + " " + e.getMessage());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAttributeEditor.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAttributeEditor.java
index 8582ee92542..76c0e67d4fe 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAttributeEditor.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/component/schemahandling/ResourceAttributeEditor.java
@@ -25,6 +25,7 @@
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceAttributeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceSchema;
+import com.evolveum.midpoint.schema.processor.ResourceSchemaImpl;
import com.evolveum.midpoint.schema.util.ResourceTypeUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
@@ -491,7 +492,7 @@ private ResourceSchema loadResourceSchema() {
}
try {
- return ResourceSchema.parse(xsdSchema, resource.toString(), getPageBase().getPrismContext());
+ return ResourceSchemaImpl.parse(xsdSchema, resource.toString(), getPageBase().getPrismContext());
} catch (SchemaException|RuntimeException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse resource schema.", e);
getSession().error(getString("ResourceAttributeEditor.message.cantParseSchema") + " " + e.getMessage());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/dto/IterationSpecificationTypeDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/dto/IterationSpecificationTypeDto.java
index b83ff1089a4..a548ab0c1b3 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/dto/IterationSpecificationTypeDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/dto/IterationSpecificationTypeDto.java
@@ -88,11 +88,11 @@ private void loadExpression(String expression, ExpressionUtil.ExpressionEvaluato
try{
if(expressionType.getExpressionEvaluator().size() == 1){
- expression = prismContext.serializeAtomicValue(expressionType.getExpressionEvaluator().get(0), PrismContext.LANG_XML);
+ expression = prismContext.xmlSerializer().serialize(expressionType.getExpressionEvaluator().get(0));
} else {
StringBuilder sb = new StringBuilder();
for(JAXBElement> element: expressionType.getExpressionEvaluator()){
- String subElement = prismContext.serializeAtomicValue(element, PrismContext.LANG_XML);
+ String subElement = prismContext.xmlSerializer().serialize(element);
sb.append(subElement).append("\n");
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java
index 19821258eaf..c1691c1c06d 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java
@@ -25,6 +25,7 @@
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.RefFilter;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.result.OperationResultStatus;
@@ -135,21 +136,13 @@ public CertCampaignListItemDto createDataObjectWrapper(
private ObjectQuery createQuery() {
// TODO filtering based on e.g. campaign state/stage (not started,
// active, finished)
- ObjectQuery query = new ObjectQuery();
- if (definitionOid != null) {
- ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(definitionOid,
- ObjectTypes.ACCESS_CERTIFICATION_DEFINITION);
- ObjectFilter filter;
- try {
- filter = RefFilter.createReferenceEqual(
- new ItemPath(AccessCertificationCampaignType.F_DEFINITION_REF),
- AccessCertificationCampaignType.class, getPrismContext(), ref.asReferenceValue());
- } catch (SchemaException e) {
- throw new SystemException("Unexpected schema exception: " + e.getMessage(), e);
- }
- query = ObjectQuery.createObjectQuery(filter);
+ if (definitionOid == null) {
+ return new ObjectQuery();
+ } else {
+ return QueryBuilder.queryFor(AccessCertificationCampaignType.class, getPrismContext())
+ .item(AccessCertificationCampaignType.F_DEFINITION_REF).ref(definitionOid)
+ .build();
}
- return query;
}
// endregion
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertDefinitionDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertDefinitionDto.java
index fd843fd93c8..715dcecefa9 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertDefinitionDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertDefinitionDto.java
@@ -21,7 +21,7 @@
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismReferenceValue;
-import com.evolveum.midpoint.prism.parser.QueryConvertor;
+import com.evolveum.midpoint.prism.marshaller.QueryConvertor;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.util.CertCampaignTypeUtil;
@@ -312,8 +312,6 @@ public void updateScopeDefinition(PrismContext prismContext) {
scopeTypeObj.setIncludeOrgs(definitionScopeDto.isIncludeOrgs());
scopeTypeObj.setIncludeServices(definitionScopeDto.isIncludeServices());
scopeTypeObj.setEnabledItemsOnly(definitionScopeDto.isEnabledItemsOnly());
- // needed because of prism implementation limitation (because the scopeDefinition is declared as AccessCertificationScopeType)
- scopeTypeObj.asPrismContainerValue().setConcreteType(AccessCertificationAssignmentReviewScopeType.COMPLEX_TYPE);
}
definition.setScopeDefinition(scopeTypeObj);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/DefinitionScopeDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/DefinitionScopeDto.java
index 93b29b3c285..b25c0da46fd 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/DefinitionScopeDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/DefinitionScopeDto.java
@@ -44,7 +44,7 @@ public void loadSearchFilter(SearchFilterType searchFilterType, PrismContext pri
try {
RootXNode clause = searchFilterType.getFilterClauseAsRootXNode();
- searchFilterText = prismContext.serializeXNodeToString(clause, PrismContext.LANG_XML);
+ searchFilterText = prismContext.xmlSerializer().serialize(clause);
} catch (SchemaException e) {
throw new SystemException("Cannot serialize search filter " + searchFilterType + ": " + e.getMessage(), e);
}
@@ -58,7 +58,7 @@ public SearchFilterType getParsedSearchFilter(PrismContext context) {
SearchFilterType rv = new SearchFilterType();
RootXNode filterClauseNode;
try {
- filterClauseNode = (RootXNode) context.parseToXNode(searchFilterText, PrismContext.LANG_XML);
+ filterClauseNode = (RootXNode) context.parserFor(searchFilterText).xml().parseToXNode();
} catch (SchemaException e) {
throw new SystemException("Cannot parse search filter " + searchFilterText + ": " + e.getMessage(), e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageAccounts.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageAccounts.java
index f84a16e3d55..047eb8a9a2d 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageAccounts.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageAccounts.java
@@ -31,6 +31,10 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
+import com.evolveum.midpoint.util.exception.CommonException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.AttributeModifier;
@@ -63,21 +67,16 @@
import org.apache.wicket.validation.IValidator;
import com.evolveum.midpoint.common.configuration.api.MidpointConfiguration;
-import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.Definition;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismProperty;
-import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.AndFilter;
-import com.evolveum.midpoint.prism.query.EqualFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
-import com.evolveum.midpoint.prism.query.RefFilter;
-import com.evolveum.midpoint.prism.query.SubstringFilter;
import com.evolveum.midpoint.schema.AbstractSummarizingResultHandler;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.ResultHandler;
@@ -535,14 +534,12 @@ protected Integer load() {
Task task = createSimpleTask(OPERATION_GET_TOTALS);
OperationResult result = new OperationResult(OPERATION_GET_TOTALS);
try {
- EqualFilter situationFilter = EqualFilter.createEqual(ShadowType.F_SYNCHRONIZATION_SITUATION, ShadowType.class,
- getPrismContext(), null, situation);
-
- AndFilter andFilter = AndFilter.createAnd(filter, situationFilter);
- ObjectQuery query = ObjectQuery.createObjectQuery(andFilter);
-
+ ObjectFilter situationFilter = QueryBuilder.queryFor(ShadowType.class, getPrismContext())
+ .item(ShadowType.F_SYNCHRONIZATION_SITUATION).eq(situation)
+ .buildFilter();
+ ObjectQuery query = ObjectQuery.createObjectQuery(AndFilter.createAnd(filter, situationFilter));
return getModelService().countObjects(ShadowType.class, query, options, task, result);
- } catch (Exception ex) {
+ } catch (CommonException|RuntimeException ex) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't count shadows", ex);
}
@@ -700,7 +697,7 @@ private void showShadowResult(AjaxRequestTarget target, IModel r
try {
- xml = getPrismContext().serializeAtomicValue(result, ShadowType.F_RESULT, PrismContext.LANG_XML);
+ xml = getPrismContext().xmlSerializer().serializeRealValue(result, ShadowType.F_RESULT);
aceEditor.updateModel(new Model(xml));
} catch (SchemaException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse result", e);
@@ -721,23 +718,19 @@ private ObjectFilter createResourceQueryFilter() {
if (dto == null) {
return null;
}
- OperationResult result = new OperationResult(OPERATION_LOAD_ACCOUNTS);
String oid = dto.getOid();
- try {
- return RefFilter.createReferenceEqual(ShadowType.F_RESOURCE_REF, ShadowType.class,
- getPrismContext(), oid);
- } catch (Exception ex) {
- LoggingUtils.logUnexpectedException(LOGGER, "Couldn't create query", ex);
- error("Couldn't create query, reason: " + ex.getMessage());
- } finally {
- result.recomputeStatus();
- }
+ return QueryBuilder.queryFor(ShadowType.class, getPrismContext())
+ .item(ShadowType.F_RESOURCE_REF).ref(oid)
+ .buildFilter();
+ }
- if (!WebComponentUtil.isSuccessOrHandledError(result)) {
- showResult(result);
+ private ObjectQuery appendResourceQueryFilter(S_AtomicFilterEntry q) {
+ ResourceItemDto dto = resourceModel.getObject();
+ if (dto == null) {
+ return q.all().build(); // TODO ok?
+ } else {
+ return q.item(ShadowType.F_RESOURCE_REF).ref(dto.getOid()).build();
}
-
- return null;
}
private List loadResources() {
@@ -809,7 +802,7 @@ private void loadResourceObjectClass(){
resourcePrism = getModelService().getObject(ResourceType.class, oid, null,
createSimpleTask(OPERATION_GET_INTENTS), result);
- ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resourcePrism, getPrismContext());
+ ResourceSchema schema = RefinedResourceSchemaImpl.getResourceSchema(resourcePrism, getPrismContext());
schema.getObjectClassDefinitions();
for(Definition def: schema.getDefinitions()){
@@ -997,69 +990,41 @@ private void searchPerformed(AjaxRequestTarget target){
target.add(getAccountsContainer());
}
- private ObjectQuery createObjectQuery(){
+ private ObjectQuery createObjectQuery() {
AccountDetailsSearchDto dto = searchModel.getObject();
- ObjectQuery query = new ObjectQuery();
- List filters = new ArrayList<>();
String searchText = dto.getText();
ShadowKindType kind = dto.getKind();
String intent = dto.getIntent();
String objectClass = dto.getObjectClass();
FailedOperationTypeType failedOperatonType = dto.getFailedOperationType();
- if(StringUtils.isNotEmpty(searchText)){
+ S_AtomicFilterEntry q = QueryBuilder.queryFor(ShadowType.class, getPrismContext());
+
+ if (StringUtils.isNotEmpty(searchText)) {
PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
String normalized = normalizer.normalize(searchText);
-
- ObjectFilter substring = SubstringFilter.createSubstring(ShadowType.F_NAME, ShadowType.class, getPrismContext(),
- PolyStringNormMatchingRule.NAME, normalized);
- filters.add(substring);
+ q = q.item(ShadowType.F_NAME).contains(normalized).matchingNorm().and();
}
-
- if(kind != null){
- ObjectFilter kindFilter = EqualFilter.createEqual(ShadowType.F_KIND, ShadowType.class, getPrismContext(),
- null, kind);
- filters.add(kindFilter);
+ if (kind != null) {
+ q = q.item(ShadowType.F_KIND).eq(kind).and();
}
-
- if(StringUtils.isNotEmpty(intent)){
- ObjectFilter intentFilter = EqualFilter.createEqual(ShadowType.F_INTENT, ShadowType.class, getPrismContext(),
- null, intent);
- filters.add(intentFilter);
+ if (StringUtils.isNotEmpty(intent)) {
+ q = q.item(ShadowType.F_INTENT).eq(kind).and();
}
-
if (failedOperatonType != null){
- ObjectFilter failedOperationFilter = EqualFilter.createEqual(ShadowType.F_FAILED_OPERATION_TYPE, ShadowType.class, getPrismContext(),
- null, failedOperatonType);
- filters.add(failedOperationFilter);
+ q = q.item(ShadowType.F_FAILED_OPERATION_TYPE).eq(failedOperatonType).and();
}
-
- if(StringUtils.isNotEmpty(objectClass)){
+ if (StringUtils.isNotEmpty(objectClass)) {
QName objClass = new QName(objectClass);
-
- for(QName q: dto.getObjectClassList()){
- if(objectClass.equals(q.getLocalPart())){
- objClass = q;
+ for (QName qn: dto.getObjectClassList()) {
+ if (objectClass.equals(qn.getLocalPart())){
+ objClass = qn;
}
}
-
- ObjectFilter objectClassFilter = EqualFilter.createEqual(ShadowType.F_OBJECT_CLASS, ShadowType.class, getPrismContext(),
- null, objClass);
- filters.add(objectClassFilter);
- }
-
- AndFilter searchFilter;
- if(!filters.isEmpty()){
- searchFilter = AndFilter.createAnd(filters);
-
- ObjectFilter resourceFilter = createResourceQueryFilter();
- query.setFilter(resourceFilter != null ? AndFilter.createAnd(searchFilter, resourceFilter) : searchFilter);
- } else {
- query.setFilter(createResourceQueryFilter());
+ q = q.item(ShadowType.F_OBJECT_CLASS).eq(objClass).and();
}
-
- return query;
+ return appendResourceQueryFilter(q);
}
private void clearSearchPerformed(AjaxRequestTarget target){
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageBulkAction.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageBulkAction.java
index 9ebf7c427c9..f40f867b33d 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageBulkAction.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageBulkAction.java
@@ -110,13 +110,13 @@ private void startPerformed(AjaxRequestTarget target) {
ScriptingExpressionType expression = null;
try {
- Object parsed = getPrismContext().parseAnyValue(bulkActionDto.getScript(), PrismContext.LANG_XML);
+ Object parsed = getPrismContext().parserFor(bulkActionDto.getScript()).xml().parseRealValue();
if (parsed == null) {
result.recordFatalError("No bulk action object was provided.");
}
- if (parsed instanceof JAXBElement) {
- parsed = ((JAXBElement) parsed).getValue();
- }
+// if (parsed instanceof JAXBElement) {
+// parsed = ((JAXBElement) parsed).getValue();
+// }
if (parsed instanceof ScriptingExpressionType) {
expression = (ScriptingExpressionType) parsed;
} else {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java
index 4418b19dcff..d090ee98bb3 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java
@@ -23,6 +23,9 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.prism.PrismPropertyDefinitionImpl;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.web.component.data.BaseSortableDataProvider;
import com.evolveum.midpoint.web.component.dialog.*;
import com.evolveum.midpoint.web.component.search.Search;
import com.evolveum.midpoint.web.component.search.SearchFactory;
@@ -533,9 +536,10 @@ private ObjectQuery createQuery(ObjectQuery searchQuery) {
List filters = new ArrayList<>();
if (ObjectTypes.SHADOW.equals(dto.getType()) && dto.getResource() != null) {
String oid = dto.getResource().getOid();
- RefFilter ref = RefFilter.createReferenceEqual(ShadowType.F_RESOURCE_REF, ShadowType.class,
- getPrismContext(), oid);
- filters.add(ref);
+ ObjectFilter objectFilter = QueryBuilder.queryFor(ShadowType.class, getPrismContext())
+ .item(ShadowType.F_RESOURCE_REF).ref(oid)
+ .buildFilter();
+ filters.add(objectFilter);
}
if (searchQuery != null && searchQuery.getFilter() != null) {
@@ -650,17 +654,18 @@ private ObjectQuery createDeleteAllUsersQuery() {
private String deleteAllShadowsConfirmed(OperationResult result, boolean deleteAccountShadows)
throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
- ObjectFilter kind = EqualFilter.createEqual(ShadowType.F_KIND, ShadowType.class, getPrismContext(),
- null, ShadowKindType.ACCOUNT);
+ ObjectFilter kindFilter = QueryBuilder.queryFor(ShadowType.class, getPrismContext())
+ .item(ShadowType.F_KIND).eq(ShadowKindType.ACCOUNT)
+ .buildFilter();
String taskName;
ObjectQuery query;
if (deleteAccountShadows) {
taskName = "Delete all account shadows";
- query = ObjectQuery.createObjectQuery(kind);
+ query = ObjectQuery.createObjectQuery(kindFilter);
} else {
taskName = "Delete all non-account shadows";
- query = ObjectQuery.createObjectQuery(NotFilter.createNot(kind));
+ query = ObjectQuery.createObjectQuery(NotFilter.createNot(kindFilter));
}
return deleteObjectsAsync(ShadowType.COMPLEX_TYPE, query, true, taskName, result);
@@ -825,11 +830,10 @@ private void exportAllShadowsOnResource(AjaxRequestTarget target) {
return;
}
- RefFilter ref = RefFilter.createReferenceEqual(ShadowType.F_RESOURCE_REF, ShadowType.class,
- getPrismContext(), dto.getResource().getOid());
- ObjectQuery objectQuery = ObjectQuery.createObjectQuery(ref);
+ ObjectQuery objectQuery = QueryBuilder.queryFor(ShadowType.class, getPrismContext())
+ .item(ShadowType.F_RESOURCE_REF).ref(dto.getResource().getOid())
+ .build();
initDownload(target, dto.getType().getClassDefinition(), objectQuery);
-
}
private Popupable getDeleteConfirmationPanel() {
@@ -872,9 +876,9 @@ private void deleteAllShadowsOnResourceConfirmed(AjaxRequestTarget target) {
OperationResult result = new OperationResult(OPERATION_DELETE_SHADOWS);
String taskOid = null;
try {
- RefFilter ref = RefFilter.createReferenceEqual(ShadowType.F_RESOURCE_REF, ShadowType.class,
- getPrismContext(), dto.getResource().getOid());
- ObjectQuery objectQuery = ObjectQuery.createObjectQuery(ref);
+ ObjectQuery objectQuery = QueryBuilder.queryFor(ShadowType.class, getPrismContext())
+ .item(ShadowType.F_RESOURCE_REF).ref(dto.getResource().getOid())
+ .build();
QName type = ShadowType.COMPLEX_TYPE;
@@ -913,19 +917,19 @@ private String deleteObjectsAsync(QName type, ObjectQuery objectQuery, boolean r
QueryType query = QueryJaxbConvertor.createQueryType(objectQuery, getPrismContext());
- PrismPropertyDefinition queryDef = new PrismPropertyDefinition(
+ PrismPropertyDefinition queryDef = new PrismPropertyDefinitionImpl(
SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY, QueryType.COMPLEX_TYPE, getPrismContext());
PrismProperty queryProp = queryDef.instantiate();
queryProp.setRealValue(query);
task.setExtensionProperty(queryProp);
- PrismPropertyDefinition typeDef = new PrismPropertyDefinition(
+ PrismPropertyDefinition typeDef = new PrismPropertyDefinitionImpl(
SchemaConstants.MODEL_EXTENSION_OBJECT_TYPE, DOMUtil.XSD_QNAME, getPrismContext());
PrismProperty typeProp = typeDef.instantiate();
typeProp.setRealValue(type);
task.setExtensionProperty(typeProp);
- PrismPropertyDefinition rawDef = new PrismPropertyDefinition(
+ PrismPropertyDefinition rawDef = new PrismPropertyDefinitionImpl(
SchemaConstants.MODEL_EXTENSION_OPTION_RAW, DOMUtil.XSD_BOOLEAN, getPrismContext());
PrismProperty rawProp = rawDef.instantiate();
rawProp.setRealValue(raw);
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java
index acb861a1567..01e0865d53c 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java
@@ -40,11 +40,7 @@
import com.evolveum.midpoint.web.component.AceEditor;
import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto;
import com.evolveum.midpoint.web.security.MidPointApplication;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
+import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.RestartResponseException;
@@ -87,6 +83,7 @@ public class PageDebugView extends PageAdminConfiguration {
private final IModel switchToPlainText = new Model<>(false);
private TextArea plainTextarea;
final Form mainForm = new Form("mainForm");
+ private final String dataLanguage;
public PageDebugView() {
model = new LoadableModel(false) {
@@ -96,9 +93,19 @@ protected ObjectViewDto load() {
return loadObject();
}
};
+ dataLanguage = determineDataLanguage();
initLayout();
}
+ private String determineDataLanguage() {
+ AdminGuiConfigurationType config = loadAdminGuiConfiguration();
+ if (config != null && config.getPreferredDataLanguage() != null) {
+ return config.getPreferredDataLanguage();
+ } else {
+ return PrismContext.LANG_XML;
+ }
+ }
+
@Override
protected IModel createPageTitleModel() {
return new AbstractReadOnlyModel() {
@@ -156,8 +163,8 @@ private ObjectViewDto loadObject() {
PrismObject object = getModelService().getObject(type, objectOid.toString(), options, task, result);
PrismContext context = application.getPrismContext();
- String xml = context.serializeObjectToString(object, PrismContext.LANG_XML);
- dto = new ObjectViewDto(object.getOid(), WebComponentUtil.getName(object), object, xml);
+ String lex = context.serializerFor(dataLanguage).serialize(object);
+ dto = new ObjectViewDto(object.getOid(), WebComponentUtil.getName(object), object, lex);
result.recomputeStatus();
} catch (Exception ex) {
@@ -169,7 +176,7 @@ private ObjectViewDto loadObject() {
throw new RestartResponseException(PageDebugList.class);
}
- showResult(result, false);
+ showResult(result, false);
if (!WebComponentUtil.isSuccessOrHandledErrorOrWarning(result)) {
showResult(result, false);
@@ -182,8 +189,6 @@ private ObjectViewDto loadObject() {
private void initLayout() {
add(mainForm);
-// final IModel editable = new Model(false);
-
mainForm.add(new AjaxCheckBox("encrypt", encrypt) {
@Override
@@ -216,7 +221,7 @@ protected void onUpdate(AjaxRequestTarget target) {
@Override
protected void onUpdate(AjaxRequestTarget target) {
- if (switchToPlainText.getObject().booleanValue()){
+ if (switchToPlainText.getObject()){
editor.setVisible(false);
plainTextarea.setVisible(true);
} else {
@@ -234,6 +239,7 @@ protected void onUpdate(AjaxRequestTarget target) {
mainForm.add(plainTextarea);
editor = new AceEditor("aceEditor", new PropertyModel(model, ObjectViewDto.F_XML));
+ editor.setModeForDataLanguage(dataLanguage);
mainForm.add(editor);
initButtons(mainForm);
@@ -293,11 +299,11 @@ public void savePerformed(AjaxRequestTarget target) {
PrismObject oldObject = dto.getObject();
oldObject.revive(getPrismContext());
- Holder> objectHolder = new Holder>(null);
+ Holder> objectHolder = new Holder<>(null);
if (editor.isVisible()) {
- validateObject(editor.getModel().getObject(), objectHolder, validateSchema.getObject(), result);
+ validateObject(editor.getModel().getObject(), objectHolder, dataLanguage, validateSchema.getObject(), result);
} else {
- validateObject(plainTextarea.getModel().getObject(), objectHolder, validateSchema.getObject(), result);
+ validateObject(plainTextarea.getModel().getObject(), objectHolder, dataLanguage, validateSchema.getObject(), result);
}
if (result.isAcceptable()) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageEvaluateMapping.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageEvaluateMapping.java
index 73cce6d12c9..17204df97dd 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageEvaluateMapping.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageEvaluateMapping.java
@@ -183,14 +183,13 @@ private void executeMappingPerformed(AjaxRequestTarget target) {
try {
MappingEvaluationRequestType request;
if (StringUtils.isNotBlank(dto.getRequest())) {
- request = getPrismContext().parseAtomicValue(dto.getRequest(), MappingEvaluationRequestType.COMPLEX_TYPE, PrismContext.LANG_XML);
+ request = getPrismContext().parserFor(dto.getRequest()).xml().parseRealValue(MappingEvaluationRequestType.class);
} else {
request = new MappingEvaluationRequestType();
}
if (StringUtils.isNotBlank(dto.getMapping())) {
- request.setMapping((MappingType) getPrismContext()
- .parseAtomicValue(dto.getMapping(), MappingType.COMPLEX_TYPE, PrismContext.LANG_XML));
+ request.setMapping(getPrismContext().parserFor(dto.getMapping()).xml().parseRealValue(MappingType.class));
}
MappingEvaluationResponseType response = getModelDiagnosticService().evaluateMapping(request, task, result);
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageRepositoryQuery.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageRepositoryQuery.java
index 1e29303882a..bc81c087fe1 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageRepositoryQuery.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageRepositoryQuery.java
@@ -23,7 +23,7 @@
import com.evolveum.midpoint.model.common.expression.ExpressionUtil;
import com.evolveum.midpoint.model.common.expression.ExpressionVariables;
import com.evolveum.midpoint.prism.PrismContext;
-import com.evolveum.midpoint.prism.parser.QueryConvertor;
+import com.evolveum.midpoint.prism.marshaller.QueryConvertor;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.QueryJaxbConvertor;
@@ -370,7 +370,7 @@ private void useInObjectListPerformed(AjaxRequestTarget target) {
String filterAsString;
if (parsedFilter != null) {
SearchFilterType filterType = QueryConvertor.createSearchFilterType(parsedFilter, getPrismContext());
- filterAsString = getPrismContext().serializeAtomicValue(filterType, SchemaConstantsGenerated.Q_FILTER, PrismContext.LANG_XML);
+ filterAsString = getPrismContext().xmlSerializer().serializeRealValue(filterType, SchemaConstantsGenerated.Q_FILTER);
// TODO remove extra xmlns from serialized value
} else {
filterAsString = "";
@@ -507,7 +507,7 @@ private void updateRequestWithMidpointQuery(RepositoryQueryDiagRequest request,
if (clazz == null) {
throw new SchemaException("Couldn't find compile-time class for object type of " + objectType);
}
- QueryType queryType = prismContext.parseAtomicValue(queryText, QueryType.COMPLEX_TYPE, PrismContext.LANG_XML);
+ QueryType queryType = prismContext.parserFor(queryText).xml().parseRealValue(QueryType.class);
request.setType(clazz);
ObjectQuery objectQuery = QueryJaxbConvertor.createObjectQuery(clazz, queryType, prismContext);
ObjectQuery queryWithExprEvaluated = ExpressionUtil.evaluateQueryExpressions(objectQuery, new ExpressionVariables(),
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/ObjectSelectionPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/ObjectSelectionPanel.java
index 53dca4322c7..f4d1cc41928 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/ObjectSelectionPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/ObjectSelectionPanel.java
@@ -23,8 +23,10 @@
import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.AndFilter;
+import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.SubstringFilter;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.util.logging.LoggingUtils;
@@ -298,10 +300,11 @@ private ObjectQuery createObjectQuery() {
PolyStringNormalizer normalizer = prismContext.getDefaultPolyStringNormalizer();
String normalized = normalizer.normalize(dto.getText());
- SubstringFilter filter = SubstringFilter.createSubstring(context.getSearchProperty(), objectType, prismContext,
- PolyStringNormMatchingRule.NAME, normalized);
+ ObjectFilter filter = QueryBuilder.queryFor(objectType, prismContext)
+ .item(context.getSearchProperty()).contains(normalized).matchingNorm()
+ .buildFilter();
- if(context.getDataProviderQuery() != null){
+ if (context.getDataProviderQuery() != null) {
AndFilter and = AndFilter.createAnd(context.getDataProviderQuery().getFilter(), filter);
query = ObjectQuery.createObjectQuery(and);
} else {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java
index 8524a42c1ef..a956b51a915 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java
@@ -15,6 +15,7 @@
*/
package com.evolveum.midpoint.web.page.admin.home;
+import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.Component;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.component.IRequestablePage;
@@ -44,17 +45,8 @@
import com.evolveum.midpoint.web.page.admin.services.PageServices;
import com.evolveum.midpoint.web.page.admin.users.PageOrgTree;
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.AvailabilityStatusType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationalStateType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskExecutionStatusType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
-import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
+
+import static com.evolveum.midpoint.schema.constants.SchemaConstants.C_ACTIVATION;
/**
* @author lazyman
@@ -138,17 +130,19 @@ private InfoBoxPanel createFocusInfoBoxPanel(String id, Cl
if (allCount == null) {
allCount = 0;
}
-
- EqualFilter filterDisabled = EqualFilter.createEqual(SchemaConstants.PATH_ACTIVATION_EFFECTIVE_STATUS,
- type, getPrismContext(), ActivationStatusType.DISABLED);
- Integer disabledCount = getModelService().countObjects(type, ObjectQuery.createObjectQuery(filterDisabled), null, task, result);
+
+ ObjectQuery queryDisabled = QueryBuilder.queryFor(type, getPrismContext())
+ .item(FocusType.F_ACTIVATION, ActivationType.F_EFFECTIVE_STATUS).eq(ActivationStatusType.DISABLED)
+ .build();
+ Integer disabledCount = getModelService().countObjects(type, queryDisabled, null, task, result);
if (disabledCount == null) {
disabledCount = 0;
}
-
- EqualFilter filterArchived = EqualFilter.createEqual(SchemaConstants.PATH_ACTIVATION_EFFECTIVE_STATUS,
- type, getPrismContext(), ActivationStatusType.ARCHIVED);
- Integer archivedCount = getModelService().countObjects(type, ObjectQuery.createObjectQuery(filterArchived), null, task, result);
+
+ ObjectQuery queryArchived = QueryBuilder.queryFor(type, getPrismContext())
+ .item(FocusType.F_ACTIVATION, ActivationType.F_EFFECTIVE_STATUS).eq(ActivationStatusType.ARCHIVED)
+ .build();
+ Integer archivedCount = getModelService().countObjects(type, queryArchived, null, task, result);
if (archivedCount == null) {
archivedCount = 0;
}
@@ -226,10 +220,9 @@ private Component createTaskInfoBoxPanel(OperationResult result, Task task) {
if (totalCount == null) {
totalCount = 0;
}
-
- EqualFilter filter = EqualFilter.createEqual(TaskType.F_EXECUTION_STATUS,
- TaskType.class, getPrismContext(), TaskExecutionStatusType.RUNNABLE);
- ObjectQuery query = ObjectQuery.createObjectQuery(filter);
+ ObjectQuery query = QueryBuilder.queryFor(TaskType.class, getPrismContext())
+ .item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.RUNNABLE)
+ .build();
Integer activeCount = getModelService().countObjects(TaskType.class, query, null, task, result);
if (activeCount == null) {
activeCount = 0;
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java
index 45f4f05c86f..c13747da09a 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java
@@ -24,6 +24,8 @@
import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.report.api.ReportManager;
import com.evolveum.midpoint.schema.result.OperationResult;
@@ -466,40 +468,20 @@ private void deleteAllConfirmedPerformed(AjaxRequestTarget target) {
private ObjectQuery createQuery() {
ReportOutputSearchDto dto = searchModel.getObject();
+ S_AtomicFilterEntry q = QueryBuilder.queryFor(ReportOutputType.class, getPrismContext());
- try {
- List ands = new ArrayList<>();
-
- if (StringUtils.isNotEmpty(dto.getText())) {
- PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
- String normalizedString = normalizer.normalize(dto.getText());
-
- SubstringFilter substring = SubstringFilter.createSubstring(ReportOutputType.F_NAME,
- ReportOutputType.class, getPrismContext(), PolyStringNormMatchingRule.NAME, normalizedString);
- ands.add(substring);
- }
-
- String oid = dto.getReportTypeMap().get(dto.getReportType());
- if (StringUtils.isNotEmpty(oid)) {
- RefFilter ref = RefFilter.createReferenceEqual(ReportOutputType.F_REPORT_REF, ReportOutputType.class,
- getPrismContext(), oid);
- ands.add(ref);
- }
+ if (StringUtils.isNotEmpty(dto.getText())) {
+ PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
+ String normalizedString = normalizer.normalize(dto.getText());
+ q = q.item(ReportOutputType.F_NAME).containsPoly(normalizedString).matchingNorm().and();
+ }
- switch (ands.size()) {
- case 0:
- return null;
- case 1:
- return ObjectQuery.createObjectQuery(ands.get(0));
- default:
- AndFilter and = AndFilter.createAnd(ands);
- return ObjectQuery.createObjectQuery(and);
- }
- } catch (Exception e) {
- error(getString("pageCreatedReports.message.queryError") + " " + e.getMessage());
- LoggingUtils.logUnexpectedException(LOGGER, "Couldn't create query filter.", e);
- return null;
+ String oid = dto.getReportTypeMap().get(dto.getReportType());
+ if (StringUtils.isNotEmpty(oid)) {
+ q = q.item(ReportOutputType.F_REPORT_REF).ref(oid).and();
}
+
+ return q.all().build();
}
private InputStream createReport(AjaxDownloadBehaviorFromStream ajaxDownloadBehaviorFromStream) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReport.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReport.java
index 5334cbd7ff2..366b156e2bb 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReport.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReport.java
@@ -216,7 +216,7 @@ public void validate(IValidatable validatable) {
OpResult opResult = null;
try {
- validateObject(value, reportHolder, true, result);
+ validateObject(value, reportHolder, PrismContext.LANG_XML, true, result);
if(!result.isAcceptable()){
result.recordFatalError("Could not validate object", result.getCause());
@@ -261,7 +261,7 @@ public void setObject(String object) {
Holder> reportHolder = new Holder<>(null);
try {
- validateObject(object, reportHolder, true, result);
+ validateObject(object, reportHolder, PrismContext.LANG_XML, true, result);
model.getObject().setObject(reportHolder.getValue());
} catch (Exception e){
LOGGER.error("Could not set object. Validation problem occured." + result.getMessage());
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java
index 2e1275b36e3..0e04e1c26fc 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java
@@ -21,6 +21,9 @@
import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
+import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.task.api.Task;
@@ -274,32 +277,17 @@ private ObjectQuery createQuery() {
ReportSearchDto dto = searchModel.getObject();
String text = dto.getText();
Boolean parent = !dto.isParent();
- ObjectQuery query = new ObjectQuery();
- List filters = new ArrayList<>();
+ S_AtomicFilterEntry q = QueryBuilder.queryFor(ReportType.class, getPrismContext());
if (StringUtils.isNotEmpty(text)) {
PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
String normalizedText = normalizer.normalize(text);
-
- ObjectFilter substring = SubstringFilter.createSubstring(ReportType.F_NAME, ReportType.class,
- getPrismContext(), PolyStringNormMatchingRule.NAME, normalizedText);
-
- filters.add(substring);
- }
-
- if (parent == true) {
- EqualFilter parentFilter = EqualFilter.createEqual(ReportType.F_PARENT, ReportType.class,
- getPrismContext(), null, parent);
- filters.add(parentFilter);
+ q = q.item(ReportType.F_NAME).eqPoly(normalizedText).matchingNorm().and();
}
-
- if (!filters.isEmpty()) {
- query.setFilter(AndFilter.createAnd(filters));
- } else {
- query = null;
+ if (parent) {
+ q = q.item(ReportType.F_PARENT).eq(true).and();
}
-
- return query;
+ return q.all().build();
}
private void clearSearchPerformed(AjaxRequestTarget target) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/RunReportPopupPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/RunReportPopupPanel.java
index 9cfab157c28..384376ab6be 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/RunReportPopupPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/RunReportPopupPanel.java
@@ -23,6 +23,8 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.prism.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
@@ -45,15 +47,7 @@
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
-import com.evolveum.midpoint.prism.ItemDefinition;
-import com.evolveum.midpoint.prism.PrismContainer;
-import com.evolveum.midpoint.prism.PrismContainerDefinition;
-import com.evolveum.midpoint.prism.PrismContainerValue;
-import com.evolveum.midpoint.prism.PrismContext;
-import com.evolveum.midpoint.prism.PrismObject;
-import com.evolveum.midpoint.prism.PrismObjectDefinition;
-import com.evolveum.midpoint.prism.PrismProperty;
-import com.evolveum.midpoint.prism.PrismPropertyDefinition;
+import com.evolveum.midpoint.model.api.ModelService;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.prism.query.ObjectPaging;
@@ -129,7 +123,7 @@ public class RunReportPopupPanel extends BasePanel implements Popupab
// public void setReportType(ReportType reportType) {
// this.reportType = reportType;
-//
+//
// if (getParametersTable() != null) {
// replace(createTablePanel());
// }
@@ -137,7 +131,7 @@ public class RunReportPopupPanel extends BasePanel implements Popupab
public RunReportPopupPanel(String id, final ReportType reportType) {
super(id);
-
+
reportModel = new LoadableModel(false) {
@Override
@@ -145,7 +139,7 @@ protected ReportDto load() {
return new ReportDto(reportType, true);
}
};
-
+
initLayout();
}
@@ -154,7 +148,7 @@ protected void initLayout() {
Form> mainForm = new Form(ID_MAIN_FORM);
add(mainForm);
-
+
BoxedTablePanel table = createTablePanel();
mainForm.add(table);
@@ -175,7 +169,7 @@ protected void onSubmit(AjaxRequestTarget target, Form> form) {
}
private BoxedTablePanel createTablePanel() {
-
+
ISortableDataProvider provider = new ListDataProvider<>(this,
new PropertyModel>(reportModel, "jasperReportDto.parameters"));
@@ -324,12 +318,10 @@ private List createLookupTableRows(Ja
Task task = createSimpleTask(OPERATION_LOAD_RESOURCES);
Collection> objects;
- SubstringFilter filter = SubstringFilter.createSubstring(new QName(SchemaConstants.NS_C, pLabel), targetType, getPrismContext(), input);
- filter.setMatchingRule(new QName(SchemaConstants.NS_MATCHING_RULE, "origIgnoreCase"));
- filter.setAnchorStart(true); // =startsWith
- ObjectQuery query = ObjectQuery.createObjectQuery(filter);
- query.setPaging(ObjectPaging.createPaging(0, AUTO_COMPLETE_BOX_SIZE));
-
+ ObjectQuery query = QueryBuilder.queryFor(targetType, getPrismContext())
+ .item(new QName(SchemaConstants.NS_C, pLabel)).startsWith(input).matchingCaseIgnore()
+ .maxSize(AUTO_COMPLETE_BOX_SIZE)
+ .build();
try {
objects = getPageBase().getModelService().searchObjects(targetType, query, SelectorOptions.createCollection(GetOperationOptions.createNoFetch()), task, result);
@@ -539,20 +531,15 @@ private void runConfirmPerformed(AjaxRequestTarget target, IModel mod
}
}
*/
- if (XmlTypeConverter.canConvert(paramClass)) {
- typeName = XsdTypeMapper.toXsdType(paramClass);
- } else {
-
- if (AuditEventType.class.isAssignableFrom(paramClass)) {
- paramClass = AuditEventTypeType.class;
- realValue = AuditEventType.fromAuditEventType((AuditEventType) realValue);
- } else if (AuditEventStage.class.isAssignableFrom(paramClass)) {
- paramClass = AuditEventStageType.class;
- realValue = AuditEventStage.fromAuditEventStage((AuditEventStage) realValue);
- }
- typeName = getPrismContext().getBeanConverter().determineTypeForClass(paramClass);
+ if (AuditEventType.class.isAssignableFrom(paramClass)) {
+ paramClass = AuditEventTypeType.class;
+ realValue = AuditEventType.fromAuditEventType((AuditEventType) realValue);
+ } else if (AuditEventStage.class.isAssignableFrom(paramClass)) {
+ paramClass = AuditEventStageType.class;
+ realValue = AuditEventStage.fromAuditEventStage((AuditEventStage) realValue);
}
- PrismPropertyDefinition def = new PrismPropertyDefinition<>(new QName(ReportConstants.NS_EXTENSION, paramDto.getName()), typeName, getPrismContext());
+ typeName = getPrismContext().getSchemaRegistry().determineTypeForClass(paramClass);
+ PrismPropertyDefinitionImpl def = new PrismPropertyDefinitionImpl<>(new QName(ReportConstants.NS_EXTENSION, paramDto.getName()), typeName, getPrismContext());
def.setDynamic(true);
def.setRuntimeSchema(true);
PrismProperty prop = def.instantiate();
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageAdminResources.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageAdminResources.java
index 0d3c15b3ac6..6942fa27b27 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageAdminResources.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageAdminResources.java
@@ -25,6 +25,7 @@
import com.evolveum.midpoint.prism.delta.PropertyDelta;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
@@ -118,21 +119,14 @@ protected void deleteSyncTokenPerformed(AjaxRequestTarget target, ResourceType r
PrismObject oldTask;
OperationResult result = new OperationResult(OPERATION_DELETE_SYNC_TOKEN);
- ObjectQuery query;
+ ObjectQuery query = QueryBuilder.queryFor(TaskType.class, getPrismContext())
+ .item(TaskType.F_OBJECT_REF).ref(resourceOid)
+ .and().item(TaskType.F_HANDLER_URI).eq(handlerUri)
+ .build();
- ObjectFilter refFilter = RefFilter.createReferenceEqual(TaskType.F_OBJECT_REF, TaskType.class,
- getPrismContext(), resourceOid);
+ List> taskList = WebModelServiceUtils.searchObjects(TaskType.class, query, result, this);
- ObjectFilter filterHandleUri = EqualFilter.createEqual(TaskType.F_HANDLER_URI, TaskType.class,
- getPrismContext(), null, handlerUri);
-
- query = new ObjectQuery();
- query.setFilter(AndFilter.createAnd(refFilter, filterHandleUri));
-
- List> taskList = WebModelServiceUtils.searchObjects(TaskType.class, query,
- result, this);
-
- if(taskList.size() != 1){
+ if (taskList.size() != 1) {
error(getString("pageResource.message.invalidTaskSearch"));
} else {
oldTask = taskList.get(0);
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResourceEdit.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResourceEdit.java
index ca74f7f0c5f..c9947013cdf 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResourceEdit.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResourceEdit.java
@@ -25,7 +25,7 @@
import com.evolveum.midpoint.prism.PrismReference;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
-import com.evolveum.midpoint.prism.parser.QueryConvertor;
+import com.evolveum.midpoint.prism.marshaller.QueryConvertor;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.schema.SchemaRegistry;
@@ -214,7 +214,7 @@ private void savePerformed(AjaxRequestTarget target) {
OperationResult result = task.getResult();
try {
Holder> objectHolder = new Holder>(null);
- validateObject(dto.getXml(), objectHolder, false, result);
+ validateObject(dto.getXml(), objectHolder, PrismContext.LANG_XML, false, result);
if (result.isAcceptable()) {
PrismObject newResource = objectHolder.getValue();
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java
index 3e7819c4eb5..a0b68f1abbf 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java
@@ -22,6 +22,8 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.web.session.SessionStorage;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -185,7 +187,7 @@ public QName getObjectClass() {
}
public RefinedObjectClassDefinition getDefinitionByKind() throws SchemaException {
- RefinedResourceSchema refinedSchema = RefinedResourceSchema
+ RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl
.getRefinedSchema(resourceModel.getObject(), getPageBase().getPrismContext());
if (refinedSchema == null) {
warn("No schema found in resource. Please check your configuration and try to test connection for the resource.");
@@ -196,7 +198,7 @@ public RefinedObjectClassDefinition getDefinitionByKind() throws SchemaException
}
public RefinedObjectClassDefinition getDefinitionByObjectClass() throws SchemaException {
- RefinedResourceSchema refinedSchema = RefinedResourceSchema
+ RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl
.getRefinedSchema(resourceModel.getObject(), getPageBase().getPrismContext());
if (refinedSchema == null) {
warn("No schema found in resource. Please check your configuration and try to test connection for the resource.");
@@ -344,9 +346,9 @@ public boolean isVisible() {
List> tasks = WebModelServiceUtils
.searchObjects(TaskType.class,
- ObjectQuery.createObjectQuery(RefFilter.createReferenceEqual(TaskType.F_OBJECT_REF,
- TaskType.class, getPageBase().getPrismContext(),
- getResourceModel().getObject().getOid())),
+ QueryBuilder.queryFor(TaskType.class, getPageBase().getPrismContext())
+ .item(TaskType.F_OBJECT_REF).ref(getResourceModel().getObject().getOid())
+ .build(),
result, getPageBase());
List tasksForKind = getTasksForKind(tasks);
@@ -436,7 +438,7 @@ private void newTaskPerformed(String category, AjaxRequestTarget target) {
private void runTask(List tasks, AjaxRequestTarget target) {
ResourceTasksPanel tasksPanel = new ResourceTasksPanel(getPageBase().getMainPopupBodyId(), false,
- new ListModel<>(tasks), getPageBase());
+ new ListModel(tasks), getPageBase());
getPageBase().showMainPopup(tasksPanel, target);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentTabPanel.java
index c904ce54023..100e7409a5b 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentTabPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentTabPanel.java
@@ -22,6 +22,7 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.web.session.SessionStorage;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -139,13 +140,13 @@ private void initLayout(final IModel> model, final Pag
public Iterator getIterator(String input) {
RefinedResourceSchema refinedSchema = null;
try {
- refinedSchema = RefinedResourceSchema.getRefinedSchema(model.getObject(),
+ refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(model.getObject(),
parentPage.getPrismContext());
} catch (SchemaException e) {
return new ArrayList().iterator();
}
- return RefinedResourceSchema.getIntentsForKind(refinedSchema, getKind()).iterator();
+ return RefinedResourceSchemaImpl.getIntentsForKind(refinedSchema, getKind()).iterator();
}
@@ -180,7 +181,7 @@ public boolean isVisible() {
public String getObject() {
RefinedObjectClassDefinition ocDef;
try {
- RefinedResourceSchema refinedSchema = RefinedResourceSchema
+ RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl
.getRefinedSchema(model.getObject(), parentPage.getPrismContext());
if (refinedSchema == null) {
return "NO SCHEMA DEFINED";
@@ -288,7 +289,7 @@ protected void onBeforeRender() {
private List createObjectClassChoices(IModel> model) {
RefinedResourceSchema refinedSchema;
try {
- refinedSchema = RefinedResourceSchema.getRefinedSchema(model.getObject(),
+ refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(model.getObject(),
parentPage.getPrismContext());
} catch (SchemaException e) {
warn("Could not determine defined obejct classes for resource");
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceDetailsTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceDetailsTabPanel.java
index 2c494b44f80..abd91eb6964 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceDetailsTabPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceDetailsTabPanel.java
@@ -21,6 +21,8 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -181,8 +183,9 @@ private List createResourceConfigList(ResourceType res
OperationResult result = new OperationResult(OPERATION_SEARCH_TASKS_FOR_RESOURCE);
List> tasks = WebModelServiceUtils.searchObjects(TaskType.class,
- ObjectQuery.createObjectQuery(RefFilter.createReferenceEqual(TaskType.F_OBJECT_REF,
- TaskType.class, parentPage.getPrismContext(), resource.getOid())),
+ QueryBuilder.queryFor(TaskType.class, parentPage.getPrismContext())
+ .item(TaskType.F_OBJECT_REF).ref(resource.getOid())
+ .build(),
result, parentPage);
List configs = new ArrayList<>();
@@ -321,7 +324,7 @@ private InfoBoxPanel createSchemaStatusInfo(ResourceType resource) {
Integer progress = null;
RefinedResourceSchema refinedSchema = null;
try {
- refinedSchema = RefinedResourceSchema.getRefinedSchema(resource);
+ refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource);
if (refinedSchema != null) {
backgroundColor = "bg-purple";
icon = "fa-cubes";
@@ -412,7 +415,7 @@ private List getTaskFor(List> tasks,
// is not accessible in admin-gui)
if (taskObjectClassValue == null) {
ObjectClassComplexTypeDefinition taskObjectClassDef = null;
- RefinedResourceSchema schema = RefinedResourceSchema.getRefinedSchema(resource);
+ RefinedResourceSchema schema = RefinedResourceSchemaImpl.getRefinedSchema(resource);
if (schema == null) {
throw new SchemaException(
"No schema defined in resource. Possible configuration problem?");
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceTasksPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceTasksPanel.java
index 4185c413375..483f99c1bc2 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceTasksPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceTasksPanel.java
@@ -18,6 +18,7 @@
import java.util.ArrayList;
import java.util.List;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
@@ -94,9 +95,9 @@ private ListModel createTaskModel(PrismObject object) {
OperationResult result = new OperationResult(OPERATION_LOAD_TASKS);
List> tasks = WebModelServiceUtils
.searchObjects(TaskType.class,
- ObjectQuery.createObjectQuery(RefFilter.createReferenceEqual(TaskType.F_OBJECT_REF,
- TaskType.class, pageBase.getPrismContext(),
- object.getOid())),
+ QueryBuilder.queryFor(TaskType.class, pageBase.getPrismContext())
+ .item(TaskType.F_OBJECT_REF).ref(object.getOid())
+ .build(),
result, pageBase);
List tasksType = new ArrayList();
for (PrismObject task : tasks) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/dto/ResourceDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/dto/ResourceDto.java
index bb892e78e2d..afe391561a0 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/dto/ResourceDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/dto/ResourceDto.java
@@ -20,6 +20,7 @@
import java.util.Collection;
import java.util.List;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.prism.PrismReference;
import com.evolveum.midpoint.schema.result.OperationResultStatus;
import com.evolveum.midpoint.web.component.data.column.InlineMenuable;
@@ -98,7 +99,7 @@ public ResourceDto(PrismObject resource, PrismContext prismContext
this.capabilities = capabilities;
try {
- ResourceSchema resourceSchema = RefinedResourceSchema.getResourceSchema(resource, prismContext);
+ ResourceSchema resourceSchema = RefinedResourceSchemaImpl.getResourceSchema(resource, prismContext);
Collection definitions = resourceSchema.getObjectClassDefinitions();
for (ObjectClassComplexTypeDefinition definition : definitions) {
if (!(definition instanceof ObjectClassComplexTypeDefinition)) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java
index 5e6589d8337..8d57ec31d7a 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java
@@ -22,6 +22,9 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterExit;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.markup.html.form.DropDownChoice;
@@ -118,46 +121,32 @@ protected void refreshTable(AjaxRequestTarget target) {
getMemberTable().refreshTable((Class) WebComponentUtil.qnameToClass(getPrismContext(), type), target);
}
-
private List createTenantList() {
- ObjectQuery query;
- try {
- query = ObjectQuery.createObjectQuery(
- EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class, getPrismContext(), true));
- List> orgs = WebModelServiceUtils.searchObjects(OrgType.class, query,
- new OperationResult("Tenant search"), getPageBase());
- List orgTypes = new ArrayList<>();
- for (PrismObject org : orgs) {
- orgTypes.add(org.asObjectable());
- }
-
- return orgTypes;
- } catch (SchemaException e) {
- error(getString("pageUsers.message.queryError") + " " + e.getMessage());
- return null;
+ ObjectQuery query = QueryBuilder.queryFor(OrgType.class, getPrismContext())
+ .item(OrgType.F_TENANT).eq(true)
+ .build();
+ List> orgs = WebModelServiceUtils.searchObjects(OrgType.class, query,
+ new OperationResult("Tenant search"), getPageBase());
+ List orgTypes = new ArrayList<>();
+ for (PrismObject org : orgs) {
+ orgTypes.add(org.asObjectable());
}
+ return orgTypes;
}
private List createProjectList() {
- ObjectQuery query;
- try {
- query = ObjectQuery.createObjectQuery(OrFilter.createOr(
- EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class, getPrismContext(), true),
- EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class, getPrismContext(), null)));
- List> orgs = WebModelServiceUtils.searchObjects(OrgType.class, query,
- new OperationResult("Tenant search"), getPageBase());
- List orgTypes = new ArrayList<>();
- for (PrismObject org : orgs) {
- orgTypes.add(org.asObjectable());
- }
-
- return orgTypes;
- } catch (SchemaException e) {
- error(getString("pageUsers.message.queryError") + " " + e.getMessage());
- return null;
+ ObjectQuery query = QueryBuilder.queryFor(OrgType.class, getPrismContext())
+ .item(OrgType.F_TENANT).eq(true)
+ .or().item(OrgType.F_TENANT).isNull()
+ .build();
+ List> orgs = WebModelServiceUtils.searchObjects(OrgType.class, query,
+ new OperationResult("Tenant search"), getPageBase());
+ List orgTypes = new ArrayList<>();
+ for (PrismObject org : orgs) {
+ orgTypes.add(org.asObjectable());
}
-
+ return orgTypes;
}
private MainObjectListPanel getMemberTable() {
@@ -196,7 +185,9 @@ private ObjectQuery getActionQuery(QueryScope scope) {
}
private ObjectQuery createAllMemberQuery() {
- return ObjectQuery.createObjectQuery(RefFilter.createReferenceEqual(FocusType.F_ROLE_MEMBERSHIP_REF, FocusType.class, getModelObject()));
+ return QueryBuilder.queryFor(FocusType.class, getPrismContext())
+ .item(FocusType.F_ROLE_MEMBERSHIP_REF).ref(getModelObject().getOid())
+ .build();
}
private ObjectQuery createRecomputeQuery() {
@@ -311,46 +302,31 @@ private ObjectQuery createDirectMemberQuery() {
String oid = getModelObject().getOid();
- List filters = new ArrayList<>();
- try {
- filters.add(RefFilter.createReferenceEqual(
- new ItemPath(FocusType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF), UserType.class,
- getPrismContext(), createReference().asReferenceValue()));
-
- DropDownChoice tenantChoice = (DropDownChoice) get(createComponentPath(ID_TENANT));
- OrgType tenant = tenantChoice.getModelObject();
-
- if (tenant != null) {
- filters.add(RefFilter.createReferenceEqual(
- new ItemPath(FocusType.F_ASSIGNMENT, AssignmentType.F_TENANT_REF), UserType.class,
- getPrismContext(), createReference(tenant).asReferenceValue()));
- }
-
- DropDownChoice projectChoice = (DropDownChoice) get(createComponentPath(ID_PROJECT));
- OrgType project = projectChoice.getModelObject();
-
- if (project != null) {
- filters.add(RefFilter.createReferenceEqual(
- new ItemPath(FocusType.F_ASSIGNMENT, AssignmentType.F_ORG_REF), UserType.class,
- getPrismContext(), createReference(project).asReferenceValue()));
- }
-
- query = ObjectQuery.createObjectQuery(AndFilter.createAnd(filters));
+ S_AtomicFilterExit q = QueryBuilder.queryFor(FocusType.class, getPrismContext())
+ .item(FocusType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF).ref(createReference().asReferenceValue());
+ DropDownChoice tenantChoice = (DropDownChoice) get(createComponentPath(ID_TENANT));
+ OrgType tenant = tenantChoice.getModelObject();
+ if (tenant != null) {
+ q = q.and().item(FocusType.F_ASSIGNMENT, AssignmentType.F_TENANT_REF).ref(createReference(tenant).asReferenceValue());
+ }
- if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("Searching members of role {} with query:\n{}", oid, query.debugDump());
- }
+ DropDownChoice projectChoice = (DropDownChoice) get(createComponentPath(ID_PROJECT));
+ OrgType project = projectChoice.getModelObject();
+ if (project != null) {
+ q = q.and().item(FocusType.F_ASSIGNMENT, AssignmentType.F_ORG_REF).ref(createReference(project).asReferenceValue());
+ }
- } catch (SchemaException e) {
- LoggingUtils.logUnexpectedException(LOGGER, "Couldn't prepare query for org. members.", e);
+ query = q.build();
+ if (LOGGER.isTraceEnabled()) {
+ LOGGER.trace("Searching members of role {} with query:\n{}", oid, query.debugDump());
}
DropDownChoice objectTypeChoice = (DropDownChoice) get(createComponentPath(ID_OBJECT_TYPE));
QName objectType = objectTypeChoice.getModelObject();
if (objectType == null || FocusType.COMPLEX_TYPE.equals(objectType)) {
return query;
+ } else {
+ return ObjectQuery.createObjectQuery(TypeFilter.createType(objectType, query.getFilter()));
}
-
- return ObjectQuery.createObjectQuery(TypeFilter.createType(objectType, query.getFilter()));
}
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskAdd.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskAdd.java
index 2c8fc9b9672..9149c830cb7 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskAdd.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskAdd.java
@@ -24,6 +24,7 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -255,7 +256,7 @@ protected void onUpdate(AjaxRequestTarget target) {
resourcesDto.getOid(), PageTaskAdd.this, task, result);
try {
- ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resource, getPrismContext());
+ ResourceSchema schema = RefinedResourceSchemaImpl.getResourceSchema(resource, getPrismContext());
schema.getObjectClassDefinitions();
for(Definition def: schema.getDefinitions()){
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java
index cf09d3708c0..522260c4ac1 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java
@@ -25,6 +25,9 @@
import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.*;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
+import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
@@ -1198,38 +1201,23 @@ private ObjectQuery createTaskQuery() {
String category = dto.getCategory();
boolean showSubtasks = dto.isShowSubtasks();
- ObjectQuery query = null;
- try {
- List filters = new ArrayList<>();
- if (status != null) {
- ObjectFilter filter = status.createFilter(TaskType.class, getPrismContext());
- if (filter != null) {
- filters.add(filter);
- }
- }
- if (category != null && !ALL_CATEGORIES.equals(category)) {
- filters.add(EqualFilter.createEqual(TaskType.F_CATEGORY, TaskType.class, getPrismContext(), null, category));
- }
- if (searchText != null && !searchText.trim().equals("")) {
- PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
- String normalizedString = normalizer.normalize(searchText);
-
- ObjectFilter substring = SubstringFilter.createSubstring(TaskType.F_NAME, TaskType.class,
- getPrismContext(), PolyStringNormMatchingRule.NAME, normalizedString);
- filters.add(substring);
- searchText = "";
- }
- if (!Boolean.TRUE.equals(showSubtasks)) {
- filters.add(EqualFilter.createEqual(TaskType.F_PARENT, TaskType.class, getPrismContext(), null));
- }
- if (!filters.isEmpty()) {
- query = new ObjectQuery().createObjectQuery(AndFilter.createAnd(filters));
- }
- } catch (Exception ex) {
- error(getString("pageTasks.message.couldntCreateQuery") + " " + ex.getMessage());
- LoggingUtils.logUnexpectedException(LOGGER, "Couldn't create task filter", ex);
+ S_AtomicFilterEntry q = QueryBuilder.queryFor(TaskType.class, getPrismContext());
+ if (status != null) {
+ q = status.appendFilter(q);
+ }
+ if (category != null && !ALL_CATEGORIES.equals(category)) {
+ q = q.item(TaskType.F_CATEGORY).eq(category).and();
+ }
+ if (StringUtils.isNotBlank(searchText)) {
+ PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
+ String normalizedString = normalizer.normalize(searchText);
+ q = q.item(TaskType.F_NAME).containsPoly(normalizedString, normalizedString).matchingNorm().and();
+ searchText = ""; // ???
+ }
+ if (!Boolean.TRUE.equals(showSubtasks)) {
+ q = q.item(TaskType.F_PARENT).isNull().and();
}
- return query;
+ return q.all().build();
}
private void clearSearchPerformed(AjaxRequestTarget target) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDto.java
index fa63a9618e2..8d425de4cc6 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDto.java
@@ -788,7 +788,7 @@ public String getObjectQuery() {
QueryType queryType = getExtensionPropertyRealValue(SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY, QueryType.class);
PrismContext prismContext = ((MidPointApplication) Application.get()).getPrismContext();
try {
- return prismContext.serializeAnyData(queryType, SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY, PrismContext.LANG_XML);
+ return prismContext.xmlSerializer().serializeAnyData(queryType, SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY);
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize query: " + e.getMessage(), e);
}
@@ -798,7 +798,7 @@ public String getObjectDelta() {
ObjectDeltaType objectDeltaType = getExtensionPropertyRealValue(SchemaConstants.MODEL_EXTENSION_OBJECT_DELTA, ObjectDeltaType.class);
PrismContext prismContext = ((MidPointApplication) Application.get()).getPrismContext();
try {
- return prismContext.serializeAnyData(objectDeltaType, SchemaConstants.MODEL_EXTENSION_OBJECT_DELTA, PrismContext.LANG_XML);
+ return prismContext.xmlSerializer().serializeAnyData(objectDeltaType, SchemaConstants.MODEL_EXTENSION_OBJECT_DELTA);
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize delta: " + e.getMessage(), e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDtoExecutionStatusFilter.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDtoExecutionStatusFilter.java
index eabe150019a..19eca8d59a9 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDtoExecutionStatusFilter.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/dto/TaskDtoExecutionStatusFilter.java
@@ -20,6 +20,7 @@
import com.evolveum.midpoint.prism.query.EqualFilter;
import com.evolveum.midpoint.prism.query.NotFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskExecutionStatusType;
@@ -40,21 +41,15 @@ public enum TaskDtoExecutionStatusFilter {
CLOSED,
NOT_CLOSED;
- public ObjectFilter createFilter(Class clazz, PrismContext prismContext) throws SchemaException {
+ public S_AtomicFilterEntry appendFilter(S_AtomicFilterEntry q) {
switch(this) {
- case ALL: return null;
- case RUNNING_OR_RUNNABLE: return createExecutionStatusFilter(clazz, prismContext, TaskExecutionStatusType.RUNNABLE);
- case WAITING: return createExecutionStatusFilter(clazz, prismContext, TaskExecutionStatusType.WAITING);
- case SUSPENDED_OR_SUSPENDING: return createExecutionStatusFilter(clazz, prismContext, TaskExecutionStatusType.SUSPENDED);
- case CLOSED: return createExecutionStatusFilter(clazz, prismContext, TaskExecutionStatusType.CLOSED);
- case NOT_CLOSED: return NotFilter.createNot(createExecutionStatusFilter(clazz, prismContext, TaskExecutionStatusType.CLOSED));
+ case ALL: return q;
+ case RUNNING_OR_RUNNABLE: return q.item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.RUNNABLE).and();
+ case WAITING: return q.item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.WAITING).and();
+ case SUSPENDED_OR_SUSPENDING: return q.item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.SUSPENDED).and();
+ case CLOSED: return q.item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.CLOSED).and();
+ case NOT_CLOSED: return q.block().not().item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.RUNNABLE).endBlock().and();
default: throw new SystemException("Unknown value for TaskDtoExecutionStatusFilter: " + this);
}
}
-
- private EqualFilter createExecutionStatusFilter(Class clazz, PrismContext prismContext, TaskExecutionStatusType value){
- return EqualFilter.createEqual(TaskType.F_EXECUTION_STATUS, clazz, prismContext, null, value);
- }
-
-
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/ResourceRelatedHandlerPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/ResourceRelatedHandlerPanel.java
index 6f1be97ae17..9fec27719ab 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/ResourceRelatedHandlerPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/ResourceRelatedHandlerPanel.java
@@ -16,6 +16,7 @@
package com.evolveum.midpoint.web.page.admin.server.handlers;
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
@@ -149,7 +150,7 @@ protected void onUpdate(AjaxRequestTarget target) {
resourcesDto.getOid(), parentPage, task, result);
try {
- ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resource, parentPage.getPrismContext());
+ ResourceSchema schema = RefinedResourceSchemaImpl.getResourceSchema(resource, parentPage.getPrismContext());
schema.getObjectClassDefinitions();
for(Definition def: schema.getDefinitions()){
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ExecuteChangesHandlerDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ExecuteChangesHandlerDto.java
index 26f09ab69ba..f7f488db2e8 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ExecuteChangesHandlerDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ExecuteChangesHandlerDto.java
@@ -45,7 +45,7 @@ public String getObjectDeltaXml() {
PrismContext prismContext = ((MidPointApplication) Application.get()).getPrismContext();
try {
return WebXmlUtil.stripNamespaceDeclarations(
- prismContext.serializeAnyData(objectDeltaType, SchemaConstants.MODEL_EXTENSION_OBJECT_DELTA, PrismContext.LANG_XML));
+ prismContext.xmlSerializer().serializeAnyData(objectDeltaType, SchemaConstants.MODEL_EXTENSION_OBJECT_DELTA));
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize object delta: " + e.getMessage(), e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/GenericHandlerDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/GenericHandlerDto.java
index 3adfd1a0bbe..9a0ea2c88d1 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/GenericHandlerDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/GenericHandlerDto.java
@@ -72,17 +72,17 @@ public GenericHandlerDto(TaskDto taskDto, @NotNull List- items, PageBase pa
final PrismContext prismContext = pageBase.getPrismContext();
PrismContainer container = new PrismContainer(new QName("test"), prismContext);
- ComplexTypeDefinition ctd = new ComplexTypeDefinition(new QName("Test"), prismContext);
+ ComplexTypeDefinitionImpl ctd = new ComplexTypeDefinitionImpl(new QName("Test"), prismContext);
int displayOrder = 1;
for (Item item : items) {
PrismProperty> property = taskDto.getExtensionProperty(item.name);
- PrismPropertyDefinition> clonedDefinition = null;
+ PrismPropertyDefinitionImpl> clonedDefinition = null;
if (property != null) {
try {
PrismProperty> clonedProperty = property.clone();
container.add(clonedProperty);
if (clonedProperty.getDefinition() != null) {
- clonedDefinition = clonedProperty.getDefinition().clone();
+ clonedDefinition = (PrismPropertyDefinitionImpl) clonedProperty.getDefinition().clone();
clonedProperty.setDefinition((PrismPropertyDefinition) clonedDefinition);
}
} catch (SchemaException e) {
@@ -90,7 +90,7 @@ public GenericHandlerDto(TaskDto taskDto, @NotNull List
- items, PageBase pa
}
}
if (clonedDefinition == null) {
- clonedDefinition = CloneUtil.clone(prismContext.getSchemaRegistry().findPropertyDefinitionByElementName(item.name));
+ clonedDefinition = CloneUtil.clone((PrismPropertyDefinitionImpl) prismContext.getSchemaRegistry().findPropertyDefinitionByElementName(item.name));
}
if (clonedDefinition == null) {
System.out.println("Definition-less property " + item.name);
@@ -102,7 +102,7 @@ public GenericHandlerDto(TaskDto taskDto, @NotNull List
- items, PageBase pa
}
displayOrder++;
}
- PrismContainerDefinition> containerDefinition = new PrismContainerDefinition<>(new QName("test"), ctd, prismContext);
+ PrismContainerDefinition> containerDefinition = new PrismContainerDefinitionImpl<>(new QName("test"), ctd, prismContext);
container.setDefinition(containerDefinition);
containerWrapper = cwf.createContainerWrapper(container, ContainerStatus.MODIFYING, ItemPath.EMPTY_PATH, true);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/QueryBasedHandlerDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/QueryBasedHandlerDto.java
index d6286ac89ef..718837f1664 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/QueryBasedHandlerDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/QueryBasedHandlerDto.java
@@ -58,7 +58,7 @@ public String getObjectQuery() {
PrismContext prismContext = ((MidPointApplication) Application.get()).getPrismContext();
try {
return WebXmlUtil.stripNamespaceDeclarations(
- prismContext.serializeAnyData(query, SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY, PrismContext.LANG_XML));
+ prismContext.xmlSerializer().serializeAnyData(query, SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY));
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize query: " + e.getMessage(), e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ReportCreateHandlerDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ReportCreateHandlerDto.java
index aa86eb9eebd..0e368554860 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ReportCreateHandlerDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ReportCreateHandlerDto.java
@@ -57,7 +57,7 @@ public String getReportParams() {
PrismContext prismContext = ((MidPointApplication) Application.get()).getPrismContext();
try {
return WebXmlUtil.stripNamespaceDeclarations(
- prismContext.serializeContainerValueToString(pcv, ReportConstants.REPORT_PARAMS_PROPERTY_NAME, PrismContext.LANG_XML));
+ prismContext.xmlSerializer().serialize(pcv, ReportConstants.REPORT_PARAMS_PROPERTY_NAME));
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize report parameters: " + e.getMessage(), e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ResourceRelatedHandlerDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ResourceRelatedHandlerDto.java
index 32358901613..2bc0d224653 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ResourceRelatedHandlerDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ResourceRelatedHandlerDto.java
@@ -1,6 +1,7 @@
package com.evolveum.midpoint.web.page.admin.server.handlers.dto;
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
+import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.*;
@@ -155,7 +156,7 @@ private void updateObjectClassList(PageBase pageBase){
pageBase, task, result);
try {
- ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resource, pageBase.getPrismContext());
+ ResourceSchema schema = RefinedResourceSchemaImpl.getResourceSchema(resource, pageBase.getPrismContext());
schema.getObjectClassDefinitions();
for(Definition def: schema.getDefinitions()){
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ScriptExecutionHandlerDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ScriptExecutionHandlerDto.java
index 9f3094c72bb..41495447555 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ScriptExecutionHandlerDto.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/handlers/dto/ScriptExecutionHandlerDto.java
@@ -45,7 +45,7 @@ public String getScript() {
PrismContext prismContext = ((MidPointApplication) Application.get()).getPrismContext();
try {
return WebXmlUtil.stripNamespaceDeclarations(
- prismContext.serializeAnyData(script, SchemaConstants.SE_EXECUTE_SCRIPT, PrismContext.LANG_XML));
+ prismContext.xmlSerializer().serializeAnyData(script, SchemaConstants.SE_EXECUTE_SCRIPT));
} catch (SchemaException e) {
throw new SystemException("Couldn't serialize script: " + e.getMessage(), e);
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractTreeTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractTreeTablePanel.java
index 5d37217a25e..e7fe9a3bd0e 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractTreeTablePanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractTreeTablePanel.java
@@ -20,6 +20,9 @@
import java.util.Iterator;
import java.util.List;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterExit;
+import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
@@ -158,42 +161,38 @@ protected ObjectQuery createOrgChildQuery() {
if (StringUtils.isBlank(object)) {
object = null;
}
-
- OrgFilter org;
+
+ PageBase page = getPageBase();
+ PrismContext context = page.getPrismContext();
+
+ S_AtomicFilterExit q;
if (object == null || SEARCH_SCOPE_ONE.equals(scope)) {
- org = OrgFilter.createOrg(oid, OrgFilter.Scope.ONE_LEVEL);
+ q = QueryBuilder.queryFor(OrgType.class, context)
+ .isDirectChildOf(oid);
} else {
- org = OrgFilter.createOrg(oid, OrgFilter.Scope.SUBTREE);
+ q = QueryBuilder.queryFor(OrgType.class, context)
+ .isChildOf(oid);
}
if (object == null) {
- return ObjectQuery.createObjectQuery(org);
+ return q.build();
}
-
- PageBase page = getPageBase();
- PrismContext context = page.getPrismContext();
PolyStringNormalizer normalizer = context.getDefaultPolyStringNormalizer();
String normalizedString = normalizer.normalize(object);
if (StringUtils.isEmpty(normalizedString)) {
- return ObjectQuery.createObjectQuery(org);
+ return q.build();
}
- SubstringFilter substringName = SubstringFilter.createSubstring(OrgType.F_NAME, OrgType.class, context,
- PolyStringNormMatchingRule.NAME, normalizedString);
-
- SubstringFilter substringDisplayName = SubstringFilter.createSubstring(OrgType.F_DISPLAY_NAME, OrgType.class, context,
- PolyStringNormMatchingRule.NAME, normalizedString);
- OrFilter orName = OrFilter.createOr(substringName, substringDisplayName);
- AndFilter and = AndFilter.createAnd(org, orName);
- ObjectQuery query = ObjectQuery.createObjectQuery(and);
-
- if(LOGGER.isTraceEnabled()){
+ ObjectQuery query = q.and().block()
+ .item(OrgType.F_NAME).containsPoly(normalizedString).matchingNorm()
+ .or().item(OrgType.F_DISPLAY_NAME).containsPoly(normalizedString).matchingNorm()
+ .build();
+
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Searching child orgs of org {} with query:\n{}", oid, query.debugDump());
}
-
return query;
}
-
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java
index 392c7b064ed..d19dc3c8e36 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java
@@ -25,6 +25,9 @@
import javax.xml.namespace.QName;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
+import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry;
+import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.Validate;
import org.apache.wicket.Component;
@@ -446,33 +449,24 @@ private MainObjectListPanel getMemberTable() {
createComponentPath(ID_FORM, ID_CONTAINER_MEMBER, ID_MEMBER_TABLE));
}
- private QName getSearchType() {
+ private ObjectTypes getSearchType() {
DropDownChoice searchByTypeChoice = (DropDownChoice) get(
createComponentPath(ID_FORM, ID_SEARCH_BY_TYPE));
- ObjectTypes typeModel = searchByTypeChoice.getModelObject();
- return typeModel.getTypeQName();
+ return searchByTypeChoice.getModelObject();
}
private ObjectQuery createManagerQuery() {
-
String oid = getModelObject().getOid();
PrismReferenceValue referenceFilter = new PrismReferenceValue();
referenceFilter.setOid(oid);
referenceFilter.setRelation(SchemaConstants.ORG_MANAGER);
- RefFilter referenceOidFilter;
- try {
- referenceOidFilter = RefFilter.createReferenceEqual(new ItemPath(FocusType.F_PARENT_ORG_REF),
- UserType.class, getPageBase().getPrismContext(), referenceFilter);
- ObjectQuery query = ObjectQuery.createObjectQuery(referenceOidFilter);
- if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("Searching members of org {} with query:\n{}", oid, query.debugDump());
- }
- return query;
- } catch (SchemaException e) {
- LoggingUtils.logUnexpectedException(LOGGER, "Couldn't prepare query for org. managers.", e);
- return null;
+ ObjectQuery query = QueryBuilder.queryFor(FocusType.class, getPageBase().getPrismContext())
+ .item(FocusType.F_PARENT_ORG_REF).ref(referenceFilter)
+ .build();
+ if (LOGGER.isTraceEnabled()) {
+ LOGGER.trace("Searching members of org {} with query:\n{}", oid, query.debugDump());
}
-
+ return query;
}
private ObjectDelta prepareDelta(MemberOperation operaton, QName type, QName relation,
@@ -566,37 +560,27 @@ protected void recomputeManagersPerformed(QueryScope scope, AjaxRequestTarget ta
@Override
protected ObjectQuery createMemberQuery() {
- ObjectQuery query = null;
-
String oid = getModelObject().getOid();
- List filters = new ArrayList<>();
-
DropDownChoice searchScopeChoice = (DropDownChoice) get(
createComponentPath(ID_FORM, ID_SEARCH_SCOPE));
String scope = searchScopeChoice.getModelObject();
- QName searchType = getSearchType();
-
- OrgFilter org;
+ ObjectTypes searchType = getSearchType();
+ S_FilterEntryOrEmpty q = QueryBuilder.queryFor(ObjectType.class, getPageBase().getPrismContext());
+ if (!searchType.equals(ObjectTypes.OBJECT)) {
+ q = q.type(searchType.getClassDefinition());
+ }
+ ObjectQuery query;
if (SEARCH_SCOPE_ONE.equals(scope)) {
- filters.add(OrgFilter.createOrg(oid, OrgFilter.Scope.ONE_LEVEL));
+ query = q.isDirectChildOf(oid).build();
} else {
- filters.add(OrgFilter.createOrg(oid, OrgFilter.Scope.SUBTREE));
+ query = q.isChildOf(oid).build();
}
-
- query = ObjectQuery.createObjectQuery(AndFilter.createAnd(filters));
-
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Searching members of org {} with query:\n{}", oid, query.debugDump());
}
-
- if (searchType.equals(ObjectType.COMPLEX_TYPE)) {
- return query;
- }
-
- return ObjectQuery.createObjectQuery(TypeFilter.createType(searchType, query.getFilter()));
-
+ return query;
}
private ObjectQuery createQueryForMemberAction(QueryScope scope, QName orgRelation, boolean isFocus) {
@@ -639,9 +623,9 @@ private boolean satisfyConstraints(boolean isFocus, Class extends ObjectType>
private ObjectQuery createQueryForAll(QueryScope scope, boolean isFocus, QName relation) {
OrgType org = getModelObject();
-
- return ObjectQuery.createObjectQuery(OrgFilter.createOrg(org.getOid(), getScope(scope)));
-
+ return QueryBuilder.queryFor(ObjectType.class, getPageBase().getPrismContext())
+ .isInScopeOf(org.getOid(), getScope(scope))
+ .build();
}
private Scope getScope(QueryScope queryScope) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgTreeProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgTreeProvider.java
index 9f04f8ef2e1..302223336e8 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgTreeProvider.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgTreeProvider.java
@@ -21,6 +21,7 @@
import java.util.Iterator;
import java.util.List;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import org.apache.wicket.Component;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.extensions.markup.html.repeater.util.SortableTreeProvider;
@@ -97,10 +98,10 @@ public Iterator extends SelectableBean> getChildren(SelectableBean> iterator = null;
- OrgFilter orgFilter = OrgFilter.createOrg(node.getValue().getOid(), OrgFilter.Scope.ONE_LEVEL);
- ObjectQuery query = ObjectQuery.createObjectQuery(orgFilter);
- query.setPaging(ObjectPaging.createPaging(null, null, ObjectType.F_NAME, OrderDirection.ASCENDING));
-
+ ObjectQuery query = QueryBuilder.queryFor(ObjectType.class, getPageBase().getPrismContext())
+ .isDirectChildOf(node.getValue().getOid())
+ .asc(ObjectType.F_NAME)
+ .build();
OperationResult result = new OperationResult(LOAD_ORG_UNITS);
try {
// Collection> options = WebModelServiceUtils.createOptionsForParentOrgRefs();
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java
index cac93607e80..5a761555508 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java
@@ -29,6 +29,7 @@
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.OrgFilter;
import com.evolveum.midpoint.prism.query.OrgFilter.Scope;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
import com.evolveum.midpoint.task.api.Task;
@@ -425,12 +426,14 @@ public void yesPerformed(AjaxRequestTarget target) {
}
private boolean hasChildren(SelectableBean orgToDelete) {
- OrgFilter childrenFilter = OrgFilter.createOrg(orgToDelete.getValue().getOid(), Scope.SUBTREE);
+ ObjectQuery query = QueryBuilder.queryFor(ObjectType.class, getPageBase().getPrismContext())
+ .isChildOf(orgToDelete.getValue().getOid())
+ .build();
Task task = getPageBase().createSimpleTask(OPERATION_COUNT_CHILDREN);
OperationResult result = new OperationResult(OPERATION_COUNT_CHILDREN);
try {
int count = getPageBase().getModelService().countObjects(ObjectType.class,
- ObjectQuery.createObjectQuery(childrenFilter), null, task, result);
+ query, null, task, result);
return (count > 0);
} catch (SchemaException | ObjectNotFoundException | SecurityViolationException
| ConfigurationException | CommunicationException e) {
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/forgetpassword/PageForgetPassword.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/forgetpassword/PageForgetPassword.java
index 7aa5c6114db..2b71201f5f1 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/forgetpassword/PageForgetPassword.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/forgetpassword/PageForgetPassword.java
@@ -18,6 +18,7 @@
import java.util.Collection;
import java.util.List;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.RequiredTextField;
@@ -151,12 +152,12 @@ private UserType getUser(String email, String username) {
Task task = createAnonymousTask(OPERATION_LOAD_USER);
OperationResult result = task.getResult();
-
- ObjectQuery query = ObjectQuery.createObjectQuery(AndFilter.createAnd(
- EqualFilter.createEqual(UserType.F_NAME, UserType.class,getPrismContext(), PolyStringOrigMatchingRule.NAME, username),
- EqualFilter.createEqual(UserType.F_EMAIL_ADDRESS, UserType.class,getPrismContext(), PolyStringOrigMatchingRule.NAME, email)));
-
-
+
+ ObjectQuery query = QueryBuilder.queryFor(UserType.class, getPrismContext())
+ .item(UserType.F_NAME).eqPoly(username).matchingNorm()
+ .and().item(UserType.F_EMAIL_ADDRESS).eq(email).matchingCaseIgnore()
+ .build();
+
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Searching for user with query:\n{}", query.debugDump(1));
}
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ExpressionUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ExpressionUtil.java
index 8aede16122b..40c074ae6e8 100644
--- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ExpressionUtil.java
+++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/util/ExpressionUtil.java
@@ -229,9 +229,9 @@ private static String serialize(JAXBElement> element, PrismContext prismContex
if (element.getValue() instanceof RawType) {
RawType raw = (RawType) element.getValue();
RootXNode rootNode = new RootXNode(element.getName(), raw.serializeToXNode());
- xml = prismContext.serializeXNodeToString(rootNode, PrismContext.LANG_XML);
+ xml = prismContext.xmlSerializer().serialize(rootNode);
} else {
- xml = prismContext.serializeAtomicValue(element, PrismContext.LANG_XML);
+ xml = prismContext.xmlSerializer().serialize(element);
}
return WebXmlUtil.stripNamespaceDeclarations(xml);
}
@@ -245,7 +245,7 @@ public static void parseExpressionEvaluators(String xml, ExpressionType expressi
if (xml != null && StringUtils.isNotBlank(xml)) {
xml = WebXmlUtil.wrapInElement("expression", xml);
LOGGER.info("Expression to serialize: {}", xml);
- JAXBElement> newElement = context.parseAnyValueAsJAXBElement(xml, PrismContext.LANG_XML);
+ JAXBElement> newElement = context.parserFor(xml).xml().parseRealValueToJaxbElement();
expressionObject.getExpressionEvaluator().addAll(((ExpressionType) (newElement.getValue())).getExpressionEvaluator());
}
}
diff --git a/gui/admin-gui/src/test/resources/common/user-jack-repo.xml b/gui/admin-gui/src/test/resources/common/user-jack-repo.xml
index e7b3f162c3b..f4920887da6 100644
--- a/gui/admin-gui/src/test/resources/common/user-jack-repo.xml
+++ b/gui/admin-gui/src/test/resources/common/user-jack-repo.xml
@@ -100,7 +100,7 @@
-
+
diff --git a/infra/common/pom.xml b/infra/common/pom.xml
index d2578e63908..be166efcafe 100644
--- a/infra/common/pom.xml
+++ b/infra/common/pom.xml
@@ -59,6 +59,10 @@
commons-configuration
commons-configuration
+