Skip to content

Commit

Permalink
TEIIDDES-2589 Added quick fix to update REST MED version.
Browse files Browse the repository at this point in the history
 * Upped rest.mxd to version 2 since "DESCRIPTION" property was added
previously
  • Loading branch information
blafond committed Dec 17, 2015
1 parent a5b0a4c commit 02ac4c8
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 13 deletions.
Expand Up @@ -57,6 +57,7 @@ public final class ModelExtensionDefinitionBuilder extends AbstractTeiidProjectB
public static final String HAS_LEGACY_NAMES = "hasLegacyNames"; //$NON-NLS-1$
public static final String HAS_OLD_REST_PREFIX = "hasOldRestPrefix"; //$NON-NLS-1$
public static final String IS_OLD_RELATIONAL_MED = "isOldRelationalMed"; //$NON-NLS-1$
public static final String IS_OLD_REST_VERSION_MED = "isOldRestVersionMed"; //$NON-NLS-1$

private ModelExtensionAssistantAggregator aggregator = ExtensionPlugin.getInstance().getModelExtensionAssistantAggregator();
private ModelExtensionRegistry registry = ExtensionPlugin.getInstance().getRegistry();
Expand Down Expand Up @@ -246,16 +247,17 @@ private void createMarker( IFile file,
UTIL.log(IStatus.ERROR, MED_VALIDATION_MSG + originalMessage);
}

