My opinion:
The Axis2 kernel should not be dependent on where the app will be
deployed (i.e. servlet, OSGI, etc).  The primary purpose of Axis2 is its
SOAP stack functionality.  Even the additional data binding
functionality (i.e. ADB, XmlBeans, etc) is secondary.
 
My guess is that the majority of users aren't using Axis2 in an OSGI
container.  So having OSGI logic in Axis2 kernel unnecessarily adds
dependencies that most users will not need.  OSGI is already complex
enough and has its own limitations, and we probably don't want to change
Axis2 to adapt too much to OSGI, especially if OSGI itself may change
later.
 
But, to make it easier for OSGI users, it might be best to design the
Axis2 kernel to be flexible enough so that developers can
configure/customize it at runtime and run in their container of choice.
This would allow developers to do things like "inject" a custom
adapter/handler class via a Spring-like mechanism to override the
default Axis2 adapter/handler for a given process.  The design might be
similar to how Eclipse enables "extension points", although I might not
go as far as making it that complicated.
 
My two cents...
-Vinh

________________________________

From: Saminda Abeyruwan [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 13, 2008 8:30 AM
To: axis-dev@ws.apache.org
Subject: Re: Extensions to Axis2/Java deployment engine


=================================================

1. When aar/mar behavior is mimicked in an OSGi bundle, these bundles be
able to live in different class spaces. 
   ex: If the bundles needed different hibernate versions they can be
easily plug into different class spaces. 

2. We will be able to have multiple version of Axis2 instancres running
inside same JVM. 
   This require the need of minimizing System properties. 

3. Axis2 will be able to initiate same transport with different
versions. 
   This will require proper integration of OSGi services. I haven't
touched this area yet, otherwise whole situation will be overwhelming.

4.  OSGi life-cycle support. This will give the ability to
start/stop/install/update/uninstall bundles.
    ex: I have myModule.jar which would mimic myModule.mar. We will be
able use the above actions to to manipulate the AxisModule as we need. 

5.  Once a user has written a bundle (which mimic
aar/mar/transport/etc), they just need to upload them into a "Axis2
bundle repository", where the community can search them and install them
into there system, without shutting down the running system.

6. OSGi event framework. When bundle is (aar/mar/transport/etc)
install/started/updated/uninstall, using OSGi events other bundles can
change there behaviour.

7. When bundle are properly designed, one will be able to deploy these
bundles in any OSGi environment. Most of the app servers are in the path
of supporting OSGi. All we have to do is to drop our bundles in their
repositories and start them

8. User can use resources (html/jsp/ etc) needed for aar/mar in bundles.
Using HttpService (impl may be native or provided) we will be able to
expose them. Equinox has provided some cool bundles,  which can be used
all OSGi impls such as "servlet-bridge". 

8. Once the ConfigurationContext become an OSGi service, any bundle can
access it and  use it.

9. People will be able to use OSGi registry to register POJOs as OSGi
services and make them as web services
(http://www.knopflerfish.org/releases/current/doc/bundledoc/index.html)

10. People would need  minimum effort to integrate into OSGi powered
Spring etc. 
=================================================

In Synapse point of view. 

1. Mediators can be written as OSGi bundles. When you start the bundle,
the proper factory is called and build the relevant object model. 

2. Different version of same mediator is highly possible. i.e two
mediator can live in two different class spaces.

3. You will be able to remove Sun service providers facility of loading
extension to bundles, which will be support in all Java implementations.


4. Synapse guys like embedded devices ?

Thank you!

Saminda  
    


On Fri, Jun 13, 2008 at 6:11 PM, Asankha C. Perera <[EMAIL PROTECTED]>
wrote:


        Saminda 


                Main  aspect of  OSGi  is version and modularity
                

        Can you list the top 5 advantages for Axis2 end users (who
develop services, or develop clients that consume services), and the top
5 advantages for those who embed Axis2 (such as Apache Synapse etc). I
think this would be very valuable information for me to consider your
suggestion, and assess the impact on Apache Synapse 


                I am really appreciate if Axis2 folks comment on prior.
                

        Looking forward to your reply to comment further
        
        asankha 


        
---------------------------------------------------------------------
        To unsubscribe, e-mail: [EMAIL PROTECTED]
        For additional commands, e-mail: [EMAIL PROTECTED]
        
        




-- 
Saminda Abeyruwan

Senior Software Engineer
WSO2 Inc. - www.wso2.org 

Reply via email to