Skip to main content

JAXB 2.0 RI bundle size

4 replies [Last post]
kirillcool
Offline
Joined: 2004-11-17
Points: 0

How about providing a stripped-down runtime-only version of bundle? The currently available jar is 9.2MB.

jaxb-api.jar is 60KB
jaxb-impl.jar is 574KB
jaxb-xjc.jar is a whopping 2810KB

The last jar puzzles me quite a bit. Half its size goes to the 1.0 library, which seems to be a mirror of another half. How about cutting down on this one?

I would like to see:
1. A zip bundle with only three above jars (or bundle jar with license agreement in it).
2. A stripped-down version of 1 (no debugging information).
3. pack200-ed version of 2.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
kohsuke
Offline
Joined: 2003-06-09
Points: 0

The only thing you need to redistribute is

jaxb-api.jar
activation.jar
jsr173_api.jar
jaxb-impl.jar

You don't need to distribute jaxb-xjc.jar, unless
you are interested in running XJC at the runtime,
which most of you aren't.

I've seen many people confused about what needs to
be redistribuetd and what aren't. So any idea about
clarifying this confusion is welcome.

We needed XJC to be still able to generate 1.0
compatiblec code for the backward compatibility
reasons, so that's why XJC is so big.

Our assumption was that since you aren't going to
redistribute XJC, this would be a lesser problem.

I think the majority of people are interested in
just shipping the runtime without XJC, so I'm not
sure if there's a value in having a zip bundle that
contains XJC.

And pack200 is only usable as the distribution
format, right? You can't run it like a normal jar.
So is there any point in providing a pack200
version of it?

kirillcool
Offline
Joined: 2004-11-17
Points: 0

1. Perhaps a matrix of jar uses would help. There are a lot of jars in the bundle distribution, some of them for backwards compatibility, some of them for running XJC, some of them for running the generated code.

2. For applications that do need XJC, why not provide two versions?

3. Pack200 is only for distribution format (especially in Web Start applications). It would be nice having the .pack versions of all runnable jars without the need to manually run pack200.exe on each one of the jars you need. Just a nice thing to have.

kohsuke
Offline
Joined: 2003-06-09
Points: 0

Regarding "jar file matrix" --- I'll suggest that to Ryan. I think our current closest equivalent is at https://jaxb.dev.java.net/jaxb20-ea/docs/ReleaseNotes.html

Regarding "the two version" --- I think it adds the confusion to the people who's just trying to use the runtime. All in all, I'm inclined to let people like you suffer a bit :-) so that average developers have easier time.

Regarding the pack200 version --- You have to educate me about pack200, but is it that hard/expensive to run? I mean, isn't it just "pack200 abc.pack abc.jar"?

kirillcool
Offline
Joined: 2004-11-17
Points: 0

> Regarding the pack200 version --- You have to educate
> me about pack200, but is it that hard/expensive to
> run? I mean, isn't it just "pack200 abc.pack abc.jar"?

Nothing really special, [1] summarizes all the things available. [2] provides an Ant task for pack200, but i didn't test it. It [b]is[/b] as simple as you put it, i was just thinking about a little extra stuff that you can put with the bundle, so that people won't have to run that additional command. On the other hand, users that will need pack200'd jars should be educated enough (and more than happy to) run the exe themselves. Your call really.

[1] http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/pa...
[2] https://java-pack200-ant-task.dev.java.net/