-----Original Message-----
From: Konstantin Komissarchik
[mailto:kosta@xxxxxxx]
Sent: Wednesday, November 16, 2005
11:41 AM
To: gerry.kessler@xxxxxxxxxx;
wtp-dev@xxxxxxxxxxx
Subject: RE: Facet API
Gerry,
I really wish you would have brought these
problems up as they come up. We could have saved you some grief and hard work.
:)
Over the last few weeks the integration of
the facets framework caused a lot of churn and there were some builds where
certain aspects were broken. Judging by your e-mail, you’ve hit quite a
few of these breakages. If you pickup the latest M9 candidate build, you will
be much happier.
1. The project creation wizards have only
recently been integrated with the faceted project wizards. Now you should be
able to select the jsf facet on the second page of the Dynamic Web Project
wizard.
[Gerry Kessler] I am
2. You don’t have to use IDataModel
for your action config. It’s now an option, but you don’t have to
go this route. Unfortunately, this was broken for a few builds. I didn’t
discover and fix this problem until last night.
[Gerry Kessler] So are you saying that
the changes weren't required??? Dang. I'll try with the
lastest build. As of this moment, are you speaking of I200511161731?
3. There was another bug that caused the
right code path to not be invoked in the early revs of the new web project
wizard, so transferStateToConfig was not being invoked. That has also been
fixed.
[Gerry Kessler] Now that I have moved to
DataModelWizardPage, any thoughts on making it public?
4. Lets take #1 offline. I need to get
some info about how you define the JSF facet to figure out why you are only
seeing one version or the other. Do you use yahoo im? I am kosta0120.
5. About #2, could you see if you still
see this problem in the latest M9 candidate build. If so, I can help figure out
why this is happening.
[Gerry Kessler] I will.
6. In order to get the web content
directory, take a look at the IWizardContext that’s available to your
wizard page. You can use it to locate the datamodel for the jst.web facet
install. Note that if you are going to do that, your page has to handle two
cases: (1) the jst.web install is in the wizard context, so you retrieve this
value out of the data model, and (2) jst.web has already been installed, so you
have to retrieve this value from project metadata using the IVirtualComponent
api.
[Gerry Kessler] I will take a look.
Yes, I understand the 2 cases. As of 1021 build I thought that I
would only be able to add JSF Facet from an existing WebApp project!
Thanks for the pointer.
Let me know if you have other
questions/problems.
- Konstantin
From: Gerry Kessler
[mailto:gerry.kessler@xxxxxxxxxx]
Sent: Wednesday, November 16, 2005
11:06 AM
To: wtp-dev@xxxxxxxxxxx;
Konstantin Komissarchik
Subject: Facet API
For the last few weeks the WTP JSF Tools team has been
working with the 1021 IBuild. The main reason for this was stability
as the IBuilds after that one seemed to have some kind of problem that
persuaded us to stick with it.
Anyway, we we had facets working and are preparing to do an
initial check-in of code but we first are moving up to the latest available
IBuild (20051111814). This email is being written to describe some
of the pain I went through so as to help solidify the API and perhaps help
others working with facets. Konstantin - if you would like me
to enter bugs for anything I mention below, please let me know.
A little background. In the 1021 build, the JSF
Facet did not show up in the DynamicWebApp creation wizard. It was
necessary to use the Add/Remove facets wizard. I have
also tried to avoid using any internal WTP classes.
In the 1021 build, I was able to use a POJO for the facet
install action's "config" . The API still says that it's type
is Object. I discovered that it must now be an IDataModel or nothing
works. The API should be updated for this. With that came a series
of significant changes.
I then discovered that there is now a config-factory
ext-pt element that must be used to create an IDataModelProvider.
After figuring out how to convert my original model, I still struggled to get
my install delegate to work. The problem that I was seeing was
that my model was not being updated with the wizard values. My
wizard page was using the public AbstractFacetWizardPage class and I discovered
that the API, transferStateToConfig() which I was relying on, was not being
called in the context of a New WebApp Wizard. At that point I found
it necessary to follow the WebApp facet creation patterns.
That meant instead of using the
public AbstractFacetWizardPage, I used the
internal DataModelWizardPage class. Please consider making
this public. Although it may not have been absolutely
necessary, I then moved the validation code out of the UI to my model provider
class to take advantage of the DataModelWizardPage. I like the
synchHelpers, btw, which greatly simplified handling the movement of the UI
data to the model. Please consider adding a synchHelper for CCombo
as I needed to change to Combo due to the lack of helper for that control
type.
At this time I am back in business, so to speak, but still
see the following issues that are probably framework related. I
have not found bugzilla entries for them.
- I have 2 facet versions defined but only one of
them is ever available. It does not matter what runtime is
specified.
- If the JSF Facet is created as part of WebApp
project creation, and when I use Add/Remove Facet wizard, the JSF facet
becomes "fixed". Only if the facet is created after the
project am I able to remove the facet.
One last thing. I need to be able to know the
WebContent directory for validation purposes from my facet install page.
In the case of project creation, there is not yet a WebApp and I must somehow
get it from the previous page's
datamodel(WebFacetInstallDataModelProvider). How can this be done?