Map attributes = new HashMap();
Map<String, Comparable> attributes = new HashMap<String, Comparable>();
attributes.put(IMarker.SEVERITY, severity);
attributes.put(IMarker.MESSAGE, message);
if(hasLegacyNames) attributes.put(HAS_LEGACY_NAMES, true);
if( message.indexOf("\"rest\"") > -1 && message.indexOf("is not registered in workspace") > -1 ) {
attributes.put(HAS_OLD_REST_PREFIX, true);
}
if( message.indexOf("definition \"relational\" found in model is a different version") > -1 ) {
if( message.indexOf("model extension definition \"relational\" found in model is a different version") > -1 ) {
attributes.put(IS_OLD_RELATIONAL_MED, true);

} else if( message.indexOf("model extension definition \"REST\" found in model is a different version") > -1 ) {
attributes.put(IS_OLD_REST_VERSION_MED, true);
}

try {
Expand Down
2 changes: 1 addition & 1 deletion plugins/org.teiid.designer.metamodels.relational/rest.mxd
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<modelExtension xmlns:p="http://www.jboss.org/teiiddesigner/ext/2012" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metamodelUri="http://www.metamatrix.com/metamodels/Relational" namespacePrefix="REST" namespaceUri="http://teiid.org/rest " version="1" xsi:schemaLocation="http://www.jboss.org/teiiddesigner/ext/2012 http://www.jboss.org/teiiddesigner/ext/2012/modelExtension.xsd" xmlns="http://www.jboss.org/teiiddesigner/ext/2012">
<modelExtension xmlns:p="http://www.jboss.org/teiiddesigner/ext/2012" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metamodelUri="http://www.metamatrix.com/metamodels/Relational" namespacePrefix="REST" namespaceUri="http://teiid.org/rest" version="2" xsi:schemaLocation="http://www.jboss.org/teiiddesigner/ext/2012 http://www.jboss.org/teiiddesigner/ext/2012/modelExtension.xsd" xmlns="http://www.jboss.org/teiiddesigner/ext/2012">
<p:description>REST extended virtual procedure properties</p:description>
<p:modelType>VIRTUAL</p:modelType>
<p:extendedMetaclass name="org.teiid.designer.metamodels.relational.impl.ProcedureImpl">
Expand Down
7 changes: 7 additions & 0 deletions plugins/org.teiid.designer.relational.ui/plugin.xml
Expand Up @@ -129,6 +129,13 @@
class="org.teiid.designer.relational.ui.extension.RelationalExtensionMarkerResolutionGenerator"
markerType="org.teiid.designer.extension.ui.medMarker">
<attribute name="isOldRelationalMed" value="true"/>
</markerResolutionGenerator>
</extension>
<extension point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
class="org.teiid.designer.relational.ui.extension.RestExtensionMarkerResolutionGenerator"
markerType="org.teiid.designer.extension.ui.medMarker">
<attribute name="isOldRestVersionMed" value="true"/>
</markerResolutionGenerator>
</extension>
</plugin>
Expand Up @@ -15,10 +15,9 @@ public IMarkerResolution[] getResolutions(IMarker marker) {
Collection<IMarkerResolution> resolutions = new ArrayList<IMarkerResolution>();

if( marker.getAttribute(IS_OLD_RELATIONAL_MED, false) ) {
resolutions.add(new RelationalExtensionVersionResolution());
resolutions.add(new RelationalExtensionVersionResolution("relational"));
}


return resolutions.toArray(new IMarkerResolution[resolutions.size()]);
}
}
Expand Up @@ -13,29 +13,33 @@
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IMarkerResolution;
import org.teiid.designer.core.workspace.ModelResource;
import org.teiid.designer.extension.ExtensionPlugin;
import org.teiid.designer.extension.ModelExtensionAssistantAggregator;
import org.teiid.designer.extension.definition.ModelExtensionAssistant;
import org.teiid.designer.extension.definition.ModelExtensionDefinition;
import org.teiid.designer.extension.definition.ModelExtensionDefinitionWriter;
import org.teiid.designer.extension.definition.ModelObjectExtensionAssistant;
import org.teiid.designer.metamodels.relational.extension.RelationalModelExtensionConstants;
import org.teiid.designer.metamodels.relational.extension.RestModelExtensionConstants;
import org.teiid.designer.relational.ui.Messages;
import org.teiid.designer.relational.ui.UiConstants;
import org.teiid.designer.relational.ui.UiPlugin;
import org.teiid.designer.ui.common.util.UiUtil;
import org.teiid.designer.ui.common.viewsupport.UiBusyIndicator;
import org.teiid.designer.ui.editors.ModelEditor;
import org.teiid.designer.ui.editors.ModelEditorManager;
import org.teiid.designer.ui.viewsupport.ModelUtilities;

public class RelationalExtensionVersionResolution implements IMarkerResolution {

private String medID;

/* (non-Javadoc)
public RelationalExtensionVersionResolution(String medID) {
super();
this.medID = medID;
}

/* (non-Javadoc)
* @see org.eclipse.ui.IMarkerResolution#getLabel()
*/
@Override
Expand Down Expand Up @@ -135,12 +139,20 @@ private void fixModelMed( IFile modelFile ) {

boolean modelNeedsSave = false;

String relationalNSPrefix = RelationalModelExtensionConstants.NAMESPACE_PROVIDER.getNamespacePrefix();
ModelExtensionAssistant assistant = null;

ModelExtensionAssistant assistant = ExtensionPlugin.getInstance().getRegistry().getModelExtensionAssistant(relationalNSPrefix);
if( medID.equalsIgnoreCase("relational") ) {
String nsPrefix = RelationalModelExtensionConstants.NAMESPACE_PROVIDER.getNamespacePrefix();

assistant = ExtensionPlugin.getInstance().getRegistry().getModelExtensionAssistant(nsPrefix);
} else if( medID.equalsIgnoreCase("rest") ) {
String nsPrefix = RestModelExtensionConstants.NAMESPACE_PROVIDER.getNamespacePrefix();

assistant = ExtensionPlugin.getInstance().getRegistry().getModelExtensionAssistant(nsPrefix);
}
// if assistant is null, it couldn't find in registry. Create a default assistant.
if (assistant == null) {
UiConstants.Util.log(IStatus.ERROR, "Relational MED not found in model" + modelFile.getName()); //NLS.bind(Messages.relationalExtensionNotFoundInModel, modelFile.getName()));
UiConstants.Util.log(IStatus.ERROR, medID + " MED not found in model" + modelFile.getName()); //NLS.bind(Messages.relationalExtensionNotFoundInModel, modelFile.getName()));
return;
}

Expand Down
@@ -0,0 +1,22 @@
package org.teiid.designer.relational.ui.extension;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.core.resources.IMarker;
import org.eclipse.ui.IMarkerResolution;
import org.eclipse.ui.IMarkerResolutionGenerator;

public class RestExtensionMarkerResolutionGenerator implements IMarkerResolutionGenerator {
private static final String IS_OLD_REST_VERSION_MED = "isOldRestVersionMed"; //$NON-NLS-1$
@Override
public IMarkerResolution[] getResolutions(IMarker marker) {
Collection<IMarkerResolution> resolutions = new ArrayList<IMarkerResolution>();

if( marker.getAttribute(IS_OLD_REST_VERSION_MED, false) ) {
resolutions.add(new RelationalExtensionVersionResolution("rest"));
}

return resolutions.toArray(new IMarkerResolution[resolutions.size()]);
}
}

0 comments on commit 02ac4c8

Please sign in to comment.