[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [jakarta.ee-community] Jakarta EE 9 APIs - what's required? what's allowed?
 | 
  
  
    Yes, those are fine, although it would be better if you could make
    the findbugs/spotbugs plugin work in a useful way.
    
    
Tom Jenkinson wrote on 2/12/20 3:46 AM:
    
    
      
      
        I assume the required/allowed discussion is related to
          behavioural changes. For instance I am reviewing three changes
          for Jakarta Transactions:
        1. Removing unused imports
        2. Removing seemingly unused findbugs plugin
        
        3. Fixing javadoc generation on OpenJDK 11
        
        
        I assuming anything that should not affect the behaviour of
          a projects core API would be allowed, is that correct?
        
        
       
      
      
        
        At
          the Jakarta EE Platform project team meeting this morning, we
          discussed
          several items related to what sorts of changes are required
          and allowed in
          Jakarta EE 9 APIs.
          
          The question was what changes, if any, should be allowed by
          the base
          Jakarta EE 9 release plan, without requiring a separate
          release plan?
          
          
          - package names
          
          It should be obvious to everyone that a required change is the
          change from
          javax.* packages to jakarta.* packages.  That was easy.  And
          in fact that
          was the original goal, that the package name change would be
          the *only*
          change allowed to the APIs.  In addition, only the "javax"
          part of the name
          may be changed; no other part of the class name may be
          changed.
          
          
          - @Deprecated
          
          Is it allowed to add @Deprecated to APIs?  We decided that
          yes, if the API
          was already marked with the javadoc @deprecated, the
          @Deprecated annotation
          may be added.
          
          
          - generics
          
          May APIs be "genericized", i.e., may the APIs be updated to
          use generics
          where appropriate?  This one was not clear to us and we'd like
          more feedback
          from the community.
          
          On the one hand, the change of package name is already a
          source incompatible
          change so adding another source incompatible change is not a
          big deal.  Any
          binary compatibility tools would not need to deal with it.  We
          think that
          the major IDEs will be able to help with the source
          incompatibility.
          
          On the other hand, not everyone is using an IDE, and this will
          be another
          annoying change that's harder to apply in some automated way. 
          Perhaps this
          should be deferred to Jakarta EE 10?
          
          A complicating factor is that we haven't yet decided what
          sorts of API changes
          we will allow in future Jakarta EE releases.  Perhaps changes
          of this sort
          will be limited to "LTS" releases?  We just don't know yet.
          
          So, given all the uncertainty and variables, do you think we
          should allow
          generics to be applied to APIs for the Jakarta EE 9 release?
          
          
          - @Repeatable
          
          Should we allow the addition of @Repeatable to APIs, where
          appropriate?
          We decided that yes, this is allowed.  Most of the cases where
          @Repeatable
          was appropriate were dealt with in Java EE 8, but if some
          cases were missed
          now is a good time to fix them.
          
          
          - property names
          
          Finally, while not strictly an API change, we decided that any
          properties
          defined by a spec that are named "javax.*" *MUST* be changed
          to "jakarta.*".
          Obviously this is another issue that any binary compatibility
          solution
          will need to deal with, so in some cases it may be best for
          the runtime
          to support both jakarta.* and javax.* property names, with the
          former taking
          precedence.
          
          
          
          If there are additional items of this sort that you think the
          platform team
          should consider, please let me know.
          
          Remember that even changes that are disallowed above *may* be
          allowed for
          a specific API based on the requirements and justification
          included in a
          separate release plan for that API.  This has already been
          done in at least
          two cases - Jakarta Activation and Jakarta Enterprise Beans.
          _______________________________________________
          jakarta.ee-community mailing list
          jakarta.ee-community@xxxxxxxxxxx
          To change your delivery options, retrieve your password, or
          unsubscribe from this list, visit
          https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
          
        
       
      
      
      _______________________________________________
jakarta.ee-community mailing list
jakarta.ee-community@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/jakarta.ee-community__;!!GqivPVa7Brio!MQh-R_U2aqVczJVn63aTVgdf4NSo03ru_Vx568XXG0EmmkrxxfTtq3VRIS2UaAlEtw$