Re: [Axis2] axis2 impressions

2005-12-16 Thread Eran Chinthaka




-BEGIN PGP SIGNED MESSAGE- 
Hash: SHA1 

Hi guys,

Let me give simple inputs for this discussion, but I'm not gonna
intervene. ;-)

Let me thank all of you, who were very contructive and enthusiastic to
improve axis2, the project of all of us. I agree there is still some
room for improvements in Axis2, especially in client api and
documentations. To tell you the truth, we have allocated next couple
of weeks to improve major documentations and client api.
During ApacheCon hackathon we did some internal refactorings, as a
first step towards this.

Documentation :
As I always say, this project does not belong only to the developers.
As users we want your support as well. I personally thank iksrazal for
coming forward and providing us with good documentation whenever
required. As Jim mentioned, we developers are not good tech writers
(at least me). So if possible, please help us in that. If you can look
at axis2 and provide us with feedback, and come up with some good
documentation, we really appreciate it. And I personally take the
responsibility to publish them, if they are of good quality.
Please remember that our aim is to provide what users want with users
support. I agree that we can not achieve 100% satisfaction, but we
need to satisfy at least a majority of them. Most of the develepors we
have in Axis2 have experience in writing more than 4-5 soap stacks. So
we believe in their experiences as well.
So please help us in improving docs, providing docs in un covered
areas, etc.,

Client API :
Todd, if you feel like our client api is not good enough, please come
up with a good proposal. We are more than happy to discuss that.
Client api is what most users will be working with and these days
couple of our guys are working hard to improve it. Here also, please
tell us what you want.

Regarding XFire and SOAP stacks :
Each and every soap stack has its pros and cons. I accept that we need
to compete, but we axis2 people are trying our level best to provide
the most useful features. We do not have the mind set of providing
features, simply XFire or other stack has it. We prioritise the
features implementations depending on the user feed back and from our
expert's experiences. So in this process, some features which majority
of the users feel critical may not be critical for some users, which
is unavoidable. So please bear with us. Rememeber one of the
motivations behind Axis2 is to implement new technologies related to
web services. If some thing is getting delayed, please feel free to
come and help us.

Let me remind you one last important thing. Personally I feel really
comfortable with the features Axis2 provides and Axis2 is not inferior
in any means compared to Indigo or any other SOAP stack. So I don't
think any one has problems with Axis2 architecture and its features.

Criticize us, comment and appreciate us. Whatever it is we appreciate
it.

Thanks again for all the comments.

- -- Chinthaka

Jim Azeltine wrote:

 This is my third attempt at
diving into the use of an open source
 product, and on the whole it has been good. I am always impressed
 that these individuals will put all the time into these projects,
 even though nobody will ever pay them anything for their work.
One
 thing that I have learned is that it is NOT a good idea to try to
 implement a newly released project. I have been paying attention
to
 the "direction of the breeze" when it comes to Axis 2, but I
would
 not even consider trying to implement it in a production
 environment. It is still too "green" for me. On to the
constructive
 criticism! 8) (not version specific)
 
 Rakesh Patel [EMAIL PROTECTED] wrote:
 
 I also have not found the experience of working with web
 services and apache axis a pleasurable one.
 
 Aside from the frustration factor that is usually present with
the
 use of open source projects, I find most of the experience
 pleasurable. The main source of frustration seems to be related
to
 the state of the project (how long it has been since release),
and
 the state of the documentation.
 
 Rakesh Patel [EMAIL PROTECTED] wrote:
 
 The Apache axis docs were pretty bad. Its not geared
towards
 learning the way to use axis, more a reference. I had no
idea
 how to add axis to an existing application. I did it in
the end
 becasue some helpful guy had made available a minimal
app that
 you could use to start from on his blog (why doesn't the
main
 site provide this?). The 1.3 download has docs for 1.2.
 
 In most cases, an excellent software developer does not make an
 excellent documentation writer. I could not agree more with the
 statement about the docs not being geared for learning. I would
 guess that most of us who are on the hook to deliver a working
 project have uttered quite a few "oaths" while trying to solve a
 problem using the Axis docs. I find that most of the time, I end
up
 doing some "creative" googling to try to find an example of
 something that works. Trying to figure it out by looking 

Re: axis2 impressions

2005-12-15 Thread Rakesh Patel
I also have not found the experience of working with web services and 
apache axis a pleasurable one.


