[
Date Prev][Date Next][
Thread Prev][Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [gef-dev] Java 21 for GEF-Classic | 
  
  
    Another point not to be overlooked is that any bundle in the
      platform may at any time end up requiring Java 21.
    
    That being said, nothing is impossible.  EMF can and does build
      against Photon; I just tested and it still works: 
    
    
    Yes, this isn't free; it's extreme.  And even though it isn't so
      horribly complicated, I'm not suggesting GEF should do that.  In
      fact, given the limited resource, you should choose the path of
      least resistance, the path that's the least amount of work and
      lets you use the best new features of the language.  If someone
      downstream doesn't like that, they should be here helping do the
      hard, unpleasant work, not you folk.  You're the driver, you
      decide how to steer...
    
    On 21.12.2024 22:08, Patrick Ziegler
      via gef-dev wrote:
    
    Hi,
      
      
      just to avoid a misunderstanding: The only Platform plugins that
      currently require Java 21 are:
      
      
      - org.eclipse.help.base
      
      
      - org.eclipse.help.ui
      
      
      - org.eclipse.help.webapp
      
      
      Which means from a technical perspective, it is still possible to
      launch e.g. the Eclipse IDE with Java 17 and build RCP
      applications on top of it, as long as you don't require the online
      help. But this then comes with a lot of additional caveats, as you
      e.g. can't simply use the "org.eclipse.platform" feature anymore
      (as it includes the help) and instead have to cherry-pick all
      plugins individually. Which is why I believe that this is simply
      not practical and most projects will pick the easier route and
      switch to Java 21 as well.
      
      
      At least from my side, the driving factors for Java 21 is some of
      the nice API they have added (the SequencedCollection as one of my
      favorites) and maintainability. As mentioned, the GEF tests
      require a running Eclipse SDK and it is therefore impossible to
      automatically test against Java 17 anymore.
      
      
      So now we are in the unpleasant situation were GEF has to
      configure additional infrastructure to make sure that we remain
      compatible with our minimum BREE. Which is of course a lot of
      extra work that was pushed on us all of a sudden and something was
      will cause an endless amount of frustration, both on our side and
      the user side, if not done properly.
      
      
      Regards,
      
      
      Patrick
      
      
      
      On 21.12.24 21:42, Alois Zoitl via gef-dev wrote:
      
      Hi,
        
        
        unfortunately that is not fully true. GEF Classic has several
        bundles
        
        that require the Eclipse platform. Patrick has this very nicely
        pointed
        
        out in his previous post.
        
        
        I also have to disagree on your assessment of Java 21. As a
        developer
        
        of an RCP using GEF Classic where we already moved to Java 21 I
        can say
        
        that especially the switch pattern matching makes a lot of code
        much
        
        easier to read. Especially code in the GEF Classic context.
        
        
        BR,
        
        Alois
        
        
        
        
        On Sat, 2024-12-21 at 06:28 +0000, Ed Willink via gef-dev wrote:
        
          Hi
          
            Yes. The outer (Tycho) JVM will have to be Java 21.
          
            But No, The inner (test) JVM can be overridden by the maven-
          
          toolchains-plugin.
          
            For OCL I was 'happily' running Java 5 compatibility testing
          until
          
          the EF discontinued the Java 5 support on Jenkins. Java 8
          
          compatibility testing could not handle builds by the latest
          Java 18
          
          signing algorithm. But Java 11 testing is still possible with
          Tycho
          
          on Jenkins.
          
            Since GEF provides diverse capabilities that can be used
          without the
          
          IDE, I feel that the BREE should be as low as feasible.
          
            (Personally I do not find the latest Java features useful
          since sadly
          
          the debugging support is deficient; single stepping by 'lines'
          cannot
          
          work when a single line has multiple partial occluded
          constructs.)
          
              Regards
          
            Ed Willink
          
              On 20/12/2024 20:40, Patrick Ziegler via gef-dev wrote:
          
             
            
            As I understand it, Tycho will run
              tests using the configured
              
              Java 17 in the tool chain if the project says its test
              runs on
              
              Java 17.
              
            
                That's how it's supposed to work but after playing
            around with it
            
            for a while, I can say with high confidence that it'll fail
            for two
            
            reasons:
            
              1) We have integration tests that launch the Eclipse IDE.
            Because
            
            the IDE requires Java 21, the tests now also require Java
            21.
            
              2) Because Tycho has to be run with Java 21, the tests
            will always
            
            be executed with Java 21, even if explicitly told to
            consider the
            
            BREE (which is still set to Java 17).
            
              A few years ago I worked on a product that was still using
            Java 11,
            
            but we had to use Tycho 3.x and therefore built with Java
            17.
            
            Meaning that this behavior is very likely a regression in
            Tycho.
            
                
               
            I personally prefer that we also
              consider the consumers who are
              
              generally best served with the least restrictive
              requirements.
              
            
              That's a fair point. Then perhaps let's approach it from a
            
            different perspective: What plugins have to be executed with
            Java
            
            21?
            
              - As mentioned, we have the test fragments.
            
                - We also have the documentation. It doesn't make sense
            to use them
            
            without the Eclipse Help, so they should probably also
            require Java
            
            21, even if they only contain HTML.
            
                - For GEF, I'm also leaning towards Java 21, as it
            depends on the
            
            Eclipse Platform. Which is currently a real pain to
            configure
            
            without accidentally pulling in a Java 21 bundle...
            
                - For Draw2D and Zest, I'd then stick to Java 17 for the
            time
            
            being, as they only depend on SWT/JFace.
            
                
                On 18.12.24 14:09, Ed Merks via gef-dev wrote:
            
               
              I personally prefer that we also
              consider the consumers who are
              
              generally best served with the least restrictive
              requirements.
              
                As I understand it, Tycho will run tests using the
              configured
              
              Java 17 in the tool chain if the project says its test
              runs on
              
              Java 17.
              
                  Of course at some point some plugin dependency on
              which a GEF
              
              bundle depends will change its bound to 21 and then only
              building
              
              against an older target platform would allow for actual
              testing
              
              of Java 17 via actual tests.  If that happens during the
              current
              
              2025-03 release cycle, that might require to revisit the
              
              decision.  And of course another important consideration
              is what
              
              is easiest and the least work for the developers.  It's
              
              definitely nice to be able to use the latest language
              features!
              
                    On 18.12.2024 12:59, Lars Vogel via gef-dev wrote:
              
                 
                As always I prefer moving to the
                latest Java if possible. So +1
                
                for moving GEF to Java 21 (for the 2025-03 release).
                
                      On Wed, Dec 18, 2024 at 12:21 PM Patrick Ziegler
                via gef-dev
                
                <gef-dev@xxxxxxxxxxx> wrote:
                
                   
                    Hello everyone,
                  
                      The Eclipse Platform SDK now requires Java 21 due
                  to the
                  
                  dependency to Lucene 10.x which has already led to
                  build
                  
                  problems that could be seen here [1]. The latest
                  GEF-Classic
                  
                  build uses a workaround, to get both the Java 17 and
                  Java 21
                  
                  builds happy, but even that is no longer possible with
                  recent
                  
                  SimRel changes. In short: We are no longer able to
                  build and
                  
                  test GEF-Classic against Java 17, using the 2025-03
                  staging
                  
                  repository.
                  
                      This now also raises the question when we should
                  officially
                  
                  drop support for Java 17. As part of the Simultaneous
                  
                  Release, we are allowed to move to Java 21 since
                  2024-06, so
                  
                  all formal requirements have already been satisfied.
                  
                  Personally, I would either target the next release (as
                  part
                  
                  of 2025-03) or the release after that (2025-06). Given
                  that
                  
                  we're very early in the release cycle, both options
                  seem
                  
                  valid.
                  
                    What are your thoughts on this?
                  
                      Many regards,
                  
                    Patrick
                  
                      ---
                  
                      [1]
                  https://github.com/eclipse-gef/gef-classic/pull/628
                  
                  
                      -------- Forwarded Message --------
                  
                  Subject:    [cross-project-issues-dev] Platform 4.35
                  I-
                  
                  builds and the Platform SDK Now Require Java 21
                  
                  Date:    Tue, 17 Dec 2024 12:56:52 +0100
                  
                  From:    Ed Merks via cross-project-issues-dev
                  
                  <cross-project-issues-dev@xxxxxxxxxxx>
                  
                  Reply-To:     Cross project issues
                  
                  <cross-project-issues-dev@xxxxxxxxxxx>
                  
                  To:    Cross project issues
                  
                  <cross-project-issues-dev@xxxxxxxxxxx>
                  
                  CC:    Ed Merks <ed.merks@xxxxxxxxx>
                  
                  
                        Here are some background details about the
                  Platform's 4.35
                  
                  (2025-03) development:
                  
                     
                  https://github.com/eclipse-platform/eclipse.platform.releng.ag
                  
                  gregator/issues/2654
                  
                      ___________________________________________
                  
                      The latest Orbit summary table includes details
                  about the
                  
                  required Java version of each library prompted by
                  Lucene 10's
                  
                  requirement for Java 21 which is first library in
                  Orbit to
                  
                  require Java 21:
                  
                     
                  https://download.eclipse.org/tools/orbit/simrel/orbit-aggregat
                  
                  ion/table.html
                  
                      ___________________________________________
                  
                      This is what we're doing to prepare for the
                  eventual Java 24
                  
                  release:
                  
                     
                  https://github.com/eclipse-platform/eclipse.platform.releng.ag
                  
                  gregator/issues/2623
                  
                      ___________________________________________
                  
                      Expect a new (minor) version of Guava in Orbit for
                  M1 (or
                  
                  sooner) when this library is approved:
                  
                     
                  https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/
                  
                  17939
                  
                      ___________________________________________
                  
                      Happy Holidays!!!!
                  
                        _______________________________________________
                  
                    cross-project-issues-dev mailing list
                  
                    cross-project-issues-dev@xxxxxxxxxxx
                  
                    To unsubscribe from this list, visit
                  
