I strongly suspect Oracle will need to provide backward
    compatibility as well. 
     
    And if someone creates some reusable open source code to do the
    application transformation, the burden of providing that backward
    compatibility would be low. 
     
    I think the question is whether having two kinds of branded Jakarta
    EE Compatible products - one that can make use of the existing
    ecosystem of applications and libraries, and one that can't - is
    better for the Jakarta EE brand, or whether it will bifurcate the
    brand in a way that reduces its value. 
     
    I suspect backward compatibility is going to be essential to
    introducing the Jakarta EE brand to the market and making it
    successful.  Once it's clearly successful, and the majority of the
    ecosystem has made the transition, backward compatibility may no
    longer be needed.  The fact that the major vendors will almost
    certainly provide that backward compatibility, whether its required
    or not, may be sufficient.  And the lack of that backward
    compatibility may be a competitive disadvantage.  Maybe that's
    enough and a requirement isn't necessary? 
     
     
    Kevin Sutter wrote on 4/18/19 8:29 AM: 
     
    
      
      
        Although from an IBM standpoint, we will most
          likely provide backwards compatibility with Jakarta EE 8, I
          can see Steve's point.  Somebody on yesterday's call also
          brought up the fact that we will (hopefully) have new
          implementations joining the fold at the Jakarta EE 9
          timeline.  So, if we're looking not to stifle innovation and
          promote new implementations, we can't require every Jakarta EE
          9 implementation to support Jakarta EE 8.  I suppose this last
          statement depends on the final content of Jakarta EE 9, but
          you get the idea.  If we're looking to promote this new
          Jakarta EE environment and encourage new implementations, then
          we can't start off by requiring them to support all of the old
          technologies in Jakarta EE 8. 
        
          
          
        -----
          Original message ----- 
          From: "Steve Millidge (Payara)"
          <steve.millidge@xxxxxxxxxxx> 
          Sent by: jakarta.ee-spec.committee-bounces@xxxxxxxxxxx 
          To: Bill Shannon <bill.shannon@xxxxxxxxxx>, Jakarta
          specification committee
          <jakarta.ee-spec.committee@xxxxxxxxxxx> 
          Cc: 
          Subject: Re: [jakarta.ee-spec.committee] Jakarta EE 8
          compatibility 
          Date: Thu, Apr 18, 2019 1:22 AM 
           
          OK to simplify the Payara position
              on this. 
               
              We do not think compatibility with Jakarta EE 8 should be
              required for Jakarta EE 9. 
               
              Secondly all javax apis, property names, service loader
              files, schemas etc. in all specifications included in
              Jakarta EE 9 should be moved to the jakarta namespace. 
               
              Steve 
               
               
              -----Original Message----- 
              From: Bill Shannon <bill.shannon@xxxxxxxxxx> 
              Sent: 17 April 2019 21:27 
              To: Jakarta specification committee
              <jakarta.ee-spec.committee@xxxxxxxxxxx>; Steve
              Millidge (Payara) <steve.millidge@xxxxxxxxxxx> 
              Subject: Re: [jakarta.ee-spec.committee] Jakarta EE 8
              compatibility 
               
               
               
              Steve Millidge (Payara) wrote on 4/17/19 12:00 PM: 
              > Comments below 
              > 
              > 
              >> I strongly support the approach of *not*
              requiring *how* to implement Jakarta EE 8 compatibility in
              >Jakarta EE 9.   
              > 
              > +1 
              > 
              >> The spec should require that Jakarta EE 8
              applications can be deployed without change.   
              > 
              > -1 
              > I could accept a profile of Jakarta EE 9 that imposed
              this requirement but not every profile. This should be a
              market driven requirement by the vendor not a requirement
              of the spec. The reason why is this imposes too much
              technical debt on any new vendor that may wish to build on
              the work we do in Jakarta EE 9. We all want to create a
              new vibrant community around Jakarta EE 9 this requirement
              kills that stone dead. 
               
              Putting it in a profile is pretty much the same as making
              it optional. 
               
              If it's going to be optional, and some vendors aren't
              going to do it at all, do we really need to specify how it
              MUST work for vendors who do choose to provide it?
               Shouldn't it be up to each vendor to decide how much
              compatibility they need to provide based on the demand
              from their customers? 
               
              >> That said, I think the idea of deployment time or
              runtime transformation is most interesting, and I >hope
              someone will build such a thing as an open source project
              (EE4J or otherwise) that many of us >can reuse in our
              implementations.  It would be great if someone would
              create such a community >project that we could
              contribute to. 
              > 
              > Interesting though this is intellectually this makes
              runtimes, slow, fragile and bloated. Everything that we
              are accused of and we've striven against. If we move all
              apis to jakarta namespace in Jakarta EE9 this also is
              likely technically unnecessary as Jakarta EE 8 apps will
              use javax and Jakarta EE 9 apps jakarta. 
               
              I'm not sure what you think is unnecessary. 
               
              The point of doing a transformation is to allow the apps
              that use javax to be "linked" to the corresponding
              jakarta.* classes so that only one set of APIs and
              implementations is necessary. 
               
              >> Finally, 100% compatibility is probably
              impossible.  We're going to need to decide what level is
              >acceptable. 
              > 
              > This statement goes against the requirement that
              Jakarta EE 8 applications can run unchanged. 
               
              Right, so we need to qualify the goal/requirement. 
               
              Presumably it's all *portable* applications. 
               
              Maybe it doesn't include applications that use reflection.
               Or applications that manipulate class loaders.  Or
              applications that do some other things that are hard to
              support compatibly. 
               
              >> For example, can I mix and match use of
              javax.mail and jakarta.mail APIs in the same application?
               Can >I pass a jakarta.mail.Message object to a method
              that expects a javax.mail.Message object?  Or must
              >they be distinct types? 
              > 
              > IMHO this is not a spec issue. Spec should be self
              contained and not refer to previous versions of the spec.
              Assuming we are going to move all apis to the jakarta
              namespace. We can't go to market with a Frankenstein api
              where whenever a class changes in the future it is moved
              from one namespace to another and now we have to support
              both. 
               
              If the spec includes a compatibility requirement, then
              this absolutely is part of the spec. 
               
              >> And what about attributes that aren't part of the
              Java EE specs?  As others have mentioned, can I
              >configure the javax.mail logger?  Can I set a
              breakpoint in javax.mail.Message?  Will my stack trace
              >include javax.mail.* APIs?  Can I serialize a javax.*
              object and deserialize it with a jakarta.* class? 
              > 
              > Again imposing requirements to support old dead apis
              in the spec with statements like these would kill
              innovation stone dead. 
              > 
              > Backwards source code compatibility and binary
              compatibility has been killed by lawyers. Let's not bake
              requirements into the Jakarta EE 9 specifications that
              kill future innovation. 
              > 
              > By all means compete on runtimes that support
              migration/compatibility if each vendor feels there is the
              customer demand. 
               
              And that's the decision to be made - is compatibility
              required, optional, or unspecified?  The consensus in the
              meeting seemed to be that compatibility is required.  Is
              that not really what people intended? 
              _______________________________________________ 
              jakarta.ee-spec.committee mailing list 
              jakarta.ee-spec.committee@xxxxxxxxxxx 
              To change your delivery options, retrieve your password,
              or unsubscribe from this list, visit 
              https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
              
         
          
       
       
       
      
      _______________________________________________
jakarta.ee-spec.committee mailing list
jakarta.ee-spec.committee@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
 
     
     
  
 |