1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>JOGL JNLP Applet Test</title>
</head>
<body>
<p>
In case your <a href="https://jdk6.dev.java.net/plugin2/jnlp/">Java Plugin supports JNLP</a>,
the <em>applet-gears.jnlp</em> is used,
otherwise it shall fallback to <a href="http://jogamp.org/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NApplets">NApplets</a>.
</p>
<p>
Note that it is important for the startup time to have the same JVM arguments in the applet tags,
as well as within the JNLP applet description. <br>
Only if JVM arguments of the JNLP applet description are satisfied by the applet tag's JVM,<br>
the plugin will not need to start a new JVM. OF course, the applet tag's JVM spec may exceed the
JNLP applet's one.
</p>
<p>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="600" height="400">
<param name="code" value="demos.applets.GearsApplet">
<param name="archive" value="../jar/gluegen-rt.jar,
../jar/jogl-all.jar,
jar/jogl-demos.jar">
<param name="jnlp_href" value="applet-gears.jnlp">
<comment>
<embed code="demos.applets.GearsApplet"
width="600" height="400"
type="application/x-java-applet;version=1.6"
pluginspage="http://java.sun.com/javase/downloads/ea.jsp"
archive="../jar/gluegen-rt.jar,
../jar/jogl-all.jar,
jar/jogl-demos.jar"
jnlp_href="applet-gears.jnlp">
<noembed>Sorry, no Java support detected.</noembed>
</embed>
</comment>
</object>
</p>
<p>
The applet above is instantiated with the following code:
<pre>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="600" height="400">
<param name="code" value="demos.applets.GearsApplet">
<param name="archive" value="../jar/gluegen-rt.jar,
../jar/jogl-all.jar,
jar/jogl-demos.jar">
<param name="jnlp_href" value="applet-gears.jnlp">
<comment>
<embed code="demos.applets.GearsApplet"
width="600" height="400"
type="application/x-java-applet;version=1.6"
pluginspage="http://java.sun.com/javase/downloads/ea.jsp"
archive="../jar/gluegen-rt.jar,
../jar/jogl-all.jar,
jar/jogl-demos.jar"
jnlp_href="applet-gears.jnlp">
<noembed>Sorry, no Java support detected.</noembed>
</embed>
</comment>
</object>
</pre>
Where the referenced JNLP file <em>applet-gears.jnlp</em> looks as follow:
<pre>
<?xml version="1.0" encoding="utf-8"?>
<jnlp href="applet-gears.jnlp">
<information>
<title>JOGL JNLP Applet Gears Demo</title>
<vendor>JogAmp Community</vendor>
<homepage href="http://jogamp.org/jogl-demos/"/>
<description>Gears Demo </description>
<description kind="short">Brian Paul's Gears demo ported to Java and JOGL.</description>
<offline-allowed/>
</information>
<update check="background" policy="always"/>
<resources>
<j2se href="http://java.sun.com/products/autodl/j2se" version="1.4+"/>
<jar href="jar/jogl-demos.jar" main="true"/>
<jar href="jar/jogl-demos-util.jar"/>
<extension name="jogl-all-awt" href="../jogl-all-awt.jnlp" />
</resources>
<applet-desc
name="Gears-Applet"
main-class="demos.applets.GearsApplet"
width="640"
height="480">
</applet-desc>
</jnlp>
</pre>
</p>
<p>
<del>
Note that the jogl-demos.jar, which contains the GearsApplet class,
<B>does not need to be signed</B>! JogAmp Community signs
jogl-all.jar and gluegen-rt.jar, which contain the
JOGL's supporting classes; this is the only
Java code which needs to be signed in order to deploy applets using
JOGL and is the only certificate the end user must accept.
</del><br/>
Sadly, due to Oracle's Java Applet Plugin update 7u51,
unsigned applets are no more allowed and effectively
lower the bar to create user applets with raised privileges.<br/>
Hence JogAmp Community <b>signs</b> jogl-all.jar and gluegen-rt.jar, which contain the
JOGL's supporting classes as well as jogl-demos.jar, which contains the GearsApplet class.<br/>
jogl-demos.jar's manifest file uses <i>Permissions: sandbox</i>
to <b>not raise privileges</b>.
</p>
</body>
</html>
|