Mglichkeiten zur Erweiterung der Java Implementation in MuPAD
==============================================================

1) Automatische Auswahl aller verfgbaren JVM's durch Registry
   (In Dipl. erlutert, warum dieser Ansatz nicht verfolgt wurde -> Linux !)

Question  Am using JNI_CreateJavaVM to embed a VM in my application. 
But i want to allow users to set switch between "hotspot", "classic" and "server". 
How does java.exe and javaw.exe implement this?  
Topics  Java:API:JNI  
Author  Davanum Srinivas PREMIUM  
Created  Jul 28, 2001  
 

Answer:
"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" has a CurrentVersion key. 
If the value of this key is "1.3.1", then "\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.3.1\JavaHome" has 
the directory where this version of JRE is installed (say "C:\Program Files\JavaSoft\JRE\1.3.1"). 
Relative to this path a file called "jvm.cfg" in directory "lib" is read. 
This file contains a list of available JVM versions. On my machine this file contains three lines: 
-hotspot
-server
-classic

2) Automatischer Zugriff auf Konstanten innerhalb von Java-Klassen 
   Bsp.: java.awt.Color.RED => java::java::awt::Color::RED

3) Anstatt UseObject=xyz als Parameter zu benutzen knnte direkt ein Objekt benutzt werden 
   (dafr mssten die Java Objekte auf "echte" MuPAD Objekte gemappt werden und die literale 
    Speicherung gendert werden.)
   Bsp.: a := java.awt.Frame("Test");
         Bisher: java.awt.Frame.setWidth(100, UseObject=a)
	 Besser: a::setWidth(100);

4) Zur Zeit wchst der Speicher mit jedem Aufrauf beinahe linear an.
   Dieses Verhalten zeigt sich schon, sobald ein Aufruf in die JVM gemacht wird und nicht erst nach
   Abarbeitung der kompletten "invoke" Funktion in der C/C++ Klasse.
   (Hier mte auf allen Ebenen eingehendst untersucht werden, ob es sich um Speicherlcher oder
    aber um zu "fehlertollerantes" Verhalten der JVM handlet, welche Objekte nicht entfernen will.
    Grundstzlich gilt ja: Ich kann der JVM "vorschlagen" ein Objekt zu entfernen. Ob das geschieht
    entscheidet die JVM dann selber.)

5) Fortsetzung des "mucs" Konzeptes.
6) Mglichkeiten aus Java Programmen heraus MuPAD Objekte zu manipulieren und zu benutzen (also der umgekehrte Weg).
7) Konkrete Umsetzung auf den MAC
8) Geschachtelte Aufrufe ermglichen
   Bsp.: Frame.getContentPane.get... 
   (zuerst wird ContentPane zurckgeliefert auf der dann direkt eine Methode ausgefhrt wird.)

   