Skip to content

Commit

Permalink
Hide prism from modules, part 5: compilable again
Browse files Browse the repository at this point in the history
Now schema and common see prism-impl; but ResourceXXX and RefinedXXX
impl classes are not visible outside of these modules, so there are
no external dependencies on prism-impl.

Tests are to be executed.
  • Loading branch information
mederly committed Dec 6, 2018
1 parent a60c204 commit b86cb62
Show file tree
Hide file tree
Showing 41 changed files with 503 additions and 148 deletions.
Expand Up @@ -19,11 +19,10 @@
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.NonEmptyModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
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.processor.*;
import com.evolveum.midpoint.schema.processor.ObjectFactory;
import com.evolveum.midpoint.schema.util.ResourceTypeUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
Expand All @@ -45,7 +44,6 @@
import com.evolveum.midpoint.web.page.admin.resources.PageResources;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
Expand Down Expand Up @@ -463,7 +461,10 @@ private ResourceSchema loadResourceSchema() {
}

try {
return ResourceSchemaImpl.parse(xsdSchema, resource.toString(), getPageBase().getPrismContext());
PrismContext prismContext = getPageBase().getPrismContext();
MutableResourceSchema schema = ObjectFactory.createResourceSchema(null, prismContext);
schema.parseThis(xsdSchema, resource.toString(), prismContext);
return schema;
} catch (SchemaException|RuntimeException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse resource schema.", e);
getSession().error(getString("ResourceAssociationEditor.message.cantParseSchema") + " " + e.getMessage());
Expand Down
Expand Up @@ -18,14 +18,13 @@
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.NonEmptyModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.util.ItemPathTypeUtil;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
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.processor.*;
import com.evolveum.midpoint.schema.processor.ObjectFactory;
import com.evolveum.midpoint.schema.util.ResourceTypeUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
Expand Down Expand Up @@ -485,14 +484,17 @@ public int compare(ItemPathType o1, ItemPathType o2) {
}

private ResourceSchema loadResourceSchema() {
if(resource != null){
PrismContext prismContext = getPageBase().getPrismContext();
if (resource != null) {
Element xsdSchema = ResourceTypeUtil.getResourceXsdSchema(resource);
if (xsdSchema == null) {
return null;
}

try {
return ResourceSchemaImpl.parse(xsdSchema, resource.toString(), getPageBase().getPrismContext());
MutableResourceSchema schema = ObjectFactory.createResourceSchema(null, prismContext);
schema.parseThis(xsdSchema, resource.toString(), prismContext);
return schema;
} catch (SchemaException|RuntimeException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse resource schema.", e);
getSession().error(getString("ResourceAttributeEditor.message.cantParseSchema") + " " + e.getMessage());
Expand Down
Expand Up @@ -21,6 +21,7 @@
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.ResourceShadowDiscriminator;
import com.evolveum.midpoint.schema.processor.MutableObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinitionImpl;
import com.evolveum.midpoint.schema.processor.ResourceAttributeContainer;
Expand Down Expand Up @@ -757,7 +758,7 @@ public void trimTo(@NotNull Collection<ItemPath> paths) {
}

@Override
public MutableComplexTypeDefinition toMutable() {
public MutableObjectClassComplexTypeDefinition toMutable() {
throw new UnsupportedOperationException();
}

Expand Down
Expand Up @@ -27,10 +27,7 @@
import com.evolveum.midpoint.prism.delta.PropertyDelta;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceAttribute;
import com.evolveum.midpoint.schema.processor.ResourceAttributeContainerDefinition;
import com.evolveum.midpoint.schema.processor.ResourceAttributeDefinition;
import com.evolveum.midpoint.schema.processor.*;
import com.evolveum.midpoint.util.DebugUtil;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AttributeFetchStrategyType;
Expand Down Expand Up @@ -323,7 +320,7 @@ public Class getTypeClass() {
}

@Override
public MutablePrismPropertyDefinition<T> toMutable() {
public MutableResourceAttributeDefinition<T> toMutable() {
throw new UnsupportedOperationException();
}

Expand Down
Expand Up @@ -20,10 +20,7 @@
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.ResourceShadowDiscriminator;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinitionImpl;
import com.evolveum.midpoint.schema.processor.ResourceAttributeContainer;
import com.evolveum.midpoint.schema.processor.ResourceAttributeDefinition;
import com.evolveum.midpoint.schema.processor.*;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand Down Expand Up @@ -671,7 +668,7 @@ public void trimTo(@NotNull Collection<ItemPath> paths) {
}

@Override
public MutableComplexTypeDefinition toMutable() {
public MutableObjectClassComplexTypeDefinition toMutable() {
throw new UnsupportedOperationException();
}

Expand Down
Expand Up @@ -17,6 +17,7 @@

import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.schema.ResourceShadowDiscriminator;
import com.evolveum.midpoint.schema.processor.MutableResourceSchema;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceSchema;
import com.evolveum.midpoint.util.DebugUtil;
Expand Down Expand Up @@ -273,4 +274,8 @@ public ObjectClassComplexTypeDefinition findDefaultObjectClassDefinition(
return refinedResourceSchema.findDefaultObjectClassDefinition(kind);
}

@Override
public MutableResourceSchema toMutable() {
throw new UnsupportedOperationException();
}
}
Expand Up @@ -1362,7 +1362,7 @@ public void trimTo(@NotNull Collection<ItemPath> paths) {
}

@Override
public MutableComplexTypeDefinition toMutable() {
public MutableObjectClassComplexTypeDefinition toMutable() {
throw new UnsupportedOperationException();
}

Expand All @@ -1386,4 +1386,5 @@ public Integer getInstantiationOrder() {
return null;
}


}
Expand Up @@ -19,6 +19,7 @@
import com.evolveum.midpoint.schema.ResourceShadowDiscriminator;
import com.evolveum.midpoint.schema.internals.InternalCounters;
import com.evolveum.midpoint.schema.internals.InternalMonitor;
import com.evolveum.midpoint.schema.processor.MutableResourceSchema;
import com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition;
import com.evolveum.midpoint.schema.processor.ResourceSchema;
import com.evolveum.midpoint.schema.processor.ResourceSchemaImpl;
Expand Down Expand Up @@ -602,5 +603,8 @@ public static void validateRefinedSchema(RefinedResourceSchema refinedSchema, Pr
}
}


@Override
public MutableResourceSchema toMutable() {
throw new UnsupportedOperationException();
}
}
Expand Up @@ -33,7 +33,7 @@ public interface MutableComplexTypeDefinition extends ComplexTypeDefinition, Mut
MutablePrismPropertyDefinition<?> createPropertyDefinition(String name, QName typeName);

@NotNull
MutableComplexTypeDefinition clone();
ComplexTypeDefinition clone();

void setExtensionForType(QName type);

Expand Down
Expand Up @@ -31,7 +31,7 @@ public interface MutablePrismPropertyDefinition<T> extends PrismPropertyDefiniti

@NotNull
@Override
MutablePrismPropertyDefinition<T> clone();
PrismPropertyDefinition<T> clone();

void setInherited(boolean value);
}
Expand Up @@ -116,7 +116,7 @@ public boolean isEmpty() {

@Override
@NotNull
public MutableComplexTypeDefinition clone() {
public ComplexTypeDefinition clone() {
return inner.clone();
}

Expand Down
Expand Up @@ -95,7 +95,7 @@ public PrismProperty<T> instantiate(QName name) {

@Override
@NotNull
public MutablePrismPropertyDefinition<T> clone() {
public PrismPropertyDefinition<T> clone() {
return inner.clone();
}

Expand Down
@@ -0,0 +1,60 @@
/*
* Copyright (c) 2010-2018 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.evolveum.midpoint.schema.processor;

import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.MutableComplexTypeDefinition;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowKindType;

import javax.xml.namespace.QName;

/**
*
*/
public interface MutableObjectClassComplexTypeDefinition extends ObjectClassComplexTypeDefinition, MutableComplexTypeDefinition {
void add(ItemDefinition<?> definition);

void addPrimaryIdentifier(ResourceAttributeDefinition<?> identifier);

void addSecondaryIdentifier(ResourceAttributeDefinition<?> identifier);

void setDescriptionAttribute(ResourceAttributeDefinition<?> descriptionAttribute);

void setNamingAttribute(ResourceAttributeDefinition<?> namingAttribute);

void setNamingAttribute(QName namingAttribute);

void setNativeObjectClass(String nativeObjectClass);

void setAuxiliary(boolean auxiliary);

void setKind(ShadowKindType kind);

void setDefaultInAKind(boolean defaultAccountType);

void setIntent(String intent);

void setDisplayNameAttribute(ResourceAttributeDefinition<?> displayName);

void setDisplayNameAttribute(QName displayName);

<X> ResourceAttributeDefinitionImpl<X> createAttributeDefinition(QName name, QName typeName);

<X> ResourceAttributeDefinitionImpl<X> createAttributeDefinition(String localName, QName typeName);

<X> ResourceAttributeDefinition<X> createAttributeDefinition(String localName, String localTypeName);
}
@@ -0,0 +1,31 @@
/*
* Copyright (c) 2010-2018 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.evolveum.midpoint.schema.processor;

import com.evolveum.midpoint.prism.MutablePrismPropertyDefinition;

/**
*
*/
public interface MutableResourceAttributeDefinition<T> extends ResourceAttributeDefinition<T>, MutablePrismPropertyDefinition<T> {

void setReturnedByDefault(Boolean returnedByDefault);

void setNativeAttributeName(String nativeAttributeName);

void setFrameworkAttributeName(String frameworkAttributeName);
}
@@ -0,0 +1,36 @@
/*
* Copyright (c) 2010-2018 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.evolveum.midpoint.schema.processor;

import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.schema.MutablePrismSchema;
import com.evolveum.midpoint.util.exception.SchemaException;
import org.w3c.dom.Element;

import javax.xml.namespace.QName;

/**
*
*/
public interface MutableResourceSchema extends ResourceSchema, MutablePrismSchema {

MutableObjectClassComplexTypeDefinition createObjectClassDefinition(String localTypeName);

MutableObjectClassComplexTypeDefinition createObjectClassDefinition(QName typeName);

void parseThis(Element xsdSchema, String shortDesc, PrismContext prismContext) throws SchemaException;
}
Expand Up @@ -18,7 +18,6 @@

import com.evolveum.midpoint.prism.ComplexTypeDefinition;
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.PrismPropertyDefinition;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.util.ObjectQueryUtil;
Expand Down Expand Up @@ -228,7 +227,7 @@ default ResourceAttributeContainerDefinition toResourceAttributeContainerDefinit
}

default ResourceAttributeContainerDefinition toResourceAttributeContainerDefinition(QName elementName) {
return new ResourceAttributeContainerDefinitionImpl(elementName, this, getPrismContext());
return ObjectFactory.createResourceAttributeContainerDefinition(elementName, this, getPrismContext());
}

default ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaException {
Expand All @@ -245,4 +244,6 @@ default ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaExc
ObjectClassComplexTypeDefinition deepClone(Map<QName, ComplexTypeDefinition> ctdMap, Map<QName, ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction);

boolean matches(ShadowType shadowType);

MutableObjectClassComplexTypeDefinition toMutable();
}

0 comments on commit b86cb62

Please sign in to comment.