You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by Davanum Srinivas <da...@gmail.com> on 2006/02/02 01:24:41 UTC

Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Eddie,

i was looking at the current codebase and spotted the
MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
java class? and one the WsmService object is built, then translate
that to Axis2 thingies? Can we split out the processing framework into
a separate jar (w/o things like Axis1 stuff)? Am i on the right track
with this thinking?

thanks,
dims

On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> All--
>
>   Happy New Year!  And, as a way to start the year off on a good foot,
> let's get WSM to 1.0.  Below is a proposal for how we get from here to
> there with some details about where we are and what needs to happen.
>
>   Today, there are two core WSM parts, both of which are tailored to
> the Axis web service stack:
>
>   build-time: This is a generic annotation processing layer that has
> the ability to work against Mirror, reflection, and WSDL to produce a
> WSM JavaBean model that represents a web service.  The build-time
> layer has a plug-point for generating source artifacts to support
> various web service runtimes.  For example, the Axis implementation
> produces a serialized version of the WSM JavaBean model.  This could
> also produce JAX-RPC source / deployment descriptor artifacts, etc.
>
>   runtime: The runtime side of WSM is specifically built to support
> the Axis 1.x runtime.  It loads the serialized JavaBean model
> generated at build time and uses an Axis Handler to configure a
> SOAPService given this information.
>
>   There is another large bunch of code in WSM related to tools:
>
> wsdl2ajava -- this tool supports the top-down web service development
> model and starts with a WSDL to produce an annotated Java source file.
>  This tool requires significant knowledge of WSDL and type mapping for
> a specific web service stack.  For example, the mapping for an XSD
> year is mapped to org.apache.axis.types.Year and something different
> on other web service stacks.  wsdl2java is a non-trivial bunch of code
> to write, but is also a very useful tool.
>
>   In order to finish WSM, one more re-architecting step needs to be
> completed; I'd like to remove the use of a serialized Java object as
> the way to communicate from the build-time to runtime parts of the
> implementation.  This would be replaced with a WSDD like, but WSM
> specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> for this because too closely matches the shape of a Java class (Dims
> and others, feel free to correct me if I'm wrong).  So, we need a
> simple XML file that describes the information captured in a
> WsmService.
>
>   Once this is done, we can start work on passing the JSR-181 TCK.
> This will be done atop Apache Axis 1.x.
>
>   In order to expedite the process of getting from here to TCK
> compliance, I'd like to suggest that we stop stop work on the
> wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> tool immediately post-1.0.
>
>   Post 1.0, there are lots of other things that we could do including:
>
> - JDK 1.4 support
> - drop-in support for WSM in Axis to support iteratively developing an
> annotated web service
> - JAX-RPC support (Ias, still have any interest in working on this?)
> - custom annotations to support container-specific features like type mapping
> - and so on...
>
>   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> like to narrow scope in order to do that.  I think we're almost ready
> for the TCK; I'll start on the XML file to describe an annotated Axis
> web service shortly.
>
>   Thoughts, comments, and flames welcome.
>
> Eddie
>


--
Davanum Srinivas : http://wso2.com/blogs/

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Thanks Eddie, will drop a line if I need help.
Really appreciate your response.

Thanks,

Rajith

On 6/13/06, Eddie O'Neil <ek...@gmail.com> wrote:
>
> Rajith--
>
> Hey; I'm certainly around to answer questions / help.  I was just
> mostly on vacation last week and am still clearing a mountainous
> backlog of e-mail.  :)
>
> Not to worry...
>
> Eddie
>
>
>
> On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > Hi Dims,
> >
> > Thanks for the pointers.
> > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > after that I can start with WSMToAxisServiceBuilder to build an
> AxisService
> > out of an anotated POJO.
> > Once I have something I will create a JIRA and attach a patch. U can
> take a
> > look at the code and then we can take it from there.
> > If I have questions I will bug u again :-)
> >
> > Btw, the Beehive mailing list seems to be a bit quiet, so I am wondering
> how
> > to get WSM specific questions answered :-)
> >
> > Regards,
> >
> > Rajith
> >
> > On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> > >
> > > Rajith,
> > >
> > > I think you need to implement ReflectionWsmServiceFactory first. The
> > > angle of attack i am looking at is deploying a POJO with annotations.
> > > (See AxisService.createService in Axis2 where one can deploy a pojo).
> > > You will have to write a WSMToAxisServiceBuilder (see
> > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
> > > WDYT? Once we have this, we can get fancy with codegen etc.
> > >
> > > thanks,
> > > dims
> > >
> > > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > Hi Dims & Eddie,
> > > >
> > > > So code wise I should be looking at MirrorWsmBuilder and WsmService?
> > > > Any pointers will be helpful.
> > > >
> > > > I am going through the wiki and JSR documentation and will get back
> with
> > > > questions.
> > > > Meanwhile do we have that seperate jar that bundles all the relevent
> > > classes
> > > > for the annotations support?
> > > >
> > > > Regards,
> > > >
> > > > Rajith
> > > >
> > > > On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > >
> > > > > Dims--
> > > > >
> > > > >   Hey; apologies for the delay.  That's basically right -- there
> is
> > > > > actually one other step in the annotation processing pipeline
> which is
> > > > > verifying the validity of any annotations on the class.  So, it
> would
> > > > > be:
> > > > >
> > > > >   annotation checking (Jsr181AnnotationChecker) --> model building
> > > > > (MirrorWsmBuilder)
> > > > >
> > > > > which returns a WsmService object that can be wired up into axis2
> > > stuff.
> > > > >
> > > > >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > > > > original plan was to just put the Axis 1.x and 2 bits in the same
> JAR
> > > > > file, but if this is a problem, let me know and I can make three
> JARs
> > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > > >
> > > > >   There is one important part of this that isn't done yet, and
> that's
> > > > > to provide something that can be used inside of a server runtime
> that
> > > > > abstracts from Sun's Mirror types which are used inside of
> APT.  Not
> > > > > exactly sure what this looks like yet -- could be reflection or
> > > > > something else that abstracts from Sun's Mirror APIs (used inside
> of
> > > > > APT).
> > > > >
> > > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > > build-time on the command line?  I'm assuming the former.
> > > > >
> > > > > Eddie
> > > > >
> > > > >
> > > > > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > > Eddie,
> > > > > >
> > > > > > i was looking at the current codebase and spotted the
> > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a
> > > given
> > > > > > java class? and one the WsmService object is built, then
> translate
> > > > > > that to Axis2 thingies? Can we split out the processing
> framework
> > > into
> > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the right
> > > track
> > > > > > with this thinking?
> > > > > >
> > > > > > thanks,
> > > > > > dims
> > > > > >
> > > > > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > > > All--
> > > > > > >
> > > > > > >   Happy New Year!  And, as a way to start the year off on a
> good
> > > foot,
> > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get from
> > > here to
> > > > > > > there with some details about where we are and what needs to
> > > happen.
> > > > > > >
> > > > > > >   Today, there are two core WSM parts, both of which are
> tailored
> > > to
> > > > > > > the Axis web service stack:
> > > > > > >
> > > > > > >   build-time: This is a generic annotation processing layer
> that
> > > has
> > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > > produce a
> > > > > > > WSM JavaBean model that represents a web service.  The
> build-time
> > > > > > > layer has a plug-point for generating source artifacts to
> support
> > > > > > > various web service runtimes.  For example, the Axis
> > > implementation
> > > > > > > produces a serialized version of the WSM JavaBean model.  This
> > > could
> > > > > > > also produce JAX-RPC source / deployment descriptor artifacts,
> > > etc.
> > > > > > >
> > > > > > >   runtime: The runtime side of WSM is specifically built to
> > > support
> > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > > > > generated at build time and uses an Axis Handler to configure
> a
> > > > > > > SOAPService given this information.
> > > > > > >
> > > > > > >   There is another large bunch of code in WSM related to
> tools:
> > > > > > >
> > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > > development
> > > > > > > model and starts with a WSDL to produce an annotated Java
> source
> > > file.
> > > > > > >  This tool requires significant knowledge of WSDL and type
> mapping
> > > for
> > > > > > > a specific web service stack.  For example, the mapping for an
> XSD
> > > > > > > year is mapped to org.apache.axis.types.Year and something
> > > different
> > > > > > > on other web service stacks.  wsdl2java is a non-trivial bunch
> of
> > > code
> > > > > > > to write, but is also a very useful tool.
> > > > > > >
> > > > > > >   In order to finish WSM, one more re-architecting step needs
> to
> > > be
> > > > > > > completed; I'd like to remove the use of a serialized Java
> object
> > > as
> > > > > > > the way to communicate from the build-time to runtime parts of
> the
> > > > > > > implementation.  This would be replaced with a WSDD like, but
> WSM
> > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> be
> > > used
> > > > > > > for this because too closely matches the shape of a Java class
> > > (Dims
> > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> need a
> > > > > > > simple XML file that describes the information captured in a
> > > > > > > WsmService.
> > > > > > >
> > > > > > >   Once this is done, we can start work on passing the JSR-181
> TCK.
> > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > >
> > > > > > >   In order to expedite the process of getting from here to TCK
> > > > > > > compliance, I'd like to suggest that we stop stop work on the
> > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart
> > > this
> > > > > > > tool immediately post-1.0.
> > > > > > >
> > > > > > >   Post 1.0, there are lots of other things that we could do
> > > including:
> > > > > > >
> > > > > > > - JDK 1.4 support
> > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > developing an
> > > > > > > annotated web service
> > > > > > > - JAX-RPC support (Ias, still have any interest in working on
> > > this?)
> > > > > > > - custom annotations to support container-specific features
> like
> > > type
> > > > > mapping
> > > > > > > - and so on...
> > > > > > >
> > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> and
> > > would
> > > > > > > like to narrow scope in order to do that.  I think we're
> almost
> > > ready
> > > > > > > for the TCK; I'll start on the XML file to describe an
> annotated
> > > Axis
> > > > > > > web service shortly.
> > > > > > >
> > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > >
> > > > > > > Eddie
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> >
> >
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
Rajith--

  Hey; I'm certainly around to answer questions / help.  I was just
mostly on vacation last week and am still clearing a mountainous
backlog of e-mail.  :)

  Not to worry...

Eddie



On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Hi Dims,
>
> Thanks for the pointers.
> Let me look at how to get the ReflectionWsmServiceFactory impl going.
> after that I can start with WSMToAxisServiceBuilder to build an AxisService
> out of an anotated POJO.
> Once I have something I will create a JIRA and attach a patch. U can take a
> look at the code and then we can take it from there.
> If I have questions I will bug u again :-)
>
> Btw, the Beehive mailing list seems to be a bit quiet, so I am wondering how
> to get WSM specific questions answered :-)
>
> Regards,
>
> Rajith
>
> On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> >
> > Rajith,
> >
> > I think you need to implement ReflectionWsmServiceFactory first. The
> > angle of attack i am looking at is deploying a POJO with annotations.
> > (See AxisService.createService in Axis2 where one can deploy a pojo).
> > You will have to write a WSMToAxisServiceBuilder (see
> > WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
> > WDYT? Once we have this, we can get fancy with codegen etc.
> >
> > thanks,
> > dims
> >
> > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > Hi Dims & Eddie,
> > >
> > > So code wise I should be looking at MirrorWsmBuilder and WsmService?
> > > Any pointers will be helpful.
> > >
> > > I am going through the wiki and JSR documentation and will get back with
> > > questions.
> > > Meanwhile do we have that seperate jar that bundles all the relevent
> > classes
> > > for the annotations support?
> > >
> > > Regards,
> > >
> > > Rajith
> > >
> > > On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > >
> > > > Dims--
> > > >
> > > >   Hey; apologies for the delay.  That's basically right -- there is
> > > > actually one other step in the annotation processing pipeline which is
> > > > verifying the validity of any annotations on the class.  So, it would
> > > > be:
> > > >
> > > >   annotation checking (Jsr181AnnotationChecker) --> model building
> > > > (MirrorWsmBuilder)
> > > >
> > > > which returns a WsmService object that can be wired up into axis2
> > stuff.
> > > >
> > > >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > > > original plan was to just put the Axis 1.x and 2 bits in the same JAR
> > > > file, but if this is a problem, let me know and I can make three JARs
> > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > >
> > > >   There is one important part of this that isn't done yet, and that's
> > > > to provide something that can be used inside of a server runtime that
> > > > abstracts from Sun's Mirror types which are used inside of APT.  Not
> > > > exactly sure what this looks like yet -- could be reflection or
> > > > something else that abstracts from Sun's Mirror APIs (used inside of
> > > > APT).
> > > >
> > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > build-time on the command line?  I'm assuming the former.
> > > >
> > > > Eddie
> > > >
> > > >
> > > > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > Eddie,
> > > > >
> > > > > i was looking at the current codebase and spotted the
> > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a
> > given
> > > > > java class? and one the WsmService object is built, then translate
> > > > > that to Axis2 thingies? Can we split out the processing framework
> > into
> > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the right
> > track
> > > > > with this thinking?
> > > > >
> > > > > thanks,
> > > > > dims
> > > > >
> > > > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > > All--
> > > > > >
> > > > > >   Happy New Year!  And, as a way to start the year off on a good
> > foot,
> > > > > > let's get WSM to 1.0.  Below is a proposal for how we get from
> > here to
> > > > > > there with some details about where we are and what needs to
> > happen.
> > > > > >
> > > > > >   Today, there are two core WSM parts, both of which are tailored
> > to
> > > > > > the Axis web service stack:
> > > > > >
> > > > > >   build-time: This is a generic annotation processing layer that
> > has
> > > > > > the ability to work against Mirror, reflection, and WSDL to
> > produce a
> > > > > > WSM JavaBean model that represents a web service.  The build-time
> > > > > > layer has a plug-point for generating source artifacts to support
> > > > > > various web service runtimes.  For example, the Axis
> > implementation
> > > > > > produces a serialized version of the WSM JavaBean model.  This
> > could
> > > > > > also produce JAX-RPC source / deployment descriptor artifacts,
> > etc.
> > > > > >
> > > > > >   runtime: The runtime side of WSM is specifically built to
> > support
> > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > > > generated at build time and uses an Axis Handler to configure a
> > > > > > SOAPService given this information.
> > > > > >
> > > > > >   There is another large bunch of code in WSM related to tools:
> > > > > >
> > > > > > wsdl2ajava -- this tool supports the top-down web service
> > development
> > > > > > model and starts with a WSDL to produce an annotated Java source
> > file.
> > > > > >  This tool requires significant knowledge of WSDL and type mapping
> > for
> > > > > > a specific web service stack.  For example, the mapping for an XSD
> > > > > > year is mapped to org.apache.axis.types.Year and something
> > different
> > > > > > on other web service stacks.  wsdl2java is a non-trivial bunch of
> > code
> > > > > > to write, but is also a very useful tool.
> > > > > >
> > > > > >   In order to finish WSM, one more re-architecting step needs to
> > be
> > > > > > completed; I'd like to remove the use of a serialized Java object
> > as
> > > > > > the way to communicate from the build-time to runtime parts of the
> > > > > > implementation.  This would be replaced with a WSDD like, but WSM
> > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't be
> > used
> > > > > > for this because too closely matches the shape of a Java class
> > (Dims
> > > > > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > > > > simple XML file that describes the information captured in a
> > > > > > WsmService.
> > > > > >
> > > > > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > > > > This will be done atop Apache Axis 1.x.
> > > > > >
> > > > > >   In order to expedite the process of getting from here to TCK
> > > > > > compliance, I'd like to suggest that we stop stop work on the
> > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart
> > this
> > > > > > tool immediately post-1.0.
> > > > > >
> > > > > >   Post 1.0, there are lots of other things that we could do
> > including:
> > > > > >
> > > > > > - JDK 1.4 support
> > > > > > - drop-in support for WSM in Axis to support iteratively
> > developing an
> > > > > > annotated web service
> > > > > > - JAX-RPC support (Ias, still have any interest in working on
> > this?)
> > > > > > - custom annotations to support container-specific features like
> > type
> > > > mapping
> > > > > > - and so on...
> > > > > >
> > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and
> > would
> > > > > > like to narrow scope in order to do that.  I think we're almost
> > ready
> > > > > > for the TCK; I'll start on the XML file to describe an annotated
> > Axis
> > > > > > web service shortly.
> > > > > >
> > > > > >   Thoughts, comments, and flames welcome.
> > > > > >
> > > > > > Eddie
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > >
> > >
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Eddie,

I didn't see your email on annogen vs Mirror/apt approach when I wrote my
previous email.

So it looks like the checking/validation of jsr 181 code is written to work
with Mirror/apt code, right?
So if we use annogen then that means we have to rethink the about validation
part.
Dims, what do u think about this?

> FWIW, I'll take a pass at seeing if the Mirror-like API we've got will
work easily.
Please do, I really appreciate it.

I can send u a patch for the ReflectionWsmServiceFactory as soon as I get
something to work.

However I need to get the binaries for wsm from source, working on that :-)
thanks for resolving the dependency issues, if there are problems I will
give a shout.

thanks,

Rajith

On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
>
> Rajith--
>
>   Sounds good -- once you've got some code, send it along and I can
> get it into SVN.
>
>   We still have the outstanding issue of how to check / validate the
> annotations on a POJO.  What were your thoughts about how to do that?
> FWIW, I'll take a pass at seeing if the Mirror-like API we've got will
> work easily.
>
> Eddie
>
>
> On 6/21/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > Eddie,
> >
> > Thanks for answering the concerns raised by Nicholas and Dennis.
> >
> > As dims pointed out, I will start with annogen to get the
> > ReflectionWsmServiceFactory going.
> >
> > Regards,
> >
> > Rajith
> >
> >
> >  On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > Eddie,
> > >
> > > As i was telling Rajith, we'd like to try annogen based runtime
> > > annotation processing to start with.
> > >
> > > -- dims
> > >
> > > On 6/21/06, Eddie O'Neil <ekoneil@gmail.com > wrote:
> > > >
> > > > Nicholas --
> > > >
> > > >   Basically, yes.  :)  WSM will handle the complexity around the
> > specification's details regarding the @WebService annotation, SEIs, and
> WSDL
> > binding.  There's code living here:
> > > >
> > > >
> >
> http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > > >
> > > > that implements most of this (there are a few holes...).  The
> annotation
> > processor walks an @WebService annotated class / interface and produces
> a
> > model that describes the service (WsmService).  This POJO can then be
> used
> > for code generation, to update deployment descriptors, or for
> auto-wiring of
> > a web service in the VM at runtime.  The latter is how this works for
> Axis1.
> > > >
> > > >   Currently, WSM is implemented to use Java 5's Mirror
> infrastructure in
> > order to execute annotation processing at build time.  We have a layer
> that
> > basically duplicates the Mirror APIs and wraps them so that it's
> possible to
> > support XDoclet / annogen / asm, so it should be possible to support
> either
> >  1.5 or 1.4 and annotation processing at buildtime or at
> runtime.  Certainly
> > open to other suggestions if you have them -- if we moved away from
> Mirror
> > altogether, there would be some work to do to rewrite some things, but
> it
> > wouldn't be rocket science.  :)
> > > >
> > > >
> > > > Eddie
> > > >
> > > >
> > > >
> > > >
> > > > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > > > >
> > > > >
> > > > > Rajith,
> > > > >
> > > > > From a JAX-WS perspective, the @WebService annotation does
> introduce
> > some challenges when it comes to determining what the interface of a Web
> > service will be.  From my interpretation, which is just that, it doesn't
> > dictate as much how the annotation should be handled at runtime as much
> as
> > it does instruct how the annotation affects the Java to WSDL mapping.  I
> > think the assumption after that is, the system will then do whatever it
> > needs to configure itself to fulfill the contract defined by that
> WSDL.  If
> > I understand correctly what Dim's has proposed, this is the piece that
> your
> > WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the
> > information gets relayed to Axis2 correctly.
> > > > >
> > > > > With respect to just the @WebService annotation, and not the
> > annotations processing as a whole, it seems like you might encounter a
> few
> > scenarios that could be tricky.  I don't know enough about the specifics
> of
> > WSM though, so it may resolve some of the headaches for you.
> > > > >
> > > > > - When a class is annotated with @WebService, any of the public
> > methods available on that class are to be exposed as an operation in a
> Web
> > service.  If that particular annotation instance has the WSDL document
> > location specified, then we need to do some bit of processing/validation
> to
> > make sure the public methods support what's defined in the WSDL.  Or....
> > does WSM just do that for you?
> > > > >
> > > > > - Because of the "serviceEnpdointInterface" property on the
> > @WebService annotation, the above case becomes a little more complex.
> > JAX-WS has a notion of squashing that SEI, along with the public methods
> on
> > any other interface that the SEI may extend into one giant interface,
> which
> > should then be reflected in the WSDL.  Again, I don't know enough about
> WSM,
> > but this might be something it handles for you.  If not, it seems like
> you
> > will be required to walk the annotations and collect the metadata from
> every
> > interface that's extended?
> > > > >
> > > > > I'm glad to see you'll be working on this.  As mentioned before, I
> > think there is some commonality that can be leveraged when it comes to
> > JAX-WS as well.  A few questions though about the annotations support
> for
> > Axis2 endpoints (I know you're just getting started with this so I
> > understand if some of this is longer term) :
> > > > >
> > > > > - When annotations are added to a class, are you still requiring
> the
> > presence of a services.xml?  If so, what's the minimum set of
> information
> > required in that document?  I.e., could I get away with annotating a
> class
> > and just specifying that ServiceClass property in XML file?  I can see
> still
> > needing the deployment descriptor for specifying module refs, but would
> it
> > be able to have just that and not the operation descriptions.  Just a
> > thought.
> > > > >
> > > > > - If annotations are supported for Axis2/ADB endpoints, how would
> we
> > distinguish those from JAX-WS endpoints?
> > > > >
> > > > > Hope this helps...
> > > > >
> > > > > Regards,
> > > > >
> > > > > Nicholas Gallardo
> > > > >  WebSphere  -  WebServices Development
> > > > >  nlgallar@us.ibm.com
> > > > >  Phone: 512-838-1182
> > > > >  Building: 901 / 5G-016
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > "Rajith Attapattu" <ra...@gmail.com>
> > > > >
> > > > >
> > > > > 06/19/2006 09:35 PM
> > > > >
> > > > > Please respond to
> > > > >  axis-dev@ws.apache.org
> > > > >
> > > > >
> > > > > To axis-dev@ws.apache.org ,  dims@apache.org
> > > > >
> > > > > cc
> > > > >
> > > > >
> > > > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a
> plan)
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Dims,
> > > > >
> > > > >  Sounds good.
> > > > >
> > > > >  So it looks like the @WebService tag is not really useful as we
> > explicitly name the class in the services.xml
> > > > >  So from Axis2 side we are covered
> > > > >
> > > > >  However I am wondering if there is some requirment from the
> JAX-WS
> > side as to how we should leverage this @WebService annotation.
> > > > >  wondering if the spec mandates some sort of stratergy for this.
> (I
> > read the spec and couldn't find anything)
> > > > >
> > > > >  For now lets go ahead with what we planned (with a message
> receiver)
> > and worry about @WebService thing when we figure out the exact
> requirment.
> > > > >
> > > > >  Regards,
> > > > >
> > > > >  Rajith.
> > > > >
> > > > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > > > Rajith,
> > > > >
> > > > >  In the short term, We have RPCMessageReceiver,
> > > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > > >  WSMRPCMessageReceiver as well. So we will have to look at the
> class
> > > > >  name specified in the services.xml just like we do for other
> > > > >  receivers.
> > > > >
> > > > >  -- dims
> > > > >
> > > > >  On 6/19/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > > >  > Hi Dims
> > > > >  >
> > > > >  > One more question if you don't mind :-)
> > > > >  >
> > > > >  > What is the plan to figure out a class marked with @WebService?
> > > > >  >
> > > > >  > a) are we going to look through a particular location to
> introspect
> > any
> > > > >  > class files droped there ?
> > > > >  > b) is the user responsible for adding the service via some API
> > method ? for
> > > > >  > ex: AxisService.createService(String className) ?
> > > > >  >
> > > > >  > The rest we can introspect once we get the class identified.
> But I
> > am
> > > > >  > wondering how is the initial step of figuring out the marked
> > (annotated
> > > > >  > class) class with the @WebService tag.
> > > > >  >
> > > > >  > Sorry for the long list of questions.
> > > > >  >
> > > > >  > Regards,
> > > > >  >
> > > > >  > Rajith
> > > > >  >
> > > > >  >
> > > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > > >  > >
> > > > >  > > Hi Dims,
> > > > >  > >
> > > > >  > > Sorry if this question sounds stupid, but there is something
> that
> > I don't
> > > > >  > get.
> > > > >  > > Can you explain any gaps that I have? :-)
> > > > >  > >
> > > > >  > > So we use WSM to get the jsr181 support.
> > > > >  > > But, It looks like wsm is not complete in terms of the POJO
> > aspect as the
> > > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > > >  > >
> > > > >  > > I guess part of the job is to complete the wsm stuff and then
> use
> > it
> > > > >  > inside axis2. Or did I get this wrong?
> > > > >  > >
> > > > >  > >
> > > > >  > > >> Forgot to mention, please use annogen (
> > http://annogen.codehaus.org/  )
> > > > >  > to access the annotations which are needed to build the
> WsmService
> > > > >  > >
> > > > >  > > So are we going to do the implementation of
> > ReflectionWsmServiceFactory
> > > > >  > inside Axis2?
> > > > >  > >
> > > > >  > > I thought we are going to complete that inside wsm and then
> > implement
> > > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out
> of a
> > > > >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> > > > >  > >
> > > > >  > > Did I miss something?
> > > > >  > >
> > > > >  > > Thanks,
> > > > >  > >
> > > > >  > >
> > > > >  > > Rajith
> > > > >  > >
> > > > >  > >
> > > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > >  > > > Let's keep this to axis-dev@ until we need some questions
> > answered
> > > > >  > > > from beehive folks. Forgot to mention, please use annogen
> > > > >  > > > ( http://annogen.codehaus.org/) to access the annotations
> which
> > are
> > > > >  > > > needed to build the WsmService. We explicitly took a
> dependency
> > on
> > > > >  > > > annogen in Axis2 for this purpose.
> > > > >  > > >
> > > > >  > > > thanks,
> > > > >  > > > -- dims
> > > > >  > > >
> > > > >  > > > On 6/13/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > > >  > > > > Hi Dims,
> > > > >  > > > >
> > > > >  > > > > Thanks for the pointers.
> > > > >  > > > > Let me look at how to get the ReflectionWsmServiceFactory
> > impl going.
> > > > >  > > > > after that I can start with WSMToAxisServiceBuilder to
> build
> > an
> > > > >  > AxisService
> > > > >  > > > > out of an anotated POJO.
> > > > >  > > > > Once I have something I will create a JIRA and attach a
> > patch. U can
> > > > >  > take a
> > > > >  > > > > look at the code and then we can take it from there.
> > > > >  > > > > If I have questions I will bug u again :-)
> > > > >  > > > >
> > > > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so
> I
> > am
> > > > >  > wondering how
> > > > >  > > > > to get WSM specific questions answered :-)
> > > > >  > > > >
> > > > >  > > > > Regards,
> > > > >  > > > >
> > > > >  > > > > Rajith
> > > > >  > > > >
> > > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > >  > > > > >
> > > > >  > > > > > Rajith,
> > > > >  > > > > >
> > > > >  > > > > > I think you need to implement
> ReflectionWsmServiceFactory
> > first. The
> > > > >  > > > > > angle of attack i am looking at is deploying a POJO
> with
> > > > >  > annotations.
> > > > >  > > > > > (See AxisService.createService in Axis2 where one can
> > deploy a
> > > > >  > pojo).
> > > > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService
> > info from
> > > > >  > WSM.
> > > > >  > > > > > WDYT? Once we have this, we can get fancy with codegen
> etc.
> > > > >  > > > > >
> > > > >  > > > > > thanks,
> > > > >  > > > > > dims
> > > > >  > > > > >
> > > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com >
> wrote:
> > > > >  > > > > > > Hi Dims & Eddie,
> > > > >  > > > > > >
> > > > >  > > > > > > So code wise I should be looking at MirrorWsmBuilder
> and
> > > > >  > WsmService?
> > > > >  > > > > > > Any pointers will be helpful.
> > > > >  > > > > > >
> > > > >  > > > > > > I am going through the wiki and JSR documentation and
> > will get
> > > > >  > back with
> > > > >  > > > > > > questions.
> > > > >  > > > > > > Meanwhile do we have that seperate jar that bundles
> all
> > the
> > > > >  > relevent
> > > > >  > > > > > classes
> > > > >  > > > > > > for the annotations support?
> > > > >  > > > > > >
> > > > >  > > > > > > Regards,
> > > > >  > > > > > >
> > > > >  > > > > > > Rajith
> > > > >  > > > > > >
> > > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > > >  > > > > > > >
> > > > >  > > > > > > > Dims--
> > > > >  > > > > > > >
> > > > >  > > > > > > >   Hey; apologies for the delay.  That's basically
> right
> > -- there
> > > > >  > is
> > > > >  > > > > > > > actually one other step in the annotation
> processing
> > pipeline
> > > > >  > which is
> > > > >  > > > > > > > verifying the validity of any annotations on the
> class.
> >  So, it
> > > > >  > would
> > > > >  > > > > > > > be:
> > > > >  > > > > > > >
> > > > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) -->
> > model
> > > > >  > building
> > > > >  > > > > > > > (MirrorWsmBuilder)
> > > > >  > > > > > > >
> > > > >  > > > > > > > which returns a WsmService object that can be wired
> up
> > into
> > > > >  > axis2
> > > > >  > > > > > stuff.
> > > > >  > > > > > > >
> > > > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a
> > separate JAR;
> > > > >  > my
> > > > >  > > > > > > > original plan was to just put the Axis 1.x and 2
> bits
> > in the
> > > > >  > same JAR
> > > > >  > > > > > > > file, but if this is a problem, let me know and I
> can
> > make three
> > > > >  > JARs
> > > > >  > > > > > > > -- generic web service processing code, axis 1,
> axis 2,
> > etc.
> > > > >  > > > > > > >
> > > > >  > > > > > > >   There is one important part of this that isn't
> done
> > yet, and
> > > > >  > that's
> > > > >  > > > > > > > to provide something that can be used inside of a
> > server runtime
> > > > >  > that
> > > > >  > > > > > > > abstracts from Sun's Mirror types which are used
> inside
> > of APT.
> > > > >  > Not
> > > > >  > > > > > > > exactly sure what this looks like yet -- could be
> > reflection or
> > > > >  > > > > > > > something else that abstracts from Sun's Mirror
> APIs
> > (used
> > > > >  > inside of
> > > > >  > > > > > > > APT).
> > > > >  > > > > > > >
> > > > >  > > > > > > >   Do you want to run this from inside of the Axis2
> > runtime or at
> > > > >  > > > > > > > build-time on the command line?  I'm assuming the
> > former.
> > > > >  > > > > > > >
> > > > >  > > > > > > > Eddie
> > > > >  > > > > > > >
> > > > >  > > > > > > >
> > > > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com >
> > wrote:
> > > > >  > > > > > > > > Eddie,
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > i was looking at the current codebase and spotted
> the
> > > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in
> Axis2 to
> > inspect
> > > > >  > a
> > > > >  > > > > > given
> > > > >  > > > > > > > > java class? and one the WsmService object is
> built,
> > then
> > > > >  > translate
> > > > >  > > > > > > > > that to Axis2 thingies? Can we split out the
> > processing
> > > > >  > framework
> > > > >  > > > > > into
> > > > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am
> i on
> > the
> > > > >  > right
> > > > >  > > > > > track
> > > > >  > > > > > > > > with this thinking?
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > thanks,
> > > > >  > > > > > > > > dims
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com >
> wrote:
> > > > >  > > > > > > > > > All--
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Happy New Year!  And, as a way to start the
> year
> > off on a
> > > > >  > good
> > > > >  > > > > > foot,
> > > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for
> how
> > we get
> > > > >  > from
> > > > >  > > > > > here to
> > > > >  > > > > > > > > > there with some details about where we are and
> what
> > needs to
> > > > >  > > > > > happen.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Today, there are two core WSM parts, both of
> > which are
> > > > >  > tailored
> > > > >  > > > > > to
> > > > >  > > > > > > > > > the Axis web service stack:
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   build-time: This is a generic annotation
> > processing layer
> > > > >  > that
> > > > >  > > > > > has
> > > > >  > > > > > > > > > the ability to work against Mirror, reflection,
> and
> > WSDL to
> > > > >  > > > > > produce a
> > > > >  > > > > > > > > > WSM JavaBean model that represents a web
> service.
> > The
> > > > >  > build-time
> > > > >  > > > > > > > > > layer has a plug-point for generating source
> > artifacts to
> > > > >  > support
> > > > >  > > > > > > > > > various web service runtimes.  For example, the
> > Axis
> > > > >  > > > > > implementation
> > > > >  > > > > > > > > > produces a serialized version of the WSM
> JavaBean
> > model.
> > > > >  > This
> > > > >  > > > > > could
> > > > >  > > > > > > > > > also produce JAX-RPC source / deployment
> descriptor
> > > > >  > artifacts,
> > > > >  > > > > > etc.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   runtime: The runtime side of WSM is
> specifically
> > built to
> > > > >  > > > > > support
> > > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized
> > JavaBean
> > > > >  > model
> > > > >  > > > > > > > > > generated at build time and uses an Axis
> Handler to
> > > > >  > configure a
> > > > >  > > > > > > > > > SOAPService given this information.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   There is another large bunch of code in WSM
> > related to
> > > > >  > tools:
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down
> web
> > service
> > > > >  > > > > > development
> > > > >  > > > > > > > > > model and starts with a WSDL to produce an
> > annotated Java
> > > > >  > source
> > > > >  > > > > > file.
> > > > >  > > > > > > > > >  This tool requires significant knowledge of
> WSDL
> > and type
> > > > >  > mapping
> > > > >  > > > > > for
> > > > >  > > > > > > > > > a specific web service stack.  For example, the
> > mapping for
> > > > >  > an XSD
> > > > >  > > > > > > > > > year is mapped to org.apache.axis.types.Yearand
> > something
> > > > >  > > > > > different
> > > > >  > > > > > > > > > on other web service stacks.  wsdl2java is a
> > non-trivial
> > > > >  > bunch of
> > > > >  > > > > > code
> > > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   In order to finish WSM, one more
> re-architecting
> > step
> > > > >  > needs to
> > > > >  > > > > > be
> > > > >  > > > > > > > > > completed; I'd like to remove the use of a
> > serialized Java
> > > > >  > object
> > > > >  > > > > > as
> > > > >  > > > > > > > > > the way to communicate from the build-time to
> > runtime parts
> > > > >  > of the
> > > > >  > > > > > > > > > implementation.  This would be replaced with a
> WSDD
> > like,
> > > > >  > but WSM
> > > > >  > > > > > > > > > specific, XML descriptor of the
> service.  AFAICT,
> > WSDD can't
> > > > >  > be
> > > > >  > > > > > used
> > > > >  > > > > > > > > > for this because too closely matches the shape
> of a
> > Java
> > > > >  > class
> > > > >  > > > > > (Dims
> > > > >  > > > > > > > > > and others, feel free to correct me if I'm
> wrong).
> > So, we
> > > > >  > need a
> > > > >  > > > > > > > > > simple XML file that describes the information
> > captured in a
> > > > >  > > > > > > > > > WsmService.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Once this is done, we can start work on
> passing
> > the
> > > > >  > JSR-181 TCK.
> > > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   In order to expedite the process of getting
> from
> > here to
> > > > >  > TCK
> > > > >  > > > > > > > > > compliance, I'd like to suggest that we stop
> stop
> > work on
> > > > >  > the
> > > > >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing
> 1.0
> > and
> > > > >  > restart
> > > > >  > > > > > this
> > > > >  > > > > > > > > > tool immediately post-1.0.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Post 1.0, there are lots of other things that
> we
> > could do
> > > > >  > > > > > including:
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > > - JDK 1.4 support
> > > > >  > > > > > > > > > - drop-in support for WSM in Axis to support
> > iteratively
> > > > >  > > > > > developing an
> > > > >  > > > > > > > > > annotated web service
> > > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest
> in
> > working
> > > > >  > on
> > > > >  > > > > > this?)
> > > > >  > > > > > > > > > - custom annotations to support
> container-specific
> > features
> > > > >  > like
> > > > >  > > > > > type
> > > > >  > > > > > > > mapping
> > > > >  > > > > > > > > > - and so on...
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Personally, I'm chomping at the bit to get
> WSM's
> > 1.0 done
> > > > >  > and
> > > > >  > > > > > would
> > > > >  > > > > > > > > > like to narrow scope in order to do that.  I
> think
> > we're
> > > > >  > almost
> > > > >  > > > > > ready
> > > > >  > > > > > > > > > for the TCK; I'll start on the XML file to
> describe
> > an
> > > > >  > annotated
> > > > >  > > > > > Axis
> > > > >  > > > > > > > > > web service shortly.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > > Eddie
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > >
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > --
> > > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >  > > > > > > > >
> > > > >  > > > > > > >
> > > > >  > > > > > >
> > > > >  > > > > > >
> > > > >  > > > > >
> > > > >  > > > > >
> > > > >  > > > > > --
> > > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >  > > > > >
> > > > >  > > > >
> > > > >  > > > >
> > > > >  > > >
> > > > >  > > >
> > > > >  > > > --
> > > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >  > > >
> > > > >  > > >
> > > > >  >
> > ---------------------------------------------------------------------
> > > > >  > > > To unsubscribe, e-mail:
> > > > >  > axis-dev-unsubscribe@ws.apache.org
> > > > >  > > > For additional commands, e-mail:
> axis-dev-help@ws.apache.org
> > > > >  > > >
> > > > >  > > >
> > > > >  > >
> > > > >  > >
> > > > >  >
> > > > >  >
> > > > >
> > > > >
> > > > >  --
> > > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > >  To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
Rajith--

  Sounds good -- once you've got some code, send it along and I can
get it into SVN.

  We still have the outstanding issue of how to check / validate the
annotations on a POJO.  What were your thoughts about how to do that?
FWIW, I'll take a pass at seeing if the Mirror-like API we've got will
work easily.

Eddie


On 6/21/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Eddie,
>
> Thanks for answering the concerns raised by Nicholas and Dennis.
>
> As dims pointed out, I will start with annogen to get the
> ReflectionWsmServiceFactory going.
>
> Regards,
>
> Rajith
>
>
>  On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > Eddie,
> >
> > As i was telling Rajith, we'd like to try annogen based runtime
> > annotation processing to start with.
> >
> > -- dims
> >
> > On 6/21/06, Eddie O'Neil <ekoneil@gmail.com > wrote:
> > >
> > > Nicholas --
> > >
> > >   Basically, yes.  :)  WSM will handle the complexity around the
> specification's details regarding the @WebService annotation, SEIs, and WSDL
> binding.  There's code living here:
> > >
> > >
> http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > >
> > > that implements most of this (there are a few holes...).  The annotation
> processor walks an @WebService annotated class / interface and produces a
> model that describes the service (WsmService).  This POJO can then be used
> for code generation, to update deployment descriptors, or for auto-wiring of
> a web service in the VM at runtime.  The latter is how this works for Axis1.
> > >
> > >   Currently, WSM is implemented to use Java 5's Mirror infrastructure in
> order to execute annotation processing at build time.  We have a layer that
> basically duplicates the Mirror APIs and wraps them so that it's possible to
> support XDoclet / annogen / asm, so it should be possible to support either
>  1.5 or 1.4 and annotation processing at buildtime or at runtime.  Certainly
> open to other suggestions if you have them -- if we moved away from Mirror
> altogether, there would be some work to do to rewrite some things, but it
> wouldn't be rocket science.  :)
> > >
> > >
> > > Eddie
> > >
> > >
> > >
> > >
> > > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > > >
> > > >
> > > > Rajith,
> > > >
> > > > From a JAX-WS perspective, the @WebService annotation does introduce
> some challenges when it comes to determining what the interface of a Web
> service will be.  From my interpretation, which is just that, it doesn't
> dictate as much how the annotation should be handled at runtime as much as
> it does instruct how the annotation affects the Java to WSDL mapping.  I
> think the assumption after that is, the system will then do whatever it
> needs to configure itself to fulfill the contract defined by that WSDL.  If
> I understand correctly what Dim's has proposed, this is the piece that your
> WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the
> information gets relayed to Axis2 correctly.
> > > >
> > > > With respect to just the @WebService annotation, and not the
> annotations processing as a whole, it seems like you might encounter a few
> scenarios that could be tricky.  I don't know enough about the specifics of
> WSM though, so it may resolve some of the headaches for you.
> > > >
> > > > - When a class is annotated with @WebService, any of the public
> methods available on that class are to be exposed as an operation in a Web
> service.  If that particular annotation instance has the WSDL document
> location specified, then we need to do some bit of processing/validation to
> make sure the public methods support what's defined in the WSDL.  Or....
> does WSM just do that for you?
> > > >
> > > > - Because of the "serviceEnpdointInterface" property on the
> @WebService annotation, the above case becomes a little more complex.
> JAX-WS has a notion of squashing that SEI, along with the public methods on
> any other interface that the SEI may extend into one giant interface, which
> should then be reflected in the WSDL.  Again, I don't know enough about WSM,
> but this might be something it handles for you.  If not, it seems like you
> will be required to walk the annotations and collect the metadata from every
> interface that's extended?
> > > >
> > > > I'm glad to see you'll be working on this.  As mentioned before, I
> think there is some commonality that can be leveraged when it comes to
> JAX-WS as well.  A few questions though about the annotations support for
> Axis2 endpoints (I know you're just getting started with this so I
> understand if some of this is longer term) :
> > > >
> > > > - When annotations are added to a class, are you still requiring the
> presence of a services.xml?  If so, what's the minimum set of information
> required in that document?  I.e., could I get away with annotating a class
> and just specifying that ServiceClass property in XML file?  I can see still
> needing the deployment descriptor for specifying module refs, but would it
> be able to have just that and not the operation descriptions.  Just a
> thought.
> > > >
> > > > - If annotations are supported for Axis2/ADB endpoints, how would we
> distinguish those from JAX-WS endpoints?
> > > >
> > > > Hope this helps...
> > > >
> > > > Regards,
> > > >
> > > > Nicholas Gallardo
> > > >  WebSphere  -  WebServices Development
> > > >  nlgallar@us.ibm.com
> > > >  Phone: 512-838-1182
> > > >  Building: 901 / 5G-016
> > > >
> > > >
> > > >
> > > >
> > > > "Rajith Attapattu" <ra...@gmail.com>
> > > >
> > > >
> > > > 06/19/2006 09:35 PM
> > > >
> > > > Please respond to
> > > >  axis-dev@ws.apache.org
> > > >
> > > >
> > > > To axis-dev@ws.apache.org ,  dims@apache.org
> > > >
> > > > cc
> > > >
> > > >
> > > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Dims,
> > > >
> > > >  Sounds good.
> > > >
> > > >  So it looks like the @WebService tag is not really useful as we
> explicitly name the class in the services.xml
> > > >  So from Axis2 side we are covered
> > > >
> > > >  However I am wondering if there is some requirment from the JAX-WS
> side as to how we should leverage this @WebService annotation.
> > > >  wondering if the spec mandates some sort of stratergy for this. (I
> read the spec and couldn't find anything)
> > > >
> > > >  For now lets go ahead with what we planned (with a message receiver)
> and worry about @WebService thing when we figure out the exact requirment.
> > > >
> > > >  Regards,
> > > >
> > > >  Rajith.
> > > >
> > > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > > Rajith,
> > > >
> > > >  In the short term, We have RPCMessageReceiver,
> > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > >  WSMRPCMessageReceiver as well. So we will have to look at the class
> > > >  name specified in the services.xml just like we do for other
> > > >  receivers.
> > > >
> > > >  -- dims
> > > >
> > > >  On 6/19/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > >  > Hi Dims
> > > >  >
> > > >  > One more question if you don't mind :-)
> > > >  >
> > > >  > What is the plan to figure out a class marked with @WebService?
> > > >  >
> > > >  > a) are we going to look through a particular location to introspect
> any
> > > >  > class files droped there ?
> > > >  > b) is the user responsible for adding the service via some API
> method ? for
> > > >  > ex: AxisService.createService(String className) ?
> > > >  >
> > > >  > The rest we can introspect once we get the class identified. But I
> am
> > > >  > wondering how is the initial step of figuring out the marked
> (annotated
> > > >  > class) class with the @WebService tag.
> > > >  >
> > > >  > Sorry for the long list of questions.
> > > >  >
> > > >  > Regards,
> > > >  >
> > > >  > Rajith
> > > >  >
> > > >  >
> > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > >  > >
> > > >  > > Hi Dims,
> > > >  > >
> > > >  > > Sorry if this question sounds stupid, but there is something that
> I don't
> > > >  > get.
> > > >  > > Can you explain any gaps that I have? :-)
> > > >  > >
> > > >  > > So we use WSM to get the jsr181 support.
> > > >  > > But, It looks like wsm is not complete in terms of the POJO
> aspect as the
> > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > >  > >
> > > >  > > I guess part of the job is to complete the wsm stuff and then use
> it
> > > >  > inside axis2. Or did I get this wrong?
> > > >  > >
> > > >  > >
> > > >  > > >> Forgot to mention, please use annogen (
> http://annogen.codehaus.org/  )
> > > >  > to access the annotations which are needed to build the WsmService
> > > >  > >
> > > >  > > So are we going to do the implementation of
> ReflectionWsmServiceFactory
> > > >  > inside Axis2?
> > > >  > >
> > > >  > > I thought we are going to complete that inside wsm and then
> implement
> > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > > >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> > > >  > >
> > > >  > > Did I miss something?
> > > >  > >
> > > >  > > Thanks,
> > > >  > >
> > > >  > >
> > > >  > > Rajith
> > > >  > >
> > > >  > >
> > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > >  > > > Let's keep this to axis-dev@ until we need some questions
> answered
> > > >  > > > from beehive folks. Forgot to mention, please use annogen
> > > >  > > > ( http://annogen.codehaus.org/) to access the annotations which
> are
> > > >  > > > needed to build the WsmService. We explicitly took a dependency
> on
> > > >  > > > annogen in Axis2 for this purpose.
> > > >  > > >
> > > >  > > > thanks,
> > > >  > > > -- dims
> > > >  > > >
> > > >  > > > On 6/13/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > >  > > > > Hi Dims,
> > > >  > > > >
> > > >  > > > > Thanks for the pointers.
> > > >  > > > > Let me look at how to get the ReflectionWsmServiceFactory
> impl going.
> > > >  > > > > after that I can start with WSMToAxisServiceBuilder to build
> an
> > > >  > AxisService
> > > >  > > > > out of an anotated POJO.
> > > >  > > > > Once I have something I will create a JIRA and attach a
> patch. U can
> > > >  > take a
> > > >  > > > > look at the code and then we can take it from there.
> > > >  > > > > If I have questions I will bug u again :-)
> > > >  > > > >
> > > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I
> am
> > > >  > wondering how
> > > >  > > > > to get WSM specific questions answered :-)
> > > >  > > > >
> > > >  > > > > Regards,
> > > >  > > > >
> > > >  > > > > Rajith
> > > >  > > > >
> > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > >  > > > > >
> > > >  > > > > > Rajith,
> > > >  > > > > >
> > > >  > > > > > I think you need to implement ReflectionWsmServiceFactory
> first. The
> > > >  > > > > > angle of attack i am looking at is deploying a POJO with
> > > >  > annotations.
> > > >  > > > > > (See AxisService.createService in Axis2 where one can
> deploy a
> > > >  > pojo).
> > > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService
> info from
> > > >  > WSM.
> > > >  > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > >  > > > > >
> > > >  > > > > > thanks,
> > > >  > > > > > dims
> > > >  > > > > >
> > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > >  > > > > > > Hi Dims & Eddie,
> > > >  > > > > > >
> > > >  > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > > >  > WsmService?
> > > >  > > > > > > Any pointers will be helpful.
> > > >  > > > > > >
> > > >  > > > > > > I am going through the wiki and JSR documentation and
> will get
> > > >  > back with
> > > >  > > > > > > questions.
> > > >  > > > > > > Meanwhile do we have that seperate jar that bundles all
> the
> > > >  > relevent
> > > >  > > > > > classes
> > > >  > > > > > > for the annotations support?
> > > >  > > > > > >
> > > >  > > > > > > Regards,
> > > >  > > > > > >
> > > >  > > > > > > Rajith
> > > >  > > > > > >
> > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > >  > > > > > > >
> > > >  > > > > > > > Dims--
> > > >  > > > > > > >
> > > >  > > > > > > >   Hey; apologies for the delay.  That's basically right
> -- there
> > > >  > is
> > > >  > > > > > > > actually one other step in the annotation processing
> pipeline
> > > >  > which is
> > > >  > > > > > > > verifying the validity of any annotations on the class.
>  So, it
> > > >  > would
> > > >  > > > > > > > be:
> > > >  > > > > > > >
> > > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) -->
> model
> > > >  > building
> > > >  > > > > > > > (MirrorWsmBuilder)
> > > >  > > > > > > >
> > > >  > > > > > > > which returns a WsmService object that can be wired up
> into
> > > >  > axis2
> > > >  > > > > > stuff.
> > > >  > > > > > > >
> > > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a
> separate JAR;
> > > >  > my
> > > >  > > > > > > > original plan was to just put the Axis 1.x and 2 bits
> in the
> > > >  > same JAR
> > > >  > > > > > > > file, but if this is a problem, let me know and I can
> make three
> > > >  > JARs
> > > >  > > > > > > > -- generic web service processing code, axis 1, axis 2,
> etc.
> > > >  > > > > > > >
> > > >  > > > > > > >   There is one important part of this that isn't done
> yet, and
> > > >  > that's
> > > >  > > > > > > > to provide something that can be used inside of a
> server runtime
> > > >  > that
> > > >  > > > > > > > abstracts from Sun's Mirror types which are used inside
> of APT.
> > > >  > Not
> > > >  > > > > > > > exactly sure what this looks like yet -- could be
> reflection or
> > > >  > > > > > > > something else that abstracts from Sun's Mirror APIs
> (used
> > > >  > inside of
> > > >  > > > > > > > APT).
> > > >  > > > > > > >
> > > >  > > > > > > >   Do you want to run this from inside of the Axis2
> runtime or at
> > > >  > > > > > > > build-time on the command line?  I'm assuming the
> former.
> > > >  > > > > > > >
> > > >  > > > > > > > Eddie
> > > >  > > > > > > >
> > > >  > > > > > > >
> > > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com >
> wrote:
> > > >  > > > > > > > > Eddie,
> > > >  > > > > > > > >
> > > >  > > > > > > > > i was looking at the current codebase and spotted the
> > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to
> inspect
> > > >  > a
> > > >  > > > > > given
> > > >  > > > > > > > > java class? and one the WsmService object is built,
> then
> > > >  > translate
> > > >  > > > > > > > > that to Axis2 thingies? Can we split out the
> processing
> > > >  > framework
> > > >  > > > > > into
> > > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on
> the
> > > >  > right
> > > >  > > > > > track
> > > >  > > > > > > > > with this thinking?
> > > >  > > > > > > > >
> > > >  > > > > > > > > thanks,
> > > >  > > > > > > > > dims
> > > >  > > > > > > > >
> > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > >  > > > > > > > > > All--
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Happy New Year!  And, as a way to start the year
> off on a
> > > >  > good
> > > >  > > > > > foot,
> > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how
> we get
> > > >  > from
> > > >  > > > > > here to
> > > >  > > > > > > > > > there with some details about where we are and what
> needs to
> > > >  > > > > > happen.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Today, there are two core WSM parts, both of
> which are
> > > >  > tailored
> > > >  > > > > > to
> > > >  > > > > > > > > > the Axis web service stack:
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   build-time: This is a generic annotation
> processing layer
> > > >  > that
> > > >  > > > > > has
> > > >  > > > > > > > > > the ability to work against Mirror, reflection, and
> WSDL to
> > > >  > > > > > produce a
> > > >  > > > > > > > > > WSM JavaBean model that represents a web service.
> The
> > > >  > build-time
> > > >  > > > > > > > > > layer has a plug-point for generating source
> artifacts to
> > > >  > support
> > > >  > > > > > > > > > various web service runtimes.  For example, the
> Axis
> > > >  > > > > > implementation
> > > >  > > > > > > > > > produces a serialized version of the WSM JavaBean
> model.
> > > >  > This
> > > >  > > > > > could
> > > >  > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > > >  > artifacts,
> > > >  > > > > > etc.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   runtime: The runtime side of WSM is specifically
> built to
> > > >  > > > > > support
> > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized
> JavaBean
> > > >  > model
> > > >  > > > > > > > > > generated at build time and uses an Axis Handler to
> > > >  > configure a
> > > >  > > > > > > > > > SOAPService given this information.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   There is another large bunch of code in WSM
> related to
> > > >  > tools:
> > > >  > > > > > > > > >
> > > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
> service
> > > >  > > > > > development
> > > >  > > > > > > > > > model and starts with a WSDL to produce an
> annotated Java
> > > >  > source
> > > >  > > > > > file.
> > > >  > > > > > > > > >  This tool requires significant knowledge of WSDL
> and type
> > > >  > mapping
> > > >  > > > > > for
> > > >  > > > > > > > > > a specific web service stack.  For example, the
> mapping for
> > > >  > an XSD
> > > >  > > > > > > > > > year is mapped to org.apache.axis.types.Year and
> something
> > > >  > > > > > different
> > > >  > > > > > > > > > on other web service stacks.  wsdl2java is a
> non-trivial
> > > >  > bunch of
> > > >  > > > > > code
> > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   In order to finish WSM, one more re-architecting
> step
> > > >  > needs to
> > > >  > > > > > be
> > > >  > > > > > > > > > completed; I'd like to remove the use of a
> serialized Java
> > > >  > object
> > > >  > > > > > as
> > > >  > > > > > > > > > the way to communicate from the build-time to
> runtime parts
> > > >  > of the
> > > >  > > > > > > > > > implementation.  This would be replaced with a WSDD
> like,
> > > >  > but WSM
> > > >  > > > > > > > > > specific, XML descriptor of the service.  AFAICT,
> WSDD can't
> > > >  > be
> > > >  > > > > > used
> > > >  > > > > > > > > > for this because too closely matches the shape of a
> Java
> > > >  > class
> > > >  > > > > > (Dims
> > > >  > > > > > > > > > and others, feel free to correct me if I'm wrong).
> So, we
> > > >  > need a
> > > >  > > > > > > > > > simple XML file that describes the information
> captured in a
> > > >  > > > > > > > > > WsmService.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Once this is done, we can start work on passing
> the
> > > >  > JSR-181 TCK.
> > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   In order to expedite the process of getting from
> here to
> > > >  > TCK
> > > >  > > > > > > > > > compliance, I'd like to suggest that we stop stop
> work on
> > > >  > the
> > > >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0
> and
> > > >  > restart
> > > >  > > > > > this
> > > >  > > > > > > > > > tool immediately post-1.0.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Post 1.0, there are lots of other things that we
> could do
> > > >  > > > > > including:
> > > >  > > > > > > > > >
> > > >  > > > > > > > > > - JDK 1.4 support
> > > >  > > > > > > > > > - drop-in support for WSM in Axis to support
> iteratively
> > > >  > > > > > developing an
> > > >  > > > > > > > > > annotated web service
> > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
> working
> > > >  > on
> > > >  > > > > > this?)
> > > >  > > > > > > > > > - custom annotations to support container-specific
> features
> > > >  > like
> > > >  > > > > > type
> > > >  > > > > > > > mapping
> > > >  > > > > > > > > > - and so on...
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's
> 1.0 done
> > > >  > and
> > > >  > > > > > would
> > > >  > > > > > > > > > like to narrow scope in order to do that.  I think
> we're
> > > >  > almost
> > > >  > > > > > ready
> > > >  > > > > > > > > > for the TCK; I'll start on the XML file to describe
> an
> > > >  > annotated
> > > >  > > > > > Axis
> > > >  > > > > > > > > > web service shortly.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > > Eddie
> > > >  > > > > > > > > >
> > > >  > > > > > > > >
> > > >  > > > > > > > >
> > > >  > > > > > > > > --
> > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >  > > > > > > > >
> > > >  > > > > > > >
> > > >  > > > > > >
> > > >  > > > > > >
> > > >  > > > > >
> > > >  > > > > >
> > > >  > > > > > --
> > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >  > > > > >
> > > >  > > > >
> > > >  > > > >
> > > >  > > >
> > > >  > > >
> > > >  > > > --
> > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >  > > >
> > > >  > > >
> > > >  >
> ---------------------------------------------------------------------
> > > >  > > > To unsubscribe, e-mail:
> > > >  > axis-dev-unsubscribe@ws.apache.org
> > > >  > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >  > > >
> > > >  > > >
> > > >  > >
> > > >  > >
> > > >  >
> > > >  >
> > > >
> > > >
> > > >  --
> > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > > >
> ---------------------------------------------------------------------
> > > >  To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Eddie,

Thanks for answering the concerns raised by Nicholas and Dennis.

As dims pointed out, I will start with annogen to get the
ReflectionWsmServiceFactory going.

Regards,

Rajith

On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Eddie,
>
> As i was telling Rajith, we'd like to try annogen based runtime
> annotation processing to start with.
>
> -- dims
>
> On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> >
> > Nicholas --
> >
> >   Basically, yes.  :)  WSM will handle the complexity around the
> specification's details regarding the @WebService annotation, SEIs, and WSDL
> binding.  There's code living here:
> >
> >
> http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> >
> > that implements most of this (there are a few holes...).  The annotation
> processor walks an @WebService annotated class / interface and produces a
> model that describes the service (WsmService).  This POJO can then be used
> for code generation, to update deployment descriptors, or for auto-wiring of
> a web service in the VM at runtime.  The latter is how this works for Axis1.
> >
> >   Currently, WSM is implemented to use Java 5's Mirror infrastructure in
> order to execute annotation processing at build time.  We have a layer that
> basically duplicates the Mirror APIs and wraps them so that it's possible to
> support XDoclet / annogen / asm, so it should be possible to support
> either  1.5 or 1.4 and annotation processing at buildtime or at
> runtime.  Certainly open to other suggestions if you have them -- if we
> moved away from Mirror altogether, there would be some work to do to rewrite
> some things, but it wouldn't be rocket science.  :)
> >
> >
> > Eddie
> >
> >
> >
> >
> > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > >
> > >
> > > Rajith,
> > >
> > > From a JAX-WS perspective, the @WebService annotation does introduce
> some challenges when it comes to determining what the interface of a Web
> service will be.  From my interpretation, which is just that, it doesn't
> dictate as much how the annotation should be handled at runtime as much as
> it does instruct how the annotation affects the Java to WSDL mapping.  I
> think the assumption after that is, the system will then do whatever it
> needs to configure itself to fulfill the contract defined by that WSDL.  If
> I understand correctly what Dim's has proposed, this is the piece that your
> WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the
> information gets relayed to Axis2 correctly.
> > >
> > > With respect to just the @WebService annotation, and not the
> annotations processing as a whole, it seems like you might encounter a few
> scenarios that could be tricky.  I don't know enough about the specifics of
> WSM though, so it may resolve some of the headaches for you.
> > >
> > > - When a class is annotated with @WebService, any of the public
> methods available on that class are to be exposed as an operation in a Web
> service.  If that particular annotation instance has the WSDL document
> location specified, then we need to do some bit of processing/validation to
> make sure the public methods support what's defined in the WSDL.  Or....
> does WSM just do that for you?
> > >
> > > - Because of the "serviceEnpdointInterface" property on the
> @WebService annotation, the above case becomes a little more
> complex.  JAX-WS has a notion of squashing that SEI, along with the public
> methods on any other interface that the SEI may extend into one giant
> interface, which should then be reflected in the WSDL.  Again, I don't know
> enough about WSM, but this might be something it handles for you.  If not,
> it seems like you will be required to walk the annotations and collect the
> metadata from every interface that's extended?
> > >
> > > I'm glad to see you'll be working on this.  As mentioned before, I
> think there is some commonality that can be leveraged when it comes to
> JAX-WS as well.  A few questions though about the annotations support for
> Axis2 endpoints (I know you're just getting started with this so I
> understand if some of this is longer term) :
> > >
> > > - When annotations are added to a class, are you still requiring the
> presence of a services.xml?  If so, what's the minimum set of information
> required in that document?  I.e., could I get away with annotating a class
> and just specifying that ServiceClass property in XML file?  I can see still
> needing the deployment descriptor for specifying module refs, but would it
> be able to have just that and not the operation descriptions.  Just a
> thought.
> > >
> > > - If annotations are supported for Axis2/ADB endpoints, how would we
> distinguish those from JAX-WS endpoints?
> > >
> > > Hope this helps...
> > >
> > > Regards,
> > >
> > > Nicholas Gallardo
> > >  WebSphere  -  WebServices Development
> > >  nlgallar@us.ibm.com
> > >  Phone: 512-838-1182
> > >  Building: 901 / 5G-016
> > >
> > >
> > >
> > >
> > > "Rajith Attapattu" <ra...@gmail.com>
> > >
> > >
> > > 06/19/2006 09:35 PM
> > >
> > > Please respond to
> > >  axis-dev@ws.apache.org
> > >
> > >
> > > To axis-dev@ws.apache.org,  dims@apache.org
> > >
> > > cc
> > >
> > >
> > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Dims,
> > >
> > >  Sounds good.
> > >
> > >  So it looks like the @WebService tag is not really useful as we
> explicitly name the class in the services.xml
> > >  So from Axis2 side we are covered
> > >
> > >  However I am wondering if there is some requirment from the JAX-WS
> side as to how we should leverage this @WebService annotation.
> > >  wondering if the spec mandates some sort of stratergy for this. (I
> read the spec and couldn't find anything)
> > >
> > >  For now lets go ahead with what we planned (with a message receiver)
> and worry about @WebService thing when we figure out the exact requirment.
> > >
> > >  Regards,
> > >
> > >  Rajith.
> > >
> > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > Rajith,
> > >
> > >  In the short term, We have RPCMessageReceiver,
> > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > >  WSMRPCMessageReceiver as well. So we will have to look at the class
> > >  name specified in the services.xml just like we do for other
> > >  receivers.
> > >
> > >  -- dims
> > >
> > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >  > Hi Dims
> > >  >
> > >  > One more question if you don't mind :-)
> > >  >
> > >  > What is the plan to figure out a class marked with @WebService?
> > >  >
> > >  > a) are we going to look through a particular location to introspect
> any
> > >  > class files droped there ?
> > >  > b) is the user responsible for adding the service via some API
> method ? for
> > >  > ex: AxisService.createService(String className) ?
> > >  >
> > >  > The rest we can introspect once we get the class identified. But I
> am
> > >  > wondering how is the initial step of figuring out the marked
> (annotated
> > >  > class) class with the @WebService tag.
> > >  >
> > >  > Sorry for the long list of questions.
> > >  >
> > >  > Regards,
> > >  >
> > >  > Rajith
> > >  >
> > >  >
> > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > >  > >
> > >  > > Hi Dims,
> > >  > >
> > >  > > Sorry if this question sounds stupid, but there is something that
> I don't
> > >  > get.
> > >  > > Can you explain any gaps that I have? :-)
> > >  > >
> > >  > > So we use WSM to get the jsr181 support.
> > >  > > But, It looks like wsm is not complete in terms of the POJO
> aspect as the
> > >  > reflection based ReflectionWsmServiceFactory is not done.
> > >  > >
> > >  > > I guess part of the job is to complete the wsm stuff and then use
> it
> > >  > inside axis2. Or did I get this wrong?
> > >  > >
> > >  > >
> > >  > > >> Forgot to mention, please use annogen (
> http://annogen.codehaus.org/  )
> > >  > to access the annotations which are needed to build the WsmService
> > >  > >
> > >  > > So are we going to do the implementation of
> ReflectionWsmServiceFactory
> > >  > inside Axis2?
> > >  > >
> > >  > > I thought we are going to complete that inside wsm and then
> implement
> > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> > >  > >
> > >  > > Did I miss something?
> > >  > >
> > >  > > Thanks,
> > >  > >
> > >  > >
> > >  > > Rajith
> > >  > >
> > >  > >
> > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > >  > > > Let's keep this to axis-dev@ until we need some questions
> answered
> > >  > > > from beehive folks. Forgot to mention, please use annogen
> > >  > > > ( http://annogen.codehaus.org/) to access the annotations which
> are
> > >  > > > needed to build the WsmService. We explicitly took a dependency
> on
> > >  > > > annogen in Axis2 for this purpose.
> > >  > > >
> > >  > > > thanks,
> > >  > > > -- dims
> > >  > > >
> > >  > > > On 6/13/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >  > > > > Hi Dims,
> > >  > > > >
> > >  > > > > Thanks for the pointers.
> > >  > > > > Let me look at how to get the ReflectionWsmServiceFactory
> impl going.
> > >  > > > > after that I can start with WSMToAxisServiceBuilder to build
> an
> > >  > AxisService
> > >  > > > > out of an anotated POJO.
> > >  > > > > Once I have something I will create a JIRA and attach a
> patch. U can
> > >  > take a
> > >  > > > > look at the code and then we can take it from there.
> > >  > > > > If I have questions I will bug u again :-)
> > >  > > > >
> > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I
> am
> > >  > wondering how
> > >  > > > > to get WSM specific questions answered :-)
> > >  > > > >
> > >  > > > > Regards,
> > >  > > > >
> > >  > > > > Rajith
> > >  > > > >
> > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > >  > > > > >
> > >  > > > > > Rajith,
> > >  > > > > >
> > >  > > > > > I think you need to implement ReflectionWsmServiceFactory
> first. The
> > >  > > > > > angle of attack i am looking at is deploying a POJO with
> > >  > annotations.
> > >  > > > > > (See AxisService.createService in Axis2 where one can
> deploy a
> > >  > pojo).
> > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService
> info from
> > >  > WSM.
> > >  > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > >  > > > > >
> > >  > > > > > thanks,
> > >  > > > > > dims
> > >  > > > > >
> > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >  > > > > > > Hi Dims & Eddie,
> > >  > > > > > >
> > >  > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > >  > WsmService?
> > >  > > > > > > Any pointers will be helpful.
> > >  > > > > > >
> > >  > > > > > > I am going through the wiki and JSR documentation and
> will get
> > >  > back with
> > >  > > > > > > questions.
> > >  > > > > > > Meanwhile do we have that seperate jar that bundles all
> the
> > >  > relevent
> > >  > > > > > classes
> > >  > > > > > > for the annotations support?
> > >  > > > > > >
> > >  > > > > > > Regards,
> > >  > > > > > >
> > >  > > > > > > Rajith
> > >  > > > > > >
> > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > >  > > > > > > >
> > >  > > > > > > > Dims--
> > >  > > > > > > >
> > >  > > > > > > >   Hey; apologies for the delay.  That's basically right
> -- there
> > >  > is
> > >  > > > > > > > actually one other step in the annotation processing
> pipeline
> > >  > which is
> > >  > > > > > > > verifying the validity of any annotations on the
> class.  So, it
> > >  > would
> > >  > > > > > > > be:
> > >  > > > > > > >
> > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) -->
> model
> > >  > building
> > >  > > > > > > > (MirrorWsmBuilder)
> > >  > > > > > > >
> > >  > > > > > > > which returns a WsmService object that can be wired up
> into
> > >  > axis2
> > >  > > > > > stuff.
> > >  > > > > > > >
> > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a
> separate JAR;
> > >  > my
> > >  > > > > > > > original plan was to just put the Axis 1.x and 2 bits
> in the
> > >  > same JAR
> > >  > > > > > > > file, but if this is a problem, let me know and I can
> make three
> > >  > JARs
> > >  > > > > > > > -- generic web service processing code, axis 1, axis 2,
> etc.
> > >  > > > > > > >
> > >  > > > > > > >   There is one important part of this that isn't done
> yet, and
> > >  > that's
> > >  > > > > > > > to provide something that can be used inside of a
> server runtime
> > >  > that
> > >  > > > > > > > abstracts from Sun's Mirror types which are used inside
> of APT.
> > >  > Not
> > >  > > > > > > > exactly sure what this looks like yet -- could be
> reflection or
> > >  > > > > > > > something else that abstracts from Sun's Mirror APIs
> (used
> > >  > inside of
> > >  > > > > > > > APT).
> > >  > > > > > > >
> > >  > > > > > > >   Do you want to run this from inside of the Axis2
> runtime or at
> > >  > > > > > > > build-time on the command line?  I'm assuming the
> former.
> > >  > > > > > > >
> > >  > > > > > > > Eddie
> > >  > > > > > > >
> > >  > > > > > > >
> > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com >
> wrote:
> > >  > > > > > > > > Eddie,
> > >  > > > > > > > >
> > >  > > > > > > > > i was looking at the current codebase and spotted the
> > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to
> inspect
> > >  > a
> > >  > > > > > given
> > >  > > > > > > > > java class? and one the WsmService object is built,
> then
> > >  > translate
> > >  > > > > > > > > that to Axis2 thingies? Can we split out the
> processing
> > >  > framework
> > >  > > > > > into
> > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on
> the
> > >  > right
> > >  > > > > > track
> > >  > > > > > > > > with this thinking?
> > >  > > > > > > > >
> > >  > > > > > > > > thanks,
> > >  > > > > > > > > dims
> > >  > > > > > > > >
> > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > >  > > > > > > > > > All--
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Happy New Year!  And, as a way to start the year
> off on a
> > >  > good
> > >  > > > > > foot,
> > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how
> we get
> > >  > from
> > >  > > > > > here to
> > >  > > > > > > > > > there with some details about where we are and what
> needs to
> > >  > > > > > happen.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Today, there are two core WSM parts, both of
> which are
> > >  > tailored
> > >  > > > > > to
> > >  > > > > > > > > > the Axis web service stack:
> > >  > > > > > > > > >
> > >  > > > > > > > > >   build-time: This is a generic annotation
> processing layer
> > >  > that
> > >  > > > > > has
> > >  > > > > > > > > > the ability to work against Mirror, reflection, and
> WSDL to
> > >  > > > > > produce a
> > >  > > > > > > > > > WSM JavaBean model that represents a web
> service.  The
> > >  > build-time
> > >  > > > > > > > > > layer has a plug-point for generating source
> artifacts to
> > >  > support
> > >  > > > > > > > > > various web service runtimes.  For example, the
> Axis
> > >  > > > > > implementation
> > >  > > > > > > > > > produces a serialized version of the WSM JavaBean
> model.
> > >  > This
> > >  > > > > > could
> > >  > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > >  > artifacts,
> > >  > > > > > etc.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   runtime: The runtime side of WSM is specifically
> built to
> > >  > > > > > support
> > >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized
> JavaBean
> > >  > model
> > >  > > > > > > > > > generated at build time and uses an Axis Handler to
> > >  > configure a
> > >  > > > > > > > > > SOAPService given this information.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   There is another large bunch of code in WSM
> related to
> > >  > tools:
> > >  > > > > > > > > >
> > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
> service
> > >  > > > > > development
> > >  > > > > > > > > > model and starts with a WSDL to produce an
> annotated Java
> > >  > source
> > >  > > > > > file.
> > >  > > > > > > > > >  This tool requires significant knowledge of WSDL
> and type
> > >  > mapping
> > >  > > > > > for
> > >  > > > > > > > > > a specific web service stack.  For example, the
> mapping for
> > >  > an XSD
> > >  > > > > > > > > > year is mapped to org.apache.axis.types.Year and
> something
> > >  > > > > > different
> > >  > > > > > > > > > on other web service stacks.  wsdl2java is a
> non-trivial
> > >  > bunch of
> > >  > > > > > code
> > >  > > > > > > > > > to write, but is also a very useful tool.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   In order to finish WSM, one more re-architecting
> step
> > >  > needs to
> > >  > > > > > be
> > >  > > > > > > > > > completed; I'd like to remove the use of a
> serialized Java
> > >  > object
> > >  > > > > > as
> > >  > > > > > > > > > the way to communicate from the build-time to
> runtime parts
> > >  > of the
> > >  > > > > > > > > > implementation.  This would be replaced with a WSDD
> like,
> > >  > but WSM
> > >  > > > > > > > > > specific, XML descriptor of the service.  AFAICT,
> WSDD can't
> > >  > be
> > >  > > > > > used
> > >  > > > > > > > > > for this because too closely matches the shape of a
> Java
> > >  > class
> > >  > > > > > (Dims
> > >  > > > > > > > > > and others, feel free to correct me if I'm
> wrong).  So, we
> > >  > need a
> > >  > > > > > > > > > simple XML file that describes the information
> captured in a
> > >  > > > > > > > > > WsmService.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Once this is done, we can start work on passing
> the
> > >  > JSR-181 TCK.
> > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   In order to expedite the process of getting from
> here to
> > >  > TCK
> > >  > > > > > > > > > compliance, I'd like to suggest that we stop stop
> work on
> > >  > the
> > >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0and
> > >  > restart
> > >  > > > > > this
> > >  > > > > > > > > > tool immediately post-1.0.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Post 1.0, there are lots of other things that we
> could do
> > >  > > > > > including:
> > >  > > > > > > > > >
> > >  > > > > > > > > > - JDK 1.4 support
> > >  > > > > > > > > > - drop-in support for WSM in Axis to support
> iteratively
> > >  > > > > > developing an
> > >  > > > > > > > > > annotated web service
> > >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
> working
> > >  > on
> > >  > > > > > this?)
> > >  > > > > > > > > > - custom annotations to support container-specific
> features
> > >  > like
> > >  > > > > > type
> > >  > > > > > > > mapping
> > >  > > > > > > > > > - and so on...
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's
> 1.0 done
> > >  > and
> > >  > > > > > would
> > >  > > > > > > > > > like to narrow scope in order to do that.  I think
> we're
> > >  > almost
> > >  > > > > > ready
> > >  > > > > > > > > > for the TCK; I'll start on the XML file to describe
> an
> > >  > annotated
> > >  > > > > > Axis
> > >  > > > > > > > > > web service shortly.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > >  > > > > > > > > >
> > >  > > > > > > > > > Eddie
> > >  > > > > > > > > >
> > >  > > > > > > > >
> > >  > > > > > > > >
> > >  > > > > > > > > --
> > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > >  > > > > > > > >
> > >  > > > > > > >
> > >  > > > > > >
> > >  > > > > > >
> > >  > > > > >
> > >  > > > > >
> > >  > > > > > --
> > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > >  > > > > >
> > >  > > > >
> > >  > > > >
> > >  > > >
> > >  > > >
> > >  > > > --
> > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > >  > > >
> > >  > > >
> > >  >
> ---------------------------------------------------------------------
> > >  > > > To unsubscribe, e-mail:
> > >  > axis-dev-unsubscribe@ws.apache.org
> > >  > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >  > > >
> > >  > > >
> > >  > >
> > >  > >
> > >  >
> > >  >
> > >
> > >
> > >  --
> > >  Davanum Srinivas : http://wso2.com/blogs/
> > >
> > >  ---------------------------------------------------------------------
> > >  To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> > >
> >
> >
>
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Dims,

Ok I will stick to the plan and let see what we can do as we understand
things more clearly.
Thanks guys for the help.

Regards,

Rajith

On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Rajith,
>
> i think you can continue working on Axis2 side of things...assuming
> WsmService is populated (and u can write some throwway code to
> populate it using annogen)
>
> -- dims
>
> On 6/21/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > Dims & Eddie,
> >
> >
> > > It'll be some work to get done, though, and annogen is likely to be
> more
> > expedient in the short term.  Let's decide once I know whether
> > > the above works.
> > So the plan is to wait till till Eddie figures out whether his proposed
> > approach is going to work?
> >
> > Regards,
> > Rajith
> >
> >
> > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > >   Ah -- interesting.  :)  If what I'll try works (using our
> > > Mirror-like APIs), we shouldn't have any dependence on com.sun stuff
> > > -- you'll be able to plug an implementation in that provides the same
> > > information via reflection or whatever.
> > >
> > >   It'll be some work to get done, though, and annogen is likely to be
> > > more expedient in the short term.  Let's decide once I know whether
> > > the above works.
> > >
> > >   FWIW, in the long run, those com.sun APIs will be available in the
> > > JDK once JSR-269 is finalized.
> > >
> > > Eddie
> > >
> > >
> > > On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > Whichever you think is right is ok with me. Let me clarify what i as
> > > > thinking...I was trying to make sure that we avoid com.sun stuff (so
> > > > that we can work in FOSS jvm's) and also work with JDK1.4 by using
> say
> > > > Retrotranslator (
> > http://retrotranslator.sourceforge.net/).
> > > >
> > > > thanks,
> > > > dims
> > > >
> > > > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > >   That's certainly an option, though it means that we'd need to
> rework
> > > > > the annotation checker which is what captures the interpretation
> of
> > > > > the 181 spec to move it away from using Mirror.
> > > > >
> > > > >   The value in Mirror / apt is that it's supported in Eclipse
> tooling
> > > > > -- you can get syntax and semantic checking on @WebService
> > > > > annotations, for example.  Personally, I think that's valuable.  A
> > > > > purely annogen based approach won't be embeddable inside of
> Eclipse.
> > > > >
> > > > >   I still think we can use annogen as a way to drive a Mirror-like
> API
> > > > > that can be used at both runtime / build time.  But, like I said,
> I'm
> > > > > open.  Do you want to just move to annogen, or can we consider
> this as
> > > > > an alternative?
> > > > >
> > > > > Eddie
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > > Eddie,
> > > > > >
> > > > > > As i was telling Rajith, we'd like to try annogen based runtime
> > > > > > annotation processing to start with.
> > > > > >
> > > > > > -- dims
> > > > > >
> > > > > > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > > >
> > > > > > > Nicholas --
> > > > > > >
> > > > > > >   Basically, yes.  :)  WSM will handle the complexity around
> the
> > specification's details regarding the @WebService annotation, SEIs, and
> WSDL
> > binding.  There's code living here:
> > > > > > >
> > > > > > >
> >
> http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > > > > > >
> > > > > > > that implements most of this (there are a few holes...).  The
> > annotation processor walks an @WebService annotated class / interface
> and
> > produces a model that describes the service (WsmService).  This POJO can
> > then be used for code generation, to update deployment descriptors, or
> for
> > auto-wiring of a web service in the VM at runtime.  The latter is how
> this
> > works for Axis1.
> > > > > > >
> > > > > > >   Currently, WSM is implemented to use Java 5's Mirror
> > infrastructure in order to execute annotation processing at build
> time.  We
> > have a layer that basically duplicates the Mirror APIs and wraps them so
> > that it's possible to support XDoclet / annogen / asm, so it should be
> > possible to support either   1.5 or 1.4 and annotation processing at
> > buildtime or at runtime.  Certainly open to other suggestions if you
> have
> > them -- if we moved away from Mirror altogether, there would be some
> work to
> > do to rewrite some things, but it wouldn't be rocket science.  :)
> > > > > > >
> > > > > > >
> > > > > > > Eddie
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 6/19/06, Nicholas L Gallardo < nlgallar@us.ibm.com> wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > > Rajith,
> > > > > > > >
> > > > > > > > From a JAX-WS perspective, the @WebService annotation does
> > introduce some challenges when it comes to determining what the
> interface of
> > a Web service will be.  From my interpretation, which is just that, it
> > doesn't dictate as much how the annotation should be handled at runtime
> as
> > much as it does instruct how the annotation affects the Java to WSDL
> > mapping.  I think the assumption after that is, the system will then do
> > whatever it needs to configure itself to fulfill the contract defined by
> > that WSDL.  If I understand correctly what Dim's has proposed, this is
> the
> > piece that your WSMToAxisServiceBuilder will fulfill.  The rest is
> making
> > sure that the information gets relayed to Axis2 correctly.
> > > > > > > >
> > > > > > > > With respect to just the @WebService annotation, and not the
> > annotations processing as a whole, it seems like you might encounter a
> few
> > scenarios that could be tricky.  I don't know enough about the specifics
> of
> > WSM though, so it may resolve some of the headaches for you.
> > > > > > > >
> > > > > > > > - When a class is annotated with @WebService, any of the
> public
> > methods available on that class are to be exposed as an operation in a
> Web
> > service.  If that particular annotation instance has the WSDL document
> > location specified, then we need to do some bit of processing/validation
> to
> > make sure the public methods support what's defined in the WSDL.  Or....
> > does WSM just do that for you?
> > > > > > > >
> > > > > > > > - Because of the "serviceEnpdointInterface" property on the
> > @WebService annotation, the above case becomes a little more complex.
> > JAX-WS has a notion of squashing that SEI, along with the public methods
> on
> > any other interface that the SEI may extend into one giant interface,
> which
> > should then be reflected in the WSDL.  Again, I don't know enough about
> WSM,
> > but this might be something it handles for you.  If not, it seems like
> you
> > will be required to walk the annotations and collect the metadata from
> every
> > interface that's extended?
> > > > > > > >
> > > > > > > > I'm glad to see you'll be working on this.  As mentioned
> before,
> > I think there is some commonality that can be leveraged when it comes to
> > JAX-WS as well.  A few questions though about the annotations support
> for
> > Axis2 endpoints (I know you're just getting started with this so I
> > understand if some of this is longer term) :
> > > > > > > >
> > > > > > > > - When annotations are added to a class, are you still
> requiring
> > the presence of a services.xml?  If so, what's the minimum set of
> > information required in that document?   I.e., could I get away with
> > annotating a class and just specifying that ServiceClass property in XML
> > file?  I can see still needing the deployment descriptor for specifying
> > module refs, but would it be able to have just that and not the
> operation
> > descriptions.  Just a thought.
> > > > > > > >
> > > > > > > > - If annotations are supported for Axis2/ADB endpoints, how
> > would we distinguish those from JAX-WS endpoints?
> > > > > > > >
> > > > > > > > Hope this helps...
> > > > > > > >
> > > > > > > > Regards,
> > > > > > > >
> > > > > > > > Nicholas Gallardo
> > > > > > > >  WebSphere  -  WebServices Development
> > > > > > > >   nlgallar@us.ibm.com
> > > > > > > >  Phone: 512-838-1182
> > > > > > > >  Building: 901 / 5G-016
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > "Rajith Attapattu" <ra...@gmail.com>
> > > > > > > >
> > > > > > > >
> > > > > > > > 06/19/2006 09:35 PM
> > > > > > > >
> > > > > > > > Please respond to
> > > > > > > >  axis-dev@ws.apache.org
> > > > > > > >
> > > > > > > >
> > > > > > > > To axis-dev@ws.apache.org,  dims@apache.org
> > > > > > > >
> > > > > > > > cc
> > > > > > > >
> > > > > > > >
> > > > > > > > Subject Re: Annotation parsing framework for Axis2 (Re:
> [wsm] a
> > plan)
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Dims,
> > > > > > > >
> > > > > > > >  Sounds good.
> > > > > > > >
> > > > > > > >  So it looks like the @WebService tag is not really useful
> as we
> > explicitly name the class in the services.xml
> > > > > > > >  So from Axis2 side we are covered
> > > > > > > >
> > > > > > > >  However I am wondering if there is some requirment from the
> > JAX-WS side as to how we should leverage this @WebService annotation.
> > > > > > > >  wondering if the spec mandates some sort of stratergy for
> this.
> > (I read the spec and couldn't find anything)
> > > > > > > >
> > > > > > > >  For now lets go ahead with what we planned (with a message
> > receiver) and worry about @WebService thing when we figure out the exact
> > requirment.
> > > > > > > >
> > > > > > > >  Regards,
> > > > > > > >
> > > > > > > >  Rajith.
> > > > > > > >
> > > > > > > > On 6/19/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > > > > > Rajith,
> > > > > > > >
> > > > > > > >  In the short term, We have RPCMessageReceiver,
> > > > > > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > > > > > >  WSMRPCMessageReceiver as well. So we will have to look at
> the
> > class
> > > > > > > >  name specified in the services.xml just like we do for
> other
> > > > > > > >  receivers.
> > > > > > > >
> > > > > > > >  -- dims
> > > > > > > >
> > > > > > > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > > > > >  > Hi Dims
> > > > > > > >  >
> > > > > > > >  > One more question if you don't mind :-)
> > > > > > > >  >
> > > > > > > >  > What is the plan to figure out a class marked with
> > @WebService?
> > > > > > > >  >
> > > > > > > >  > a) are we going to look through a particular location to
> > introspect any
> > > > > > > >  > class files droped there ?
> > > > > > > >  > b) is the user responsible for adding the service via
> some
> > API method ? for
> > > > > > > >  > ex: AxisService.createService(String className) ?
> > > > > > > >  >
> > > > > > > >  > The rest we can introspect once we get the class
> identified.
> > But I am
> > > > > > > >  > wondering how is the initial step of figuring out the
> marked
> > (annotated
> > > > > > > >  > class) class with the @WebService tag.
> > > > > > > >  >
> > > > > > > >  > Sorry for the long list of questions.
> > > > > > > >  >
> > > > > > > >  > Regards,
> > > > > > > >  >
> > > > > > > >  > Rajith
> > > > > > > >  >
> > > > > > > >  >
> > > > > > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com >
> wrote:
> > > > > > > >  > >
> > > > > > > >  > > Hi Dims,
> > > > > > > >  > >
> > > > > > > >  > > Sorry if this question sounds stupid, but there is
> > something that I don't
> > > > > > > >  > get.
> > > > > > > >  > > Can you explain any gaps that I have? :-)
> > > > > > > >  > >
> > > > > > > >  > > So we use WSM to get the jsr181 support.
> > > > > > > >  > > But, It looks like wsm is not complete in terms of the
> POJO
> > aspect as the
> > > > > > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > > > > > >  > >
> > > > > > > >  > > I guess part of the job is to complete the wsm stuff
> and
> > then use it
> > > > > > > >  > inside axis2. Or did I get this wrong?
> > > > > > > >  > >
> > > > > > > >  > >
> > > > > > > >  > > >> Forgot to mention, please use annogen (
> > http://annogen.codehaus.org/  )
> > > > > > > >  > to access the annotations which are needed to build the
> > WsmService
> > > > > > > >  > >
> > > > > > > >  > > So are we going to do the implementation of
> > ReflectionWsmServiceFactory
> > > > > > > >  > inside Axis2?
> > > > > > > >  > >
> > > > > > > >  > > I thought we are going to complete that inside wsm and
> then
> > implement
> > > > > > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service
> out
> > of a
> > > > > > > >  > WSMService thats produced via the
> > ReflectionWsmServiceFactory.
> > > > > > > >  > >
> > > > > > > >  > > Did I miss something?
> > > > > > > >  > >
> > > > > > > >  > > Thanks,
> > > > > > > >  > >
> > > > > > > >  > >
> > > > > > > >  > > Rajith
> > > > > > > >  > >
> > > > > > > >  > >
> > > > > > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com >
> wrote:
> > > > > > > >  > > > Let's keep this to axis-dev@ until we need some
> questions
> > answered
> > > > > > > >  > > > from beehive folks. Forgot to mention, please use
> annogen
> > > > > > > >  > > > ( http://annogen.codehaus.org/) to access the
> annotations
> > which are
> > > > > > > >  > > > needed to build the WsmService. We explicitly took a
> > dependency on
> > > > > > > >  > > > annogen in Axis2 for this purpose.
> > > > > > > >  > > >
> > > > > > > >  > > > thanks,
> > > > > > > >  > > > -- dims
> > > > > > > >  > > >
> > > > > > > >  > > > On 6/13/06, Rajith Attapattu < rajith77@gmail.com >
> > wrote:
> > > > > > > >  > > > > Hi Dims,
> > > > > > > >  > > > >
> > > > > > > >  > > > > Thanks for the pointers.
> > > > > > > >  > > > > Let me look at how to get the
> > ReflectionWsmServiceFactory impl going.
> > > > > > > >  > > > > after that I can start with WSMToAxisServiceBuilder
> to
> > build an
> > > > > > > >  > AxisService
> > > > > > > >  > > > > out of an anotated POJO.
> > > > > > > >  > > > > Once I have something I will create a JIRA and
> attach a
> > patch. U can
> > > > > > > >  > take a
> > > > > > > >  > > > > look at the code and then we can take it from
> there.
> > > > > > > >  > > > > If I have questions I will bug u again :-)
> > > > > > > >  > > > >
> > > > > > > >  > > > > Btw, the Beehive mailing list seems to be a bit
> quiet,
> > so I am
> > > > > > > >  > wondering how
> > > > > > > >  > > > > to get WSM specific questions answered :-)
> > > > > > > >  > > > >
> > > > > > > >  > > > > Regards,
> > > > > > > >  > > > >
> > > > > > > >  > > > > Rajith
> > > > > > > >  > > > >
> > > > > > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com>
> > wrote:
> > > > > > > >  > > > > >
> > > > > > > >  > > > > > Rajith,
> > > > > > > >  > > > > >
> > > > > > > >  > > > > > I think you need to implement
> > ReflectionWsmServiceFactory first. The
> > > > > > > >  > > > > > angle of attack i am looking at is deploying a
> POJO
> > with
> > > > > > > >  > annotations.
> > > > > > > >  > > > > > (See AxisService.createService in Axis2 where one
> can
> > deploy a
> > > > > > > >  > pojo).
> > > > > > > >  > > > > > You will have to write a WSMToAxisServiceBuilder
> (see
> > > > > > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the
> > AxisService info from
> > > > > > > >  > WSM.
> > > > > > > >  > > > > > WDYT? Once we have this, we can get fancy with
> > codegen etc.
> > > > > > > >  > > > > >
> > > > > > > >  > > > > > thanks,
> > > > > > > >  > > > > > dims
> > > > > > > >  > > > > >
> > > > > > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com >
> > wrote:
> > > > > > > >  > > > > > > Hi Dims & Eddie,
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > > > So code wise I should be looking at
> > MirrorWsmBuilder and
> > > > > > > >  > WsmService?
> > > > > > > >  > > > > > > Any pointers will be helpful.
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > > > I am going through the wiki and JSR
> documentation
> > and will get
> > > > > > > >  > back with
> > > > > > > >  > > > > > > questions.
> > > > > > > >  > > > > > > Meanwhile do we have that seperate jar that
> bundles
> > all the
> > > > > > > >  > relevent
> > > > > > > >  > > > > > classes
> > > > > > > >  > > > > > > for the annotations support?
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > > > Regards,
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > > > Rajith
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com >
> > wrote:
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > > Dims--
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > >   Hey; apologies for the delay.  That's
> basically
> > right -- there
> > > > > > > >  > is
> > > > > > > >  > > > > > > > actually one other step in the annotation
> > processing pipeline
> > > > > > > >  > which is
> > > > > > > >  > > > > > > > verifying the validity of any annotations on
> the
> > class.  So, it
> > > > > > > >  > would
> > > > > > > >  > > > > > > > be:
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > >   annotation checking
> (Jsr181AnnotationChecker)
> > --> model
> > > > > > > >  > building
> > > > > > > >  > > > > > > > (MirrorWsmBuilder)
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > > which returns a WsmService object that can be
> > wired up into
> > > > > > > >  > axis2
> > > > > > > >  > > > > > stuff.
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > >   I can certainly break the Axis 1.x stuff
> into a
> > separate JAR;
> > > > > > > >  > my
> > > > > > > >  > > > > > > > original plan was to just put the Axis 1.xand 2
> > bits in the
> > > > > > > >  > same JAR
> > > > > > > >  > > > > > > > file, but if this is a problem, let me know
> and I
> > can make three
> > > > > > > >  > JARs
> > > > > > > >  > > > > > > > -- generic web service processing code, axis
> 1,
> > axis 2, etc.
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > >   There is one important part of this that
> isn't
> > done yet, and
> > > > > > > >  > that's
> > > > > > > >  > > > > > > > to provide something that can be used inside
> of a
> > server runtime
> > > > > > > >  > that
> > > > > > > >  > > > > > > > abstracts from Sun's Mirror types which are
> used
> > inside of APT.
> > > > > > > >  > Not
> > > > > > > >  > > > > > > > exactly sure what this looks like yet --
> could be
> > reflection or
> > > > > > > >  > > > > > > > something else that abstracts from Sun's
> Mirror
> > APIs (used
> > > > > > > >  > inside of
> > > > > > > >  > > > > > > > APT).
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > >   Do you want to run this from inside of the
> > Axis2 runtime or at
> > > > > > > >  > > > > > > > build-time on the command line?  I'm assuming
> the
> > former.
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > > Eddie
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > > > On 2/1/06, Davanum Srinivas <
> davanum@gmail.com >
> > wrote:
> > > > > > > >  > > > > > > > > Eddie,
> > > > > > > >  > > > > > > > >
> > > > > > > >  > > > > > > > > i was looking at the current codebase and
> > spotted the
> > > > > > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use
> in
> > Axis2 to inspect
> > > > > > > >  > a
> > > > > > > >  > > > > > given
> > > > > > > >  > > > > > > > > java class? and one the WsmService object
> is
> > built, then
> > > > > > > >  > translate
> > > > > > > >  > > > > > > > > that to Axis2 thingies? Can we split out
> the
> > processing
> > > > > > > >  > framework
> > > > > > > >  > > > > > into
> > > > > > > >  > > > > > > > > a separate jar (w/o things like Axis1
> stuff)?
> > Am i on the
> > > > > > > >  > right
> > > > > > > >  > > > > > track
> > > > > > > >  > > > > > > > > with this thinking?
> > > > > > > >  > > > > > > > >
> > > > > > > >  > > > > > > > > thanks,
> > > > > > > >  > > > > > > > > dims
> > > > > > > >  > > > > > > > >
> > > > > > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com>
> > wrote:
> > > > > > > >  > > > > > > > > > All--
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   Happy New Year!  And, as a way to start
> the
> > year off on a
> > > > > > > >  > good
> > > > > > > >  > > > > > foot,
> > > > > > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a
> proposal
> > for how we get
> > > > > > > >  > from
> > > > > > > >  > > > > > here to
> > > > > > > >  > > > > > > > > > there with some details about where we
> are
> > and what needs to
> > > > > > > >  > > > > > happen.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   Today, there are two core WSM parts,
> both
> > of which are
> > > > > > > >  > tailored
> > > > > > > >  > > > > > to
> > > > > > > >  > > > > > > > > > the Axis web service stack:
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   build-time: This is a generic
> annotation
> > processing layer
> > > > > > > >  > that
> > > > > > > >  > > > > > has
> > > > > > > >  > > > > > > > > > the ability to work against Mirror,
> > reflection, and WSDL to
> > > > > > > >  > > > > > produce a
> > > > > > > >  > > > > > > > > > WSM JavaBean model that represents a web
> > service.  The
> > > > > > > >  > build-time
> > > > > > > >  > > > > > > > > > layer has a plug-point for generating
> source
> > artifacts to
> > > > > > > >  > support
> > > > > > > >  > > > > > > > > > various web service runtimes.  For
> example,
> > the Axis
> > > > > > > >  > > > > > implementation
> > > > > > > >  > > > > > > > > > produces a serialized version of the WSM
> > JavaBean model.
> > > > > > > >  > This
> > > > > > > >  > > > > > could
> > > > > > > >  > > > > > > > > > also produce JAX-RPC source / deployment
> > descriptor
> > > > > > > >  > artifacts,
> > > > > > > >  > > > > > etc.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   runtime: The runtime side of WSM is
> > specifically built to
> > > > > > > >  > > > > > support
> > > > > > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the
> > serialized JavaBean
> > > > > > > >  > model
> > > > > > > >  > > > > > > > > > generated at build time and uses an Axis
> > Handler to
> > > > > > > >  > configure a
> > > > > > > >  > > > > > > > > > SOAPService given this information.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   There is another large bunch of code in
> WSM
> > related to
> > > > > > > >  > tools:
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > > wsdl2ajava -- this tool supports the
> top-down
> > web service
> > > > > > > >  > > > > > development
> > > > > > > >  > > > > > > > > > model and starts with a WSDL to produce
> an
> > annotated Java
> > > > > > > >  > source
> > > > > > > >  > > > > > file.
> > > > > > > >  > > > > > > > > >  This tool requires significant knowledge
> of
> > WSDL and type
> > > > > > > >  > mapping
> > > > > > > >  > > > > > for
> > > > > > > >  > > > > > > > > > a specific web service stack.  For
> example,
> > the mapping for
> > > > > > > >  > an XSD
> > > > > > > >  > > > > > > > > > year is mapped to
> org.apache.axis.types.Year
> > and something
> > > > > > > >  > > > > > different
> > > > > > > >  > > > > > > > > > on other web service stacks.  wsdl2java
> is a
> > non-trivial
> > > > > > > >  > bunch of
> > > > > > > >  > > > > > code
> > > > > > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   In order to finish WSM, one more
> > re-architecting step
> > > > > > > >  > needs to
> > > > > > > >  > > > > > be
> > > > > > > >  > > > > > > > > > completed; I'd like to remove the use of
> a
> > serialized Java
> > > > > > > >  > object
> > > > > > > >  > > > > > as
> > > > > > > >  > > > > > > > > > the way to communicate from the
> build-time to
> > runtime parts
> > > > > > > >  > of the
> > > > > > > >  > > > > > > > > > implementation.  This would be replaced
> with
> > a WSDD like,
> > > > > > > >  > but WSM
> > > > > > > >  > > > > > > > > > specific, XML descriptor of the service.
> > AFAICT, WSDD can't
> > > > > > > >  > be
> > > > > > > >  > > > > > used
> > > > > > > >  > > > > > > > > > for this because too closely matches the
> > shape of a Java
> > > > > > > >  > class
> > > > > > > >  > > > > > (Dims
> > > > > > > >  > > > > > > > > > and others, feel free to correct me if
> I'm
> > wrong).  So, we
> > > > > > > >  > need a
> > > > > > > >  > > > > > > > > > simple XML file that describes the
> > information captured in a
> > > > > > > >  > > > > > > > > > WsmService.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   Once this is done, we can start work on
> > passing the
> > > > > > > >  > JSR-181 TCK.
> > > > > > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   In order to expedite the process of
> getting
> > from here to
> > > > > > > >  > TCK
> > > > > > > >  > > > > > > > > > compliance, I'd like to suggest that we
> stop
> > stop work on
> > > > > > > >  > the
> > > > > > > >  > > > > > > > > > wsdl2ajava tool in order to focus on
> > finishing 1.0 and
> > > > > > > >  > restart
> > > > > > > >  > > > > > this
> > > > > > > >  > > > > > > > > > tool immediately post-1.0.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   Post 1.0, there are lots of other
> things
> > that we could do
> > > > > > > >  > > > > > including:
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > > - JDK 1.4 support
> > > > > > > >  > > > > > > > > > - drop-in support for WSM in Axis to
> support
> > iteratively
> > > > > > > >  > > > > > developing an
> > > > > > > >  > > > > > > > > > annotated web service
> > > > > > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any
> > interest in working
> > > > > > > >  > on
> > > > > > > >  > > > > > this?)
> > > > > > > >  > > > > > > > > > - custom annotations to support
> > container-specific features
> > > > > > > >  > like
> > > > > > > >  > > > > > type
> > > > > > > >  > > > > > > > mapping
> > > > > > > >  > > > > > > > > > - and so on...
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   Personally, I'm chomping at the bit to
> get
> > WSM's 1.0 done
> > > > > > > >  > and
> > > > > > > >  > > > > > would
> > > > > > > >  > > > > > > > > > like to narrow scope in order to do
> that.  I
> > think we're
> > > > > > > >  > almost
> > > > > > > >  > > > > > ready
> > > > > > > >  > > > > > > > > > for the TCK; I'll start on the XML file
> to
> > describe an
> > > > > > > >  > annotated
> > > > > > > >  > > > > > Axis
> > > > > > > >  > > > > > > > > > web service shortly.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > > > Eddie
> > > > > > > >  > > > > > > > > >
> > > > > > > >  > > > > > > > >
> > > > > > > >  > > > > > > > >
> > > > > > > >  > > > > > > > > --
> > > > > > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > >  > > > > > > > >
> > > > > > > >  > > > > > > >
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > > >
> > > > > > > >  > > > > >
> > > > > > > >  > > > > >
> > > > > > > >  > > > > > --
> > > > > > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > >  > > > > >
> > > > > > > >  > > > >
> > > > > > > >  > > > >
> > > > > > > >  > > >
> > > > > > > >  > > >
> > > > > > > >  > > > --
> > > > > > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > >  > > >
> > > > > > > >  > > >
> > > > > > > >  >
> > ---------------------------------------------------------------------
> > > > > > > >  > > > To unsubscribe, e-mail:
> > > > > > > >  > axis-dev-unsubscribe@ws.apache.org
> > > > > > > >  > > > For additional commands, e-mail:
> > axis-dev-help@ws.apache.org
> > > > > > > >  > > >
> > > > > > > >  > > >
> > > > > > > >  > >
> > > > > > > >  > >
> > > > > > > >  >
> > > > > > > >  >
> > > > > > > >
> > > > > > > >
> > > > > > > >  --
> > > > > > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > >
> > > > > > > >
> > ---------------------------------------------------------------------
> > > > > > > >  To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > > > > > >  For additional commands, e-mail:
> axis-dev-help@ws.apache.org
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >
> > > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Rajith,

i think you can continue working on Axis2 side of things...assuming
WsmService is populated (and u can write some throwway code to
populate it using annogen)

-- dims

On 6/21/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Dims & Eddie,
>
>
> > It'll be some work to get done, though, and annogen is likely to be more
> expedient in the short term.  Let's decide once I know whether
> > the above works.
> So the plan is to wait till till Eddie figures out whether his proposed
> approach is going to work?
>
> Regards,
> Rajith
>
>
> On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> >   Ah -- interesting.  :)  If what I'll try works (using our
> > Mirror-like APIs), we shouldn't have any dependence on com.sun stuff
> > -- you'll be able to plug an implementation in that provides the same
> > information via reflection or whatever.
> >
> >   It'll be some work to get done, though, and annogen is likely to be
> > more expedient in the short term.  Let's decide once I know whether
> > the above works.
> >
> >   FWIW, in the long run, those com.sun APIs will be available in the
> > JDK once JSR-269 is finalized.
> >
> > Eddie
> >
> >
> > On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > Whichever you think is right is ok with me. Let me clarify what i as
> > > thinking...I was trying to make sure that we avoid com.sun stuff (so
> > > that we can work in FOSS jvm's) and also work with JDK1.4 by using say
> > > Retrotranslator (
> http://retrotranslator.sourceforge.net/).
> > >
> > > thanks,
> > > dims
> > >
> > > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > >   That's certainly an option, though it means that we'd need to rework
> > > > the annotation checker which is what captures the interpretation of
> > > > the 181 spec to move it away from using Mirror.
> > > >
> > > >   The value in Mirror / apt is that it's supported in Eclipse tooling
> > > > -- you can get syntax and semantic checking on @WebService
> > > > annotations, for example.  Personally, I think that's valuable.  A
> > > > purely annogen based approach won't be embeddable inside of Eclipse.
> > > >
> > > >   I still think we can use annogen as a way to drive a Mirror-like API
> > > > that can be used at both runtime / build time.  But, like I said, I'm
> > > > open.  Do you want to just move to annogen, or can we consider this as
> > > > an alternative?
> > > >
> > > > Eddie
> > > >
> > > >
> > > >
> > > >
> > > > On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > Eddie,
> > > > >
> > > > > As i was telling Rajith, we'd like to try annogen based runtime
> > > > > annotation processing to start with.
> > > > >
> > > > > -- dims
> > > > >
> > > > > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > >
> > > > > > Nicholas --
> > > > > >
> > > > > >   Basically, yes.  :)  WSM will handle the complexity around the
> specification's details regarding the @WebService annotation, SEIs, and WSDL
> binding.  There's code living here:
> > > > > >
> > > > > >
> http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > > > > >
> > > > > > that implements most of this (there are a few holes...).  The
> annotation processor walks an @WebService annotated class / interface and
> produces a model that describes the service (WsmService).  This POJO can
> then be used for code generation, to update deployment descriptors, or for
> auto-wiring of a web service in the VM at runtime.  The latter is how this
> works for Axis1.
> > > > > >
> > > > > >   Currently, WSM is implemented to use Java 5's Mirror
> infrastructure in order to execute annotation processing at build time.  We
> have a layer that basically duplicates the Mirror APIs and wraps them so
> that it's possible to support XDoclet / annogen / asm, so it should be
> possible to support either   1.5 or 1.4 and annotation processing at
> buildtime or at runtime.  Certainly open to other suggestions if you have
> them -- if we moved away from Mirror altogether, there would be some work to
> do to rewrite some things, but it wouldn't be rocket science.  :)
> > > > > >
> > > > > >
> > > > > > Eddie
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 6/19/06, Nicholas L Gallardo < nlgallar@us.ibm.com> wrote:
> > > > > > >
> > > > > > >
> > > > > > > Rajith,
> > > > > > >
> > > > > > > From a JAX-WS perspective, the @WebService annotation does
> introduce some challenges when it comes to determining what the interface of
> a Web service will be.  From my interpretation, which is just that, it
> doesn't dictate as much how the annotation should be handled at runtime as
> much as it does instruct how the annotation affects the Java to WSDL
> mapping.  I think the assumption after that is, the system will then do
> whatever it needs to configure itself to fulfill the contract defined by
> that WSDL.  If I understand correctly what Dim's has proposed, this is the
> piece that your WSMToAxisServiceBuilder will fulfill.  The rest is making
> sure that the information gets relayed to Axis2 correctly.
> > > > > > >
> > > > > > > With respect to just the @WebService annotation, and not the
> annotations processing as a whole, it seems like you might encounter a few
> scenarios that could be tricky.  I don't know enough about the specifics of
> WSM though, so it may resolve some of the headaches for you.
> > > > > > >
> > > > > > > - When a class is annotated with @WebService, any of the public
> methods available on that class are to be exposed as an operation in a Web
> service.  If that particular annotation instance has the WSDL document
> location specified, then we need to do some bit of processing/validation to
> make sure the public methods support what's defined in the WSDL.  Or....
> does WSM just do that for you?
> > > > > > >
> > > > > > > - Because of the "serviceEnpdointInterface" property on the
> @WebService annotation, the above case becomes a little more complex.
> JAX-WS has a notion of squashing that SEI, along with the public methods on
> any other interface that the SEI may extend into one giant interface, which
> should then be reflected in the WSDL.  Again, I don't know enough about WSM,
> but this might be something it handles for you.  If not, it seems like you
> will be required to walk the annotations and collect the metadata from every
> interface that's extended?
> > > > > > >
> > > > > > > I'm glad to see you'll be working on this.  As mentioned before,
> I think there is some commonality that can be leveraged when it comes to
> JAX-WS as well.  A few questions though about the annotations support for
> Axis2 endpoints (I know you're just getting started with this so I
> understand if some of this is longer term) :
> > > > > > >
> > > > > > > - When annotations are added to a class, are you still requiring
> the presence of a services.xml?  If so, what's the minimum set of
> information required in that document?   I.e., could I get away with
> annotating a class and just specifying that ServiceClass property in XML
> file?  I can see still needing the deployment descriptor for specifying
> module refs, but would it be able to have just that and not the operation
> descriptions.  Just a thought.
> > > > > > >
> > > > > > > - If annotations are supported for Axis2/ADB endpoints, how
> would we distinguish those from JAX-WS endpoints?
> > > > > > >
> > > > > > > Hope this helps...
> > > > > > >
> > > > > > > Regards,
> > > > > > >
> > > > > > > Nicholas Gallardo
> > > > > > >  WebSphere  -  WebServices Development
> > > > > > >   nlgallar@us.ibm.com
> > > > > > >  Phone: 512-838-1182
> > > > > > >  Building: 901 / 5G-016
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > "Rajith Attapattu" <ra...@gmail.com>
> > > > > > >
> > > > > > >
> > > > > > > 06/19/2006 09:35 PM
> > > > > > >
> > > > > > > Please respond to
> > > > > > >  axis-dev@ws.apache.org
> > > > > > >
> > > > > > >
> > > > > > > To axis-dev@ws.apache.org,  dims@apache.org
> > > > > > >
> > > > > > > cc
> > > > > > >
> > > > > > >
> > > > > > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a
> plan)
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Dims,
> > > > > > >
> > > > > > >  Sounds good.
> > > > > > >
> > > > > > >  So it looks like the @WebService tag is not really useful as we
> explicitly name the class in the services.xml
> > > > > > >  So from Axis2 side we are covered
> > > > > > >
> > > > > > >  However I am wondering if there is some requirment from the
> JAX-WS side as to how we should leverage this @WebService annotation.
> > > > > > >  wondering if the spec mandates some sort of stratergy for this.
> (I read the spec and couldn't find anything)
> > > > > > >
> > > > > > >  For now lets go ahead with what we planned (with a message
> receiver) and worry about @WebService thing when we figure out the exact
> requirment.
> > > > > > >
> > > > > > >  Regards,
> > > > > > >
> > > > > > >  Rajith.
> > > > > > >
> > > > > > > On 6/19/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > > > > Rajith,
> > > > > > >
> > > > > > >  In the short term, We have RPCMessageReceiver,
> > > > > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > > > > >  WSMRPCMessageReceiver as well. So we will have to look at the
> class
> > > > > > >  name specified in the services.xml just like we do for other
> > > > > > >  receivers.
> > > > > > >
> > > > > > >  -- dims
> > > > > > >
> > > > > > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > > > >  > Hi Dims
> > > > > > >  >
> > > > > > >  > One more question if you don't mind :-)
> > > > > > >  >
> > > > > > >  > What is the plan to figure out a class marked with
> @WebService?
> > > > > > >  >
> > > > > > >  > a) are we going to look through a particular location to
> introspect any
> > > > > > >  > class files droped there ?
> > > > > > >  > b) is the user responsible for adding the service via some
> API method ? for
> > > > > > >  > ex: AxisService.createService(String className) ?
> > > > > > >  >
> > > > > > >  > The rest we can introspect once we get the class identified.
> But I am
> > > > > > >  > wondering how is the initial step of figuring out the marked
> (annotated
> > > > > > >  > class) class with the @WebService tag.
> > > > > > >  >
> > > > > > >  > Sorry for the long list of questions.
> > > > > > >  >
> > > > > > >  > Regards,
> > > > > > >  >
> > > > > > >  > Rajith
> > > > > > >  >
> > > > > > >  >
> > > > > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > > > > >  > >
> > > > > > >  > > Hi Dims,
> > > > > > >  > >
> > > > > > >  > > Sorry if this question sounds stupid, but there is
> something that I don't
> > > > > > >  > get.
> > > > > > >  > > Can you explain any gaps that I have? :-)
> > > > > > >  > >
> > > > > > >  > > So we use WSM to get the jsr181 support.
> > > > > > >  > > But, It looks like wsm is not complete in terms of the POJO
> aspect as the
> > > > > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > > > > >  > >
> > > > > > >  > > I guess part of the job is to complete the wsm stuff and
> then use it
> > > > > > >  > inside axis2. Or did I get this wrong?
> > > > > > >  > >
> > > > > > >  > >
> > > > > > >  > > >> Forgot to mention, please use annogen (
> http://annogen.codehaus.org/  )
> > > > > > >  > to access the annotations which are needed to build the
> WsmService
> > > > > > >  > >
> > > > > > >  > > So are we going to do the implementation of
> ReflectionWsmServiceFactory
> > > > > > >  > inside Axis2?
> > > > > > >  > >
> > > > > > >  > > I thought we are going to complete that inside wsm and then
> implement
> > > > > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out
> of a
> > > > > > >  > WSMService thats produced via the
> ReflectionWsmServiceFactory.
> > > > > > >  > >
> > > > > > >  > > Did I miss something?
> > > > > > >  > >
> > > > > > >  > > Thanks,
> > > > > > >  > >
> > > > > > >  > >
> > > > > > >  > > Rajith
> > > > > > >  > >
> > > > > > >  > >
> > > > > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > > > >  > > > Let's keep this to axis-dev@ until we need some questions
> answered
> > > > > > >  > > > from beehive folks. Forgot to mention, please use annogen
> > > > > > >  > > > ( http://annogen.codehaus.org/) to access the annotations
> which are
> > > > > > >  > > > needed to build the WsmService. We explicitly took a
> dependency on
> > > > > > >  > > > annogen in Axis2 for this purpose.
> > > > > > >  > > >
> > > > > > >  > > > thanks,
> > > > > > >  > > > -- dims
> > > > > > >  > > >
> > > > > > >  > > > On 6/13/06, Rajith Attapattu < rajith77@gmail.com >
> wrote:
> > > > > > >  > > > > Hi Dims,
> > > > > > >  > > > >
> > > > > > >  > > > > Thanks for the pointers.
> > > > > > >  > > > > Let me look at how to get the
> ReflectionWsmServiceFactory impl going.
> > > > > > >  > > > > after that I can start with WSMToAxisServiceBuilder to
> build an
> > > > > > >  > AxisService
> > > > > > >  > > > > out of an anotated POJO.
> > > > > > >  > > > > Once I have something I will create a JIRA and attach a
> patch. U can
> > > > > > >  > take a
> > > > > > >  > > > > look at the code and then we can take it from there.
> > > > > > >  > > > > If I have questions I will bug u again :-)
> > > > > > >  > > > >
> > > > > > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet,
> so I am
> > > > > > >  > wondering how
> > > > > > >  > > > > to get WSM specific questions answered :-)
> > > > > > >  > > > >
> > > > > > >  > > > > Regards,
> > > > > > >  > > > >
> > > > > > >  > > > > Rajith
> > > > > > >  > > > >
> > > > > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com>
> wrote:
> > > > > > >  > > > > >
> > > > > > >  > > > > > Rajith,
> > > > > > >  > > > > >
> > > > > > >  > > > > > I think you need to implement
> ReflectionWsmServiceFactory first. The
> > > > > > >  > > > > > angle of attack i am looking at is deploying a POJO
> with
> > > > > > >  > annotations.
> > > > > > >  > > > > > (See AxisService.createService in Axis2 where one can
> deploy a
> > > > > > >  > pojo).
> > > > > > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the
> AxisService info from
> > > > > > >  > WSM.
> > > > > > >  > > > > > WDYT? Once we have this, we can get fancy with
> codegen etc.
> > > > > > >  > > > > >
> > > > > > >  > > > > > thanks,
> > > > > > >  > > > > > dims
> > > > > > >  > > > > >
> > > > > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com >
> wrote:
> > > > > > >  > > > > > > Hi Dims & Eddie,
> > > > > > >  > > > > > >
> > > > > > >  > > > > > > So code wise I should be looking at
> MirrorWsmBuilder and
> > > > > > >  > WsmService?
> > > > > > >  > > > > > > Any pointers will be helpful.
> > > > > > >  > > > > > >
> > > > > > >  > > > > > > I am going through the wiki and JSR documentation
> and will get
> > > > > > >  > back with
> > > > > > >  > > > > > > questions.
> > > > > > >  > > > > > > Meanwhile do we have that seperate jar that bundles
> all the
> > > > > > >  > relevent
> > > > > > >  > > > > > classes
> > > > > > >  > > > > > > for the annotations support?
> > > > > > >  > > > > > >
> > > > > > >  > > > > > > Regards,
> > > > > > >  > > > > > >
> > > > > > >  > > > > > > Rajith
> > > > > > >  > > > > > >
> > > > > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com >
> wrote:
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > > Dims--
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > >   Hey; apologies for the delay.  That's basically
> right -- there
> > > > > > >  > is
> > > > > > >  > > > > > > > actually one other step in the annotation
> processing pipeline
> > > > > > >  > which is
> > > > > > >  > > > > > > > verifying the validity of any annotations on the
> class.  So, it
> > > > > > >  > would
> > > > > > >  > > > > > > > be:
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker)
> --> model
> > > > > > >  > building
> > > > > > >  > > > > > > > (MirrorWsmBuilder)
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > > which returns a WsmService object that can be
> wired up into
> > > > > > >  > axis2
> > > > > > >  > > > > > stuff.
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a
> separate JAR;
> > > > > > >  > my
> > > > > > >  > > > > > > > original plan was to just put the Axis 1.x and 2
> bits in the
> > > > > > >  > same JAR
> > > > > > >  > > > > > > > file, but if this is a problem, let me know and I
> can make three
> > > > > > >  > JARs
> > > > > > >  > > > > > > > -- generic web service processing code, axis 1,
> axis 2, etc.
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > >   There is one important part of this that isn't
> done yet, and
> > > > > > >  > that's
> > > > > > >  > > > > > > > to provide something that can be used inside of a
> server runtime
> > > > > > >  > that
> > > > > > >  > > > > > > > abstracts from Sun's Mirror types which are used
> inside of APT.
> > > > > > >  > Not
> > > > > > >  > > > > > > > exactly sure what this looks like yet -- could be
> reflection or
> > > > > > >  > > > > > > > something else that abstracts from Sun's Mirror
> APIs (used
> > > > > > >  > inside of
> > > > > > >  > > > > > > > APT).
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > >   Do you want to run this from inside of the
> Axis2 runtime or at
> > > > > > >  > > > > > > > build-time on the command line?  I'm assuming the
> former.
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > > Eddie
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com >
> wrote:
> > > > > > >  > > > > > > > > Eddie,
> > > > > > >  > > > > > > > >
> > > > > > >  > > > > > > > > i was looking at the current codebase and
> spotted the
> > > > > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in
> Axis2 to inspect
> > > > > > >  > a
> > > > > > >  > > > > > given
> > > > > > >  > > > > > > > > java class? and one the WsmService object is
> built, then
> > > > > > >  > translate
> > > > > > >  > > > > > > > > that to Axis2 thingies? Can we split out the
> processing
> > > > > > >  > framework
> > > > > > >  > > > > > into
> > > > > > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)?
> Am i on the
> > > > > > >  > right
> > > > > > >  > > > > > track
> > > > > > >  > > > > > > > > with this thinking?
> > > > > > >  > > > > > > > >
> > > > > > >  > > > > > > > > thanks,
> > > > > > >  > > > > > > > > dims
> > > > > > >  > > > > > > > >
> > > > > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com >
> wrote:
> > > > > > >  > > > > > > > > > All--
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   Happy New Year!  And, as a way to start the
> year off on a
> > > > > > >  > good
> > > > > > >  > > > > > foot,
> > > > > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal
> for how we get
> > > > > > >  > from
> > > > > > >  > > > > > here to
> > > > > > >  > > > > > > > > > there with some details about where we are
> and what needs to
> > > > > > >  > > > > > happen.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   Today, there are two core WSM parts, both
> of which are
> > > > > > >  > tailored
> > > > > > >  > > > > > to
> > > > > > >  > > > > > > > > > the Axis web service stack:
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   build-time: This is a generic annotation
> processing layer
> > > > > > >  > that
> > > > > > >  > > > > > has
> > > > > > >  > > > > > > > > > the ability to work against Mirror,
> reflection, and WSDL to
> > > > > > >  > > > > > produce a
> > > > > > >  > > > > > > > > > WSM JavaBean model that represents a web
> service.  The
> > > > > > >  > build-time
> > > > > > >  > > > > > > > > > layer has a plug-point for generating source
> artifacts to
> > > > > > >  > support
> > > > > > >  > > > > > > > > > various web service runtimes.  For example,
> the Axis
> > > > > > >  > > > > > implementation
> > > > > > >  > > > > > > > > > produces a serialized version of the WSM
> JavaBean model.
> > > > > > >  > This
> > > > > > >  > > > > > could
> > > > > > >  > > > > > > > > > also produce JAX-RPC source / deployment
> descriptor
> > > > > > >  > artifacts,
> > > > > > >  > > > > > etc.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   runtime: The runtime side of WSM is
> specifically built to
> > > > > > >  > > > > > support
> > > > > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the
> serialized JavaBean
> > > > > > >  > model
> > > > > > >  > > > > > > > > > generated at build time and uses an Axis
> Handler to
> > > > > > >  > configure a
> > > > > > >  > > > > > > > > > SOAPService given this information.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   There is another large bunch of code in WSM
> related to
> > > > > > >  > tools:
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down
> web service
> > > > > > >  > > > > > development
> > > > > > >  > > > > > > > > > model and starts with a WSDL to produce an
> annotated Java
> > > > > > >  > source
> > > > > > >  > > > > > file.
> > > > > > >  > > > > > > > > >  This tool requires significant knowledge of
> WSDL and type
> > > > > > >  > mapping
> > > > > > >  > > > > > for
> > > > > > >  > > > > > > > > > a specific web service stack.  For example,
> the mapping for
> > > > > > >  > an XSD
> > > > > > >  > > > > > > > > > year is mapped to org.apache.axis.types.Year
> and something
> > > > > > >  > > > > > different
> > > > > > >  > > > > > > > > > on other web service stacks.  wsdl2java is a
> non-trivial
> > > > > > >  > bunch of
> > > > > > >  > > > > > code
> > > > > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   In order to finish WSM, one more
> re-architecting step
> > > > > > >  > needs to
> > > > > > >  > > > > > be
> > > > > > >  > > > > > > > > > completed; I'd like to remove the use of a
> serialized Java
> > > > > > >  > object
> > > > > > >  > > > > > as
> > > > > > >  > > > > > > > > > the way to communicate from the build-time to
> runtime parts
> > > > > > >  > of the
> > > > > > >  > > > > > > > > > implementation.  This would be replaced with
> a WSDD like,
> > > > > > >  > but WSM
> > > > > > >  > > > > > > > > > specific, XML descriptor of the service.
> AFAICT, WSDD can't
> > > > > > >  > be
> > > > > > >  > > > > > used
> > > > > > >  > > > > > > > > > for this because too closely matches the
> shape of a Java
> > > > > > >  > class
> > > > > > >  > > > > > (Dims
> > > > > > >  > > > > > > > > > and others, feel free to correct me if I'm
> wrong).  So, we
> > > > > > >  > need a
> > > > > > >  > > > > > > > > > simple XML file that describes the
> information captured in a
> > > > > > >  > > > > > > > > > WsmService.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   Once this is done, we can start work on
> passing the
> > > > > > >  > JSR-181 TCK.
> > > > > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   In order to expedite the process of getting
> from here to
> > > > > > >  > TCK
> > > > > > >  > > > > > > > > > compliance, I'd like to suggest that we stop
> stop work on
> > > > > > >  > the
> > > > > > >  > > > > > > > > > wsdl2ajava tool in order to focus on
> finishing 1.0 and
> > > > > > >  > restart
> > > > > > >  > > > > > this
> > > > > > >  > > > > > > > > > tool immediately post-1.0.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   Post 1.0, there are lots of other things
> that we could do
> > > > > > >  > > > > > including:
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > > - JDK 1.4 support
> > > > > > >  > > > > > > > > > - drop-in support for WSM in Axis to support
> iteratively
> > > > > > >  > > > > > developing an
> > > > > > >  > > > > > > > > > annotated web service
> > > > > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any
> interest in working
> > > > > > >  > on
> > > > > > >  > > > > > this?)
> > > > > > >  > > > > > > > > > - custom annotations to support
> container-specific features
> > > > > > >  > like
> > > > > > >  > > > > > type
> > > > > > >  > > > > > > > mapping
> > > > > > >  > > > > > > > > > - and so on...
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   Personally, I'm chomping at the bit to get
> WSM's 1.0 done
> > > > > > >  > and
> > > > > > >  > > > > > would
> > > > > > >  > > > > > > > > > like to narrow scope in order to do that.  I
> think we're
> > > > > > >  > almost
> > > > > > >  > > > > > ready
> > > > > > >  > > > > > > > > > for the TCK; I'll start on the XML file to
> describe an
> > > > > > >  > annotated
> > > > > > >  > > > > > Axis
> > > > > > >  > > > > > > > > > web service shortly.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > > > Eddie
> > > > > > >  > > > > > > > > >
> > > > > > >  > > > > > > > >
> > > > > > >  > > > > > > > >
> > > > > > >  > > > > > > > > --
> > > > > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > >  > > > > > > > >
> > > > > > >  > > > > > > >
> > > > > > >  > > > > > >
> > > > > > >  > > > > > >
> > > > > > >  > > > > >
> > > > > > >  > > > > >
> > > > > > >  > > > > > --
> > > > > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > >  > > > > >
> > > > > > >  > > > >
> > > > > > >  > > > >
> > > > > > >  > > >
> > > > > > >  > > >
> > > > > > >  > > > --
> > > > > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > >  > > >
> > > > > > >  > > >
> > > > > > >  >
> ---------------------------------------------------------------------
> > > > > > >  > > > To unsubscribe, e-mail:
> > > > > > >  > axis-dev-unsubscribe@ws.apache.org
> > > > > > >  > > > For additional commands, e-mail:
> axis-dev-help@ws.apache.org
> > > > > > >  > > >
> > > > > > >  > > >
> > > > > > >  > >
> > > > > > >  > >
> > > > > > >  >
> > > > > > >  >
> > > > > > >
> > > > > > >
> > > > > > >  --
> > > > > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > > > > >
> > > > > > >
> ---------------------------------------------------------------------
> > > > > > >  To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > > > > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > >
> > > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>
>


-- 
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Dims & Eddie,

> It'll be some work to get done, though, and annogen is likely to be more
expedient in the short term.  Let's decide once I know whether
> the above works.
So the plan is to wait till till Eddie figures out whether his proposed
approach is going to work?

Regards,
Rajith

On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
>
>   Ah -- interesting.  :)  If what I'll try works (using our
> Mirror-like APIs), we shouldn't have any dependence on com.sun stuff
> -- you'll be able to plug an implementation in that provides the same
> information via reflection or whatever.
>
>   It'll be some work to get done, though, and annogen is likely to be
> more expedient in the short term.  Let's decide once I know whether
> the above works.
>
>   FWIW, in the long run, those com.sun APIs will be available in the
> JDK once JSR-269 is finalized.
>
> Eddie
>
>
> On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > Whichever you think is right is ok with me. Let me clarify what i as
> > thinking...I was trying to make sure that we avoid com.sun stuff (so
> > that we can work in FOSS jvm's) and also work with JDK1.4 by using say
> > Retrotranslator (http://retrotranslator.sourceforge.net/).
> >
> > thanks,
> > dims
> >
> > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > >   That's certainly an option, though it means that we'd need to rework
> > > the annotation checker which is what captures the interpretation of
> > > the 181 spec to move it away from using Mirror.
> > >
> > >   The value in Mirror / apt is that it's supported in Eclipse tooling
> > > -- you can get syntax and semantic checking on @WebService
> > > annotations, for example.  Personally, I think that's valuable.  A
> > > purely annogen based approach won't be embeddable inside of Eclipse.
> > >
> > >   I still think we can use annogen as a way to drive a Mirror-like API
> > > that can be used at both runtime / build time.  But, like I said, I'm
> > > open.  Do you want to just move to annogen, or can we consider this as
> > > an alternative?
> > >
> > > Eddie
> > >
> > >
> > >
> > >
> > > On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > Eddie,
> > > >
> > > > As i was telling Rajith, we'd like to try annogen based runtime
> > > > annotation processing to start with.
> > > >
> > > > -- dims
> > > >
> > > > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > >
> > > > > Nicholas --
> > > > >
> > > > >   Basically, yes.  :)  WSM will handle the complexity around the
> specification's details regarding the @WebService annotation, SEIs, and WSDL
> binding.  There's code living here:
> > > > >
> > > > >
> http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > > > >
> > > > > that implements most of this (there are a few holes...).  The
> annotation processor walks an @WebService annotated class / interface and
> produces a model that describes the service (WsmService).  This POJO can
> then be used for code generation, to update deployment descriptors, or for
> auto-wiring of a web service in the VM at runtime.  The latter is how this
> works for Axis1.
> > > > >
> > > > >   Currently, WSM is implemented to use Java 5's Mirror
> infrastructure in order to execute annotation processing at build time.  We
> have a layer that basically duplicates the Mirror APIs and wraps them so
> that it's possible to support XDoclet / annogen / asm, so it should be
> possible to support either  1.5 or 1.4 and annotation processing at
> buildtime or at runtime.  Certainly open to other suggestions if you have
> them -- if we moved away from Mirror altogether, there would be some work to
> do to rewrite some things, but it wouldn't be rocket science.  :)
> > > > >
> > > > >
> > > > > Eddie
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > > > > >
> > > > > >
> > > > > > Rajith,
> > > > > >
> > > > > > From a JAX-WS perspective, the @WebService annotation does
> introduce some challenges when it comes to determining what the interface of
> a Web service will be.  From my interpretation, which is just that, it
> doesn't dictate as much how the annotation should be handled at runtime as
> much as it does instruct how the annotation affects the Java to WSDL
> mapping.  I think the assumption after that is, the system will then do
> whatever it needs to configure itself to fulfill the contract defined by
> that WSDL.  If I understand correctly what Dim's has proposed, this is the
> piece that your WSMToAxisServiceBuilder will fulfill.  The rest is making
> sure that the information gets relayed to Axis2 correctly.
> > > > > >
> > > > > > With respect to just the @WebService annotation, and not the
> annotations processing as a whole, it seems like you might encounter a few
> scenarios that could be tricky.  I don't know enough about the specifics of
> WSM though, so it may resolve some of the headaches for you.
> > > > > >
> > > > > > - When a class is annotated with @WebService, any of the public
> methods available on that class are to be exposed as an operation in a Web
> service.  If that particular annotation instance has the WSDL document
> location specified, then we need to do some bit of processing/validation to
> make sure the public methods support what's defined in the WSDL.  Or....
> does WSM just do that for you?
> > > > > >
> > > > > > - Because of the "serviceEnpdointInterface" property on the
> @WebService annotation, the above case becomes a little more
> complex.  JAX-WS has a notion of squashing that SEI, along with the public
> methods on any other interface that the SEI may extend into one giant
> interface, which should then be reflected in the WSDL.  Again, I don't know
> enough about WSM, but this might be something it handles for you.  If not,
> it seems like you will be required to walk the annotations and collect the
> metadata from every interface that's extended?
> > > > > >
> > > > > > I'm glad to see you'll be working on this.  As mentioned before,
> I think there is some commonality that can be leveraged when it comes to
> JAX-WS as well.  A few questions though about the annotations support for
> Axis2 endpoints (I know you're just getting started with this so I
> understand if some of this is longer term) :
> > > > > >
> > > > > > - When annotations are added to a class, are you still requiring
> the presence of a services.xml?  If so, what's the minimum set of
> information required in that document?  I.e., could I get away with
> annotating a class and just specifying that ServiceClass property in XML
> file?  I can see still needing the deployment descriptor for specifying
> module refs, but would it be able to have just that and not the operation
> descriptions.  Just a thought.
> > > > > >
> > > > > > - If annotations are supported for Axis2/ADB endpoints, how
> would we distinguish those from JAX-WS endpoints?
> > > > > >
> > > > > > Hope this helps...
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > Nicholas Gallardo
> > > > > >  WebSphere  -  WebServices Development
> > > > > >  nlgallar@us.ibm.com
> > > > > >  Phone: 512-838-1182
> > > > > >  Building: 901 / 5G-016
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Rajith Attapattu" <ra...@gmail.com>
> > > > > >
> > > > > >
> > > > > > 06/19/2006 09:35 PM
> > > > > >
> > > > > > Please respond to
> > > > > >  axis-dev@ws.apache.org
> > > > > >
> > > > > >
> > > > > > To axis-dev@ws.apache.org,  dims@apache.org
> > > > > >
> > > > > > cc
> > > > > >
> > > > > >
> > > > > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a
> plan)
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Dims,
> > > > > >
> > > > > >  Sounds good.
> > > > > >
> > > > > >  So it looks like the @WebService tag is not really useful as we
> explicitly name the class in the services.xml
> > > > > >  So from Axis2 side we are covered
> > > > > >
> > > > > >  However I am wondering if there is some requirment from the
> JAX-WS side as to how we should leverage this @WebService annotation.
> > > > > >  wondering if the spec mandates some sort of stratergy for this.
> (I read the spec and couldn't find anything)
> > > > > >
> > > > > >  For now lets go ahead with what we planned (with a message
> receiver) and worry about @WebService thing when we figure out the exact
> requirment.
> > > > > >
> > > > > >  Regards,
> > > > > >
> > > > > >  Rajith.
> > > > > >
> > > > > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > > > > Rajith,
> > > > > >
> > > > > >  In the short term, We have RPCMessageReceiver,
> > > > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > > > >  WSMRPCMessageReceiver as well. So we will have to look at the
> class
> > > > > >  name specified in the services.xml just like we do for other
> > > > > >  receivers.
> > > > > >
> > > > > >  -- dims
> > > > > >
> > > > > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > > >  > Hi Dims
> > > > > >  >
> > > > > >  > One more question if you don't mind :-)
> > > > > >  >
> > > > > >  > What is the plan to figure out a class marked with
> @WebService?
> > > > > >  >
> > > > > >  > a) are we going to look through a particular location to
> introspect any
> > > > > >  > class files droped there ?
> > > > > >  > b) is the user responsible for adding the service via some
> API method ? for
> > > > > >  > ex: AxisService.createService(String className) ?
> > > > > >  >
> > > > > >  > The rest we can introspect once we get the class identified.
> But I am
> > > > > >  > wondering how is the initial step of figuring out the marked
> (annotated
> > > > > >  > class) class with the @WebService tag.
> > > > > >  >
> > > > > >  > Sorry for the long list of questions.
> > > > > >  >
> > > > > >  > Regards,
> > > > > >  >
> > > > > >  > Rajith
> > > > > >  >
> > > > > >  >
> > > > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > > > >  > >
> > > > > >  > > Hi Dims,
> > > > > >  > >
> > > > > >  > > Sorry if this question sounds stupid, but there is
> something that I don't
> > > > > >  > get.
> > > > > >  > > Can you explain any gaps that I have? :-)
> > > > > >  > >
> > > > > >  > > So we use WSM to get the jsr181 support.
> > > > > >  > > But, It looks like wsm is not complete in terms of the POJO
> aspect as the
> > > > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > > > >  > >
> > > > > >  > > I guess part of the job is to complete the wsm stuff and
> then use it
> > > > > >  > inside axis2. Or did I get this wrong?
> > > > > >  > >
> > > > > >  > >
> > > > > >  > > >> Forgot to mention, please use annogen (
> http://annogen.codehaus.org/  )
> > > > > >  > to access the annotations which are needed to build the
> WsmService
> > > > > >  > >
> > > > > >  > > So are we going to do the implementation of
> ReflectionWsmServiceFactory
> > > > > >  > inside Axis2?
> > > > > >  > >
> > > > > >  > > I thought we are going to complete that inside wsm and then
> implement
> > > > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out
> of a
> > > > > >  > WSMService thats produced via the
> ReflectionWsmServiceFactory.
> > > > > >  > >
> > > > > >  > > Did I miss something?
> > > > > >  > >
> > > > > >  > > Thanks,
> > > > > >  > >
> > > > > >  > >
> > > > > >  > > Rajith
> > > > > >  > >
> > > > > >  > >
> > > > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > > >  > > > Let's keep this to axis-dev@ until we need some questions
> answered
> > > > > >  > > > from beehive folks. Forgot to mention, please use annogen
> > > > > >  > > > ( http://annogen.codehaus.org/) to access the annotations
> which are
> > > > > >  > > > needed to build the WsmService. We explicitly took a
> dependency on
> > > > > >  > > > annogen in Axis2 for this purpose.
> > > > > >  > > >
> > > > > >  > > > thanks,
> > > > > >  > > > -- dims
> > > > > >  > > >
> > > > > >  > > > On 6/13/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > > >  > > > > Hi Dims,
> > > > > >  > > > >
> > > > > >  > > > > Thanks for the pointers.
> > > > > >  > > > > Let me look at how to get the
> ReflectionWsmServiceFactory impl going.
> > > > > >  > > > > after that I can start with WSMToAxisServiceBuilder to
> build an
> > > > > >  > AxisService
> > > > > >  > > > > out of an anotated POJO.
> > > > > >  > > > > Once I have something I will create a JIRA and attach a
> patch. U can
> > > > > >  > take a
> > > > > >  > > > > look at the code and then we can take it from there.
> > > > > >  > > > > If I have questions I will bug u again :-)
> > > > > >  > > > >
> > > > > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet,
> so I am
> > > > > >  > wondering how
> > > > > >  > > > > to get WSM specific questions answered :-)
> > > > > >  > > > >
> > > > > >  > > > > Regards,
> > > > > >  > > > >
> > > > > >  > > > > Rajith
> > > > > >  > > > >
> > > > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com>
> wrote:
> > > > > >  > > > > >
> > > > > >  > > > > > Rajith,
> > > > > >  > > > > >
> > > > > >  > > > > > I think you need to implement
> ReflectionWsmServiceFactory first. The
> > > > > >  > > > > > angle of attack i am looking at is deploying a POJO
> with
> > > > > >  > annotations.
> > > > > >  > > > > > (See AxisService.createService in Axis2 where one can
> deploy a
> > > > > >  > pojo).
> > > > > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the
> AxisService info from
> > > > > >  > WSM.
> > > > > >  > > > > > WDYT? Once we have this, we can get fancy with
> codegen etc.
> > > > > >  > > > > >
> > > > > >  > > > > > thanks,
> > > > > >  > > > > > dims
> > > > > >  > > > > >
> > > > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com >
> wrote:
> > > > > >  > > > > > > Hi Dims & Eddie,
> > > > > >  > > > > > >
> > > > > >  > > > > > > So code wise I should be looking at
> MirrorWsmBuilder and
> > > > > >  > WsmService?
> > > > > >  > > > > > > Any pointers will be helpful.
> > > > > >  > > > > > >
> > > > > >  > > > > > > I am going through the wiki and JSR documentation
> and will get
> > > > > >  > back with
> > > > > >  > > > > > > questions.
> > > > > >  > > > > > > Meanwhile do we have that seperate jar that bundles
> all the
> > > > > >  > relevent
> > > > > >  > > > > > classes
> > > > > >  > > > > > > for the annotations support?
> > > > > >  > > > > > >
> > > > > >  > > > > > > Regards,
> > > > > >  > > > > > >
> > > > > >  > > > > > > Rajith
> > > > > >  > > > > > >
> > > > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com >
> wrote:
> > > > > >  > > > > > > >
> > > > > >  > > > > > > > Dims--
> > > > > >  > > > > > > >
> > > > > >  > > > > > > >   Hey; apologies for the delay.  That's basically
> right -- there
> > > > > >  > is
> > > > > >  > > > > > > > actually one other step in the annotation
> processing pipeline
> > > > > >  > which is
> > > > > >  > > > > > > > verifying the validity of any annotations on the
> class.  So, it
> > > > > >  > would
> > > > > >  > > > > > > > be:
> > > > > >  > > > > > > >
> > > > > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker)
> --> model
> > > > > >  > building
> > > > > >  > > > > > > > (MirrorWsmBuilder)
> > > > > >  > > > > > > >
> > > > > >  > > > > > > > which returns a WsmService object that can be
> wired up into
> > > > > >  > axis2
> > > > > >  > > > > > stuff.
> > > > > >  > > > > > > >
> > > > > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a
> separate JAR;
> > > > > >  > my
> > > > > >  > > > > > > > original plan was to just put the Axis 1.x and 2
> bits in the
> > > > > >  > same JAR
> > > > > >  > > > > > > > file, but if this is a problem, let me know and I
> can make three
> > > > > >  > JARs
> > > > > >  > > > > > > > -- generic web service processing code, axis 1,
> axis 2, etc.
> > > > > >  > > > > > > >
> > > > > >  > > > > > > >   There is one important part of this that isn't
> done yet, and
> > > > > >  > that's
> > > > > >  > > > > > > > to provide something that can be used inside of a
> server runtime
> > > > > >  > that
> > > > > >  > > > > > > > abstracts from Sun's Mirror types which are used
> inside of APT.
> > > > > >  > Not
> > > > > >  > > > > > > > exactly sure what this looks like yet -- could be
> reflection or
> > > > > >  > > > > > > > something else that abstracts from Sun's Mirror
> APIs (used
> > > > > >  > inside of
> > > > > >  > > > > > > > APT).
> > > > > >  > > > > > > >
> > > > > >  > > > > > > >   Do you want to run this from inside of the
> Axis2 runtime or at
> > > > > >  > > > > > > > build-time on the command line?  I'm assuming the
> former.
> > > > > >  > > > > > > >
> > > > > >  > > > > > > > Eddie
> > > > > >  > > > > > > >
> > > > > >  > > > > > > >
> > > > > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com >
> wrote:
> > > > > >  > > > > > > > > Eddie,
> > > > > >  > > > > > > > >
> > > > > >  > > > > > > > > i was looking at the current codebase and
> spotted the
> > > > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in
> Axis2 to inspect
> > > > > >  > a
> > > > > >  > > > > > given
> > > > > >  > > > > > > > > java class? and one the WsmService object is
> built, then
> > > > > >  > translate
> > > > > >  > > > > > > > > that to Axis2 thingies? Can we split out the
> processing
> > > > > >  > framework
> > > > > >  > > > > > into
> > > > > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)?
> Am i on the
> > > > > >  > right
> > > > > >  > > > > > track
> > > > > >  > > > > > > > > with this thinking?
> > > > > >  > > > > > > > >
> > > > > >  > > > > > > > > thanks,
> > > > > >  > > > > > > > > dims
> > > > > >  > > > > > > > >
> > > > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com >
> wrote:
> > > > > >  > > > > > > > > > All--
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   Happy New Year!  And, as a way to start the
> year off on a
> > > > > >  > good
> > > > > >  > > > > > foot,
> > > > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal
> for how we get
> > > > > >  > from
> > > > > >  > > > > > here to
> > > > > >  > > > > > > > > > there with some details about where we are
> and what needs to
> > > > > >  > > > > > happen.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   Today, there are two core WSM parts, both
> of which are
> > > > > >  > tailored
> > > > > >  > > > > > to
> > > > > >  > > > > > > > > > the Axis web service stack:
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   build-time: This is a generic annotation
> processing layer
> > > > > >  > that
> > > > > >  > > > > > has
> > > > > >  > > > > > > > > > the ability to work against Mirror,
> reflection, and WSDL to
> > > > > >  > > > > > produce a
> > > > > >  > > > > > > > > > WSM JavaBean model that represents a web
> service.  The
> > > > > >  > build-time
> > > > > >  > > > > > > > > > layer has a plug-point for generating source
> artifacts to
> > > > > >  > support
> > > > > >  > > > > > > > > > various web service runtimes.  For example,
> the Axis
> > > > > >  > > > > > implementation
> > > > > >  > > > > > > > > > produces a serialized version of the WSM
> JavaBean model.
> > > > > >  > This
> > > > > >  > > > > > could
> > > > > >  > > > > > > > > > also produce JAX-RPC source / deployment
> descriptor
> > > > > >  > artifacts,
> > > > > >  > > > > > etc.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   runtime: The runtime side of WSM is
> specifically built to
> > > > > >  > > > > > support
> > > > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the
> serialized JavaBean
> > > > > >  > model
> > > > > >  > > > > > > > > > generated at build time and uses an Axis
> Handler to
> > > > > >  > configure a
> > > > > >  > > > > > > > > > SOAPService given this information.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   There is another large bunch of code in WSM
> related to
> > > > > >  > tools:
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down
> web service
> > > > > >  > > > > > development
> > > > > >  > > > > > > > > > model and starts with a WSDL to produce an
> annotated Java
> > > > > >  > source
> > > > > >  > > > > > file.
> > > > > >  > > > > > > > > >  This tool requires significant knowledge of
> WSDL and type
> > > > > >  > mapping
> > > > > >  > > > > > for
> > > > > >  > > > > > > > > > a specific web service stack.  For example,
> the mapping for
> > > > > >  > an XSD
> > > > > >  > > > > > > > > > year is mapped to org.apache.axis.types.Yearand something
> > > > > >  > > > > > different
> > > > > >  > > > > > > > > > on other web service stacks.  wsdl2java is a
> non-trivial
> > > > > >  > bunch of
> > > > > >  > > > > > code
> > > > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   In order to finish WSM, one more
> re-architecting step
> > > > > >  > needs to
> > > > > >  > > > > > be
> > > > > >  > > > > > > > > > completed; I'd like to remove the use of a
> serialized Java
> > > > > >  > object
> > > > > >  > > > > > as
> > > > > >  > > > > > > > > > the way to communicate from the build-time to
> runtime parts
> > > > > >  > of the
> > > > > >  > > > > > > > > > implementation.  This would be replaced with
> a WSDD like,
> > > > > >  > but WSM
> > > > > >  > > > > > > > > > specific, XML descriptor of the
> service.  AFAICT, WSDD can't
> > > > > >  > be
> > > > > >  > > > > > used
> > > > > >  > > > > > > > > > for this because too closely matches the
> shape of a Java
> > > > > >  > class
> > > > > >  > > > > > (Dims
> > > > > >  > > > > > > > > > and others, feel free to correct me if I'm
> wrong).  So, we
> > > > > >  > need a
> > > > > >  > > > > > > > > > simple XML file that describes the
> information captured in a
> > > > > >  > > > > > > > > > WsmService.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   Once this is done, we can start work on
> passing the
> > > > > >  > JSR-181 TCK.
> > > > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   In order to expedite the process of getting
> from here to
> > > > > >  > TCK
> > > > > >  > > > > > > > > > compliance, I'd like to suggest that we stop
> stop work on
> > > > > >  > the
> > > > > >  > > > > > > > > > wsdl2ajava tool in order to focus on
> finishing 1.0 and
> > > > > >  > restart
> > > > > >  > > > > > this
> > > > > >  > > > > > > > > > tool immediately post-1.0.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   Post 1.0, there are lots of other things
> that we could do
> > > > > >  > > > > > including:
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > > - JDK 1.4 support
> > > > > >  > > > > > > > > > - drop-in support for WSM in Axis to support
> iteratively
> > > > > >  > > > > > developing an
> > > > > >  > > > > > > > > > annotated web service
> > > > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any
> interest in working
> > > > > >  > on
> > > > > >  > > > > > this?)
> > > > > >  > > > > > > > > > - custom annotations to support
> container-specific features
> > > > > >  > like
> > > > > >  > > > > > type
> > > > > >  > > > > > > > mapping
> > > > > >  > > > > > > > > > - and so on...
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   Personally, I'm chomping at the bit to get
> WSM's 1.0 done
> > > > > >  > and
> > > > > >  > > > > > would
> > > > > >  > > > > > > > > > like to narrow scope in order to do that.  I
> think we're
> > > > > >  > almost
> > > > > >  > > > > > ready
> > > > > >  > > > > > > > > > for the TCK; I'll start on the XML file to
> describe an
> > > > > >  > annotated
> > > > > >  > > > > > Axis
> > > > > >  > > > > > > > > > web service shortly.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > > > Eddie
> > > > > >  > > > > > > > > >
> > > > > >  > > > > > > > >
> > > > > >  > > > > > > > >
> > > > > >  > > > > > > > > --
> > > > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >  > > > > > > > >
> > > > > >  > > > > > > >
> > > > > >  > > > > > >
> > > > > >  > > > > > >
> > > > > >  > > > > >
> > > > > >  > > > > >
> > > > > >  > > > > > --
> > > > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >  > > > > >
> > > > > >  > > > >
> > > > > >  > > > >
> > > > > >  > > >
> > > > > >  > > >
> > > > > >  > > > --
> > > > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >  > > >
> > > > > >  > > >
> > > > > >  >
> ---------------------------------------------------------------------
> > > > > >  > > > To unsubscribe, e-mail:
> > > > > >  > axis-dev-unsubscribe@ws.apache.org
> > > > > >  > > > For additional commands, e-mail:
> axis-dev-help@ws.apache.org
> > > > > >  > > >
> > > > > >  > > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  >
> > > > > >  >
> > > > > >
> > > > > >
> > > > > >  --
> > > > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > > > >
> > > > >
> >  ---------------------------------------------------------------------
> > > > > >  To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > > > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
  Ah -- interesting.  :)  If what I'll try works (using our
Mirror-like APIs), we shouldn't have any dependence on com.sun stuff
-- you'll be able to plug an implementation in that provides the same
information via reflection or whatever.

  It'll be some work to get done, though, and annogen is likely to be
more expedient in the short term.  Let's decide once I know whether
the above works.

  FWIW, in the long run, those com.sun APIs will be available in the
JDK once JSR-269 is finalized.

Eddie


On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> Whichever you think is right is ok with me. Let me clarify what i as
> thinking...I was trying to make sure that we avoid com.sun stuff (so
> that we can work in FOSS jvm's) and also work with JDK1.4 by using say
> Retrotranslator (http://retrotranslator.sourceforge.net/).
>
> thanks,
> dims
>
> On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> >   That's certainly an option, though it means that we'd need to rework
> > the annotation checker which is what captures the interpretation of
> > the 181 spec to move it away from using Mirror.
> >
> >   The value in Mirror / apt is that it's supported in Eclipse tooling
> > -- you can get syntax and semantic checking on @WebService
> > annotations, for example.  Personally, I think that's valuable.  A
> > purely annogen based approach won't be embeddable inside of Eclipse.
> >
> >   I still think we can use annogen as a way to drive a Mirror-like API
> > that can be used at both runtime / build time.  But, like I said, I'm
> > open.  Do you want to just move to annogen, or can we consider this as
> > an alternative?
> >
> > Eddie
> >
> >
> >
> >
> > On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > Eddie,
> > >
> > > As i was telling Rajith, we'd like to try annogen based runtime
> > > annotation processing to start with.
> > >
> > > -- dims
> > >
> > > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > >
> > > > Nicholas --
> > > >
> > > >   Basically, yes.  :)  WSM will handle the complexity around the specification's details regarding the @WebService annotation, SEIs, and WSDL binding.  There's code living here:
> > > >
> > > >      http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > > >
> > > > that implements most of this (there are a few holes...).  The annotation processor walks an @WebService annotated class / interface and produces a model that describes the service (WsmService).  This POJO can then be used for code generation, to update deployment descriptors, or for auto-wiring of a web service in the VM at runtime.  The latter is how this works for Axis1.
> > > >
> > > >   Currently, WSM is implemented to use Java 5's Mirror infrastructure in order to execute annotation processing at build time.  We have a layer that basically duplicates the Mirror APIs and wraps them so that it's possible to support XDoclet / annogen / asm, so it should be possible to support either  1.5 or 1.4 and annotation processing at buildtime or at runtime.  Certainly open to other suggestions if you have them -- if we moved away from Mirror altogether, there would be some work to do to rewrite some things, but it wouldn't be rocket science.  :)
> > > >
> > > >
> > > > Eddie
> > > >
> > > >
> > > >
> > > >
> > > > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > > > >
> > > > >
> > > > > Rajith,
> > > > >
> > > > > From a JAX-WS perspective, the @WebService annotation does introduce some challenges when it comes to determining what the interface of a Web service will be.  From my interpretation, which is just that, it doesn't dictate as much how the annotation should be handled at runtime as much as it does instruct how the annotation affects the Java to WSDL mapping.  I think the assumption after that is, the system will then do whatever it needs to configure itself to fulfill the contract defined by that WSDL.  If I understand correctly what Dim's has proposed, this is the piece that your WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the information gets relayed to Axis2 correctly.
> > > > >
> > > > > With respect to just the @WebService annotation, and not the annotations processing as a whole, it seems like you might encounter a few scenarios that could be tricky.  I don't know enough about the specifics of WSM though, so it may resolve some of the headaches for you.
> > > > >
> > > > > - When a class is annotated with @WebService, any of the public methods available on that class are to be exposed as an operation in a Web service.  If that particular annotation instance has the WSDL document location specified, then we need to do some bit of processing/validation to make sure the public methods support what's defined in the WSDL.  Or.... does WSM just do that for you?
> > > > >
> > > > > - Because of the "serviceEnpdointInterface" property on the @WebService annotation, the above case becomes a little more complex.  JAX-WS has a notion of squashing that SEI, along with the public methods on any other interface that the SEI may extend into one giant interface, which should then be reflected in the WSDL.  Again, I don't know enough about WSM, but this might be something it handles for you.  If not, it seems like you will be required to walk the annotations and collect the metadata from every interface that's extended?
> > > > >
> > > > > I'm glad to see you'll be working on this.  As mentioned before, I think there is some commonality that can be leveraged when it comes to JAX-WS as well.  A few questions though about the annotations support for Axis2 endpoints (I know you're just getting started with this so I understand if some of this is longer term) :
> > > > >
> > > > > - When annotations are added to a class, are you still requiring the presence of a services.xml?  If so, what's the minimum set of information required in that document?  I.e., could I get away with annotating a class and just specifying that ServiceClass property in XML file?  I can see still needing the deployment descriptor for specifying module refs, but would it be able to have just that and not the operation descriptions.  Just a thought.
> > > > >
> > > > > - If annotations are supported for Axis2/ADB endpoints, how would we distinguish those from JAX-WS endpoints?
> > > > >
> > > > > Hope this helps...
> > > > >
> > > > > Regards,
> > > > >
> > > > > Nicholas Gallardo
> > > > >  WebSphere  -  WebServices Development
> > > > >  nlgallar@us.ibm.com
> > > > >  Phone: 512-838-1182
> > > > >  Building: 901 / 5G-016
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > "Rajith Attapattu" <ra...@gmail.com>
> > > > >
> > > > >
> > > > > 06/19/2006 09:35 PM
> > > > >
> > > > > Please respond to
> > > > >  axis-dev@ws.apache.org
> > > > >
> > > > >
> > > > > To axis-dev@ws.apache.org,  dims@apache.org
> > > > >
> > > > > cc
> > > > >
> > > > >
> > > > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Dims,
> > > > >
> > > > >  Sounds good.
> > > > >
> > > > >  So it looks like the @WebService tag is not really useful as we explicitly name the class in the services.xml
> > > > >  So from Axis2 side we are covered
> > > > >
> > > > >  However I am wondering if there is some requirment from the JAX-WS side as to how we should leverage this @WebService annotation.
> > > > >  wondering if the spec mandates some sort of stratergy for this. (I read the spec and couldn't find anything)
> > > > >
> > > > >  For now lets go ahead with what we planned (with a message receiver) and worry about @WebService thing when we figure out the exact requirment.
> > > > >
> > > > >  Regards,
> > > > >
> > > > >  Rajith.
> > > > >
> > > > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > > > Rajith,
> > > > >
> > > > >  In the short term, We have RPCMessageReceiver,
> > > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > > >  WSMRPCMessageReceiver as well. So we will have to look at the class
> > > > >  name specified in the services.xml just like we do for other
> > > > >  receivers.
> > > > >
> > > > >  -- dims
> > > > >
> > > > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > >  > Hi Dims
> > > > >  >
> > > > >  > One more question if you don't mind :-)
> > > > >  >
> > > > >  > What is the plan to figure out a class marked with @WebService?
> > > > >  >
> > > > >  > a) are we going to look through a particular location to introspect any
> > > > >  > class files droped there ?
> > > > >  > b) is the user responsible for adding the service via some API method ? for
> > > > >  > ex: AxisService.createService(String className) ?
> > > > >  >
> > > > >  > The rest we can introspect once we get the class identified. But I am
> > > > >  > wondering how is the initial step of figuring out the marked (annotated
> > > > >  > class) class with the @WebService tag.
> > > > >  >
> > > > >  > Sorry for the long list of questions.
> > > > >  >
> > > > >  > Regards,
> > > > >  >
> > > > >  > Rajith
> > > > >  >
> > > > >  >
> > > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > > >  > >
> > > > >  > > Hi Dims,
> > > > >  > >
> > > > >  > > Sorry if this question sounds stupid, but there is something that I don't
> > > > >  > get.
> > > > >  > > Can you explain any gaps that I have? :-)
> > > > >  > >
> > > > >  > > So we use WSM to get the jsr181 support.
> > > > >  > > But, It looks like wsm is not complete in terms of the POJO aspect as the
> > > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > > >  > >
> > > > >  > > I guess part of the job is to complete the wsm stuff and then use it
> > > > >  > inside axis2. Or did I get this wrong?
> > > > >  > >
> > > > >  > >
> > > > >  > > >> Forgot to mention, please use annogen ( http://annogen.codehaus.org/  )
> > > > >  > to access the annotations which are needed to build the WsmService
> > > > >  > >
> > > > >  > > So are we going to do the implementation of ReflectionWsmServiceFactory
> > > > >  > inside Axis2?
> > > > >  > >
> > > > >  > > I thought we are going to complete that inside wsm and then implement
> > > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > > > >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> > > > >  > >
> > > > >  > > Did I miss something?
> > > > >  > >
> > > > >  > > Thanks,
> > > > >  > >
> > > > >  > >
> > > > >  > > Rajith
> > > > >  > >
> > > > >  > >
> > > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > >  > > > Let's keep this to axis-dev@ until we need some questions answered
> > > > >  > > > from beehive folks. Forgot to mention, please use annogen
> > > > >  > > > ( http://annogen.codehaus.org/) to access the annotations which are
> > > > >  > > > needed to build the WsmService. We explicitly took a dependency on
> > > > >  > > > annogen in Axis2 for this purpose.
> > > > >  > > >
> > > > >  > > > thanks,
> > > > >  > > > -- dims
> > > > >  > > >
> > > > >  > > > On 6/13/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > >  > > > > Hi Dims,
> > > > >  > > > >
> > > > >  > > > > Thanks for the pointers.
> > > > >  > > > > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > > > >  > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > > > >  > AxisService
> > > > >  > > > > out of an anotated POJO.
> > > > >  > > > > Once I have something I will create a JIRA and attach a patch. U can
> > > > >  > take a
> > > > >  > > > > look at the code and then we can take it from there.
> > > > >  > > > > If I have questions I will bug u again :-)
> > > > >  > > > >
> > > > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > > > >  > wondering how
> > > > >  > > > > to get WSM specific questions answered :-)
> > > > >  > > > >
> > > > >  > > > > Regards,
> > > > >  > > > >
> > > > >  > > > > Rajith
> > > > >  > > > >
> > > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > >  > > > > >
> > > > >  > > > > > Rajith,
> > > > >  > > > > >
> > > > >  > > > > > I think you need to implement ReflectionWsmServiceFactory first. The
> > > > >  > > > > > angle of attack i am looking at is deploying a POJO with
> > > > >  > annotations.
> > > > >  > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > > > >  > pojo).
> > > > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from
> > > > >  > WSM.
> > > > >  > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > >  > > > > >
> > > > >  > > > > > thanks,
> > > > >  > > > > > dims
> > > > >  > > > > >
> > > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > > >  > > > > > > Hi Dims & Eddie,
> > > > >  > > > > > >
> > > > >  > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > > > >  > WsmService?
> > > > >  > > > > > > Any pointers will be helpful.
> > > > >  > > > > > >
> > > > >  > > > > > > I am going through the wiki and JSR documentation and will get
> > > > >  > back with
> > > > >  > > > > > > questions.
> > > > >  > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > > > >  > relevent
> > > > >  > > > > > classes
> > > > >  > > > > > > for the annotations support?
> > > > >  > > > > > >
> > > > >  > > > > > > Regards,
> > > > >  > > > > > >
> > > > >  > > > > > > Rajith
> > > > >  > > > > > >
> > > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > > >  > > > > > > >
> > > > >  > > > > > > > Dims--
> > > > >  > > > > > > >
> > > > >  > > > > > > >   Hey; apologies for the delay.  That's basically right -- there
> > > > >  > is
> > > > >  > > > > > > > actually one other step in the annotation processing pipeline
> > > > >  > which is
> > > > >  > > > > > > > verifying the validity of any annotations on the class.  So, it
> > > > >  > would
> > > > >  > > > > > > > be:
> > > > >  > > > > > > >
> > > > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > > > >  > building
> > > > >  > > > > > > > (MirrorWsmBuilder)
> > > > >  > > > > > > >
> > > > >  > > > > > > > which returns a WsmService object that can be wired up into
> > > > >  > axis2
> > > > >  > > > > > stuff.
> > > > >  > > > > > > >
> > > > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a separate JAR;
> > > > >  > my
> > > > >  > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > > > >  > same JAR
> > > > >  > > > > > > > file, but if this is a problem, let me know and I can make three
> > > > >  > JARs
> > > > >  > > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > > >  > > > > > > >
> > > > >  > > > > > > >   There is one important part of this that isn't done yet, and
> > > > >  > that's
> > > > >  > > > > > > > to provide something that can be used inside of a server runtime
> > > > >  > that
> > > > >  > > > > > > > abstracts from Sun's Mirror types which are used inside of APT.
> > > > >  > Not
> > > > >  > > > > > > > exactly sure what this looks like yet -- could be reflection or
> > > > >  > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > > > >  > inside of
> > > > >  > > > > > > > APT).
> > > > >  > > > > > > >
> > > > >  > > > > > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > >  > > > > > > > build-time on the command line?  I'm assuming the former.
> > > > >  > > > > > > >
> > > > >  > > > > > > > Eddie
> > > > >  > > > > > > >
> > > > >  > > > > > > >
> > > > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > > >  > > > > > > > > Eddie,
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > i was looking at the current codebase and spotted the
> > > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect
> > > > >  > a
> > > > >  > > > > > given
> > > > >  > > > > > > > > java class? and one the WsmService object is built, then
> > > > >  > translate
> > > > >  > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > > > >  > framework
> > > > >  > > > > > into
> > > > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > > > >  > right
> > > > >  > > > > > track
> > > > >  > > > > > > > > with this thinking?
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > thanks,
> > > > >  > > > > > > > > dims
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > > >  > > > > > > > > > All--
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Happy New Year!  And, as a way to start the year off on a
> > > > >  > good
> > > > >  > > > > > foot,
> > > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get
> > > > >  > from
> > > > >  > > > > > here to
> > > > >  > > > > > > > > > there with some details about where we are and what needs to
> > > > >  > > > > > happen.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Today, there are two core WSM parts, both of which are
> > > > >  > tailored
> > > > >  > > > > > to
> > > > >  > > > > > > > > > the Axis web service stack:
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   build-time: This is a generic annotation processing layer
> > > > >  > that
> > > > >  > > > > > has
> > > > >  > > > > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > > > >  > > > > > produce a
> > > > >  > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > > > >  > build-time
> > > > >  > > > > > > > > > layer has a plug-point for generating source artifacts to
> > > > >  > support
> > > > >  > > > > > > > > > various web service runtimes.  For example, the Axis
> > > > >  > > > > > implementation
> > > > >  > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> > > > >  > This
> > > > >  > > > > > could
> > > > >  > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > > > >  > artifacts,
> > > > >  > > > > > etc.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   runtime: The runtime side of WSM is specifically built to
> > > > >  > > > > > support
> > > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > > > >  > model
> > > > >  > > > > > > > > > generated at build time and uses an Axis Handler to
> > > > >  > configure a
> > > > >  > > > > > > > > > SOAPService given this information.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   There is another large bunch of code in WSM related to
> > > > >  > tools:
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > > > >  > > > > > development
> > > > >  > > > > > > > > > model and starts with a WSDL to produce an annotated Java
> > > > >  > source
> > > > >  > > > > > file.
> > > > >  > > > > > > > > >  This tool requires significant knowledge of WSDL and type
> > > > >  > mapping
> > > > >  > > > > > for
> > > > >  > > > > > > > > > a specific web service stack.  For example, the mapping for
> > > > >  > an XSD
> > > > >  > > > > > > > > > year is mapped to org.apache.axis.types.Year and something
> > > > >  > > > > > different
> > > > >  > > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> > > > >  > bunch of
> > > > >  > > > > > code
> > > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   In order to finish WSM, one more re-architecting step
> > > > >  > needs to
> > > > >  > > > > > be
> > > > >  > > > > > > > > > completed; I'd like to remove the use of a serialized Java
> > > > >  > object
> > > > >  > > > > > as
> > > > >  > > > > > > > > > the way to communicate from the build-time to runtime parts
> > > > >  > of the
> > > > >  > > > > > > > > > implementation.  This would be replaced with a WSDD like,
> > > > >  > but WSM
> > > > >  > > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> > > > >  > be
> > > > >  > > > > > used
> > > > >  > > > > > > > > > for this because too closely matches the shape of a Java
> > > > >  > class
> > > > >  > > > > > (Dims
> > > > >  > > > > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> > > > >  > need a
> > > > >  > > > > > > > > > simple XML file that describes the information captured in a
> > > > >  > > > > > > > > > WsmService.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Once this is done, we can start work on passing the
> > > > >  > JSR-181 TCK.
> > > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   In order to expedite the process of getting from here to
> > > > >  > TCK
> > > > >  > > > > > > > > > compliance, I'd like to suggest that we stop stop work on
> > > > >  > the
> > > > >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > > > >  > restart
> > > > >  > > > > > this
> > > > >  > > > > > > > > > tool immediately post-1.0.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Post 1.0, there are lots of other things that we could do
> > > > >  > > > > > including:
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > > - JDK 1.4 support
> > > > >  > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > >  > > > > > developing an
> > > > >  > > > > > > > > > annotated web service
> > > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest in working
> > > > >  > on
> > > > >  > > > > > this?)
> > > > >  > > > > > > > > > - custom annotations to support container-specific features
> > > > >  > like
> > > > >  > > > > > type
> > > > >  > > > > > > > mapping
> > > > >  > > > > > > > > > - and so on...
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> > > > >  > and
> > > > >  > > > > > would
> > > > >  > > > > > > > > > like to narrow scope in order to do that.  I think we're
> > > > >  > almost
> > > > >  > > > > > ready
> > > > >  > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > > > >  > annotated
> > > > >  > > > > > Axis
> > > > >  > > > > > > > > > web service shortly.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > > > Eddie
> > > > >  > > > > > > > > >
> > > > >  > > > > > > > >
> > > > >  > > > > > > > >
> > > > >  > > > > > > > > --
> > > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >  > > > > > > > >
> > > > >  > > > > > > >
> > > > >  > > > > > >
> > > > >  > > > > > >
> > > > >  > > > > >
> > > > >  > > > > >
> > > > >  > > > > > --
> > > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >  > > > > >
> > > > >  > > > >
> > > > >  > > > >
> > > > >  > > >
> > > > >  > > >
> > > > >  > > > --
> > > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >  > > >
> > > > >  > > >
> > > > >  > ---------------------------------------------------------------------
> > > > >  > > > To unsubscribe, e-mail:
> > > > >  > axis-dev-unsubscribe@ws.apache.org
> > > > >  > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > >  > > >
> > > > >  > > >
> > > > >  > >
> > > > >  > >
> > > > >  >
> > > > >  >
> > > > >
> > > > >
> > > > >  --
> > > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > > >  ---------------------------------------------------------------------
> > > > >  To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Whichever you think is right is ok with me. Let me clarify what i as
thinking...I was trying to make sure that we avoid com.sun stuff (so
that we can work in FOSS jvm's) and also work with JDK1.4 by using say
Retrotranslator (http://retrotranslator.sourceforge.net/).

thanks,
dims

On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
>   That's certainly an option, though it means that we'd need to rework
> the annotation checker which is what captures the interpretation of
> the 181 spec to move it away from using Mirror.
>
>   The value in Mirror / apt is that it's supported in Eclipse tooling
> -- you can get syntax and semantic checking on @WebService
> annotations, for example.  Personally, I think that's valuable.  A
> purely annogen based approach won't be embeddable inside of Eclipse.
>
>   I still think we can use annogen as a way to drive a Mirror-like API
> that can be used at both runtime / build time.  But, like I said, I'm
> open.  Do you want to just move to annogen, or can we consider this as
> an alternative?
>
> Eddie
>
>
>
>
> On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> > Eddie,
> >
> > As i was telling Rajith, we'd like to try annogen based runtime
> > annotation processing to start with.
> >
> > -- dims
> >
> > On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > >
> > > Nicholas --
> > >
> > >   Basically, yes.  :)  WSM will handle the complexity around the specification's details regarding the @WebService annotation, SEIs, and WSDL binding.  There's code living here:
> > >
> > >      http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> > >
> > > that implements most of this (there are a few holes...).  The annotation processor walks an @WebService annotated class / interface and produces a model that describes the service (WsmService).  This POJO can then be used for code generation, to update deployment descriptors, or for auto-wiring of a web service in the VM at runtime.  The latter is how this works for Axis1.
> > >
> > >   Currently, WSM is implemented to use Java 5's Mirror infrastructure in order to execute annotation processing at build time.  We have a layer that basically duplicates the Mirror APIs and wraps them so that it's possible to support XDoclet / annogen / asm, so it should be possible to support either  1.5 or 1.4 and annotation processing at buildtime or at runtime.  Certainly open to other suggestions if you have them -- if we moved away from Mirror altogether, there would be some work to do to rewrite some things, but it wouldn't be rocket science.  :)
> > >
> > >
> > > Eddie
> > >
> > >
> > >
> > >
> > > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > > >
> > > >
> > > > Rajith,
> > > >
> > > > From a JAX-WS perspective, the @WebService annotation does introduce some challenges when it comes to determining what the interface of a Web service will be.  From my interpretation, which is just that, it doesn't dictate as much how the annotation should be handled at runtime as much as it does instruct how the annotation affects the Java to WSDL mapping.  I think the assumption after that is, the system will then do whatever it needs to configure itself to fulfill the contract defined by that WSDL.  If I understand correctly what Dim's has proposed, this is the piece that your WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the information gets relayed to Axis2 correctly.
> > > >
> > > > With respect to just the @WebService annotation, and not the annotations processing as a whole, it seems like you might encounter a few scenarios that could be tricky.  I don't know enough about the specifics of WSM though, so it may resolve some of the headaches for you.
> > > >
> > > > - When a class is annotated with @WebService, any of the public methods available on that class are to be exposed as an operation in a Web service.  If that particular annotation instance has the WSDL document location specified, then we need to do some bit of processing/validation to make sure the public methods support what's defined in the WSDL.  Or.... does WSM just do that for you?
> > > >
> > > > - Because of the "serviceEnpdointInterface" property on the @WebService annotation, the above case becomes a little more complex.  JAX-WS has a notion of squashing that SEI, along with the public methods on any other interface that the SEI may extend into one giant interface, which should then be reflected in the WSDL.  Again, I don't know enough about WSM, but this might be something it handles for you.  If not, it seems like you will be required to walk the annotations and collect the metadata from every interface that's extended?
> > > >
> > > > I'm glad to see you'll be working on this.  As mentioned before, I think there is some commonality that can be leveraged when it comes to JAX-WS as well.  A few questions though about the annotations support for Axis2 endpoints (I know you're just getting started with this so I understand if some of this is longer term) :
> > > >
> > > > - When annotations are added to a class, are you still requiring the presence of a services.xml?  If so, what's the minimum set of information required in that document?  I.e., could I get away with annotating a class and just specifying that ServiceClass property in XML file?  I can see still needing the deployment descriptor for specifying module refs, but would it be able to have just that and not the operation descriptions.  Just a thought.
> > > >
> > > > - If annotations are supported for Axis2/ADB endpoints, how would we distinguish those from JAX-WS endpoints?
> > > >
> > > > Hope this helps...
> > > >
> > > > Regards,
> > > >
> > > > Nicholas Gallardo
> > > >  WebSphere  -  WebServices Development
> > > >  nlgallar@us.ibm.com
> > > >  Phone: 512-838-1182
> > > >  Building: 901 / 5G-016
> > > >
> > > >
> > > >
> > > >
> > > > "Rajith Attapattu" <ra...@gmail.com>
> > > >
> > > >
> > > > 06/19/2006 09:35 PM
> > > >
> > > > Please respond to
> > > >  axis-dev@ws.apache.org
> > > >
> > > >
> > > > To axis-dev@ws.apache.org,  dims@apache.org
> > > >
> > > > cc
> > > >
> > > >
> > > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Dims,
> > > >
> > > >  Sounds good.
> > > >
> > > >  So it looks like the @WebService tag is not really useful as we explicitly name the class in the services.xml
> > > >  So from Axis2 side we are covered
> > > >
> > > >  However I am wondering if there is some requirment from the JAX-WS side as to how we should leverage this @WebService annotation.
> > > >  wondering if the spec mandates some sort of stratergy for this. (I read the spec and couldn't find anything)
> > > >
> > > >  For now lets go ahead with what we planned (with a message receiver) and worry about @WebService thing when we figure out the exact requirment.
> > > >
> > > >  Regards,
> > > >
> > > >  Rajith.
> > > >
> > > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > > Rajith,
> > > >
> > > >  In the short term, We have RPCMessageReceiver,
> > > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > > >  WSMRPCMessageReceiver as well. So we will have to look at the class
> > > >  name specified in the services.xml just like we do for other
> > > >  receivers.
> > > >
> > > >  -- dims
> > > >
> > > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > >  > Hi Dims
> > > >  >
> > > >  > One more question if you don't mind :-)
> > > >  >
> > > >  > What is the plan to figure out a class marked with @WebService?
> > > >  >
> > > >  > a) are we going to look through a particular location to introspect any
> > > >  > class files droped there ?
> > > >  > b) is the user responsible for adding the service via some API method ? for
> > > >  > ex: AxisService.createService(String className) ?
> > > >  >
> > > >  > The rest we can introspect once we get the class identified. But I am
> > > >  > wondering how is the initial step of figuring out the marked (annotated
> > > >  > class) class with the @WebService tag.
> > > >  >
> > > >  > Sorry for the long list of questions.
> > > >  >
> > > >  > Regards,
> > > >  >
> > > >  > Rajith
> > > >  >
> > > >  >
> > > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > > >  > >
> > > >  > > Hi Dims,
> > > >  > >
> > > >  > > Sorry if this question sounds stupid, but there is something that I don't
> > > >  > get.
> > > >  > > Can you explain any gaps that I have? :-)
> > > >  > >
> > > >  > > So we use WSM to get the jsr181 support.
> > > >  > > But, It looks like wsm is not complete in terms of the POJO aspect as the
> > > >  > reflection based ReflectionWsmServiceFactory is not done.
> > > >  > >
> > > >  > > I guess part of the job is to complete the wsm stuff and then use it
> > > >  > inside axis2. Or did I get this wrong?
> > > >  > >
> > > >  > >
> > > >  > > >> Forgot to mention, please use annogen ( http://annogen.codehaus.org/  )
> > > >  > to access the annotations which are needed to build the WsmService
> > > >  > >
> > > >  > > So are we going to do the implementation of ReflectionWsmServiceFactory
> > > >  > inside Axis2?
> > > >  > >
> > > >  > > I thought we are going to complete that inside wsm and then implement
> > > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > > >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> > > >  > >
> > > >  > > Did I miss something?
> > > >  > >
> > > >  > > Thanks,
> > > >  > >
> > > >  > >
> > > >  > > Rajith
> > > >  > >
> > > >  > >
> > > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > >  > > > Let's keep this to axis-dev@ until we need some questions answered
> > > >  > > > from beehive folks. Forgot to mention, please use annogen
> > > >  > > > ( http://annogen.codehaus.org/) to access the annotations which are
> > > >  > > > needed to build the WsmService. We explicitly took a dependency on
> > > >  > > > annogen in Axis2 for this purpose.
> > > >  > > >
> > > >  > > > thanks,
> > > >  > > > -- dims
> > > >  > > >
> > > >  > > > On 6/13/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > >  > > > > Hi Dims,
> > > >  > > > >
> > > >  > > > > Thanks for the pointers.
> > > >  > > > > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > > >  > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > > >  > AxisService
> > > >  > > > > out of an anotated POJO.
> > > >  > > > > Once I have something I will create a JIRA and attach a patch. U can
> > > >  > take a
> > > >  > > > > look at the code and then we can take it from there.
> > > >  > > > > If I have questions I will bug u again :-)
> > > >  > > > >
> > > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > > >  > wondering how
> > > >  > > > > to get WSM specific questions answered :-)
> > > >  > > > >
> > > >  > > > > Regards,
> > > >  > > > >
> > > >  > > > > Rajith
> > > >  > > > >
> > > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > >  > > > > >
> > > >  > > > > > Rajith,
> > > >  > > > > >
> > > >  > > > > > I think you need to implement ReflectionWsmServiceFactory first. The
> > > >  > > > > > angle of attack i am looking at is deploying a POJO with
> > > >  > annotations.
> > > >  > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > > >  > pojo).
> > > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from
> > > >  > WSM.
> > > >  > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > >  > > > > >
> > > >  > > > > > thanks,
> > > >  > > > > > dims
> > > >  > > > > >
> > > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > > >  > > > > > > Hi Dims & Eddie,
> > > >  > > > > > >
> > > >  > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > > >  > WsmService?
> > > >  > > > > > > Any pointers will be helpful.
> > > >  > > > > > >
> > > >  > > > > > > I am going through the wiki and JSR documentation and will get
> > > >  > back with
> > > >  > > > > > > questions.
> > > >  > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > > >  > relevent
> > > >  > > > > > classes
> > > >  > > > > > > for the annotations support?
> > > >  > > > > > >
> > > >  > > > > > > Regards,
> > > >  > > > > > >
> > > >  > > > > > > Rajith
> > > >  > > > > > >
> > > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > >  > > > > > > >
> > > >  > > > > > > > Dims--
> > > >  > > > > > > >
> > > >  > > > > > > >   Hey; apologies for the delay.  That's basically right -- there
> > > >  > is
> > > >  > > > > > > > actually one other step in the annotation processing pipeline
> > > >  > which is
> > > >  > > > > > > > verifying the validity of any annotations on the class.  So, it
> > > >  > would
> > > >  > > > > > > > be:
> > > >  > > > > > > >
> > > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > > >  > building
> > > >  > > > > > > > (MirrorWsmBuilder)
> > > >  > > > > > > >
> > > >  > > > > > > > which returns a WsmService object that can be wired up into
> > > >  > axis2
> > > >  > > > > > stuff.
> > > >  > > > > > > >
> > > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a separate JAR;
> > > >  > my
> > > >  > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > > >  > same JAR
> > > >  > > > > > > > file, but if this is a problem, let me know and I can make three
> > > >  > JARs
> > > >  > > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > >  > > > > > > >
> > > >  > > > > > > >   There is one important part of this that isn't done yet, and
> > > >  > that's
> > > >  > > > > > > > to provide something that can be used inside of a server runtime
> > > >  > that
> > > >  > > > > > > > abstracts from Sun's Mirror types which are used inside of APT.
> > > >  > Not
> > > >  > > > > > > > exactly sure what this looks like yet -- could be reflection or
> > > >  > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > > >  > inside of
> > > >  > > > > > > > APT).
> > > >  > > > > > > >
> > > >  > > > > > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > >  > > > > > > > build-time on the command line?  I'm assuming the former.
> > > >  > > > > > > >
> > > >  > > > > > > > Eddie
> > > >  > > > > > > >
> > > >  > > > > > > >
> > > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > > >  > > > > > > > > Eddie,
> > > >  > > > > > > > >
> > > >  > > > > > > > > i was looking at the current codebase and spotted the
> > > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect
> > > >  > a
> > > >  > > > > > given
> > > >  > > > > > > > > java class? and one the WsmService object is built, then
> > > >  > translate
> > > >  > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > > >  > framework
> > > >  > > > > > into
> > > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > > >  > right
> > > >  > > > > > track
> > > >  > > > > > > > > with this thinking?
> > > >  > > > > > > > >
> > > >  > > > > > > > > thanks,
> > > >  > > > > > > > > dims
> > > >  > > > > > > > >
> > > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > > >  > > > > > > > > > All--
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Happy New Year!  And, as a way to start the year off on a
> > > >  > good
> > > >  > > > > > foot,
> > > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get
> > > >  > from
> > > >  > > > > > here to
> > > >  > > > > > > > > > there with some details about where we are and what needs to
> > > >  > > > > > happen.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Today, there are two core WSM parts, both of which are
> > > >  > tailored
> > > >  > > > > > to
> > > >  > > > > > > > > > the Axis web service stack:
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   build-time: This is a generic annotation processing layer
> > > >  > that
> > > >  > > > > > has
> > > >  > > > > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > > >  > > > > > produce a
> > > >  > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > > >  > build-time
> > > >  > > > > > > > > > layer has a plug-point for generating source artifacts to
> > > >  > support
> > > >  > > > > > > > > > various web service runtimes.  For example, the Axis
> > > >  > > > > > implementation
> > > >  > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> > > >  > This
> > > >  > > > > > could
> > > >  > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > > >  > artifacts,
> > > >  > > > > > etc.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   runtime: The runtime side of WSM is specifically built to
> > > >  > > > > > support
> > > >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > > >  > model
> > > >  > > > > > > > > > generated at build time and uses an Axis Handler to
> > > >  > configure a
> > > >  > > > > > > > > > SOAPService given this information.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   There is another large bunch of code in WSM related to
> > > >  > tools:
> > > >  > > > > > > > > >
> > > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > > >  > > > > > development
> > > >  > > > > > > > > > model and starts with a WSDL to produce an annotated Java
> > > >  > source
> > > >  > > > > > file.
> > > >  > > > > > > > > >  This tool requires significant knowledge of WSDL and type
> > > >  > mapping
> > > >  > > > > > for
> > > >  > > > > > > > > > a specific web service stack.  For example, the mapping for
> > > >  > an XSD
> > > >  > > > > > > > > > year is mapped to org.apache.axis.types.Year and something
> > > >  > > > > > different
> > > >  > > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> > > >  > bunch of
> > > >  > > > > > code
> > > >  > > > > > > > > > to write, but is also a very useful tool.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   In order to finish WSM, one more re-architecting step
> > > >  > needs to
> > > >  > > > > > be
> > > >  > > > > > > > > > completed; I'd like to remove the use of a serialized Java
> > > >  > object
> > > >  > > > > > as
> > > >  > > > > > > > > > the way to communicate from the build-time to runtime parts
> > > >  > of the
> > > >  > > > > > > > > > implementation.  This would be replaced with a WSDD like,
> > > >  > but WSM
> > > >  > > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> > > >  > be
> > > >  > > > > > used
> > > >  > > > > > > > > > for this because too closely matches the shape of a Java
> > > >  > class
> > > >  > > > > > (Dims
> > > >  > > > > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> > > >  > need a
> > > >  > > > > > > > > > simple XML file that describes the information captured in a
> > > >  > > > > > > > > > WsmService.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Once this is done, we can start work on passing the
> > > >  > JSR-181 TCK.
> > > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   In order to expedite the process of getting from here to
> > > >  > TCK
> > > >  > > > > > > > > > compliance, I'd like to suggest that we stop stop work on
> > > >  > the
> > > >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > > >  > restart
> > > >  > > > > > this
> > > >  > > > > > > > > > tool immediately post-1.0.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Post 1.0, there are lots of other things that we could do
> > > >  > > > > > including:
> > > >  > > > > > > > > >
> > > >  > > > > > > > > > - JDK 1.4 support
> > > >  > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > >  > > > > > developing an
> > > >  > > > > > > > > > annotated web service
> > > >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest in working
> > > >  > on
> > > >  > > > > > this?)
> > > >  > > > > > > > > > - custom annotations to support container-specific features
> > > >  > like
> > > >  > > > > > type
> > > >  > > > > > > > mapping
> > > >  > > > > > > > > > - and so on...
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> > > >  > and
> > > >  > > > > > would
> > > >  > > > > > > > > > like to narrow scope in order to do that.  I think we're
> > > >  > almost
> > > >  > > > > > ready
> > > >  > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > > >  > annotated
> > > >  > > > > > Axis
> > > >  > > > > > > > > > web service shortly.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > >  > > > > > > > > >
> > > >  > > > > > > > > > Eddie
> > > >  > > > > > > > > >
> > > >  > > > > > > > >
> > > >  > > > > > > > >
> > > >  > > > > > > > > --
> > > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >  > > > > > > > >
> > > >  > > > > > > >
> > > >  > > > > > >
> > > >  > > > > > >
> > > >  > > > > >
> > > >  > > > > >
> > > >  > > > > > --
> > > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >  > > > > >
> > > >  > > > >
> > > >  > > > >
> > > >  > > >
> > > >  > > >
> > > >  > > > --
> > > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >  > > >
> > > >  > > >
> > > >  > ---------------------------------------------------------------------
> > > >  > > > To unsubscribe, e-mail:
> > > >  > axis-dev-unsubscribe@ws.apache.org
> > > >  > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >  > > >
> > > >  > > >
> > > >  > >
> > > >  > >
> > > >  >
> > > >  >
> > > >
> > > >
> > > >  --
> > > >  Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > > >  ---------------------------------------------------------------------
> > > >  To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>


-- 
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
  That's certainly an option, though it means that we'd need to rework
the annotation checker which is what captures the interpretation of
the 181 spec to move it away from using Mirror.

  The value in Mirror / apt is that it's supported in Eclipse tooling
-- you can get syntax and semantic checking on @WebService
annotations, for example.  Personally, I think that's valuable.  A
purely annogen based approach won't be embeddable inside of Eclipse.

  I still think we can use annogen as a way to drive a Mirror-like API
that can be used at both runtime / build time.  But, like I said, I'm
open.  Do you want to just move to annogen, or can we consider this as
an alternative?

Eddie




On 6/21/06, Davanum Srinivas <da...@gmail.com> wrote:
> Eddie,
>
> As i was telling Rajith, we'd like to try annogen based runtime
> annotation processing to start with.
>
> -- dims
>
> On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
> >
> > Nicholas --
> >
> >   Basically, yes.  :)  WSM will handle the complexity around the specification's details regarding the @WebService annotation, SEIs, and WSDL binding.  There's code living here:
> >
> >      http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
> >
> > that implements most of this (there are a few holes...).  The annotation processor walks an @WebService annotated class / interface and produces a model that describes the service (WsmService).  This POJO can then be used for code generation, to update deployment descriptors, or for auto-wiring of a web service in the VM at runtime.  The latter is how this works for Axis1.
> >
> >   Currently, WSM is implemented to use Java 5's Mirror infrastructure in order to execute annotation processing at build time.  We have a layer that basically duplicates the Mirror APIs and wraps them so that it's possible to support XDoclet / annogen / asm, so it should be possible to support either  1.5 or 1.4 and annotation processing at buildtime or at runtime.  Certainly open to other suggestions if you have them -- if we moved away from Mirror altogether, there would be some work to do to rewrite some things, but it wouldn't be rocket science.  :)
> >
> >
> > Eddie
> >
> >
> >
> >
> > On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> > >
> > >
> > > Rajith,
> > >
> > > From a JAX-WS perspective, the @WebService annotation does introduce some challenges when it comes to determining what the interface of a Web service will be.  From my interpretation, which is just that, it doesn't dictate as much how the annotation should be handled at runtime as much as it does instruct how the annotation affects the Java to WSDL mapping.  I think the assumption after that is, the system will then do whatever it needs to configure itself to fulfill the contract defined by that WSDL.  If I understand correctly what Dim's has proposed, this is the piece that your WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the information gets relayed to Axis2 correctly.
> > >
> > > With respect to just the @WebService annotation, and not the annotations processing as a whole, it seems like you might encounter a few scenarios that could be tricky.  I don't know enough about the specifics of WSM though, so it may resolve some of the headaches for you.
> > >
> > > - When a class is annotated with @WebService, any of the public methods available on that class are to be exposed as an operation in a Web service.  If that particular annotation instance has the WSDL document location specified, then we need to do some bit of processing/validation to make sure the public methods support what's defined in the WSDL.  Or.... does WSM just do that for you?
> > >
> > > - Because of the "serviceEnpdointInterface" property on the @WebService annotation, the above case becomes a little more complex.  JAX-WS has a notion of squashing that SEI, along with the public methods on any other interface that the SEI may extend into one giant interface, which should then be reflected in the WSDL.  Again, I don't know enough about WSM, but this might be something it handles for you.  If not, it seems like you will be required to walk the annotations and collect the metadata from every interface that's extended?
> > >
> > > I'm glad to see you'll be working on this.  As mentioned before, I think there is some commonality that can be leveraged when it comes to JAX-WS as well.  A few questions though about the annotations support for Axis2 endpoints (I know you're just getting started with this so I understand if some of this is longer term) :
> > >
> > > - When annotations are added to a class, are you still requiring the presence of a services.xml?  If so, what's the minimum set of information required in that document?  I.e., could I get away with annotating a class and just specifying that ServiceClass property in XML file?  I can see still needing the deployment descriptor for specifying module refs, but would it be able to have just that and not the operation descriptions.  Just a thought.
> > >
> > > - If annotations are supported for Axis2/ADB endpoints, how would we distinguish those from JAX-WS endpoints?
> > >
> > > Hope this helps...
> > >
> > > Regards,
> > >
> > > Nicholas Gallardo
> > >  WebSphere  -  WebServices Development
> > >  nlgallar@us.ibm.com
> > >  Phone: 512-838-1182
> > >  Building: 901 / 5G-016
> > >
> > >
> > >
> > >
> > > "Rajith Attapattu" <ra...@gmail.com>
> > >
> > >
> > > 06/19/2006 09:35 PM
> > >
> > > Please respond to
> > >  axis-dev@ws.apache.org
> > >
> > >
> > > To axis-dev@ws.apache.org,  dims@apache.org
> > >
> > > cc
> > >
> > >
> > > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Dims,
> > >
> > >  Sounds good.
> > >
> > >  So it looks like the @WebService tag is not really useful as we explicitly name the class in the services.xml
> > >  So from Axis2 side we are covered
> > >
> > >  However I am wondering if there is some requirment from the JAX-WS side as to how we should leverage this @WebService annotation.
> > >  wondering if the spec mandates some sort of stratergy for this. (I read the spec and couldn't find anything)
> > >
> > >  For now lets go ahead with what we planned (with a message receiver) and worry about @WebService thing when we figure out the exact requirment.
> > >
> > >  Regards,
> > >
> > >  Rajith.
> > >
> > > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > > Rajith,
> > >
> > >  In the short term, We have RPCMessageReceiver,
> > >  SpringRPCMessageReceiver etc. we could throw in a quick
> > >  WSMRPCMessageReceiver as well. So we will have to look at the class
> > >  name specified in the services.xml just like we do for other
> > >  receivers.
> > >
> > >  -- dims
> > >
> > >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >  > Hi Dims
> > >  >
> > >  > One more question if you don't mind :-)
> > >  >
> > >  > What is the plan to figure out a class marked with @WebService?
> > >  >
> > >  > a) are we going to look through a particular location to introspect any
> > >  > class files droped there ?
> > >  > b) is the user responsible for adding the service via some API method ? for
> > >  > ex: AxisService.createService(String className) ?
> > >  >
> > >  > The rest we can introspect once we get the class identified. But I am
> > >  > wondering how is the initial step of figuring out the marked (annotated
> > >  > class) class with the @WebService tag.
> > >  >
> > >  > Sorry for the long list of questions.
> > >  >
> > >  > Regards,
> > >  >
> > >  > Rajith
> > >  >
> > >  >
> > >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> > >  > >
> > >  > > Hi Dims,
> > >  > >
> > >  > > Sorry if this question sounds stupid, but there is something that I don't
> > >  > get.
> > >  > > Can you explain any gaps that I have? :-)
> > >  > >
> > >  > > So we use WSM to get the jsr181 support.
> > >  > > But, It looks like wsm is not complete in terms of the POJO aspect as the
> > >  > reflection based ReflectionWsmServiceFactory is not done.
> > >  > >
> > >  > > I guess part of the job is to complete the wsm stuff and then use it
> > >  > inside axis2. Or did I get this wrong?
> > >  > >
> > >  > >
> > >  > > >> Forgot to mention, please use annogen ( http://annogen.codehaus.org/  )
> > >  > to access the annotations which are needed to build the WsmService
> > >  > >
> > >  > > So are we going to do the implementation of ReflectionWsmServiceFactory
> > >  > inside Axis2?
> > >  > >
> > >  > > I thought we are going to complete that inside wsm and then implement
> > >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> > >  > >
> > >  > > Did I miss something?
> > >  > >
> > >  > > Thanks,
> > >  > >
> > >  > >
> > >  > > Rajith
> > >  > >
> > >  > >
> > >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > >  > > > Let's keep this to axis-dev@ until we need some questions answered
> > >  > > > from beehive folks. Forgot to mention, please use annogen
> > >  > > > ( http://annogen.codehaus.org/) to access the annotations which are
> > >  > > > needed to build the WsmService. We explicitly took a dependency on
> > >  > > > annogen in Axis2 for this purpose.
> > >  > > >
> > >  > > > thanks,
> > >  > > > -- dims
> > >  > > >
> > >  > > > On 6/13/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >  > > > > Hi Dims,
> > >  > > > >
> > >  > > > > Thanks for the pointers.
> > >  > > > > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > >  > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > >  > AxisService
> > >  > > > > out of an anotated POJO.
> > >  > > > > Once I have something I will create a JIRA and attach a patch. U can
> > >  > take a
> > >  > > > > look at the code and then we can take it from there.
> > >  > > > > If I have questions I will bug u again :-)
> > >  > > > >
> > >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > >  > wondering how
> > >  > > > > to get WSM specific questions answered :-)
> > >  > > > >
> > >  > > > > Regards,
> > >  > > > >
> > >  > > > > Rajith
> > >  > > > >
> > >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > >  > > > > >
> > >  > > > > > Rajith,
> > >  > > > > >
> > >  > > > > > I think you need to implement ReflectionWsmServiceFactory first. The
> > >  > > > > > angle of attack i am looking at is deploying a POJO with
> > >  > annotations.
> > >  > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > >  > pojo).
> > >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from
> > >  > WSM.
> > >  > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > >  > > > > >
> > >  > > > > > thanks,
> > >  > > > > > dims
> > >  > > > > >
> > >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >  > > > > > > Hi Dims & Eddie,
> > >  > > > > > >
> > >  > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > >  > WsmService?
> > >  > > > > > > Any pointers will be helpful.
> > >  > > > > > >
> > >  > > > > > > I am going through the wiki and JSR documentation and will get
> > >  > back with
> > >  > > > > > > questions.
> > >  > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > >  > relevent
> > >  > > > > > classes
> > >  > > > > > > for the annotations support?
> > >  > > > > > >
> > >  > > > > > > Regards,
> > >  > > > > > >
> > >  > > > > > > Rajith
> > >  > > > > > >
> > >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > >  > > > > > > >
> > >  > > > > > > > Dims--
> > >  > > > > > > >
> > >  > > > > > > >   Hey; apologies for the delay.  That's basically right -- there
> > >  > is
> > >  > > > > > > > actually one other step in the annotation processing pipeline
> > >  > which is
> > >  > > > > > > > verifying the validity of any annotations on the class.  So, it
> > >  > would
> > >  > > > > > > > be:
> > >  > > > > > > >
> > >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > >  > building
> > >  > > > > > > > (MirrorWsmBuilder)
> > >  > > > > > > >
> > >  > > > > > > > which returns a WsmService object that can be wired up into
> > >  > axis2
> > >  > > > > > stuff.
> > >  > > > > > > >
> > >  > > > > > > >   I can certainly break the Axis 1.x stuff into a separate JAR;
> > >  > my
> > >  > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > >  > same JAR
> > >  > > > > > > > file, but if this is a problem, let me know and I can make three
> > >  > JARs
> > >  > > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > >  > > > > > > >
> > >  > > > > > > >   There is one important part of this that isn't done yet, and
> > >  > that's
> > >  > > > > > > > to provide something that can be used inside of a server runtime
> > >  > that
> > >  > > > > > > > abstracts from Sun's Mirror types which are used inside of APT.
> > >  > Not
> > >  > > > > > > > exactly sure what this looks like yet -- could be reflection or
> > >  > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > >  > inside of
> > >  > > > > > > > APT).
> > >  > > > > > > >
> > >  > > > > > > >   Do you want to run this from inside of the Axis2 runtime or at
> > >  > > > > > > > build-time on the command line?  I'm assuming the former.
> > >  > > > > > > >
> > >  > > > > > > > Eddie
> > >  > > > > > > >
> > >  > > > > > > >
> > >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com > wrote:
> > >  > > > > > > > > Eddie,
> > >  > > > > > > > >
> > >  > > > > > > > > i was looking at the current codebase and spotted the
> > >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect
> > >  > a
> > >  > > > > > given
> > >  > > > > > > > > java class? and one the WsmService object is built, then
> > >  > translate
> > >  > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > >  > framework
> > >  > > > > > into
> > >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > >  > right
> > >  > > > > > track
> > >  > > > > > > > > with this thinking?
> > >  > > > > > > > >
> > >  > > > > > > > > thanks,
> > >  > > > > > > > > dims
> > >  > > > > > > > >
> > >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> > >  > > > > > > > > > All--
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Happy New Year!  And, as a way to start the year off on a
> > >  > good
> > >  > > > > > foot,
> > >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get
> > >  > from
> > >  > > > > > here to
> > >  > > > > > > > > > there with some details about where we are and what needs to
> > >  > > > > > happen.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Today, there are two core WSM parts, both of which are
> > >  > tailored
> > >  > > > > > to
> > >  > > > > > > > > > the Axis web service stack:
> > >  > > > > > > > > >
> > >  > > > > > > > > >   build-time: This is a generic annotation processing layer
> > >  > that
> > >  > > > > > has
> > >  > > > > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > >  > > > > > produce a
> > >  > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > >  > build-time
> > >  > > > > > > > > > layer has a plug-point for generating source artifacts to
> > >  > support
> > >  > > > > > > > > > various web service runtimes.  For example, the Axis
> > >  > > > > > implementation
> > >  > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> > >  > This
> > >  > > > > > could
> > >  > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > >  > artifacts,
> > >  > > > > > etc.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   runtime: The runtime side of WSM is specifically built to
> > >  > > > > > support
> > >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > >  > model
> > >  > > > > > > > > > generated at build time and uses an Axis Handler to
> > >  > configure a
> > >  > > > > > > > > > SOAPService given this information.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   There is another large bunch of code in WSM related to
> > >  > tools:
> > >  > > > > > > > > >
> > >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > >  > > > > > development
> > >  > > > > > > > > > model and starts with a WSDL to produce an annotated Java
> > >  > source
> > >  > > > > > file.
> > >  > > > > > > > > >  This tool requires significant knowledge of WSDL and type
> > >  > mapping
> > >  > > > > > for
> > >  > > > > > > > > > a specific web service stack.  For example, the mapping for
> > >  > an XSD
> > >  > > > > > > > > > year is mapped to org.apache.axis.types.Year and something
> > >  > > > > > different
> > >  > > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> > >  > bunch of
> > >  > > > > > code
> > >  > > > > > > > > > to write, but is also a very useful tool.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   In order to finish WSM, one more re-architecting step
> > >  > needs to
> > >  > > > > > be
> > >  > > > > > > > > > completed; I'd like to remove the use of a serialized Java
> > >  > object
> > >  > > > > > as
> > >  > > > > > > > > > the way to communicate from the build-time to runtime parts
> > >  > of the
> > >  > > > > > > > > > implementation.  This would be replaced with a WSDD like,
> > >  > but WSM
> > >  > > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> > >  > be
> > >  > > > > > used
> > >  > > > > > > > > > for this because too closely matches the shape of a Java
> > >  > class
> > >  > > > > > (Dims
> > >  > > > > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> > >  > need a
> > >  > > > > > > > > > simple XML file that describes the information captured in a
> > >  > > > > > > > > > WsmService.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Once this is done, we can start work on passing the
> > >  > JSR-181 TCK.
> > >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   In order to expedite the process of getting from here to
> > >  > TCK
> > >  > > > > > > > > > compliance, I'd like to suggest that we stop stop work on
> > >  > the
> > >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > >  > restart
> > >  > > > > > this
> > >  > > > > > > > > > tool immediately post-1.0.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Post 1.0, there are lots of other things that we could do
> > >  > > > > > including:
> > >  > > > > > > > > >
> > >  > > > > > > > > > - JDK 1.4 support
> > >  > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > >  > > > > > developing an
> > >  > > > > > > > > > annotated web service
> > >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest in working
> > >  > on
> > >  > > > > > this?)
> > >  > > > > > > > > > - custom annotations to support container-specific features
> > >  > like
> > >  > > > > > type
> > >  > > > > > > > mapping
> > >  > > > > > > > > > - and so on...
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> > >  > and
> > >  > > > > > would
> > >  > > > > > > > > > like to narrow scope in order to do that.  I think we're
> > >  > almost
> > >  > > > > > ready
> > >  > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > >  > annotated
> > >  > > > > > Axis
> > >  > > > > > > > > > web service shortly.
> > >  > > > > > > > > >
> > >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> > >  > > > > > > > > >
> > >  > > > > > > > > > Eddie
> > >  > > > > > > > > >
> > >  > > > > > > > >
> > >  > > > > > > > >
> > >  > > > > > > > > --
> > >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > >  > > > > > > > >
> > >  > > > > > > >
> > >  > > > > > >
> > >  > > > > > >
> > >  > > > > >
> > >  > > > > >
> > >  > > > > > --
> > >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > >  > > > > >
> > >  > > > >
> > >  > > > >
> > >  > > >
> > >  > > >
> > >  > > > --
> > >  > > > Davanum Srinivas : http://wso2.com/blogs/
> > >  > > >
> > >  > > >
> > >  > ---------------------------------------------------------------------
> > >  > > > To unsubscribe, e-mail:
> > >  > axis-dev-unsubscribe@ws.apache.org
> > >  > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >  > > >
> > >  > > >
> > >  > >
> > >  > >
> > >  >
> > >  >
> > >
> > >
> > >  --
> > >  Davanum Srinivas : http://wso2.com/blogs/
> > >
> > >  ---------------------------------------------------------------------
> > >  To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> > >
> >
> >
>
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Eddie,

As i was telling Rajith, we'd like to try annogen based runtime
annotation processing to start with.

-- dims

On 6/21/06, Eddie O'Neil <ek...@gmail.com> wrote:
>
> Nicholas --
>
>   Basically, yes.  :)  WSM will handle the complexity around the specification's details regarding the @WebService annotation, SEIs, and WSDL binding.  There's code living here:
>
>      http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java
>
> that implements most of this (there are a few holes...).  The annotation processor walks an @WebService annotated class / interface and produces a model that describes the service (WsmService).  This POJO can then be used for code generation, to update deployment descriptors, or for auto-wiring of a web service in the VM at runtime.  The latter is how this works for Axis1.
>
>   Currently, WSM is implemented to use Java 5's Mirror infrastructure in order to execute annotation processing at build time.  We have a layer that basically duplicates the Mirror APIs and wraps them so that it's possible to support XDoclet / annogen / asm, so it should be possible to support either  1.5 or 1.4 and annotation processing at buildtime or at runtime.  Certainly open to other suggestions if you have them -- if we moved away from Mirror altogether, there would be some work to do to rewrite some things, but it wouldn't be rocket science.  :)
>
>
> Eddie
>
>
>
>
> On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
> >
> >
> > Rajith,
> >
> > From a JAX-WS perspective, the @WebService annotation does introduce some challenges when it comes to determining what the interface of a Web service will be.  From my interpretation, which is just that, it doesn't dictate as much how the annotation should be handled at runtime as much as it does instruct how the annotation affects the Java to WSDL mapping.  I think the assumption after that is, the system will then do whatever it needs to configure itself to fulfill the contract defined by that WSDL.  If I understand correctly what Dim's has proposed, this is the piece that your WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the information gets relayed to Axis2 correctly.
> >
> > With respect to just the @WebService annotation, and not the annotations processing as a whole, it seems like you might encounter a few scenarios that could be tricky.  I don't know enough about the specifics of WSM though, so it may resolve some of the headaches for you.
> >
> > - When a class is annotated with @WebService, any of the public methods available on that class are to be exposed as an operation in a Web service.  If that particular annotation instance has the WSDL document location specified, then we need to do some bit of processing/validation to make sure the public methods support what's defined in the WSDL.  Or.... does WSM just do that for you?
> >
> > - Because of the "serviceEnpdointInterface" property on the @WebService annotation, the above case becomes a little more complex.  JAX-WS has a notion of squashing that SEI, along with the public methods on any other interface that the SEI may extend into one giant interface, which should then be reflected in the WSDL.  Again, I don't know enough about WSM, but this might be something it handles for you.  If not, it seems like you will be required to walk the annotations and collect the metadata from every interface that's extended?
> >
> > I'm glad to see you'll be working on this.  As mentioned before, I think there is some commonality that can be leveraged when it comes to JAX-WS as well.  A few questions though about the annotations support for Axis2 endpoints (I know you're just getting started with this so I understand if some of this is longer term) :
> >
> > - When annotations are added to a class, are you still requiring the presence of a services.xml?  If so, what's the minimum set of information required in that document?  I.e., could I get away with annotating a class and just specifying that ServiceClass property in XML file?  I can see still needing the deployment descriptor for specifying module refs, but would it be able to have just that and not the operation descriptions.  Just a thought.
> >
> > - If annotations are supported for Axis2/ADB endpoints, how would we distinguish those from JAX-WS endpoints?
> >
> > Hope this helps...
> >
> > Regards,
> >
> > Nicholas Gallardo
> >  WebSphere  -  WebServices Development
> >  nlgallar@us.ibm.com
> >  Phone: 512-838-1182
> >  Building: 901 / 5G-016
> >
> >
> >
> >
> > "Rajith Attapattu" <ra...@gmail.com>
> >
> >
> > 06/19/2006 09:35 PM
> >
> > Please respond to
> >  axis-dev@ws.apache.org
> >
> >
> > To axis-dev@ws.apache.org,  dims@apache.org
> >
> > cc
> >
> >
> > Subject Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> >
> >
> >
> >
> >
> >
> >
> >
> > Dims,
> >
> >  Sounds good.
> >
> >  So it looks like the @WebService tag is not really useful as we explicitly name the class in the services.xml
> >  So from Axis2 side we are covered
> >
> >  However I am wondering if there is some requirment from the JAX-WS side as to how we should leverage this @WebService annotation.
> >  wondering if the spec mandates some sort of stratergy for this. (I read the spec and couldn't find anything)
> >
> >  For now lets go ahead with what we planned (with a message receiver) and worry about @WebService thing when we figure out the exact requirment.
> >
> >  Regards,
> >
> >  Rajith.
> >
> > On 6/19/06, Davanum Srinivas <davanum@gmail.com > wrote:
> > Rajith,
> >
> >  In the short term, We have RPCMessageReceiver,
> >  SpringRPCMessageReceiver etc. we could throw in a quick
> >  WSMRPCMessageReceiver as well. So we will have to look at the class
> >  name specified in the services.xml just like we do for other
> >  receivers.
> >
> >  -- dims
> >
> >  On 6/19/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> >  > Hi Dims
> >  >
> >  > One more question if you don't mind :-)
> >  >
> >  > What is the plan to figure out a class marked with @WebService?
> >  >
> >  > a) are we going to look through a particular location to introspect any
> >  > class files droped there ?
> >  > b) is the user responsible for adding the service via some API method ? for
> >  > ex: AxisService.createService(String className) ?
> >  >
> >  > The rest we can introspect once we get the class identified. But I am
> >  > wondering how is the initial step of figuring out the marked (annotated
> >  > class) class with the @WebService tag.
> >  >
> >  > Sorry for the long list of questions.
> >  >
> >  > Regards,
> >  >
> >  > Rajith
> >  >
> >  >
> >  > On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> >  > >
> >  > > Hi Dims,
> >  > >
> >  > > Sorry if this question sounds stupid, but there is something that I don't
> >  > get.
> >  > > Can you explain any gaps that I have? :-)
> >  > >
> >  > > So we use WSM to get the jsr181 support.
> >  > > But, It looks like wsm is not complete in terms of the POJO aspect as the
> >  > reflection based ReflectionWsmServiceFactory is not done.
> >  > >
> >  > > I guess part of the job is to complete the wsm stuff and then use it
> >  > inside axis2. Or did I get this wrong?
> >  > >
> >  > >
> >  > > >> Forgot to mention, please use annogen ( http://annogen.codehaus.org/  )
> >  > to access the annotations which are needed to build the WsmService
> >  > >
> >  > > So are we going to do the implementation of ReflectionWsmServiceFactory
> >  > inside Axis2?
> >  > >
> >  > > I thought we are going to complete that inside wsm and then implement
> >  > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> >  > WSMService thats produced via the ReflectionWsmServiceFactory.
> >  > >
> >  > > Did I miss something?
> >  > >
> >  > > Thanks,
> >  > >
> >  > >
> >  > > Rajith
> >  > >
> >  > >
> >  > > On 6/13/06, Davanum Srinivas < davanum@gmail.com > wrote:
> >  > > > Let's keep this to axis-dev@ until we need some questions answered
> >  > > > from beehive folks. Forgot to mention, please use annogen
> >  > > > ( http://annogen.codehaus.org/) to access the annotations which are
> >  > > > needed to build the WsmService. We explicitly took a dependency on
> >  > > > annogen in Axis2 for this purpose.
> >  > > >
> >  > > > thanks,
> >  > > > -- dims
> >  > > >
> >  > > > On 6/13/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> >  > > > > Hi Dims,
> >  > > > >
> >  > > > > Thanks for the pointers.
> >  > > > > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> >  > > > > after that I can start with WSMToAxisServiceBuilder to build an
> >  > AxisService
> >  > > > > out of an anotated POJO.
> >  > > > > Once I have something I will create a JIRA and attach a patch. U can
> >  > take a
> >  > > > > look at the code and then we can take it from there.
> >  > > > > If I have questions I will bug u again :-)
> >  > > > >
> >  > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> >  > wondering how
> >  > > > > to get WSM specific questions answered :-)
> >  > > > >
> >  > > > > Regards,
> >  > > > >
> >  > > > > Rajith
> >  > > > >
> >  > > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> >  > > > > >
> >  > > > > > Rajith,
> >  > > > > >
> >  > > > > > I think you need to implement ReflectionWsmServiceFactory first. The
> >  > > > > > angle of attack i am looking at is deploying a POJO with
> >  > annotations.
> >  > > > > > (See AxisService.createService in Axis2 where one can deploy a
> >  > pojo).
> >  > > > > > You will have to write a WSMToAxisServiceBuilder (see
> >  > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from
> >  > WSM.
> >  > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> >  > > > > >
> >  > > > > > thanks,
> >  > > > > > dims
> >  > > > > >
> >  > > > > > On 6/5/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> >  > > > > > > Hi Dims & Eddie,
> >  > > > > > >
> >  > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> >  > WsmService?
> >  > > > > > > Any pointers will be helpful.
> >  > > > > > >
> >  > > > > > > I am going through the wiki and JSR documentation and will get
> >  > back with
> >  > > > > > > questions.
> >  > > > > > > Meanwhile do we have that seperate jar that bundles all the
> >  > relevent
> >  > > > > > classes
> >  > > > > > > for the annotations support?
> >  > > > > > >
> >  > > > > > > Regards,
> >  > > > > > >
> >  > > > > > > Rajith
> >  > > > > > >
> >  > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> >  > > > > > > >
> >  > > > > > > > Dims--
> >  > > > > > > >
> >  > > > > > > >   Hey; apologies for the delay.  That's basically right -- there
> >  > is
> >  > > > > > > > actually one other step in the annotation processing pipeline
> >  > which is
> >  > > > > > > > verifying the validity of any annotations on the class.  So, it
> >  > would
> >  > > > > > > > be:
> >  > > > > > > >
> >  > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> >  > building
> >  > > > > > > > (MirrorWsmBuilder)
> >  > > > > > > >
> >  > > > > > > > which returns a WsmService object that can be wired up into
> >  > axis2
> >  > > > > > stuff.
> >  > > > > > > >
> >  > > > > > > >   I can certainly break the Axis 1.x stuff into a separate JAR;
> >  > my
> >  > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> >  > same JAR
> >  > > > > > > > file, but if this is a problem, let me know and I can make three
> >  > JARs
> >  > > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> >  > > > > > > >
> >  > > > > > > >   There is one important part of this that isn't done yet, and
> >  > that's
> >  > > > > > > > to provide something that can be used inside of a server runtime
> >  > that
> >  > > > > > > > abstracts from Sun's Mirror types which are used inside of APT.
> >  > Not
> >  > > > > > > > exactly sure what this looks like yet -- could be reflection or
> >  > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> >  > inside of
> >  > > > > > > > APT).
> >  > > > > > > >
> >  > > > > > > >   Do you want to run this from inside of the Axis2 runtime or at
> >  > > > > > > > build-time on the command line?  I'm assuming the former.
> >  > > > > > > >
> >  > > > > > > > Eddie
> >  > > > > > > >
> >  > > > > > > >
> >  > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com > wrote:
> >  > > > > > > > > Eddie,
> >  > > > > > > > >
> >  > > > > > > > > i was looking at the current codebase and spotted the
> >  > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect
> >  > a
> >  > > > > > given
> >  > > > > > > > > java class? and one the WsmService object is built, then
> >  > translate
> >  > > > > > > > > that to Axis2 thingies? Can we split out the processing
> >  > framework
> >  > > > > > into
> >  > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> >  > right
> >  > > > > > track
> >  > > > > > > > > with this thinking?
> >  > > > > > > > >
> >  > > > > > > > > thanks,
> >  > > > > > > > > dims
> >  > > > > > > > >
> >  > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com > wrote:
> >  > > > > > > > > > All--
> >  > > > > > > > > >
> >  > > > > > > > > >   Happy New Year!  And, as a way to start the year off on a
> >  > good
> >  > > > > > foot,
> >  > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get
> >  > from
> >  > > > > > here to
> >  > > > > > > > > > there with some details about where we are and what needs to
> >  > > > > > happen.
> >  > > > > > > > > >
> >  > > > > > > > > >   Today, there are two core WSM parts, both of which are
> >  > tailored
> >  > > > > > to
> >  > > > > > > > > > the Axis web service stack:
> >  > > > > > > > > >
> >  > > > > > > > > >   build-time: This is a generic annotation processing layer
> >  > that
> >  > > > > > has
> >  > > > > > > > > > the ability to work against Mirror, reflection, and WSDL to
> >  > > > > > produce a
> >  > > > > > > > > > WSM JavaBean model that represents a web service.  The
> >  > build-time
> >  > > > > > > > > > layer has a plug-point for generating source artifacts to
> >  > support
> >  > > > > > > > > > various web service runtimes.  For example, the Axis
> >  > > > > > implementation
> >  > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> >  > This
> >  > > > > > could
> >  > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> >  > artifacts,
> >  > > > > > etc.
> >  > > > > > > > > >
> >  > > > > > > > > >   runtime: The runtime side of WSM is specifically built to
> >  > > > > > support
> >  > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> >  > model
> >  > > > > > > > > > generated at build time and uses an Axis Handler to
> >  > configure a
> >  > > > > > > > > > SOAPService given this information.
> >  > > > > > > > > >
> >  > > > > > > > > >   There is another large bunch of code in WSM related to
> >  > tools:
> >  > > > > > > > > >
> >  > > > > > > > > > wsdl2ajava -- this tool supports the top-down web service
> >  > > > > > development
> >  > > > > > > > > > model and starts with a WSDL to produce an annotated Java
> >  > source
> >  > > > > > file.
> >  > > > > > > > > >  This tool requires significant knowledge of WSDL and type
> >  > mapping
> >  > > > > > for
> >  > > > > > > > > > a specific web service stack.  For example, the mapping for
> >  > an XSD
> >  > > > > > > > > > year is mapped to org.apache.axis.types.Year and something
> >  > > > > > different
> >  > > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> >  > bunch of
> >  > > > > > code
> >  > > > > > > > > > to write, but is also a very useful tool.
> >  > > > > > > > > >
> >  > > > > > > > > >   In order to finish WSM, one more re-architecting step
> >  > needs to
> >  > > > > > be
> >  > > > > > > > > > completed; I'd like to remove the use of a serialized Java
> >  > object
> >  > > > > > as
> >  > > > > > > > > > the way to communicate from the build-time to runtime parts
> >  > of the
> >  > > > > > > > > > implementation.  This would be replaced with a WSDD like,
> >  > but WSM
> >  > > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> >  > be
> >  > > > > > used
> >  > > > > > > > > > for this because too closely matches the shape of a Java
> >  > class
> >  > > > > > (Dims
> >  > > > > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> >  > need a
> >  > > > > > > > > > simple XML file that describes the information captured in a
> >  > > > > > > > > > WsmService.
> >  > > > > > > > > >
> >  > > > > > > > > >   Once this is done, we can start work on passing the
> >  > JSR-181 TCK.
> >  > > > > > > > > > This will be done atop Apache Axis 1.x.
> >  > > > > > > > > >
> >  > > > > > > > > >   In order to expedite the process of getting from here to
> >  > TCK
> >  > > > > > > > > > compliance, I'd like to suggest that we stop stop work on
> >  > the
> >  > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> >  > restart
> >  > > > > > this
> >  > > > > > > > > > tool immediately post-1.0.
> >  > > > > > > > > >
> >  > > > > > > > > >   Post 1.0, there are lots of other things that we could do
> >  > > > > > including:
> >  > > > > > > > > >
> >  > > > > > > > > > - JDK 1.4 support
> >  > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> >  > > > > > developing an
> >  > > > > > > > > > annotated web service
> >  > > > > > > > > > - JAX-RPC support (Ias, still have any interest in working
> >  > on
> >  > > > > > this?)
> >  > > > > > > > > > - custom annotations to support container-specific features
> >  > like
> >  > > > > > type
> >  > > > > > > > mapping
> >  > > > > > > > > > - and so on...
> >  > > > > > > > > >
> >  > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> >  > and
> >  > > > > > would
> >  > > > > > > > > > like to narrow scope in order to do that.  I think we're
> >  > almost
> >  > > > > > ready
> >  > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> >  > annotated
> >  > > > > > Axis
> >  > > > > > > > > > web service shortly.
> >  > > > > > > > > >
> >  > > > > > > > > >   Thoughts, comments, and flames welcome.
> >  > > > > > > > > >
> >  > > > > > > > > > Eddie
> >  > > > > > > > > >
> >  > > > > > > > >
> >  > > > > > > > >
> >  > > > > > > > > --
> >  > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> >  > > > > > > > >
> >  > > > > > > >
> >  > > > > > >
> >  > > > > > >
> >  > > > > >
> >  > > > > >
> >  > > > > > --
> >  > > > > > Davanum Srinivas : http://wso2.com/blogs/
> >  > > > > >
> >  > > > >
> >  > > > >
> >  > > >
> >  > > >
> >  > > > --
> >  > > > Davanum Srinivas : http://wso2.com/blogs/
> >  > > >
> >  > > >
> >  > ---------------------------------------------------------------------
> >  > > > To unsubscribe, e-mail:
> >  > axis-dev-unsubscribe@ws.apache.org
> >  > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >  > > >
> >  > > >
> >  > >
> >  > >
> >  >
> >  >
> >
> >
> >  --
> >  Davanum Srinivas : http://wso2.com/blogs/
> >
> >  ---------------------------------------------------------------------
> >  To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> >  For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
> >
>
>



-- 
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
Nicholas --

  Basically, yes.  :)  WSM will handle the complexity around the
specification's details regarding the @WebService annotation, SEIs, and WSDL
binding.  There's code living here:


http://svn.apache.org/repos/asf/beehive/wsm/trunk/src/core/org/apache/beehive/wsm/processor/checker/Jsr181AnnotationChecker.java

that implements most of this (there are a few holes...).  The annotation
processor walks an @WebService annotated class / interface and produces a
model that describes the service (WsmService).  This POJO can then be used
for code generation, to update deployment descriptors, or for auto-wiring of
a web service in the VM at runtime.  The latter is how this works for
Axis1.

  Currently, WSM is implemented to use Java 5's Mirror infrastructure in
order to execute annotation processing at build time.  We have a layer that
basically duplicates the Mirror APIs and wraps them so that it's possible to
support XDoclet / annogen / asm, so it should be possible to support either
1.5 or 1.4 and annotation processing at buildtime or at runtime.  Certainly
open to other suggestions if you have them -- if we moved away from Mirror
altogether, there would be some work to do to rewrite some things, but it
wouldn't be rocket science.  :)

Eddie


On 6/19/06, Nicholas L Gallardo <nl...@us.ibm.com> wrote:
>
>
> Rajith,
>
> From a JAX-WS perspective, the @WebService annotation does introduce some
> challenges when it comes to determining what the interface of a Web service
> will be.  From my interpretation, which is just that, it doesn't dictate as
> much how the annotation should be handled at runtime as much as it does
> instruct how the annotation affects the Java to WSDL mapping.  I think the
> assumption after that is, the system will then do whatever it needs to
> configure itself to fulfill the contract defined by that WSDL.  If I
> understand correctly what Dim's has proposed, this is the piece that your
> WSMToAxisServiceBuilder will fulfill.  The rest is making sure that the
> information gets relayed to Axis2 correctly.
>
> With respect to just the @WebService annotation, and not the annotations
> processing as a whole, it seems like you might encounter a few scenarios
> that could be tricky.  I don't know enough about the specifics of WSM
> though, so it may resolve some of the headaches for you.
>
> - When a class is annotated with @WebService, any of the public methods
> available on that class are to be exposed as an operation in a Web service.
>  If that particular annotation instance has the WSDL document location
> specified, then we need to do some bit of processing/validation to make sure
> the public methods support what's defined in the WSDL.  Or.... does WSM just
> do that for you?
>
> - Because of the "serviceEnpdointInterface" property on the @WebService
> annotation, the above case becomes a little more complex.  JAX-WS has a
> notion of squashing that SEI, along with the public methods on any other
> interface that the SEI may extend into one giant interface, which should
> then be reflected in the WSDL.  Again, I don't know enough about WSM, but
> this might be something it handles for you.  If not, it seems like you will
> be required to walk the annotations and collect the metadata from every
> interface that's extended?
>
> I'm glad to see you'll be working on this.  As mentioned before, I think
> there is some commonality that can be leveraged when it comes to JAX-WS as
> well.  A few questions though about the annotations support for Axis2
> endpoints (I know you're just getting started with this so I understand if
> some of this is longer term) :
>
> - When annotations are added to a class, are you still requiring the
> presence of a services.xml?  If so, what's the minimum set of information
> required in that document?  I.e., could I get away with annotating a class
> and just specifying that ServiceClass property in XML file?  I can see still
> needing the deployment descriptor for specifying module refs, but would it
> be able to have just that and not the operation descriptions.  Just a
> thought.
>
> - If annotations are supported for Axis2/ADB endpoints, how would we
> distinguish those from JAX-WS endpoints?
>
> Hope this helps...
>
> Regards,
>
> Nicholas Gallardo
> WebSphere  -  WebServices Development
> nlgallar@us.ibm.com
> Phone: 512-838-1182
> Building: 901 / 5G-016
>
>
>  *"Rajith Attapattu" <ra...@gmail.com>*
>
> 06/19/2006 09:35 PM  Please respond to
> axis-dev@ws.apache.org
>
>   To
> axis-dev@ws.apache.org, dims@apache.org  cc
>
>  Subject
> Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
>
>
>
>
>
>
> Dims,
>
> Sounds good.
>
> So it looks like the @WebService tag is not really useful as we explicitly
> name the class in the services.xml
> So from Axis2 side we are covered
>
> However I am wondering if there is some requirment from the JAX-WS side as
> to how we should leverage this @WebService annotation.
> wondering if the spec mandates some sort of stratergy for this. (I read
> the spec and couldn't find anything)
>
> For now lets go ahead with what we planned (with a message receiver) and
> worry about @WebService thing when we figure out the exact requirment.
>
> Regards,
>
> Rajith.
>
> On 6/19/06, *Davanum Srinivas* <*davanum@gmail.com* <da...@gmail.com>>
> wrote:
> Rajith,
>
> In the short term, We have RPCMessageReceiver,
> SpringRPCMessageReceiver etc. we could throw in a quick
> WSMRPCMessageReceiver as well. So we will have to look at the class
> name specified in the services.xml just like we do for other
> receivers.
>
> -- dims
>
> On 6/19/06, Rajith Attapattu <*rajith77@gmail.com* <ra...@gmail.com>>
> wrote:
> > Hi Dims
> >
> > One more question if you don't mind :-)
> >
> > What is the plan to figure out a class marked with @WebService?
> >
> > a) are we going to look through a particular location to introspect any
> > class files droped there ?
> > b) is the user responsible for adding the service via some API method ?
> for
> > ex: AxisService.createService(String className) ?
> >
> > The rest we can introspect once we get the class identified. But I am
> > wondering how is the initial step of figuring out the marked (annotated
> > class) class with the @WebService tag.
> >
> > Sorry for the long list of questions.
> >
> > Regards,
> >
> > Rajith
> >
> >
> > On 6/16/06, Rajith Attapattu <* rajith77@gmail.com* <ra...@gmail.com>> wrote:
> > >
> > > Hi Dims,
> > >
> > > Sorry if this question sounds stupid, but there is something that I
> don't
> > get.
> > > Can you explain any gaps that I have? :-)
> > >
> > > So we use WSM to get the jsr181 support.
> > > But, It looks like wsm is not complete in terms of the POJO aspect as
> the
> > reflection based ReflectionWsmServiceFactory is not done.
> > >
> > > I guess part of the job is to complete the wsm stuff and then use it
> > inside axis2. Or did I get this wrong?
> > >
> > >
> > > >> Forgot to mention, please use annogen ( *
> http://annogen.codehaus.org/* <http://annogen.codehaus.org/> )
> > to access the annotations which are needed to build the WsmService
> > >
> > > So are we going to do the implementation of
> ReflectionWsmServiceFactory
> > inside Axis2?
> > >
> > > I thought we are going to complete that inside wsm and then implement
> > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > WSMService thats produced via the ReflectionWsmServiceFactory.
> > >
> > > Did I miss something?
> > >
> > > Thanks,
> > >
> > >
> > > Rajith
> > >
> > >
> > > On 6/13/06, Davanum Srinivas < *davanum@gmail.com* <da...@gmail.com>>
> wrote:
> > > > Let's keep this to axis-dev@ until we need some questions answered
> > > > from beehive folks. Forgot to mention, please use annogen
> > > > (* http://annogen.codehaus.org/* <http://annogen.codehaus.org/>) to
> access the annotations which are
> > > > needed to build the WsmService. We explicitly took a dependency on
> > > > annogen in Axis2 for this purpose.
> > > >
> > > > thanks,
> > > > -- dims
> > > >
> > > > On 6/13/06, Rajith Attapattu <*r...@gmail.com>>
> wrote:
> > > > > Hi Dims,
> > > > >
> > > > > Thanks for the pointers.
> > > > > Let me look at how to get the ReflectionWsmServiceFactory impl
> going.
> > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > AxisService
> > > > > out of an anotated POJO.
> > > > > Once I have something I will create a JIRA and attach a patch. U
> can
> > take a
> > > > > look at the code and then we can take it from there.
> > > > > If I have questions I will bug u again :-)
> > > > >
> > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > wondering how
> > > > > to get WSM specific questions answered :-)
> > > > >
> > > > > Regards,
> > > > >
> > > > > Rajith
> > > > >
> > > > > On 6/13/06, Davanum Srinivas <* davanum@gmail.com*<da...@gmail.com>>
> wrote:
> > > > > >
> > > > > > Rajith,
> > > > > >
> > > > > > I think you need to implement ReflectionWsmServiceFactory first.
> The
> > > > > > angle of attack i am looking at is deploying a POJO with
> > annotations.
> > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > pojo).
> > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info
> from
> > WSM.
> > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > > >
> > > > > > thanks,
> > > > > > dims
> > > > > >
> > > > > > On 6/5/06, Rajith Attapattu <*r...@gmail.com>>
> wrote:
> > > > > > > Hi Dims & Eddie,
> > > > > > >
> > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > WsmService?
> > > > > > > Any pointers will be helpful.
> > > > > > >
> > > > > > > I am going through the wiki and JSR documentation and will get
> > back with
> > > > > > > questions.
> > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > relevent
> > > > > > classes
> > > > > > > for the annotations support?
> > > > > > >
> > > > > > > Regards,
> > > > > > >
> > > > > > > Rajith
> > > > > > >
> > > > > > > On 2/5/06, Eddie O'Neil < *ekoneil@gmail.com*<ek...@gmail.com>>
> wrote:
> > > > > > > >
> > > > > > > > Dims--
> > > > > > > >
> > > > > > > >   Hey; apologies for the delay.  That's basically right --
> there
> > is
> > > > > > > > actually one other step in the annotation processing
> pipeline
> > which is
> > > > > > > > verifying the validity of any annotations on the class.  So,
> it
> > would
> > > > > > > > be:
> > > > > > > >
> > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > building
> > > > > > > > (MirrorWsmBuilder)
> > > > > > > >
> > > > > > > > which returns a WsmService object that can be wired up into
> > axis2
> > > > > > stuff.
> > > > > > > >
> > > > > > > >   I can certainly break the Axis 1.x stuff into a separate
> JAR;
> > my
> > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > same JAR
> > > > > > > > file, but if this is a problem, let me know and I can make
> three
> > JARs
> > > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
>
> > > > > > > >
> > > > > > > >   There is one important part of this that isn't done yet,
> and
> > that's
> > > > > > > > to provide something that can be used inside of a server
> runtime
> > that
> > > > > > > > abstracts from Sun's Mirror types which are used inside of
> APT.
> > Not
> > > > > > > > exactly sure what this looks like yet -- could be reflection
> or
> > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > inside of
> > > > > > > > APT).
> > > > > > > >
> > > > > > > >   Do you want to run this from inside of the Axis2 runtime
> or at
> > > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > > >
> > > > > > > > Eddie
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2/1/06, Davanum Srinivas < *davanum@gmail.com*<da...@gmail.com>>
> wrote:
> > > > > > > > > Eddie,
> > > > > > > > >
> > > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to
> inspect
> > a
> > > > > > given
> > > > > > > > > java class? and one the WsmService object is built, then
> > translate
> > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > framework
> > > > > > into
> > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > right
> > > > > > track
> > > > > > > > > with this thinking?
> > > > > > > > >
> > > > > > > > > thanks,
> > > > > > > > > dims
> > > > > > > > >
> > > > > > > > > On 1/3/06, Eddie O'Neil < *ekoneil@gmail.com*<ek...@gmail.com>>
> wrote:
> > > > > > > > > > All--
> > > > > > > > > >
> > > > > > > > > >   Happy New Year!  And, as a way to start the year off
> on a
> > good
> > > > > > foot,
> > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we
> get
> > from
> > > > > > here to
> > > > > > > > > > there with some details about where we are and what
> needs to
> > > > > > happen.
> > > > > > > > > >
> > > > > > > > > >   Today, there are two core WSM parts, both of which are
> > tailored
> > > > > > to
> > > > > > > > > > the Axis web service stack:
> > > > > > > > > >
> > > > > > > > > >   build-time: This is a generic annotation processing
> layer
> > that
> > > > > > has
> > > > > > > > > > the ability to work against Mirror, reflection, and WSDL
> to
> > > > > > produce a
> > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > build-time
> > > > > > > > > > layer has a plug-point for generating source artifacts
> to
> > support
> > > > > > > > > > various web service runtimes.  For example, the Axis
> > > > > > implementation
> > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> > This
> > > > > > could
> > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > artifacts,
> > > > > > etc.
> > > > > > > > > >
> > > > > > > > > >   runtime: The runtime side of WSM is specifically built
> to
> > > > > > support
> > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > model
> > > > > > > > > > generated at build time and uses an Axis Handler to
> > configure a
> > > > > > > > > > SOAPService given this information.
> > > > > > > > > >
> > > > > > > > > >   There is another large bunch of code in WSM related to
>
> > tools:
> > > > > > > > > >
> > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
> service
> > > > > > development
> > > > > > > > > > model and starts with a WSDL to produce an annotated
> Java
> > source
> > > > > > file.
> > > > > > > > > >  This tool requires significant knowledge of WSDL and
> type
> > mapping
> > > > > > for
> > > > > > > > > > a specific web service stack.  For example, the mapping
> for
> > an XSD
> > > > > > > > > > year is mapped to org.apache.axis.types.Year and
> something
> > > > > > different
> > > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
>
> > bunch of
> > > > > > code
> > > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > > >
> > > > > > > > > >   In order to finish WSM, one more re-architecting step
> > needs to
> > > > > > be
> > > > > > > > > > completed; I'd like to remove the use of a serialized
> Java
> > object
> > > > > > as
> > > > > > > > > > the way to communicate from the build-time to runtime
> parts
> > of the
> > > > > > > > > > implementation.  This would be replaced with a WSDD
> like,
> > but WSM
> > > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD
> can't
> > be
> > > > > > used
> > > > > > > > > > for this because too closely matches the shape of a Java
> > class
> > > > > > (Dims
> > > > > > > > > > and others, feel free to correct me if I'm wrong).  So,
> we
> > need a
> > > > > > > > > > simple XML file that describes the information captured
> in a
> > > > > > > > > > WsmService.
> > > > > > > > > >
> > > > > > > > > >   Once this is done, we can start work on passing the
> > JSR-181 TCK.
> > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > > >
> > > > > > > > > >   In order to expedite the process of getting from here
> to
> > TCK
> > > > > > > > > > compliance, I'd like to suggest that we stop stop work
> on
> > the
> > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > restart
> > > > > > this
> > > > > > > > > > tool immediately post-1.0.
> > > > > > > > > >
> > > > > > > > > >   Post 1.0, there are lots of other things that we could
> do
> > > > > > including:
> > > > > > > > > >
> > > > > > > > > > - JDK 1.4 support
> > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > > > developing an
> > > > > > > > > > annotated web service
> > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
> working
> > on
> > > > > > this?)
> > > > > > > > > > - custom annotations to support container-specific
> features
> > like
> > > > > > type
> > > > > > > > mapping
> > > > > > > > > > - and so on...
> > > > > > > > > >
> > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0done
> > and
> > > > > > would
> > > > > > > > > > like to narrow scope in order to do that.  I think we're
> > almost
> > > > > > ready
> > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > annotated
> > > > > > Axis
> > > > > > > > > > web service shortly.
> > > > > > > > > >
> > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > > > >
> > > > > > > > > > Eddie
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Davanum Srinivas : *http://wso2.com/blogs/*<http://wso2.com/blogs/>
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : *http://wso2.com/blogs/*<http://wso2.com/blogs/>
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : *http://wso2.com/blogs/* <http://wso2.com/blogs/>
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > *axis-dev-unsubscribe@ws.apache.org*<ax...@ws.apache.org>
> > > > For additional commands, e-mail: *axis-dev-help@ws.apache.org*<ax...@ws.apache.org>
> > > >
> > > >
> > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : *http://wso2.com/blogs/* <http://wso2.com/blogs/>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: *axis-dev-unsubscribe@ws.apache.org*<ax...@ws.apache.org>
> For additional commands, e-mail: *axis-dev-help@ws.apache.org*<ax...@ws.apache.org>
>
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
  Catching up on this thread...

  Dennis, sorry -- I led Rajith down the wrong path.  I thought we'd
used a Mirror API call in Beehive to retrieve all of the declarations
that had an annotation of some type.  Seems I remembered incorrectly.
:)  I'm not super famliar with Axis2 and don't know the service
discovery model, but if it requires registration in services.xml, we
can certainly just wire-up a post processor for the annotation
processing step that could add entries there.

Eddie



On 6/20/06, Dennis Sosnoski <dm...@sosnoski.com> wrote:
> Hi Rajith,
>
> I'm not aware of any API call that gives you all the classes that are
> annotated with a particular tag - which one is this? It seems like it
> would only work with classes that have already been loaded into the JVM,
> though, so I'd think it would still be very difficult to use this to
> find the classes.
>
> AFAIK Annogen only supports retrieving information from Java 5
> annotations when you're running on Java 5, and even then only for
> specific classes when they're loaded into the JVM. That's why I thought
> scanning the classes with ASM to check for the annotations would be a
> better approach.
>
>   - Dennis
>
> Rajith Attapattu wrote:
> > Nicholas and Dennis,
> >
> > I got to know that in java 1.5 there is an API call where u can get
> > all the classes that are annotated with a particular tag.
> > So in java 1.5 we could request all classes in our path that are
> > annotated with @WebService and then take it from there.
> >
> > But how about 1.4? does annogen do something simmillar. Not very
> > familliar with annogen.
> >
> > I agree with Dennis about trying not to use a services.xml if we can
> > for the annotated approach.
> > Or else it kind of defeats the whole purpose of using annotations.
> >
> > The users should be able to drop a jar file in the class path and then
> > Axis2 should be able to build a service completely out of the annotations.
> >
> > Nicholas, I will answer your other questions after I go to work.
> >
> > Thanks,
> >
> > Rajith
> >
> > On 6/20/06, *Dennis Sosnoski* < dms@sosnoski.com
> > <ma...@sosnoski.com>> wrote:
> >
> >     Probably the nicest approach from an end user standpoint would be to
> >     allow JAX-WS annotations to be used without a services.xml. If Axis2
> >     opened an aar and didn't find a services.xml it would then need to
> >     search for class files with annotations, which basically means
> >     parsing
> >     all the class files in the archive (not loading them into memory, but
> >     using a class parser such as ASM). Ugly, but it should work.
> >
> >     The other alternative would be to require a services.xml and list the
> >     classes in that. You'd then only need to look at the listed
> >     classes, and
> >     could probably just load these classes and use the reflection API to
> >     access the annotation information. A little more work for the
> >     user, but
> >     should be okay. If someone wants to they could build a wizard that
> >     takes
> >     care of the aar generation and automatically includes all the
> >     annotated
> >     service classes in the services.xml.
> >
> >       - Dennis
> >
> >     Nicholas L Gallardo wrote:
> >     >
> >     > Rajith,
> >     >
> >     > From a JAX-WS perspective, the @WebService annotation does
> >     introduce
> >     > some challenges when it comes to determining what the interface of a
> >     > Web service will be.  From my interpretation, which is just that, it
> >     > doesn't dictate as much how the annotation should be handled at
> >     > runtime as much as it does instruct how the annotation affects the
> >     > Java to WSDL mapping.  I think the assumption after that is, the
> >     > system will then do whatever it needs to configure itself to
> >     fulfill
> >     > the contract defined by that WSDL.  If I understand correctly what
> >     > Dim's has proposed, this is the piece that your
> >     > WSMToAxisServiceBuilder will fulfill.  The rest is making sure that
> >     > the information gets relayed to Axis2 correctly.
> >     >
> >     > With respect to just the @WebService annotation, and not the
> >     > annotations processing as a whole, it seems like you might
> >     encounter a
> >     > few scenarios that could be tricky.  I don't know enough about the
> >     > specifics of WSM though, so it may resolve some of the headaches
> >     for you.
> >     >
> >     > - When a class is annotated with @WebService, any of the public
> >     > methods available on that class are to be exposed as an
> >     operation in a
> >     > Web service.  If that particular annotation instance has the WSDL
> >     > document location specified, then we need to do some bit of
> >     > processing/validation to make sure the public methods support what's
> >     > defined in the WSDL.  Or.... does WSM just do that for you?
> >     >
> >     > - Because of the "serviceEnpdointInterface" property on the
> >     > @WebService annotation, the above case becomes a little more
> >     complex.
> >     >  JAX-WS has a notion of squashing that SEI, along with the public
> >     > methods on any other interface that the SEI may extend into one
> >     giant
> >     > interface, which should then be reflected in the WSDL.  Again, I
> >     don't
> >     > know enough about WSM, but this might be something it handles
> >     for you.
> >     >  If not, it seems like you will be required to walk the annotations
> >     > and collect the metadata from every interface that's extended?
> >     >
> >     > I'm glad to see you'll be working on this.  As mentioned before, I
> >     > think there is some commonality that can be leveraged when it
> >     comes to
> >     > JAX-WS as well.  A few questions though about the annotations
> >     support
> >     > for Axis2 endpoints (I know you're just getting started with
> >     this so I
> >     > understand if some of this is longer term) :
> >     >
> >     > - When annotations are added to a class, are you still requiring the
> >     > presence of a services.xml?  If so, what's the minimum set of
> >     > information required in that document?  I.e., could I get away with
> >     > annotating a class and just specifying that ServiceClass property in
> >     > XML file?  I can see still needing the deployment descriptor for
> >     > specifying module refs, but would it be able to have just that
> >     and not
> >     > the operation descriptions.  Just a thought.
> >     >
> >     > - If annotations are supported for Axis2/ADB endpoints, how
> >     would we
> >     > distinguish those from JAX-WS endpoints?
> >     >
> >     > Hope this helps...
> >     >
> >     > Regards,
> >     >
> >     > Nicholas Gallardo
> >     > WebSphere  -  WebServices Development
> >     > nlgallar@us.ibm.com <ma...@us.ibm.com>
> >     > Phone: 512-838-1182
> >     > Building: 901 / 5G-016
> >     >
> >     >
> >     > *"Rajith Attapattu" < rajith77@gmail.com
> >     <ma...@gmail.com>>*
> >     >
> >     > 06/19/2006 09:35 PM
> >     > Please respond to
> >     > axis-dev@ws.apache.org <ma...@ws.apache.org>
> >     >
> >     >
> >     >
> >     > To
> >     >       axis-dev@ws.apache.org <ma...@ws.apache.org>,
> >     dims@apache.org <ma...@apache.org>
> >     > cc
> >     >
> >     > Subject
> >     >       Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     > Dims,
> >     >
> >     > Sounds good.
> >     >
> >     > So it looks like the @WebService tag is not really useful as we
> >     > explicitly name the class in the services.xml
> >     > So from Axis2 side we are covered
> >     >
> >     > However I am wondering if there is some requirment from the JAX-WS
> >     > side as to how we should leverage this @WebService annotation.
> >     > wondering if the spec mandates some sort of stratergy for this. (I
> >     > read the spec and couldn't find anything)
> >     >
> >     > For now lets go ahead with what we planned (with a message
> >     receiver)
> >     > and worry about @WebService thing when we figure out the exact
> >     > requirment.
> >     >
> >     > Regards,
> >     >
> >     > Rajith.
> >     >
> >     > On 6/19/06, *Davanum Srinivas* <_davanum@gmail.com_
> >     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
> >     > Rajith,
> >     >
> >     > In the short term, We have RPCMessageReceiver,
> >     > SpringRPCMessageReceiver etc. we could throw in a quick
> >     > WSMRPCMessageReceiver as well. So we will have to look at the class
> >     > name specified in the services.xml just like we do for other
> >     > receivers.
> >     >
> >     > -- dims
> >     >
> >     > On 6/19/06, Rajith Attapattu <_rajith77@gmail.com_
> >     > <mailto: rajith77@gmail.com <ma...@gmail.com>>> wrote:
> >     > > Hi Dims
> >     > >
> >     > > One more question if you don't mind :-)
> >     > >
> >     > > What is the plan to figure out a class marked with @WebService?
> >     > >
> >     > > a) are we going to look through a particular location to
> >     introspect any
> >     > > class files droped there ?
> >     > > b) is the user responsible for adding the service via some API
> >     > method ? for
> >     > > ex: AxisService.createService(String className) ?
> >     > >
> >     > > The rest we can introspect once we get the class identified.
> >     But I am
> >     > > wondering how is the initial step of figuring out the marked
> >     (annotated
> >     > > class) class with the @WebService tag.
> >     > >
> >     > > Sorry for the long list of questions.
> >     > >
> >     > > Regards,
> >     > >
> >     > > Rajith
> >     > >
> >     > >
> >     > > On 6/16/06, Rajith Attapattu <_ rajith77@gmail.com_
> >     > <mailto:rajith77@gmail.com <ma...@gmail.com>> > wrote:
> >     > > >
> >     > > > Hi Dims,
> >     > > >
> >     > > > Sorry if this question sounds stupid, but there is something
> >     that
> >     > I don't
> >     > > get.
> >     > > > Can you explain any gaps that I have? :-)
> >     > > >
> >     > > > So we use WSM to get the jsr181 support.
> >     > > > But, It looks like wsm is not complete in terms of the POJO
> >     aspect
> >     > as the
> >     > > reflection based ReflectionWsmServiceFactory is not done.
> >     > > >
> >     > > > I guess part of the job is to complete the wsm stuff and
> >     then use it
> >     > > inside axis2. Or did I get this wrong?
> >     > > >
> >     > > >
> >     > > > >> Forgot to mention, please use annogen (
> >     > _http://annogen.codehaus.org/_ )
> >     > > to access the annotations which are needed to build the
> >     WsmService
> >     > > >
> >     > > > So are we going to do the implementation of
> >     > ReflectionWsmServiceFactory
> >     > > inside Axis2?
> >     > > >
> >     > > > I thought we are going to complete that inside wsm and then
> >     implement
> >     > > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> >     > > WSMService thats produced via the ReflectionWsmServiceFactory.
> >     > > >
> >     > > > Did I miss something?
> >     > > >
> >     > > > Thanks,
> >     > > >
> >     > > >
> >     > > > Rajith
> >     > > >
> >     > > >
> >     > > > On 6/13/06, Davanum Srinivas < _davanum@gmail.com_
> >     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
> >     > > > > Let's keep this to axis-dev@ until we need some questions
> >     answered
> >     > > > > from beehive folks. Forgot to mention, please use annogen
> >     > > > > (_ http://annogen.codehaus.org/_) to access the annotations
> >     > which are
> >     > > > > needed to build the WsmService. We explicitly took a
> >     dependency on
> >     > > > > annogen in Axis2 for this purpose.
> >     > > > >
> >     > > > > thanks,
> >     > > > > -- dims
> >     > > > >
> >     > > > > On 6/13/06, Rajith Attapattu <_rajith77@gmail.com_
> >     > <mailto: rajith77@gmail.com <ma...@gmail.com>>> wrote:
> >     > > > > > Hi Dims,
> >     > > > > >
> >     > > > > > Thanks for the pointers.
> >     > > > > > Let me look at how to get the
> >     ReflectionWsmServiceFactory impl
> >     > going.
> >     > > > > > after that I can start with WSMToAxisServiceBuilder to
> >     build an
> >     > > AxisService
> >     > > > > > out of an anotated POJO.
> >     > > > > > Once I have something I will create a JIRA and attach a
> >     patch.
> >     > U can
> >     > > take a
> >     > > > > > look at the code and then we can take it from there.
> >     > > > > > If I have questions I will bug u again :-)
> >     > > > > >
> >     > > > > > Btw, the Beehive mailing list seems to be a bit quiet,
> >     so I am
> >     > > wondering how
> >     > > > > > to get WSM specific questions answered :-)
> >     > > > > >
> >     > > > > > Regards,
> >     > > > > >
> >     > > > > > Rajith
> >     > > > > >
> >     > > > > > On 6/13/06, Davanum Srinivas <_ davanum@gmail.com_
> >     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
> >     > > > > > >
> >     > > > > > > Rajith,
> >     > > > > > >
> >     > > > > > > I think you need to implement ReflectionWsmServiceFactory
> >     > first. The
> >     > > > > > > angle of attack i am looking at is deploying a POJO with
> >     > > annotations.
> >     > > > > > > (See AxisService.createService in Axis2 where one can
> >     deploy a
> >     > > pojo).
> >     > > > > > > You will have to write a WSMToAxisServiceBuilder (see
> >     > > > > > > WSDL11ToAxisServiceBuilder) to populate the
> >     AxisService info
> >     > from
> >     > > WSM.
> >     > > > > > > WDYT? Once we have this, we can get fancy with codegen
> >     etc.
> >     > > > > > >
> >     > > > > > > thanks,
> >     > > > > > > dims
> >     > > > > > >
> >     > > > > > > On 6/5/06, Rajith Attapattu <_rajith77@ gmail.com
> >     <http://gmail.com> _
> >     > <mailto:rajith77@gmail.com <ma...@gmail.com>>> wrote:
> >     > > > > > > > Hi Dims & Eddie,
> >     > > > > > > >
> >     > > > > > > > So code wise I should be looking at MirrorWsmBuilder
> >     and
> >     > > WsmService?
> >     > > > > > > > Any pointers will be helpful.
> >     > > > > > > >
> >     > > > > > > > I am going through the wiki and JSR documentation
> >     and will get
> >     > > back with
> >     > > > > > > > questions.
> >     > > > > > > > Meanwhile do we have that seperate jar that bundles
> >     all the
> >     > > relevent
> >     > > > > > > classes
> >     > > > > > > > for the annotations support?
> >     > > > > > > >
> >     > > > > > > > Regards,
> >     > > > > > > >
> >     > > > > > > > Rajith
> >     > > > > > > >
> >     > > > > > > > On 2/5/06, Eddie O'Neil < _ekoneil@gmail.com_
> >     > <mailto: ekoneil@gmail.com <ma...@gmail.com>>> wrote:
> >     > > > > > > > >
> >     > > > > > > > > Dims--
> >     > > > > > > > >
> >     > > > > > > > >   Hey; apologies for the delay.  That's basically
> >     right
> >     > -- there
> >     > > is
> >     > > > > > > > > actually one other step in the annotation processing
> >     > pipeline
> >     > > which is
> >     > > > > > > > > verifying the validity of any annotations on the
> >     class.
> >     >  So, it
> >     > > would
> >     > > > > > > > > be:
> >     > > > > > > > >
> >     > > > > > > > >   annotation checking (Jsr181AnnotationChecker)
> >     --> model
> >     > > building
> >     > > > > > > > > (MirrorWsmBuilder)
> >     > > > > > > > >
> >     > > > > > > > > which returns a WsmService object that can be
> >     wired up into
> >     > > axis2
> >     > > > > > > stuff.
> >     > > > > > > > >
> >     > > > > > > > >   I can certainly break the Axis 1.x stuff into a
> >     > separate JAR;
> >     > > my
> >     > > > > > > > > original plan was to just put the Axis 1.x and 2
> >     bits in the
> >     > > same JAR
> >     > > > > > > > > file, but if this is a problem, let me know and I can
> >     > make three
> >     > > JARs
> >     > > > > > > > > -- generic web service processing code, axis 1,
> >     axis 2,
> >     > etc.
> >     > > > > > > > >
> >     > > > > > > > >   There is one important part of this that isn't done
> >     > yet, and
> >     > > that's
> >     > > > > > > > > to provide something that can be used inside of a
> >     server
> >     > runtime
> >     > > that
> >     > > > > > > > > abstracts from Sun's Mirror types which are used
> >     inside
> >     > of APT.
> >     > > Not
> >     > > > > > > > > exactly sure what this looks like yet -- could be
> >     > reflection or
> >     > > > > > > > > something else that abstracts from Sun's Mirror
> >     APIs (used
> >     > > inside of
> >     > > > > > > > > APT).
> >     > > > > > > > >
> >     > > > > > > > >   Do you want to run this from inside of the Axis2
> >     > runtime or at
> >     > > > > > > > > build-time on the command line?  I'm assuming the
> >     former.
> >     > > > > > > > >
> >     > > > > > > > > Eddie
> >     > > > > > > > >
> >     > > > > > > > >
> >     > > > > > > > > On 2/1/06, Davanum Srinivas < _davanum@gmail.com_
> >     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
> >     > > > > > > > > > Eddie,
> >     > > > > > > > > >
> >     > > > > > > > > > i was looking at the current codebase and
> >     spotted the
> >     > > > > > > > > > MirrorWsmBuilder. Is this what we can use in
> >     Axis2 to
> >     > inspect
> >     > > a
> >     > > > > > > given
> >     > > > > > > > > > java class? and one the WsmService object is
> >     built, then
> >     > > translate
> >     > > > > > > > > > that to Axis2 thingies? Can we split out the
> >     processing
> >     > > framework
> >     > > > > > > into
> >     > > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am
> >     i on the
> >     > > right
> >     > > > > > > track
> >     > > > > > > > > > with this thinking?
> >     > > > > > > > > >
> >     > > > > > > > > > thanks,
> >     > > > > > > > > > dims
> >     > > > > > > > > >
> >     > > > > > > > > > On 1/3/06, Eddie O'Neil < _ekoneil@gmail.com_
> >     > <mailto: ekoneil@gmail.com <ma...@gmail.com> >> wrote:
> >     > > > > > > > > > > All--
> >     > > > > > > > > > >
> >     > > > > > > > > > >   Happy New Year!  And, as a way to start the
> >     year
> >     > off on a
> >     > > good
> >     > > > > > > foot,
> >     > > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how
> >     > we get
> >     > > from
> >     > > > > > > here to
> >     > > > > > > > > > > there with some details about where we are and
> >     what
> >     > needs to
> >     > > > > > > happen.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   Today, there are two core WSM parts, both of
> >     which are
> >     > > tailored
> >     > > > > > > to
> >     > > > > > > > > > > the Axis web service stack:
> >     > > > > > > > > > >
> >     > > > > > > > > > >   build-time: This is a generic annotation
> >     > processing layer
> >     > > that
> >     > > > > > > has
> >     > > > > > > > > > > the ability to work against Mirror,
> >     reflection, and
> >     > WSDL to
> >     > > > > > > produce a
> >     > > > > > > > > > > WSM JavaBean model that represents a web
> >     service.  The
> >     > > build-time
> >     > > > > > > > > > > layer has a plug-point for generating source
> >     > artifacts to
> >     > > support
> >     > > > > > > > > > > various web service runtimes.  For example,
> >     the Axis
> >     > > > > > > implementation
> >     > > > > > > > > > > produces a serialized version of the WSM
> >     JavaBean model.
> >     > > This
> >     > > > > > > could
> >     > > > > > > > > > > also produce JAX-RPC source / deployment
> >     descriptor
> >     > > artifacts,
> >     > > > > > > etc.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   runtime: The runtime side of WSM is specifically
> >     > built to
> >     > > > > > > support
> >     > > > > > > > > > > the Axis 1.x runtime.  It loads the serialized
> >     JavaBean
> >     > > model
> >     > > > > > > > > > > generated at build time and uses an Axis
> >     Handler to
> >     > > configure a
> >     > > > > > > > > > > SOAPService given this information.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   There is another large bunch of code in WSM
> >     > related to
> >     > > tools:
> >     > > > > > > > > > >
> >     > > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
> >     > service
> >     > > > > > > development
> >     > > > > > > > > > > model and starts with a WSDL to produce an
> >     annotated
> >     > Java
> >     > > source
> >     > > > > > > file.
> >     > > > > > > > > > >  This tool requires significant knowledge of WSDL
> >     > and type
> >     > > mapping
> >     > > > > > > for
> >     > > > > > > > > > > a specific web service stack.  For example, the
> >     > mapping for
> >     > > an XSD
> >     > > > > > > > > > > year is mapped to org.apache.axis.types.Year and
> >     > something
> >     > > > > > > different
> >     > > > > > > > > > > on other web service stacks.  wsdl2java is a
> >     > non-trivial
> >     > > bunch of
> >     > > > > > > code
> >     > > > > > > > > > > to write, but is also a very useful tool.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   In order to finish WSM, one more
> >     re-architecting step
> >     > > needs to
> >     > > > > > > be
> >     > > > > > > > > > > completed; I'd like to remove the use of a
> >     > serialized Java
> >     > > object
> >     > > > > > > as
> >     > > > > > > > > > > the way to communicate from the build-time to
> >     > runtime parts
> >     > > of the
> >     > > > > > > > > > > implementation.  This would be replaced with a
> >     WSDD
> >     > like,
> >     > > but WSM
> >     > > > > > > > > > > specific, XML descriptor of the service.  AFAICT,
> >     > WSDD can't
> >     > > be
> >     > > > > > > used
> >     > > > > > > > > > > for this because too closely matches the shape
> >     of a Java
> >     > > class
> >     > > > > > > (Dims
> >     > > > > > > > > > > and others, feel free to correct me if I'm wrong).
> >     >  So, we
> >     > > need a
> >     > > > > > > > > > > simple XML file that describes the information
> >     > captured in a
> >     > > > > > > > > > > WsmService.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   Once this is done, we can start work on
> >     passing the
> >     > > JSR-181 TCK.
> >     > > > > > > > > > > This will be done atop Apache Axis 1.x.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   In order to expedite the process of getting
> >     from
> >     > here to
> >     > > TCK
> >     > > > > > > > > > > compliance, I'd like to suggest that we stop stop
> >     > work on
> >     > > the
> >     > > > > > > > > > > wsdl2ajava tool in order to focus on finishing
> >     1.0 and
> >     > > restart
> >     > > > > > > this
> >     > > > > > > > > > > tool immediately post-1.0.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   Post 1.0, there are lots of other things that we
> >     > could do
> >     > > > > > > including:
> >     > > > > > > > > > >
> >     > > > > > > > > > > - JDK 1.4 support
> >     > > > > > > > > > > - drop-in support for WSM in Axis to support
> >     iteratively
> >     > > > > > > developing an
> >     > > > > > > > > > > annotated web service
> >     > > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
> >     > working
> >     > > on
> >     > > > > > > this?)
> >     > > > > > > > > > > - custom annotations to support
> >     container-specific
> >     > features
> >     > > like
> >     > > > > > > type
> >     > > > > > > > > mapping
> >     > > > > > > > > > > - and so on...
> >     > > > > > > > > > >
> >     > > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's
> >     > 1.0 done
> >     > > and
> >     > > > > > > would
> >     > > > > > > > > > > like to narrow scope in order to do that.  I
> >     think we're
> >     > > almost
> >     > > > > > > ready
> >     > > > > > > > > > > for the TCK; I'll start on the XML file to
> >     describe an
> >     > > annotated
> >     > > > > > > Axis
> >     > > > > > > > > > > web service shortly.
> >     > > > > > > > > > >
> >     > > > > > > > > > >   Thoughts, comments, and flames welcome.
> >     > > > > > > > > > >
> >     > > > > > > > > > > Eddie
> >     > > > > > > > > > >
> >     > > > > > > > > >
> >     > > > > > > > > >
> >     > > > > > > > > > --
> >     > > > > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> >     > > > > > > > > >
> >     > > > > > > > >
> >     > > > > > > >
> >     > > > > > > >
> >     > > > > > >
> >     > > > > > >
> >     > > > > > > --
> >     > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> >     > > > > > >
> >     > > > > >
> >     > > > > >
> >     > > > >
> >     > > > >
> >     > > > > --
> >     > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> >     > > > >
> >     > > > >
> >     > >
> >     ---------------------------------------------------------------------
> >     > > > > To unsubscribe, e-mail:
> >     > > _axis- dev-unsubscribe@ws.apache.org
> >     <ma...@ws.apache.org> _
> >     > <mailto:axis-dev-unsubscribe@ws.apache.org
> >     <ma...@ws.apache.org>>
> >     > > > > For additional commands, e-mail: _axis-
> >     dev-help@ws.apache.org_
> >     > <mailto: axis-dev-help@ws.apache.org
> >     <ma...@ws.apache.org>>
> >     > > > >
> >     > > > >
> >     > > >
> >     > > >
> >     > >
> >     > >
> >     >
> >     >
> >     > --
> >     > Davanum Srinivas : _http://wso2.com/blogs/_
> >     >
> >     >
> >     ---------------------------------------------------------------------
> >     > To unsubscribe, e-mail: _axis-dev-unsubscribe@ws.apache.org_
> >     > <mailto: axis-dev-unsubscribe@ws.apache.org
> >     <ma...@ws.apache.org>>
> >     > For additional commands, e-mail: _axis-dev-help@ws.apache.org_
> >     > <mailto: axis-dev-help@ws.apache.org
> >     <ma...@ws.apache.org>>
> >     >
> >     >
> >
> >     ---------------------------------------------------------------------
> >     To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> >     <ma...@ws.apache.org>
> >     For additional commands, e-mail: axis-dev-help@ws.apache.org
> >     <ma...@ws.apache.org>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
Hi Rajith,

I'm not aware of any API call that gives you all the classes that are 
annotated with a particular tag - which one is this? It seems like it 
would only work with classes that have already been loaded into the JVM, 
though, so I'd think it would still be very difficult to use this to 
find the classes.

AFAIK Annogen only supports retrieving information from Java 5 
annotations when you're running on Java 5, and even then only for 
specific classes when they're loaded into the JVM. That's why I thought 
scanning the classes with ASM to check for the annotations would be a 
better approach.

  - Dennis

Rajith Attapattu wrote:
> Nicholas and Dennis,
>
> I got to know that in java 1.5 there is an API call where u can get 
> all the classes that are annotated with a particular tag.
> So in java 1.5 we could request all classes in our path that are 
> annotated with @WebService and then take it from there.
>
> But how about 1.4? does annogen do something simmillar. Not very 
> familliar with annogen.
>
> I agree with Dennis about trying not to use a services.xml if we can 
> for the annotated approach.
> Or else it kind of defeats the whole purpose of using annotations.
>
> The users should be able to drop a jar file in the class path and then 
> Axis2 should be able to build a service completely out of the annotations.
>
> Nicholas, I will answer your other questions after I go to work.
>
> Thanks,
>
> Rajith
>
> On 6/20/06, *Dennis Sosnoski* < dms@sosnoski.com 
> <ma...@sosnoski.com>> wrote:
>
>     Probably the nicest approach from an end user standpoint would be to
>     allow JAX-WS annotations to be used without a services.xml. If Axis2
>     opened an aar and didn't find a services.xml it would then need to
>     search for class files with annotations, which basically means
>     parsing
>     all the class files in the archive (not loading them into memory, but
>     using a class parser such as ASM). Ugly, but it should work.
>
>     The other alternative would be to require a services.xml and list the
>     classes in that. You'd then only need to look at the listed
>     classes, and
>     could probably just load these classes and use the reflection API to
>     access the annotation information. A little more work for the
>     user, but
>     should be okay. If someone wants to they could build a wizard that
>     takes
>     care of the aar generation and automatically includes all the
>     annotated
>     service classes in the services.xml.
>
>       - Dennis
>
>     Nicholas L Gallardo wrote:
>     >
>     > Rajith,
>     >
>     > From a JAX-WS perspective, the @WebService annotation does
>     introduce
>     > some challenges when it comes to determining what the interface of a
>     > Web service will be.  From my interpretation, which is just that, it
>     > doesn't dictate as much how the annotation should be handled at
>     > runtime as much as it does instruct how the annotation affects the
>     > Java to WSDL mapping.  I think the assumption after that is, the
>     > system will then do whatever it needs to configure itself to
>     fulfill
>     > the contract defined by that WSDL.  If I understand correctly what
>     > Dim's has proposed, this is the piece that your
>     > WSMToAxisServiceBuilder will fulfill.  The rest is making sure that
>     > the information gets relayed to Axis2 correctly.
>     >
>     > With respect to just the @WebService annotation, and not the
>     > annotations processing as a whole, it seems like you might
>     encounter a
>     > few scenarios that could be tricky.  I don't know enough about the
>     > specifics of WSM though, so it may resolve some of the headaches
>     for you.
>     >
>     > - When a class is annotated with @WebService, any of the public
>     > methods available on that class are to be exposed as an
>     operation in a
>     > Web service.  If that particular annotation instance has the WSDL
>     > document location specified, then we need to do some bit of
>     > processing/validation to make sure the public methods support what's
>     > defined in the WSDL.  Or.... does WSM just do that for you?
>     >
>     > - Because of the "serviceEnpdointInterface" property on the
>     > @WebService annotation, the above case becomes a little more
>     complex.
>     >  JAX-WS has a notion of squashing that SEI, along with the public
>     > methods on any other interface that the SEI may extend into one
>     giant
>     > interface, which should then be reflected in the WSDL.  Again, I
>     don't
>     > know enough about WSM, but this might be something it handles
>     for you.
>     >  If not, it seems like you will be required to walk the annotations
>     > and collect the metadata from every interface that's extended?
>     >
>     > I'm glad to see you'll be working on this.  As mentioned before, I
>     > think there is some commonality that can be leveraged when it
>     comes to
>     > JAX-WS as well.  A few questions though about the annotations
>     support
>     > for Axis2 endpoints (I know you're just getting started with
>     this so I
>     > understand if some of this is longer term) :
>     >
>     > - When annotations are added to a class, are you still requiring the
>     > presence of a services.xml?  If so, what's the minimum set of
>     > information required in that document?  I.e., could I get away with
>     > annotating a class and just specifying that ServiceClass property in
>     > XML file?  I can see still needing the deployment descriptor for
>     > specifying module refs, but would it be able to have just that
>     and not
>     > the operation descriptions.  Just a thought.
>     >
>     > - If annotations are supported for Axis2/ADB endpoints, how
>     would we
>     > distinguish those from JAX-WS endpoints?
>     >
>     > Hope this helps...
>     >
>     > Regards,
>     >
>     > Nicholas Gallardo
>     > WebSphere  -  WebServices Development
>     > nlgallar@us.ibm.com <ma...@us.ibm.com>
>     > Phone: 512-838-1182
>     > Building: 901 / 5G-016
>     >
>     >
>     > *"Rajith Attapattu" < rajith77@gmail.com
>     <ma...@gmail.com>>*
>     >
>     > 06/19/2006 09:35 PM
>     > Please respond to
>     > axis-dev@ws.apache.org <ma...@ws.apache.org>
>     >
>     >
>     >
>     > To
>     >       axis-dev@ws.apache.org <ma...@ws.apache.org>,
>     dims@apache.org <ma...@apache.org>
>     > cc
>     >
>     > Subject
>     >       Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     > Dims,
>     >
>     > Sounds good.
>     >
>     > So it looks like the @WebService tag is not really useful as we
>     > explicitly name the class in the services.xml
>     > So from Axis2 side we are covered
>     >
>     > However I am wondering if there is some requirment from the JAX-WS
>     > side as to how we should leverage this @WebService annotation.
>     > wondering if the spec mandates some sort of stratergy for this. (I
>     > read the spec and couldn't find anything)
>     >
>     > For now lets go ahead with what we planned (with a message
>     receiver)
>     > and worry about @WebService thing when we figure out the exact
>     > requirment.
>     >
>     > Regards,
>     >
>     > Rajith.
>     >
>     > On 6/19/06, *Davanum Srinivas* <_davanum@gmail.com_
>     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
>     > Rajith,
>     >
>     > In the short term, We have RPCMessageReceiver,
>     > SpringRPCMessageReceiver etc. we could throw in a quick
>     > WSMRPCMessageReceiver as well. So we will have to look at the class
>     > name specified in the services.xml just like we do for other
>     > receivers.
>     >
>     > -- dims
>     >
>     > On 6/19/06, Rajith Attapattu <_rajith77@gmail.com_
>     > <mailto: rajith77@gmail.com <ma...@gmail.com>>> wrote:
>     > > Hi Dims
>     > >
>     > > One more question if you don't mind :-)
>     > >
>     > > What is the plan to figure out a class marked with @WebService?
>     > >
>     > > a) are we going to look through a particular location to
>     introspect any
>     > > class files droped there ?
>     > > b) is the user responsible for adding the service via some API
>     > method ? for
>     > > ex: AxisService.createService(String className) ?
>     > >
>     > > The rest we can introspect once we get the class identified.
>     But I am
>     > > wondering how is the initial step of figuring out the marked
>     (annotated
>     > > class) class with the @WebService tag.
>     > >
>     > > Sorry for the long list of questions.
>     > >
>     > > Regards,
>     > >
>     > > Rajith
>     > >
>     > >
>     > > On 6/16/06, Rajith Attapattu <_ rajith77@gmail.com_
>     > <mailto:rajith77@gmail.com <ma...@gmail.com>> > wrote:
>     > > >
>     > > > Hi Dims,
>     > > >
>     > > > Sorry if this question sounds stupid, but there is something
>     that
>     > I don't
>     > > get.
>     > > > Can you explain any gaps that I have? :-)
>     > > >
>     > > > So we use WSM to get the jsr181 support.
>     > > > But, It looks like wsm is not complete in terms of the POJO
>     aspect
>     > as the
>     > > reflection based ReflectionWsmServiceFactory is not done.
>     > > >
>     > > > I guess part of the job is to complete the wsm stuff and
>     then use it
>     > > inside axis2. Or did I get this wrong?
>     > > >
>     > > >
>     > > > >> Forgot to mention, please use annogen (
>     > _http://annogen.codehaus.org/_ )
>     > > to access the annotations which are needed to build the
>     WsmService
>     > > >
>     > > > So are we going to do the implementation of
>     > ReflectionWsmServiceFactory
>     > > inside Axis2?
>     > > >
>     > > > I thought we are going to complete that inside wsm and then
>     implement
>     > > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
>     > > WSMService thats produced via the ReflectionWsmServiceFactory.
>     > > >
>     > > > Did I miss something?
>     > > >
>     > > > Thanks,
>     > > >
>     > > >
>     > > > Rajith
>     > > >
>     > > >
>     > > > On 6/13/06, Davanum Srinivas < _davanum@gmail.com_
>     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
>     > > > > Let's keep this to axis-dev@ until we need some questions
>     answered
>     > > > > from beehive folks. Forgot to mention, please use annogen
>     > > > > (_ http://annogen.codehaus.org/_) to access the annotations
>     > which are
>     > > > > needed to build the WsmService. We explicitly took a
>     dependency on
>     > > > > annogen in Axis2 for this purpose.
>     > > > >
>     > > > > thanks,
>     > > > > -- dims
>     > > > >
>     > > > > On 6/13/06, Rajith Attapattu <_rajith77@gmail.com_
>     > <mailto: rajith77@gmail.com <ma...@gmail.com>>> wrote:
>     > > > > > Hi Dims,
>     > > > > >
>     > > > > > Thanks for the pointers.
>     > > > > > Let me look at how to get the
>     ReflectionWsmServiceFactory impl
>     > going.
>     > > > > > after that I can start with WSMToAxisServiceBuilder to
>     build an
>     > > AxisService
>     > > > > > out of an anotated POJO.
>     > > > > > Once I have something I will create a JIRA and attach a
>     patch.
>     > U can
>     > > take a
>     > > > > > look at the code and then we can take it from there.
>     > > > > > If I have questions I will bug u again :-)
>     > > > > >
>     > > > > > Btw, the Beehive mailing list seems to be a bit quiet,
>     so I am
>     > > wondering how
>     > > > > > to get WSM specific questions answered :-)
>     > > > > >
>     > > > > > Regards,
>     > > > > >
>     > > > > > Rajith
>     > > > > >
>     > > > > > On 6/13/06, Davanum Srinivas <_ davanum@gmail.com_
>     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
>     > > > > > >
>     > > > > > > Rajith,
>     > > > > > >
>     > > > > > > I think you need to implement ReflectionWsmServiceFactory
>     > first. The
>     > > > > > > angle of attack i am looking at is deploying a POJO with
>     > > annotations.
>     > > > > > > (See AxisService.createService in Axis2 where one can
>     deploy a
>     > > pojo).
>     > > > > > > You will have to write a WSMToAxisServiceBuilder (see
>     > > > > > > WSDL11ToAxisServiceBuilder) to populate the
>     AxisService info
>     > from
>     > > WSM.
>     > > > > > > WDYT? Once we have this, we can get fancy with codegen
>     etc.
>     > > > > > >
>     > > > > > > thanks,
>     > > > > > > dims
>     > > > > > >
>     > > > > > > On 6/5/06, Rajith Attapattu <_rajith77@ gmail.com
>     <http://gmail.com> _
>     > <mailto:rajith77@gmail.com <ma...@gmail.com>>> wrote:
>     > > > > > > > Hi Dims & Eddie,
>     > > > > > > >
>     > > > > > > > So code wise I should be looking at MirrorWsmBuilder
>     and
>     > > WsmService?
>     > > > > > > > Any pointers will be helpful.
>     > > > > > > >
>     > > > > > > > I am going through the wiki and JSR documentation
>     and will get
>     > > back with
>     > > > > > > > questions.
>     > > > > > > > Meanwhile do we have that seperate jar that bundles
>     all the
>     > > relevent
>     > > > > > > classes
>     > > > > > > > for the annotations support?
>     > > > > > > >
>     > > > > > > > Regards,
>     > > > > > > >
>     > > > > > > > Rajith
>     > > > > > > >
>     > > > > > > > On 2/5/06, Eddie O'Neil < _ekoneil@gmail.com_
>     > <mailto: ekoneil@gmail.com <ma...@gmail.com>>> wrote:
>     > > > > > > > >
>     > > > > > > > > Dims--
>     > > > > > > > >
>     > > > > > > > >   Hey; apologies for the delay.  That's basically
>     right
>     > -- there
>     > > is
>     > > > > > > > > actually one other step in the annotation processing
>     > pipeline
>     > > which is
>     > > > > > > > > verifying the validity of any annotations on the
>     class.
>     >  So, it
>     > > would
>     > > > > > > > > be:
>     > > > > > > > >
>     > > > > > > > >   annotation checking (Jsr181AnnotationChecker)
>     --> model
>     > > building
>     > > > > > > > > (MirrorWsmBuilder)
>     > > > > > > > >
>     > > > > > > > > which returns a WsmService object that can be
>     wired up into
>     > > axis2
>     > > > > > > stuff.
>     > > > > > > > >
>     > > > > > > > >   I can certainly break the Axis 1.x stuff into a
>     > separate JAR;
>     > > my
>     > > > > > > > > original plan was to just put the Axis 1.x and 2
>     bits in the
>     > > same JAR
>     > > > > > > > > file, but if this is a problem, let me know and I can
>     > make three
>     > > JARs
>     > > > > > > > > -- generic web service processing code, axis 1,
>     axis 2,
>     > etc.
>     > > > > > > > >
>     > > > > > > > >   There is one important part of this that isn't done
>     > yet, and
>     > > that's
>     > > > > > > > > to provide something that can be used inside of a
>     server
>     > runtime
>     > > that
>     > > > > > > > > abstracts from Sun's Mirror types which are used
>     inside
>     > of APT.
>     > > Not
>     > > > > > > > > exactly sure what this looks like yet -- could be
>     > reflection or
>     > > > > > > > > something else that abstracts from Sun's Mirror
>     APIs (used
>     > > inside of
>     > > > > > > > > APT).
>     > > > > > > > >
>     > > > > > > > >   Do you want to run this from inside of the Axis2
>     > runtime or at
>     > > > > > > > > build-time on the command line?  I'm assuming the
>     former.
>     > > > > > > > >
>     > > > > > > > > Eddie
>     > > > > > > > >
>     > > > > > > > >
>     > > > > > > > > On 2/1/06, Davanum Srinivas < _davanum@gmail.com_
>     > <mailto: davanum@gmail.com <ma...@gmail.com>>> wrote:
>     > > > > > > > > > Eddie,
>     > > > > > > > > >
>     > > > > > > > > > i was looking at the current codebase and
>     spotted the
>     > > > > > > > > > MirrorWsmBuilder. Is this what we can use in
>     Axis2 to
>     > inspect
>     > > a
>     > > > > > > given
>     > > > > > > > > > java class? and one the WsmService object is
>     built, then
>     > > translate
>     > > > > > > > > > that to Axis2 thingies? Can we split out the
>     processing
>     > > framework
>     > > > > > > into
>     > > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am
>     i on the
>     > > right
>     > > > > > > track
>     > > > > > > > > > with this thinking?
>     > > > > > > > > >
>     > > > > > > > > > thanks,
>     > > > > > > > > > dims
>     > > > > > > > > >
>     > > > > > > > > > On 1/3/06, Eddie O'Neil < _ekoneil@gmail.com_
>     > <mailto: ekoneil@gmail.com <ma...@gmail.com> >> wrote:
>     > > > > > > > > > > All--
>     > > > > > > > > > >
>     > > > > > > > > > >   Happy New Year!  And, as a way to start the
>     year
>     > off on a
>     > > good
>     > > > > > > foot,
>     > > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how
>     > we get
>     > > from
>     > > > > > > here to
>     > > > > > > > > > > there with some details about where we are and
>     what
>     > needs to
>     > > > > > > happen.
>     > > > > > > > > > >
>     > > > > > > > > > >   Today, there are two core WSM parts, both of
>     which are
>     > > tailored
>     > > > > > > to
>     > > > > > > > > > > the Axis web service stack:
>     > > > > > > > > > >
>     > > > > > > > > > >   build-time: This is a generic annotation
>     > processing layer
>     > > that
>     > > > > > > has
>     > > > > > > > > > > the ability to work against Mirror,
>     reflection, and
>     > WSDL to
>     > > > > > > produce a
>     > > > > > > > > > > WSM JavaBean model that represents a web
>     service.  The
>     > > build-time
>     > > > > > > > > > > layer has a plug-point for generating source
>     > artifacts to
>     > > support
>     > > > > > > > > > > various web service runtimes.  For example,
>     the Axis
>     > > > > > > implementation
>     > > > > > > > > > > produces a serialized version of the WSM
>     JavaBean model.
>     > > This
>     > > > > > > could
>     > > > > > > > > > > also produce JAX-RPC source / deployment
>     descriptor
>     > > artifacts,
>     > > > > > > etc.
>     > > > > > > > > > >
>     > > > > > > > > > >   runtime: The runtime side of WSM is specifically
>     > built to
>     > > > > > > support
>     > > > > > > > > > > the Axis 1.x runtime.  It loads the serialized
>     JavaBean
>     > > model
>     > > > > > > > > > > generated at build time and uses an Axis
>     Handler to
>     > > configure a
>     > > > > > > > > > > SOAPService given this information.
>     > > > > > > > > > >
>     > > > > > > > > > >   There is another large bunch of code in WSM
>     > related to
>     > > tools:
>     > > > > > > > > > >
>     > > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
>     > service
>     > > > > > > development
>     > > > > > > > > > > model and starts with a WSDL to produce an
>     annotated
>     > Java
>     > > source
>     > > > > > > file.
>     > > > > > > > > > >  This tool requires significant knowledge of WSDL
>     > and type
>     > > mapping
>     > > > > > > for
>     > > > > > > > > > > a specific web service stack.  For example, the
>     > mapping for
>     > > an XSD
>     > > > > > > > > > > year is mapped to org.apache.axis.types.Year and
>     > something
>     > > > > > > different
>     > > > > > > > > > > on other web service stacks.  wsdl2java is a
>     > non-trivial
>     > > bunch of
>     > > > > > > code
>     > > > > > > > > > > to write, but is also a very useful tool.
>     > > > > > > > > > >
>     > > > > > > > > > >   In order to finish WSM, one more
>     re-architecting step
>     > > needs to
>     > > > > > > be
>     > > > > > > > > > > completed; I'd like to remove the use of a
>     > serialized Java
>     > > object
>     > > > > > > as
>     > > > > > > > > > > the way to communicate from the build-time to
>     > runtime parts
>     > > of the
>     > > > > > > > > > > implementation.  This would be replaced with a
>     WSDD
>     > like,
>     > > but WSM
>     > > > > > > > > > > specific, XML descriptor of the service.  AFAICT,
>     > WSDD can't
>     > > be
>     > > > > > > used
>     > > > > > > > > > > for this because too closely matches the shape
>     of a Java
>     > > class
>     > > > > > > (Dims
>     > > > > > > > > > > and others, feel free to correct me if I'm wrong).
>     >  So, we
>     > > need a
>     > > > > > > > > > > simple XML file that describes the information
>     > captured in a
>     > > > > > > > > > > WsmService.
>     > > > > > > > > > >
>     > > > > > > > > > >   Once this is done, we can start work on
>     passing the
>     > > JSR-181 TCK.
>     > > > > > > > > > > This will be done atop Apache Axis 1.x.
>     > > > > > > > > > >
>     > > > > > > > > > >   In order to expedite the process of getting
>     from
>     > here to
>     > > TCK
>     > > > > > > > > > > compliance, I'd like to suggest that we stop stop
>     > work on
>     > > the
>     > > > > > > > > > > wsdl2ajava tool in order to focus on finishing
>     1.0 and
>     > > restart
>     > > > > > > this
>     > > > > > > > > > > tool immediately post-1.0.
>     > > > > > > > > > >
>     > > > > > > > > > >   Post 1.0, there are lots of other things that we
>     > could do
>     > > > > > > including:
>     > > > > > > > > > >
>     > > > > > > > > > > - JDK 1.4 support
>     > > > > > > > > > > - drop-in support for WSM in Axis to support
>     iteratively
>     > > > > > > developing an
>     > > > > > > > > > > annotated web service
>     > > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
>     > working
>     > > on
>     > > > > > > this?)
>     > > > > > > > > > > - custom annotations to support
>     container-specific
>     > features
>     > > like
>     > > > > > > type
>     > > > > > > > > mapping
>     > > > > > > > > > > - and so on...
>     > > > > > > > > > >
>     > > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's
>     > 1.0 done
>     > > and
>     > > > > > > would
>     > > > > > > > > > > like to narrow scope in order to do that.  I
>     think we're
>     > > almost
>     > > > > > > ready
>     > > > > > > > > > > for the TCK; I'll start on the XML file to
>     describe an
>     > > annotated
>     > > > > > > Axis
>     > > > > > > > > > > web service shortly.
>     > > > > > > > > > >
>     > > > > > > > > > >   Thoughts, comments, and flames welcome.
>     > > > > > > > > > >
>     > > > > > > > > > > Eddie
>     > > > > > > > > > >
>     > > > > > > > > >
>     > > > > > > > > >
>     > > > > > > > > > --
>     > > > > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
>     > > > > > > > > >
>     > > > > > > > >
>     > > > > > > >
>     > > > > > > >
>     > > > > > >
>     > > > > > >
>     > > > > > > --
>     > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
>     > > > > > >
>     > > > > >
>     > > > > >
>     > > > >
>     > > > >
>     > > > > --
>     > > > > Davanum Srinivas : _http://wso2.com/blogs/_
>     > > > >
>     > > > >
>     > >
>     ---------------------------------------------------------------------
>     > > > > To unsubscribe, e-mail:
>     > > _axis- dev-unsubscribe@ws.apache.org
>     <ma...@ws.apache.org> _
>     > <mailto:axis-dev-unsubscribe@ws.apache.org
>     <ma...@ws.apache.org>>
>     > > > > For additional commands, e-mail: _axis-
>     dev-help@ws.apache.org_
>     > <mailto: axis-dev-help@ws.apache.org
>     <ma...@ws.apache.org>>
>     > > > >
>     > > > >
>     > > >
>     > > >
>     > >
>     > >
>     >
>     >
>     > --
>     > Davanum Srinivas : _http://wso2.com/blogs/_
>     >
>     >
>     ---------------------------------------------------------------------
>     > To unsubscribe, e-mail: _axis-dev-unsubscribe@ws.apache.org_
>     > <mailto: axis-dev-unsubscribe@ws.apache.org
>     <ma...@ws.apache.org>>
>     > For additional commands, e-mail: _axis-dev-help@ws.apache.org_
>     > <mailto: axis-dev-help@ws.apache.org
>     <ma...@ws.apache.org>>
>     >
>     >
>
>     ---------------------------------------------------------------------
>     To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
>     <ma...@ws.apache.org>
>     For additional commands, e-mail: axis-dev-help@ws.apache.org
>     <ma...@ws.apache.org>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Nicholas and Dennis,

I got to know that in java 1.5 there is an API call where u can get all the
classes that are annotated with a particular tag.
So in java 1.5 we could request all classes in our path that are annotated
with @WebService and then take it from there.

But how about 1.4? does annogen do something simmillar. Not very familliar
with annogen.

I agree with Dennis about trying not to use a services.xml if we can for the
annotated approach.
Or else it kind of defeats the whole purpose of using annotations.

The users should be able to drop a jar file in the class path and then Axis2
should be able to build a service completely out of the annotations.

Nicholas, I will answer your other questions after I go to work.

Thanks,

Rajith

On 6/20/06, Dennis Sosnoski <dm...@sosnoski.com> wrote:
>
> Probably the nicest approach from an end user standpoint would be to
> allow JAX-WS annotations to be used without a services.xml. If Axis2
> opened an aar and didn't find a services.xml it would then need to
> search for class files with annotations, which basically means parsing
> all the class files in the archive (not loading them into memory, but
> using a class parser such as ASM). Ugly, but it should work.
>
> The other alternative would be to require a services.xml and list the
> classes in that. You'd then only need to look at the listed classes, and
> could probably just load these classes and use the reflection API to
> access the annotation information. A little more work for the user, but
> should be okay. If someone wants to they could build a wizard that takes
> care of the aar generation and automatically includes all the annotated
> service classes in the services.xml.
>
>   - Dennis
>
> Nicholas L Gallardo wrote:
> >
> > Rajith,
> >
> > From a JAX-WS perspective, the @WebService annotation does introduce
> > some challenges when it comes to determining what the interface of a
> > Web service will be.  From my interpretation, which is just that, it
> > doesn't dictate as much how the annotation should be handled at
> > runtime as much as it does instruct how the annotation affects the
> > Java to WSDL mapping.  I think the assumption after that is, the
> > system will then do whatever it needs to configure itself to fulfill
> > the contract defined by that WSDL.  If I understand correctly what
> > Dim's has proposed, this is the piece that your
> > WSMToAxisServiceBuilder will fulfill.  The rest is making sure that
> > the information gets relayed to Axis2 correctly.
> >
> > With respect to just the @WebService annotation, and not the
> > annotations processing as a whole, it seems like you might encounter a
> > few scenarios that could be tricky.  I don't know enough about the
> > specifics of WSM though, so it may resolve some of the headaches for
> you.
> >
> > - When a class is annotated with @WebService, any of the public
> > methods available on that class are to be exposed as an operation in a
> > Web service.  If that particular annotation instance has the WSDL
> > document location specified, then we need to do some bit of
> > processing/validation to make sure the public methods support what's
> > defined in the WSDL.  Or.... does WSM just do that for you?
> >
> > - Because of the "serviceEnpdointInterface" property on the
> > @WebService annotation, the above case becomes a little more complex.
> >  JAX-WS has a notion of squashing that SEI, along with the public
> > methods on any other interface that the SEI may extend into one giant
> > interface, which should then be reflected in the WSDL.  Again, I don't
> > know enough about WSM, but this might be something it handles for you.
> >  If not, it seems like you will be required to walk the annotations
> > and collect the metadata from every interface that's extended?
> >
> > I'm glad to see you'll be working on this.  As mentioned before, I
> > think there is some commonality that can be leveraged when it comes to
> > JAX-WS as well.  A few questions though about the annotations support
> > for Axis2 endpoints (I know you're just getting started with this so I
> > understand if some of this is longer term) :
> >
> > - When annotations are added to a class, are you still requiring the
> > presence of a services.xml?  If so, what's the minimum set of
> > information required in that document?  I.e., could I get away with
> > annotating a class and just specifying that ServiceClass property in
> > XML file?  I can see still needing the deployment descriptor for
> > specifying module refs, but would it be able to have just that and not
> > the operation descriptions.  Just a thought.
> >
> > - If annotations are supported for Axis2/ADB endpoints, how would we
> > distinguish those from JAX-WS endpoints?
> >
> > Hope this helps...
> >
> > Regards,
> >
> > Nicholas Gallardo
> > WebSphere  -  WebServices Development
> > nlgallar@us.ibm.com
> > Phone: 512-838-1182
> > Building: 901 / 5G-016
> >
> >
> > *"Rajith Attapattu" <ra...@gmail.com>*
> >
> > 06/19/2006 09:35 PM
> > Please respond to
> > axis-dev@ws.apache.org
> >
> >
> >
> > To
> >       axis-dev@ws.apache.org, dims@apache.org
> > cc
> >
> > Subject
> >       Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Dims,
> >
> > Sounds good.
> >
> > So it looks like the @WebService tag is not really useful as we
> > explicitly name the class in the services.xml
> > So from Axis2 side we are covered
> >
> > However I am wondering if there is some requirment from the JAX-WS
> > side as to how we should leverage this @WebService annotation.
> > wondering if the spec mandates some sort of stratergy for this. (I
> > read the spec and couldn't find anything)
> >
> > For now lets go ahead with what we planned (with a message receiver)
> > and worry about @WebService thing when we figure out the exact
> > requirment.
> >
> > Regards,
> >
> > Rajith.
> >
> > On 6/19/06, *Davanum Srinivas* <_davanum@gmail.com_
> > <mailto: davanum@gmail.com>> wrote:
> > Rajith,
> >
> > In the short term, We have RPCMessageReceiver,
> > SpringRPCMessageReceiver etc. we could throw in a quick
> > WSMRPCMessageReceiver as well. So we will have to look at the class
> > name specified in the services.xml just like we do for other
> > receivers.
> >
> > -- dims
> >
> > On 6/19/06, Rajith Attapattu <_rajith77@gmail.com_
> > <mailto: rajith77@gmail.com>> wrote:
> > > Hi Dims
> > >
> > > One more question if you don't mind :-)
> > >
> > > What is the plan to figure out a class marked with @WebService?
> > >
> > > a) are we going to look through a particular location to introspect
> any
> > > class files droped there ?
> > > b) is the user responsible for adding the service via some API
> > method ? for
> > > ex: AxisService.createService(String className) ?
> > >
> > > The rest we can introspect once we get the class identified. But I am
> > > wondering how is the initial step of figuring out the marked
> (annotated
> > > class) class with the @WebService tag.
> > >
> > > Sorry for the long list of questions.
> > >
> > > Regards,
> > >
> > > Rajith
> > >
> > >
> > > On 6/16/06, Rajith Attapattu <_ rajith77@gmail.com_
> > <ma...@gmail.com> > wrote:
> > > >
> > > > Hi Dims,
> > > >
> > > > Sorry if this question sounds stupid, but there is something that
> > I don't
> > > get.
> > > > Can you explain any gaps that I have? :-)
> > > >
> > > > So we use WSM to get the jsr181 support.
> > > > But, It looks like wsm is not complete in terms of the POJO aspect
> > as the
> > > reflection based ReflectionWsmServiceFactory is not done.
> > > >
> > > > I guess part of the job is to complete the wsm stuff and then use it
> > > inside axis2. Or did I get this wrong?
> > > >
> > > >
> > > > >> Forgot to mention, please use annogen (
> > _http://annogen.codehaus.org/_ )
> > > to access the annotations which are needed to build the WsmService
> > > >
> > > > So are we going to do the implementation of
> > ReflectionWsmServiceFactory
> > > inside Axis2?
> > > >
> > > > I thought we are going to complete that inside wsm and then
> implement
> > > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > > WSMService thats produced via the ReflectionWsmServiceFactory.
> > > >
> > > > Did I miss something?
> > > >
> > > > Thanks,
> > > >
> > > >
> > > > Rajith
> > > >
> > > >
> > > > On 6/13/06, Davanum Srinivas < _davanum@gmail.com_
> > <mailto: davanum@gmail.com>> wrote:
> > > > > Let's keep this to axis-dev@ until we need some questions answered
> > > > > from beehive folks. Forgot to mention, please use annogen
> > > > > (_ http://annogen.codehaus.org/_) to access the annotations
> > which are
> > > > > needed to build the WsmService. We explicitly took a dependency on
> > > > > annogen in Axis2 for this purpose.
> > > > >
> > > > > thanks,
> > > > > -- dims
> > > > >
> > > > > On 6/13/06, Rajith Attapattu <_rajith77@gmail.com_
> > <mailto: rajith77@gmail.com>> wrote:
> > > > > > Hi Dims,
> > > > > >
> > > > > > Thanks for the pointers.
> > > > > > Let me look at how to get the ReflectionWsmServiceFactory impl
> > going.
> > > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > > AxisService
> > > > > > out of an anotated POJO.
> > > > > > Once I have something I will create a JIRA and attach a patch.
> > U can
> > > take a
> > > > > > look at the code and then we can take it from there.
> > > > > > If I have questions I will bug u again :-)
> > > > > >
> > > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > > wondering how
> > > > > > to get WSM specific questions answered :-)
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > Rajith
> > > > > >
> > > > > > On 6/13/06, Davanum Srinivas <_ davanum@gmail.com_
> > <ma...@gmail.com>> wrote:
> > > > > > >
> > > > > > > Rajith,
> > > > > > >
> > > > > > > I think you need to implement ReflectionWsmServiceFactory
> > first. The
> > > > > > > angle of attack i am looking at is deploying a POJO with
> > > annotations.
> > > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > > pojo).
> > > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info
> > from
> > > WSM.
> > > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > > > >
> > > > > > > thanks,
> > > > > > > dims
> > > > > > >
> > > > > > > On 6/5/06, Rajith Attapattu <_rajith77@gmail.com _
> > <ma...@gmail.com>> wrote:
> > > > > > > > Hi Dims & Eddie,
> > > > > > > >
> > > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > > WsmService?
> > > > > > > > Any pointers will be helpful.
> > > > > > > >
> > > > > > > > I am going through the wiki and JSR documentation and will
> get
> > > back with
> > > > > > > > questions.
> > > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > > relevent
> > > > > > > classes
> > > > > > > > for the annotations support?
> > > > > > > >
> > > > > > > > Regards,
> > > > > > > >
> > > > > > > > Rajith
> > > > > > > >
> > > > > > > > On 2/5/06, Eddie O'Neil < _ekoneil@gmail.com_
> > <ma...@gmail.com>> wrote:
> > > > > > > > >
> > > > > > > > > Dims--
> > > > > > > > >
> > > > > > > > >   Hey; apologies for the delay.  That's basically right
> > -- there
> > > is
> > > > > > > > > actually one other step in the annotation processing
> > pipeline
> > > which is
> > > > > > > > > verifying the validity of any annotations on the class.
> >  So, it
> > > would
> > > > > > > > > be:
> > > > > > > > >
> > > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > > building
> > > > > > > > > (MirrorWsmBuilder)
> > > > > > > > >
> > > > > > > > > which returns a WsmService object that can be wired up
> into
> > > axis2
> > > > > > > stuff.
> > > > > > > > >
> > > > > > > > >   I can certainly break the Axis 1.x stuff into a
> > separate JAR;
> > > my
> > > > > > > > > original plan was to just put the Axis 1.x and 2 bits in
> the
> > > same JAR
> > > > > > > > > file, but if this is a problem, let me know and I can
> > make three
> > > JARs
> > > > > > > > > -- generic web service processing code, axis 1, axis 2,
> > etc.
> > > > > > > > >
> > > > > > > > >   There is one important part of this that isn't done
> > yet, and
> > > that's
> > > > > > > > > to provide something that can be used inside of a server
> > runtime
> > > that
> > > > > > > > > abstracts from Sun's Mirror types which are used inside
> > of APT.
> > > Not
> > > > > > > > > exactly sure what this looks like yet -- could be
> > reflection or
> > > > > > > > > something else that abstracts from Sun's Mirror APIs (used
>
> > > inside of
> > > > > > > > > APT).
> > > > > > > > >
> > > > > > > > >   Do you want to run this from inside of the Axis2
> > runtime or at
> > > > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > > > >
> > > > > > > > > Eddie
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On 2/1/06, Davanum Srinivas < _davanum@gmail.com_
> > <ma...@gmail.com>> wrote:
> > > > > > > > > > Eddie,
> > > > > > > > > >
> > > > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to
> > inspect
> > > a
> > > > > > > given
> > > > > > > > > > java class? and one the WsmService object is built, then
> > > translate
> > > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > > framework
> > > > > > > into
> > > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on
> the
> > > right
> > > > > > > track
> > > > > > > > > > with this thinking?
> > > > > > > > > >
> > > > > > > > > > thanks,
> > > > > > > > > > dims
> > > > > > > > > >
> > > > > > > > > > On 1/3/06, Eddie O'Neil < _ekoneil@gmail.com_
> > <mailto:ekoneil@gmail.com >> wrote:
> > > > > > > > > > > All--
> > > > > > > > > > >
> > > > > > > > > > >   Happy New Year!  And, as a way to start the year
> > off on a
> > > good
> > > > > > > foot,
> > > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how
> > we get
> > > from
> > > > > > > here to
> > > > > > > > > > > there with some details about where we are and what
> > needs to
> > > > > > > happen.
> > > > > > > > > > >
> > > > > > > > > > >   Today, there are two core WSM parts, both of which
> are
> > > tailored
> > > > > > > to
> > > > > > > > > > > the Axis web service stack:
> > > > > > > > > > >
> > > > > > > > > > >   build-time: This is a generic annotation
> > processing layer
> > > that
> > > > > > > has
> > > > > > > > > > > the ability to work against Mirror, reflection, and
> > WSDL to
> > > > > > > produce a
> > > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > > build-time
> > > > > > > > > > > layer has a plug-point for generating source
> > artifacts to
> > > support
> > > > > > > > > > > various web service runtimes.  For example, the Axis
> > > > > > > implementation
> > > > > > > > > > > produces a serialized version of the WSM JavaBean
> model.
> > > This
> > > > > > > could
> > > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > > artifacts,
> > > > > > > etc.
> > > > > > > > > > >
> > > > > > > > > > >   runtime: The runtime side of WSM is specifically
> > built to
> > > > > > > support
> > > > > > > > > > > the Axis 1.x runtime.  It loads the serialized
> JavaBean
> > > model
> > > > > > > > > > > generated at build time and uses an Axis Handler to
> > > configure a
> > > > > > > > > > > SOAPService given this information.
> > > > > > > > > > >
> > > > > > > > > > >   There is another large bunch of code in WSM
> > related to
> > > tools:
> > > > > > > > > > >
> > > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
> > service
> > > > > > > development
> > > > > > > > > > > model and starts with a WSDL to produce an annotated
> > Java
> > > source
> > > > > > > file.
> > > > > > > > > > >  This tool requires significant knowledge of WSDL
> > and type
> > > mapping
> > > > > > > for
> > > > > > > > > > > a specific web service stack.  For example, the
> > mapping for
> > > an XSD
> > > > > > > > > > > year is mapped to org.apache.axis.types.Year and
> > something
> > > > > > > different
> > > > > > > > > > > on other web service stacks.  wsdl2java is a
> > non-trivial
> > > bunch of
> > > > > > > code
> > > > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > > > >
> > > > > > > > > > >   In order to finish WSM, one more re-architecting
> step
> > > needs to
> > > > > > > be
> > > > > > > > > > > completed; I'd like to remove the use of a
> > serialized Java
> > > object
> > > > > > > as
> > > > > > > > > > > the way to communicate from the build-time to
> > runtime parts
> > > of the
> > > > > > > > > > > implementation.  This would be replaced with a WSDD
> > like,
> > > but WSM
> > > > > > > > > > > specific, XML descriptor of the service.  AFAICT,
> > WSDD can't
> > > be
> > > > > > > used
> > > > > > > > > > > for this because too closely matches the shape of a
> Java
> > > class
> > > > > > > (Dims
> > > > > > > > > > > and others, feel free to correct me if I'm wrong).
> >  So, we
> > > need a
> > > > > > > > > > > simple XML file that describes the information
> > captured in a
> > > > > > > > > > > WsmService.
> > > > > > > > > > >
> > > > > > > > > > >   Once this is done, we can start work on passing the
> > > JSR-181 TCK.
> > > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > > > >
> > > > > > > > > > >   In order to expedite the process of getting from
> > here to
> > > TCK
> > > > > > > > > > > compliance, I'd like to suggest that we stop stop
> > work on
> > > the
> > > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > > restart
> > > > > > > this
> > > > > > > > > > > tool immediately post-1.0.
> > > > > > > > > > >
> > > > > > > > > > >   Post 1.0, there are lots of other things that we
> > could do
> > > > > > > including:
> > > > > > > > > > >
> > > > > > > > > > > - JDK 1.4 support
> > > > > > > > > > > - drop-in support for WSM in Axis to support
> iteratively
> > > > > > > developing an
> > > > > > > > > > > annotated web service
> > > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
> > working
> > > on
> > > > > > > this?)
> > > > > > > > > > > - custom annotations to support container-specific
> > features
> > > like
> > > > > > > type
> > > > > > > > > mapping
> > > > > > > > > > > - and so on...
> > > > > > > > > > >
> > > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's
> > 1.0 done
> > > and
> > > > > > > would
> > > > > > > > > > > like to narrow scope in order to do that.  I think
> we're
> > > almost
> > > > > > > ready
> > > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > > annotated
> > > > > > > Axis
> > > > > > > > > > > web service shortly.
> > > > > > > > > > >
> > > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > > > > >
> > > > > > > > > > > Eddie
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > >
> > > > >
> > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> > > _axis-dev-unsubscribe@ws.apache.org _
> > <ma...@ws.apache.org>
> > > > > For additional commands, e-mail: _axis-dev-help@ws.apache.org_
> > <mailto: axis-dev-help@ws.apache.org>
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
> > --
> > Davanum Srinivas : _http://wso2.com/blogs/_
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: _axis-dev-unsubscribe@ws.apache.org_
> > <mailto: axis-dev-unsubscribe@ws.apache.org>
> > For additional commands, e-mail: _axis-dev-help@ws.apache.org_
> > <ma...@ws.apache.org>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Guillaume Sauthier <Gu...@objectweb.org>.
Dennis Sosnoski wrote:
> Probably the nicest approach from an end user standpoint would be to 
> allow JAX-WS annotations to be used without a services.xml. If Axis2 
> opened an aar and didn't find a services.xml it would then need to 
> search for class files with annotations, which basically means parsing 
> all the class files in the archive (not loading them into memory, but 
> using a class parser such as ASM). Ugly, but it should work.
Maybe that's ugly, but it works very well, and, more over,  that's very 
fast.
The other solution is to create a ClassLoader, and again, iterates over 
all the classes to find the annotated ones : interesting because we use 
the standard annotation API for annotation reads, but it's not so 
interesting if we want to generate bytecode stuff (modify existing classes).

>
> The other alternative would be to require a services.xml and list the 
> classes in that. You'd then only need to look at the listed classes, 
> and could probably just load these classes and use the reflection API 
> to access the annotation information. A little more work for the user, 
> but should be okay. If someone wants to they could build a wizard that 
> takes care of the aar generation and automatically includes all the 
> annotated service classes in the services.xml.
It should be great if the user has nothing more to do to make its JAX-WS 
services available with Axis2.
JAS-WS already requires (in my understanding) a lot of "offline" 
generation :
* JAXB 2.0 classes
* SEI
* ...
Please do not add another step for JAX-WS with Axis ...

Regards
Guillaume
>
>  - Dennis
>
> Nicholas L Gallardo wrote:
>>
>> Rajith,
>>
>> From a JAX-WS perspective, the @WebService annotation does introduce 
>> some challenges when it comes to determining what the interface of a 
>> Web service will be.  From my interpretation, which is just that, it 
>> doesn't dictate as much how the annotation should be handled at 
>> runtime as much as it does instruct how the annotation affects the 
>> Java to WSDL mapping.  I think the assumption after that is, the 
>> system will then do whatever it needs to configure itself to fulfill 
>> the contract defined by that WSDL.  If I understand correctly what 
>> Dim's has proposed, this is the piece that your 
>> WSMToAxisServiceBuilder will fulfill.  The rest is making sure that 
>> the information gets relayed to Axis2 correctly.
>>
>> With respect to just the @WebService annotation, and not the 
>> annotations processing as a whole, it seems like you might encounter 
>> a few scenarios that could be tricky.  I don't know enough about the 
>> specifics of WSM though, so it may resolve some of the headaches for 
>> you.
>>
>> - When a class is annotated with @WebService, any of the public 
>> methods available on that class are to be exposed as an operation in 
>> a Web service.  If that particular annotation instance has the WSDL 
>> document location specified, then we need to do some bit of 
>> processing/validation to make sure the public methods support what's 
>> defined in the WSDL.  Or.... does WSM just do that for you?
>>
>> - Because of the "serviceEnpdointInterface" property on the 
>> @WebService annotation, the above case becomes a little more complex. 
>>  JAX-WS has a notion of squashing that SEI, along with the public 
>> methods on any other interface that the SEI may extend into one giant 
>> interface, which should then be reflected in the WSDL.  Again, I 
>> don't know enough about WSM, but this might be something it handles 
>> for you.  If not, it seems like you will be required to walk the 
>> annotations and collect the metadata from every interface that's 
>> extended?
>>
>> I'm glad to see you'll be working on this.  As mentioned before, I 
>> think there is some commonality that can be leveraged when it comes 
>> to JAX-WS as well.  A few questions though about the annotations 
>> support for Axis2 endpoints (I know you're just getting started with 
>> this so I understand if some of this is longer term) :
>>
>> - When annotations are added to a class, are you still requiring the 
>> presence of a services.xml?  If so, what's the minimum set of 
>> information required in that document?  I.e., could I get away with 
>> annotating a class and just specifying that ServiceClass property in 
>> XML file?  I can see still needing the deployment descriptor for 
>> specifying module refs, but would it be able to have just that and 
>> not the operation descriptions.  Just a thought.
>>
>> - If annotations are supported for Axis2/ADB endpoints, how would we 
>> distinguish those from JAX-WS endpoints?
>>
>> Hope this helps...
>>
>> Regards,
>>
>> Nicholas Gallardo
>> WebSphere  -  WebServices Development
>> nlgallar@us.ibm.com
>> Phone: 512-838-1182
>> Building: 901 / 5G-016
>>
>>
>> *"Rajith Attapattu" <ra...@gmail.com>*
>>
>> 06/19/2006 09:35 PM
>> Please respond to
>> axis-dev@ws.apache.org
>>
>>
>>     
>> To
>>     axis-dev@ws.apache.org, dims@apache.org
>> cc
>>     
>> Subject
>>     Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
>>
>>
>>
>>     
>>
>>
>>
>>
>>
>> Dims,
>>
>> Sounds good.
>>
>> So it looks like the @WebService tag is not really useful as we 
>> explicitly name the class in the services.xml
>> So from Axis2 side we are covered
>>
>> However I am wondering if there is some requirment from the JAX-WS 
>> side as to how we should leverage this @WebService annotation.
>> wondering if the spec mandates some sort of stratergy for this. (I 
>> read the spec and couldn't find anything)
>>
>> For now lets go ahead with what we planned (with a message receiver) 
>> and worry about @WebService thing when we figure out the exact 
>> requirment.
>>
>> Regards,
>>
>> Rajith.
>>
>> On 6/19/06, *Davanum Srinivas* <_davanum@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> Rajith,
>>
>> In the short term, We have RPCMessageReceiver,
>> SpringRPCMessageReceiver etc. we could throw in a quick
>> WSMRPCMessageReceiver as well. So we will have to look at the class
>> name specified in the services.xml just like we do for other
>> receivers.
>>
>> -- dims
>>
>> On 6/19/06, Rajith Attapattu <_rajith77@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > Hi Dims
>> >
>> > One more question if you don't mind :-)
>> >
>> > What is the plan to figure out a class marked with @WebService?
>> >
>> > a) are we going to look through a particular location to introspect 
>> any
>> > class files droped there ?
>> > b) is the user responsible for adding the service via some API 
>> method ? for
>> > ex: AxisService.createService(String className) ?
>> >
>> > The rest we can introspect once we get the class identified. But I am
>> > wondering how is the initial step of figuring out the marked 
>> (annotated
>> > class) class with the @WebService tag.
>> >
>> > Sorry for the long list of questions.
>> >
>> > Regards,
>> >
>> > Rajith
>> >
>> >
>> > On 6/16/06, Rajith Attapattu <_ rajith77@gmail.com_ 
>> <ma...@gmail.com> > wrote:
>> > >
>> > > Hi Dims,
>> > >
>> > > Sorry if this question sounds stupid, but there is something that 
>> I don't
>> > get.
>> > > Can you explain any gaps that I have? :-)
>> > >
>> > > So we use WSM to get the jsr181 support.
>> > > But, It looks like wsm is not complete in terms of the POJO 
>> aspect as the
>> > reflection based ReflectionWsmServiceFactory is not done.
>> > >
>> > > I guess part of the job is to complete the wsm stuff and then use it
>> > inside axis2. Or did I get this wrong?
>> > >
>> > >
>> > > >> Forgot to mention, please use annogen ( 
>> _http://annogen.codehaus.org/_ )
>> > to access the annotations which are needed to build the WsmService
>> > >
>> > > So are we going to do the implementation of 
>> ReflectionWsmServiceFactory
>> > inside Axis2?
>> > >
>> > > I thought we are going to complete that inside wsm and then 
>> implement
>> > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
>> > WSMService thats produced via the ReflectionWsmServiceFactory.
>> > >
>> > > Did I miss something?
>> > >
>> > > Thanks,
>> > >
>> > >
>> > > Rajith
>> > >
>> > >
>> > > On 6/13/06, Davanum Srinivas < _davanum@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > Let's keep this to axis-dev@ until we need some questions answered
>> > > > from beehive folks. Forgot to mention, please use annogen
>> > > > (_ http://annogen.codehaus.org/_) to access the annotations 
>> which are
>> > > > needed to build the WsmService. We explicitly took a dependency on
>> > > > annogen in Axis2 for this purpose.
>> > > >
>> > > > thanks,
>> > > > -- dims
>> > > >
>> > > > On 6/13/06, Rajith Attapattu <_rajith77@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > > Hi Dims,
>> > > > >
>> > > > > Thanks for the pointers.
>> > > > > Let me look at how to get the ReflectionWsmServiceFactory 
>> impl going.
>> > > > > after that I can start with WSMToAxisServiceBuilder to build an
>> > AxisService
>> > > > > out of an anotated POJO.
>> > > > > Once I have something I will create a JIRA and attach a 
>> patch. U can
>> > take a
>> > > > > look at the code and then we can take it from there.
>> > > > > If I have questions I will bug u again :-)
>> > > > >
>> > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
>> > wondering how
>> > > > > to get WSM specific questions answered :-)
>> > > > >
>> > > > > Regards,
>> > > > >
>> > > > > Rajith
>> > > > >
>> > > > > On 6/13/06, Davanum Srinivas <_ davanum@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > > >
>> > > > > > Rajith,
>> > > > > >
>> > > > > > I think you need to implement ReflectionWsmServiceFactory 
>> first. The
>> > > > > > angle of attack i am looking at is deploying a POJO with
>> > annotations.
>> > > > > > (See AxisService.createService in Axis2 where one can deploy a
>> > pojo).
>> > > > > > You will have to write a WSMToAxisServiceBuilder (see
>> > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService 
>> info from
>> > WSM.
>> > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
>> > > > > >
>> > > > > > thanks,
>> > > > > > dims
>> > > > > >
>> > > > > > On 6/5/06, Rajith Attapattu <_rajith77@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > > > > Hi Dims & Eddie,
>> > > > > > >
>> > > > > > > So code wise I should be looking at MirrorWsmBuilder and
>> > WsmService?
>> > > > > > > Any pointers will be helpful.
>> > > > > > >
>> > > > > > > I am going through the wiki and JSR documentation and 
>> will get
>> > back with
>> > > > > > > questions.
>> > > > > > > Meanwhile do we have that seperate jar that bundles all the
>> > relevent
>> > > > > > classes
>> > > > > > > for the annotations support?
>> > > > > > >
>> > > > > > > Regards,
>> > > > > > >
>> > > > > > > Rajith
>> > > > > > >
>> > > > > > > On 2/5/06, Eddie O'Neil < _ekoneil@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > > > > >
>> > > > > > > > Dims--
>> > > > > > > >
>> > > > > > > >   Hey; apologies for the delay.  That's basically right 
>> -- there
>> > is
>> > > > > > > > actually one other step in the annotation processing 
>> pipeline
>> > which is
>> > > > > > > > verifying the validity of any annotations on the class. 
>>  So, it
>> > would
>> > > > > > > > be:
>> > > > > > > >
>> > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
>> > building
>> > > > > > > > (MirrorWsmBuilder)
>> > > > > > > >
>> > > > > > > > which returns a WsmService object that can be wired up 
>> into
>> > axis2
>> > > > > > stuff.
>> > > > > > > >
>> > > > > > > >   I can certainly break the Axis 1.x stuff into a 
>> separate JAR;
>> > my
>> > > > > > > > original plan was to just put the Axis 1.x and 2 bits 
>> in the
>> > same JAR
>> > > > > > > > file, but if this is a problem, let me know and I can 
>> make three
>> > JARs
>> > > > > > > > -- generic web service processing code, axis 1, axis 2, 
>> etc.
>> > > > > > > >
>> > > > > > > >   There is one important part of this that isn't done 
>> yet, and
>> > that's
>> > > > > > > > to provide something that can be used inside of a 
>> server runtime
>> > that
>> > > > > > > > abstracts from Sun's Mirror types which are used inside 
>> of APT.
>> > Not
>> > > > > > > > exactly sure what this looks like yet -- could be 
>> reflection or
>> > > > > > > > something else that abstracts from Sun's Mirror APIs (used
>> > inside of
>> > > > > > > > APT).
>> > > > > > > >
>> > > > > > > >   Do you want to run this from inside of the Axis2 
>> runtime or at
>> > > > > > > > build-time on the command line?  I'm assuming the former.
>> > > > > > > >
>> > > > > > > > Eddie
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > On 2/1/06, Davanum Srinivas < _davanum@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > > > > > > Eddie,
>> > > > > > > > >
>> > > > > > > > > i was looking at the current codebase and spotted the
>> > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to 
>> inspect
>> > a
>> > > > > > given
>> > > > > > > > > java class? and one the WsmService object is built, then
>> > translate
>> > > > > > > > > that to Axis2 thingies? Can we split out the processing
>> > framework
>> > > > > > into
>> > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on 
>> the
>> > right
>> > > > > > track
>> > > > > > > > > with this thinking?
>> > > > > > > > >
>> > > > > > > > > thanks,
>> > > > > > > > > dims
>> > > > > > > > >
>> > > > > > > > > On 1/3/06, Eddie O'Neil < _ekoneil@gmail.com_ 
>> <ma...@gmail.com>> wrote:
>> > > > > > > > > > All--
>> > > > > > > > > >
>> > > > > > > > > >   Happy New Year!  And, as a way to start the year 
>> off on a
>> > good
>> > > > > > foot,
>> > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how 
>> we get
>> > from
>> > > > > > here to
>> > > > > > > > > > there with some details about where we are and what 
>> needs to
>> > > > > > happen.
>> > > > > > > > > >
>> > > > > > > > > >   Today, there are two core WSM parts, both of 
>> which are
>> > tailored
>> > > > > > to
>> > > > > > > > > > the Axis web service stack:
>> > > > > > > > > >
>> > > > > > > > > >   build-time: This is a generic annotation 
>> processing layer
>> > that
>> > > > > > has
>> > > > > > > > > > the ability to work against Mirror, reflection, and 
>> WSDL to
>> > > > > > produce a
>> > > > > > > > > > WSM JavaBean model that represents a web service.  The
>> > build-time
>> > > > > > > > > > layer has a plug-point for generating source 
>> artifacts to
>> > support
>> > > > > > > > > > various web service runtimes.  For example, the Axis
>> > > > > > implementation
>> > > > > > > > > > produces a serialized version of the WSM JavaBean 
>> model.
>> > This
>> > > > > > could
>> > > > > > > > > > also produce JAX-RPC source / deployment descriptor
>> > artifacts,
>> > > > > > etc.
>> > > > > > > > > >
>> > > > > > > > > >   runtime: The runtime side of WSM is specifically 
>> built to
>> > > > > > support
>> > > > > > > > > > the Axis 1.x runtime.  It loads the serialized 
>> JavaBean
>> > model
>> > > > > > > > > > generated at build time and uses an Axis Handler to
>> > configure a
>> > > > > > > > > > SOAPService given this information.
>> > > > > > > > > >
>> > > > > > > > > >   There is another large bunch of code in WSM 
>> related to
>> > tools:
>> > > > > > > > > >
>> > > > > > > > > > wsdl2ajava -- this tool supports the top-down web 
>> service
>> > > > > > development
>> > > > > > > > > > model and starts with a WSDL to produce an 
>> annotated Java
>> > source
>> > > > > > file.
>> > > > > > > > > >  This tool requires significant knowledge of WSDL 
>> and type
>> > mapping
>> > > > > > for
>> > > > > > > > > > a specific web service stack.  For example, the 
>> mapping for
>> > an XSD
>> > > > > > > > > > year is mapped to org.apache.axis.types.Year and 
>> something
>> > > > > > different
>> > > > > > > > > > on other web service stacks.  wsdl2java is a 
>> non-trivial
>> > bunch of
>> > > > > > code
>> > > > > > > > > > to write, but is also a very useful tool.
>> > > > > > > > > >
>> > > > > > > > > >   In order to finish WSM, one more re-architecting 
>> step
>> > needs to
>> > > > > > be
>> > > > > > > > > > completed; I'd like to remove the use of a 
>> serialized Java
>> > object
>> > > > > > as
>> > > > > > > > > > the way to communicate from the build-time to 
>> runtime parts
>> > of the
>> > > > > > > > > > implementation.  This would be replaced with a WSDD 
>> like,
>> > but WSM
>> > > > > > > > > > specific, XML descriptor of the service.  AFAICT, 
>> WSDD can't
>> > be
>> > > > > > used
>> > > > > > > > > > for this because too closely matches the shape of a 
>> Java
>> > class
>> > > > > > (Dims
>> > > > > > > > > > and others, feel free to correct me if I'm wrong). 
>>  So, we
>> > need a
>> > > > > > > > > > simple XML file that describes the information 
>> captured in a
>> > > > > > > > > > WsmService.
>> > > > > > > > > >
>> > > > > > > > > >   Once this is done, we can start work on passing the
>> > JSR-181 TCK.
>> > > > > > > > > > This will be done atop Apache Axis 1.x.
>> > > > > > > > > >
>> > > > > > > > > >   In order to expedite the process of getting from 
>> here to
>> > TCK
>> > > > > > > > > > compliance, I'd like to suggest that we stop stop 
>> work on
>> > the
>> > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
>> > restart
>> > > > > > this
>> > > > > > > > > > tool immediately post-1.0.
>> > > > > > > > > >
>> > > > > > > > > >   Post 1.0, there are lots of other things that we 
>> could do
>> > > > > > including:
>> > > > > > > > > >
>> > > > > > > > > > - JDK 1.4 support
>> > > > > > > > > > - drop-in support for WSM in Axis to support 
>> iteratively
>> > > > > > developing an
>> > > > > > > > > > annotated web service
>> > > > > > > > > > - JAX-RPC support (Ias, still have any interest in 
>> working
>> > on
>> > > > > > this?)
>> > > > > > > > > > - custom annotations to support container-specific 
>> features
>> > like
>> > > > > > type
>> > > > > > > > mapping
>> > > > > > > > > > - and so on...
>> > > > > > > > > >
>> > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 
>> 1.0 done
>> > and
>> > > > > > would
>> > > > > > > > > > like to narrow scope in order to do that.  I think 
>> we're
>> > almost
>> > > > > > ready
>> > > > > > > > > > for the TCK; I'll start on the XML file to describe an
>> > annotated
>> > > > > > Axis
>> > > > > > > > > > web service shortly.
>> > > > > > > > > >
>> > > > > > > > > >   Thoughts, comments, and flames welcome.
>> > > > > > > > > >
>> > > > > > > > > > Eddie
>> > > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > > --
>> > > > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
>> > > > > > > > >
>> > > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > >
>> > > > > >
>> > > > > > --
>> > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
>> > > > > >
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > > > --
>> > > > Davanum Srinivas : _http://wso2.com/blogs/_
>> > > >
>> > > >
>> > ---------------------------------------------------------------------
>> > > > To unsubscribe, e-mail:
>> > _axis-dev-unsubscribe@ws.apache.org_ 
>> <ma...@ws.apache.org>
>> > > > For additional commands, e-mail: _axis-dev-help@ws.apache.org_ 
>> <ma...@ws.apache.org>
>> > > >
>> > > >
>> > >
>> > >
>> >
>> >
>>
>>
>> -- 
>> Davanum Srinivas : _http://wso2.com/blogs/_
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: _axis-dev-unsubscribe@ws.apache.org_ 
>> <ma...@ws.apache.org>
>> For additional commands, e-mail: _axis-dev-help@ws.apache.org_ 
>> <ma...@ws.apache.org>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Nicholas L Gallardo <nl...@us.ibm.com>.
I agree with Dennis.  Loading the class files can become quite expensive 
and a scanning approach is much better.

Regards,

Nicholas Gallardo
WebSphere  -  WebServices Development
nlgallar@us.ibm.com
Phone: 512-838-1182
Building: 901 / 5G-016



Dennis Sosnoski <dm...@sosnoski.com> 
06/20/2006 12:52 AM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org
cc

Subject
Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)






Probably the nicest approach from an end user standpoint would be to 
allow JAX-WS annotations to be used without a services.xml. If Axis2 
opened an aar and didn't find a services.xml it would then need to 
search for class files with annotations, which basically means parsing 
all the class files in the archive (not loading them into memory, but 
using a class parser such as ASM). Ugly, but it should work.

The other alternative would be to require a services.xml and list the 
classes in that. You'd then only need to look at the listed classes, and 
could probably just load these classes and use the reflection API to 
access the annotation information. A little more work for the user, but 
should be okay. If someone wants to they could build a wizard that takes 
care of the aar generation and automatically includes all the annotated 
service classes in the services.xml.

  - Dennis

Nicholas L Gallardo wrote:
>
> Rajith,
>
> From a JAX-WS perspective, the @WebService annotation does introduce 
> some challenges when it comes to determining what the interface of a 
> Web service will be.  From my interpretation, which is just that, it 
> doesn't dictate as much how the annotation should be handled at 
> runtime as much as it does instruct how the annotation affects the 
> Java to WSDL mapping.  I think the assumption after that is, the 
> system will then do whatever it needs to configure itself to fulfill 
> the contract defined by that WSDL.  If I understand correctly what 
> Dim's has proposed, this is the piece that your 
> WSMToAxisServiceBuilder will fulfill.  The rest is making sure that 
> the information gets relayed to Axis2 correctly.
>
> With respect to just the @WebService annotation, and not the 
> annotations processing as a whole, it seems like you might encounter a 
> few scenarios that could be tricky.  I don't know enough about the 
> specifics of WSM though, so it may resolve some of the headaches for 
you.
>
> - When a class is annotated with @WebService, any of the public 
> methods available on that class are to be exposed as an operation in a 
> Web service.  If that particular annotation instance has the WSDL 
> document location specified, then we need to do some bit of 
> processing/validation to make sure the public methods support what's 
> defined in the WSDL.  Or.... does WSM just do that for you?
>
> - Because of the "serviceEnpdointInterface" property on the 
> @WebService annotation, the above case becomes a little more complex. 
>  JAX-WS has a notion of squashing that SEI, along with the public 
> methods on any other interface that the SEI may extend into one giant 
> interface, which should then be reflected in the WSDL.  Again, I don't 
> know enough about WSM, but this might be something it handles for you. 
>  If not, it seems like you will be required to walk the annotations 
> and collect the metadata from every interface that's extended?
>
> I'm glad to see you'll be working on this.  As mentioned before, I 
> think there is some commonality that can be leveraged when it comes to 
> JAX-WS as well.  A few questions though about the annotations support 
> for Axis2 endpoints (I know you're just getting started with this so I 
> understand if some of this is longer term) :
>
> - When annotations are added to a class, are you still requiring the 
> presence of a services.xml?  If so, what's the minimum set of 
> information required in that document?  I.e., could I get away with 
> annotating a class and just specifying that ServiceClass property in 
> XML file?  I can see still needing the deployment descriptor for 
> specifying module refs, but would it be able to have just that and not 
> the operation descriptions.  Just a thought.
>
> - If annotations are supported for Axis2/ADB endpoints, how would we 
> distinguish those from JAX-WS endpoints?
>
> Hope this helps...
>
> Regards,
>
> Nicholas Gallardo
> WebSphere  -  WebServices Development
> nlgallar@us.ibm.com
> Phone: 512-838-1182
> Building: 901 / 5G-016
>
>
> *"Rajith Attapattu" <ra...@gmail.com>*
>
> 06/19/2006 09:35 PM
> Please respond to
> axis-dev@ws.apache.org
>
>
> 
> To
>                axis-dev@ws.apache.org, dims@apache.org
> cc
> 
> Subject
>                Re: Annotation parsing framework for Axis2 (Re: [wsm] a 
plan)
>
>
>
> 
>
>
>
>
>
> Dims,
>
> Sounds good.
>
> So it looks like the @WebService tag is not really useful as we 
> explicitly name the class in the services.xml
> So from Axis2 side we are covered
>
> However I am wondering if there is some requirment from the JAX-WS 
> side as to how we should leverage this @WebService annotation.
> wondering if the spec mandates some sort of stratergy for this. (I 
> read the spec and couldn't find anything)
>
> For now lets go ahead with what we planned (with a message receiver) 
> and worry about @WebService thing when we figure out the exact 
> requirment.
>
> Regards,
>
> Rajith.
>
> On 6/19/06, *Davanum Srinivas* <_davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> Rajith,
>
> In the short term, We have RPCMessageReceiver,
> SpringRPCMessageReceiver etc. we could throw in a quick
> WSMRPCMessageReceiver as well. So we will have to look at the class
> name specified in the services.xml just like we do for other
> receivers.
>
> -- dims
>
> On 6/19/06, Rajith Attapattu <_rajith77@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > Hi Dims
> >
> > One more question if you don't mind :-)
> >
> > What is the plan to figure out a class marked with @WebService?
> >
> > a) are we going to look through a particular location to introspect 
any
> > class files droped there ?
> > b) is the user responsible for adding the service via some API 
> method ? for
> > ex: AxisService.createService(String className) ?
> >
> > The rest we can introspect once we get the class identified. But I am
> > wondering how is the initial step of figuring out the marked 
(annotated
> > class) class with the @WebService tag.
> >
> > Sorry for the long list of questions.
> >
> > Regards,
> >
> > Rajith
> >
> >
> > On 6/16/06, Rajith Attapattu <_ rajith77@gmail.com_ 
> <ma...@gmail.com> > wrote:
> > >
> > > Hi Dims,
> > >
> > > Sorry if this question sounds stupid, but there is something that 
> I don't
> > get.
> > > Can you explain any gaps that I have? :-)
> > >
> > > So we use WSM to get the jsr181 support.
> > > But, It looks like wsm is not complete in terms of the POJO aspect 
> as the
> > reflection based ReflectionWsmServiceFactory is not done.
> > >
> > > I guess part of the job is to complete the wsm stuff and then use it
> > inside axis2. Or did I get this wrong?
> > >
> > >
> > > >> Forgot to mention, please use annogen ( 
> _http://annogen.codehaus.org/_ )
> > to access the annotations which are needed to build the WsmService
> > >
> > > So are we going to do the implementation of 
> ReflectionWsmServiceFactory
> > inside Axis2?
> > >
> > > I thought we are going to complete that inside wsm and then 
implement
> > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > WSMService thats produced via the ReflectionWsmServiceFactory.
> > >
> > > Did I miss something?
> > >
> > > Thanks,
> > >
> > >
> > > Rajith
> > >
> > >
> > > On 6/13/06, Davanum Srinivas < _davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > Let's keep this to axis-dev@ until we need some questions answered
> > > > from beehive folks. Forgot to mention, please use annogen
> > > > (_ http://annogen.codehaus.org/_) to access the annotations 
> which are
> > > > needed to build the WsmService. We explicitly took a dependency on
> > > > annogen in Axis2 for this purpose.
> > > >
> > > > thanks,
> > > > -- dims
> > > >
> > > > On 6/13/06, Rajith Attapattu <_rajith77@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > Hi Dims,
> > > > >
> > > > > Thanks for the pointers.
> > > > > Let me look at how to get the ReflectionWsmServiceFactory impl 
> going.
> > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > AxisService
> > > > > out of an anotated POJO.
> > > > > Once I have something I will create a JIRA and attach a patch. 
> U can
> > take a
> > > > > look at the code and then we can take it from there.
> > > > > If I have questions I will bug u again :-)
> > > > >
> > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > wondering how
> > > > > to get WSM specific questions answered :-)
> > > > >
> > > > > Regards,
> > > > >
> > > > > Rajith
> > > > >
> > > > > On 6/13/06, Davanum Srinivas <_ davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > >
> > > > > > Rajith,
> > > > > >
> > > > > > I think you need to implement ReflectionWsmServiceFactory 
> first. The
> > > > > > angle of attack i am looking at is deploying a POJO with
> > annotations.
> > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > pojo).
> > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info 
> from
> > WSM.
> > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > > >
> > > > > > thanks,
> > > > > > dims
> > > > > >
> > > > > > On 6/5/06, Rajith Attapattu <_rajith77@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > Hi Dims & Eddie,
> > > > > > >
> > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > WsmService?
> > > > > > > Any pointers will be helpful.
> > > > > > >
> > > > > > > I am going through the wiki and JSR documentation and will 
get
> > back with
> > > > > > > questions.
> > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > relevent
> > > > > > classes
> > > > > > > for the annotations support?
> > > > > > >
> > > > > > > Regards,
> > > > > > >
> > > > > > > Rajith
> > > > > > >
> > > > > > > On 2/5/06, Eddie O'Neil < _ekoneil@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > >
> > > > > > > > Dims--
> > > > > > > >
> > > > > > > >   Hey; apologies for the delay.  That's basically right 
> -- there
> > is
> > > > > > > > actually one other step in the annotation processing 
> pipeline
> > which is
> > > > > > > > verifying the validity of any annotations on the class. 
>  So, it
> > would
> > > > > > > > be:
> > > > > > > >
> > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > building
> > > > > > > > (MirrorWsmBuilder)
> > > > > > > >
> > > > > > > > which returns a WsmService object that can be wired up 
into
> > axis2
> > > > > > stuff.
> > > > > > > >
> > > > > > > >   I can certainly break the Axis 1.x stuff into a 
> separate JAR;
> > my
> > > > > > > > original plan was to just put the Axis 1.x and 2 bits in 
the
> > same JAR
> > > > > > > > file, but if this is a problem, let me know and I can 
> make three
> > JARs
> > > > > > > > -- generic web service processing code, axis 1, axis 2, 
> etc.
> > > > > > > >
> > > > > > > >   There is one important part of this that isn't done 
> yet, and
> > that's
> > > > > > > > to provide something that can be used inside of a server 
> runtime
> > that
> > > > > > > > abstracts from Sun's Mirror types which are used inside 
> of APT.
> > Not
> > > > > > > > exactly sure what this looks like yet -- could be 
> reflection or
> > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > inside of
> > > > > > > > APT).
> > > > > > > >
> > > > > > > >   Do you want to run this from inside of the Axis2 
> runtime or at
> > > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > > >
> > > > > > > > Eddie
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2/1/06, Davanum Srinivas < _davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > > > Eddie,
> > > > > > > > >
> > > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to 
> inspect
> > a
> > > > > > given
> > > > > > > > > java class? and one the WsmService object is built, then
> > translate
> > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > framework
> > > > > > into
> > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on 
the
> > right
> > > > > > track
> > > > > > > > > with this thinking?
> > > > > > > > >
> > > > > > > > > thanks,
> > > > > > > > > dims
> > > > > > > > >
> > > > > > > > > On 1/3/06, Eddie O'Neil < _ekoneil@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > > > > All--
> > > > > > > > > >
> > > > > > > > > >   Happy New Year!  And, as a way to start the year 
> off on a
> > good
> > > > > > foot,
> > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how 
> we get
> > from
> > > > > > here to
> > > > > > > > > > there with some details about where we are and what 
> needs to
> > > > > > happen.
> > > > > > > > > >
> > > > > > > > > >   Today, there are two core WSM parts, both of which 
are
> > tailored
> > > > > > to
> > > > > > > > > > the Axis web service stack:
> > > > > > > > > >
> > > > > > > > > >   build-time: This is a generic annotation 
> processing layer
> > that
> > > > > > has
> > > > > > > > > > the ability to work against Mirror, reflection, and 
> WSDL to
> > > > > > produce a
> > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > build-time
> > > > > > > > > > layer has a plug-point for generating source 
> artifacts to
> > support
> > > > > > > > > > various web service runtimes.  For example, the Axis
> > > > > > implementation
> > > > > > > > > > produces a serialized version of the WSM JavaBean 
model.
> > This
> > > > > > could
> > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > artifacts,
> > > > > > etc.
> > > > > > > > > >
> > > > > > > > > >   runtime: The runtime side of WSM is specifically 
> built to
> > > > > > support
> > > > > > > > > > the Axis 1.x runtime.  It loads the serialized 
JavaBean
> > model
> > > > > > > > > > generated at build time and uses an Axis Handler to
> > configure a
> > > > > > > > > > SOAPService given this information.
> > > > > > > > > >
> > > > > > > > > >   There is another large bunch of code in WSM 
> related to
> > tools:
> > > > > > > > > >
> > > > > > > > > > wsdl2ajava -- this tool supports the top-down web 
> service
> > > > > > development
> > > > > > > > > > model and starts with a WSDL to produce an annotated 
> Java
> > source
> > > > > > file.
> > > > > > > > > >  This tool requires significant knowledge of WSDL 
> and type
> > mapping
> > > > > > for
> > > > > > > > > > a specific web service stack.  For example, the 
> mapping for
> > an XSD
> > > > > > > > > > year is mapped to org.apache.axis.types.Year and 
> something
> > > > > > different
> > > > > > > > > > on other web service stacks.  wsdl2java is a 
> non-trivial
> > bunch of
> > > > > > code
> > > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > > >
> > > > > > > > > >   In order to finish WSM, one more re-architecting 
step
> > needs to
> > > > > > be
> > > > > > > > > > completed; I'd like to remove the use of a 
> serialized Java
> > object
> > > > > > as
> > > > > > > > > > the way to communicate from the build-time to 
> runtime parts
> > of the
> > > > > > > > > > implementation.  This would be replaced with a WSDD 
> like,
> > but WSM
> > > > > > > > > > specific, XML descriptor of the service.  AFAICT, 
> WSDD can't
> > be
> > > > > > used
> > > > > > > > > > for this because too closely matches the shape of a 
Java
> > class
> > > > > > (Dims
> > > > > > > > > > and others, feel free to correct me if I'm wrong). 
>  So, we
> > need a
> > > > > > > > > > simple XML file that describes the information 
> captured in a
> > > > > > > > > > WsmService.
> > > > > > > > > >
> > > > > > > > > >   Once this is done, we can start work on passing the
> > JSR-181 TCK.
> > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > > >
> > > > > > > > > >   In order to expedite the process of getting from 
> here to
> > TCK
> > > > > > > > > > compliance, I'd like to suggest that we stop stop 
> work on
> > the
> > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > restart
> > > > > > this
> > > > > > > > > > tool immediately post-1.0.
> > > > > > > > > >
> > > > > > > > > >   Post 1.0, there are lots of other things that we 
> could do
> > > > > > including:
> > > > > > > > > >
> > > > > > > > > > - JDK 1.4 support
> > > > > > > > > > - drop-in support for WSM in Axis to support 
iteratively
> > > > > > developing an
> > > > > > > > > > annotated web service
> > > > > > > > > > - JAX-RPC support (Ias, still have any interest in 
> working
> > on
> > > > > > this?)
> > > > > > > > > > - custom annotations to support container-specific 
> features
> > like
> > > > > > type
> > > > > > > > mapping
> > > > > > > > > > - and so on...
> > > > > > > > > >
> > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 
> 1.0 done
> > and
> > > > > > would
> > > > > > > > > > like to narrow scope in order to do that.  I think 
we're
> > almost
> > > > > > ready
> > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > annotated
> > > > > > Axis
> > > > > > > > > > web service shortly.
> > > > > > > > > >
> > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > > > >
> > > > > > > > > > Eddie
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > _axis-dev-unsubscribe@ws.apache.org_ 
> <ma...@ws.apache.org>
> > > > For additional commands, e-mail: _axis-dev-help@ws.apache.org_ 
> <ma...@ws.apache.org>
> > > >
> > > >
> > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : _http://wso2.com/blogs/_
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: _axis-dev-unsubscribe@ws.apache.org_ 
> <ma...@ws.apache.org>
> For additional commands, e-mail: _axis-dev-help@ws.apache.org_ 
> <ma...@ws.apache.org>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org



Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
Probably the nicest approach from an end user standpoint would be to 
allow JAX-WS annotations to be used without a services.xml. If Axis2 
opened an aar and didn't find a services.xml it would then need to 
search for class files with annotations, which basically means parsing 
all the class files in the archive (not loading them into memory, but 
using a class parser such as ASM). Ugly, but it should work.

The other alternative would be to require a services.xml and list the 
classes in that. You'd then only need to look at the listed classes, and 
could probably just load these classes and use the reflection API to 
access the annotation information. A little more work for the user, but 
should be okay. If someone wants to they could build a wizard that takes 
care of the aar generation and automatically includes all the annotated 
service classes in the services.xml.

  - Dennis

Nicholas L Gallardo wrote:
>
> Rajith,
>
> From a JAX-WS perspective, the @WebService annotation does introduce 
> some challenges when it comes to determining what the interface of a 
> Web service will be.  From my interpretation, which is just that, it 
> doesn't dictate as much how the annotation should be handled at 
> runtime as much as it does instruct how the annotation affects the 
> Java to WSDL mapping.  I think the assumption after that is, the 
> system will then do whatever it needs to configure itself to fulfill 
> the contract defined by that WSDL.  If I understand correctly what 
> Dim's has proposed, this is the piece that your 
> WSMToAxisServiceBuilder will fulfill.  The rest is making sure that 
> the information gets relayed to Axis2 correctly.
>
> With respect to just the @WebService annotation, and not the 
> annotations processing as a whole, it seems like you might encounter a 
> few scenarios that could be tricky.  I don't know enough about the 
> specifics of WSM though, so it may resolve some of the headaches for you.
>
> - When a class is annotated with @WebService, any of the public 
> methods available on that class are to be exposed as an operation in a 
> Web service.  If that particular annotation instance has the WSDL 
> document location specified, then we need to do some bit of 
> processing/validation to make sure the public methods support what's 
> defined in the WSDL.  Or.... does WSM just do that for you?
>
> - Because of the "serviceEnpdointInterface" property on the 
> @WebService annotation, the above case becomes a little more complex. 
>  JAX-WS has a notion of squashing that SEI, along with the public 
> methods on any other interface that the SEI may extend into one giant 
> interface, which should then be reflected in the WSDL.  Again, I don't 
> know enough about WSM, but this might be something it handles for you. 
>  If not, it seems like you will be required to walk the annotations 
> and collect the metadata from every interface that's extended?
>
> I'm glad to see you'll be working on this.  As mentioned before, I 
> think there is some commonality that can be leveraged when it comes to 
> JAX-WS as well.  A few questions though about the annotations support 
> for Axis2 endpoints (I know you're just getting started with this so I 
> understand if some of this is longer term) :
>
> - When annotations are added to a class, are you still requiring the 
> presence of a services.xml?  If so, what's the minimum set of 
> information required in that document?  I.e., could I get away with 
> annotating a class and just specifying that ServiceClass property in 
> XML file?  I can see still needing the deployment descriptor for 
> specifying module refs, but would it be able to have just that and not 
> the operation descriptions.  Just a thought.
>
> - If annotations are supported for Axis2/ADB endpoints, how would we 
> distinguish those from JAX-WS endpoints?
>
> Hope this helps...
>
> Regards,
>
> Nicholas Gallardo
> WebSphere  -  WebServices Development
> nlgallar@us.ibm.com
> Phone: 512-838-1182
> Building: 901 / 5G-016
>
>
> *"Rajith Attapattu" <ra...@gmail.com>*
>
> 06/19/2006 09:35 PM
> Please respond to
> axis-dev@ws.apache.org
>
>
> 	
> To
> 	axis-dev@ws.apache.org, dims@apache.org
> cc
> 	
> Subject
> 	Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)
>
>
>
> 	
>
>
>
>
>
> Dims,
>
> Sounds good.
>
> So it looks like the @WebService tag is not really useful as we 
> explicitly name the class in the services.xml
> So from Axis2 side we are covered
>
> However I am wondering if there is some requirment from the JAX-WS 
> side as to how we should leverage this @WebService annotation.
> wondering if the spec mandates some sort of stratergy for this. (I 
> read the spec and couldn't find anything)
>
> For now lets go ahead with what we planned (with a message receiver) 
> and worry about @WebService thing when we figure out the exact 
> requirment.
>
> Regards,
>
> Rajith.
>
> On 6/19/06, *Davanum Srinivas* <_davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> Rajith,
>
> In the short term, We have RPCMessageReceiver,
> SpringRPCMessageReceiver etc. we could throw in a quick
> WSMRPCMessageReceiver as well. So we will have to look at the class
> name specified in the services.xml just like we do for other
> receivers.
>
> -- dims
>
> On 6/19/06, Rajith Attapattu <_rajith77@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > Hi Dims
> >
> > One more question if you don't mind :-)
> >
> > What is the plan to figure out a class marked with @WebService?
> >
> > a) are we going to look through a particular location to introspect any
> > class files droped there ?
> > b) is the user responsible for adding the service via some API 
> method ? for
> > ex: AxisService.createService(String className) ?
> >
> > The rest we can introspect once we get the class identified. But I am
> > wondering how is the initial step of figuring out the marked (annotated
> > class) class with the @WebService tag.
> >
> > Sorry for the long list of questions.
> >
> > Regards,
> >
> > Rajith
> >
> >
> > On 6/16/06, Rajith Attapattu <_ rajith77@gmail.com_ 
> <ma...@gmail.com> > wrote:
> > >
> > > Hi Dims,
> > >
> > > Sorry if this question sounds stupid, but there is something that 
> I don't
> > get.
> > > Can you explain any gaps that I have? :-)
> > >
> > > So we use WSM to get the jsr181 support.
> > > But, It looks like wsm is not complete in terms of the POJO aspect 
> as the
> > reflection based ReflectionWsmServiceFactory is not done.
> > >
> > > I guess part of the job is to complete the wsm stuff and then use it
> > inside axis2. Or did I get this wrong?
> > >
> > >
> > > >> Forgot to mention, please use annogen ( 
> _http://annogen.codehaus.org/_ )
> > to access the annotations which are needed to build the WsmService
> > >
> > > So are we going to do the implementation of 
> ReflectionWsmServiceFactory
> > inside Axis2?
> > >
> > > I thought we are going to complete that inside wsm and then implement
> > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > WSMService thats produced via the ReflectionWsmServiceFactory.
> > >
> > > Did I miss something?
> > >
> > > Thanks,
> > >
> > >
> > > Rajith
> > >
> > >
> > > On 6/13/06, Davanum Srinivas < _davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > Let's keep this to axis-dev@ until we need some questions answered
> > > > from beehive folks. Forgot to mention, please use annogen
> > > > (_ http://annogen.codehaus.org/_) to access the annotations 
> which are
> > > > needed to build the WsmService. We explicitly took a dependency on
> > > > annogen in Axis2 for this purpose.
> > > >
> > > > thanks,
> > > > -- dims
> > > >
> > > > On 6/13/06, Rajith Attapattu <_rajith77@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > Hi Dims,
> > > > >
> > > > > Thanks for the pointers.
> > > > > Let me look at how to get the ReflectionWsmServiceFactory impl 
> going.
> > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > AxisService
> > > > > out of an anotated POJO.
> > > > > Once I have something I will create a JIRA and attach a patch. 
> U can
> > take a
> > > > > look at the code and then we can take it from there.
> > > > > If I have questions I will bug u again :-)
> > > > >
> > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > wondering how
> > > > > to get WSM specific questions answered :-)
> > > > >
> > > > > Regards,
> > > > >
> > > > > Rajith
> > > > >
> > > > > On 6/13/06, Davanum Srinivas <_ davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > >
> > > > > > Rajith,
> > > > > >
> > > > > > I think you need to implement ReflectionWsmServiceFactory 
> first. The
> > > > > > angle of attack i am looking at is deploying a POJO with
> > annotations.
> > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > pojo).
> > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info 
> from
> > WSM.
> > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > > >
> > > > > > thanks,
> > > > > > dims
> > > > > >
> > > > > > On 6/5/06, Rajith Attapattu <_rajith77@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > Hi Dims & Eddie,
> > > > > > >
> > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > WsmService?
> > > > > > > Any pointers will be helpful.
> > > > > > >
> > > > > > > I am going through the wiki and JSR documentation and will get
> > back with
> > > > > > > questions.
> > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > relevent
> > > > > > classes
> > > > > > > for the annotations support?
> > > > > > >
> > > > > > > Regards,
> > > > > > >
> > > > > > > Rajith
> > > > > > >
> > > > > > > On 2/5/06, Eddie O'Neil < _ekoneil@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > >
> > > > > > > > Dims--
> > > > > > > >
> > > > > > > >   Hey; apologies for the delay.  That's basically right 
> -- there
> > is
> > > > > > > > actually one other step in the annotation processing 
> pipeline
> > which is
> > > > > > > > verifying the validity of any annotations on the class. 
>  So, it
> > would
> > > > > > > > be:
> > > > > > > >
> > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > building
> > > > > > > > (MirrorWsmBuilder)
> > > > > > > >
> > > > > > > > which returns a WsmService object that can be wired up into
> > axis2
> > > > > > stuff.
> > > > > > > >
> > > > > > > >   I can certainly break the Axis 1.x stuff into a 
> separate JAR;
> > my
> > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > same JAR
> > > > > > > > file, but if this is a problem, let me know and I can 
> make three
> > JARs
> > > > > > > > -- generic web service processing code, axis 1, axis 2, 
> etc.
> > > > > > > >
> > > > > > > >   There is one important part of this that isn't done 
> yet, and
> > that's
> > > > > > > > to provide something that can be used inside of a server 
> runtime
> > that
> > > > > > > > abstracts from Sun's Mirror types which are used inside 
> of APT.
> > Not
> > > > > > > > exactly sure what this looks like yet -- could be 
> reflection or
> > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > inside of
> > > > > > > > APT).
> > > > > > > >
> > > > > > > >   Do you want to run this from inside of the Axis2 
> runtime or at
> > > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > > >
> > > > > > > > Eddie
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2/1/06, Davanum Srinivas < _davanum@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > > > Eddie,
> > > > > > > > >
> > > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to 
> inspect
> > a
> > > > > > given
> > > > > > > > > java class? and one the WsmService object is built, then
> > translate
> > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > framework
> > > > > > into
> > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > right
> > > > > > track
> > > > > > > > > with this thinking?
> > > > > > > > >
> > > > > > > > > thanks,
> > > > > > > > > dims
> > > > > > > > >
> > > > > > > > > On 1/3/06, Eddie O'Neil < _ekoneil@gmail.com_ 
> <ma...@gmail.com>> wrote:
> > > > > > > > > > All--
> > > > > > > > > >
> > > > > > > > > >   Happy New Year!  And, as a way to start the year 
> off on a
> > good
> > > > > > foot,
> > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how 
> we get
> > from
> > > > > > here to
> > > > > > > > > > there with some details about where we are and what 
> needs to
> > > > > > happen.
> > > > > > > > > >
> > > > > > > > > >   Today, there are two core WSM parts, both of which are
> > tailored
> > > > > > to
> > > > > > > > > > the Axis web service stack:
> > > > > > > > > >
> > > > > > > > > >   build-time: This is a generic annotation 
> processing layer
> > that
> > > > > > has
> > > > > > > > > > the ability to work against Mirror, reflection, and 
> WSDL to
> > > > > > produce a
> > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > build-time
> > > > > > > > > > layer has a plug-point for generating source 
> artifacts to
> > support
> > > > > > > > > > various web service runtimes.  For example, the Axis
> > > > > > implementation
> > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> > This
> > > > > > could
> > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > artifacts,
> > > > > > etc.
> > > > > > > > > >
> > > > > > > > > >   runtime: The runtime side of WSM is specifically 
> built to
> > > > > > support
> > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > model
> > > > > > > > > > generated at build time and uses an Axis Handler to
> > configure a
> > > > > > > > > > SOAPService given this information.
> > > > > > > > > >
> > > > > > > > > >   There is another large bunch of code in WSM 
> related to
> > tools:
> > > > > > > > > >
> > > > > > > > > > wsdl2ajava -- this tool supports the top-down web 
> service
> > > > > > development
> > > > > > > > > > model and starts with a WSDL to produce an annotated 
> Java
> > source
> > > > > > file.
> > > > > > > > > >  This tool requires significant knowledge of WSDL 
> and type
> > mapping
> > > > > > for
> > > > > > > > > > a specific web service stack.  For example, the 
> mapping for
> > an XSD
> > > > > > > > > > year is mapped to org.apache.axis.types.Year and 
> something
> > > > > > different
> > > > > > > > > > on other web service stacks.  wsdl2java is a 
> non-trivial
> > bunch of
> > > > > > code
> > > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > > >
> > > > > > > > > >   In order to finish WSM, one more re-architecting step
> > needs to
> > > > > > be
> > > > > > > > > > completed; I'd like to remove the use of a 
> serialized Java
> > object
> > > > > > as
> > > > > > > > > > the way to communicate from the build-time to 
> runtime parts
> > of the
> > > > > > > > > > implementation.  This would be replaced with a WSDD 
> like,
> > but WSM
> > > > > > > > > > specific, XML descriptor of the service.  AFAICT, 
> WSDD can't
> > be
> > > > > > used
> > > > > > > > > > for this because too closely matches the shape of a Java
> > class
> > > > > > (Dims
> > > > > > > > > > and others, feel free to correct me if I'm wrong). 
>  So, we
> > need a
> > > > > > > > > > simple XML file that describes the information 
> captured in a
> > > > > > > > > > WsmService.
> > > > > > > > > >
> > > > > > > > > >   Once this is done, we can start work on passing the
> > JSR-181 TCK.
> > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > > >
> > > > > > > > > >   In order to expedite the process of getting from 
> here to
> > TCK
> > > > > > > > > > compliance, I'd like to suggest that we stop stop 
> work on
> > the
> > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > restart
> > > > > > this
> > > > > > > > > > tool immediately post-1.0.
> > > > > > > > > >
> > > > > > > > > >   Post 1.0, there are lots of other things that we 
> could do
> > > > > > including:
> > > > > > > > > >
> > > > > > > > > > - JDK 1.4 support
> > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > > > developing an
> > > > > > > > > > annotated web service
> > > > > > > > > > - JAX-RPC support (Ias, still have any interest in 
> working
> > on
> > > > > > this?)
> > > > > > > > > > - custom annotations to support container-specific 
> features
> > like
> > > > > > type
> > > > > > > > mapping
> > > > > > > > > > - and so on...
> > > > > > > > > >
> > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 
> 1.0 done
> > and
> > > > > > would
> > > > > > > > > > like to narrow scope in order to do that.  I think we're
> > almost
> > > > > > ready
> > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > annotated
> > > > > > Axis
> > > > > > > > > > web service shortly.
> > > > > > > > > >
> > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > > > >
> > > > > > > > > > Eddie
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : _http://wso2.com/blogs/_
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > _axis-dev-unsubscribe@ws.apache.org_ 
> <ma...@ws.apache.org>
> > > > For additional commands, e-mail: _axis-dev-help@ws.apache.org_ 
> <ma...@ws.apache.org>
> > > >
> > > >
> > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : _http://wso2.com/blogs/_
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: _axis-dev-unsubscribe@ws.apache.org_ 
> <ma...@ws.apache.org>
> For additional commands, e-mail: _axis-dev-help@ws.apache.org_ 
> <ma...@ws.apache.org>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Nicholas L Gallardo <nl...@us.ibm.com>.
Rajith,

>From a JAX-WS perspective, the @WebService annotation does introduce some 
challenges when it comes to determining what the interface of a Web 
service will be.  From my interpretation, which is just that, it doesn't 
dictate as much how the annotation should be handled at runtime as much as 
it does instruct how the annotation affects the Java to WSDL mapping.  I 
think the assumption after that is, the system will then do whatever it 
needs to configure itself to fulfill the contract defined by that WSDL. If 
I understand correctly what Dim's has proposed, this is the piece that 
your WSMToAxisServiceBuilder will fulfill.  The rest is making sure that 
the information gets relayed to Axis2 correctly.

With respect to just the @WebService annotation, and not the annotations 
processing as a whole, it seems like you might encounter a few scenarios 
that could be tricky.  I don't know enough about the specifics of WSM 
though, so it may resolve some of the headaches for you.

- When a class is annotated with @WebService, any of the public methods 
available on that class are to be exposed as an operation in a Web 
service.  If that particular annotation instance has the WSDL document 
location specified, then we need to do some bit of processing/validation 
to make sure the public methods support what's defined in the WSDL. Or.... 
does WSM just do that for you?

- Because of the "serviceEnpdointInterface" property on the @WebService 
annotation, the above case becomes a little more complex.  JAX-WS has a 
notion of squashing that SEI, along with the public methods on any other 
interface that the SEI may extend into one giant interface, which should 
then be reflected in the WSDL.  Again, I don't know enough about WSM, but 
this might be something it handles for you.  If not, it seems like you 
will be required to walk the annotations and collect the metadata from 
every interface that's extended?

I'm glad to see you'll be working on this.  As mentioned before, I think 
there is some commonality that can be leveraged when it comes to JAX-WS as 
well.  A few questions though about the annotations support for Axis2 
endpoints (I know you're just getting started with this so I understand if 
some of this is longer term) :

- When annotations are added to a class, are you still requiring the 
presence of a services.xml?  If so, what's the minimum set of information 
required in that document?  I.e., could I get away with annotating a class 
and just specifying that ServiceClass property in XML file?  I can see 
still needing the deployment descriptor for specifying module refs, but 
would it be able to have just that and not the operation descriptions. 
Just a thought.

- If annotations are supported for Axis2/ADB endpoints, how would we 
distinguish those from JAX-WS endpoints?

Hope this helps...

Regards,

Nicholas Gallardo
WebSphere  -  WebServices Development
nlgallar@us.ibm.com
Phone: 512-838-1182
Building: 901 / 5G-016



"Rajith Attapattu" <ra...@gmail.com> 
06/19/2006 09:35 PM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org, dims@apache.org
cc

Subject
Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)






Dims,

Sounds good.

So it looks like the @WebService tag is not really useful as we explicitly 
name the class in the services.xml
So from Axis2 side we are covered

However I am wondering if there is some requirment from the JAX-WS side as 
to how we should leverage this @WebService annotation. 
wondering if the spec mandates some sort of stratergy for this. (I read 
the spec and couldn't find anything)

For now lets go ahead with what we planned (with a message receiver) and 
worry about @WebService thing when we figure out the exact requirment. 

Regards,

Rajith.

On 6/19/06, Davanum Srinivas <da...@gmail.com> wrote:
Rajith,

In the short term, We have RPCMessageReceiver,
SpringRPCMessageReceiver etc. we could throw in a quick
WSMRPCMessageReceiver as well. So we will have to look at the class
name specified in the services.xml just like we do for other
receivers.

-- dims

On 6/19/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Hi Dims
>
> One more question if you don't mind :-) 
>
> What is the plan to figure out a class marked with @WebService?
>
> a) are we going to look through a particular location to introspect any
> class files droped there ?
> b) is the user responsible for adding the service via some API method ? 
for 
> ex: AxisService.createService(String className) ?
>
> The rest we can introspect once we get the class identified. But I am
> wondering how is the initial step of figuring out the marked (annotated 
> class) class with the @WebService tag.
>
> Sorry for the long list of questions.
>
> Regards,
>
> Rajith
>
>
> On 6/16/06, Rajith Attapattu < rajith77@gmail.com > wrote:
> >
> > Hi Dims,
> >
> > Sorry if this question sounds stupid, but there is something that I 
don't
> get.
> > Can you explain any gaps that I have? :-) 
> >
> > So we use WSM to get the jsr181 support.
> > But, It looks like wsm is not complete in terms of the POJO aspect as 
the
> reflection based ReflectionWsmServiceFactory is not done.
> >
> > I guess part of the job is to complete the wsm stuff and then use it
> inside axis2. Or did I get this wrong?
> >
> >
> > >> Forgot to mention, please use annogen ( 
http://annogen.codehaus.org/ )
> to access the annotations which are needed to build the WsmService
> >
> > So are we going to do the implementation of 
ReflectionWsmServiceFactory 
> inside Axis2?
> >
> > I thought we are going to complete that inside wsm and then implement
> WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> WSMService thats produced via the ReflectionWsmServiceFactory. 
> >
> > Did I miss something?
> >
> > Thanks,
> >
> >
> > Rajith
> >
> >
> > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > Let's keep this to axis-dev@ until we need some questions answered
> > > from beehive folks. Forgot to mention, please use annogen
> > > ( http://annogen.codehaus.org/) to access the annotations which are
> > > needed to build the WsmService. We explicitly took a dependency on
> > > annogen in Axis2 for this purpose.
> > > 
> > > thanks,
> > > -- dims
> > >
> > > On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > Hi Dims, 
> > > >
> > > > Thanks for the pointers.
> > > > Let me look at how to get the ReflectionWsmServiceFactory impl 
going.
> > > > after that I can start with WSMToAxisServiceBuilder to build an 
> AxisService
> > > > out of an anotated POJO.
> > > > Once I have something I will create a JIRA and attach a patch. U 
can
> take a
> > > > look at the code and then we can take it from there. 
> > > > If I have questions I will bug u again :-)
> > > >
> > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> wondering how
> > > > to get WSM specific questions answered :-) 
> > > >
> > > > Regards,
> > > >
> > > > Rajith
> > > >
> > > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > >
> > > > > Rajith,
> > > > >
> > > > > I think you need to implement ReflectionWsmServiceFactory first. 
The 
> > > > > angle of attack i am looking at is deploying a POJO with
> annotations.
> > > > > (See AxisService.createService in Axis2 where one can deploy a
> pojo).
> > > > > You will have to write a WSMToAxisServiceBuilder (see 
> > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info 
from
> WSM.
> > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > > 
> > > > > thanks,
> > > > > dims
> > > > >
> > > > > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote: 
> > > > > > Hi Dims & Eddie,
> > > > > >
> > > > > > So code wise I should be looking at MirrorWsmBuilder and
> WsmService?
> > > > > > Any pointers will be helpful. 
> > > > > >
> > > > > > I am going through the wiki and JSR documentation and will get
> back with
> > > > > > questions.
> > > > > > Meanwhile do we have that seperate jar that bundles all the 
> relevent
> > > > > classes
> > > > > > for the annotations support?
> > > > > >
> > > > > > Regards,
> > > > > > 
> > > > > > Rajith
> > > > > >
> > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > > 
> > > > > > > Dims--
> > > > > > >
> > > > > > >   Hey; apologies for the delay.  That's basically right -- 
there
> is
> > > > > > > actually one other step in the annotation processing 
pipeline 
> which is
> > > > > > > verifying the validity of any annotations on the class.  So, 
it
> would
> > > > > > > be:
> > > > > > >
> > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model 
> building
> > > > > > > (MirrorWsmBuilder)
> > > > > > >
> > > > > > > which returns a WsmService object that can be wired up into
> axis2 
> > > > > stuff.
> > > > > > >
> > > > > > >   I can certainly break the Axis 1.x stuff into a separate 
JAR;
> my
> > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> same JAR
> > > > > > > file, but if this is a problem, let me know and I can make 
three
> JARs
> > > > > > > -- generic web service processing code, axis 1, axis 2, etc. 

> > > > > > >
> > > > > > >   There is one important part of this that isn't done yet, 
and
> that's
> > > > > > > to provide something that can be used inside of a server 
runtime 
> that
> > > > > > > abstracts from Sun's Mirror types which are used inside of 
APT.
> Not
> > > > > > > exactly sure what this looks like yet -- could be reflection 
or 
> > > > > > > something else that abstracts from Sun's Mirror APIs (used
> inside of
> > > > > > > APT).
> > > > > > >
> > > > > > >   Do you want to run this from inside of the Axis2 runtime 
or at 
> > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > >
> > > > > > > Eddie
> > > > > > >
> > > > > > > 
> > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > > > > > Eddie,
> > > > > > > > 
> > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to 
inspect
> a
> > > > > given 
> > > > > > > > java class? and one the WsmService object is built, then
> translate
> > > > > > > > that to Axis2 thingies? Can we split out the processing
> framework
> > > > > into
> > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> right
> > > > > track
> > > > > > > > with this thinking? 
> > > > > > > >
> > > > > > > > thanks,
> > > > > > > > dims
> > > > > > > >
> > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > > > > All--
> > > > > > > > >
> > > > > > > > >   Happy New Year!  And, as a way to start the year off 
on a 
> good
> > > > > foot,
> > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we 
get
> from
> > > > > here to
> > > > > > > > > there with some details about where we are and what 
needs to 
> > > > > happen.
> > > > > > > > >
> > > > > > > > >   Today, there are two core WSM parts, both of which are
> tailored
> > > > > to 
> > > > > > > > > the Axis web service stack:
> > > > > > > > >
> > > > > > > > >   build-time: This is a generic annotation processing 
layer 
> that
> > > > > has
> > > > > > > > > the ability to work against Mirror, reflection, and WSDL 
to
> > > > > produce a
> > > > > > > > > WSM JavaBean model that represents a web service.  The 
> build-time
> > > > > > > > > layer has a plug-point for generating source artifacts 
to
> support
> > > > > > > > > various web service runtimes.  For example, the Axis 
> > > > > implementation
> > > > > > > > > produces a serialized version of the WSM JavaBean model.
> This
> > > > > could
> > > > > > > > > also produce JAX-RPC source / deployment descriptor 
> artifacts,
> > > > > etc.
> > > > > > > > >
> > > > > > > > >   runtime: The runtime side of WSM is specifically built 
to
> > > > > support 
> > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> model
> > > > > > > > > generated at build time and uses an Axis Handler to
> configure a
> > > > > > > > > SOAPService given this information.
> > > > > > > > >
> > > > > > > > >   There is another large bunch of code in WSM related to 

> tools:
> > > > > > > > >
> > > > > > > > > wsdl2ajava -- this tool supports the top-down web 
service
> > > > > development
> > > > > > > > > model and starts with a WSDL to produce an annotated 
Java 
> source
> > > > > file.
> > > > > > > > >  This tool requires significant knowledge of WSDL and 
type
> mapping
> > > > > for
> > > > > > > > > a specific web service stack.  For example, the mapping 
for 
> an XSD
> > > > > > > > > year is mapped to org.apache.axis.types.Year and 
something
> > > > > different
> > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial 

> bunch of
> > > > > code
> > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > >
> > > > > > > > >   In order to finish WSM, one more re-architecting step 
> needs to
> > > > > be
> > > > > > > > > completed; I'd like to remove the use of a serialized 
Java
> object
> > > > > as
> > > > > > > > > the way to communicate from the build-time to runtime 
parts 
> of the
> > > > > > > > > implementation.  This would be replaced with a WSDD 
like,
> but WSM
> > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD 
can't 
> be
> > > > > used
> > > > > > > > > for this because too closely matches the shape of a Java
> class
> > > > > (Dims
> > > > > > > > > and others, feel free to correct me if I'm wrong).  So, 
we 
> need a
> > > > > > > > > simple XML file that describes the information captured 
in a
> > > > > > > > > WsmService.
> > > > > > > > > 
> > > > > > > > >   Once this is done, we can start work on passing the
> JSR-181 TCK.
> > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > > 
> > > > > > > > >   In order to expedite the process of getting from here 
to
> TCK
> > > > > > > > > compliance, I'd like to suggest that we stop stop work 
on 
> the
> > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> restart
> > > > > this
> > > > > > > > > tool immediately post-1.0.
> > > > > > > > >
> > > > > > > > >   Post 1.0, there are lots of other things that we could 
do
> > > > > including:
> > > > > > > > > 
> > > > > > > > > - JDK 1.4 support
> > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > > developing an
> > > > > > > > > annotated web service 
> > > > > > > > > - JAX-RPC support (Ias, still have any interest in 
working
> on
> > > > > this?)
> > > > > > > > > - custom annotations to support container-specific 
features 
> like
> > > > > type
> > > > > > > mapping
> > > > > > > > > - and so on...
> > > > > > > > >
> > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 
done
> and
> > > > > would
> > > > > > > > > like to narrow scope in order to do that.  I think we're
> almost
> > > > > ready
> > > > > > > > > for the TCK; I'll start on the XML file to describe an 
> annotated
> > > > > Axis
> > > > > > > > > web service shortly.
> > > > > > > > >
> > > > > > > > >   Thoughts, comments, and flames welcome. 
> > > > > > > > >
> > > > > > > > > Eddie
> > > > > > > > >
> > > > > > > >
> > > > > > > > 
> > > > > > > > --
> > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > >
> > > > > > > 
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> > 
>
>


--
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org



Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Dims,

Sounds good.

So it looks like the @WebService tag is not really useful as we explicitly
name the class in the services.xml
So from Axis2 side we are covered

However I am wondering if there is some requirment from the JAX-WS side as
to how we should leverage this @WebService annotation.
wondering if the spec mandates some sort of stratergy for this. (I read the
spec and couldn't find anything)

For now lets go ahead with what we planned (with a message receiver) and
worry about @WebService thing when we figure out the exact requirment.

Regards,

Rajith.

On 6/19/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Rajith,
>
> In the short term, We have RPCMessageReceiver,
> SpringRPCMessageReceiver etc. we could throw in a quick
> WSMRPCMessageReceiver as well. So we will have to look at the class
> name specified in the services.xml just like we do for other
> receivers.
>
> -- dims
>
> On 6/19/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > Hi Dims
> >
> > One more question if you don't mind :-)
> >
> > What is the plan to figure out a class marked with @WebService?
> >
> > a) are we going to look through a particular location to introspect any
> > class files droped there ?
> > b) is the user responsible for adding the service via some API method ?
> for
> > ex: AxisService.createService(String className) ?
> >
> > The rest we can introspect once we get the class identified. But I am
> > wondering how is the initial step of figuring out the marked (annotated
> > class) class with the @WebService tag.
> >
> > Sorry for the long list of questions.
> >
> > Regards,
> >
> > Rajith
> >
> >
> > On 6/16/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> > >
> > > Hi Dims,
> > >
> > > Sorry if this question sounds stupid, but there is something that I
> don't
> > get.
> > > Can you explain any gaps that I have? :-)
> > >
> > > So we use WSM to get the jsr181 support.
> > > But, It looks like wsm is not complete in terms of the POJO aspect as
> the
> > reflection based ReflectionWsmServiceFactory is not done.
> > >
> > > I guess part of the job is to complete the wsm stuff and then use it
> > inside axis2. Or did I get this wrong?
> > >
> > >
> > > >> Forgot to mention, please use annogen (
> http://annogen.codehaus.org/ )
> > to access the annotations which are needed to build the WsmService
> > >
> > > So are we going to do the implementation of
> ReflectionWsmServiceFactory
> > inside Axis2?
> > >
> > > I thought we are going to complete that inside wsm and then implement
> > WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> > WSMService thats produced via the ReflectionWsmServiceFactory.
> > >
> > > Did I miss something?
> > >
> > > Thanks,
> > >
> > >
> > > Rajith
> > >
> > >
> > > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > Let's keep this to axis-dev@ until we need some questions answered
> > > > from beehive folks. Forgot to mention, please use annogen
> > > > (http://annogen.codehaus.org/) to access the annotations which are
> > > > needed to build the WsmService. We explicitly took a dependency on
> > > > annogen in Axis2 for this purpose.
> > > >
> > > > thanks,
> > > > -- dims
> > > >
> > > > On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > > Hi Dims,
> > > > >
> > > > > Thanks for the pointers.
> > > > > Let me look at how to get the ReflectionWsmServiceFactory impl
> going.
> > > > > after that I can start with WSMToAxisServiceBuilder to build an
> > AxisService
> > > > > out of an anotated POJO.
> > > > > Once I have something I will create a JIRA and attach a patch. U
> can
> > take a
> > > > > look at the code and then we can take it from there.
> > > > > If I have questions I will bug u again :-)
> > > > >
> > > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > wondering how
> > > > > to get WSM specific questions answered :-)
> > > > >
> > > > > Regards,
> > > > >
> > > > > Rajith
> > > > >
> > > > > On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > >
> > > > > > Rajith,
> > > > > >
> > > > > > I think you need to implement ReflectionWsmServiceFactory first.
> The
> > > > > > angle of attack i am looking at is deploying a POJO with
> > annotations.
> > > > > > (See AxisService.createService in Axis2 where one can deploy a
> > pojo).
> > > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info
> from
> > WSM.
> > > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > > >
> > > > > > thanks,
> > > > > > dims
> > > > > >
> > > > > > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > > > > Hi Dims & Eddie,
> > > > > > >
> > > > > > > So code wise I should be looking at MirrorWsmBuilder and
> > WsmService?
> > > > > > > Any pointers will be helpful.
> > > > > > >
> > > > > > > I am going through the wiki and JSR documentation and will get
> > back with
> > > > > > > questions.
> > > > > > > Meanwhile do we have that seperate jar that bundles all the
> > relevent
> > > > > > classes
> > > > > > > for the annotations support?
> > > > > > >
> > > > > > > Regards,
> > > > > > >
> > > > > > > Rajith
> > > > > > >
> > > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > > >
> > > > > > > > Dims--
> > > > > > > >
> > > > > > > >   Hey; apologies for the delay.  That's basically right --
> there
> > is
> > > > > > > > actually one other step in the annotation processing
> pipeline
> > which is
> > > > > > > > verifying the validity of any annotations on the class.  So,
> it
> > would
> > > > > > > > be:
> > > > > > > >
> > > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > building
> > > > > > > > (MirrorWsmBuilder)
> > > > > > > >
> > > > > > > > which returns a WsmService object that can be wired up into
> > axis2
> > > > > > stuff.
> > > > > > > >
> > > > > > > >   I can certainly break the Axis 1.x stuff into a separate
> JAR;
> > my
> > > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > same JAR
> > > > > > > > file, but if this is a problem, let me know and I can make
> three
> > JARs
> > > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > > > > > >
> > > > > > > >   There is one important part of this that isn't done yet,
> and
> > that's
> > > > > > > > to provide something that can be used inside of a server
> runtime
> > that
> > > > > > > > abstracts from Sun's Mirror types which are used inside of
> APT.
> > Not
> > > > > > > > exactly sure what this looks like yet -- could be reflection
> or
> > > > > > > > something else that abstracts from Sun's Mirror APIs (used
> > inside of
> > > > > > > > APT).
> > > > > > > >
> > > > > > > >   Do you want to run this from inside of the Axis2 runtime
> or at
> > > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > > >
> > > > > > > > Eddie
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > > > > > > Eddie,
> > > > > > > > >
> > > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to
> inspect
> > a
> > > > > > given
> > > > > > > > > java class? and one the WsmService object is built, then
> > translate
> > > > > > > > > that to Axis2 thingies? Can we split out the processing
> > framework
> > > > > > into
> > > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > right
> > > > > > track
> > > > > > > > > with this thinking?
> > > > > > > > >
> > > > > > > > > thanks,
> > > > > > > > > dims
> > > > > > > > >
> > > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > > > > > All--
> > > > > > > > > >
> > > > > > > > > >   Happy New Year!  And, as a way to start the year off
> on a
> > good
> > > > > > foot,
> > > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we
> get
> > from
> > > > > > here to
> > > > > > > > > > there with some details about where we are and what
> needs to
> > > > > > happen.
> > > > > > > > > >
> > > > > > > > > >   Today, there are two core WSM parts, both of which are
> > tailored
> > > > > > to
> > > > > > > > > > the Axis web service stack:
> > > > > > > > > >
> > > > > > > > > >   build-time: This is a generic annotation processing
> layer
> > that
> > > > > > has
> > > > > > > > > > the ability to work against Mirror, reflection, and WSDL
> to
> > > > > > produce a
> > > > > > > > > > WSM JavaBean model that represents a web service.  The
> > build-time
> > > > > > > > > > layer has a plug-point for generating source artifacts
> to
> > support
> > > > > > > > > > various web service runtimes.  For example, the Axis
> > > > > > implementation
> > > > > > > > > > produces a serialized version of the WSM JavaBean model.
> > This
> > > > > > could
> > > > > > > > > > also produce JAX-RPC source / deployment descriptor
> > artifacts,
> > > > > > etc.
> > > > > > > > > >
> > > > > > > > > >   runtime: The runtime side of WSM is specifically built
> to
> > > > > > support
> > > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > model
> > > > > > > > > > generated at build time and uses an Axis Handler to
> > configure a
> > > > > > > > > > SOAPService given this information.
> > > > > > > > > >
> > > > > > > > > >   There is another large bunch of code in WSM related to
> > tools:
> > > > > > > > > >
> > > > > > > > > > wsdl2ajava -- this tool supports the top-down web
> service
> > > > > > development
> > > > > > > > > > model and starts with a WSDL to produce an annotated
> Java
> > source
> > > > > > file.
> > > > > > > > > >  This tool requires significant knowledge of WSDL and
> type
> > mapping
> > > > > > for
> > > > > > > > > > a specific web service stack.  For example, the mapping
> for
> > an XSD
> > > > > > > > > > year is mapped to org.apache.axis.types.Year and
> something
> > > > > > different
> > > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> > bunch of
> > > > > > code
> > > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > > >
> > > > > > > > > >   In order to finish WSM, one more re-architecting step
> > needs to
> > > > > > be
> > > > > > > > > > completed; I'd like to remove the use of a serialized
> Java
> > object
> > > > > > as
> > > > > > > > > > the way to communicate from the build-time to runtime
> parts
> > of the
> > > > > > > > > > implementation.  This would be replaced with a WSDD
> like,
> > but WSM
> > > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD
> can't
> > be
> > > > > > used
> > > > > > > > > > for this because too closely matches the shape of a Java
> > class
> > > > > > (Dims
> > > > > > > > > > and others, feel free to correct me if I'm wrong).  So,
> we
> > need a
> > > > > > > > > > simple XML file that describes the information captured
> in a
> > > > > > > > > > WsmService.
> > > > > > > > > >
> > > > > > > > > >   Once this is done, we can start work on passing the
> > JSR-181 TCK.
> > > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > > >
> > > > > > > > > >   In order to expedite the process of getting from here
> to
> > TCK
> > > > > > > > > > compliance, I'd like to suggest that we stop stop work
> on
> > the
> > > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > restart
> > > > > > this
> > > > > > > > > > tool immediately post-1.0.
> > > > > > > > > >
> > > > > > > > > >   Post 1.0, there are lots of other things that we could
> do
> > > > > > including:
> > > > > > > > > >
> > > > > > > > > > - JDK 1.4 support
> > > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > > > developing an
> > > > > > > > > > annotated web service
> > > > > > > > > > - JAX-RPC support (Ias, still have any interest in
> working
> > on
> > > > > > this?)
> > > > > > > > > > - custom annotations to support container-specific
> features
> > like
> > > > > > type
> > > > > > > > mapping
> > > > > > > > > > - and so on...
> > > > > > > > > >
> > > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0done
> > and
> > > > > > would
> > > > > > > > > > like to narrow scope in order to do that.  I think we're
> > almost
> > > > > > ready
> > > > > > > > > > for the TCK; I'll start on the XML file to describe an
> > annotated
> > > > > > Axis
> > > > > > > > > > web service shortly.
> > > > > > > > > >
> > > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > > > >
> > > > > > > > > > Eddie
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > >
> > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Rajith,

In the short term, We have RPCMessageReceiver,
SpringRPCMessageReceiver etc. we could throw in a quick
WSMRPCMessageReceiver as well. So we will have to look at the class
name specified in the services.xml just like we do for other
receivers.

-- dims

On 6/19/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Hi Dims
>
> One more question if you don't mind :-)
>
> What is the plan to figure out a class marked with @WebService?
>
> a) are we going to look through a particular location to introspect any
> class files droped there ?
> b) is the user responsible for adding the service via some API method ? for
> ex: AxisService.createService(String className) ?
>
> The rest we can introspect once we get the class identified. But I am
> wondering how is the initial step of figuring out the marked (annotated
> class) class with the @WebService tag.
>
> Sorry for the long list of questions.
>
> Regards,
>
> Rajith
>
>
> On 6/16/06, Rajith Attapattu <rajith77@gmail.com > wrote:
> >
> > Hi Dims,
> >
> > Sorry if this question sounds stupid, but there is something that I don't
> get.
> > Can you explain any gaps that I have? :-)
> >
> > So we use WSM to get the jsr181 support.
> > But, It looks like wsm is not complete in terms of the POJO aspect as the
> reflection based ReflectionWsmServiceFactory is not done.
> >
> > I guess part of the job is to complete the wsm stuff and then use it
> inside axis2. Or did I get this wrong?
> >
> >
> > >> Forgot to mention, please use annogen ( http://annogen.codehaus.org/ )
> to access the annotations which are needed to build the WsmService
> >
> > So are we going to do the implementation of ReflectionWsmServiceFactory
> inside Axis2?
> >
> > I thought we are going to complete that inside wsm and then implement
> WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> WSMService thats produced via the ReflectionWsmServiceFactory.
> >
> > Did I miss something?
> >
> > Thanks,
> >
> >
> > Rajith
> >
> >
> > On 6/13/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > Let's keep this to axis-dev@ until we need some questions answered
> > > from beehive folks. Forgot to mention, please use annogen
> > > (http://annogen.codehaus.org/) to access the annotations which are
> > > needed to build the WsmService. We explicitly took a dependency on
> > > annogen in Axis2 for this purpose.
> > >
> > > thanks,
> > > -- dims
> > >
> > > On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > Hi Dims,
> > > >
> > > > Thanks for the pointers.
> > > > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > > > after that I can start with WSMToAxisServiceBuilder to build an
> AxisService
> > > > out of an anotated POJO.
> > > > Once I have something I will create a JIRA and attach a patch. U can
> take a
> > > > look at the code and then we can take it from there.
> > > > If I have questions I will bug u again :-)
> > > >
> > > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> wondering how
> > > > to get WSM specific questions answered :-)
> > > >
> > > > Regards,
> > > >
> > > > Rajith
> > > >
> > > > On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > >
> > > > > Rajith,
> > > > >
> > > > > I think you need to implement ReflectionWsmServiceFactory first. The
> > > > > angle of attack i am looking at is deploying a POJO with
> annotations.
> > > > > (See AxisService.createService in Axis2 where one can deploy a
> pojo).
> > > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from
> WSM.
> > > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > > >
> > > > > thanks,
> > > > > dims
> > > > >
> > > > > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > > > Hi Dims & Eddie,
> > > > > >
> > > > > > So code wise I should be looking at MirrorWsmBuilder and
> WsmService?
> > > > > > Any pointers will be helpful.
> > > > > >
> > > > > > I am going through the wiki and JSR documentation and will get
> back with
> > > > > > questions.
> > > > > > Meanwhile do we have that seperate jar that bundles all the
> relevent
> > > > > classes
> > > > > > for the annotations support?
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > Rajith
> > > > > >
> > > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > >
> > > > > > > Dims--
> > > > > > >
> > > > > > >   Hey; apologies for the delay.  That's basically right -- there
> is
> > > > > > > actually one other step in the annotation processing pipeline
> which is
> > > > > > > verifying the validity of any annotations on the class.  So, it
> would
> > > > > > > be:
> > > > > > >
> > > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> building
> > > > > > > (MirrorWsmBuilder)
> > > > > > >
> > > > > > > which returns a WsmService object that can be wired up into
> axis2
> > > > > stuff.
> > > > > > >
> > > > > > >   I can certainly break the Axis 1.x stuff into a separate JAR;
> my
> > > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> same JAR
> > > > > > > file, but if this is a problem, let me know and I can make three
> JARs
> > > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > > > > >
> > > > > > >   There is one important part of this that isn't done yet, and
> that's
> > > > > > > to provide something that can be used inside of a server runtime
> that
> > > > > > > abstracts from Sun's Mirror types which are used inside of APT.
> Not
> > > > > > > exactly sure what this looks like yet -- could be reflection or
> > > > > > > something else that abstracts from Sun's Mirror APIs (used
> inside of
> > > > > > > APT).
> > > > > > >
> > > > > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > > > > build-time on the command line?  I'm assuming the former.
> > > > > > >
> > > > > > > Eddie
> > > > > > >
> > > > > > >
> > > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > > > > > Eddie,
> > > > > > > >
> > > > > > > > i was looking at the current codebase and spotted the
> > > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect
> a
> > > > > given
> > > > > > > > java class? and one the WsmService object is built, then
> translate
> > > > > > > > that to Axis2 thingies? Can we split out the processing
> framework
> > > > > into
> > > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> right
> > > > > track
> > > > > > > > with this thinking?
> > > > > > > >
> > > > > > > > thanks,
> > > > > > > > dims
> > > > > > > >
> > > > > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > > > > All--
> > > > > > > > >
> > > > > > > > >   Happy New Year!  And, as a way to start the year off on a
> good
> > > > > foot,
> > > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get
> from
> > > > > here to
> > > > > > > > > there with some details about where we are and what needs to
> > > > > happen.
> > > > > > > > >
> > > > > > > > >   Today, there are two core WSM parts, both of which are
> tailored
> > > > > to
> > > > > > > > > the Axis web service stack:
> > > > > > > > >
> > > > > > > > >   build-time: This is a generic annotation processing layer
> that
> > > > > has
> > > > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > > > > produce a
> > > > > > > > > WSM JavaBean model that represents a web service.  The
> build-time
> > > > > > > > > layer has a plug-point for generating source artifacts to
> support
> > > > > > > > > various web service runtimes.  For example, the Axis
> > > > > implementation
> > > > > > > > > produces a serialized version of the WSM JavaBean model.
> This
> > > > > could
> > > > > > > > > also produce JAX-RPC source / deployment descriptor
> artifacts,
> > > > > etc.
> > > > > > > > >
> > > > > > > > >   runtime: The runtime side of WSM is specifically built to
> > > > > support
> > > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> model
> > > > > > > > > generated at build time and uses an Axis Handler to
> configure a
> > > > > > > > > SOAPService given this information.
> > > > > > > > >
> > > > > > > > >   There is another large bunch of code in WSM related to
> tools:
> > > > > > > > >
> > > > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > > > > development
> > > > > > > > > model and starts with a WSDL to produce an annotated Java
> source
> > > > > file.
> > > > > > > > >  This tool requires significant knowledge of WSDL and type
> mapping
> > > > > for
> > > > > > > > > a specific web service stack.  For example, the mapping for
> an XSD
> > > > > > > > > year is mapped to org.apache.axis.types.Year and something
> > > > > different
> > > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> bunch of
> > > > > code
> > > > > > > > > to write, but is also a very useful tool.
> > > > > > > > >
> > > > > > > > >   In order to finish WSM, one more re-architecting step
> needs to
> > > > > be
> > > > > > > > > completed; I'd like to remove the use of a serialized Java
> object
> > > > > as
> > > > > > > > > the way to communicate from the build-time to runtime parts
> of the
> > > > > > > > > implementation.  This would be replaced with a WSDD like,
> but WSM
> > > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> be
> > > > > used
> > > > > > > > > for this because too closely matches the shape of a Java
> class
> > > > > (Dims
> > > > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> need a
> > > > > > > > > simple XML file that describes the information captured in a
> > > > > > > > > WsmService.
> > > > > > > > >
> > > > > > > > >   Once this is done, we can start work on passing the
> JSR-181 TCK.
> > > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > > >
> > > > > > > > >   In order to expedite the process of getting from here to
> TCK
> > > > > > > > > compliance, I'd like to suggest that we stop stop work on
> the
> > > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> restart
> > > > > this
> > > > > > > > > tool immediately post-1.0.
> > > > > > > > >
> > > > > > > > >   Post 1.0, there are lots of other things that we could do
> > > > > including:
> > > > > > > > >
> > > > > > > > > - JDK 1.4 support
> > > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > > developing an
> > > > > > > > > annotated web service
> > > > > > > > > - JAX-RPC support (Ias, still have any interest in working
> on
> > > > > this?)
> > > > > > > > > - custom annotations to support container-specific features
> like
> > > > > type
> > > > > > > mapping
> > > > > > > > > - and so on...
> > > > > > > > >
> > > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> and
> > > > > would
> > > > > > > > > like to narrow scope in order to do that.  I think we're
> almost
> > > > > ready
> > > > > > > > > for the TCK; I'll start on the XML file to describe an
> annotated
> > > > > Axis
> > > > > > > > > web service shortly.
> > > > > > > > >
> > > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > > >
> > > > > > > > > Eddie
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> >
>
>


-- 
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Hi Dims

One more question if you don't mind :-)

What is the plan to figure out a class marked with @WebService?

a) are we going to look through a particular location to introspect any
class files droped there ?
b) is the user responsible for adding the service via some API method ? for
ex: AxisService.createService(String className) ?

The rest we can introspect once we get the class identified. But I am
wondering how is the initial step of figuring out the marked (annotated
class) class with the @WebService tag.

Sorry for the long list of questions.

Regards,

Rajith

On 6/16/06, Rajith Attapattu <ra...@gmail.com> wrote:
>
> Hi Dims,
>
> Sorry if this question sounds stupid, but there is something that I don't
> get.
> Can you explain any gaps that I have? :-)
>
> So we use WSM to get the jsr181 support.
> But, It looks like wsm is not complete in terms of the POJO aspect as the
> reflection based ReflectionWsmServiceFactory is not done.
>
> I guess part of the job is to complete the wsm stuff and then use it
> inside axis2. Or did I get this wrong?
>
>
> >> Forgot to mention, please use annogen (http://annogen.codehaus.org/ )
> to access the annotations which are needed to build the WsmService
> So are we going to do the implementation of ReflectionWsmServiceFactory
> inside Axis2?
>
> I thought we are going to complete that inside wsm and then implement
> WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
> WSMService thats produced via the ReflectionWsmServiceFactory.
>
> Did I miss something?
>
> Thanks,
>
>
> Rajith
>
> On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> >
> > Let's keep this to axis-dev@ until we need some questions answered
> > from beehive folks. Forgot to mention, please use annogen
> > (http://annogen.codehaus.org/) to access the annotations which are
> > needed to build the WsmService. We explicitly took a dependency on
> > annogen in Axis2 for this purpose.
> >
> > thanks,
> > -- dims
> >
> > On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > Hi Dims,
> > >
> > > Thanks for the pointers.
> > > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > > after that I can start with WSMToAxisServiceBuilder to build an
> > AxisService
> > > out of an anotated POJO.
> > > Once I have something I will create a JIRA and attach a patch. U can
> > take a
> > > look at the code and then we can take it from there.
> > > If I have questions I will bug u again :-)
> > >
> > > Btw, the Beehive mailing list seems to be a bit quiet, so I am
> > wondering how
> > > to get WSM specific questions answered :-)
> > >
> > > Regards,
> > >
> > > Rajith
> > >
> > > On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > >
> > > > Rajith,
> > > >
> > > > I think you need to implement ReflectionWsmServiceFactory first. The
> >
> > > > angle of attack i am looking at is deploying a POJO with
> > annotations.
> > > > (See AxisService.createService in Axis2 where one can deploy a
> > pojo).
> > > > You will have to write a WSMToAxisServiceBuilder (see
> > > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from
> > WSM.
> > > > WDYT? Once we have this, we can get fancy with codegen etc.
> > > >
> > > > thanks,
> > > > dims
> > > >
> > > > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > > Hi Dims & Eddie,
> > > > >
> > > > > So code wise I should be looking at MirrorWsmBuilder and
> > WsmService?
> > > > > Any pointers will be helpful.
> > > > >
> > > > > I am going through the wiki and JSR documentation and will get
> > back with
> > > > > questions.
> > > > > Meanwhile do we have that seperate jar that bundles all the
> > relevent
> > > > classes
> > > > > for the annotations support?
> > > > >
> > > > > Regards,
> > > > >
> > > > > Rajith
> > > > >
> > > > > On 2/5/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > >
> > > > > > Dims--
> > > > > >
> > > > > >   Hey; apologies for the delay.  That's basically right -- there
> > is
> > > > > > actually one other step in the annotation processing pipeline
> > which is
> > > > > > verifying the validity of any annotations on the class.  So, it
> > would
> > > > > > be:
> > > > > >
> > > > > >   annotation checking (Jsr181AnnotationChecker) --> model
> > building
> > > > > > (MirrorWsmBuilder)
> > > > > >
> > > > > > which returns a WsmService object that can be wired up into
> > axis2
> > > > stuff.
> > > > > >
> > > > > >   I can certainly break the Axis 1.x stuff into a separate JAR;
> > my
> > > > > > original plan was to just put the Axis 1.x and 2 bits in the
> > same JAR
> > > > > > file, but if this is a problem, let me know and I can make three
> > JARs
> > > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > > > >
> > > > > >   There is one important part of this that isn't done yet, and
> > that's
> > > > > > to provide something that can be used inside of a server runtime
> > that
> > > > > > abstracts from Sun's Mirror types which are used inside of
> > APT.  Not
> > > > > > exactly sure what this looks like yet -- could be reflection or
> > > > > > something else that abstracts from Sun's Mirror APIs (used
> > inside of
> > > > > > APT).
> > > > > >
> > > > > >   Do you want to run this from inside of the Axis2 runtime or at
> >
> > > > > > build-time on the command line?  I'm assuming the former.
> > > > > >
> > > > > > Eddie
> > > > > >
> > > > > >
> > > > > > On 2/1/06, Davanum Srinivas < davanum@gmail.com> wrote:
> > > > > > > Eddie,
> > > > > > >
> > > > > > > i was looking at the current codebase and spotted the
> > > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect
> > a
> > > > given
> > > > > > > java class? and one the WsmService object is built, then
> > translate
> > > > > > > that to Axis2 thingies? Can we split out the processing
> > framework
> > > > into
> > > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the
> > right
> > > > track
> > > > > > > with this thinking?
> > > > > > >
> > > > > > > thanks,
> > > > > > > dims
> > > > > > >
> > > > > > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > > > > All--
> > > > > > > >
> > > > > > > >   Happy New Year!  And, as a way to start the year off on a
> > good
> > > > foot,
> > > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get
> > from
> > > > here to
> > > > > > > > there with some details about where we are and what needs to
> > > > happen.
> > > > > > > >
> > > > > > > >   Today, there are two core WSM parts, both of which are
> > tailored
> > > > to
> > > > > > > > the Axis web service stack:
> > > > > > > >
> > > > > > > >   build-time: This is a generic annotation processing layer
> > that
> > > > has
> > > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > > > produce a
> > > > > > > > WSM JavaBean model that represents a web service.  The
> > build-time
> > > > > > > > layer has a plug-point for generating source artifacts to
> > support
> > > > > > > > various web service runtimes.  For example, the Axis
> > > > implementation
> > > > > > > > produces a serialized version of the WSM JavaBean
> > model.  This
> > > > could
> > > > > > > > also produce JAX-RPC source / deployment descriptor
> > artifacts,
> > > > etc.
> > > > > > > >
> > > > > > > >   runtime: The runtime side of WSM is specifically built to
> > > > support
> > > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean
> > model
> > > > > > > > generated at build time and uses an Axis Handler to
> > configure a
> > > > > > > > SOAPService given this information.
> > > > > > > >
> > > > > > > >   There is another large bunch of code in WSM related to
> > tools:
> > > > > > > >
> > > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > > > development
> > > > > > > > model and starts with a WSDL to produce an annotated Java
> > source
> > > > file.
> > > > > > > >  This tool requires significant knowledge of WSDL and type
> > mapping
> > > > for
> > > > > > > > a specific web service stack.  For example, the mapping for
> > an XSD
> > > > > > > > year is mapped to org.apache.axis.types.Year and something
> > > > different
> > > > > > > > on other web service stacks.  wsdl2java is a non-trivial
> > bunch of
> > > > code
> > > > > > > > to write, but is also a very useful tool.
> > > > > > > >
> > > > > > > >   In order to finish WSM, one more re-architecting step
> > needs to
> > > > be
> > > > > > > > completed; I'd like to remove the use of a serialized Java
> > object
> > > > as
> > > > > > > > the way to communicate from the build-time to runtime parts
> > of the
> > > > > > > > implementation.  This would be replaced with a WSDD like,
> > but WSM
> > > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> > be
> > > > used
> > > > > > > > for this because too closely matches the shape of a Java
> > class
> > > > (Dims
> > > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> > need a
> > > > > > > > simple XML file that describes the information captured in a
> > > > > > > > WsmService.
> > > > > > > >
> > > > > > > >   Once this is done, we can start work on passing the
> > JSR-181 TCK.
> > > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > > >
> > > > > > > >   In order to expedite the process of getting from here to
> > TCK
> > > > > > > > compliance, I'd like to suggest that we stop stop work on
> > the
> > > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and
> > restart
> > > > this
> > > > > > > > tool immediately post-1.0.
> > > > > > > >
> > > > > > > >   Post 1.0, there are lots of other things that we could do
> > > > including:
> > > > > > > >
> > > > > > > > - JDK 1.4 support
> > > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > > developing an
> > > > > > > > annotated web service
> > > > > > > > - JAX-RPC support (Ias, still have any interest in working
> > on
> > > > this?)
> > > > > > > > - custom annotations to support container-specific features
> > like
> > > > type
> > > > > > mapping
> > > > > > > > - and so on...
> > > > > > > >
> > > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> > and
> > > > would
> > > > > > > > like to narrow scope in order to do that.  I think we're
> > almost
> > > > ready
> > > > > > > > for the TCK; I'll start on the XML file to describe an
> > annotated
> > > > Axis
> > > > > > > > web service shortly.
> > > > > > > >
> > > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > > >
> > > > > > > > Eddie
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > >
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Hi Dims,

Sorry if this question sounds stupid, but there is something that I don't
get.
Can you explain any gaps that I have? :-)

So we use WSM to get the jsr181 support.
But, It looks like wsm is not complete in terms of the POJO aspect as the
reflection based ReflectionWsmServiceFactory is not done.

I guess part of the job is to complete the wsm stuff and then use it inside
axis2. Or did I get this wrong?

>> Forgot to mention, please use annogen (http://annogen.codehaus.org/) to
access the annotations which are needed to build the WsmService
So are we going to do the implementation of ReflectionWsmServiceFactory
inside Axis2?

I thought we are going to complete that inside wsm and then implement
WSMToAxisServiceBuilder in Axis2 to build a Axis2 service out of a
WSMService thats produced via the ReflectionWsmServiceFactory.

Did I miss something?

Thanks,

Rajith

On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Let's keep this to axis-dev@ until we need some questions answered
> from beehive folks. Forgot to mention, please use annogen
> (http://annogen.codehaus.org/) to access the annotations which are
> needed to build the WsmService. We explicitly took a dependency on
> annogen in Axis2 for this purpose.
>
> thanks,
> -- dims
>
> On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > Hi Dims,
> >
> > Thanks for the pointers.
> > Let me look at how to get the ReflectionWsmServiceFactory impl going.
> > after that I can start with WSMToAxisServiceBuilder to build an
> AxisService
> > out of an anotated POJO.
> > Once I have something I will create a JIRA and attach a patch. U can
> take a
> > look at the code and then we can take it from there.
> > If I have questions I will bug u again :-)
> >
> > Btw, the Beehive mailing list seems to be a bit quiet, so I am wondering
> how
> > to get WSM specific questions answered :-)
> >
> > Regards,
> >
> > Rajith
> >
> > On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> > >
> > > Rajith,
> > >
> > > I think you need to implement ReflectionWsmServiceFactory first. The
> > > angle of attack i am looking at is deploying a POJO with annotations.
> > > (See AxisService.createService in Axis2 where one can deploy a pojo).
> > > You will have to write a WSMToAxisServiceBuilder (see
> > > WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
> > > WDYT? Once we have this, we can get fancy with codegen etc.
> > >
> > > thanks,
> > > dims
> > >
> > > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > > Hi Dims & Eddie,
> > > >
> > > > So code wise I should be looking at MirrorWsmBuilder and WsmService?
> > > > Any pointers will be helpful.
> > > >
> > > > I am going through the wiki and JSR documentation and will get back
> with
> > > > questions.
> > > > Meanwhile do we have that seperate jar that bundles all the relevent
> > > classes
> > > > for the annotations support?
> > > >
> > > > Regards,
> > > >
> > > > Rajith
> > > >
> > > > On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > >
> > > > > Dims--
> > > > >
> > > > >   Hey; apologies for the delay.  That's basically right -- there
> is
> > > > > actually one other step in the annotation processing pipeline
> which is
> > > > > verifying the validity of any annotations on the class.  So, it
> would
> > > > > be:
> > > > >
> > > > >   annotation checking (Jsr181AnnotationChecker) --> model building
> > > > > (MirrorWsmBuilder)
> > > > >
> > > > > which returns a WsmService object that can be wired up into axis2
> > > stuff.
> > > > >
> > > > >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > > > > original plan was to just put the Axis 1.x and 2 bits in the same
> JAR
> > > > > file, but if this is a problem, let me know and I can make three
> JARs
> > > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > > >
> > > > >   There is one important part of this that isn't done yet, and
> that's
> > > > > to provide something that can be used inside of a server runtime
> that
> > > > > abstracts from Sun's Mirror types which are used inside of
> APT.  Not
> > > > > exactly sure what this looks like yet -- could be reflection or
> > > > > something else that abstracts from Sun's Mirror APIs (used inside
> of
> > > > > APT).
> > > > >
> > > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > > build-time on the command line?  I'm assuming the former.
> > > > >
> > > > > Eddie
> > > > >
> > > > >
> > > > > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > > Eddie,
> > > > > >
> > > > > > i was looking at the current codebase and spotted the
> > > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a
> > > given
> > > > > > java class? and one the WsmService object is built, then
> translate
> > > > > > that to Axis2 thingies? Can we split out the processing
> framework
> > > into
> > > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the right
> > > track
> > > > > > with this thinking?
> > > > > >
> > > > > > thanks,
> > > > > > dims
> > > > > >
> > > > > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > > > All--
> > > > > > >
> > > > > > >   Happy New Year!  And, as a way to start the year off on a
> good
> > > foot,
> > > > > > > let's get WSM to 1.0.  Below is a proposal for how we get from
> > > here to
> > > > > > > there with some details about where we are and what needs to
> > > happen.
> > > > > > >
> > > > > > >   Today, there are two core WSM parts, both of which are
> tailored
> > > to
> > > > > > > the Axis web service stack:
> > > > > > >
> > > > > > >   build-time: This is a generic annotation processing layer
> that
> > > has
> > > > > > > the ability to work against Mirror, reflection, and WSDL to
> > > produce a
> > > > > > > WSM JavaBean model that represents a web service.  The
> build-time
> > > > > > > layer has a plug-point for generating source artifacts to
> support
> > > > > > > various web service runtimes.  For example, the Axis
> > > implementation
> > > > > > > produces a serialized version of the WSM JavaBean model.  This
> > > could
> > > > > > > also produce JAX-RPC source / deployment descriptor artifacts,
> > > etc.
> > > > > > >
> > > > > > >   runtime: The runtime side of WSM is specifically built to
> > > support
> > > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > > > > generated at build time and uses an Axis Handler to configure
> a
> > > > > > > SOAPService given this information.
> > > > > > >
> > > > > > >   There is another large bunch of code in WSM related to
> tools:
> > > > > > >
> > > > > > > wsdl2ajava -- this tool supports the top-down web service
> > > development
> > > > > > > model and starts with a WSDL to produce an annotated Java
> source
> > > file.
> > > > > > >  This tool requires significant knowledge of WSDL and type
> mapping
> > > for
> > > > > > > a specific web service stack.  For example, the mapping for an
> XSD
> > > > > > > year is mapped to org.apache.axis.types.Year and something
> > > different
> > > > > > > on other web service stacks.  wsdl2java is a non-trivial bunch
> of
> > > code
> > > > > > > to write, but is also a very useful tool.
> > > > > > >
> > > > > > >   In order to finish WSM, one more re-architecting step needs
> to
> > > be
> > > > > > > completed; I'd like to remove the use of a serialized Java
> object
> > > as
> > > > > > > the way to communicate from the build-time to runtime parts of
> the
> > > > > > > implementation.  This would be replaced with a WSDD like, but
> WSM
> > > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't
> be
> > > used
> > > > > > > for this because too closely matches the shape of a Java class
> > > (Dims
> > > > > > > and others, feel free to correct me if I'm wrong).  So, we
> need a
> > > > > > > simple XML file that describes the information captured in a
> > > > > > > WsmService.
> > > > > > >
> > > > > > >   Once this is done, we can start work on passing the JSR-181
> TCK.
> > > > > > > This will be done atop Apache Axis 1.x.
> > > > > > >
> > > > > > >   In order to expedite the process of getting from here to TCK
> > > > > > > compliance, I'd like to suggest that we stop stop work on the
> > > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart
> > > this
> > > > > > > tool immediately post-1.0.
> > > > > > >
> > > > > > >   Post 1.0, there are lots of other things that we could do
> > > including:
> > > > > > >
> > > > > > > - JDK 1.4 support
> > > > > > > - drop-in support for WSM in Axis to support iteratively
> > > developing an
> > > > > > > annotated web service
> > > > > > > - JAX-RPC support (Ias, still have any interest in working on
> > > this?)
> > > > > > > - custom annotations to support container-specific features
> like
> > > type
> > > > > mapping
> > > > > > > - and so on...
> > > > > > >
> > > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done
> and
> > > would
> > > > > > > like to narrow scope in order to do that.  I think we're
> almost
> > > ready
> > > > > > > for the TCK; I'll start on the XML file to describe an
> annotated
> > > Axis
> > > > > > > web service shortly.
> > > > > > >
> > > > > > >   Thoughts, comments, and flames welcome.
> > > > > > >
> > > > > > > Eddie
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> >
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Let's keep this to axis-dev@ until we need some questions answered
from beehive folks. Forgot to mention, please use annogen
(http://annogen.codehaus.org/) to access the annotations which are
needed to build the WsmService. We explicitly took a dependency on
annogen in Axis2 for this purpose.

thanks,
-- dims

On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Hi Dims,
>
> Thanks for the pointers.
> Let me look at how to get the ReflectionWsmServiceFactory impl going.
> after that I can start with WSMToAxisServiceBuilder to build an AxisService
> out of an anotated POJO.
> Once I have something I will create a JIRA and attach a patch. U can take a
> look at the code and then we can take it from there.
> If I have questions I will bug u again :-)
>
> Btw, the Beehive mailing list seems to be a bit quiet, so I am wondering how
> to get WSM specific questions answered :-)
>
> Regards,
>
> Rajith
>
> On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> >
> > Rajith,
> >
> > I think you need to implement ReflectionWsmServiceFactory first. The
> > angle of attack i am looking at is deploying a POJO with annotations.
> > (See AxisService.createService in Axis2 where one can deploy a pojo).
> > You will have to write a WSMToAxisServiceBuilder (see
> > WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
> > WDYT? Once we have this, we can get fancy with codegen etc.
> >
> > thanks,
> > dims
> >
> > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > Hi Dims & Eddie,
> > >
> > > So code wise I should be looking at MirrorWsmBuilder and WsmService?
> > > Any pointers will be helpful.
> > >
> > > I am going through the wiki and JSR documentation and will get back with
> > > questions.
> > > Meanwhile do we have that seperate jar that bundles all the relevent
> > classes
> > > for the annotations support?
> > >
> > > Regards,
> > >
> > > Rajith
> > >
> > > On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > >
> > > > Dims--
> > > >
> > > >   Hey; apologies for the delay.  That's basically right -- there is
> > > > actually one other step in the annotation processing pipeline which is
> > > > verifying the validity of any annotations on the class.  So, it would
> > > > be:
> > > >
> > > >   annotation checking (Jsr181AnnotationChecker) --> model building
> > > > (MirrorWsmBuilder)
> > > >
> > > > which returns a WsmService object that can be wired up into axis2
> > stuff.
> > > >
> > > >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > > > original plan was to just put the Axis 1.x and 2 bits in the same JAR
> > > > file, but if this is a problem, let me know and I can make three JARs
> > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > >
> > > >   There is one important part of this that isn't done yet, and that's
> > > > to provide something that can be used inside of a server runtime that
> > > > abstracts from Sun's Mirror types which are used inside of APT.  Not
> > > > exactly sure what this looks like yet -- could be reflection or
> > > > something else that abstracts from Sun's Mirror APIs (used inside of
> > > > APT).
> > > >
> > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > build-time on the command line?  I'm assuming the former.
> > > >
> > > > Eddie
> > > >
> > > >
> > > > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > Eddie,
> > > > >
> > > > > i was looking at the current codebase and spotted the
> > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a
> > given
> > > > > java class? and one the WsmService object is built, then translate
> > > > > that to Axis2 thingies? Can we split out the processing framework
> > into
> > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the right
> > track
> > > > > with this thinking?
> > > > >
> > > > > thanks,
> > > > > dims
> > > > >
> > > > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > > All--
> > > > > >
> > > > > >   Happy New Year!  And, as a way to start the year off on a good
> > foot,
> > > > > > let's get WSM to 1.0.  Below is a proposal for how we get from
> > here to
> > > > > > there with some details about where we are and what needs to
> > happen.
> > > > > >
> > > > > >   Today, there are two core WSM parts, both of which are tailored
> > to
> > > > > > the Axis web service stack:
> > > > > >
> > > > > >   build-time: This is a generic annotation processing layer that
> > has
> > > > > > the ability to work against Mirror, reflection, and WSDL to
> > produce a
> > > > > > WSM JavaBean model that represents a web service.  The build-time
> > > > > > layer has a plug-point for generating source artifacts to support
> > > > > > various web service runtimes.  For example, the Axis
> > implementation
> > > > > > produces a serialized version of the WSM JavaBean model.  This
> > could
> > > > > > also produce JAX-RPC source / deployment descriptor artifacts,
> > etc.
> > > > > >
> > > > > >   runtime: The runtime side of WSM is specifically built to
> > support
> > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > > > generated at build time and uses an Axis Handler to configure a
> > > > > > SOAPService given this information.
> > > > > >
> > > > > >   There is another large bunch of code in WSM related to tools:
> > > > > >
> > > > > > wsdl2ajava -- this tool supports the top-down web service
> > development
> > > > > > model and starts with a WSDL to produce an annotated Java source
> > file.
> > > > > >  This tool requires significant knowledge of WSDL and type mapping
> > for
> > > > > > a specific web service stack.  For example, the mapping for an XSD
> > > > > > year is mapped to org.apache.axis.types.Year and something
> > different
> > > > > > on other web service stacks.  wsdl2java is a non-trivial bunch of
> > code
> > > > > > to write, but is also a very useful tool.
> > > > > >
> > > > > >   In order to finish WSM, one more re-architecting step needs to
> > be
> > > > > > completed; I'd like to remove the use of a serialized Java object
> > as
> > > > > > the way to communicate from the build-time to runtime parts of the
> > > > > > implementation.  This would be replaced with a WSDD like, but WSM
> > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't be
> > used
> > > > > > for this because too closely matches the shape of a Java class
> > (Dims
> > > > > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > > > > simple XML file that describes the information captured in a
> > > > > > WsmService.
> > > > > >
> > > > > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > > > > This will be done atop Apache Axis 1.x.
> > > > > >
> > > > > >   In order to expedite the process of getting from here to TCK
> > > > > > compliance, I'd like to suggest that we stop stop work on the
> > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart
> > this
> > > > > > tool immediately post-1.0.
> > > > > >
> > > > > >   Post 1.0, there are lots of other things that we could do
> > including:
> > > > > >
> > > > > > - JDK 1.4 support
> > > > > > - drop-in support for WSM in Axis to support iteratively
> > developing an
> > > > > > annotated web service
> > > > > > - JAX-RPC support (Ias, still have any interest in working on
> > this?)
> > > > > > - custom annotations to support container-specific features like
> > type
> > > > mapping
> > > > > > - and so on...
> > > > > >
> > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and
> > would
> > > > > > like to narrow scope in order to do that.  I think we're almost
> > ready
> > > > > > for the TCK; I'll start on the XML file to describe an annotated
> > Axis
> > > > > > web service shortly.
> > > > > >
> > > > > >   Thoughts, comments, and flames welcome.
> > > > > >
> > > > > > Eddie
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > >
> > >
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
>
>


-- 
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
forwarding to axis-dev

On 6/13/06, Rajith Attapattu <ra...@gmail.com> wrote:
>
> Hi Dims,
>
> Thanks for the pointers.
> Let me look at how to get the ReflectionWsmServiceFactory impl going.
> after that I can start with WSMToAxisServiceBuilder to build an
> AxisService out of an anotated POJO.
> Once I have something I will create a JIRA and attach a patch. U can take
> a look at the code and then we can take it from there.
> If I have questions I will bug u again :-)
>
> Btw, the Beehive mailing list seems to be a bit quiet, so I am wondering
> how to get WSM specific questions answered :-)
>
> Regards,
>
> Rajith
>
>
> On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
> >
> > Rajith,
> >
> > I think you need to implement ReflectionWsmServiceFactory first. The
> > angle of attack i am looking at is deploying a POJO with annotations.
> > (See AxisService.createService in Axis2 where one can deploy a pojo).
> > You will have to write a WSMToAxisServiceBuilder (see
> > WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
> > WDYT? Once we have this, we can get fancy with codegen etc.
> >
> > thanks,
> > dims
> >
> > On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > > Hi Dims & Eddie,
> > >
> > > So code wise I should be looking at MirrorWsmBuilder and WsmService?
> > > Any pointers will be helpful.
> > >
> > > I am going through the wiki and JSR documentation and will get back
> > with
> > > questions.
> > > Meanwhile do we have that seperate jar that bundles all the relevent
> > classes
> > > for the annotations support?
> > >
> > > Regards,
> > >
> > > Rajith
> > >
> > > On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > >
> > > > Dims--
> > > >
> > > >   Hey; apologies for the delay.  That's basically right -- there is
> > > > actually one other step in the annotation processing pipeline which
> > is
> > > > verifying the validity of any annotations on the class.  So, it
> > would
> > > > be:
> > > >
> > > >   annotation checking (Jsr181AnnotationChecker) --> model building
> > > > (MirrorWsmBuilder)
> > > >
> > > > which returns a WsmService object that can be wired up into axis2
> > stuff.
> > > >
> > > >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > > > original plan was to just put the Axis 1.x and 2 bits in the same
> > JAR
> > > > file, but if this is a problem, let me know and I can make three
> > JARs
> > > > -- generic web service processing code, axis 1, axis 2, etc.
> > > >
> > > >   There is one important part of this that isn't done yet, and
> > that's
> > > > to provide something that can be used inside of a server runtime
> > that
> > > > abstracts from Sun's Mirror types which are used inside of APT.  Not
> > > > exactly sure what this looks like yet -- could be reflection or
> > > > something else that abstracts from Sun's Mirror APIs (used inside of
> >
> > > > APT).
> > > >
> > > >   Do you want to run this from inside of the Axis2 runtime or at
> > > > build-time on the command line?  I'm assuming the former.
> > > >
> > > > Eddie
> > > >
> > > >
> > > > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > > Eddie,
> > > > >
> > > > > i was looking at the current codebase and spotted the
> > > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a
> > given
> > > > > java class? and one the WsmService object is built, then translate
> > > > > that to Axis2 thingies? Can we split out the processing framework
> > into
> > > > > a separate jar (w/o things like Axis1 stuff)? Am i on the right
> > track
> > > > > with this thinking?
> > > > >
> > > > > thanks,
> > > > > dims
> > > > >
> > > > > On 1/3/06, Eddie O'Neil < ekoneil@gmail.com> wrote:
> > > > > > All--
> > > > > >
> > > > > >   Happy New Year!  And, as a way to start the year off on a good
> > foot,
> > > > > > let's get WSM to 1.0.  Below is a proposal for how we get from
> > here to
> > > > > > there with some details about where we are and what needs to
> > happen.
> > > > > >
> > > > > >   Today, there are two core WSM parts, both of which are
> > tailored to
> > > > > > the Axis web service stack:
> > > > > >
> > > > > >   build-time: This is a generic annotation processing layer that
> > has
> > > > > > the ability to work against Mirror, reflection, and WSDL to
> > produce a
> > > > > > WSM JavaBean model that represents a web service.  The
> > build-time
> > > > > > layer has a plug-point for generating source artifacts to
> > support
> > > > > > various web service runtimes.  For example, the Axis
> > implementation
> > > > > > produces a serialized version of the WSM JavaBean model.  This
> > could
> > > > > > also produce JAX-RPC source / deployment descriptor artifacts,
> > etc.
> > > > > >
> > > > > >   runtime: The runtime side of WSM is specifically built to
> > support
> > > > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > > > generated at build time and uses an Axis Handler to configure a
> > > > > > SOAPService given this information.
> > > > > >
> > > > > >   There is another large bunch of code in WSM related to tools:
> > > > > >
> > > > > > wsdl2ajava -- this tool supports the top-down web service
> > development
> > > > > > model and starts with a WSDL to produce an annotated Java source
> > file.
> > > > > >  This tool requires significant knowledge of WSDL and type
> > mapping for
> > > > > > a specific web service stack.  For example, the mapping for an
> > XSD
> > > > > > year is mapped to org.apache.axis.types.Year and something
> > different
> > > > > > on other web service stacks.  wsdl2java is a non-trivial bunch
> > of code
> > > > > > to write, but is also a very useful tool.
> > > > > >
> > > > > >   In order to finish WSM, one more re-architecting step needs to
> > be
> > > > > > completed; I'd like to remove the use of a serialized Java
> > object as
> > > > > > the way to communicate from the build-time to runtime parts of
> > the
> > > > > > implementation.  This would be replaced with a WSDD like, but
> > WSM
> > > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't be
> > used
> > > > > > for this because too closely matches the shape of a Java class
> > (Dims
> > > > > > and others, feel free to correct me if I'm wrong).  So, we need
> > a
> > > > > > simple XML file that describes the information captured in a
> > > > > > WsmService.
> > > > > >
> > > > > >   Once this is done, we can start work on passing the JSR-181
> > TCK.
> > > > > > This will be done atop Apache Axis 1.x.
> > > > > >
> > > > > >   In order to expedite the process of getting from here to TCK
> > > > > > compliance, I'd like to suggest that we stop stop work on the
> > > > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart
> > this
> > > > > > tool immediately post-1.0 .
> > > > > >
> > > > > >   Post 1.0, there are lots of other things that we could do
> > including:
> > > > > >
> > > > > > - JDK 1.4 support
> > > > > > - drop-in support for WSM in Axis to support iteratively
> > developing an
> > > > > > annotated web service
> > > > > > - JAX-RPC support (Ias, still have any interest in working on
> > this?)
> > > > > > - custom annotations to support container-specific features like
> > type
> > > > mapping
> > > > > > - and so on...
> > > > > >
> > > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and
> > would
> > > > > > like to narrow scope in order to do that.  I think we're almost
> > ready
> > > > > > for the TCK; I'll start on the XML file to describe an annotated
> > Axis
> > > > > > web service shortly.
> > > > > >
> > > > > >   Thoughts, comments, and flames welcome.
> > > > > >
> > > > > > Eddie
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas : http://wso2.com/blogs/
> > > > >
> > > >
> > >
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
>
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Hi Dims,

Thanks for the pointers.
Let me look at how to get the ReflectionWsmServiceFactory impl going.
after that I can start with WSMToAxisServiceBuilder to build an AxisService
out of an anotated POJO.
Once I have something I will create a JIRA and attach a patch. U can take a
look at the code and then we can take it from there.
If I have questions I will bug u again :-)

Btw, the Beehive mailing list seems to be a bit quiet, so I am wondering how
to get WSM specific questions answered :-)

Regards,

Rajith

On 6/13/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Rajith,
>
> I think you need to implement ReflectionWsmServiceFactory first. The
> angle of attack i am looking at is deploying a POJO with annotations.
> (See AxisService.createService in Axis2 where one can deploy a pojo).
> You will have to write a WSMToAxisServiceBuilder (see
> WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
> WDYT? Once we have this, we can get fancy with codegen etc.
>
> thanks,
> dims
>
> On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > Hi Dims & Eddie,
> >
> > So code wise I should be looking at MirrorWsmBuilder and WsmService?
> > Any pointers will be helpful.
> >
> > I am going through the wiki and JSR documentation and will get back with
> > questions.
> > Meanwhile do we have that seperate jar that bundles all the relevent
> classes
> > for the annotations support?
> >
> > Regards,
> >
> > Rajith
> >
> > On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > >
> > > Dims--
> > >
> > >   Hey; apologies for the delay.  That's basically right -- there is
> > > actually one other step in the annotation processing pipeline which is
> > > verifying the validity of any annotations on the class.  So, it would
> > > be:
> > >
> > >   annotation checking (Jsr181AnnotationChecker) --> model building
> > > (MirrorWsmBuilder)
> > >
> > > which returns a WsmService object that can be wired up into axis2
> stuff.
> > >
> > >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > > original plan was to just put the Axis 1.x and 2 bits in the same JAR
> > > file, but if this is a problem, let me know and I can make three JARs
> > > -- generic web service processing code, axis 1, axis 2, etc.
> > >
> > >   There is one important part of this that isn't done yet, and that's
> > > to provide something that can be used inside of a server runtime that
> > > abstracts from Sun's Mirror types which are used inside of APT.  Not
> > > exactly sure what this looks like yet -- could be reflection or
> > > something else that abstracts from Sun's Mirror APIs (used inside of
> > > APT).
> > >
> > >   Do you want to run this from inside of the Axis2 runtime or at
> > > build-time on the command line?  I'm assuming the former.
> > >
> > > Eddie
> > >
> > >
> > > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > > Eddie,
> > > >
> > > > i was looking at the current codebase and spotted the
> > > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a
> given
> > > > java class? and one the WsmService object is built, then translate
> > > > that to Axis2 thingies? Can we split out the processing framework
> into
> > > > a separate jar (w/o things like Axis1 stuff)? Am i on the right
> track
> > > > with this thinking?
> > > >
> > > > thanks,
> > > > dims
> > > >
> > > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > > All--
> > > > >
> > > > >   Happy New Year!  And, as a way to start the year off on a good
> foot,
> > > > > let's get WSM to 1.0.  Below is a proposal for how we get from
> here to
> > > > > there with some details about where we are and what needs to
> happen.
> > > > >
> > > > >   Today, there are two core WSM parts, both of which are tailored
> to
> > > > > the Axis web service stack:
> > > > >
> > > > >   build-time: This is a generic annotation processing layer that
> has
> > > > > the ability to work against Mirror, reflection, and WSDL to
> produce a
> > > > > WSM JavaBean model that represents a web service.  The build-time
> > > > > layer has a plug-point for generating source artifacts to support
> > > > > various web service runtimes.  For example, the Axis
> implementation
> > > > > produces a serialized version of the WSM JavaBean model.  This
> could
> > > > > also produce JAX-RPC source / deployment descriptor artifacts,
> etc.
> > > > >
> > > > >   runtime: The runtime side of WSM is specifically built to
> support
> > > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > > generated at build time and uses an Axis Handler to configure a
> > > > > SOAPService given this information.
> > > > >
> > > > >   There is another large bunch of code in WSM related to tools:
> > > > >
> > > > > wsdl2ajava -- this tool supports the top-down web service
> development
> > > > > model and starts with a WSDL to produce an annotated Java source
> file.
> > > > >  This tool requires significant knowledge of WSDL and type mapping
> for
> > > > > a specific web service stack.  For example, the mapping for an XSD
> > > > > year is mapped to org.apache.axis.types.Year and something
> different
> > > > > on other web service stacks.  wsdl2java is a non-trivial bunch of
> code
> > > > > to write, but is also a very useful tool.
> > > > >
> > > > >   In order to finish WSM, one more re-architecting step needs to
> be
> > > > > completed; I'd like to remove the use of a serialized Java object
> as
> > > > > the way to communicate from the build-time to runtime parts of the
> > > > > implementation.  This would be replaced with a WSDD like, but WSM
> > > > > specific, XML descriptor of the service.  AFAICT, WSDD can't be
> used
> > > > > for this because too closely matches the shape of a Java class
> (Dims
> > > > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > > > simple XML file that describes the information captured in a
> > > > > WsmService.
> > > > >
> > > > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > > > This will be done atop Apache Axis 1.x.
> > > > >
> > > > >   In order to expedite the process of getting from here to TCK
> > > > > compliance, I'd like to suggest that we stop stop work on the
> > > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart
> this
> > > > > tool immediately post-1.0.
> > > > >
> > > > >   Post 1.0, there are lots of other things that we could do
> including:
> > > > >
> > > > > - JDK 1.4 support
> > > > > - drop-in support for WSM in Axis to support iteratively
> developing an
> > > > > annotated web service
> > > > > - JAX-RPC support (Ias, still have any interest in working on
> this?)
> > > > > - custom annotations to support container-specific features like
> type
> > > mapping
> > > > > - and so on...
> > > > >
> > > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and
> would
> > > > > like to narrow scope in order to do that.  I think we're almost
> ready
> > > > > for the TCK; I'll start on the XML file to describe an annotated
> Axis
> > > > > web service shortly.
> > > > >
> > > > >   Thoughts, comments, and flames welcome.
> > > > >
> > > > > Eddie
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas : http://wso2.com/blogs/
> > > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Rajith,

I think you need to implement ReflectionWsmServiceFactory first. The
angle of attack i am looking at is deploying a POJO with annotations.
(See AxisService.createService in Axis2 where one can deploy a pojo).
You will have to write a WSMToAxisServiceBuilder (see
WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
WDYT? Once we have this, we can get fancy with codegen etc.

thanks,
dims

On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Hi Dims & Eddie,
>
> So code wise I should be looking at MirrorWsmBuilder and WsmService?
> Any pointers will be helpful.
>
> I am going through the wiki and JSR documentation and will get back with
> questions.
> Meanwhile do we have that seperate jar that bundles all the relevent classes
> for the annotations support?
>
> Regards,
>
> Rajith
>
> On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> >
> > Dims--
> >
> >   Hey; apologies for the delay.  That's basically right -- there is
> > actually one other step in the annotation processing pipeline which is
> > verifying the validity of any annotations on the class.  So, it would
> > be:
> >
> >   annotation checking (Jsr181AnnotationChecker) --> model building
> > (MirrorWsmBuilder)
> >
> > which returns a WsmService object that can be wired up into axis2 stuff.
> >
> >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > original plan was to just put the Axis 1.x and 2 bits in the same JAR
> > file, but if this is a problem, let me know and I can make three JARs
> > -- generic web service processing code, axis 1, axis 2, etc.
> >
> >   There is one important part of this that isn't done yet, and that's
> > to provide something that can be used inside of a server runtime that
> > abstracts from Sun's Mirror types which are used inside of APT.  Not
> > exactly sure what this looks like yet -- could be reflection or
> > something else that abstracts from Sun's Mirror APIs (used inside of
> > APT).
> >
> >   Do you want to run this from inside of the Axis2 runtime or at
> > build-time on the command line?  I'm assuming the former.
> >
> > Eddie
> >
> >
> > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > Eddie,
> > >
> > > i was looking at the current codebase and spotted the
> > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
> > > java class? and one the WsmService object is built, then translate
> > > that to Axis2 thingies? Can we split out the processing framework into
> > > a separate jar (w/o things like Axis1 stuff)? Am i on the right track
> > > with this thinking?
> > >
> > > thanks,
> > > dims
> > >
> > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > All--
> > > >
> > > >   Happy New Year!  And, as a way to start the year off on a good foot,
> > > > let's get WSM to 1.0.  Below is a proposal for how we get from here to
> > > > there with some details about where we are and what needs to happen.
> > > >
> > > >   Today, there are two core WSM parts, both of which are tailored to
> > > > the Axis web service stack:
> > > >
> > > >   build-time: This is a generic annotation processing layer that has
> > > > the ability to work against Mirror, reflection, and WSDL to produce a
> > > > WSM JavaBean model that represents a web service.  The build-time
> > > > layer has a plug-point for generating source artifacts to support
> > > > various web service runtimes.  For example, the Axis implementation
> > > > produces a serialized version of the WSM JavaBean model.  This could
> > > > also produce JAX-RPC source / deployment descriptor artifacts, etc.
> > > >
> > > >   runtime: The runtime side of WSM is specifically built to support
> > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > generated at build time and uses an Axis Handler to configure a
> > > > SOAPService given this information.
> > > >
> > > >   There is another large bunch of code in WSM related to tools:
> > > >
> > > > wsdl2ajava -- this tool supports the top-down web service development
> > > > model and starts with a WSDL to produce an annotated Java source file.
> > > >  This tool requires significant knowledge of WSDL and type mapping for
> > > > a specific web service stack.  For example, the mapping for an XSD
> > > > year is mapped to org.apache.axis.types.Year and something different
> > > > on other web service stacks.  wsdl2java is a non-trivial bunch of code
> > > > to write, but is also a very useful tool.
> > > >
> > > >   In order to finish WSM, one more re-architecting step needs to be
> > > > completed; I'd like to remove the use of a serialized Java object as
> > > > the way to communicate from the build-time to runtime parts of the
> > > > implementation.  This would be replaced with a WSDD like, but WSM
> > > > specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> > > > for this because too closely matches the shape of a Java class (Dims
> > > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > > simple XML file that describes the information captured in a
> > > > WsmService.
> > > >
> > > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > > This will be done atop Apache Axis 1.x.
> > > >
> > > >   In order to expedite the process of getting from here to TCK
> > > > compliance, I'd like to suggest that we stop stop work on the
> > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> > > > tool immediately post-1.0.
> > > >
> > > >   Post 1.0, there are lots of other things that we could do including:
> > > >
> > > > - JDK 1.4 support
> > > > - drop-in support for WSM in Axis to support iteratively developing an
> > > > annotated web service
> > > > - JAX-RPC support (Ias, still have any interest in working on this?)
> > > > - custom annotations to support container-specific features like type
> > mapping
> > > > - and so on...
> > > >
> > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> > > > like to narrow scope in order to do that.  I think we're almost ready
> > > > for the TCK; I'll start on the XML file to describe an annotated Axis
> > > > web service shortly.
> > > >
> > > >   Thoughts, comments, and flames welcome.
> > > >
> > > > Eddie
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> >
>
>


-- 
Davanum Srinivas : http://wso2.com/blogs/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Davanum Srinivas <da...@gmail.com>.
Rajith,

I think you need to implement ReflectionWsmServiceFactory first. The
angle of attack i am looking at is deploying a POJO with annotations.
(See AxisService.createService in Axis2 where one can deploy a pojo).
You will have to write a WSMToAxisServiceBuilder (see
WSDL11ToAxisServiceBuilder) to populate the AxisService info from WSM.
WDYT? Once we have this, we can get fancy with codegen etc.

thanks,
dims

On 6/5/06, Rajith Attapattu <ra...@gmail.com> wrote:
> Hi Dims & Eddie,
>
> So code wise I should be looking at MirrorWsmBuilder and WsmService?
> Any pointers will be helpful.
>
> I am going through the wiki and JSR documentation and will get back with
> questions.
> Meanwhile do we have that seperate jar that bundles all the relevent classes
> for the annotations support?
>
> Regards,
>
> Rajith
>
> On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
> >
> > Dims--
> >
> >   Hey; apologies for the delay.  That's basically right -- there is
> > actually one other step in the annotation processing pipeline which is
> > verifying the validity of any annotations on the class.  So, it would
> > be:
> >
> >   annotation checking (Jsr181AnnotationChecker) --> model building
> > (MirrorWsmBuilder)
> >
> > which returns a WsmService object that can be wired up into axis2 stuff.
> >
> >   I can certainly break the Axis 1.x stuff into a separate JAR; my
> > original plan was to just put the Axis 1.x and 2 bits in the same JAR
> > file, but if this is a problem, let me know and I can make three JARs
> > -- generic web service processing code, axis 1, axis 2, etc.
> >
> >   There is one important part of this that isn't done yet, and that's
> > to provide something that can be used inside of a server runtime that
> > abstracts from Sun's Mirror types which are used inside of APT.  Not
> > exactly sure what this looks like yet -- could be reflection or
> > something else that abstracts from Sun's Mirror APIs (used inside of
> > APT).
> >
> >   Do you want to run this from inside of the Axis2 runtime or at
> > build-time on the command line?  I'm assuming the former.
> >
> > Eddie
> >
> >
> > On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > > Eddie,
> > >
> > > i was looking at the current codebase and spotted the
> > > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
> > > java class? and one the WsmService object is built, then translate
> > > that to Axis2 thingies? Can we split out the processing framework into
> > > a separate jar (w/o things like Axis1 stuff)? Am i on the right track
> > > with this thinking?
> > >
> > > thanks,
> > > dims
> > >
> > > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > > All--
> > > >
> > > >   Happy New Year!  And, as a way to start the year off on a good foot,
> > > > let's get WSM to 1.0.  Below is a proposal for how we get from here to
> > > > there with some details about where we are and what needs to happen.
> > > >
> > > >   Today, there are two core WSM parts, both of which are tailored to
> > > > the Axis web service stack:
> > > >
> > > >   build-time: This is a generic annotation processing layer that has
> > > > the ability to work against Mirror, reflection, and WSDL to produce a
> > > > WSM JavaBean model that represents a web service.  The build-time
> > > > layer has a plug-point for generating source artifacts to support
> > > > various web service runtimes.  For example, the Axis implementation
> > > > produces a serialized version of the WSM JavaBean model.  This could
> > > > also produce JAX-RPC source / deployment descriptor artifacts, etc.
> > > >
> > > >   runtime: The runtime side of WSM is specifically built to support
> > > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > > generated at build time and uses an Axis Handler to configure a
> > > > SOAPService given this information.
> > > >
> > > >   There is another large bunch of code in WSM related to tools:
> > > >
> > > > wsdl2ajava -- this tool supports the top-down web service development
> > > > model and starts with a WSDL to produce an annotated Java source file.
> > > >  This tool requires significant knowledge of WSDL and type mapping for
> > > > a specific web service stack.  For example, the mapping for an XSD
> > > > year is mapped to org.apache.axis.types.Year and something different
> > > > on other web service stacks.  wsdl2java is a non-trivial bunch of code
> > > > to write, but is also a very useful tool.
> > > >
> > > >   In order to finish WSM, one more re-architecting step needs to be
> > > > completed; I'd like to remove the use of a serialized Java object as
> > > > the way to communicate from the build-time to runtime parts of the
> > > > implementation.  This would be replaced with a WSDD like, but WSM
> > > > specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> > > > for this because too closely matches the shape of a Java class (Dims
> > > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > > simple XML file that describes the information captured in a
> > > > WsmService.
> > > >
> > > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > > This will be done atop Apache Axis 1.x.
> > > >
> > > >   In order to expedite the process of getting from here to TCK
> > > > compliance, I'd like to suggest that we stop stop work on the
> > > > wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> > > > tool immediately post-1.0.
> > > >
> > > >   Post 1.0, there are lots of other things that we could do including:
> > > >
> > > > - JDK 1.4 support
> > > > - drop-in support for WSM in Axis to support iteratively developing an
> > > > annotated web service
> > > > - JAX-RPC support (Ias, still have any interest in working on this?)
> > > > - custom annotations to support container-specific features like type
> > mapping
> > > > - and so on...
> > > >
> > > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> > > > like to narrow scope in order to do that.  I think we're almost ready
> > > > for the TCK; I'll start on the XML file to describe an annotated Axis
> > > > web service shortly.
> > > >
> > > >   Thoughts, comments, and flames welcome.
> > > >
> > > > Eddie
> > > >
> > >
> > >
> > > --
> > > Davanum Srinivas : http://wso2.com/blogs/
> > >
> >
>
>


-- 
Davanum Srinivas : http://wso2.com/blogs/

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Hi Dims & Eddie,

So code wise I should be looking at MirrorWsmBuilder and WsmService?
Any pointers will be helpful.

I am going through the wiki and JSR documentation and will get back with
questions.
Meanwhile do we have that seperate jar that bundles all the relevent classes
for the annotations support?

Regards,

Rajith

On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
>
> Dims--
>
>   Hey; apologies for the delay.  That's basically right -- there is
> actually one other step in the annotation processing pipeline which is
> verifying the validity of any annotations on the class.  So, it would
> be:
>
>   annotation checking (Jsr181AnnotationChecker) --> model building
> (MirrorWsmBuilder)
>
> which returns a WsmService object that can be wired up into axis2 stuff.
>
>   I can certainly break the Axis 1.x stuff into a separate JAR; my
> original plan was to just put the Axis 1.x and 2 bits in the same JAR
> file, but if this is a problem, let me know and I can make three JARs
> -- generic web service processing code, axis 1, axis 2, etc.
>
>   There is one important part of this that isn't done yet, and that's
> to provide something that can be used inside of a server runtime that
> abstracts from Sun's Mirror types which are used inside of APT.  Not
> exactly sure what this looks like yet -- could be reflection or
> something else that abstracts from Sun's Mirror APIs (used inside of
> APT).
>
>   Do you want to run this from inside of the Axis2 runtime or at
> build-time on the command line?  I'm assuming the former.
>
> Eddie
>
>
> On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > Eddie,
> >
> > i was looking at the current codebase and spotted the
> > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
> > java class? and one the WsmService object is built, then translate
> > that to Axis2 thingies? Can we split out the processing framework into
> > a separate jar (w/o things like Axis1 stuff)? Am i on the right track
> > with this thinking?
> >
> > thanks,
> > dims
> >
> > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > All--
> > >
> > >   Happy New Year!  And, as a way to start the year off on a good foot,
> > > let's get WSM to 1.0.  Below is a proposal for how we get from here to
> > > there with some details about where we are and what needs to happen.
> > >
> > >   Today, there are two core WSM parts, both of which are tailored to
> > > the Axis web service stack:
> > >
> > >   build-time: This is a generic annotation processing layer that has
> > > the ability to work against Mirror, reflection, and WSDL to produce a
> > > WSM JavaBean model that represents a web service.  The build-time
> > > layer has a plug-point for generating source artifacts to support
> > > various web service runtimes.  For example, the Axis implementation
> > > produces a serialized version of the WSM JavaBean model.  This could
> > > also produce JAX-RPC source / deployment descriptor artifacts, etc.
> > >
> > >   runtime: The runtime side of WSM is specifically built to support
> > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > generated at build time and uses an Axis Handler to configure a
> > > SOAPService given this information.
> > >
> > >   There is another large bunch of code in WSM related to tools:
> > >
> > > wsdl2ajava -- this tool supports the top-down web service development
> > > model and starts with a WSDL to produce an annotated Java source file.
> > >  This tool requires significant knowledge of WSDL and type mapping for
> > > a specific web service stack.  For example, the mapping for an XSD
> > > year is mapped to org.apache.axis.types.Year and something different
> > > on other web service stacks.  wsdl2java is a non-trivial bunch of code
> > > to write, but is also a very useful tool.
> > >
> > >   In order to finish WSM, one more re-architecting step needs to be
> > > completed; I'd like to remove the use of a serialized Java object as
> > > the way to communicate from the build-time to runtime parts of the
> > > implementation.  This would be replaced with a WSDD like, but WSM
> > > specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> > > for this because too closely matches the shape of a Java class (Dims
> > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > simple XML file that describes the information captured in a
> > > WsmService.
> > >
> > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > This will be done atop Apache Axis 1.x.
> > >
> > >   In order to expedite the process of getting from here to TCK
> > > compliance, I'd like to suggest that we stop stop work on the
> > > wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> > > tool immediately post-1.0.
> > >
> > >   Post 1.0, there are lots of other things that we could do including:
> > >
> > > - JDK 1.4 support
> > > - drop-in support for WSM in Axis to support iteratively developing an
> > > annotated web service
> > > - JAX-RPC support (Ias, still have any interest in working on this?)
> > > - custom annotations to support container-specific features like type
> mapping
> > > - and so on...
> > >
> > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> > > like to narrow scope in order to do that.  I think we're almost ready
> > > for the TCK; I'll start on the XML file to describe an annotated Axis
> > > web service shortly.
> > >
> > >   Thoughts, comments, and flames welcome.
> > >
> > > Eddie
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Rajith Attapattu <ra...@gmail.com>.
Hi Dims & Eddie,

So code wise I should be looking at MirrorWsmBuilder and WsmService?
Any pointers will be helpful.

I am going through the wiki and JSR documentation and will get back with
questions.
Meanwhile do we have that seperate jar that bundles all the relevent classes
for the annotations support?

Regards,

Rajith

On 2/5/06, Eddie O'Neil <ek...@gmail.com> wrote:
>
> Dims--
>
>   Hey; apologies for the delay.  That's basically right -- there is
> actually one other step in the annotation processing pipeline which is
> verifying the validity of any annotations on the class.  So, it would
> be:
>
>   annotation checking (Jsr181AnnotationChecker) --> model building
> (MirrorWsmBuilder)
>
> which returns a WsmService object that can be wired up into axis2 stuff.
>
>   I can certainly break the Axis 1.x stuff into a separate JAR; my
> original plan was to just put the Axis 1.x and 2 bits in the same JAR
> file, but if this is a problem, let me know and I can make three JARs
> -- generic web service processing code, axis 1, axis 2, etc.
>
>   There is one important part of this that isn't done yet, and that's
> to provide something that can be used inside of a server runtime that
> abstracts from Sun's Mirror types which are used inside of APT.  Not
> exactly sure what this looks like yet -- could be reflection or
> something else that abstracts from Sun's Mirror APIs (used inside of
> APT).
>
>   Do you want to run this from inside of the Axis2 runtime or at
> build-time on the command line?  I'm assuming the former.
>
> Eddie
>
>
> On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> > Eddie,
> >
> > i was looking at the current codebase and spotted the
> > MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
> > java class? and one the WsmService object is built, then translate
> > that to Axis2 thingies? Can we split out the processing framework into
> > a separate jar (w/o things like Axis1 stuff)? Am i on the right track
> > with this thinking?
> >
> > thanks,
> > dims
> >
> > On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > > All--
> > >
> > >   Happy New Year!  And, as a way to start the year off on a good foot,
> > > let's get WSM to 1.0.  Below is a proposal for how we get from here to
> > > there with some details about where we are and what needs to happen.
> > >
> > >   Today, there are two core WSM parts, both of which are tailored to
> > > the Axis web service stack:
> > >
> > >   build-time: This is a generic annotation processing layer that has
> > > the ability to work against Mirror, reflection, and WSDL to produce a
> > > WSM JavaBean model that represents a web service.  The build-time
> > > layer has a plug-point for generating source artifacts to support
> > > various web service runtimes.  For example, the Axis implementation
> > > produces a serialized version of the WSM JavaBean model.  This could
> > > also produce JAX-RPC source / deployment descriptor artifacts, etc.
> > >
> > >   runtime: The runtime side of WSM is specifically built to support
> > > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > > generated at build time and uses an Axis Handler to configure a
> > > SOAPService given this information.
> > >
> > >   There is another large bunch of code in WSM related to tools:
> > >
> > > wsdl2ajava -- this tool supports the top-down web service development
> > > model and starts with a WSDL to produce an annotated Java source file.
> > >  This tool requires significant knowledge of WSDL and type mapping for
> > > a specific web service stack.  For example, the mapping for an XSD
> > > year is mapped to org.apache.axis.types.Year and something different
> > > on other web service stacks.  wsdl2java is a non-trivial bunch of code
> > > to write, but is also a very useful tool.
> > >
> > >   In order to finish WSM, one more re-architecting step needs to be
> > > completed; I'd like to remove the use of a serialized Java object as
> > > the way to communicate from the build-time to runtime parts of the
> > > implementation.  This would be replaced with a WSDD like, but WSM
> > > specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> > > for this because too closely matches the shape of a Java class (Dims
> > > and others, feel free to correct me if I'm wrong).  So, we need a
> > > simple XML file that describes the information captured in a
> > > WsmService.
> > >
> > >   Once this is done, we can start work on passing the JSR-181 TCK.
> > > This will be done atop Apache Axis 1.x.
> > >
> > >   In order to expedite the process of getting from here to TCK
> > > compliance, I'd like to suggest that we stop stop work on the
> > > wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> > > tool immediately post-1.0.
> > >
> > >   Post 1.0, there are lots of other things that we could do including:
> > >
> > > - JDK 1.4 support
> > > - drop-in support for WSM in Axis to support iteratively developing an
> > > annotated web service
> > > - JAX-RPC support (Ias, still have any interest in working on this?)
> > > - custom annotations to support container-specific features like type
> mapping
> > > - and so on...
> > >
> > >   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> > > like to narrow scope in order to do that.  I think we're almost ready
> > > for the TCK; I'll start on the XML file to describe an annotated Axis
> > > web service shortly.
> > >
> > >   Thoughts, comments, and flames welcome.
> > >
> > > Eddie
> > >
> >
> >
> > --
> > Davanum Srinivas : http://wso2.com/blogs/
> >
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
Dims--

  Hey; apologies for the delay.  That's basically right -- there is
actually one other step in the annotation processing pipeline which is
verifying the validity of any annotations on the class.  So, it would
be:

  annotation checking (Jsr181AnnotationChecker) --> model building
(MirrorWsmBuilder)

which returns a WsmService object that can be wired up into axis2 stuff.

  I can certainly break the Axis 1.x stuff into a separate JAR; my
original plan was to just put the Axis 1.x and 2 bits in the same JAR
file, but if this is a problem, let me know and I can make three JARs
-- generic web service processing code, axis 1, axis 2, etc.

  There is one important part of this that isn't done yet, and that's
to provide something that can be used inside of a server runtime that
abstracts from Sun's Mirror types which are used inside of APT.  Not
exactly sure what this looks like yet -- could be reflection or
something else that abstracts from Sun's Mirror APIs (used inside of
APT).

  Do you want to run this from inside of the Axis2 runtime or at
build-time on the command line?  I'm assuming the former.

Eddie


On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> Eddie,
>
> i was looking at the current codebase and spotted the
> MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
> java class? and one the WsmService object is built, then translate
> that to Axis2 thingies? Can we split out the processing framework into
> a separate jar (w/o things like Axis1 stuff)? Am i on the right track
> with this thinking?
>
> thanks,
> dims
>
> On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > All--
> >
> >   Happy New Year!  And, as a way to start the year off on a good foot,
> > let's get WSM to 1.0.  Below is a proposal for how we get from here to
> > there with some details about where we are and what needs to happen.
> >
> >   Today, there are two core WSM parts, both of which are tailored to
> > the Axis web service stack:
> >
> >   build-time: This is a generic annotation processing layer that has
> > the ability to work against Mirror, reflection, and WSDL to produce a
> > WSM JavaBean model that represents a web service.  The build-time
> > layer has a plug-point for generating source artifacts to support
> > various web service runtimes.  For example, the Axis implementation
> > produces a serialized version of the WSM JavaBean model.  This could
> > also produce JAX-RPC source / deployment descriptor artifacts, etc.
> >
> >   runtime: The runtime side of WSM is specifically built to support
> > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > generated at build time and uses an Axis Handler to configure a
> > SOAPService given this information.
> >
> >   There is another large bunch of code in WSM related to tools:
> >
> > wsdl2ajava -- this tool supports the top-down web service development
> > model and starts with a WSDL to produce an annotated Java source file.
> >  This tool requires significant knowledge of WSDL and type mapping for
> > a specific web service stack.  For example, the mapping for an XSD
> > year is mapped to org.apache.axis.types.Year and something different
> > on other web service stacks.  wsdl2java is a non-trivial bunch of code
> > to write, but is also a very useful tool.
> >
> >   In order to finish WSM, one more re-architecting step needs to be
> > completed; I'd like to remove the use of a serialized Java object as
> > the way to communicate from the build-time to runtime parts of the
> > implementation.  This would be replaced with a WSDD like, but WSM
> > specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> > for this because too closely matches the shape of a Java class (Dims
> > and others, feel free to correct me if I'm wrong).  So, we need a
> > simple XML file that describes the information captured in a
> > WsmService.
> >
> >   Once this is done, we can start work on passing the JSR-181 TCK.
> > This will be done atop Apache Axis 1.x.
> >
> >   In order to expedite the process of getting from here to TCK
> > compliance, I'd like to suggest that we stop stop work on the
> > wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> > tool immediately post-1.0.
> >
> >   Post 1.0, there are lots of other things that we could do including:
> >
> > - JDK 1.4 support
> > - drop-in support for WSM in Axis to support iteratively developing an
> > annotated web service
> > - JAX-RPC support (Ias, still have any interest in working on this?)
> > - custom annotations to support container-specific features like type mapping
> > - and so on...
> >
> >   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> > like to narrow scope in order to do that.  I think we're almost ready
> > for the TCK; I'll start on the XML file to describe an annotated Axis
> > web service shortly.
> >
> >   Thoughts, comments, and flames welcome.
> >
> > Eddie
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>

Re: Annotation parsing framework for Axis2 (Re: [wsm] a plan)

Posted by Eddie O'Neil <ek...@gmail.com>.
Dims--

  Hey; apologies for the delay.  That's basically right -- there is
actually one other step in the annotation processing pipeline which is
verifying the validity of any annotations on the class.  So, it would
be:

  annotation checking (Jsr181AnnotationChecker) --> model building
(MirrorWsmBuilder)

which returns a WsmService object that can be wired up into axis2 stuff.

  I can certainly break the Axis 1.x stuff into a separate JAR; my
original plan was to just put the Axis 1.x and 2 bits in the same JAR
file, but if this is a problem, let me know and I can make three JARs
-- generic web service processing code, axis 1, axis 2, etc.

  There is one important part of this that isn't done yet, and that's
to provide something that can be used inside of a server runtime that
abstracts from Sun's Mirror types which are used inside of APT.  Not
exactly sure what this looks like yet -- could be reflection or
something else that abstracts from Sun's Mirror APIs (used inside of
APT).

  Do you want to run this from inside of the Axis2 runtime or at
build-time on the command line?  I'm assuming the former.

Eddie


On 2/1/06, Davanum Srinivas <da...@gmail.com> wrote:
> Eddie,
>
> i was looking at the current codebase and spotted the
> MirrorWsmBuilder. Is this what we can use in Axis2 to inspect a given
> java class? and one the WsmService object is built, then translate
> that to Axis2 thingies? Can we split out the processing framework into
> a separate jar (w/o things like Axis1 stuff)? Am i on the right track
> with this thinking?
>
> thanks,
> dims
>
> On 1/3/06, Eddie O'Neil <ek...@gmail.com> wrote:
> > All--
> >
> >   Happy New Year!  And, as a way to start the year off on a good foot,
> > let's get WSM to 1.0.  Below is a proposal for how we get from here to
> > there with some details about where we are and what needs to happen.
> >
> >   Today, there are two core WSM parts, both of which are tailored to
> > the Axis web service stack:
> >
> >   build-time: This is a generic annotation processing layer that has
> > the ability to work against Mirror, reflection, and WSDL to produce a
> > WSM JavaBean model that represents a web service.  The build-time
> > layer has a plug-point for generating source artifacts to support
> > various web service runtimes.  For example, the Axis implementation
> > produces a serialized version of the WSM JavaBean model.  This could
> > also produce JAX-RPC source / deployment descriptor artifacts, etc.
> >
> >   runtime: The runtime side of WSM is specifically built to support
> > the Axis 1.x runtime.  It loads the serialized JavaBean model
> > generated at build time and uses an Axis Handler to configure a
> > SOAPService given this information.
> >
> >   There is another large bunch of code in WSM related to tools:
> >
> > wsdl2ajava -- this tool supports the top-down web service development
> > model and starts with a WSDL to produce an annotated Java source file.
> >  This tool requires significant knowledge of WSDL and type mapping for
> > a specific web service stack.  For example, the mapping for an XSD
> > year is mapped to org.apache.axis.types.Year and something different
> > on other web service stacks.  wsdl2java is a non-trivial bunch of code
> > to write, but is also a very useful tool.
> >
> >   In order to finish WSM, one more re-architecting step needs to be
> > completed; I'd like to remove the use of a serialized Java object as
> > the way to communicate from the build-time to runtime parts of the
> > implementation.  This would be replaced with a WSDD like, but WSM
> > specific, XML descriptor of the service.  AFAICT, WSDD can't be used
> > for this because too closely matches the shape of a Java class (Dims
> > and others, feel free to correct me if I'm wrong).  So, we need a
> > simple XML file that describes the information captured in a
> > WsmService.
> >
> >   Once this is done, we can start work on passing the JSR-181 TCK.
> > This will be done atop Apache Axis 1.x.
> >
> >   In order to expedite the process of getting from here to TCK
> > compliance, I'd like to suggest that we stop stop work on the
> > wsdl2ajava tool in order to focus on finishing 1.0 and restart this
> > tool immediately post-1.0.
> >
> >   Post 1.0, there are lots of other things that we could do including:
> >
> > - JDK 1.4 support
> > - drop-in support for WSM in Axis to support iteratively developing an
> > annotated web service
> > - JAX-RPC support (Ias, still have any interest in working on this?)
> > - custom annotations to support container-specific features like type mapping
> > - and so on...
> >
> >   Personally, I'm chomping at the bit to get WSM's 1.0 done and would
> > like to narrow scope in order to do that.  I think we're almost ready
> > for the TCK; I'll start on the XML file to describe an annotated Axis
> > web service shortly.
> >
> >   Thoughts, comments, and flames welcome.
> >
> > Eddie
> >
>
>
> --
> Davanum Srinivas : http://wso2.com/blogs/
>