Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

Never put off till run-time what you can do at compile-time. -- D. Gries


computers / comp.os.vms / Re: Java Is UnbeluckingFievable (was Re: Versioning fun)

SubjectAuthor
* Versioning funArne Vajhøj
+* Re: Versioning funSingle Stage to Orbit
|`* Re: Versioning funArne Vajhøj
| `* Re: Versioning funSingle Stage to Orbit
|  `- Re: Versioning funArne Vajhøj
`- Re: Java Is UnbeluckingFievable (was Re: Versioning fun)Lawrence D'Oliveiro

1
Versioning fun

<uu15uf$2rjr8$2@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=33842&group=comp.os.vms#33842

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arne@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Versioning fun
Date: Wed, 27 Mar 2024 09:11:43 -0400
Organization: A noiseless patient Spider
Lines: 63
Message-ID: <uu15uf$2rjr8$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 27 Mar 2024 13:11:43 +0100 (CET)
Injection-Info: dont-email.me; posting-host="063bc670acbd1895d60484099e2722a2";
logging-data="3002216"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19KySJc1WWIAYxJ3rdHpalBvB+DM7uf1CQ="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:uzz+OsBZWvDlMZEN96muK+yrdv0=
Content-Language: en-US
 by: Arne Vajhøj - Wed, 27 Mar 2024 13:11 UTC

A relative little know fact about the JVM is that
it implicit prefixes class names with the id of
the classloader.

That mean that it is possible to load and use
different version of the same class within the
same application. If one knows how.

