Skip to content

Commit

Permalink
fix mistakes after reviewing of commit for getNativeCapabilities method
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Jul 13, 2022
1 parent bcfcec1 commit 7304272
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.xml.ns._public.resource.capabilities_3.CapabilityCollectionType;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.LocaleUtils;
import org.apache.commons.lang3.StringEscapeUtils;
Expand Down Expand Up @@ -3160,6 +3162,18 @@ public static void partialConfigurationTest(@NotNull PrismObject<ResourceType> r
result.computeStatus();
}

public static CapabilityCollectionType getNativeCapabilities(ResourceType resource, PageBase pageBase) {
OperationResult result = new OperationResult("load native capabilities");
try {
return pageBase.getModelService().getNativeCapabilities(resource.getConnectorRef().getOid(), result);
} catch (ObjectNotFoundException | SchemaException
| CommunicationException | ConfigurationException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Error getting native capabilities", e);
result.recordFatalError(pageBase.createStringResource("WebComponentUtil.message.gettingNativeCapabilities.fatalError").getString(), e);
return new CapabilityCollectionType();
}
}

public static List<QName> getCategoryRelationChoices(AreaCategoryType category, List<RelationDefinitionType> defList) {
List<QName> relationsList = new ArrayList<>();
defList.sort(new Comparator<RelationDefinitionType>() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -742,9 +742,4 @@ public static PrismObject<SystemConfigurationType> loadSystemConfigurationAsPris

return systemConfig;
}

public static CapabilityCollectionType getNativeCapabilities(ResourceType resource, PageBase pageBase) {
OperationResult result = new OperationResult("load native capabilities");
return pageBase.getModelService().getNativeCapabilities(resource.getConnectorRef().getOid(), result);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.evolveum.midpoint.gui.api.component.wizard.WizardPanel;
import com.evolveum.midpoint.gui.api.component.wizard.WizardStep;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.DetailsFragment;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
Expand Down Expand Up @@ -130,7 +131,7 @@ public boolean onBackPerformed(AjaxRequestTarget target) {

if (connector != null && SchemaConstants.ICF_FRAMEWORK_URI.equals(connector.asObjectable().getFramework())) {
CapabilityCollectionType capabilities
= WebModelServiceUtils.getNativeCapabilities(getModelObjectType(), PageResource.this);
= WebComponentUtil.getNativeCapabilities(getModelObjectType(), PageResource.this);

if (capabilities.getDiscoverConfiguration() != null) {
steps.add(new PartialConfigurationStepPanel(getObjectDetailsModels()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
package com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.resource.ResourceDetailsModel;
import com.evolveum.midpoint.schema.result.OperationResult;
Expand Down Expand Up @@ -62,7 +63,7 @@ protected IModel<?> getSubTextModel() {
public boolean onNextPerformed(AjaxRequestTarget target) {

CapabilityCollectionType capabilities
= WebModelServiceUtils.getNativeCapabilities(getResourceModel().getObjectType(), getPageBase());
= WebComponentUtil.getNativeCapabilities(getResourceModel().getObjectType(), getPageBase());

if (capabilities.getSchema() != null || capabilities.getTestConnection() != null) {
PageBase pageBase = getPageBase();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.annotation.Experimental;
import com.evolveum.midpoint.util.exception.*;
import com.evolveum.midpoint.xml.ns._public.common.api_types_3.CompareResultType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand Down Expand Up @@ -492,8 +493,12 @@ OperationResult testResourcePartialConfiguration(PrismObject<ResourceType> resou
* Method work same as
* {@link com.evolveum.midpoint.provisioning.api.ProvisioningService#getNativeCapabilities(String, OperationResult)}.
* </p>
*
* EXPERIMENTAL feature.
*/
@NotNull CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult result);
@Experimental
@NotNull CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult result)
throws SchemaException, CommunicationException, ConfigurationException, ObjectNotFoundException;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1516,7 +1516,8 @@ public DiscoveredConfiguration discoverResourceConnectorConfiguration(
}

@Override
public @Nullable CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult result) {
public @Nullable CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult result)
throws SchemaException, CommunicationException, ConfigurationException, ObjectNotFoundException {
Validate.notNull(connOid, "ConnOid must not be null.");
LOGGER.trace("Getting native capabilities by connector oid: {}", connOid);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -773,8 +773,11 @@ void expandConfigurationObject(
/**
* Method create collection of capabilities which connector support.
*
* EXPERIMENTAL feature.
*
* @return Return supported operations for connector.
*/
@Experimental
CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult result);
CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult result)
throws SchemaException, CommunicationException, ConfigurationException, ObjectNotFoundException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -1151,7 +1151,8 @@ public void expandConfigurationObject(
}

@Override
public CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult parentResult) {
public CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, OperationResult parentResult)
throws SchemaException, CommunicationException, ConfigurationException, ObjectNotFoundException {
OperationResult result = parentResult.subresult(OP_GET_NATIVE_CAPABILITIES)
.addParam("connectorOid", connOid)
.addContext(OperationResult.CONTEXT_IMPLEMENTATION_CLASS, ProvisioningServiceImpl.class)
Expand All @@ -1162,10 +1163,6 @@ public CapabilityCollectionType getNativeCapabilities(@NotNull String connOid, O
LOGGER.debug("Finished getting native capabilities by connector oid {}:\n{}",
connOid, capabilities.debugDumpLazily(1));
return capabilities;
} catch (Exception e) {
LOGGER.warn("Failed while getting native capabilities: {}", e.getMessage(), e);
result.recordFatalError("Failed while getting native capabilities: " + e.getMessage(), e);
return new CapabilityCollectionType();
} catch (Throwable t) {
// This is more serious, like OutOfMemoryError and the like. We won't pretend it's OK.
result.recordFatalError(t);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -671,20 +671,12 @@ private boolean shouldBeGenerated(List<QName> generateObjectClasses, QName objec
return true;
}

boolean allIsNull = true;
for (QName objClassToGenerate : generateObjectClasses) {
if (objClassToGenerate != null) {
allIsNull = false;
if (objClassToGenerate.equals(objectClassXsdName)) {
return true;
}
if (objClassToGenerate.equals(objectClassXsdName)) {
return true;
}
}

if (allIsNull) {
return true;
}

return false;
}

Expand Down

0 comments on commit 7304272

Please sign in to comment.