Skip to content

Commit

Permalink
Prisms tests passing.
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Oct 18, 2016
1 parent abe2faa commit 4daf2c4
Show file tree
Hide file tree
Showing 111 changed files with 2,380 additions and 2,497 deletions.
9 changes: 9 additions & 0 deletions build-system/pom.xml
Expand Up @@ -937,6 +937,15 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
<!--
<version>3.1.0</version>
<exclusions>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
</exclusions>
-->
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
Expand Down
Expand Up @@ -207,7 +207,7 @@ private <O extends ObjectType> List<ContainerWrapper<? extends Containerable>> c
ContainerStatus status = container == null ? ContainerStatus.ADDING : ContainerStatus.MODIFYING;
List<ContainerWrapper<? extends Containerable>> list = new ArrayList<>();
if (container == null) {
PrismContainerDefinition definition = getDefinition(object, objectDefinitionForEditing).findContainerDefinition(name);
PrismContainerDefinition<?> definition = getDefinition(object, objectDefinitionForEditing).findContainerDefinition(name);
container = definition.instantiate();
}

Expand Down Expand Up @@ -254,7 +254,7 @@ private <O extends ObjectType, C extends Containerable> 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;
Expand Down Expand Up @@ -330,7 +330,7 @@ private <O extends ObjectType> 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();
PrismContainerDefinition<ConnectorConfigurationType> definitionFixed = definition.clone();
((PrismContainerDefinitionImpl) definitionFixed).setMaxOccurs(1);

if (container == null) {
Expand All @@ -351,7 +351,7 @@ private <O extends ObjectType> 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();
}
Expand Down Expand Up @@ -402,7 +402,7 @@ private <O extends ObjectType> void addReportContainers(
if (container == null) {
PrismSchema schema = ReportTypeUtil.parseReportConfigurationSchema(
(PrismObject<ReportType>) object, object.getPrismContext());
PrismContainerDefinition definition = ReportTypeUtil.findReportConfigurationDefinition(schema);
PrismContainerDefinition<?> definition = ReportTypeUtil.findReportConfigurationDefinition(schema);
if (definition == null) {
return;
}
Expand Down
Expand Up @@ -17,8 +17,6 @@
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.marshaller.QueryConvertor;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
Expand Down Expand Up @@ -274,7 +272,7 @@ private ObjectFilter createAdvancedObjectFilter(PrismContext ctx) throws SchemaE
return null;
}

SearchFilterType search = ctx.parserFor(advancedQuery).parseAtomicValue(SearchFilterType.COMPLEX_TYPE);
SearchFilterType search = ctx.parserFor(advancedQuery).type(SearchFilterType.COMPLEX_TYPE).parseRealValue();
return QueryConvertor.parseFilter(search, type, ctx);
}

Expand Down
Expand Up @@ -131,7 +131,7 @@ private List<ContainerWrapper> createConfigContainerWrappers() throws SchemaExce
}

List<PrismContainerDefinition> 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());

