[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [jakartaee-platform-dev] [External] : Re: Interceptors TCK -- what version of Platform TCK?
 | 
  
  
    
    
    On 9/2/22 5:33 PM, Ed Bratt wrote:
    
    
      
      Sorry -- I see that I am confused about interceptors. Thank you
        Steve for jogging my memory.
      
      Currently there is a TCK on the Interceptors 2.1 specification
        page -- That TCK link points to CDI 4 TCK. Previously versions
        of Interceptors used the Platform TCK. I now recall that we
        couldn't use the Platform TCK at the time we wanted to finalize
        CDI and CDI has a dependency on Interceptors.
      We now have a TCK tracking/consistency issue --  Interceptors
        refers to CDI 4.0.0 TCK, but CDI is up to 4.0.6.
      The CDI TCK user documentation and it doesn't explicitly state
        that implementations that pass the CDI TCK qualify as compatible
        for Interceptor compatibility (it does say there are lots of
        tests but nothing formally conveying a compatibility statement).
        I think we want the CDI documents to say that. In the Platform
        TCK User Guide it is very explicit: "Jakarta EE 10 Platform TCK
        provides compatibility certification verification for
        implementations contained in the Platform for the following
        component specifications:" (Interceptors appears in the
        following bullet list)
      
      In the GlassFish CDI test run (using CDI 4), there are 108
        references to Interceptor in the test result. In the Platform
        TCK test results, there are 175 tests. This needs to be
        reconciled so that we can be confident that the TCK results in
        consistent and compatible implementations of Interceptor
        functionality. The two suites would, ideally use the same tests
        for interceptors (and some of the tests with keyword interceptor
        may be CDI specific, not necessarily Interceptor specific).
      
      I know the subject of reorganizing Interceptors to be part of
        CDI was raised but I don't recall us making any formal decision
        about that. I suspect I was (and likely still would be)
        reluctant to actually support that change. I am certain that I
        at least stressed caution about not having the same tests in
        both places.
      
      I think we need to formally decide what we are going to do with
        this -- I guess for EE 11. There are differences between what is
        tested (or at least reported) by the CDI and Platform TCK under
        the keyword Interceptor. This may cause problems if someone were
        to complete their certification using only the CDI TCK only
        later to find problems when they attempt to complete a Platform
        certification that then asserts problems with their (previously
        validated) Interceptor implementation.
      Since the Platform Spec. team is currently the 'owner' of
        Interceptors, that problem would come to this team.
      If it's possible, I think the best would be to refactor what
        remains in the Platform TCK -- into an independent TCK. Would
        this be feasible for EE 11 or was there some structural problem
        with creating this as a completely separate TCK? How much
        investigation about this has already been accomplished?
    
    During the Platform TCK call today, we talked about a few
      different options for refactoring what remains in the Platform TCK
      with different costs.  Keeping in mind that the Platform TCK still
      has around 2.2 million lines of test code (based on `find -type f|
      xargs cat | wc -l` in src folder).  Refactoring all of the
      Platform TCK tests has the highest risk that it could cause the EE
      11 release to take longer than 1-2 years (IMO since we cannot
      validate any SPEC API Ballots until completing refactoring).  If
      we refactor a small subset of Platform TCK tests, we would see a
      lower risk to the overall EE 11 release duration depending on how
      we do the refactoring.  
    
    Some options to discuss/consider:
    
      - Completely refactor all remaining tests in the Platform TCK
        and take as much time as that takes.  Cost is very high from an
        EE 11 release scheduling perspective as the Platform TCK project
        wouldn't be able to produce any standalone TCKs until the
        refactoring is complete, so the schedule impact is the first
        SPEC wave is blocked on starting the ballot until the Platform
        TCK refactoring is complete.  Impact on EE11 release is that we
        have some initial overlap period where EE 11 SPECs are developed
        + TCK tests are refactored but the TCK refactoring does become a
        blocker for the EE 11 release starting the first SPEC ballot
        wave.  Further cost is that we don't know how long the complete
        refactoring would take.
       
      - Refactor a subset of each Platform TCK test bucket (e.g.
        specification being tested) but do not refactor all tests.  The
        cost on the EE 11 implementations is that they still have to run
        both the old (Ant based Platform TCK tests) + new (refactored
        Platform TCK tests).  To minimize the cost on EE 11
        implementations, the Ant based Platform TCK tests would continue
        to be configured/run the same way as run with Platform TCK in EE
        10.  There is also a EE 11 implementors complexity cost of
        having some tests run via Ant and some tests run via
        Maven/Arquillian.
       
      - Refactor a subset of each Platform TCK test bucket (e.g.
        specification being tested) but do not refactor all tests.  The
        tests that are not refactored would be removed from the EE 11
        release but could be refactored and added in future EE
        releases.  The cost of reduced coverage varies depending on how
        much of each test bucket is refactored.  The cost of risk to the
        EE 11 release also varies based on how much of each test bucket
        is refactored.  The reduced test coverage could impact the
        quality of EE implementations.
       
      - Something else.
 
    
    I think we all get the idea of how the first SPEC wave (and other
      SPEC API waves) are blocked on being able to run the relevant
      TCK.  Perhaps we could be clever and come up with a solution for
      removing the SPEC API ballot bottleneck on the TCK with a contract
      that guarantees that any subsequent refactored TCK test changes
      must pass implementations that have submitted a compatibility
      certification request for the respective specification (e.g. think
      of a cooperative communications process that coordinates with the
      spec implementations that communicate their subsequent TCK test
      results back on a tracking Platform TCK issue).  There could be
      other ways to improve our processes to allow SPEC API development
      to proceed forward in parallel while the TCK refactoring might
      still be happening throughout the EE 11 development process.
    
    
    
    Scott
    
    
      Thanks,
      
      -- Ed
      
      On 9/2/2022 1:42 AM, Scott Marlow
        wrote:
      
      
        
          
            
            
              
              
                
                  I'm looking over the various specifications and I
                    notice that Interceptors 2.0 just
                    lists the Jakarta EE 9 platform TCK. I believe we
                    are also allowing Jakarta EE 10 Platform TCK as a
                    certification TCK for interceptors (all Platform
                    TCKs can validate for interceptor compatibility).
                    Also (if I recall) CDI implementations do not need
                    to run an additional TCK yet will certify compatible
                    implementations, compatible with Interceptor API.
                  
                 
              
             
           
          
          
          EE 9 implementations can run the EE 9 
            Platform TCk but I don't think they can expect to run the EE
            10 Platform TCK until they implement interceptors 2.1
            (updates dependencies for EE 10 and adds a JPMS module-info
            descriptor) and implement other EE 10 specs. 
          
          
          So it seems fine to me the way Interceptors
            2.0 just lists EE 9 Platform TCK.
          
            
              
                
                   
                  I'm wondering how we should convey this information
                    on the Specification page.
                  
                  I think at the least, we ought to list the Jakarta
                    EE 10 Platform TCK as an approved compatibility
                    validation TCK. I do not believe we want to imply
                    that one must run the EE 9 Platform TCK to certify
                    Interceptors. I think we can consider saying nothing
                    on the interceptors Spec. page about CDI TCK,
                    relying on the CDI TCK to call out the requirement
                    for interceptor compatibility as well as the
                    validation that the TCK verifies interceptor
                    compatibility. By extension, we could say nothing on
                    the Interceptors page but that, at least to me,
                    leaves me wondering -- what would a vendor be
                    expected to do. Perhaps something calling out (on
                    the Spec. page) "Platform products may certify
                    Interceptors compatibility for their product using
                    the latest Platform TCK of the Platform version they
                    are releasing."
                  
                  Anyone have thoughts on this?
                  (I realize this is kind of an low priority issue
                    since few if any implementations are going to
                    certify Interceptors outside of one of the other
                    specification bodies (EE Platform or CDI TCKs).
                  
                  -- Ed
                 
                _______________________________________________
                jakartaee-platform-dev mailing list
                jakartaee-platform-dev@xxxxxxxxxxx
                To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
              
             
           
         
        
        
        _______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev__;!!ACWV5N9M2RV99hQ!O674Cxc7wX7g-y9jgaZwr6HEPq7pBlH9gNPrZYEcZuCTpAWwEN24fmvhsQgukpBlyS6yn0APpCpIIto$