You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Davanum Srinivas <da...@gmail.com> on 2006/11/16 23:42:26 UTC

[Axis2][jaxws] deploying jsr 181 service

Nick, Team,

Hows does a end user deploy say "A service class with just @WebService
annotation"? in current jaxws implemenation on svn HEAD?

-- dims

-- 
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)

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


Re: [Axis2][jaxws] deploying jsr 181 service

Posted by Rajith Attapattu <ra...@gmail.com>.
On 11/16/06, Sanjiva Weerawarana <sa...@opensource.lk> wrote:
>
> On Thu, 2006-11-16 at 19:14 -0500, Davanum Srinivas wrote:
> > Rajith,
> >
> > I went thru the patch, and i went thru the current code in JAXWS. So
> > it was a loaded question :)
> >
> > I think we need to define the simplest case. IMHO, the simplest
> > deployment case should work exactly like our RPC*MessageReceiver.
> >
> > - User writes a services.xml
> > - Specifies say Jsr181MessageReceiver as the MR
> > - Specifies a class with a @WebService as the ServiceClass
>
> I'd prefer the simple case to be:
>
> - User writes a class, jars it up and deploys the jar (yes a regular
> jar, not an aar)
> - We look for the Main-Class attribute in the manifest to see whether
> there's a class identified, if not we consider every class a candidate
> for the next step
> - Look for @WebService annotations on the class and deploy those classes
> as services


This is good as long as we don't use reflection as it's very expensive.
Thats why a class scanner like ASM adds value.

I'd also like to support the ultra simple case of a single .class that
> needs to be deployed. So what I'm saying is add say a "beans/" directory
> to the repository and look for jar and .class files there and do the
> above.
>
> > Don't want any listeners/notifications/peeking-thru-the-jars.
> > basically KISS [1]. Do you have some cycles to help with this?
>
> This is as KISS as you can do legally IMO.


Sanjiva, do u want to process the .class or .jar files within the Deployment
model or do u want that to be outside the kernal ?

--Rajith

Sanjiva.



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

Re: [Axis2][jaxws] deploying jsr 181 service

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

I agree with most of what you proposed there with the exception of the 
"beans" directory.  It seems like that would be the same thing as creating 
a node under the "services" directory and just dropping the bean in there, 
correct?  Or am I misunderstanding the intent?

In the current deployment model, what happens if a user puts their service 
classes/config directly under the "services" directory rather than 
creating a sub-directory?  Will that endpoint not be deployed at all?

Regards,

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



Sanjiva Weerawarana <sa...@opensource.lk> 
11/16/2006 09:25 PM
Please respond to
axis-dev@ws.apache.org


To
dims@apache.org
cc
axis-dev@ws.apache.org
Subject
Re: [Axis2][jaxws] deploying jsr 181 service






On Thu, 2006-11-16 at 19:14 -0500, Davanum Srinivas wrote:
> Rajith,
> 
> I went thru the patch, and i went thru the current code in JAXWS. So
> it was a loaded question :)
> 
> I think we need to define the simplest case. IMHO, the simplest
> deployment case should work exactly like our RPC*MessageReceiver.
> 
> - User writes a services.xml
> - Specifies say Jsr181MessageReceiver as the MR
> - Specifies a class with a @WebService as the ServiceClass

I'd prefer the simple case to be:

- User writes a class, jars it up and deploys the jar (yes a regular
jar, not an aar)
- We look for the Main-Class attribute in the manifest to see whether
there's a class identified, if not we consider every class a candidate
for the next step
- Look for @WebService annotations on the class and deploy those classes
as services

I'd also like to support the ultra simple case of a single .class that
needs to be deployed. So what I'm saying is add say a "beans/" directory
to the repository and look for jar and .class files there and do the
above.

> Don't want any listeners/notifications/peeking-thru-the-jars.
> basically KISS [1]. Do you have some cycles to help with this?

This is as KISS as you can do legally IMO.

Sanjiva.



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



