Jojo: Dyn. Nachladen von veränderten Klassen in Multiprozesssystem

Beitrag lesen

Hallo zusammen (Sorry für den Doppelpost -> hab den Vorschauhaken vergessen)

Ich habe hier eine kleine aber feine Problemstellung. Prof. Meixner meinte dazu, "Ein nicht triviales Problem".

Es geht um folgendes:
Wir haben drei Klassen A, B und C. Jede dieser Klassen besitzt Attribute mit allen erlaubten Modifiern und stellt Methoden bereit.
A hat wie auch C eine Referenz auf ein B-Objekt. (die _gleiche_ Referenz)
A hat zusätzlich eine Referenz auf ein C-Objekt.
B hat eine Referent auf ein C-Objekt.

  
A ---> B <---> C  
|              ^  
|              |  
+--------------+  

Nun gibt es _zwei_ Prozesse P1 und P2 (zwei main-Threads, nicht zwei Threads in einer main), die beide auf die Klassen zugreifen.
P1 -> A, B
P2 -> B, C
=> B wird in beiden Prozessen per implizitem ClassLoading geladen und verwendet.

Nun zum Problem:
B wird verändert (Methode löschen, ändern, hinzufügen, usw.).
Wie ist es möglich B in die _laufenden_ Prozesse einzuschleusen? Was passiert mit den bestehenden Referenzen in A und C auf B? Müssen A und C auch neu geladen werden?
Und zuletzt wie realisiert man dieses Szenario?

Lösungsansatz:
URLClassLoader verwenden. (hab ehrlich gesagt nicht zu 100% verstanden, was er bringt)
In diesem Buch [OpenBook: Java ist auch eine Insel] wird eine ähnliche Problematik angesprochen. Sie hilft _mir_ nur leider nicht weiter.

Ich würde mich freuen, wenn ihr mir helfen könntet.

Mit freundlichen Grüßen
Jojo