Hi Dan,
Looks nice,especially the jaxws 2.2 Providerimpl. Can we also use this
profile to publish jaxws2.2 jar with different artifact id into maven
repository?
Jim
On Jun 22, 2010, at 2:20, Daniel Kulp <[email protected]> wrote:
Jim,
I just committed some changes that I think should work for us. Can
you give
it a look?
Basically, in jaxws module, I've separated out the jaxws 2.2
specific stuff
into a separate source tree. I've added a "jaxws22" profile that
will add
the 2.2 stuff into the build and setup the endorsed stuff (for
compile only
right now, would need to add surefire as well if/when we need it) as
well as
include a different META-INF/services/... file that points at the 2.2
provider.
By default, "mvn install" or whatever will be jaxws 2.1. With -
Pjaxws22,
it will create the jar with the 2.2 stuff. Since the jaxws22
profile isn't
normally active, if you -Psetup.eclipse or intellij or whatever, it
will be
setup as jaxws 2.1 and the 2.2 stuff won't be visible in eclipse.
Thus,
normal development won't break.
What's good is that the 2.2 Provider will detect if 2.2 api jar is not
available and will return the 2.1 Endpoint if not. Thus, it should
work fine
with 2.1 (non-endorsed) type stuff as well. You can easily test
this by
building jaxws with -Pjaxws22 and going to the system tests and run
them.
Since they don't bring in 2.2 at all, and they still run completely
fine, it's
looking pretty good.
Anyway, I would need to update the release profiles to add the
jaxws22 profile
stuff and I still need to update the distribution to somehow take it
into
account and create the new jaxws22-endorsed lib dir as well. But I
wanted
you to look at this so far.
Dan
On Friday 18 June 2010 11:11:16 am jim ma wrote:
Possibly not. It would end up as a classpath ordering issue more
than
anything else. The 2.2 jar would just need to be in front of the
other
jar on the classpath or in the classloader. For the
distribution, we
can easily setup the manifest jar to put the 2.2 jar first, but
not put
it in lib. To use 2.2, it would just be a matter of copying the
jar
into lib and the manifest would automatically pick it up first.
This can only fix the use case which uses manifest jar to pick up
all cxf
jars. It does not work for the other projects which explicitly add
specific cxf jars to
integrate cxf as their web service server . Using the classpath
ordering is not easy for
other projects embeds cxf to switch jaxws2.2 implementation .
Cheers,
Jim
--
Daniel Kulp
[email protected]
http://dankulp.com/blog