[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [stp-dev] Project Facets (was IRC log 24may06)
|
Hi Rob,
sybase.com wrote:
Given that the assembly, module or subsystem, represents the deployable
unit, wouldn't it make more sense to have facets applied to the assembly as
opposed to the project itself?
The facet framework is a "functionality life cycle management"
framework. It provides extension points that you can use to define and
encapsulate the logic required to add, upgrade or remove specific
functionality to/from projects. On a UI level, the framework integrates
with the Project Properties UI dialog - a faceted project adds a panel
that allows the user to add /remove facets - and faceted projects
usually include the facet selection pages in their New Project wizard.
(Try creating a WTP Dynamic Web Project and you'll see them).
Under the covers, the facet framework is oblivious to what the facet
implementations are doing when told to install,update or remove
themselves. That functionality can do anything, include add natures,
modify classpaths, generate template resources, switch perspectives.
Ultimately, in your case, you would want the facet install ation
implementation to set up the project so that artifacts like assemblies,
modules or subsystems can easily be packaged and deployed. (You'd
probably have one facet type for each of the above deployables.)
With respect to capabilities, I was specifically talking about the creation
of certain resource types, e.g. BPEL, BPMN, POJO, JEE. As far as I am
aware, it is not possible to prevent the user from creating these in a
project. For example, I can create Java files in a simple project type.
Also, it would be nice if somebody could post some detailed information
regarding project facets. From the research I've done I could not
determine the advantage of using them versus plain old project natures.
The "Feature vs Nature" section of the original "Features Framework
Specification"
(http://www.eclipse.org/webtools/development/proposals/Features%20Framework%20Specification.htm)
might clear this up.
(Note: Facets were originally referred to as 'features' but they change
the name to avoid confusion with platform 'features')
The WTP Project
Facets(http://www.eclipse.org/webtools/development/proposals/WtpProjectFacets.html)
doc also contains some more relevant info.
Philip Dodds (mentioned by Oisin on IRC) has an excellent walk through
of what it took to extend WTP to support JBI - see
http://goopen.org/confluence/display/SM/Extending+Eclipse+WTP+to+support+JBI
Hope this helps,
John.