### Eclipse Workspace Patch 1.0 #P org.teiid.designer.core Index: src/com/metamatrix/modeler/internal/core/validation/ValidationRuleManager.java =================================================================== --- src/com/metamatrix/modeler/internal/core/validation/ValidationRuleManager.java (revision 1425) +++ src/com/metamatrix/modeler/internal/core/validation/ValidationRuleManager.java (working copy) @@ -17,6 +17,8 @@ import com.metamatrix.modeler.core.ModelerCore; import com.metamatrix.modeler.core.metamodel.aspect.AspectManager; import com.metamatrix.modeler.core.metamodel.aspect.ValidationAspect; +import com.metamatrix.modeler.core.metamodel.core.aspects.validation.rules.DeletedXmlRelationalExtensionRule; +import com.metamatrix.modeler.core.metamodel.core.aspects.validation.rules.DeletedXmlRelationalImportRule; import com.metamatrix.modeler.core.validation.ValidationContext; import com.metamatrix.modeler.core.validation.ValidationRule; import com.metamatrix.modeler.core.validation.ValidationRuleSet; @@ -39,6 +41,8 @@ private static final ValidationRule EOBJECT_UUID_RULE = new EObjectUuidRule(); private static final ValidationRule EMF_RESOURCE_RULE = new EmfResourceValidationRule(); private static final ValidationRule RESOURCE_IN_SCOPE_RULE = new ResourceInScopeValidationRule(); + private static final ValidationRule DELETED_XML_RELATIONAL_IMPORT_RULE = new DeletedXmlRelationalImportRule(); + private static final ValidationRule DELETED_XML_RELATIONAL_EXTENSION_RULE = new DeletedXmlRelationalExtensionRule(); private LRUCache cache; // ================================================================================== @@ -161,6 +165,8 @@ ruleSet.addRule(FILE_EXTENSION_RULE); ruleSet.addRule(TABLE_TRANFORMATION_RULE); ruleSet.addRule(EMF_RESOURCE_RULE); + ruleSet.addRule(DELETED_XML_RELATIONAL_IMPORT_RULE); + ruleSet.addRule(DELETED_XML_RELATIONAL_EXTENSION_RULE); } else if (eResource instanceof XSDResourceImpl) { //ruleSet.addRule(FILE_EXTENSION_RULE); } Index: src/com/metamatrix/modeler/core/metamodel/core/aspects/validation/rules/DeletedXmlRelationalExtensionRule.java =================================================================== --- src/com/metamatrix/modeler/core/metamodel/core/aspects/validation/rules/DeletedXmlRelationalExtensionRule.java (revision 0) +++ src/com/metamatrix/modeler/core/metamodel/core/aspects/validation/rules/DeletedXmlRelationalExtensionRule.java (revision 0) @@ -0,0 +1,45 @@ +package com.metamatrix.modeler.core.metamodel.core.aspects.validation.rules; + +import java.util.Iterator; +import java.util.List; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.emf.ecore.resource.Resource; + +import com.metamatrix.core.util.CoreArgCheck; +import com.metamatrix.metamodels.core.extension.XPackage; +import com.metamatrix.modeler.core.ModelerCore; +import com.metamatrix.modeler.core.validation.ResourceValidationRule; +import com.metamatrix.modeler.core.validation.ValidationContext; +import com.metamatrix.modeler.core.validation.ValidationProblem; +import com.metamatrix.modeler.core.validation.ValidationResult; +import com.metamatrix.modeler.internal.core.validation.ValidationProblemImpl; +import com.metamatrix.modeler.internal.core.validation.ValidationResultImpl; +import com.metamatrix.modeler.internal.core.workspace.ModelUtil; + +public class DeletedXmlRelationalExtensionRule implements ResourceValidationRule { + + @Override + public void validate(Resource resource, ValidationContext context) { + CoreArgCheck.isNotNull(resource); + CoreArgCheck.isNotNull(context); + if (ModelUtil.isModelFile(resource)) { + List contents = resource.getContents(); + for (final Iterator objIter = contents.iterator(); objIter.hasNext();) { + Object obj = objIter.next(); + if(obj instanceof XPackage) { + XPackage pkg = (XPackage)obj; + if(pkg.getName().equalsIgnoreCase("XMLSOAPExtension") || + pkg.getName().equalsIgnoreCase("XMLHTTPExtension") || + pkg.getName().equalsIgnoreCase("XMLFileExtension")) { + final ValidationResult result = new ValidationResultImpl(resource, context); + final ValidationProblem problem = new ValidationProblemImpl(0, + IStatus.ERROR, ModelerCore.Util.getString("DeletedXmlRelationalExtensionRule.invalidextension")); //$NON-NLS-1$); + result.addProblem(problem); + context.addResult(result); + } + } + } + } + } +} Index: src/com/metamatrix/modeler/core/i18n.properties =================================================================== --- src/com/metamatrix/modeler/core/i18n.properties (revision 1425) +++ src/com/metamatrix/modeler/core/i18n.properties (working copy) @@ -924,6 +924,8 @@ MetadataSearch.AllowableObjectUriFeature=Object URI DeprecatedMetamodelUriRule.metamodelURI_has_changed_please_resave_model=The model class URI, {0}, referenced in this model file has changed. Please resave the model file to update to the latest URI, {1} +DeletedXmlRelationalRule.invalidmodel=The {0} model extension is no longer supported. See the documentation on the XMLTABLE and XMLELEMENT functions. +DeletedXmlRelationalExtensionRule.invalidextension=This model extension is no longer supported. See the documentation on the XMLTABLE and XMLELEMENT functions. ###################### NewModelObjectHelperManager ###################### NewModelObjectHelperManager.loadHelperExtensionsErrorMessage=Problems creating extension for {0} Index: src/com/metamatrix/modeler/core/metamodel/core/aspects/validation/rules/DeletedXmlRelationalImportRule.java =================================================================== --- src/com/metamatrix/modeler/core/metamodel/core/aspects/validation/rules/DeletedXmlRelationalImportRule.java (revision 0) +++ src/com/metamatrix/modeler/core/metamodel/core/aspects/validation/rules/DeletedXmlRelationalImportRule.java (revision 0) @@ -0,0 +1,56 @@ +package com.metamatrix.modeler.core.metamodel.core.aspects.validation.rules; + +import java.util.Iterator; +import java.util.List; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.emf.ecore.resource.Resource; + +import com.metamatrix.core.util.CoreArgCheck; +import com.metamatrix.metamodels.core.ModelImport; +import com.metamatrix.modeler.core.ModelerCore; +import com.metamatrix.modeler.core.validation.ResourceValidationRule; +import com.metamatrix.modeler.core.validation.ValidationContext; +import com.metamatrix.modeler.core.validation.ValidationProblem; +import com.metamatrix.modeler.core.validation.ValidationResult; +import com.metamatrix.modeler.core.workspace.ModelWorkspaceException; +import com.metamatrix.modeler.internal.core.validation.ValidationProblemImpl; +import com.metamatrix.modeler.internal.core.validation.ValidationResultImpl; +import com.metamatrix.modeler.internal.core.workspace.ModelUtil; + +public class DeletedXmlRelationalImportRule implements ResourceValidationRule { + + @Override + public void validate(Resource resource, ValidationContext context) { + CoreArgCheck.isNotNull(resource); + CoreArgCheck.isNotNull(context); + if (ModelUtil.isModelFile(resource)) { + try { + if (ModelUtil.isPhysical(resource)) { + final List imports = ModelUtil.getModel(resource).getModelImports(); + for (final Iterator impIter = imports.iterator(); impIter + .hasNext();) { + final ModelImport imp = (ModelImport) impIter.next(); + if (imp.getName().equalsIgnoreCase("XMLFileConnectorExtensions") + || imp.getName().equalsIgnoreCase( + "XMLHttpConnectorExtensions") + || imp.getName().equalsIgnoreCase("XMLSOAPConnectorExtensions")) { + final ValidationResult result = new ValidationResultImpl(resource, context); + final ValidationProblem problem = new ValidationProblemImpl(0, + IStatus.ERROR, ModelerCore.Util.getString("DeletedXmlRelationalRule.invalidmodel", new String[]{imp.getName()})); //$NON-NLS-1$); + result.addProblem(problem); + context.addResult(result); + } + } + } + + } catch (ModelWorkspaceException e) { + ValidationResult result = new ValidationResultImpl(resource, resource); + ValidationProblem problem = new ValidationProblemImpl(IStatus.OK, IStatus.ERROR, e.getLocalizedMessage()); + result.addProblem(problem); + context.addResult(result); + } + } + } + +}