https://www.eclipse.org/mailman/listinfo/cross-project-issues-dev
                  
                        _______________________________________________
                  
                    gef-dev mailing list
                  
                    gef-dev@xxxxxxxxxxx
                  
                    To unsubscribe from this list, visit
                  
                  https://www.eclipse.org/mailman/listinfo/gef-dev
                  
                    
                
                    
                    
                    --
                
                  Eclipse Platform project co-lead
                
                  CEO vogella GmbH
                
                    Haindaalwisch 17a, 22395 Hamburg
                
                  Amtsgericht Hamburg: HRB 127058
                
                  Geschäftsführer: Lars Vogel, Jennifer Nerlich de Vogel
                
                  USt-IdNr.: DE284122352
                
                  Fax (040) 5247 6322, Email: lars.vogel@xxxxxxxxxxx,
                Web:
                
                http://www.vogella.com
                
                     _______________________________________________
                
                gef-dev mailing list
                
                gef-dev@xxxxxxxxxxx
                
                To unsubscribe from this list, visit
                
                https://www.eclipse.org/mailman/listinfo/gef-dev
                
                  
                   _______________________________________________
              
              gef-dev mailing list
              
              gef-dev@xxxxxxxxxxx
              
              To unsubscribe from this list, visit
              
              https://www.eclipse.org/mailman/listinfo/gef-dev
              
                
                 _______________________________________________
            
            gef-dev mailing list
            
            gef-dev@xxxxxxxxxxx
            
            To unsubscribe from this list, visit
            
            https://www.eclipse.org/mailman/listinfo/gef-dev
            
              
            
          Virus-free.www.avast.com
          
          
            _______________________________________________
          
          gef-dev mailing list
          
          gef-dev@xxxxxxxxxxx
          
          To unsubscribe from this list, visit
          
          https://www.eclipse.org/mailman/listinfo/gef-dev
          
        
        _______________________________________________
        
        gef-dev mailing list
        
        gef-dev@xxxxxxxxxxx
        
        To unsubscribe from this list, visit
        https://www.eclipse.org/mailman/listinfo/gef-dev
        
      
      _______________________________________________
      
      gef-dev mailing list
      
      gef-dev@xxxxxxxxxxx
      
      To unsubscribe from this list, visit
      https://www.eclipse.org/mailman/listinfo/gef-dev