cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bruce Edge <bruce.e...@gmail.com>
Subject Re: Which Part of the Elephant First?
Date Wed, 22 Apr 2009 16:05:41 GMT
Wow, great stuff. I'm in the same boat. The more tutorials form different
perspectives that I read, the less fuzzy things appear.
Not to hijack your thread, but I'm coming from gSOAP/C++ and
java/jax-ws/jaxb/spring are all new. I think that the days of writing single
binary soap servers in C/C++ are over for all but the tinyest appliances and
that this is the migration path that all us embedded mgmt folk need to take.

-Bruce

On Wed, Apr 22, 2009 at 8:37 AM, Daniel Kulp <dkulp@apache.org> wrote:

> On Tue April 21 2009 10:44:22 am Ron Grimes wrote:
> > I've decided that I would really like to gain a solid, in-depth
> > understanding of this stack, rather than just remaining happy knowing my
> > particular implementation of Spring/CXF. So, I guess my question is
> > this. Can some of you experts tell me the best way to tackle this
> > elephant?
>
> Wow.   Speak about a broad request for information.   That said, it's
> definitely a good request.    :-)      Hmm....  where to start......
>
> From a very high level perspective, I could ask: are you more interested in
> runtime things or tooling (wsdl2java/java2ws/maven plugins/etc...) type
> things?   That type of question can drive starting points.
>
> Judging from your question, I'm going to assume runtime.   Then the
> question
> comes down to "what kind of person are you?"   Pretend the CXF core runtime
> is
> an onion.  (I'm sure SOMEONE is going to tweet that CXF is an onion now
> that I
> said that)   Are you the type of person that prefers to start on the
> outside
> examining and removing one layer at a time to achieve an understanding of
> what
> the onion is all about?   Or are you the type of person that would chop the
> onion in half and examine the core and start seeing how the layers were
> layered on top one after another?
>
> I'm firmly in the latter category.   Whenever I try the "outside in"
> approach, I keep asking questions like "why is this layer here" and such
> and I
> keep dropping into the core layers to answer my questions.   Thus, for me
> "outside in" always ends up degrading into "inside out" anyway.
>
> However, other people do best with the outside in approach.   They KNOW
> JAX-WS
> and JAXB and they KNOW SOAP and such and thus want to start off there where
> there is some stuff from their comfort zone.
>
> Anyway, since I'm an inside out person, my suggestion would be to setup
> eclipse and get a client or server running in eclipse.   Put a breakpoint
> at
> line 236 of PhaseInterceptorChain.   (it looks like:
> currentInterceptor.handleMessage(message);)   and debug.   At that
> breakpoint,
> take a look at the message, debug into some of the interceptors, see how
> the
> message changes as it gets passed, etc...
>
> If someone was going to ask me what is the CORE class of the CXF runtime,
> it's
> the PhaseInterceptorChain.    That's the class that drives all message
> processing.    It's a relatively simple thing (mostly just a while loop),
> but
> it really IS CXF.
>
> The rest of CXF falls mostly into 3 main categories:
>
> 1) Setting up the message/chain prior to starting the chain processing.
>  The
> ClientImpl and destinations fall in here.   Example: the http listener
> needs
> to setup a message by pulling stuff from the incoming request.
>
> 2) The actual interceptors.   For example, soap processing is done by a
> collection of interceptors that live in various locations on the chain.
>
> 3) A LOT of "setup and configuration" code that examine the various
> locations
> of information to setup and provide information to the stuff in categories
> 1
> and 2.   Things like looking at annotations, processing the wsdl, figuring
> out
> it's the soap binding, etc....
>
> Does that provide some information to get started?
>
> Dan
>
>
>
> > In other words, what would be the right order to try and get
> > my arms around all of this? What I'm looking for is something like,
> > "Start off with JAX-WS, then JAXB, then.....", as welll as maybe the
> > best resources to understand better how they couple together, etc. Also,
> > I would like to understand more about the thinking/rationale about how
> > this all came together, and why the choice of certain mechanisms such as
> > interceptors and such.
> >
> > Hopefull, you get my gist.
> >
> > Thanks for any direction you can give.
> >
> >
> > Ron Grimes
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message