$ type HasTest.java
public interface HasTest {
public void test();
} $ javac HasTest.java
$ copy X_v1.java X.java
$ type X.java
public class X implements HasTest {
public void test() {
System.out.printf("Technically I am a %s, but I am version
1\n", this.getClass().getName());
}
} $ javac X.java
$ jar cvf v1.jar X.class
added manifest
adding: X.class(in = 588) (out= 376)(deflated 36%)
$ del X.class;*
$ copy X_v2.java X.java
$ type X.java
public class X implements HasTest {
public void test() {
System.out.printf("Technically I am a %s, but I am version
2\n", this.getClass().getName());
}
} $ javac X.java
$ jar cvf v2.jar X.class
added manifest
adding: X.class(in = 588) (out= 376)(deflated 36%)
$ del X.class;*
$ type TestX.java
import java.io.File;
import java.net.URI;
import java.net.URL;
import java.net.URLClassLoader;

public class TestX {
public static void main(String[] args) throws Exception {
ClassLoader v1 = new URLClassLoader(new URL[] { (new
File("v1.jar")).toURI().toURL() });
HasTest o1 = (HasTest)Class.forName("X", true, v1).newInstance();
o1.test();
ClassLoader v2 = new URLClassLoader(new URL[] { (new
File("v2.jar")).toURI().toURL() });
HasTest o2 = (HasTest)Class.forName("X", true, v2).newInstance();
o2.test();
}
} $ javac TestX.java
$ java "TestX"
Technically I am a X, but I am version 1
Technically I am a X, but I am version 2

Arne

Re: Versioning fun

<9cc8ee9e173d2601cd7f6c1bb3f120d91ba54b89.camel@munted.eu>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=33853&group=comp.os.vms#33853

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: alex.buell@munted.eu (Single Stage to Orbit)
Newsgroups: comp.os.vms
Subject: Re: Versioning fun
Date: Wed, 27 Mar 2024 14:30:59 +0000
Organization: One very high maintenance cat
Lines: 10
Message-ID: <9cc8ee9e173d2601cd7f6c1bb3f120d91ba54b89.camel@munted.eu>
References: <uu15uf$2rjr8$2@dont-email.me>
Reply-To: alex.buell@munted.eu
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Injection-Date: Wed, 27 Mar 2024 14:33:25 +0100 (CET)
Injection-Info: dont-email.me; posting-host="4675fb2b488fde675b32362ca3df4d69";
logging-data="3050910"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+XKapifNFvNMPHW+CA9zXUIIW97zzOcXo="
User-Agent: Evolution 3.50.2
Cancel-Lock: sha1:JBI7CJf4gIbT7b/1oNu6p+fU5Wc=
In-Reply-To: <uu15uf$2rjr8$2@dont-email.me>
Autocrypt: addr=alex.buell@munted.eu; prefer-encrypt=mutual;
keydata=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
 by: Single Stage to Orbi - Wed, 27 Mar 2024 14:30 UTC

On Wed, 2024-03-27 at 09:11 -0400, Arne Vajhøj wrote:
> $ java "TestX"
> Technically I am a X, but I am version 1
> Technically I am a X, but I am version 2

It is vital to delete the X.class files otherwise it will load that
instead of the jar files.
--
Tactical Nuclear Kittens

Re: Versioning fun

<uu1cgu$2th83$1@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=33856&group=comp.os.vms#33856

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arne@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Versioning fun
Date: Wed, 27 Mar 2024 11:03:57 -0400
Organization: A noiseless patient Spider
Lines: 109
Message-ID: <uu1cgu$2th83$1@dont-email.me>
References: <uu15uf$2rjr8$2@dont-email.me>
<9cc8ee9e173d2601cd7f6c1bb3f120d91ba54b89.camel@munted.eu>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 27 Mar 2024 15:03:59 +0100 (CET)
Injection-Info: dont-email.me; posting-host="063bc670acbd1895d60484099e2722a2";
logging-data="3065091"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+7MSWeNyJGw3kKCX9qIBm3AXLjKr7QSVI="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:AMrp5XMh2yJuSz7UrAih+Ze9sH4=
In-Reply-To: <9cc8ee9e173d2601cd7f6c1bb3f120d91ba54b89.camel@munted.eu>
Content-Language: en-US
 by: Arne Vajhøj - Wed, 27 Mar 2024 15:03 UTC

On 3/27/2024 10:30 AM, Single Stage to Orbit wrote:
> On Wed, 2024-03-27 at 09:11 -0400, Arne Vajhøj wrote:
>> $ java "TestX"
>> Technically I am a X, but I am version 1
>> Technically I am a X, but I am version 2
>
> It is vital to delete the X.class files otherwise it will load that
> instead of the jar files.

Yes. I should probably have mentioned that explicit.

Java class loaders are hierarchical and searched top down. The
default class loader with default classpath of current directory
is searched before the jar files in the special class loaders.

$ type Dump.java
import java.io.File;
import java.net.URI;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.List;
import java.util.ArrayList;

public class Dump {
private static void dump(String lbl, ClassLoader cl) {
List<ClassLoader> lst = new ArrayList<ClassLoader>();
ClassLoader cl1 = cl;
do {
lst.add(cl1);
cl1 = cl1.getParent();
} while(cl1 != null);
System.out.printf("Class search path for %s:\n", lbl);
for(int i = lst.size() - 1; i >= 0; i--) {
System.out.printf(" %d - %s", lst.size() - i,
lst.get(i).getClass().getName());
if(lst.get(i) instanceof URLClassLoader) {
System.out.print(" -");
for(URL url : ((URLClassLoader)lst.get(i)).getURLs()) {
System.out.printf(" %s", url);
}
}
System.out.println();
}
}
public static void main(String[] args) throws Exception {
dump("Default", Dump.class.getClassLoader());
ClassLoader v1 = new URLClassLoader(new URL[] { (new
File("v1.jar")).toURI().toURL() });
dump("V1 library", v1);
ClassLoader v2 = new URLClassLoader(new URL[] { (new
File("v2.jar")).toURI().toURL() });
dump("V2 library", v2);
}
} $ javac Dump.java
$ java Dump
Class search path for Default:
1 - sun.misc.Launcher$ExtClassLoader -
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/cldrdata.jar
file:/DISK$X86SYS/SYS0
/SYSCOMMON/openjdk$80/jre/lib/ext/dnsns.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/jaccess.jar
file:/DISK$X86SYS/SY
S0/SYSCOMMON/openjdk$80/jre/lib/ext/localedata.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/nashorn.jar
file:/DISK$X8
6SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunec.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunjce_provider.jar
fil
e:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunpkcs11.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/zipfs.jar
2 - sun.misc.Launcher$AppClassLoader - file:/DISK2/ARNE/
Class search path for V1 library:
1 - sun.misc.Launcher$ExtClassLoader -
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/cldrdata.jar
file:/DISK$X86SYS/SYS0
/SYSCOMMON/openjdk$80/jre/lib/ext/dnsns.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/jaccess.jar
file:/DISK$X86SYS/SY
S0/SYSCOMMON/openjdk$80/jre/lib/ext/localedata.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/nashorn.jar
file:/DISK$X8
6SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunec.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunjce_provider.jar
fil
e:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunpkcs11.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/zipfs.jar
2 - sun.misc.Launcher$AppClassLoader - file:/DISK2/ARNE/
3 - java.net.URLClassLoader - file:/DISK2/ARNE/v1.jar
Class search path for V2 library:
1 - sun.misc.Launcher$ExtClassLoader -
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/cldrdata.jar
file:/DISK$X86SYS/SYS0
/SYSCOMMON/openjdk$80/jre/lib/ext/dnsns.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/jaccess.jar
file:/DISK$X86SYS/SY
S0/SYSCOMMON/openjdk$80/jre/lib/ext/localedata.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/nashorn.jar
file:/DISK$X8
6SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunec.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunjce_provider.jar
fil
e:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunpkcs11.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/zipfs.jar
2 - sun.misc.Launcher$AppClassLoader - file:/DISK2/ARNE/
3 - java.net.URLClassLoader - file:/DISK2/ARNE/v2.jar

Arne

Re: Versioning fun

<3682b7a5daba005a6cc73b988fcdb74aebee62b5.camel@munted.eu>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=33859&group=comp.os.vms#33859

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: alex.buell@munted.eu (Single Stage to Orbit)
Newsgroups: comp.os.vms
Subject: Re: Versioning fun
Date: Wed, 27 Mar 2024 16:13:15 +0000
Organization: One very high maintenance cat
Lines: 15
Message-ID: <3682b7a5daba005a6cc73b988fcdb74aebee62b5.camel@munted.eu>
References: <uu15uf$2rjr8$2@dont-email.me>
<9cc8ee9e173d2601cd7f6c1bb3f120d91ba54b89.camel@munted.eu>
<uu1cgu$2th83$1@dont-email.me>
Reply-To: alex.buell@munted.eu
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Injection-Date: Wed, 27 Mar 2024 16:13:41 +0100 (CET)
Injection-Info: dont-email.me; posting-host="4675fb2b488fde675b32362ca3df4d69";
logging-data="3098053"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+0lL9KEIUly/HVhol8OW3v5+09sEYz42k="
User-Agent: Evolution 3.50.2
Cancel-Lock: sha1:1yjWZ5KCJfS62ZIIbICHKut0hN0=
Autocrypt: addr=alex.buell@munted.eu; prefer-encrypt=mutual;
keydata=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
In-Reply-To: <uu1cgu$2th83$1@dont-email.me>
 by: Single Stage to Orbi - Wed, 27 Mar 2024 16:13 UTC

On Wed, 2024-03-27 at 11:03 -0400, Arne Vajhøj wrote:
> > It is vital to delete the X.class files otherwise it will load that
> > instead of the jar files.
>
> Yes. I should probably have mentioned that explicit.
>
> Java class loaders are hierarchical and searched top down. The
> default class loader with default classpath of current directory
> is searched before the jar files in the special class loaders.

There's the '-cp' to find these classes in other places. My long
repressed java memories are returning, :(
--
Tactical Nuclear Kittens

Re: Versioning fun

<uu1ivp$2uvsj$1@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=33861&group=comp.os.vms#33861

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arne@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Versioning fun
Date: Wed, 27 Mar 2024 12:54:16 -0400
Organization: A noiseless patient Spider
Lines: 73
Message-ID: <uu1ivp$2uvsj$1@dont-email.me>
References: <uu15uf$2rjr8$2@dont-email.me>
<9cc8ee9e173d2601cd7f6c1bb3f120d91ba54b89.camel@munted.eu>
<uu1cgu$2th83$1@dont-email.me>
<3682b7a5daba005a6cc73b988fcdb74aebee62b5.camel@munted.eu>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 27 Mar 2024 16:54:17 +0100 (CET)
Injection-Info: dont-email.me; posting-host="063bc670acbd1895d60484099e2722a2";
logging-data="3112851"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Ba/7WQhPVeoT1XxWbalfubDvp94VlWyo="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ZGy0M76bHmPcGKaD3Tr116C7o8g=
Content-Language: en-US
In-Reply-To: <3682b7a5daba005a6cc73b988fcdb74aebee62b5.camel@munted.eu>
 by: Arne Vajhøj - Wed, 27 Mar 2024 16:54 UTC

On 3/27/2024 12:13 PM, Single Stage to Orbit wrote:
> On Wed, 2024-03-27 at 11:03 -0400, Arne Vajhøj wrote:
>>> It is vital to delete the X.class files otherwise it will load that
>>> instead of the jar files.
>>
>> Yes. I should probably have mentioned that explicit.
>>
>> Java class loaders are hierarchical and searched top down. The
>> default class loader with default classpath of current directory
>> is searched before the jar files in the special class loaders.
>
> There's the '-cp' to find these classes in other places. My long
> repressed java memories are returning, :(

Whatever is specified by -cp get added to the app class loader.

$ java -cp .:a.jar:/foo/b.jar:/bar/c.jar Dump
Class search path for Default:
1 - sun.misc.Launcher$ExtClassLoader -
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/cldrdata.jar
file:/DISK$X86SYS/SYS0
/SYSCOMMON/openjdk$80/jre/lib/ext/dnsns.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/jaccess.jar
file:/DISK$X86SYS/SY
S0/SYSCOMMON/openjdk$80/jre/lib/ext/localedata.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/nashorn.jar
file:/DISK$X8
6SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunec.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunjce_provider.jar
fil
e:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunpkcs11.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/zipfs.jar
2 - sun.misc.Launcher$AppClassLoader - file:/DISK2/ARNE/
file:/DISK2/ARNE/a.jar file:/foo/b.jar file:/bar/c.jar
Class search path for V1 library:
1 - sun.misc.Launcher$ExtClassLoader -
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/cldrdata.jar
file:/DISK$X86SYS/SYS0
/SYSCOMMON/openjdk$80/jre/lib/ext/dnsns.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/jaccess.jar
file:/DISK$X86SYS/SY
S0/SYSCOMMON/openjdk$80/jre/lib/ext/localedata.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/nashorn.jar
file:/DISK$X8
6SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunec.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunjce_provider.jar
fil
e:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunpkcs11.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/zipfs.jar
2 - sun.misc.Launcher$AppClassLoader - file:/DISK2/ARNE/
file:/DISK2/ARNE/a.jar file:/foo/b.jar file:/bar/c.jar
3 - java.net.URLClassLoader - file:/DISK2/ARNE/v1.jar
Class search path for V2 library:
1 - sun.misc.Launcher$ExtClassLoader -
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/cldrdata.jar
file:/DISK$X86SYS/SYS0
/SYSCOMMON/openjdk$80/jre/lib/ext/dnsns.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/jaccess.jar
file:/DISK$X86SYS/SY
S0/SYSCOMMON/openjdk$80/jre/lib/ext/localedata.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/nashorn.jar
file:/DISK$X8
6SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunec.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunjce_provider.jar
fil
e:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/sunpkcs11.jar
file:/DISK$X86SYS/SYS0/SYSCOMMON/openjdk$80/jre/lib/ext/zipfs.jar
2 - sun.misc.Launcher$AppClassLoader - file:/DISK2/ARNE/
file:/DISK2/ARNE/a.jar file:/foo/b.jar file:/bar/c.jar
3 - java.net.URLClassLoader - file:/DISK2/ARNE/v2.jar

Arne

Re: Java Is UnbeluckingFievable (was Re: Versioning fun)

<uu22bg$32on1$2@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=33872&group=comp.os.vms#33872

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.os.vms
Subject: Re: Java Is UnbeluckingFievable (was Re: Versioning fun)
Date: Wed, 27 Mar 2024 21:16:33 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 31
Message-ID: <uu22bg$32on1$2@dont-email.me>
References: <uu15uf$2rjr8$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 27 Mar 2024 21:16:33 +0100 (CET)
Injection-Info: dont-email.me; posting-host="8baffb6984259fed83ea1b23aab47960";
logging-data="3236577"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18OLp5AhupQmzOC54XCW7r4"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:sWJ77455XS5fNqW50wooJSY4t14=
 by: Lawrence D'Oliv - Wed, 27 Mar 2024 21:16 UTC

On Wed, 27 Mar 2024 09:11:43 -0400, Arne Vajhøj wrote:

> A relative little know fact about the JVM is that it implicit prefixes
> class names with the id of the classloader.

I currently have to use Java for a project that involves connecting to an
in-house server via HTTPS (modifying an existing app). If there is one
word that sums up the Java language and APIs, it is “bureaucracy”.

Consider setting up a TLS/SSL context. In Python, creating the context
object is one call:

sctx = ssl.SSLContext(protocol = ssl.PROTOCOL_TLS_CLIENT)

Loading a private CA cert is one call:

sctx.load_verify_locations(ca_cert_file)

Loading a cert and key for client-side authentication is one call:

sctx.load_cert_chain(client_cert_file, client_key_file)

But in Java, you first need to create a KeyStore. Load the CA cert via a
CertificateFactory and creating a TrustedCertificateEntry. Call the
factory’s generateCertificate routine to load the client cert. Then go
through a whole lot more contortions to load the client key file.

And then, you have to set up a TrustManagerFactory to create a
TrustManager, and a KeyManagerFactory to create a KeyManager, so that you
can load the contents of the KeyStore, via those two separate intermediary
objects, into an actual SSLContext for use in HTTPS connections.

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor