Bug 527715 - M3: Duplicate "Validate" menu action
Summary: M3: Duplicate "Validate" menu action
Status: NEW
Alias: None
Product: WTP Common Tools
Classification: WebTools
Component: wst.validation (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows NT
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: wst.validation CLA
QA Contact: Chuck Bridgham CLA
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2017-11-24 05:20 EST by Ed Willink CLA
Modified: 2018-03-28 02:13 EDT (History)
3 users (show)

See Also:


Attachments
Menu, spy screenshots (128.40 KB, image/png)
2017-11-24 10:22 EST, Ed Willink CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Willink CLA 2017-11-24 05:20:27 EST
EMF has provided a Validate menu action for many years.

Using the M3 platform I now see two Validate menu actions. The Menu plugin spy tells be that the lower one between "Debug As" and "Team" is contributed by org.eclipse.ui.workbench.

This is going to be very confusing for EMF users, which arguably includes all platform users.

The new Validate action does not appear to be a simple duplicate since it reports no problems when the EMF Validate reports problems.

It seems that either the platform "Validate" should rename to avoid the conflict or a validation API should enable the EMF Validate to extend the platform facility.
Comment 1 Dani Megert CLA 2017-11-24 09:50:05 EST
Ed, can you provide more details please? Screenshot, build ID etc.
Comment 2 Ed Willink CLA 2017-11-24 10:22:56 EST
Created attachment 271632 [details]
Menu, spy screenshots

First 264 lines of configuration below.

I see the same problem on another machine that is a straight M3 base.

*** Date: Friday, 24 November 2017 at 15:17:56 Greenwich Mean Time

*** Platform Details:

*** System properties:
ant.home=E:\Tools\Eclipse\4.8M3+\plugins\org.apache.ant_1.10.1.v20170504-0840
ant.library.dir=E:\Tools\Eclipse\4.8M3+\plugins\org.apache.ant_1.10.1.v20170504-0840\lib
applicationXMI=org.eclipse.ui.workbench/LegacyIDE.e4xmi
awt.toolkit=sun.awt.windows.WToolkit
ds.delayed.keepInstances=true
eclipse.ant.noInput=true
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=4.8.0.I20171106-2000
eclipse.commands=-os
win32
-ws
win32
-arch
x86_64
-showsplash
-launcher
E:\Tools\Eclipse\4.8M3+\eclipse.exe
-name
Eclipse
--launcher.library
E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.600.v20170921-0935\eclipse_1627.dll
-startup
E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.appendVmargs
-exitdata
1a68_d0
-clean
-data
E:\Development\Rusa\Workspace
-vm
C:\Program Files\Java\jdk1.8.0_144\bin\javaw.exe
eclipse.home.location=file:/E:/Tools/Eclipse/4.8M3+/
eclipse.launcher=E:\Tools\Eclipse\4.8M3+\eclipse.exe
eclipse.launcher.name=Eclipse
eclipse.p2.data.area=@config.dir/../p2/
eclipse.p2.profile=SDKProfile
eclipse.product=org.eclipse.sdk.ide
eclipse.startTime=1511341931835
eclipse.stateSaveDelayInterval=30000
eclipse.vm=C:\Program Files\Java\jdk1.8.0_144\bin\javaw.exe
eclipse.vmargs=-Dosgi.requiredJavaVersion=1.8
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx1024m
-Xmx4g
-XX:PermSize=100M
-XX:MaxPermSize=300M
-Xrunjdwp:server=y,transport=dt_socket,address=14143,suspend=n
-jar
E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
equinox.init.uuid=true
equinox.use.ds=true
file.encoding=Cp1252
file.encoding.pkg=sun.io
file.separator=\
gosh.args=--nointeractive
guice.disable.misplaced.annotation.check=true
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.awt.printerjob=sun.awt.windows.WPrinterJob
java.class.path=E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
java.class.version=52.0
java.endorsed.dirs=C:\Program Files\Java\jdk1.8.0_144\jre\lib\endorsed
java.ext.dirs=C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
java.home=C:\Program Files\Java\jdk1.8.0_144\jre
java.io.tmpdir=C:\Users\Edward\AppData\Local\Temp\
java.library.path=C:\Program Files\Java\jdk1.8.0_144\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\Program Files\TortoiseSVN\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Graphviz2.38\bin;C:\Program Files (x86)\Skype\Phone\;c:\Program Files\Saxonica\SaxonHE9.4N\bin;C:\Program Files (x86)\Graphviz2.38\bin;E:\Tools\Maven\apache-maven-3.3.9\bin;C:\Users\Edward\AppData\Local\Microsoft\WindowsApps;;.
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.8.0_144-b01
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=1.8
java.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
java.version=1.8.0_144
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=1.8
java.vm.vendor=Oracle Corporation
java.vm.version=25.144-b01
line.separator=

org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
org.eclipse.debug.ui.breakpoints.toggleFactoriesUsed=false
org.eclipse.debug.ui.debugViewToolbarVisible=false
org.eclipse.equinox.launcher.splash.location=e:\Tools\Eclipse\4.8M3+\plugins\org.eclipse.platform_4.8.0.v20171106-2000\splash.bmp
org.eclipse.equinox.simpleconfigurator.configUrl=file:org.eclipse.equinox.simpleconfigurator/bundles.info
org.eclipse.jdt.debug.ui.debuggerActive=false
org.eclipse.jdt.debug.ui.instanceof.IJavaStackFrame=false
org.eclipse.jdt.debug.ui.supportsForceReturn=false
org.eclipse.jdt.debug.ui.supportsInstanceRetrieval=false
org.eclipse.swt.internal.deviceZoom=100
org.eclipse.update.reconcile=false
org.eclipse.update.resolution_url=
org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1,OSGi/Minimum-1.2,JavaSE/compact1-1.8,JavaSE/compact2-1.8,JavaSE/compact3-1.8,JRE-1.1,J2SE-1.2,J2SE-1.3,J2SE-1.4,J2SE-1.5,JavaSE-1.6,JavaSE-1.7,JavaSE-1.8
org.osgi.framework.language=en
org.osgi.framework.os.name=Windows10
org.osgi.framework.os.version=10.0.0
org.osgi.framework.processor=x86-64
org.osgi.framework.storage=E:\Tools\Eclipse\4.8M3+\configuration
org.osgi.framework.system.capabilities=osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0, 1.1, 1.2",osgi.ee; osgi.ee="JRE"; version:List<Version>="1.0, 1.1",osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8",osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8",osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8",osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8"
org.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.auth.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.nimbus,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.transaction,javax.transaction.xa,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml.parsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.ws.spi.http,javax.xml.ws.wsaddressing,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.portable,org.omg.CORBA.TypeCodePackage,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.POAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServer.portable,org.omg.PortableServer.ServantLocatorPackage,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.w3c.dom.xpath,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers
org.osgi.framework.uuid=915e3549-30eb-4bfe-890a-aa6ced436d86
org.osgi.framework.vendor=Eclipse
org.osgi.framework.version=1.9.0
org.osgi.supports.framework.extension=true
org.osgi.supports.framework.fragment=true
org.osgi.supports.framework.requirebundle=true
os.arch=amd64
os.name=Windows 10
os.version=10.0
osgi.arch=x86_64
osgi.bundles=reference:file:org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513.jar,reference:file:org.eclipse.equinox.simpleconfigurator_1.3.0.v20171007-0939.jar@1:start
osgi.bundles.defaultStartLevel=4
osgi.clean=true
osgi.compatibility.bootdelegation=true
osgi.compatibility.bootdelegation.default=true
osgi.configuration.area=file:/E:/Tools/Eclipse/4.8M3+/configuration/
osgi.dataAreaRequiresExplicitInit=true
osgi.framework=file:/e:/Tools/Eclipse/4.8M3+/plugins/org.eclipse.osgi_3.13.0.v20171103-1544.jar
osgi.framework.extensions=reference:file:org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513.jar
osgi.framework.shape=jar
osgi.framework.useSystemProperties=true
osgi.frameworkClassPath=., file:e:/Tools/Eclipse/4.8M3+/plugins/org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513.jar
osgi.install.area=file:/E:/Tools/Eclipse/4.8M3+/
osgi.instance.area=file:/E:/Development/Rusa/Workspace/
osgi.instance.area.default=file:/C:/Users/Edward/workspace/
osgi.logfile=E:\Development\Rusa\Workspace\.metadata\.log
osgi.nl=en_GB
osgi.os=win32
osgi.requiredJavaVersion=1.8
osgi.splashLocation=e:\Tools\Eclipse\4.8M3+\plugins\org.eclipse.platform_4.8.0.v20171106-2000\splash.bmp
osgi.splashPath=platform:/base/plugins/org.eclipse.platform
osgi.syspath=e:\Tools\Eclipse\4.8M3+\plugins
osgi.tracefile=E:\Development\Rusa\Workspace\.metadata\trace.log
osgi.ws=win32
path.separator=;
sun.arch.data.model=64
sun.boot.class.path=C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\classes
sun.boot.library.path=C:\Program Files\Java\jdk1.8.0_144\jre\bin
sun.cpu.endian=little
sun.cpu.isalist=amd64
sun.desktop=windows
sun.io.unicode.encoding=UnicodeLittle
sun.java.command=E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar -os win32 -ws win32 -arch x86_64 -showsplash -launcher E:\Tools\Eclipse\4.8M3+\eclipse.exe -name Eclipse --launcher.library E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.600.v20170921-0935\eclipse_1627.dll -startup E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.appendVmargs -exitdata 1a68_d0 -clean -data E:\Development\Rusa\Workspace -vm C:\Program Files\Java\jdk1.8.0_144\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.8 -Dosgi.requiredJavaVersion=1.8 -Dosgi.dataAreaRequiresExplicitInit=true -Xms256m -Xmx1024m -Xmx4g -XX:PermSize=100M -XX:MaxPermSize=300M -Xrunjdwp:server=y,transport=dt_socket,address=14143,suspend=n -jar E:\Tools\Eclipse\4.8M3+\\plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
sun.java.launcher=SUN_STANDARD
sun.jnu.encoding=Cp1252
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.net.client.defaultConnectTimeout=15000
sun.net.client.defaultReadTimeout=1000
sun.os.patch.level=
user.country=GB
user.dir=E:\Development\Rusa\Temp
user.home=C:\Users\Edward
user.language=en
user.name=Edward
user.script=
user.timezone=Europe/London
user.variant=

*** Features:
org.eclipse.cvs (1.4.500.v20171106-2000) "Eclipse CVS Client"
org.eclipse.egit (4.9.0.201710072145) "Git integration for Eclipse"
org.eclipse.emf (2.14.0.v20170912-0518) "EMF - Eclipse Modeling Framework Runtime and Tools"
org.eclipse.emf.codegen (2.13.0.v20170912-0518) "EMF Code Generation"
org.eclipse.emf.codegen.ecore (2.14.0.v20170912-0518) "EMF Ecore Code Generator"
org.eclipse.emf.codegen.ecore.ui (2.14.0.v20170912-0518) "EMF Ecore Code Generator UI"
org.eclipse.emf.codegen.ui (2.8.0.v20170912-0518) "EMF Code Generation UI"
org.eclipse.emf.common (2.14.0.v20170912-0312) "EMF Common"
org.eclipse.emf.common.ui (2.13.0.v20170912-0518) "EMF Common UI"
org.eclipse.emf.converter (2.13.0.v20170912-0518) "EMF Model Converter"
org.eclipse.emf.databinding (1.5.0.v20170912-0518) "EMF Data Binding"
org.eclipse.emf.databinding.edit (1.5.0.v20170912-0518) "EMF Edit Data Binding"
org.eclipse.emf.doc (2.12.0.v20170912-0518) "EMF Documentation"
org.eclipse.emf.ecore (2.14.0.v20170912-0312) "EMF Ecore"
org.eclipse.emf.ecore.edit (2.9.0.v20170912-0518) "EMF Ecore Edit"
org.eclipse.emf.ecore.editor (2.14.0.v20170912-0518) "EMF Sample Ecore Editor"
org.eclipse.emf.edit (2.13.0.v20170912-0518) "EMF Edit"
org.eclipse.emf.edit.ui (2.14.0.v20170912-0518) "EMF Edit UI"
org.eclipse.emf.mapping (2.9.0.v20170912-0518) "EMF Mapping"
org.eclipse.emf.mapping.ecore (2.9.0.v20170912-0518) "EMF Ecore Mapping"
org.eclipse.emf.mapping.ecore.editor (2.10.0.v20170912-0518) "EMF Ecore Mapping Editor"
org.eclipse.emf.mapping.ui (2.10.0.v20170912-0518) "EMF Mapping UI"
org.eclipse.emf.validation (1.11.0.201706061352) "EMF Validation Framework Core"
org.eclipse.help (2.2.200.v20171106-2000) "Help System Base"
org.eclipse.jdt (3.14.0.v20171106-2000) "Eclipse Java Development Tools"
org.eclipse.jgit (4.9.0.201710062247) "JGit Core"
org.eclipse.m2e.feature (1.8.0.20170516-2043) "Maven Integration for Eclipse"
org.eclipse.m2m.atl (3.8.0.v201705182014) "ATL - ATL Transformation Language"
org.eclipse.m2m.atl.doc (3.8.0.v201705182014) "ATL Documentation"
org.eclipse.m2m.atl.emftvm (3.8.0.v201705182014) "ATL EMFTVM"
org.eclipse.m2m.atl.examples (3.8.0.v201705182014) "ATL Examples"
org.eclipse.m2m.qvt.oml (3.8.0.v20171024-1750) "QVT Operational Core"
org.eclipse.m2m.qvt.oml.debug (2.8.0.v20171024-1750) "QVT Operational Debug"
org.eclipse.m2m.qvt.oml.debug.source (2.8.0.v20171024-1750) "QVT Operational Debug"
org.eclipse.m2m.qvt.oml.doc (3.8.0.v20171024-1750) "QVT Operational Documentation"
org.eclipse.m2m.qvt.oml.editor (3.8.0.v20171024-1750) "QVT Operational Editor"
org.eclipse.m2m.qvt.oml.editor.jdt (3.8.0.v20171024-1750) "QVT Operational JDT"
org.eclipse.m2m.qvt.oml.editor.jdt.source (3.8.0.v20171024-1750) "QVT Operational JDT"
org.eclipse.m2m.qvt.oml.editor.source (3.8.0.v20171024-1750) "QVT Operational Editor"
org.eclipse.m2m.qvt.oml.examples (3.8.0.v20171025-1022) "QVT Operational Samples"
org.eclipse.m2m.qvt.oml.examples.source (3.8.0.v20171025-1022) "QVT Operational Samples"
org.eclipse.m2m.qvt.oml.runtime (3.8.0.v20171024-1801) "QVT Operational Runtime"
org.eclipse.m2m.qvt.oml.runtime.source (3.8.0.v20171024-1801) "QVT Operational Runtime"
org.eclipse.m2m.qvt.oml.source (3.8.0.v20171024-1750) "QVT Operational Core"
org.eclipse.m2m.qvt.oml.tools.coverage (1.4.0.v20171024-1750) "QVT Operational Coverage"
org.eclipse.m2m.qvt.oml.tools.coverage.junit (1.4.0.v20171024-1750) "QVT Operational Coverage JUnit"
org.eclipse.m2m.qvt.oml.tools.coverage.junit.source (1.4.0.v20171024-1750) "QVT Operational Coverage JUnit"
org.eclipse.m2m.qvt.oml.tools.coverage.source (1.4.0.v20171024-1750) "QVT Operational Coverage"
org.eclipse.mylyn_feature (3.24.0.v20170704-1739) "Mylyn Tasks Core"
org.eclipse.mylyn.commons (3.24.0.v20170629-1728) "Mylyn Commons"
org.eclipse.mylyn.commons.identity (1.16.0.v20170629-1728) "Mylyn Commons"
org.eclipse.mylyn.commons.notifications (1.16.0.v20170629-1728) "Mylyn Commons"
org.eclipse.mylyn.commons.repositories (1.16.0.v20170629-1728) "Mylyn Commons"
org.eclipse.mylyn.discovery (3.24.0.v20170629-1728) "Mylyn Commons"
org.eclipse.mylyn.monitor (3.24.0.v20170629-1728) "Mylyn Commons"
org.eclipse.mylyn.wikitext_feature (3.0.6.201703111926) "Mylyn WikiText"
org.eclipse.mylyn.wikitext.editors_feature (3.0.6.201703111926) "Mylyn WikiText"
org.eclipse.ocl (3.8.0.v20171030-1148) "OCL for Ecore"
org.eclipse.ocl.all (5.4.0.v20171030-1148) "OCL (Object Constraint Language) Parser and Interpreter"
org.eclipse.ocl.all.source (5.4.0.v20171030-1148) "OCL (Object Constraint Language) Parser and Interpreter"
org.eclipse.ocl.doc (3.8.0.v20171030-1134) "OCL Documentation"
org.eclipse.ocl.edit (5.2.0.v20171030-1134) "OCL Edit Support"
org.eclipse.ocl.examples (6.4.0.v20171030-1148) "OCL Examples and Editors"
org.eclipse.ocl.examples.classic (5.4.0.v20171030-1148) "OCL Classic SDK"
org.eclipse.ocl.examples.classic.source (5.4.0.v20171030-1148) "OCL Classic SDK"
org.eclipse.ocl.examples.unified (4.3.0.v20171030-1148) "OCL Unified SDK"
org.eclipse.ocl.examples.unified.source (4.3.0.v20171030-1148) "OCL Unified SDK"
org.eclipse.ocl.master (6.4.0.v20171030-1148) "OCL All-In-One SDK"
org.eclipse.ocl.master.source (6.4.0.v20171030-1148) "OCL All-In-One SDK"
org.eclipse.ocl.source (3.8.0.v20171030-1148) "OCL for Ecore"
org.eclipse.ocl.ui (2.3.0.v20171030-1134) "OCL User Interface"
org.eclipse.ocl.uml (5.4.0.v20171030-1148) "OCL for UML"
org.eclipse.pde (3.13.100.v20171106-2000) "PDE"
org.eclipse.platform (4.8.0.v20171106-2000) "Eclipse Platform"
org.eclipse.qvtd.atl (0.15.0.v20171030-1109) "QVT Declarative ATL support"
org.eclipse.qvtd.doc (0.15.0.v20171030-0943) "QVT Declarative Documentation"
org.eclipse.qvtd.examples (0.15.0.v20171030-1109) "QVT Declarative Examples (Incubation)"
org.eclipse.qvtd.master (0.15.0.v20171030-1109) "QVTbase Model (Incubation)"
org.eclipse.qvtd.master.source (0.15.0.v20171030-1109) "QVTbase Model (Incubation)"
org.eclipse.rcp (4.8.0.v20171106-2000) "Eclipse RCP"
org.eclipse.sdk (4.8.0.v20171106-2000) "Eclipse Project SDK"
org.eclipse.uml2 (5.3.0.v20170605-1616) "UML2"
org.eclipse.uml2.codegen.ecore.ui (2.3.0.v20170605-1616) "UML2 Ecore Code Generation UI"
org.eclipse.uml2.common (2.1.0.v20170605-1616) "UML2 Common"
org.eclipse.uml2.common.edit (2.1.0.v20170605-1616) "UML2 Common Edit Support"
org.eclipse.uml2.doc (5.3.0.v20170605-1616) "UML2 Documentation"
org.eclipse.uml2.examples (5.0.0.v20170605-1616) "UML2 Examples"
org.eclipse.uml2.uml (5.3.0.v20170605-1616) "UML2 UML Model"
org.eclipse.uml2.uml.edit (5.3.0.v20170605-1616) "UML2 UML Edit Support"
org.eclipse.xtend.sdk (2.13.0.v20171020-0920) "Xtend IDE"
org.eclipse.xtext.sdk (2.13.0.v20171020-0920) "Xtext"
org.eclipse.xtext.ui (2.13.0.v20171020-0920) "Xtext UI Core "
org.eclipse.xtext.xbase (2.13.0.v20171020-0920) "Xbase Model"
org.eclipse.xtext.xbase.lib (2.13.0.v20171020-0700) "Xbase Runtime Library"
org.eclipse.xtext.xtext.ui (2.13.0.v20171020-0920) "Xtext Xtext UI "
Comment 3 Dani Megert CLA 2017-11-25 05:21:47 EST
(In reply to Ed Willink from comment #2)
> Created attachment 271632 [details]
> Menu, spy screenshots

Thanks Ed, that helped.

 
> I see the same problem on another machine that is a straight M3 base.

Not sure what "base" is for you, but in our Platform SDK:
http://download.eclipse.org/eclipse/downloads/drops4/S-4.8M3a-201710300400/
there is no validate menu item and this is expected. The ValidationMenuAction class is from webtools.

The spy is a bit misleading as it shows the plug-in that placed the item there. So, all items that are contributed via extension point from e.g. org.eclipse.ui.workbench will show that as contributing plug-in (see bug 276867).
Comment 4 Nitin Dahyabhai CLA 2018-03-27 12:44:56 EDT
I don't see any WTP Features in the list, though.
Comment 5 Carl Anderson CLA 2018-03-27 14:06:46 EDT
(In reply to Ed Willink from comment #0)
> EMF has provided a Validate menu action for many years.
> 
> Using the M3 platform I now see two Validate menu actions. The Menu plugin
> spy tells be that the lower one between "Debug As" and "Team" is contributed
> by org.eclipse.ui.workbench.
> 
> This is going to be very confusing for EMF users, which arguably includes
> all platform users.
> 
> The new Validate action does not appear to be a simple duplicate since it
> reports no problems when the EMF Validate reports problems.
> 
> It seems that either the platform "Validate" should rename to avoid the
> conflict or a validation API should enable the EMF Validate to extend the
> platform facility.

Ed,

   WTP's Validate menu action was put into place 13 years ago.  It runs WTP's validation framework (which adopters have been extending for 13 years).  It does not do an EMF validation- it runs validators that are registered to it and will report problems that are found by those validators.  This is a validation API... but one that is added above the EMF layer.
     Since it has been around for so many years, I am not sure how it will suddenly become an issue for EMF users.
    If EMF's Validate menu action is less than 13 years old, then it is the "new" Validate action.
     What do you propose?

Nitin,

     org.eclipse.wst.validation.ui uses ValidationMenuAction to contribute a ValidateAction where appropriate.  This does appear to be WTP's Validate menu action.
Comment 6 Ed Merks CLA 2018-03-27 14:34:02 EDT
EMF's validate action is 14 years old.


What we did in Oomph's editor is get rid of a lot of these contributed actions that generally make a lot of noise.  I.e., how does Run As/Debug As ever make sense on the context menu of a *.ecore file?  But that's hard to do without an explicit list of what not to show because it makes no sense or is confusing.

I'm really not sure how to resolve this.  I just ignore it...
Comment 7 Ed Willink CLA 2018-03-27 15:23:17 EDT
(In reply to Carl Anderson from comment #5)
>      What do you propose?

(In reply to Ed Willink from comment #0)
> It seems that either the platform "Validate" should rename to avoid the
> conflict or a validation API should enable the EMF Validate to extend the
> platform facility.
Comment 8 Ed Merks CLA 2018-03-27 15:44:11 EDT
I'm not sure I understand.  Is there a "platform facility" involved? I thought all this came from WTP's WST...  Obviously EMF is not going to extend something from WTP.  

I imagine "Validate XML" might be more a explicit name/description that the XML itself will be validated rather than some other more deeply semantic validation.  After all, this menu item appears everywhere, even in the Package explore on a plugin.xml or feature.xml where it only complains about a missing DTD or XML Schema rather than doing some type of actual deep semantic validation of the plugin.xml/feature.xml, which the user might expect.  

In fact it does completely useless things like this in a great many contexts; better would be if it were filtered to appear only on files where the DTD/Schema was actually known...
Comment 9 Ed Willink CLA 2018-03-28 02:13:41 EDT
I was trying to observe that since two different communities had found that "Validate" is a useful concept, the platform could provide a coordinating menu capability analogous to Open/Open With... or Print or Run As...

I presume that there are some files for which both EMF's and WST's Validate are differently useful making both necessary. Guessing a bit. If WST's Validate is XSD based and EMF is Ecore based, then neither project will want to merge the other's capabilities. If another project supports yet another validation mechanism, possibly involving semantic concepts, yet another Validate might be appropriate. This suggests that a Validate/Validate With... may be appropriate with the default Validate tracking the default Open.