-----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?