Re: [Axis2][jaxws] deploying jsr 181 service

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
On Thu, 2006-11-16 at 19:14 -0500, Davanum Srinivas wrote:
> Rajith,
> 
> I went thru the patch, and i went thru the current code in JAXWS. So
> it was a loaded question :)
> 
> I think we need to define the simplest case. IMHO, the simplest
> deployment case should work exactly like our RPC*MessageReceiver.
> 
> - User writes a services.xml
> - Specifies say Jsr181MessageReceiver as the MR
> - Specifies a class with a @WebService as the ServiceClass

I'd prefer the simple case to be:

- User writes a class, jars it up and deploys the jar (yes a regular
jar, not an aar)
- We look for the Main-Class attribute in the manifest to see whether
there's a class identified, if not we consider every class a candidate
for the next step
- Look for @WebService annotations on the class and deploy those classes
as services

I'd also like to support the ultra simple case of a single .class that
needs to be deployed. So what I'm saying is add say a "beans/" directory
to the repository and look for jar and .class files there and do the
above.

> Don't want any listeners/notifications/peeking-thru-the-jars.
> basically KISS [1]. Do you have some cycles to help with this?

This is as KISS as you can do legally IMO.

Sanjiva.



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


Re: [Axis2][jaxws] deploying jsr 181 service

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

I can help out. Agreed on the point to keep it simple.

One of the points that was raised during the discussion thread was that
having a services.xml will defeat the purpose of annotations.

JSR181 has only a very basic set of annotations and if we write a
services.xml then it makes the annotations completely redundent as the
services.xml has all the information that needs to do the job.

Thats why I took the hard way.

>> Specifies say Jsr181MessageReceiver as the MR
We can easily use the RPCMessageReceivers (or RPCInOnlyMR if @OneWay). So
IMHO we don't need a special MR.

But as Nick points out how can we know if this service is a JaxWsEndpoint or
a Axis2Endpoint ?? thats why we suggested an additional axis2 annotation.

>>Don't want any listeners/notifications/peeking-thru-the-jars.
hehe ... As for the ASM scanner, it was to figure out which classes are
marked with @WebServie

Dims Either way count me in for support :)

Regards,

Rajith

On 11/16/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Rajith,
>
> I went thru the patch, and i went thru the current code in JAXWS. So
> it was a loaded question :)
>
> I think we need to define the simplest case. IMHO, the simplest
> deployment case should work exactly like our RPC*MessageReceiver.
>
> - User writes a services.xml
> - Specifies say Jsr181MessageReceiver as the MR
> - Specifies a class with a @WebService as the ServiceClass
>
> Don't want any listeners/notifications/peeking-thru-the-jars.
> basically KISS [1]. Do you have some cycles to help with this?
>
> thanks,
> dims
>
> [1] http://en.wikipedia.org/wiki/KISS_principle
>
> On 11/16/06, Rajith Attapattu <ra...@gmail.com> wrote:
> > hmm.... I haven't comitted the patch yet.
> > Nick can I start putting things together now ?? I hope you are done with
> the
> > refactoring you were planning to do.
> >
> > Dims, here is the basic idea.
> > The user can drop a jar file containing the class files marked with
> > @WebService and we use ASM to figure out which classes are marked and
> then
> > we load it. We use WSM to fill in the data and then we convert that to a
> > Axis2Service.
> >
> > the current concensus (after the Axis2 BoF at ApacheCon and mailing list
> > discussions) is to have some further annotations to help in the
> following
> > To mark wether it's a JAXWSEndpoint or Axis2Endpoint.
> > If JAXWsEndpoint then the MR is the JaxWsMessageReceiver and if not we
> do a
> > RPC(InOnly)MessageMessage reciver depending whether it's marked @Oneway
> or
> > not.
> >
> > We also have an idea to supplement the services.xml features by
> introducing
> > a few more annotations. [If it's not JAXWS endpoint]
> > For example @EnagageModule to leverage the module concept in Axis2
> >                    @MessageReceiver if we want to use an Asyn MR .. etc
> >
> > Regards,
> >
> > Rajith
> >
> > Btw, I need to add a listener to the Deployment Engine to receive
> > notification if a file has been droped. This way I can move the code
> inside
> > JAX-WS module and keep the kernal module clean. Also this avoids us
> > rewriting the deployment code for monitoring the repo.
> >
> >
> > On 11/16/06, Davanum Srinivas <da...@gmail.com> wrote:
> > >
> > > Nick, Team,
> > >
> > > Hows does a end user deploy say "A service class with just @WebService
> > > annotation"? in current jaxws implemenation on svn HEAD?
> > >
> > > -- dims
> > >
> > > --
> > > Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service
> Developers)
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > axis-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > >
> > >
> >
> >
>
>
> --
> Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: [Axis2][jaxws] deploying jsr 181 service

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

