Community
Participate
Working Groups
The Classpath Dependency Validator is not working in WTP 3.2. This validator is crucial for notification of items placed on the Java Build Path that will not be deployed properly to a server, thus potentially causing runtime exceptions on the server. The reason why this is broken is the change made in bug 298905 - the facet id was changed from jst.java to java, but the Classpath Dependency Validator still enables only for the (now non-existent) jst.java facet.
Hi Carl, Could you point me at where/how this enablement happens. I want to understand how this code bypassed backward compatibility system. - Konstantin
Created attachment 162558 [details] Change the validation to an enablement check
The chain of things that caused this is getting complicated. Both the rename of the java facet and the change over from <facet> to <enablement> in the validator extensions impacted this. For backwards-compatibility's sake, I have simply changed the check over to <enablement>, checking for the (properly aliased) jst.java facet.
Committed to HEAD for WTP 3.2 M7.
Thanks, Carl! I owe you one. Are you going to be at EclipseCon so that I can buy you a frosty one? What is the story on <facet> vs <enablement> in the validators extension? Is <facet> a deprecated syntax? It sounds like there is a code path that is bypassing the facet aliasing system that we need to patch before someone else runs into this...
Konstantin, the legacy Validation framework deprecated the <facet> enablement. However, the code that it uses is in the org.eclipse.wst.validation plugin, in org.eclipse.wst.validation.internal.ValidationRegistryReader in both calculateVmdsForNatureAndFacets() and containsProjectFacet(). Feel free to poke around, but the <facet> has been deprecated since WTP 1.5.0... were we not past the API freeze, I would remove it.