WWDC2003 Session 619

Transcript

Kind: captions
Language: en
you
I give well folks it's a blisteringly
hot day in san francisco and i'm glad
you're all here because it's nice and
air-conditioned we're going to have a
pretty code intensive session today I've
got a fair amount of slides but quite a
bit of time at the demo machine showing
you how to develop your applets and do
some debugging with us with Safari and
the java console so let's get into it so
today we're going to talk about the
web-based deployment technologies on Mac
OS 10 if you saw session 608 you saw a
little bit about the applications and
deploying those on Mac OS 10 we'll get
into the features available to you as an
apple developer some features available
to users web start developer I have a
pretty long session with the debugging
tips for applets and some settings that
you can use to help you figure out
what's going on and finally at the end
we'll talk a little bit about helping
you decide which is the right one for
your deployment situation so here's a
picture for deploying a java application
on Mac OS 10 on the left you have this
traditional double clickable application
looks like any other application on Mac
OS 10 in the center we have web start
applications and the reason we have the
sort of a you know sort of a left turn
going on here is that you can deploy a
web start application the traditional
way through a web browser with the link
to the jnlp file you can also make a
double clickable application out of that
web start jnlp file and you can ship
that around to your end users web start
is now smart enough that it will look at
that jnlp file in the double clickable
go out and update all the resources and
it'll behave just as if you click from
the link on in the web page and finally
we have applets through web browsers
here we go for this session we're just
going to focus on the right two-thirds
of this diagram now we had a really good
session about the developing
applications today we're going to talk
about the web your web alternatives
specifically for athletes this is sort
of those the landscape today anything
that uses the old the old embedding
framework will get java one through one
and those are things like internet
explorer netscape or anybody else who's
adopted the embedding framework
currently if you are a cocoa application
you and right now that's primarily
Safari but you get you would use the
Java cocoa plugin which uses the 141 vm
and 141 applet viewer and that
distinction if someone important if
you've done development on windows
because you know the feature set between
the two plugins is somewhat different
all right to build an applet when
building applets on Mac OS 10 some
things you want to know and keep in mind
is that it's all built on the Java
plug-in technology the applet viewer
with mac OS 10 is identical its feature
for feature compatible with what you get
on windows or solaris it's already been
installed there's no additional and user
install that needs to be done like you
would on windows no get job or anything
like that we've already done that for
you if you're going to use to fire your
applet launcher app launcher is sort of
a development tool that we use that also
uses this applet viewer you'll get one
for 101 want to make that distinction
that we're currently 14 10 11 31 is what
you'll get with Internet Explorer and
netscape and anything else using the
embedding framework and another choice
available to you on Mac OS 10 is java
web start it's it's a you can do you can
deploy an applet or an applet or an
application but Web Start is really
geared towards developing into
delivering a full application via the
web we support one click launching from
the browser Safari has already been
configured to look at the mime type for
a jnlp file and open up web start and do
the right thing
it has a full dynamic updating features
of java web start so you put all of your
jars up on a server and if you update
those jar files Webster will just go get
them and always bring the latest
application down to your users it has
something I call its platform neutral
but it's not platform ignorant and by
that I mean you can tailor the jnlp file
to the platform that it's running on
we'll get an example of that in a little
bit but basically you can say well if
I'm on Mac OS 10 I need these additional
files we'll talk about that and how you
do that and the big thing about web
stores lets you deliver a full
application much more easier than much
more easily than you can in an applet
you can sign the application and it gets
full full access to the users desktop
just just as a regular application of
this and the last thing to mention Mac
os10 out of the box can serve a jnlp
based application now if you're on
Windows and you're actually in Solaris
if you're using apache for example you
know that you have to tell apache that
when it delivers a jnlp file you have to
send out the right mime type type with
it we've already done that for you we've
already configured Apache correctly so
there's no additional work for you to do
if you want to you know if you want to
use a mac OS 10 or server to deliver a
web start application all right right
now I want to show you an example of
some of these some of these I want it I
don't want to call the more advanced
applets but more feature-rich applets
that are available to you yeah and
you've all seen an athlete before so I'm
you know with we're basically gonna
focus on some of the more interesting
ones as far as what's available let's go
to dent aren't we're already and Emma
one so the first thing I want to show
you is visual thesaurus and now but
what's nice about this is it's got some
pretty spiffy graphics for moving
through a web of information about about
words sort of a
sort of a visual dictionary if you will
so start with them in the word
demonstration and you can see a jump to
that word and now I can start clicking
through here to other words and continue
on a servo a web of following through
the words gamescom oh ok ok cool so that
you know this is sort of a neat visual
applet that sort of highlights some of
the graphics the graphics improvements
we made in the latest release of with
the Java DP that's was released on
Friday one other applet i want to show
you this is gamescom and gamescom is
cool and not not for the only reason
that it has really nice park of other
games that i like to play personally but
one of the new features in 141 is that
you're going to find that in 131 this
apple would not work that's because
we're relying relying on an older
version of jsse java secure socket
extension a lot of those problems in
fixed in one not for so if an applet now
encounter is a certificate that it
doesn't like in some way whether it's
out of date or self-signed or something
like that that it will continue to it
will now ask the user if that's ok and
we'll just take a look at a game in
progress here any other impressive thing
about to clue and some of these other
games as they're fairly complex and it's
a great visual experience for the user
it's very responsive and it's something
you just couldn't do on with 131 now we
can do it with 14 have to get to slip
graphic out of the way yes I hate you
know you're watching the game for a
little bit but
the message here is that if you have
been doing trying to deploy assigned a
flute with 13 1 i've been running to a
lot of trouble now is the time to look
into 141 because we fixed a ton of
problems in this area and there's just a
lot more a lot more functionality
available to you this is important for
your particular deployment solution
alright so we won't find out who when
this wins this game but now let's move
on to a web start application and one I
picked up to show you today is Poseidon
which is a UML design design and
analysis application so uml editor and
you know as you can see this looks like
a regular mac left in application we got
a screen menu bar we've got the icons in
the menus and we've got to you know save
and print and all the things that you
expect out an application and what I'm
going to do is create a very quick class
diagram here we use the canonical shape
example expand this a bit start with a
shape class you subclass it a circle
and i will add one more subclass of the
square and now i can save it and here's
a regular j file chooser there you go
this is a Mac os10 application it's and
it's delivered with java web start so
whenever they make updates to Poseidon
all i gotta do is just start it up again
I'll get the latest version okay let's
go back to slice alright looks getting a
little bit more detail about how applets
and developing applets on Mac os10
everything I'm going to talk to you
about in these next few slides is
documented at the URL you see here on
the screen if you don't get it written
down right now that's okay I'll show it
to you is the end but the message here
is that everything you see in that
documentation will work on Mac OS 10 it
all poured it over fairly cleanly from
windows what we're going to do is we're
going to focus on the areas where we've
made improvements for you in Mac OS 10
and show you you know their ways we've
done things better we think but they're
also if you're coming from windows for
solaris and may be different from what
you're used to so we'll talk about those
differences alright in particular the
first thing you want to think about in
an applet is your HTML and so a common
question we get is how should you write
your web page you know you can use an
applique abject tag embed tag we want
you we would like you to use the applet
tag if you haven't done so already
applet is going to give you the most
compatibility across platforms on with
safari internet explorer or on windows
XP a son is trying really pushing people
to use applet heads on windows and for
the most amount of cross-platform
compatibility that's the way to go
another thing to think about
you should never assume a Java VM
version based on the browser that you've
got that you detect with your with
JavaScript so just because users running
Safari don't automatically assume the
running one for just because they're
running Internet Explorer don't
automatically assume one dot three that
will probably it will definitely change
in the future and if you're making
assumptions in your HTML you're in for a
lot of trouble the best way to determine
what you're running is when the aplex
starts up is to look at the Java dot
version property java dot specification
that version or OS de and os Nate these
three will help you determine exactly
what you're running now java dot version
will give you the full one dot for that
101 with possibly a build after it but
Java that specification that version
will give you the short and what Java
platform where you want so in this case
for example in Safari if you did this
you would get one dot for and that's it
just the string 1 dot for ok another
thing we often see is setting proxy
settings now in windows in Solaris in
particular this is a big deal and I
think it's because son uses a firewall
internally so you know they need to get
the proxy setup so they can get out of
the firewall I'm Mac os10 there is one
place to set proxy settings that is in
the network pain of the system
preferences if you've got additional
proxy settings that for your particular
deployment situation create a new
location in the network panel and set up
your proxies that way you can get us
those proxy settings by looking at
standard properties in your athletics
and i believe it's HTTP proxy host and
HTTP proxy port for example for for HTTP
proxies if we don't have a tech note or
QA we should probably document the
mapping of those things but everything
you see in that network panel has a
corresponding job of property and we'll
get that information for you and make it
to your applet or application if it was
necessary ok HTTPS is one of those areas
that's really improved in 14 it's all
built into the plugin there's nothing
for you to do and now in 14 there's
nothing for you to do in your code
either all you need to do is make a URL
with an HTTPS scheme and just open a
connection to it and we'll take it from
there it's all based on the Java secure
socket extension which is a now a
standard part of 14 and 13 it was an
extra add-on that didn't really fit in
with a plug-in but it mostly did the job
and now I 14 it's all in the grade and
works very well one difference for from
Windows is that the root certificate
store by default comes out as a keychain
we Mac os10 has a number of I believe
it's in it's on the order of two dozen
popular root certificates and we can
match a certificate that you generate
against that list based on what's in the
certificate and sort of tying into that
if the user now decides that they want
to always trust the search its
certificate in your applet we'll add it
to the keychain and that gives the added
benefit of letting people use the
keychain access application now to take
a look at all this all their
certificates delete them or you know do
what they need to do with them it's not
a common thing to do but as you'll see
it's a better better than the
alternative and the alternative is
something called the java keystore this
is sort of funds cross-platform solution
to destroying certificates but normally
by default that key store is in flash
library Java home libs security and you
know very very down where a user
wouldn't normally find it would have to
go into terminal to start doing things
with it so as a result you know we've
tried to start moving away from that and
stick to keychain access now currently
there's a there is a bug actually it's a
bug generated from Sun where a
self-signed certificate won't
can't be stored in the keychain that's
not entirely true because I found
situations where that's not exactly the
case but for you know for the sake of
your development let's assume that it's
not going to work if that's a problem
for you we have a job of property combat
Apple that security I use Java keystore
if you set that to true we will look in
that Java key store for the root
certificates and if the user decides
always trust that certificate will get
stored in that in that Java location for
the key for certificates as close to the
keychain now as I mentioned if the user
wants to do anything with their key
story when you're using this property
ethical in the terminal and use jars are
a key tool and start looking at the you
know looking with things in the terminal
and that's really not something we want
end-users to do so that's why it gets a
big red X use that key store as a last
resort now most of what i said for https
connections is true for a sign jar as
well you know you get full signed a
place' port sportsnet skate style or IE
style signing you can sign it once and
work everywhere you can and if you sign
something to work with a 1 dot x version
of java with it that comes with internet
explorer for example or netscape
christmas now the java plugin is pretty
much becoming somewhat ubiquitous this
is less of a problem but keep in mind
that if you find something for one dot o
it will continue work in one that for
I'm sorry for one that one and will
continue to work in 14 and once again if
the user wants always trust that jar
file the signature on that file it will
go in the keychain and just like HTTPS
the same properties that you will apply
to using that key store if necessary and
and as a and I'll say it again for your
deployment you know try not to use a
self-signed certificate
you use that key store as a last resort
okay one thing that's new and one not
for and it has actually greatly improved
and one that for over 13 Zappala caching
and in 13 basically applets for cached
on demand when you were I'm sorry not so
much on demand but when indicated in the
HTML file in 141 every remote applet and
every remote reefs orchid resource gets
cached automatically star files images
sounds whatever you're using in your
applet of course this is going to speed
up subsequent launches of the applet and
I made a slight common here about larger
application most improvement that's
because if you have a number of small
files the overhead of checking to see if
things are up to date may / may negate
all the all the benefits of keeping
everything locally so if you have a
number of small jar files you may you
may not want to bother with this or if
you can actually probably the better
messages to combine all your jars in one
big file is possible does that make
sense for you all right what we're
showing up here is an example of what
you would put in your applet tag I left
out the rest of the applique and only
have the relevant parts for application
here and what you're seeing here is I
guess what I would like to call 13 style
application because it works in 13 and
14 but what you have is first of all the
first parameter it's called cash archive
and what you list there is all the jar
files that you want cash for your applet
she just string them out in the comma
separated list and what goes along with
that is something called cash version
and as you can see if the the format is
a dotted decimal I'm sorry dot a
hexadecimal for part number so it looks
something like an IP address but you
have to have one of these for each entry
in the cash archive so in this case we
have three jars we want a cat
and so we have three versions that match
up with each one of those each one of
those jars and the way this works is
that the app of viewer will look at each
version and it will look at what it's
already got cached so if its season the
cash will already have one dot to dot
one of a jar well I don't need to update
or do anything and if the HTML tells it
that it's newer it will fetch the new
merge our file now the reason it phase
the reason this speeds things up at load
time is that by default the the default
mechanism for checking the things are up
to date it's look at the last modified
date on a jar and the side so the applet
we will send an if modified since up to
your server to find out if that jar file
is newer than what it's got so if you
don't put any controls on the caching
you're going to send out an HTTP request
anyway for every jar in your athlete so
you can cut down on that overhead buy
you some cash version can now the new
one for way is something called cash
archive VX and we have some additional
things that you can specify in the HTML
ok what's different now is that the jar
file and name and the version are all
put together in the same tag now so you
have the jar file name semicolon
something optionally called preload and
then the version and if you give preload
that means everything is loaded up front
when the jar file is downloaded so if
you for example when a stick a jar full
of images in your applet you could stick
them all on that jar file and they get
loaded and turned into images right away
so you take a little bit of hit up front
but you take less of a hit while the
users running the applet and so the
perception will be the things are
somewhat faster so there's an example of
how you can use that down below and in
this particular example we have set it
up
applet Sarge are always get you uses the
default mechanism for seeing if it's up
to date and it gets pre-loaded util that
jar gets pre-loaded and it has a version
on the end of it tools that jar gets
loaded on demand and has a version at
the end of it okay alright so that's
some things about the HTML and some
other things you can set up for your
application for your applet talk a
little bit about the debugging tools
available to you as a developer you're
probably going to be using the Java
plug-in settings applications quite a
bit we keep it in applications utilities
Java and there's two versions in there
14 13 and 14 pay attention and pick the
right one for the vm that you're going
to be targeting i'll give you a
demonstration of how you go about using
this later on in a few minutes but
that's where it's found them and we'll
talk about it shortly here and one of
the things you control with that is the
java console java console is well is
where you'll find all the system that
out and system that air if it's turned
on if your application stack crawls
things like that we'll all go here it's
got additional logging and tracing
mechanisms that are very useful doesn't
help you keep an eye on sure the loading
the loading loading activity for your
applet you can get thread stack if your
applets hung you can go over to the
console and you know find out where the
deadlock star in your applet something
about castle classloader cache control
which is important for when you're
you're doing iterative development will
talk about why you need to know but why
you need to know about that and why you
need to clear it out every now and then
all right let's go to the demo machine
again and now I'm going to spend some
time actually developing an applet
and show you some of the techniques that
you can use for doing some debugging
alright so the first thing I'm going to
do let's start with the Java plug-in
settings and this first tab is has the
controls for the java console and right
now we only support either making a
visible or not making a visible now
windows you can sort of hide it in the
toolbar so that it comes up minimized we
don't have a good mechanism for doing
that on 10 so we right now we only have
show or don't show or don't show
basically so for this example I'm going
to show it and the console only comes on
when an applet is loaded so if Safari
launches up you will automatically get a
Java console and we can turn this on to
pop up an alert when an exception
happens during loading I'm going to turn
on for examples here click apply right
now I'm going to go over here to Xcode
and for the purposes of this
demonstration I made a very simple
applet so it's going to paint out a
system property and what's what's
special about this is the property i'm
going to ask for is user at home which
you can't normally get from an applet so
protected property so all we're going to
do is we're going to dump out this
message user dot home and if we can't
we're going to show security exception
occurred and it's part of building this
i want to point out one of the nice
things about about xcode is that i can
set Xcode up to automatically sign my
jar file now you have to find the jar
file for this applet in order to get
this to work and so I've added a shell
script face or I'm just going to run jar
signer and I'm going on I've already got
a a keystore with a self-signed
certificate in it I'm like on my desk so
we're going to build the applet
and it's going to automatically sign it
for me all right so I'm going to build
it and that is that priest not much to
do here all right so there's my console
okay now here's my security alert
because you want to trust this this
applet and now people gave me a hard
time says well you said you know the
security was issued by companies is not
trusted apple computer and well you all
can trust Apple but now that the message
I'm trying to give you here is that a
self-signed certificate is inherently
unsafe you know I you know I in here
said I'm with Apple Computer well I am
but I get easily asset on the Sun or I
could easily have said I'm from the
government you know and it's self time
certificate so you get a this is
something that users will eventually
educate themselves about but it's
something that you know for your
deployment you want to think about so
we're just going to say yes and you know
there's our property all right so I'm
gonna bring up the console here show you
a few things that you can do let's see I
one of the first things we're going to
i'm going to show you is one hit s and
here's a list of all the system
properties now because this is assigned
applet we're allowed to read every
property available in system sorry I'm
sorry available in the vm so we've you
know we've got a number of these you
know son that boot that classify past
things like that that you will normally
get from an applet click H to get to
help again another thing is a list of
all the threads we've been created by
this applet
you know we have a thread group for your
applet down here here's my applets main
thread and event queue for it she can
take a look at those and new and 14 is
the Veil the Veil the ability to dump
out all of the thread stacks now as you
can see the deepest deepest stack is the
one that responded to the keystroke for
the dump all stack that's usually going
to be the case in fact you'll probably
always find this particular stack when
you're looking at the looking at the
stacks for your applet okay alright so
let's go back here and to Xcode and
let's make a very small change to the
applet just say home der I want to build
it
and we are all done there ok so I'm
going to go back here and refresh and
look G nothing happen I must be a bug
right now this is not a bug the reason
is something called a class loader cash
and what the plug-in does is it classes
that cash is class loaders say that ten
times fast you'll just like now spin
your head around for three minutes what
it does is that it caches class loaders
so that if you go back to a page it
speeds up the load of the page again
because as you know starting up an
applet is some an expensive operation
now if you're doing iterative
development like this that's going to be
somewhat of a pain so the console gives
you the ability to hit X and clears out
the castle classloader cash now I can go
back here and reload it and I get my
security dialogue again because now we
don't know about this applet again and
there's my uh ah what did I do wrong ok
oh well
mmm do that
there we go all right okay
alright just to show you you know if
you've done some where we load this
applet have two safaris running
what's that Oh empty the trash oh well
okay all right let's move on all right
let's go back to the Java plugin
settings here and kale over here on the
Advanced tab we have a little box called
Java Runtime parameters and this is a
place where you would set properties
that can go into that but the appli will
pick up you can you know you can
actually set a number of the properties
that you saw in the and the session on
application things like anti-aliasing
and you know things like that but for
the purposes of this discussion one of
the more interesting things that you can
set is the security related properties
come on define just to show you some of
the security properties available I'm
going to do Java security debug equals
hell and here you can see everything all
the properties available to help you
figure out what's going on with your jar
files when you're loading up an applet
this is really useful when developing a
signed applet because as you'll see it
will dump out a ton of information to
the console about what what it's doing
whilst looking at your jar file or
looking at authentication another common
use for this is with the policy I won't
show it in this demonstration but the
combination of access and policy so
you're developing an applet and you're
doing something that generates the
security exception you can't figure out
why he sets this particular property
java dot security dat debug equals
access it will show all of the
permission checks that it's doing and
log them out to the console and help you
figure out what's going on all right
so that's it for that so I'm going to
show here i'm going to put javadoc
security got debug equals jar and run
our applet again I can see I've got a
whole pile of information about how it's
a taking a look at all the entries in my
manifest here's my certificate it's
looking at the public Keef just a ton of
information that'll help you figure out
what's going on if something goes wrong
just I'm gonna say no when you see that
you know it's not finding morsel not
allowed to have that property okay it's
quit safari one more time and let's go
back here to the plug-in panel again he
overhears the cache control panel and
for an end user the reason they would
use this if if you do if you run a lot
of applets in your day-to-day work for
example a common situation is Oracle
Oracle delivers a ton of their
functionality via applets what you can
do is you can go over here and set the
dark it was ajar compression level now
if the jar that you deliver is already
compressed this won't be much of a
savings but what this will do is since
these are all zip files it will when it
writes them out to disk in the cache it
will compress them even further further
and we'll take a look at the cash and
we'll see here's gamescom and visual
thesaurus in the cache as I mentioned as
I mentioned before you know we didn't
have to do anything all the stuff got
cash for us automatically now one thing
you'll notice is that in this
demonstration I've been building a jar
file and you know running it through
safari so may ask well where is it well
it's not cash because it's it's scheme
it's file
a file-based applet one that won't be
cached okay now this is completely
separate from the Safari cash or the
Internet Explorer cash has nothing to do
with any of those so I can go in here
and you know delete individual entries
out of here for example and safaris cash
will not be touched at all and I can
clear out the entire cash now just like
that okay i'm going to show you very
quickly the certificates tab this tab
only gets used when you set that up the
property that uses the java key store so
if the user would then you know okay I
haven't you know trusted any fights and
store them in the keychain yet that's
why these panels are empty but if I did
I would see them in this panel not in
the teaching so if you don't want to use
the key chain for whatever reason you
you would come over here to the plug-in
settings and look at it that way okay
now the last thing I want to show you is
using the keychain and for this
particular example I'm going to go to
install anywhere its download site for I
for install anywhere 5 and now here we
have a signed applet it was generated by
a thought a which is one of my root
certificates so showing up as a trusted
certificate and this time I'm going to
say always I always trust it and now I'm
going to go over here two occasions
utility use keychain access
and there I see my certificate we've got
all the details of this certificate
certificate and if I quit safari again
and load it up there you go we didn't
get the security dialogue because we've
already said that we already trust the
certificate that came from install
anywhere so now all over here and delete
this and we'll go back and load up
install anywhere and there it is we
don't have it anymore so now it's asking
us to trust it again and this is a
pretty much immediate so whenever I
click always it immediately goes right
into the key chain that can take a look
at it okay all right let's go back to
slides so I hope that give you some some
new ways of looking at your applet
development and some additional things
that you can use for your deployment
okay stop a little bit about java web
start now some of the details with 40 s
10 I'm windows in solaris it's possible
to tell the user hey you don't have the
version of Java that I want you to have
for my application so I'm going to
download it for you but we don't support
that in what Mac os10 if end users need
to go to software update to get java 141
or or our website to to update the VMS
so should actually a change we need to
make a web start to tell users to do
that because right now we just say up
sorry we don't support this but you know
that's something we'll be looking at in
the future finally a with web start keep
in mind that if you want a native
library which is something you can do
and let's start it has to follow the Mac
os10 conventions so it has to be lib the
name of the native library name
jni life and where native library name
is what you would pass the system that
load library and here's an example of
something I was talking about earlier
where you can saw Mac os10 specific
resources using the resources element
and if you pass in OS equals Mac os10
only those things will be downloaded to
the user when they're running on Mac OS
10 you can do this for Windows you can
do this for solaris but our Mac it's you
specifically have to use mac OS x and
because that's our OS named property
okay another thing we could commonly get
questions about is the JVM versions and
specifically if I specify a j2se version
well what am i what am I going to get
now in web start this is this is a far
more well specified than we do in
applications applications it's pretty
much identical to this but for web story
it's the it's very well specified what
you're going to get if you specify one
got three star you're going to get 131
if you specify 14 * right now you will
get one for one now in the future if we
do a 1 for 2 or 1 32 or not that we
would do that but you know say we do a 1
for 2 or 1 for X we have an implicit
ordering that says we will always give
you the newest dot dot version if you
will so when 142 comes out you know a 14
* will give you one for one will give
you one for 2 and similarly a1 dot 3
plus or one dot 4 plus gives you the
most recent vm greater than or equal to
I'm sorry let's instead of you know
doing mathematically what it will do is
it will give you the newest vm that's
newer than that baseline that you
specify
so one that four plus if we have 14 1 15
16 whatever it will pick the newest one
it will pick the yes we'll pick the
newest vm and seem got one lat three
think of when you're using plus think of
it as a baseline basically you're saying
I know that my applet I'm sorry I know
that my jnlp application works on
everything one that three and later now
one thing we've done I've done below put
red x's over what over the product
version of the j2se version tag the
first for our platform versions and
that's the most flexible because
basically you're saying that I work with
any anything supporting the one not for
platform similarly with applications if
you say that I only support 131 or
actually more correctly if I only
support one for one when we do
eventually come out with a 14 to that
one full one probably won't be there
anymore and your applications not going
to work so try to avoid using a civic
productversion tag much in the same way
as we don't want you to do that for
applications either all right let's talk
about some new things that we have in
the update one for Jaguar that just came
out we now have cookie integration with
Safari this is something that's been
long requested and now that we finally
got Safari we've got a good platform and
now we can now we can work much more
closely with them this is a foot one of
the first things that you're going to
see as a result of that collaboration
nothing needs to be done on your part to
give this to work if there's a cookie if
the users already got a cookie for a
particular URL will fetch that out the
database and send it along with the HTTP
requests for the jars or whatever other
resources are needed same goes for
setcookie as well as get cookie it works
in both ways for 131 we don't have that
integration but we do have a Q&A number
12 65 that gives you an example of how
you would go about doing this someone
free it's not automatic there's some
work that you have to do but we think
it's a good compromise until you're able
to move over to 141 and once you give us
your feedback on using this you know we
think we've got it right but you know
you guys are going to be able to tell us
more correctly than them we are we fixed
a few websites that you know that we hit
we know that needed cookies and have it
working but you know this is a preview
really so we want your feedback on
whether or not we've got it completely
right another new seem to talk about
let's go back to our where we are today
slice and as we mentioned that one for
one is only available in Safari right
now is it with a cocoa plugin what we
want announced this week is the
availability of a Java carbon plugin and
what this will do is it won't
automatically make make it available to
to ie in the other browsers but they
will now be able to get to 141 via a
carbon plugin so for any browser vendors
out here in the audience that are built
around carbon applications you know I
talked to us and we can we can you know
help you figure out how to get this
going so finally let's talk about some
deployment of choices that are available
to you everything I'm going to talk
about here applies whether you're doing
on Windows or Mac OS 10 so basically you
want to look at the resource needs of
your of what you're trying to deploy
just doing something simple talking the
server giving some status things like
that look for a simple applet that's
probably going to be your best solution
if you need to write something out to
the users this because the preference or
something like that look into assigned
applet if you want to build a real
application when to deliver it
dynamically web starts the way to go web
star will let you have some native code
to put some customization into your
application
web starts also going to give you all
the functionality that you need you know
things like the EA WT and things like
that are available to you through web
start so you can build a full
application with web start so that's
what you want to do and deliver it and
use dynamic updating and all the
features of web start that's the way to
go all right here's some more URLs for
everything I've talked about in the
session for web start documentation
start at our site and I'll eventually
take you over to Sun site where you can
get the jnlp spec that's a DJ now the
JLP specification is what you need to do
is what you need to look at it we're
going to be delivering webstart look
again with the java plug-in
documentation go to java dot suncom
everything everything you need to know
about the applets is there and of course
all of the Apple to Apple documentation
for java in general you can go to
connect that apple com you can get the
141 Developer Preview up update one
developer preview there's now a quick
time for java seed and i strongly
recommend actually i think it's on the
next slide oh okay the wwc linked list
everything that i've talked about is
going to be at that URL there so start
at the start there and you'll be able to
find this later on people to contact
allen samuels Bob Fraser I highly
recommend that you join java dev if you
haven't done so already it's a great
resource for getting lots of questions
answered and usually very quickly not by
one of us by one of the other members
and here are the rest of the sessions
actually for those of you watching me on
DVD right now you can go back and get
session 608 which talks about info dot P
list we've got the additional session
this afternoon on Java native
integration good session tomorrow about
or performance and please come tomorrow
to the feedback form and give us your
feedback on
anything you've seen this week