I'm glad my project has been put on hold because the learning curve is 
so steep. Here's a few issues I have had:


1. Initially I started out using the Sun reference implementation and 
installed the extensions to my Sun ONE instance. This had performance 
and memory implications on the server. I switched to Apache Axis instead.
2. The whole arena of web services is compliated because of so many 
changes over so little time. I found a few tutorials on the net but if 
they were in 2002 you never knew if it was the right way to do things now.
3. The Apache axis docs were pretty bad. Its not geared towards learning 
the way to use axis, more a reference. I had no idea how to add axis to 
an existing application. I did it in the end becasue some helpful guy 
had made available a minimal app that you could use to start from on his 
blog (why doesn't the main site provide this?). The 1.3 download has 
docs for 1.2.
4. The touted tool support is a double-edged sword because you need to 
know what they are doing to enable debugging but you don't have enough 
knowledge at a low level. For instance, when i tried the upgrade from 
1.2--1.3 by replacing the axis jar, my ant tasks failed 
(wsdl2java/java2wsdl) . I had no idea where to begin to solve this.


Overall I'd say that dealing with the underlying servlet code and xml 
libraries would have been easier to use and easier to understand. I feel 
that Apache Axis and maybe even web services in general is 
over-engineered and more compilcated than the alternative implementation 
(dealing with servlets and xml).


Implementation A
1. code a servlet to transfer xml.
2. Use something like JDOM to create/read/update the xml.
3. Use web container functionality such as session timeout, user 
management and ssl. Done it before many times


Implementation B
1. Learn Apache Axis and add to your app.
2. Work out how to use and intergrate the tools into your build process.
3. Learn the myriad ways to do everything such as security and transfer 
modes and rpc and filters and exceptions etcetcetc(and then watch them 
change).


A is easier when you have to get the job done.

Perhaps I'm missing the point. Its when the functionality you need is 
much more advanced that it pays back the approach. However, if it can't 
satisfy simple requirements then i think its a failure becuase no-one is 
going to jump into the complicated stuff when they are first starting out.


Sorry for the rant but i thought I should give some feedback.

Rakesh

Srinath Perera wrote:


Hi Todd;

Are referring to Call/MEPClient API or Generated Stubs. We do not
force you to use the OM* API unless you need XML level support. You
can use the generated Stubs and Client s and work with out seen a
OMElement at all.

Q) are you happy with Axis1.x API? what you had there and missing at Axis2

If it is good architecturally .. we can fix the client API  If only
you can provide constructive comments. Remember lot of developers has
different opinions about it .. some quite opposite.

Tell us

1) Exactly in detail what are the problems?
2) What your expected scenarios .. with example may be
3) Suggestions to how to fix current API

If you do, we can discuss and improve Axis2, if you arguments are
reasonable we love to make the fixes. On the other hand if the Xfire
serve you better please go for it.

If you comment please be constructive ..random opinions do not help anybody!!
Thanks
Srinath

On 12/15/05, Todd Orr [EMAIL PROTECTED] wrote:
 


The more I learn about Axis2, the less appealing it is. It seems to be giant
leap backwards. Why is coding using OMElement (and the other OM... objects)
a better approach than deploying a POJO? This is a huge pain. Not to mention
the deployment issues that I've already run into. Based on the documentation
I feel as though Axis2 is a step forward architecturally, but extremely weak
in user friendliness. For this reason I've been finding myself more
interested in XFire. It has many features of Axis2, yet is extremely easy to
create Web services with. Why would the Axis2 team go in this
anti-productivity direction?

   



 



Re: axis2 impressions

2005-12-15 Thread Todd Orr
We build with maven and have a simple goal that iterates through the project'sdependencies and copies them all into the lib folder of the axis2 webapp.
Another goal removes them. This is pretty easy to do and frees you fromhaving to worry about modifying the axis2 war file.We use JBoss4 and Ant. In our environment, we would still have to alter the deployed war unless we either built axis2 each time, or un/re-packaged the war each time. This situation is less than ideal. Even if this is a headache for my release engineer and therefore is mitigated to one resource, it still pales in comparison the to developer productivity drawbacks stated.
On 12/15/05, Alex Artigues [EMAIL PROTECTED] wrote:
 5This new approach is incompatible with my company's build scripts. Automating the build seems to be a hassle. I do not even see a nice way to do this - explode the war, build and deploy my aar files to the exploded
 war, then repackage? Ugh.We build with maven and have a simple goal that iterates through the project'sdependencies and copies them all into the lib folder of the axis2 webapp.Another goal removes them.This is pretty easy to do and frees you from