Expand Down
Expand Up @@ -110,13 +110,13 @@ private void startPerformed(AjaxRequestTarget target) {

ScriptingExpressionType expression = null;
try {
Object parsed = getPrismContext().parserFor(bulkActionDto.getScript()).xml().parseAnyValue();
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 {
Expand Down
Expand Up @@ -183,13 +183,13 @@ private void executeMappingPerformed(AjaxRequestTarget target) {
try {
MappingEvaluationRequestType request;
if (StringUtils.isNotBlank(dto.getRequest())) {
request = getPrismContext().parserFor(dto.getRequest()).xml().parseAtomicValue(MappingEvaluationRequestType.COMPLEX_TYPE);
request = getPrismContext().parserFor(dto.getRequest()).xml().parseRealValue(MappingEvaluationRequestType.class);
} else {
request = new MappingEvaluationRequestType();
}

if (StringUtils.isNotBlank(dto.getMapping())) {
request.setMapping((MappingType) getPrismContext().parserFor(dto.getMapping()).xml().parseAtomicValue(MappingType.COMPLEX_TYPE));
request.setMapping(getPrismContext().parserFor(dto.getMapping()).xml().parseRealValue(MappingType.class));
}

MappingEvaluationResponseType response = getModelDiagnosticService().evaluateMapping(request, task, result);
Expand Down
Expand Up @@ -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.parserFor(queryText).xml().parseAtomicValue(QueryType.COMPLEX_TYPE);
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(),
Expand Down
Expand Up @@ -522,19 +522,14 @@ private void runConfirmPerformed(AjaxRequestTarget target, IModel<ReportDto> 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);
}
typeName = getPrismContext().getSchemaRegistry().determineTypeForClass(paramClass);
PrismPropertyDefinitionImpl def = new PrismPropertyDefinitionImpl<>(new QName(ReportConstants.NS_EXTENSION, paramDto.getName()), typeName, getPrismContext());
def.setDynamic(true);
def.setRuntimeSchema(true);
Expand Down
Expand Up @@ -23,7 +23,6 @@
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ExpressionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.MappingType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.prism.xml.ns._public.types_3.RawType;
import org.apache.commons.lang.StringUtils;
Expand Down Expand Up @@ -246,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.parserFor(xml).xml().parseAnyValueAsJAXBElement();
JAXBElement<?> newElement = context.parserFor(xml).xml().parseRealValueToJaxbElement();
expressionObject.getExpressionEvaluator().addAll(((ExpressionType) (newElement.getValue())).getExpressionEvaluator());
}
}
Expand Down
Expand Up @@ -28,7 +28,7 @@
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.prism.PrismPropertyDefinition;
import com.evolveum.midpoint.prism.PrismValue;
import com.evolveum.midpoint.prism.marshaller.XNodeProcessor;
import com.evolveum.midpoint.prism.xnode.RootXNode;
import com.evolveum.midpoint.prism.xnode.XNode;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.JAXBUtil;
Expand Down Expand Up @@ -95,8 +95,7 @@ public static <IV extends PrismValue,ID extends ItemDefinition> Item<IV,ID> pars
String contextDescription, PrismContext prismContext) throws SchemaException {

Item<IV,ID> output = null;
XNodeProcessor xnodeProcessor = prismContext.getXnodeProcessor();


for (Object valueElement: valueElements) {
if (!(valueElement instanceof JAXBElement<?>)) {
throw new SchemaException("Literal expression cannot handle element "+valueElement+" "+valueElement.getClass().getName()+" in "
Expand Down Expand Up @@ -131,11 +130,10 @@ public static <IV extends PrismValue,ID extends ItemDefinition> List<JAXBElement
if (item == null) {
return null;
}
XNodeProcessor xnodeProcessor = item.getPrismContext().getXnodeProcessor();
List<JAXBElement<RawType>> elements = new ArrayList<>(item.size());
for (PrismValue value : item.getValues()) {
XNode xnode = xnodeProcessor.serializeItemValue(value);
RawType rawType = new RawType(xnode, item.getPrismContext());
RootXNode xnode = item.getPrismContext().xnodeSerializer().serialize(value);
RawType rawType = new RawType(xnode.getSubnode(), item.getPrismContext());
JAXBElement<RawType> jaxbElement = new JAXBElement<>(SchemaConstants.C_VALUE, RawType.class, rawType);
elements.add(jaxbElement);
}
Expand Down
Expand Up @@ -284,7 +284,7 @@ public boolean isObjectCountingEnabled() {
}

@Override
public <T extends ItemDefinition> T findItemDefinition(QName name, Class<T> clazz, boolean caseInsensitive) {
public <T extends ItemDefinition> T findItemDefinition(@NotNull QName name, @NotNull Class<T> clazz, boolean caseInsensitive) {
T itemDef = structuralObjectClassDefinition.findItemDefinition(name, clazz, caseInsensitive);
if (itemDef == null) {
for(RefinedObjectClassDefinition auxiliaryObjectClassDefinition: auxiliaryObjectClassDefinitions) {
Expand All @@ -296,8 +296,13 @@ public <T extends ItemDefinition> T findItemDefinition(QName name, Class<T> claz
}
return itemDef;
}



@Override
public <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest,
@NotNull Class<ID> clazz) {
throw new UnsupportedOperationException(); // implement if needed
}

@Override
public Collection<? extends RefinedAttributeDefinition<?>> getAttributeDefinitions() {
if (auxiliaryObjectClassDefinitions.isEmpty()) {
Expand Down
Expand Up @@ -129,8 +129,9 @@ public String getNativeObjectClass() {
}

@Override
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull QName name) {
return refinedObjectClassDefinition.findItemDefinition(name);
public <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest,
@NotNull Class<ID> clazz) {
return refinedObjectClassDefinition.findNamedItemDefinition(firstName, rest, clazz);
}

@Override
Expand Down Expand Up @@ -174,12 +175,6 @@ public LayerRefinedObjectClassDefinition forLayer(LayerType layerType) {
return refinedObjectClassDefinition.forLayer(layerType);
}

@Override
public <C extends Containerable> PrismContainerDefinition<C> findContainerDefinition(
@NotNull QName name) {
return refinedObjectClassDefinition.findContainerDefinition(name);
}

@Override
public LayerRefinedAttributeDefinition<?> getDisplayNameAttribute() {
return substituteLayerRefinedAttributeDefinition(refinedObjectClassDefinition.getDisplayNameAttribute());
Expand All @@ -205,12 +200,6 @@ public Collection<? extends LayerRefinedAttributeDefinition<?>> getAllIdentifier
return substituteLayerRefinedAttributeDefinitionCollection(refinedObjectClassDefinition.getAllIdentifiers());
}

@Override
public <D extends ItemDefinition> D findItemDefinition(QName name, Class<D> clazz) {
D findItemDefinition = refinedObjectClassDefinition.findItemDefinition(name, clazz);
return (D) LayerRefinedAttributeDefinitionImpl.wrap((RefinedAttributeDefinition) findItemDefinition, layer);
}

@Override
public Collection<? extends LayerRefinedAttributeDefinition<?>> getSecondaryIdentifiers() {
return LayerRefinedAttributeDefinitionImpl.wrapCollection(refinedObjectClassDefinition.getSecondaryIdentifiers(), layer);
Expand Down Expand Up @@ -247,7 +236,7 @@ public ResourceAttributeContainer instantiate(QName name) {
}

@Override
public PrismPropertyDefinition findPropertyDefinition(QName name) {
public PrismPropertyDefinition findPropertyDefinition(@NotNull QName name) {
LayerRefinedAttributeDefinition def = findAttributeDefinition(name);
if (def != null) {
return def;
Expand Down Expand Up @@ -448,21 +437,11 @@ public ResourceAttributeContainerDefinition toResourceAttributeContainerDefiniti
return resourceAttributeContainerDefinition;
}

@Override
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull ItemPath path) {
return refinedObjectClassDefinition.findItemDefinition(path);
}

@Override
public Collection<QName> getNamesOfAssociations() {
return refinedObjectClassDefinition.getNamesOfAssociations();
}

@Override
public <T> PrismPropertyDefinition<T> findPropertyDefinition(@NotNull ItemPath path) {
return refinedObjectClassDefinition.findPropertyDefinition(path);
}

@Override
public ResourceAttributeContainerDefinition toResourceAttributeContainerDefinition(QName elementName) {
ResourceAttributeContainerDefinition resourceAttributeContainerDefinition = refinedObjectClassDefinition.toResourceAttributeContainerDefinition(elementName);
Expand Down Expand Up @@ -539,7 +518,8 @@ public RefinedAssociationDefinition findAssociation(QName name) {
@Override
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull QName name, @NotNull Class<ID> clazz,
boolean caseInsensitive) {
return refinedObjectClassDefinition.findItemDefinition(name, clazz, caseInsensitive);
ID def = refinedObjectClassDefinition.findItemDefinition(name, clazz, caseInsensitive);
return (ID) LayerRefinedAttributeDefinitionImpl.wrap((RefinedAttributeDefinition) def, layer);
}

@Override
Expand Down Expand Up @@ -652,12 +632,6 @@ public ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaExce
return refinedObjectClassDefinition.createShadowSearchQuery(resourceOid);
}

@Override
public <C extends Containerable> PrismContainerDefinition<C> findContainerDefinition(
@NotNull ItemPath path) {
return refinedObjectClassDefinition.findContainerDefinition(path);
}

@Override
public void revive(PrismContext prismContext) {
refinedObjectClassDefinition.revive(prismContext);
Expand Down
Expand Up @@ -16,6 +16,7 @@

package com.evolveum.midpoint.common.refinery;

import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
import com.evolveum.midpoint.prism.schema.PrismSchema;
Expand All @@ -26,6 +27,7 @@
import com.evolveum.midpoint.util.DebugDumpable;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LayerType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowKindType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;

Expand Down Expand Up @@ -88,4 +90,13 @@ default PrismObjectDefinition<ShadowType> getObjectDefinition(ShadowKindType kin
ObjectClassComplexTypeDefinition findObjectClassDefinition(QName objectClassQName);

LayerRefinedResourceSchema forLayer(LayerType layer);

static RefinedResourceSchema getRefinedSchema(PrismObject<ResourceType> resource) throws SchemaException {
return RefinedResourceSchemaImpl.getRefinedSchema(resource);
}

static ResourceSchema getResourceSchema(PrismObject<ResourceType> resource, PrismContext prismContext)
throws SchemaException {
return RefinedResourceSchemaImpl.getRefinedSchema(resource, prismContext);
}
}
4 changes: 4 additions & 0 deletions infra/prism-maven-plugin/pom.xml
Expand Up @@ -68,6 +68,10 @@
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations-java5</artifactId>
</dependency>

</dependencies>
<build>
Expand Down

0 comments on commit 4daf2c4

Please sign in to comment.