I went thru the patch, and i went thru the current code in JAXWS. So
it was a loaded question :)

I think we need to define the simplest case. IMHO, the simplest
deployment case should work exactly like our RPC*MessageReceiver.

- User writes a services.xml
- Specifies say Jsr181MessageReceiver as the MR
- Specifies a class with a @WebService as the ServiceClass

Don't want any listeners/notifications/peeking-thru-the-jars.
basically KISS [1]. Do you have some cycles to help with this?

thanks,
dims

[1] http://en.wikipedia.org/wiki/KISS_principle

On 11/16/06, Rajith Attapattu <ra...@gmail.com> wrote:
> hmm.... I haven't comitted the patch yet.
> Nick can I start putting things together now ?? I hope you are done with the
> refactoring you were planning to do.
>
> Dims, here is the basic idea.
> The user can drop a jar file containing the class files marked with
> @WebService and we use ASM to figure out which classes are marked and then
> we load it. We use WSM to fill in the data and then we convert that to a
> Axis2Service.
>
> the current concensus (after the Axis2 BoF at ApacheCon and mailing list
> discussions) is to have some further annotations to help in the following
> To mark wether it's a JAXWSEndpoint or Axis2Endpoint.
> If JAXWsEndpoint then the MR is the JaxWsMessageReceiver and if not we do a
> RPC(InOnly)MessageMessage reciver depending whether it's marked @Oneway or
> not.
>
> We also have an idea to supplement the services.xml features by introducing
> a few more annotations. [If it's not JAXWS endpoint]
> For example @EnagageModule to leverage the module concept in Axis2
>                    @MessageReceiver if we want to use an Asyn MR .. etc
>
> Regards,
>
> Rajith
>
> Btw, I need to add a listener to the Deployment Engine to receive
> notification if a file has been droped. This way I can move the code inside
> JAX-WS module and keep the kernal module clean. Also this avoids us
> rewriting the deployment code for monitoring the repo.
>
>
> On 11/16/06, Davanum Srinivas <da...@gmail.com> wrote:
> >
> > Nick, Team,
> >
> > Hows does a end user deploy say "A service class with just @WebService
> > annotation"? in current jaxws implemenation on svn HEAD?
> >
> > -- dims
> >
> > --
> > Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> >
>
>


-- 
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)

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


Re: [Axis2][jaxws] deploying jsr 181 service

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

Sorry for the late response here.  I'll do my best to be more responsive 
here so we can make progress on this issue. 

As far as what's available for use right now, I'll let Jeff comment on the 
specifics since he's (and Roy) have been the ones pushing that work.  I 
think the general structure is there, but there's still a last bit of 
refactoring required to be able to start using the metadata framework with 
Axis2 endpoints. 

I took a little bit and cleaned up the wiki the we'd started a while back 
to discuss the annotations that you'd mentioned below.  Do you mind if we 
use that page to continue to define how this will work (what annotations 
will be introduced, how the deployment/processing will be kicked off)?

http://wiki.apache.org/ws/FrontPage/Axis2/JAX-WS/JSR-181

It's a first pass at the information included below and a brief summary of 
our earlier discussions.  We can use this to come to some consensus on the 
approach and then whoever is interested in doing the work can pick it up 
with adequate information.

Regards,

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



"Rajith Attapattu" <ra...@gmail.com> 
11/16/2006 05:16 PM
Please respond to
axis-dev@ws.apache.org


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

Subject
Re: [Axis2][jaxws] deploying jsr 181 service






hmm.... I haven't comitted the patch yet.
Nick can I start putting things together now ?? I hope you are done with 
the refactoring you were planning to do.