having to worry about modifying the axis2 war file.--Alex


Re: axis2 impressions

2005-12-15 Thread iksrazal
As someone who has worked alot with axis 1.x and axis2, allow me to put my 2 
cents in...


Em Quinta 15 Dezembro 2005 13:49, o Todd Orr escreveu:
 You're right. Random comments are not helpful. In general, however, Axis1
 was far easier to get a working app up with.

 1.I was mainly taken by surprise by the OMElement approach that is
 explained in the user guide's own implementation (
 http://ws.apache.org/axis2/userguide.html#Web_Services_Using_Axis2). If
 this is a special case, then it shouldn't be the only one in the user
 guide. I didn't find anywhere that I could just deploy a POJO (with minimal
 metadata in the wsdd) as I can with Axis1.

Its open-source, feel free to document it. I personally needed a WSDL2Java ant 
task with axis2, and once I figured it out how to do it I was invited to 
document it, which I did. I personally found the OMElement approach easy 
enough to undersatand to get started without wsdl. 

Digging deeper you'll find the Call interface still there. 

WSDD is IMHO far inferior to the services.xml / aar / hot deployment approach,  
and one of the reasons I moved to axis2. 


 1.1 Perhaps number 1 is completely wrong. If so, the documentation needs to
 point this out. If my experience thus far is unfair it is because the
 documentation is incomplete (expected early in the project) at a minimum,
 and from my personal experience it is misleading (unacceptable).

 2. I feel as though the need to work with WSDLs directly is a failing of
 the implementation (whichever implementation). Ideally the situation should
 be that there are times in unusual circumstances that you might need to
 work with the WSDL directly. The majority of Web service deployments should
 be as simple as providing metadata via XML or annotations that handle the
 type of things that you would need to alter the WSDL for. It seems that
 Axis2 is no further away from this than Axis1 ever was. If anything it
 further perpetuates this anti-productive vein of thought. The documentation
 is rife with references and how-tos relating to WSDL2Java. This is
 backwards thinking and it permeates both Axis1 and 2 users/developers. I
 work with objects. We all, as Java developers, work with objects. Java
 developers are most productive when working with objects, in general. I'm
 not trying to start a flame war on this subject, but whenever I hear, oh
 you need to edit the WSDL to do this or that I cringe. It's not that I
 can't. It's that I shouldn't have to. If you think I'm wrong, look at ejb2
 vs ejb3 in regards to the various xml files. Same story, different project.
 Even then, I contend that ejb deployment descriptors are easier to work
 with than WSDLs.

WSDL is a major fact in web services development - I don't see it as a being 
unusual circumstances at all. The OMElement stuff allows you to avoid wsdl 
just like Call.invoke() can. WSDL has a lot of power behind it. It may be 
difficult now, but with a little effort learning it soon it won't be. 

If you want to work with objects, then Complex Types and WSDL should be a 
natural fit. Once I learned how to use java.util.List with wsdl to represent 
my data, along with my customs types, there was no turning back. 

I've actually even used EJB with WSDL together - alot. There are a lot of 
files to touch, buts its only hard for a few days and then its easy. Then 
again, wsdl is not mandatory. 

I actually spent my first 2 years doing web services without wsdl. When it 
became a requirement I cringed. After a few weeks I started to like it. 


 3. JRS-181 is awesome. After using XFire's implementation, I do not know if
 I will be able to go back to a non-annotated world.

Then use XFire and be happy. I haven't got to JRS-181  - all in due time. 


 4. Poor out of the box support for other frameworks (eg Spring). I would
 like to be able to manage my Web services like any other bean in a webapp.
 I'm sure if I hack away I can manage to put something specific to my
 project together, but then there will be hundreds of homegrown
 implementations that no one body has knowledge of or is responsible for.
 Axis2 does not live in a vacuum. There's a lot of frameworks out there.
 It'd be nice if the project recognized and supported this idea.

There is support for spring - I'm a dedicated, happy user of spring. 

http://marc.theaimsgroup.com/?l=axis-devm=112866697704950w=2

