X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.25a (ClamAV 0.103.6/26747) X-Junk-Score: 0 [] X-KAS-Score: 0 [] Return-Path: Received: from mail-qt1-f179.google.com ([209.85.160.179] verified) by selbstdenker.ag (CommuniGate Pro SMTP 6.3.14) with ESMTPS id 29054387 for webobjects-dev@wocommunity.org; Mon, 12 Dec 2022 03:47:54 +0100 Received-SPF: pass receiver=post.selbstdenker.com; client-ip=209.85.160.179; envelope-from=recurve@cocoanutstech.com Received: by mail-qt1-f179.google.com with SMTP id s9so7707635qtx.6 for ; Sun, 11 Dec 2022 18:47:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chatnbike.com; s=chatnbike; h=to:references:message-id:cc:date:in-reply-to:from:subject :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tTs7okw2n88aLRQ5o8aGcvoA5VTka1l/2DgW2/++zXQ=; b=REOijzVgPk2qpUGECUwZnqkW0QpwSDtokTc1QjEVKYCBgM1kE3m9MlV2ZeECV5zYdJ tYSk3hbfBw/yRkUcVPSsY5Tz9swn/m1d2m4Oo70pxSvJDi7igCGtHiLG+dGHoUyifhyw TlY43NTbXKYFCGJw7qQv8xOByRVXIfILq4TTM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:references:message-id:cc:date:in-reply-to:from:subject :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tTs7okw2n88aLRQ5o8aGcvoA5VTka1l/2DgW2/++zXQ=; b=KvstA8ssm8v58LpkOkZy8hd6XZhJRa0lGeSW20oapdNfVyT4ewIxYjaVvMPGBIzV9h eY4Q26yMg4tHS9ftrdYITgTvLuH2PSPJyZHKyMEkBgMybnWBNdAav4ypcv/6rMIWfI8Q Kl3IdfemmnvGFjx3jbgJ3d05Z1HQ/pBmkxNhzLzlNvqmXf9VDQ4UiAwMoxRWnG6OjzZ9 uRcFjESMcN7tri21jeEp9qHy0GCv7lduELXuE4pLm00gkWhE2Gqj6rB3ioTEcOAA2jlY OayZsRX5jnSwqCrrjYfWWqBZW0xVK+tVsAOqwyOnvEWSCKxco61/tRnzzfzIHSA/4pVc JGuQ== X-Gm-Message-State: ANoB5pkCBQAwJflgcMRTQGTsaNADyp7xNbC5/LGABeA7Veu393l0pcbQ yNP7cyDLrMeEu5b8Px17rsbgWPVhAiIKDZVqjE4= X-Google-Smtp-Source: AA0mqf6IZ8+WoovFl6w9NsQ+mWqBm9M3lw+3eybqnVAwu9G8sRtKfEdcpFZn+mDjrKBclc48akWY9A== X-Received: by 2002:ac8:7117:0:b0:3a8:1178:5652 with SMTP id z23-20020ac87117000000b003a811785652mr6890384qto.58.1670813253073; Sun, 11 Dec 2022 18:47:33 -0800 (PST) Return-Path: Received: from smtpclient.apple (pool-173-79-19-72.washdc.fios.verizon.net. [173.79.19.72]) by smtp.gmail.com with ESMTPSA id bq17-20020a05620a469100b006ff8dfded9csm2265923qkb.38.2022.12.11.18.47.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 11 Dec 2022 18:47:32 -0800 (PST) Content-Type: multipart/alternative; boundary="Apple-Mail=_6833E7F7-EBC1-455B-BF61-1095E85144EB" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: [WO-DEV] duplication in frameworks: ERExtensions, javaeoaccess From: Aaron Rosenzweig In-Reply-To: Date: Sun, 11 Dec 2022 21:47:32 -0500 Cc: Ramsey.Gurley@practicemojo.com Message-Id: <35C941D4-790D-4FB3-B8C8-57DD5C54B366@chatnbike.com> References: To: WebObjects & WOnder Development X-Mailer: Apple Mail (2.3696.120.41.1.1) --Apple-Mail=_6833E7F7-EBC1-455B-BF61-1095E85144EB Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Thanks Ramsey but now I=E2=80=99m more confused.=20 Can we compile for Java 17 compliance or not? Before it sounded like you = said it wasn=E2=80=99t possible but now it sounds like you are saying it = is possible.=20 I tried to take one WOnder project, ERExtensions, and make it compile = for java 17 but I couldn=E2=80=99t get it to work in Eclipse. Files like = ERXApplication.java complain: The package org.w3c.dom is accessible from = more than one module: , java.xml I=E2=80=99m not adding a module-info.java or trying to force it in any = way to have extra jigsaw JMPS bells and whistles. If I make it compile = for java 1.8 (like the .project file does in WOnder) then it=E2=80=99s = happy. Change it to java 17 compliance and it fails.=20 In our own app, where we include things like = =E2=80=9Ccom.webobjects.eoaccess.EOAttribute=E2=80=9D I get: The package = com.webobjects.eoaccess is accessible from more than one module: = ERExtensions, javaeoaccess I only tried creating a module-info.java to see if that could buy us = anything but I don=E2=80=99t think it can.=20 I=E2=80=99m looking at your docker project right now. You mentioned it = earlier but I didn=E2=80=99t understand and still don=E2=80=99t really. = I=E2=80=99m not wanting to use docker right now=E2=80=A6 but maybe your = point is that this is a simple WO app using Java 17 that happens to be = in docker. I=E2=80=99m looking around the project in GitHub that you = made and see that it is pretty simple, like a proof of concept. Thank = you. Is it possible that it=E2=80=99s so simple that there aren=E2=80=99t = any conflicts with duplicate package definitions in different jars? Have = you been able to do this with an large/real project?=20 If Java 17 compliance is possible, what am I missing to be able to do it = in Eclipse?=20 > On Dec 11, 2022, at 9:14 PM, Ramsey Gurley = wrote: >=20 > Did you have a chance to look at >=20 > https://github.com/nullterminated/wodocker = >=20 >=20 > It uses Java 17, and it works >=20 > https://github.com/nullterminated/wodocker/blob/master/pom.xml#L77 = >=20 > I think the main confusion is thinking we have to use jigsaw post-java = 8, but that's not a requirement. There's no module-info.java in that = project, but it still works like WO always did. >=20 > Wonder can probably be updated similarly, but I see no need to cut off = anyone still using 8 just so one of the three patches received a year = can use a switch expression or something like that :) Maybe when JEP 182 = kicks in and Java 8 can no longer compile with latest JDK, then there is = more reason to update it. That said, I'm also not against updating to 17 = or whatever the latest LTS happens to be if everyone loves that idea. > From: WebObjects & WOnder Development > on behalf of Aaron Rosenzweig = > > Sent: Saturday, December 10, 2022 10:59 PM > To: WebObjects & WOnder Development > > Subject: [WO-DEV] Re: duplication in frameworks: ERExtensions, = javaeoaccess > =20 > Thanks Ramsey,=20 >=20 > To be clear, your situation is that you develop and deploy on a Java = 17 VM but you compile for Java 8 (1.8). This affords you a modern VM = with any of the latest security and timestamp updates. It also affords = you the use of Apple WebObjects and WOnder with little effort (besides = the ALL-UNNAMED tweak).=20 >=20 > Did I get that correct (at least roughly?)=20 >=20 > I want to be clear about it because it=E2=80=99s easy for someone to = say or hear =E2=80=9CThey are on Java 17=E2=80=9D and not fully = interpret what it means. I think all of us, if we are =E2=80=9Con Java = 17=E2=80=9D are running in 1.8 compliance mode.=20 >=20 >=20 >> On Dec 9, 2022, at 6:28 PM, Ramsey Gurley = > = wrote: >>=20 >> >If we are targeting Java 17 compliance >>=20 >> I don't really see any need for WOnder to go java 17 in source. = There's not a lot of active development happening in Wonder, so it would = be unnecessary work to do that and limit backward compatibility with = those still using 8. I just care that it continues to build without = errors using the latest java. That's what origin/master should do now. >>=20 >> As you pointed out, without access to source, it is getting harder = and harder to drag WebObjects into the future. >>=20 >> From: WebObjects & WOnder Development > on behalf of Aaron Rosenzweig = > >> Sent: Saturday, December 10, 2022 6:37 AM >> To: WebObjects & WOnder Development > >> Subject: [WO-DEV] duplication in frameworks: ERExtensions, = javaeoaccess >> =20 >> [You don't often get email from aaron@chatnbike.com = . Learn why this is important = athttps://aka.ms/LearnAboutSenderIdentification = ] >>=20 >> The package com.webobjects.eoaccess is defined in both: ERExtensions, = javaeoaccess >>=20 >> javaeoaccess is a framework from NeXT/Apple. >>=20 >> I believe ERExtensions recreated a distinctly apple package name so = that we could replace Apple's _EOExpressionArray with a new one from = Wonder. >>=20 >> This worked because if we load ERExtensions before = JavaEOAccess.framework=E2=80=A6 in the class path, the first one wins. = Old JVMs would happily take the first. While this is risky, it worked as = long as we were careful (and sort of knew what Apple was doing). We did = things like this because we didn=E2=80=99t own JavaEOAccess and = basically =E2=80=9Cpatched it=E2=80=9D because we wanted an improvement = that Apple didn=E2=80=99t provide. We could do better than Apple and = this is how we did it, while letting the rest of the Apple plumbing = continue working with particular object replacements. >>=20 >> This cannot work past Java 1.8 can it? If we are targeting Java 17 = compliance, we are then using JPMS (Java Package Module System) aka = =E2=80=9CJava Modules=E2=80=9D which won=E2=80=99t accept this type of = patch. >>=20 >> In my application project, I created a module-info.java and placed = these lines in it: >>=20 >> requires ERExtensions; >> requires javaeoaccess; >>=20 >> We need both lines right? But this results in the the following = unsurprising error: >> The package com.webobjects.eoaccess is accessible from more than one = module: ERExtensions, javaeoaccess >>=20 >> What am I missing? Are we stuck? Without being able to update the = Apple jars directly, the old hacks cannot work in the new word of Java = Modules. We=E2=80=99ve done this in many places including NSArray. Are = we stuck living in Java 1.8 compliance with Java 17? >> ############################################################# >> This message is sent to you because you are subscribed to >> the mailing list >. >> To unsubscribe, E-mail to: > >> To switch to the DIGEST mode, E-mail to = > >> To switch to the INDEX mode, E-mail to = > >> Send administrative queries to = > >>=20 >> Confidentiality Notice: This email, including all attachments and = replies thereto, are covered by the Electronic Communications Privacy = Act, 18 U.S.C. Sections 2510-2521 and are legally privileged. This = information is confidential, and intended only for the use of the = individuals or entities named above. If you are not the intended = recipient, you are hereby notified that any disclosure, copying, = distribution or the taking of any action in reliance on the contents of = this transmitted information is strictly prohibited. Please notify us if = you have received this transmission in error. Thank you. >=20 > Confidentiality Notice: This email, including all attachments and = replies thereto, are covered by the Electronic Communications Privacy = Act, 18 U.S.C. Sections 2510-2521 and are legally privileged. This = information is confidential, and intended only for the use of the = individuals or entities named above. If you are not the intended = recipient, you are hereby notified that any disclosure, copying, = distribution or the taking of any action in reliance on the contents of = this transmitted information is strictly prohibited. Please notify us if = you have received this transmission in error. Thank you. --Apple-Mail=_6833E7F7-EBC1-455B-BF61-1095E85144EB Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Thanks Ramsey but now I=E2=80=99m more confused. 