Dims, here is the basic idea.
The user can drop a jar file containing the class files marked with 
@WebService and we use ASM to figure out which classes are marked and then 
we load it. We use WSM to fill in the data and then we convert that to a 
Axis2Service. 

the current concensus (after the Axis2 BoF at ApacheCon and mailing list 
discussions) is to have some further annotations to help in the following
To mark wether it's a JAXWSEndpoint or Axis2Endpoint.
If JAXWsEndpoint then the MR is the JaxWsMessageReceiver and if not we do 
a RPC(InOnly)MessageMessage reciver depending whether it's marked @Oneway 
or not. 

We also have an idea to supplement the services.xml features by 
introducing a few more annotations. [If it's not JAXWS endpoint]
For example @EnagageModule to leverage the module concept in Axis2
                   @MessageReceiver if we want to use an Asyn MR .. etc 

Regards,

Rajith

Btw, I need to add a listener to the Deployment Engine to receive 
notification if a file has been droped. This way I can move the code 
inside JAX-WS module and keep the kernal module clean. Also this avoids us 
rewriting the deployment code for monitoring the repo. 

On 11/16/06, Davanum Srinivas <da...@gmail.com> wrote:
Nick, Team,

Hows does a end user deploy say "A service class with just @WebService
annotation"? in current jaxws implemenation on svn HEAD?

-- dims

--
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)

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



Re: [Axis2][jaxws] deploying jsr 181 service

Posted by Rajith Attapattu <ra...@gmail.com>.
hmm.... I haven't comitted the patch yet.
Nick can I start putting things together now ?? I hope you are done with the
refactoring you were planning to do.

Dims, here is the basic idea.
The user can drop a jar file containing the class files marked with
@WebService and we use ASM to figure out which classes are marked and then
we load it. We use WSM to fill in the data and then we convert that to a
Axis2Service.

the current concensus (after the Axis2 BoF at ApacheCon and mailing list
discussions) is to have some further annotations to help in the following
To mark wether it's a JAXWSEndpoint or Axis2Endpoint.
If JAXWsEndpoint then the MR is the JaxWsMessageReceiver and if not we do a
RPC(InOnly)MessageMessage reciver depending whether it's marked @Oneway or
not.

We also have an idea to supplement the services.xml features by introducing
a few more annotations. [If it's not JAXWS endpoint]
For example @EnagageModule to leverage the module concept in Axis2
                   @MessageReceiver if we want to use an Asyn MR .. etc

Regards,

Rajith

Btw, I need to add a listener to the Deployment Engine to receive
notification if a file has been droped. This way I can move the code inside
JAX-WS module and keep the kernal module clean. Also this avoids us
rewriting the deployment code for monitoring the repo.

On 11/16/06, Davanum Srinivas <da...@gmail.com> wrote:
>
> Nick, Team,
>
> Hows does a end user deploy say "A service class with just @WebService
> annotation"? in current jaxws implemenation on svn HEAD?
>
> -- dims
>
> --
> Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: [Axis2][jaxws] deploying jsr 181 service

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

Great question...  As of now, the endpoints that we've gotten up have been 
hacked in to the services.xml.  There isn't currently a deployment model 
for annotated pojos.

I've been a little slow, obviously, on writing up where we are, but that 
was one of the main areas I was going to see if anyone wanted to help 
with.  We have the code to process the annotations and produce the right 
AxisService/AxisOperation tree.  We just don't have it wired in to the 
deployment yet.  But, that shouldn't be a big deal at all given what's 
already there.

(Responding to this note directly first.  Will now go back and read the 
rest of the thread...  :)  )

Regards,

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



"Davanum Srinivas" <da...@gmail.com> 
11/16/2006 04:42 PM
Please respond to
axis-dev@ws.apache.org


To
"Axis developer list" <ax...@ws.apache.org>
cc

Subject
[Axis2][jaxws] deploying jsr 181 service






Nick, Team,

Hows does a end user deploy say "A service class with just @WebService
annotation"? in current jaxws implemenation on svn HEAD?

-- dims

-- 
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)

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