I personally use the ObjectFactory approach as we have an existing app. I'd 
like to see Spring documented but not too many people have been asking for 
it. 


 5. Weird deployment model. I guess that having a JEEish packaging scheme is
 a good thing. However, I've lost all the benefits of creating a war of my
 own for my services. I can no longer specify my own url-mappings without
 editing the axis2.war, which is not in my source control (and shouldn't
 be). This new approach is incompatible with my company's build scripts.
 Automating the build seems to be a hassle. I do not even see a nice way to
 do this 

Re: axis2 impressions

2005-12-15 Thread iksrazal
Em Quinta 15 Dezembro 2005 14:11, o Todd Orr escreveu:
  We build with maven and have a simple goal that iterates through the
  project's
  dependencies and copies them all into the lib folder of the axis2 webapp.
  Another goal removes them.  This is pretty easy to do and frees you from
  having to worry about modifying the axis2 war file.

 We use JBoss4 and Ant. In our environment, we would still have to alter the
 deployed war unless we either built axis2 each time, or un/re-packaged the
 war each time. This situation is less than ideal. Even if this is a
 headache for my release engineer and therefore is mitigated to one
 resource, it still pales in comparison the to developer productivity
 drawbacks stated.

I don't get it. Got your own war? in your war ant task put another dir under 
WEB-INF called services. Build a jar with an aar extension and plop it in. 
Move the axis2.xml file into your WEB-INF.  What's so hard about that? Took 
me an hour or so with a bigger than average project and a 1000 line 
build.xml . 

As stated - call me strange but I feel more productive with axis2. 

Being constructive, I'd give some hints with your build.xml if you need it. 

Also as stated, its just new to you. Soon it won't be if you spend a little 
effort. I personally feel I've gained from axis2. Give it a shot and then 
decide. 

iksrazal


 On 12/15/05, Alex Artigues [EMAIL PROTECTED] wrote:
   5This new approach is incompatible with my company's build scripts.
   Automating the build seems to be a hassle. I do not even see a nice way
 
  to
 
   do this - explode the war, build and deploy my aar files to the
   exploded war, then repackage? Ugh.
 
  We build with maven and have a simple goal that iterates through the
  project's
  dependencies and copies them all into the lib folder of the axis2 webapp.
  Another goal removes them.  This is pretty easy to do and frees you from
  having to worry about modifying the axis2 war file.
 
  --Alex


Re: axis2 impressions

2005-12-15 Thread iksrazal
Em Quinta 15 Dezembro 2005 15:14, o Nathaniel Auvil escreveu:
 Can you email me with how you got axis2 to work from wsdl?  I have two open
 Jira items on this as it blows up on my wsdl.  The first problem is due to
 schema imports.  So i eliminated the schema imports and now i get a schema
 exception from XMLBeans.  This schema works fine with Axis 1.2.1 and is
 valid XML according to XMLSpy.

 quote

  Its open-source, feel free to document it. I personally needed a
  WSDL2Java ant
  task with axis2, and once I figured it out how to do it I was invited to
  document it, which I did. I personally found the OMElement approach easy
  enough to undersatand to get started without wsdl.
  /quote

We're going to need a little more info then it 'blows up'  to help ;-) . 

First, its got to be more than just valid xml, its got to be a valid wsdl. 
Google for the 'free as in beer' soa editor from cape clear. 

The XMLBean issue I think you have is documented here: 

http://ws.apache.org/axis2/CodegenToolReference.html

There's also a sample wsdl and code. The sample is a little rough - I've been 
making a transition from 'rpc encoded' to doc / lit . Nevertheless, it is a 
fully working sample. 

HTH,
iksrazal


Re: axis2 impressions

2005-12-15 Thread Chathura Herath
Dear Todd,

Thank you for the feedback we do appreciate it so pls keep it comming.
I have included some comments regarding some things with significance
that you have pointed out
1)
The reason for having the OMElement instead of the POJO is axis2
engine is based on the StaX API. At least for me OM looks nicer than
meddling with the StAX events. So OMElement has very good advantages
(very much beyond simple easyness) than you might comprehend. Problem
with POJO is that it cannot be serialisable directly to the stax and
we don't have a such typemapping mechanism now. There are ways to fix
this if you can write a Serialiser that push stax events.
1.1)
Bad documentation!!! Well it isn't the best but it gives an
understanding for many. Help with documentation is always warmly
welcomed.

