Community
Participate
Working Groups
In a fully componentized world, support for servers and programming models comes in three parts: 1. the programming model plugins (e.g. support for JEE). 2. the server adapter. 3. the glue that says server X supports programming model Y and knows how to publish & interact with Y on X. Ideally, the #3 "glue plugin" would only be installed when #1 and #2 are already installed. However, this isn't always practical since #1 and #2 could be completely independant (e.g. from different update sites/schedules), and you don't want #3 to be a completely independant install for the user. In this case, it's often easier to install a 'dormant' #3 along with the server adapter, which only takes effect when #1 becomes available. In this case, #3 would use optional package imports so that it is truely dormant and does not cause any problems during install if #1 is not present. In the "glue plugin", you'll typically have something like the following facet extension point: <extension point="org.eclipse.wst.common.project.facet.core.runtimes"> <supported> <runtime-component id="com.xyz.glue" version="1.0"/> <facet id="jst.ejb" version="2.1,3.0"/> </supported> </extension> However, if you do this and #1 is not present, you see an error like the following in the .log whenever the IDE starts: "Project facet jst.ejb has not been defined. It is used in plugin com.xyz.glue". In bug 197557 and others, the ignore-problems attribute was added to avoid cases like this where it is 'expected' that facets may not be available. Any solution I'm missing? Otherwise, I think we need to add the same ignore-problems to this extension point to avoid spurious .log entries.
Would you be willing to create a patch for this?