Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 97801200C3A for ; Fri, 31 Mar 2017 11:34:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 96124160B8C; Fri, 31 Mar 2017 09:34:05 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id D8656160B80 for ; Fri, 31 Mar 2017 11:34:04 +0200 (CEST) Received: (qmail 62148 invoked by uid 500); 31 Mar 2017 09:34:04 -0000 Mailing-List: contact users-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@groovy.apache.org Delivered-To: mailing list users@groovy.apache.org Received: (qmail 62138 invoked by uid 99); 31 Mar 2017 09:34:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 31 Mar 2017 09:34:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 83E3DC2536 for ; Fri, 31 Mar 2017 09:34:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.721 X-Spam-Level: X-Spam-Status: No, score=-0.721 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id qa4b3Aw773KJ for ; Fri, 31 Mar 2017 09:34:02 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id A43235F58E for ; Fri, 31 Mar 2017 09:34:01 +0000 (UTC) Received: from [192.168.1.5] ([77.177.185.11]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LbyUS-1cSUge1Q9M-00jHCJ for ; Fri, 31 Mar 2017 11:34:00 +0200 Subject: Re: Maven coordinates going forward To: users@groovy.apache.org References: <1490860440.23265.6.camel@winder.org.uk> <5C676E6359909E478C7B811BDB48CA3567D094@CWWAPP478.windstream.com> <5C676E6359909E478C7B811BDB48CA3567D44F@CWWAPP478.windstream.com> From: Jochen Theodorou Message-ID: <58DE2285.1040602@gmx.org> Date: Fri, 31 Mar 2017 11:33:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:+tB6+EUGEFd9bGBQy0YoqPVzuwjJymj7+Eh0jKzqBIlDpqDM3q+ EkqjgAjBEWbD21G4wXuU+h2U9iTXsxgS0YrWjynewWIcSsdkszLF2gCwhUFMOgtqhZk0MAH Zpq1lTmt2CZI/dXJ4ymjiyM6HZpEkKU4O+GIJ9yE1Hsv5GtekvRePZ7wbFqWkLYfSkRHGM/ 341pcFKlZsY9blHP/8y4A== X-UI-Out-Filterresults: notjunk:1;V01:K0:bZu/14KbafM=:3syckUqAIdnb9Uzl5m+FVm c34uliv9Eb6ty9BHhndCYGtVGgeodZRwytUNfI5uhfvuLJTNU1yrx+tW7sZ2kobt7LvmNOuvx 71hDCwcJELUS0waIa7aB7AupoMHHB2s2LLyF/byFMH24yOoTATAXbSexQv+4sqpPxWzmew20g xjUXGOLvQ2sduwDt5z2DszxwcuO8NTZ/dNShKUHMa6pJK3Dp6llgscfCneZWRs6GD1CTEtwKk BWW58KTdl1ifHOUa1trJsBcq08SfGNz84+BMFXgSegNKIaBQ8laPa86Wen1XtVepdQhJhA++l R4LmkbNFjjn+H9/8k9ATpg6ed1JaS9vQH42v+gjcbVgeruh3YQaMxNdsK/r1k/ZXr0QttmVSq RJ51vmsOD4fFJNKNzdPS3jgf41gT89jzNN6wMDoB8MHpRZyQ4VU1MKdaaK4dYTYek+kUiwpx9 O/w/JOVQVc+wV6IS65pBto72vEy8XAvlJTt77mfQsvQqZbLBu0TqPGmPxAplqrh/v96XCW84t tIub+NPmA4liyFTNqk3SOPu8zXrpz4rXfe3ZABM9WbwEOXcKtLGubs00AifklXPpXZ6dmakPa Ue4Q3G+Z53F+TaWtZyHeolktD/5Zs0vPovtiaHuwbJOa7lkWHNuDHjmUPhY3l+6qV+a4dvPAh kirsnXRGmPM8t+98mhjIHbvVSTToHtUtQM4DFwfW4ZhlOpoikN790s+re01BiowOzhs2Hv0bj hoZ3dpE9vO+6mGOCFlJE6gguuhga8ZQFlnP00th6XQCIlnkqYF+Bp9bo2IzL+IzAwbTOX6cxk 9ZwJMuE archived-at: Fri, 31 Mar 2017 09:34:05 -0000 On 30.03.2017 20:58, Miro Bezjak wrote: [...] > So if we are talking about JDK9 modules them I'm with Jason and the rest > of you. Sure, breaking backwards compatibility is a sensible thing to do > in that case. and I wish I would know how to solve all the problems. Right now it seems like Groovy will run in classpath mode better than it will ever as a module. And I wished we could just stay like that. But once a module wants to depend on Groovy we are in trouble. [...] > If my memory serves me right didn't gradle also require groovy1 for > plugin development a long time after release of groovy2 due to fear of > backwards incompatibilities? I believe Jochen calmed their concerns. I showed them ways to get around the incompatibilities. But yes, groovy1 was required for quite a long time. > And yet again - if the reasons are right - break backwards compatibility. > > So now that we have changed the topic, may I ask: is JDK9 modules > compatibility coming in groovy3? For Groovy in classpath mode there is one more change to do by using JDK9 specific code, which is to allow to call default methods on proxies. For Groovy as named module... there are several things to do (writing down in no order) * we have to resolve the circular dependency between groovy-test and groovy-core * we have duplicated packages in some of our current modules * we have to decide if we want to go with the same modules at all * we may have to resort to a fat module that includes everything * if we want groovy3 and groovy2 as separate modules, they cannot share exact package names. That has a very big impact on the groovy.lang and groovy.util package for example. * if we do no compatibility module for groovy2 (only a jar), then it means the Groovy 3 module cannot call code from the groovy 2 jar easily. Not with pure Java at least. * our joint compilation is untested for modules * getting gradle to run under JDK9 is quite painful atm. I have yet to check if using JAVA_OPTS like in https://github.com/gradle/gradle/issues/719 at the very end will work (I always tried GRADLE_OPTS and the jvmargs) * we will have to get accessibility right, which means we have to rework completely how we build a meta class (and how I planed to build one for MOP2). This also means we will not be able to call private methods of Java classes anymore, as the modules system is in the way for this. This will affect testing and begs the question, if we should do it like we did in the past for Groovy code still. We actually have this problem in classpath mode as well. It can be solved by command line switches or by transforming the modules on load... none of that is a good solution in my opinion. * we will have jdk9 specific code and we will require jdk9 for the build. Thus we will very likely require a multi release jar * @Grab's usage of the system class loader is no option in JDK9 anymore, we will have to deprecate things here. there is most likely a lot more > Also, I like the Céderic's idea of corunnable groovy 2 & 3. Anybody else > entertaining that idea? Is it doable considering the shared groovy.* > packages? well... depends... if Groovy 3 and 2-compat are in the same module, yes. Otherwise Groovy 3 has to use a different package. Or we say Groovy 2 is not available as module and has to be used in classpath mode. Then this is also possible. to run Groovy 3 and Groovy 2 in classpath mode at the same time, we still have the problem of overlapping class names in the same package... GroovyObject for example is very likely to go away, making most classes in groovy.lang different. bye Jochen