From e5bf5888e0ce58142d0524774aed93a0dfa33441 Mon Sep 17 00:00:00 2001 From: kate Date: Tue, 26 Jun 2018 10:43:42 +0200 Subject: [PATCH 1/5] more refactoring --- .../AbstractAssignmentPopupTabPanel.java | 44 +++++-------------- .../gui/api/component/AssignmentPopup.java | 8 ++-- .../FocusTypeAssignmentPopupTabPanel.java | 44 +++++++++++++++++-- .../OrgTypeAssignmentPopupTabPanel.java | 10 +++++ 4 files changed, 66 insertions(+), 40 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java index 5f1b165be96..cb0eb0393bf 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java @@ -48,8 +48,6 @@ public abstract class AbstractAssignmentPopupTabPanel exte private static final String ID_OBJECT_LIST_PANEL = "objectListPanel"; private static final String DOT_CLASS = AbstractAssignmentPopupTabPanel.class.getName(); - private static final Trace LOGGER = TraceManager.getTrace(AbstractAssignmentPopupTabPanel.class); - private static final String OPERATION_LOAD_ASSIGNABLE_ROLES = DOT_CLASS + "loadAssignableRoles"; private ObjectTypes type; protected List selectedObjects; @@ -91,29 +89,7 @@ protected IModel getCheckBoxEnableModel(IModel> rowMo @Override protected ObjectQuery addFilterToContentQuery(ObjectQuery query) { - LOGGER.debug("Loading roles which the current user has right to assign"); - Task task = AbstractAssignmentPopupTabPanel.this.getPageBase().createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES); - OperationResult result = task.getResult(); - ObjectFilter filter = null; - try { - ModelInteractionService mis = AbstractAssignmentPopupTabPanel.this.getPageBase().getModelInteractionService(); - RoleSelectionSpecification roleSpec = - mis.getAssignableRoleSpecification(SecurityUtils.getPrincipalUser().getUser().asPrismObject(), task, result); - filter = roleSpec.getFilter(); - } catch (Exception ex) { - LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load available roles", ex); - result.recordFatalError("Couldn't load available roles", ex); - } finally { - result.recomputeStatus(); - } - if (!result.isSuccess() && !result.isHandledError()) { - AbstractAssignmentPopupTabPanel.this.getPageBase().showResult(result); - } - if (query == null){ - query = new ObjectQuery(); - } - query.addFilter(filter); - return query; + return AbstractAssignmentPopupTabPanel.this.addFilterToContentQuery(query); } }; @@ -128,9 +104,7 @@ public boolean isVisible(){ return listPanel; } - protected PopupObjectListPanel getObjectListPanel(){ - return (PopupObjectListPanel)get(ID_OBJECT_LIST_PANEL); - } + protected abstract void initParametersPanel(); protected List getSelectedObjectsList(){ PopupObjectListPanel objectListPanel = getObjectListPanel(); @@ -140,17 +114,23 @@ protected List getSelectedObjectsList(){ return objectListPanel.getSelectedObjects(); } + protected PopupObjectListPanel getObjectListPanel(){ + return (PopupObjectListPanel)get(ID_OBJECT_LIST_PANEL); + } + + protected void onSelectionPerformed(AjaxRequestTarget target){} + protected IModel getObjectSelectCheckBoxEnableModel(IModel> rowModel){ return Model.of(true); } + protected ObjectQuery addFilterToContentQuery(ObjectQuery query){ + return query; + } + protected abstract List getSelectedAssignmentsList(); protected boolean isObjectListPanelVisible(){ return true; } - - protected abstract void initParametersPanel(); - - protected void onSelectionPerformed(AjaxRequestTarget target){} } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java index 219a96cd234..52c8c58fc75 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java @@ -231,14 +231,14 @@ private int getTabPanelSelectedCount(WebMarkupContainer panel){ return 0; } - private TabbedPanel getTabbedPanel(){ - return (TabbedPanel) get(ID_FORM).get(ID_TABS_PANEL); - } - private void tabLabelPanelUpdate(AjaxRequestTarget target){ target.add(getTabbedPanel()); } + private TabbedPanel getTabbedPanel(){ + return (TabbedPanel) get(ID_FORM).get(ID_TABS_PANEL); + } + protected void addPerformed(AjaxRequestTarget target, List newAssignmentsList) { getPageBase().hideMainPopup(target); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java index 4a98c0c5d67..ae2ba08fbd4 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java @@ -16,14 +16,22 @@ package com.evolveum.midpoint.gui.api.component; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.model.api.ModelInteractionService; +import com.evolveum.midpoint.model.api.RoleSelectionSpecification; +import com.evolveum.midpoint.prism.query.ObjectFilter; +import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.constants.SchemaConstants; +import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; +import com.evolveum.midpoint.task.api.Task; +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.assignment.RelationTypes; import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; +import com.evolveum.midpoint.web.security.SecurityUtils; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; @@ -47,6 +55,7 @@ public class FocusTypeAssignmentPopupTabPanel extends Abstr private static final String DOT_CLASS = FocusTypeAssignmentPopupTabPanel.class.getName(); private static final Trace LOGGER = TraceManager.getTrace(FocusTypeAssignmentPopupTabPanel.class); + private static final String OPERATION_LOAD_ASSIGNABLE_ROLES = DOT_CLASS + "loadAssignableRoles"; public FocusTypeAssignmentPopupTabPanel(String id, ObjectTypes type){ this(id, type, new ArrayList<>()); @@ -71,10 +80,6 @@ protected void initParametersPanel(){ relationContainer.add(relationSelector); } - private DropDownChoicePanel getRelationDropDown(){ - return (DropDownChoicePanel)get(ID_RELATION_CONTAINER).get(ID_RELATION); - } - @Override protected List getSelectedAssignmentsList(){ List assignmentList = new ArrayList<>(); @@ -95,4 +100,35 @@ public QName getRelationValue(){ } return relation.getRelation(); } + + private DropDownChoicePanel getRelationDropDown(){ + return (DropDownChoicePanel)get(ID_RELATION_CONTAINER).get(ID_RELATION); + } + + @Override + protected ObjectQuery addFilterToContentQuery(ObjectQuery query){ + LOGGER.debug("Loading roles which the current user has right to assign"); + Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES); + OperationResult result = task.getResult(); + ObjectFilter filter = null; + try { + ModelInteractionService mis = getPageBase().getModelInteractionService(); + RoleSelectionSpecification roleSpec = + mis.getAssignableRoleSpecification(SecurityUtils.getPrincipalUser().getUser().asPrismObject(), task, result); + filter = roleSpec.getFilter(); + } catch (Exception ex) { + LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load available roles", ex); + result.recordFatalError("Couldn't load available roles", ex); + } finally { + result.recomputeStatus(); + } + if (!result.isSuccess() && !result.isHandledError()) { + getPageBase().showResult(result); + } + if (query == null){ + query = new ObjectQuery(); + } + query.addFilter(filter); + return query; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java index 12a86c724bb..1d2dee8feca 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java @@ -16,13 +16,17 @@ package com.evolveum.midpoint.gui.api.component; import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.orgs.OrgTreeAssignablePanel; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.model.IModel; +import javax.xml.namespace.QName; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -121,6 +125,12 @@ protected List getSelectedObjectsList(){ } } + @Override + protected List getSelectedAssignmentsList(){ + isOrgTreeView = true; + return super.getSelectedAssignmentsList(); + } + protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target){} public boolean isOrgTreeView(){ From fd52b1818746e8ee77054526009c89466842e690 Mon Sep 17 00:00:00 2001 From: kate Date: Tue, 26 Jun 2018 10:53:38 +0200 Subject: [PATCH 2/5] assignment popup - more refactoring --- .../AbstractAssignmentPopupTabPanel.java | 2 +- .../gui/api/component/AssignmentPopup.java | 5 +--- .../FocusTypeAssignmentPopupTabPanel.java | 2 -- .../OrgTypeAssignmentPopupTabPanel.java | 23 +------------------ .../admin/orgs/OrgTreeAssignablePanel.java | 10 ++++---- 5 files changed, 8 insertions(+), 34 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java index cb0eb0393bf..2bcaace9721 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractAssignmentPopupTabPanel.java @@ -41,7 +41,7 @@ /** * Created by honchar. */ -public abstract class AbstractAssignmentPopupTabPanel extends BasePanel { +public abstract class AbstractAssignmentPopupTabPanel extends BasePanel { private static final long serialVersionUID = 1L; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java index 52c8c58fc75..df5ecefbc0c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AssignmentPopup.java @@ -3,8 +3,6 @@ import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.schema.constants.SchemaConstants; -import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.TabbedPanel; import com.evolveum.midpoint.web.component.dialog.Popupable; @@ -17,14 +15,13 @@ import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.StringResourceModel; -import javax.xml.namespace.QName; import java.util.ArrayList; import java.util.List; /** * Created by honchar. */ -public class AssignmentPopup extends BasePanel implements Popupable{ +public class AssignmentPopup extends BasePanel implements Popupable{ private static final long serialVersionUID = 1L; private static final String ID_TABS_PANEL = "tabsPanel"; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java index ae2ba08fbd4..f299301c6b0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java @@ -34,9 +34,7 @@ import com.evolveum.midpoint.web.security.SecurityUtils; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import javax.xml.namespace.QName; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java index 1d2dee8feca..739578628b8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTypeAssignmentPopupTabPanel.java @@ -16,17 +16,14 @@ package com.evolveum.midpoint.gui.api.component; import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.orgs.OrgTreeAssignablePanel; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.model.IModel; -import javax.xml.namespace.QName; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -50,26 +47,8 @@ public OrgTypeAssignmentPopupTabPanel(String id, boolean isOrgTreeView, List> selectedOrgsModel = new IModel>() { - private static final long serialVersionUID = 1L; - - @Override - public List getObject() { - return selectedObjects; - } - - @Override - public void setObject(List orgTypes) { - selectedObjects = orgTypes; - } - - @Override - public void detach() { - - } - }; OrgTreeAssignablePanel orgTreePanel = new OrgTreeAssignablePanel( - ID_ORG_TREE_VIEW_PANEL, true, getPageBase(), selectedOrgsModel) { + ID_ORG_TREE_VIEW_PANEL, true, getPageBase(), selectedObjects) { private static final long serialVersionUID = 1L; @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreeAssignablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreeAssignablePanel.java index 37fe07966d1..5fa6185032e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreeAssignablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreeAssignablePanel.java @@ -49,16 +49,16 @@ public class OrgTreeAssignablePanel extends BasePanel implements Popupa private static final String ID_ORG_TABS = "orgTabs"; private static final String ID_ASSIGN = "assign"; private boolean selectable; - private IModel> selectedOrgsListModel; + private List selectedOrgsList; public OrgTreeAssignablePanel(String id, boolean selectable, PageBase parentPage) { this(id, selectable, parentPage, null); } - public OrgTreeAssignablePanel(String id, boolean selectable, PageBase parentPage, IModel> selectedOrgsListModel){ + public OrgTreeAssignablePanel(String id, boolean selectable, PageBase parentPage, List selectedOrgsList){ super(id); this.selectable = selectable; - this.selectedOrgsListModel = selectedOrgsListModel; + this.selectedOrgsList = selectedOrgsList; setParent(parentPage); initLayout(); } @@ -81,8 +81,8 @@ protected IModel getCheckBoxValueModel(IModel> @Override public Boolean load() { boolean isSelected = false; - if (selectedOrgsListModel != null && selectedOrgsListModel.getObject() != null) { - for (OrgType org : selectedOrgsListModel.getObject()) + if (selectedOrgsList != null) { + for (OrgType org : selectedOrgsList) if (rowModel.getObject().getValue().getOid().equals(org.getOid())){ isSelected = true; break; From 8c2625f1eec0c52eb3eb18be87c802ce282c7f3f Mon Sep 17 00:00:00 2001 From: kate Date: Tue, 26 Jun 2018 13:32:34 +0200 Subject: [PATCH 3/5] resource assignment popup - kind&intent dropdown fixes --- .../ResourceTypeAssignmentPopupTabPanel.java | 60 +++++++------------ 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java index d7603cedf1f..27fee2f8aaf 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java @@ -57,7 +57,8 @@ public class ResourceTypeAssignmentPopupTabPanel extends AbstractAssignmentPopup private static final String ID_INTENT = "intent"; private LoadableModel> intentValues; - private String intentValue = ""; + private String intentValue; + private ShadowKindType kindValue; private static final String DOT_CLASS = ResourceTypeAssignmentPopupTabPanel.class.getName(); private static final Trace LOGGER = TraceManager.getTrace(ResourceTypeAssignmentPopupTabPanel.class); @@ -75,8 +76,8 @@ protected void initParametersPanel(){ add(kindContainer); DropDownChoicePanel kindSelector = WebComponentUtil.createEnumPanel(ShadowKindType.class, ID_KIND, - WebComponentUtil.createReadonlyModelFromEnum(ShadowKindType.class), Model.of(ShadowKindType.ACCOUNT), - ResourceTypeAssignmentPopupTabPanel.this, false); + WebComponentUtil.createReadonlyModelFromEnum(ShadowKindType.class), Model.of(), + ResourceTypeAssignmentPopupTabPanel.this, true); kindSelector.setOutputMarkupId(true); kindSelector.getBaseFormComponent().add(new AjaxFormComponentUpdatingBehavior("change") { private static final long serialVersionUID = 1L; @@ -103,24 +104,7 @@ public boolean isEnabled(){ add(intentContainer); DropDownChoicePanel intentSelector = new DropDownChoicePanel(ID_INTENT, - new IModel() { - private static final long serialVersionUID = 1L; - - @Override - public String getObject() { - return intentValue; - } - - @Override - public void setObject(String s) { - intentValue = s; - } - - @Override - public void detach() { - - } - }, intentValues); + Model.of(), intentValues, true); intentSelector.getBaseFormComponent().add(new VisibleEnableBehaviour(){ private static final long serialVersionUID = 1L; @@ -136,14 +120,6 @@ public boolean isEnabled(){ } - private DropDownChoicePanel getIntentDropDown(){ - return (DropDownChoicePanel)get(ID_INTENT_CONTAINER).get(ID_INTENT); - } - - private DropDownChoicePanel getKindDropDown(){ - return (DropDownChoicePanel)get(ID_KIND_CONTAINER).get(ID_KIND); - } - private void initModels(){ intentValues = new LoadableModel>(true) { private static final long serialVersionUID = 1L; @@ -180,14 +156,6 @@ protected List load() { }; } - public String getIntentValue(){ - return intentValue; - } - - public ShadowKindType getKindValue(){ - return getKindDropDown().getModel().getObject(); - } - @Override protected List getSelectedAssignmentsList(){ List assignmentList = new ArrayList<>(); @@ -201,6 +169,24 @@ protected List getSelectedAssignmentsList(){ return assignmentList; } + public ShadowKindType getKindValue(){ + DropDownChoicePanel kindDropDown = getKindDropDown(); + return kindDropDown.getModel() != null ? kindDropDown.getModel().getObject() : null; + } + + public String getIntentValue(){ + DropDownChoicePanel intentDropDown = getIntentDropDown(); + return intentDropDown.getModel() != null ? intentDropDown.getModel().getObject() : null; + } + + private DropDownChoicePanel getIntentDropDown(){ + return (DropDownChoicePanel)get(ID_INTENT_CONTAINER).get(ID_INTENT); + } + + private DropDownChoicePanel getKindDropDown(){ + return (DropDownChoicePanel)get(ID_KIND_CONTAINER).get(ID_KIND); + } + @Override protected void onSelectionPerformed(AjaxRequestTarget target){ target.add(getObjectListPanel()); From 64684547ff226a387d4911b0dce9bc9e35b255f2 Mon Sep 17 00:00:00 2001 From: Ivan Noris Date: Tue, 26 Jun 2018 14:02:41 +0200 Subject: [PATCH 4/5] Honor MIDPOINT_HOME env. variable for better support of non-embedded installations --- dist/src/main/bin/ninja.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/dist/src/main/bin/ninja.sh b/dist/src/main/bin/ninja.sh index f5159f6d31f..a5c8e5b935b 100755 --- a/dist/src/main/bin/ninja.sh +++ b/dist/src/main/bin/ninja.sh @@ -37,15 +37,17 @@ cd "$PRGDIR/.." >/dev/null cd "$SCRIPT_PATH/.." -if [ ! -d var ] ; then - echo "ERROR: midpoint.home directory desn't exist" - exit 1 -else - MIDPOINT_HOME=$(cd "$SCRIPT_PATH../var"; pwd) +# honor MIDPOINT_HOME variable if it exists! +if [ -z "$MIDPOINT_HOME" ]; then + if [ ! -d var ] ; then + echo "ERROR: midpoint.home directory desn't exist" + exit 1 + else + MIDPOINT_HOME=$(cd "$SCRIPT_PATH../var"; pwd) + fi + + [ -z "$MIDPOINT_HOME" ] && MIDPOINT_HOME=`cd "$SCRIPT_PATH../var" >/dev/null; pwd` fi - -[ -z "$MIDPOINT_HOME" ] && MIDPOINT_HOME=`cd "$SCRIPT_PATH../var" >/dev/null; pwd` - #cd "$SCRIPT_PATH../lib" if [ ! -f lib/ninja.jar ] ; then From 20824f7941ec47aec3c62f21b9e2a79ff55bb125 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Tue, 26 Jun 2018 14:43:48 +0200 Subject: [PATCH 5/5] changing some system configuration properties to container --- .../schema/util/AdminGuiConfigTypeUtil.java | 16 ++- .../xml/ns/public/common/common-core-3.xsd | 123 +++++++++++------- 2 files changed, 84 insertions(+), 55 deletions(-) diff --git a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java index e8fbd9f2250..57ccc573bd0 100644 --- a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java +++ b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/AdminGuiConfigTypeUtil.java @@ -15,8 +15,12 @@ */ package com.evolveum.midpoint.schema.util; +import com.evolveum.midpoint.prism.PrismContainerValue; import com.evolveum.midpoint.prism.PrismObject; +import com.evolveum.midpoint.prism.schema.SchemaProcessorUtil; +import com.evolveum.midpoint.prism.util.PrismUtil; import com.evolveum.midpoint.schema.constants.ObjectTypes; +import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.QNameUtil; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; @@ -57,8 +61,8 @@ private static void applyAdminGuiConfiguration(AdminGuiConfigurationType composi if (adminGuiConfiguration == null) { return; } - composite.getAdditionalMenuLink().addAll(adminGuiConfiguration.getAdditionalMenuLink()); - composite.getUserDashboardLink().addAll(adminGuiConfiguration.getUserDashboardLink()); + adminGuiConfiguration.getAdditionalMenuLink().stream().forEach(additionalMenuLink -> composite.getAdditionalMenuLink().add(additionalMenuLink.clone())); + adminGuiConfiguration.getUserDashboardLink().stream().forEach(userDashboardLink -> composite.getUserDashboardLink().add(userDashboardLink.clone())); if (adminGuiConfiguration.getDefaultTimezone() != null) { composite.setDefaultTimezone(adminGuiConfiguration.getDefaultTimezone()); } @@ -69,14 +73,14 @@ private static void applyAdminGuiConfiguration(AdminGuiConfigurationType composi composite.setEnableExperimentalFeatures(adminGuiConfiguration.isEnableExperimentalFeatures()); } if (adminGuiConfiguration.getDefaultExportSettings() != null) { - composite.setDefaultExportSettings(adminGuiConfiguration.getDefaultExportSettings()); + composite.setDefaultExportSettings(adminGuiConfiguration.getDefaultExportSettings().clone()); } if (adminGuiConfiguration.getObjectLists() != null) { if (composite.getObjectLists() == null) { composite.setObjectLists(adminGuiConfiguration.getObjectLists().clone()); } else { for (GuiObjectListViewType objectList: adminGuiConfiguration.getObjectLists().getObjectList()) { - mergeList(composite.getObjectLists(), objectList); + mergeList(composite.getObjectLists(), objectList.clone()); } } } @@ -85,7 +89,7 @@ private static void applyAdminGuiConfiguration(AdminGuiConfigurationType composi composite.setObjectForms(adminGuiConfiguration.getObjectForms().clone()); } else { for (ObjectFormType objectForm: adminGuiConfiguration.getObjectForms().getObjectForm()) { - joinForms(composite.getObjectForms(), objectForm); + joinForms(composite.getObjectForms(), objectForm.clone()); } } } @@ -108,7 +112,7 @@ private static void applyAdminGuiConfiguration(AdminGuiConfigurationType composi } } for (UserInterfaceFeatureType feature: adminGuiConfiguration.getFeature()) { - mergeFeature(composite.getFeature(), feature); + mergeFeature(composite.getFeature(), feature.clone()); } if (composite.getObjectLists() != null && composite.getObjectLists().getObjectList() != null){ for (GuiObjectListViewType objectListType : composite.getObjectLists().getObjectList()){ diff --git a/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd b/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd index b76e60bf48a..6cdfef0d7ff 100755 --- a/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd +++ b/infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd @@ -13711,7 +13711,6 @@ DEPRECATED. Use defaultObjectPolicyConfiguration instead. - true @@ -13725,9 +13724,6 @@ "universally" during all operations with specified object types - unless it is overridden in other definitions (e.g. in resource or org). - - - @@ -13895,6 +13891,7 @@ 3.6 + @@ -13998,6 +13995,9 @@ Various internals configuration elements. + + + @@ -14046,6 +14046,9 @@ Administration GUI configuration. Note: This complexType is NOT a container. We need to guarantee ordering of some sub-items (e.g. links) + + + @@ -14364,6 +14367,9 @@ where a link is used. Which parameter will be used depends on where exactly is the link used and how it is rendered (as an menu item, application launch button, etc.) + + + @@ -14776,6 +14782,9 @@ Specification of the way how projections are handled on the resource. This defines the ways how assignments are enforced and so on. + + + @@ -14920,6 +14929,9 @@ Configuration of logging levels, categories, log files, etc. + + + - - - - - Configuration of the logger: the facility that + + + + + Configuration of the logger: the facility that collects log messages from the code. - - - - + + + + Logger level - - - - TODO: packages are OR-ed - TODO: string, wildcards - allowed (* as in java) - - - @@ -15009,7 +15012,31 @@ - + + + + + + + Configuration of the logger: the facility that + collects log messages from the code. + + + + + + + + + TODO: packages are OR-ed + TODO: string, wildcards + allowed (* as in java) + + + + + + @@ -15019,32 +15046,21 @@ collects log messages from subsystem code. - - - - - Logger level - - - - - - - TODO: components are OR-ed - TODO: string, but there should be a way how to determine - list of valid categories. Maybe switch to enum later. - - - - - - - Appender name defined in appenders section in - logging configuration - - - - + + + + + + + TODO: components are OR-ed + TODO: string, but there should be a way how to determine + list of valid categories. Maybe switch to enum later. + + + + + + @@ -16942,6 +16958,9 @@ Configuration of cleanup intervals and policies for various midPoint subsystems. + + + @@ -16957,6 +16976,9 @@ Configuration of cleanup intervals and policies for a specific subsystem or feature. + + + @@ -17754,6 +17776,9 @@ A configuration for profiling features of midPoint. + + +