2) Well Java2WSDL tool is on the way. Understand this we haven't reach
the Version 1.0 mark yet. So we are not calling this a finish product
and there are things to finish.

3)I personally would like to get the annotations but there are other
prorities in the SOAP processing model that we need to fill up.

The expectations of the different users of Axis2 is different, but we
try to prioratise the most general user requirement.

Thanks
Chathura

P.S. Btw, I am (as a an Axis2 developper) not interested in promisses
that you are going to keep in a hypothedical opensource  product that
you are gonna release.


On 12/15/05, Todd Orr [EMAIL PROTECTED] wrote:

  Its open-source, feel free to document it.

 I've been having trouble even being able to come up with an implementation
 to prove that it can be done. I cannot sell my boss on RD to hack through
 the internals to figure out exactly what is happening. I've only been
 allocated time to compare and contrast alternative implementations. All
 frameworks should understand that their end users (me) are not always in the
 position to do the research and documentation for them. If I had that kind
 of time, I'd start my own open source projects. I've got lots of things I
 want to do for the community too. I just have a demanding job. I know that
 the Axis team also have jobs too. The difference is that I am not open
 sourcing a project for general consumption. It's a much appreciated effort -
 don't get me wrong.

  Its open-source, feel free to document it. I personally needed a WSDL2Java
 ant
  task with axis2, and once I figured it out how to do it I was invited to
  document it, which I did. I personally found the OMElement approach easy
  enough to undersatand to get started without wsdl.
 
  Digging deeper you'll find the Call interface still there.

 The call interface is not really what I'm talking about. I prefer writing a
 POJO that has no knowledge that it is a Web service endpoint. I have done
 this with Axis1.

  WSDD is IMHO far inferior to the services.xml / aar / hot deployment
 approach,
  and one of the reasons I moved to axis2.

 Agreed.

  ...I actually spent my first 2 years doing web services without wsdl. When
 it
  became a requirement I cringed. After a few weeks I started to like it.
 

 I have nothing against WSDL. I work with them now in Axis1. The problem is
 not one of expertise or developer knowledge. It is an issue of necessity and
 developer ramp up. There is very little (any?) information in a WSDL that
 couldn't be maintained in a more straight forward metadata language
 (annotations, service.xml?). The best Web service implementation should
 alleviate this headache. It's not a matter of how hard or easy it is. It
 just shouldn't be there if the framework went the extra mile for the
 developer.

  Then use XFire and be happy. I haven't got to JRS-181  - all in due time.

 Understandable.

 
 http://marc.theaimsgroup.com/?l=axis-devm=112866697704950w=2

 I've already attempted to use this. Besides the fact that it doesn't address
 my issue with homegrown implementations, it doesn't work. I've deployed it
 to my axis2 installation via the Web interface and in is faulty.

  I would say novel and clever instead of weird.

 I might say divergent from known standards and applications. I never used
 AdminClient anyhow. I dropped the axis jars into my webapp, configured my
 web.xml and was off and running. All the while my company's build scripts
 worked flawlessly. That's expected, standards based behavior.

  You could start by documenting alternatives to
  OMElement - my guess is that if its good it'll get accepted. Just file a
 jira
  when you're ready.

 Honestly, I want to help out. In an ideal world I wouldn't have to go to
 work all day and participate in my family at night. It's just not feasible.
 If my company ever releases a software product for general consumption, I
 will work to ensure that the complaints I have risen here do not happen in
 regards to my product. That's a promise I can keep.


 On 12/15/05, iksrazal [EMAIL PROTECTED] wrote:
  As someone who has worked alot with axis 1.x and axis2, allow me to put my
 2
  cents in...
 
 
  Em 

axis2 impressions

2005-12-14 Thread Todd Orr
The more I learn about Axis2, the less appealing it is. It seems to be
giant leap backwards. Why is coding using OMElement (and the other
OM... objects) a better approach than deploying a POJO? This is a huge
pain. Not to mention the deployment issues that I've already run into.
Based on the documentation I feel as though Axis2 is a step forward
architecturally, but extremely weak in user friendliness. For this
reason I've been finding myself more interested in XFire. It has many
features of Axis2, yet is extremely easy to create Web services with.
Why would the Axis2 team go in this anti-productivity direction?