harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Elford, Chris L" <chris.l.elf...@intel.com>
Subject [classlib] javaws and javax.jnlp?
Date Sat, 21 Apr 2007 01:33:39 GMT
Hi everybody,

Does anyone know what the status of Java web start (the JNLP launcher)
is with Harmony?  There is no javaws launcher and javax.jnlp does not
appear at http://www.kaffe.org/%7Estuart/japi/htmlout/h-jdk15-harmony.
This makes sense because javax.jnlp does not part of the apis (as per
http://java.sun.com/j2se/1.5.0/docs/) but instead falls into the
"deployment technologies" bucket. 

There seem to be several different open source JNLP implementations
(http://jnlp.sourceforge.net/netx/compare.html)  I poked at the Mozilla
licensed one (OpenJNLP) today to see if it would work with Harmony.  It
is quite old and doesn't support security now but is a good thing to
test....  I hacked it to recognize Windows XP and work marginally with
the Sun VM (it pauses for a LONG time before starting the app).  Anyway,
I tried with Harmony and ran into an issue which I filed at
http://issues.apache.org/jira/browse/HARMONY-3717.  Working around that
problem, I get further (it downloads and caches the application) but run
into an issue with reflection on launch.  I'm not sure what the source
of that problem is (yet) but I can say that it only errors out on
Harmony and not on the Sun JRE.  

Loading the Eclipse JNLP sample
(http://www.eclipse.org/swt/jws/controlexample.jnlp) gives the
following:
Control Example] java.lang.reflect.InvocationTargetException
[Control Example] 	at
java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)
[Control Example] 	at
java.lang.reflect.Method.invoke(Method.java:381)
[Control Example] 	at
org.nanode.launcher.AppContext.execApp(Unknown Source)
[Control Example] 	at org.nanode.launcher.AppContext.run(Unknown
Source)
[Control Example] 	at java.lang.Thread.run(Thread.java:661)
[Control Example] Caused by: java.lang.VerifyError: (class:
org/eclipse/swt/widgets/EventTable, method:
sendEvent(Lorg/eclipse/swt/widgets/Event;)V) Data flow analysis error
[Control Example] 	at
org.eclipse.swt.widgets.Widget.addListener(Unknown Source)
[Control Example] 	at
org.eclipse.swt.widgets.Button.addSelectionListener(Unknown Source)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.Tab.createOtherGroup(Tab.java:34
2)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.AlignableTab.createOtherGroup(Al
ignableTab.java:43)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.Tab.createControlGroup(Tab.java:
139)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.ButtonTab.createControlGroup(But
tonTab.java:46)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.Tab.createTabFolderPage(Tab.java
:888)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.ControlExample.<init>(ControlExa
mple.java:60)
[Control Example] 	at
org.eclipse.swt.examples.controlexample.ControlExample.main(ControlExamp
le.java:203)
[Control Example] 	at
java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)

Loading the mpowerplayer app
(http://webstart.mpowerplayer.com/index.jnlp) gives the following:
[mpowerplayer] java.lang.reflect.InvocationTargetException
[mpowerplayer] 	at
java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)
[mpowerplayer] 	at java.lang.reflect.Method.invoke(Method.java:381)
[mpowerplayer] 	at org.nanode.launcher.AppContext.execApp(Unknown
Source)
[mpowerplayer] 	at org.nanode.launcher.AppContext.run(Unknown Source)
[mpowerplayer] 	at java.lang.Thread.run(Thread.java:661)
[mpowerplayer] Caused by: java.lang.VerifyError: (class:
com/mpp/player/mpsc, method: <clinit>()V) Incompatible types for array
assignment
[mpowerplayer] 	at java.lang.ClassLoader.defineClass0(ClassLoader.java)
[mpowerplayer] 	at
java.lang.ClassLoader.defineClass(ClassLoader.java:417)
[mpowerplayer] 	at java.security.SecureClassLoader.defineClass(Unknown
Source)
[mpowerplayer] 	at java.net.URLClassLoader.findClassImpl(Unknown Source)
[mpowerplayer] 	at java.net.URLClassLoader$4.run(Unknown Source)
[mpowerplayer] 	at java.net.URLClassLoader$4.run(Unknown Source)
[mpowerplayer] 	at
java.security.AccessController.doPrivilegedImpl(AccessController.java:17
1)
[mpowerplayer] 	at
java.security.AccessController.doPrivileged(AccessController.java:64)
[mpowerplayer] 	at java.net.URLClassLoader.findClass(Unknown Source)
[mpowerplayer] 	at
org.nanode.launcher.cache.FileCacheClassLoader.findClass(Unknown Source)
[mpowerplayer] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:554)
[mpowerplayer] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:311)
[mpowerplayer] 	at
java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)

Both apps that I tried do use some native code...  Has anyone gotten any
further than this with any JNLP implementations and Harmony?

Is Javaws going to be part of Harmony?  I see that BEA does not include
javaws in their distributions of Java5.  Is anyone working on this?  Is
there an implementation hiding in SVN somewhere?  If MPL code is
compatible, this might be a good path to go after for getting javax.jnlp
and a start at webstart functionality.

Regards,

Chris Elford
Intel SSG/Enterprise Solutions Software Division

Mime
View raw message