Thinking more about what Robert said, and based on my own experience, I
think it's better to split the part of the runtime that's exposed to
higher layers (API portion) vs the part of the runtime that implements
the JAX-WS RI (impl portion.)
We expect other people to use the former, but not the latter. So far I
haven't been careful about making this distinction, but given the size
of the audience of the API portion, if we don't make this distinction
clear, people will end up using our internal classes, making it very
difficult for us to change anything.
Since it's probably difficult to split them into two source tree
(because some of the classes in the API portion will reference back to
the impl portion), I guess we are looking at using a package name to
convey this distinction.
I like what Doug did --- use the 'api' package to clearly designate the
API portion, and say every subpackage below 'api' is exposed. (In that
way javadoc for just the API portion can be easily generated.)
Would it make sense to apply this rule on bigger scale? I can start
moving Pipes and Messages and so on into the API package if people are
OK with it.
Also I suggest we get rid of the 'sandbox' prefix at the same time to
move those interfaces to the right place. I think other people will soon
start looking into those API classes, so it's good for them to remain in
the same place from now on.
--
Kohsuke Kawaguchi
Sun Microsystems kohsuke.kawaguchi_at_sun.com