Can we compile for Java = 17 compliance or not? Before it sounded like you said it wasn=E2=80=99t = possible but now it sounds like you are saying it is = possible. 

I tried to take one WOnder project, ERExtensions, and make it = compile for java 17 but I couldn=E2=80=99t get it to work in Eclipse. = Files like ERXApplication.java complain: The package org.w3c.dom is = accessible from more than one module: <unnamed>, = java.xml

I=E2=80= =99m not adding a module-info.java or trying to force it in any way to = have extra jigsaw JMPS bells and whistles. If I make it compile for java = 1.8 (like the .project file does in WOnder) then it=E2=80=99s happy. = Change it to java 17 compliance and it fails. 

In our own app, where we = include things like =E2=80=9Ccom.webobjects.eoaccess.EOAttribute=E2=80=9D = I get: The package com.webobjects.eoaccess is accessible from more = than one module: ERExtensions, javaeoaccess

I only tried creating a = module-info.java to see if that could buy us anything but I don=E2=80=99t = think it can. 

I=E2=80=99m looking at your docker project right now. You = mentioned it earlier but I didn=E2=80=99t understand and still don=E2=80=99= t really. I=E2=80=99m not wanting to use docker right now=E2=80=A6 but = maybe your point is that this is a simple WO app using Java 17 that = happens to be in docker. I=E2=80=99m looking around the project in = GitHub that you made and see that it is pretty simple, like a proof of = concept. Thank you. Is it possible that it=E2=80=99s so simple that = there aren=E2=80=99t any conflicts with duplicate package definitions in = different jars? Have you been able to do this with an large/real = project? 

