From e5bf5888e0ce58142d0524774aed93a0dfa33441 Mon Sep 17 00:00:00 2001 From: kate Date: Tue, 26 Jun 2018 10:43:42 +0200 Subject: [PATCH 1/4] 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/4] 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/4] 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/4] 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