Hi,

I developed a provider to plugin VisiBroker CORBA servers to AXIS. The
development experience was very smooth and the provider was working in
no time.

However when I decided to plug this provider seamlessly, I was not able
to do so unless I hard coded my provider name along with other
providers. I had 2 choices:

1. Use a provider="handler" in my service and then define my actual
handler class through parameter "handlerClass" along with other
parameters needed by my provider. This works but makes my provider looks
second class. It is also ugly because I am mixing the parameters to
"handler" provider with the parameters of my real provider. A user would
have to do something like:

 <service name="Animal" provider="handler">
 <parameter name="handlerClass"
value="com.borland.axis.providers.java.VisiBrokerProvider"/>
 <parameter name="className"
value="com.borland.examples.webservices.visibroker.AnimalModule.Animal"/>

 <parameter name="allowedMethods" value="talk sleep"/>
 <parameter name="objectName" value="BigAnimal"/>
 <parameter name="cacheObject" value="false"/>
  </service>

2. Hard code my provider in wsdd/WSDDProvider.java. Essentially populate
providers Hashtable in this class with my VisiBrokerProvider. This
allows the user to treat my provider like any other provider and they
will be able to say something like

 <service name="Animal" provider="VisiBrokerProvider">
 </service>

Option 2 is good from a user point of view but I can not provide the
VisiBroker provider in a separate jar that can be compiled
independently.

What I really want is better pluggability of a provider. A user should
be able to plugin provider just like handlers. Something like

<provider name="VisiBrokerProvider" type="java:class-name" />
<service name="Animal" provider="VisiBrokerProvider">
... params
</service>

I think as AXIS becomes popular more vendors would like to plugin
providers for their "stuff" and not having a first class provider
pluggability would hurt AXIS. What do other people think? I can provide
the code to make this happen if necessary. Please let me know.

Reply via email to