If Java 17 compliance is possible, what am I missing to be = able to do it in Eclipse? 

On Dec 11, 2022, at 9:14 PM, Ramsey Gurley <Ramsey.Gurley@practicemojo.com> wrote:

Did you have a = chance to look at



It uses Java 17, and it = works


I think the main confusion = is thinking we have to use jigsaw post-java 8, but that's not a = requirement. There's no module-info.java in that project, but it still = works like WO always did.

Wonder can probably be updated similarly, but I see no need to = cut off anyone still using 8 just so one of the three patches received a = year can use a switch expression or something like that :) Maybe when = JEP 182 kicks in and Java 8 can no longer compile with latest JDK, then = there is more reason to update it. That said, I'm also not against = updating to 17 or whatever the latest LTS happens to be if everyone = loves that idea.

From: WebObjects & WOnder = Development <webobjects-dev@wocommunity.org> on behalf of Aaron = Rosenzweig <aaron@chatnbike.com>
Sent: Saturday, December 10, 2022 = 10:59 PM
To: WebObjects & WOnder = Development <webobjects-dev@wocommunity.org>
Subject: [WO-DEV] Re: duplication in = frameworks: ERExtensions, javaeoaccess
 
Thanks Ramsey, 

To be clear, your situation is that you = develop and deploy on a Java 17 VM but you compile for Java 8 (1.8). = This affords you a modern VM with any of the latest security and = timestamp updates. It also affords you the use of Apple WebObjects and = WOnder with little effort (besides the ALL-UNNAMED = tweak). 

Did I get that correct (at least roughly?) 

I want to be clear about = it because it=E2=80=99s easy for someone to say or hear =E2=80=9CThey = are on Java 17=E2=80=9D and not fully interpret what it means. I think = all of us, if we are =E2=80=9Con Java 17=E2=80=9D are running in 1.8 = compliance mode. 


On Dec 9, 2022, at 6:28 PM, Ramsey Gurley = <Ramsey.Gurley@practicemojo.com> wrote:

>If we are targeting Java 17 = compliance

I don't really see any need for = WOnder to go java 17 in source. There's not a lot of active development = happening in Wonder, so it would be unnecessary work to do that and = limit backward compatibility with those still using 8. I just care that = it continues to build without errors using the latest java. That's what = origin/master should do now.

As you pointed out, without access to = source, it is getting harder and harder to drag WebObjects into the = future.


From: WebObjects & WOnder = Development <webobjects-dev@wocommunity.org> on behalf of Aaron = Rosenzweig <aaron@chatnbike.com>
Sent: Saturday, December 10, = 2022 6:37 AM
To: WebObjects & WOnder = Development <webobjects-dev@wocommunity.org>
Subject: [WO-DEV] duplication in = frameworks: ERExtensions, javaeoaccess
 
[You don't often get email from aaron@chatnbike.com. = Learn why this is important athttps://aka.ms/LearnAboutSenderIdentification ]

The package com.webobjects.eoaccess is defined in both: = ERExtensions, javaeoaccess

javaeoaccess is = a framework from NeXT/Apple.

I believe = ERExtensions recreated a distinctly apple package name so that we could = replace Apple's _EOExpressionArray with a new one from Wonder.

This worked because if we load ERExtensions = before JavaEOAccess.framework=E2=80=A6 in the class path, the first one = wins. Old JVMs would happily take the first. While this is risky, it = worked as long as we were careful (and sort of knew what Apple was = doing). We did things like this because we didn=E2=80=99t own = JavaEOAccess and basically =E2=80=9Cpatched it=E2=80=9D because we = wanted an improvement that Apple didn=E2=80=99t provide. We could do = better than Apple and this is how we did it, while letting the rest of = the Apple plumbing continue working with particular object = replacements.

This cannot work past Java = 1.8 can it? If we are targeting Java 17 compliance, we are then using = JPMS (Java Package Module System) aka =E2=80=9CJava Modules=E2=80=9D = which won=E2=80=99t accept this type of patch.

In my application project, I created a module-info.java and = placed these lines in it:

requires = ERExtensions;
requires javaeoaccess;

We need both lines right? But this results in the the = following unsurprising error:
The package = com.webobjects.eoaccess is accessible from more than one module: = ERExtensions, javaeoaccess

What am I = missing? Are we stuck? Without being able to update the Apple jars = directly, the old hacks cannot work in the new word of Java Modules. = We=E2=80=99ve done this in many places including NSArray. Are we stuck = living in Java 1.8 compliance with Java 17?
#############################################################This message is sent to you because you are subscribed = to
  the mailing list <webobjects-dev@wocommunity.org>.
To = unsubscribe, E-mail to: <webobjects-dev-off@wocommunity.org>
To = switch to the DIGEST mode, E-mail to <webobjects-dev-digest@wocommunity.org>
To = switch to the INDEX mode, E-mail to <webobjects-dev-index@wocommunity.org>
Send= administrative queries to  <webobjects-dev-request@wocommunity.org>


Confidentiality = Notice: This email, including all = attachments and replies thereto, are covered by the Electronic = Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally = privileged. This information is confidential, and intended only for the = use of the individuals or entities named above. If you are not the = intended recipient, you are hereby notified that any disclosure, = copying, distribution or the taking of any action in reliance on the = contents of this transmitted information is strictly prohibited. Please = notify us if you have received this transmission in error. Thank = you.


Confidentiality Notice: This email, including all = attachments and replies thereto, are covered by the Electronic = Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally = privileged. This information is confidential, and intended only for the = use of the individuals or entities named above. If you are not the = intended recipient, you are hereby notified that any disclosure, = copying, distribution or the taking of any action in reliance on the = contents of this transmitted information is strictly prohibited. Please = notify us if you have received this transmission in error. Thank = you.

= --Apple-Mail=_6833E7F7-EBC1-455B-BF61-1095E85144EB--