Hi Ant,

Yes, this sounds good to me - that will make all meta-data related to an
extension available in just one place.

- Venkat

On Sun, May 11, 2008 at 3:37 PM, ant elder <[EMAIL PROTECTED]> wrote:

> On Thu, May 8, 2008 at 4:33 PM, Simon Laws <[EMAIL PROTECTED]>
> wrote:
>
> > On Thu, May 8, 2008 at 4:02 PM, ant elder <[EMAIL PROTECTED]> wrote:
> >
> > > On Thu, May 8, 2008 at 1:19 PM, Venkata Krishnan <
> [EMAIL PROTECTED]>
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > Please find my comments inline.
> > > >
> > > > On Thu, May 8, 2008 at 3:13 PM, Simon Laws <
> [EMAIL PROTECTED]>
> > > > wrote:
> > > >
> > > > > In the SCA Policy framework spec there is a section that talks
> about
> > > > > bindingType as it appears in the definitions.xml file(s). It
> says...
> > > > >
> > > > > 702 The bindingType element is used to declare a class of binding
> > > > available
> > > > > in a SCA Domain. It declares
> > > > > 703 the QName of the binding type, and the set of intents that are
> > > > natively
> > > > > provided using the optional
> > > > > 704 @alwaysProvides attribute.
> > > > >
> > > > > I hadn't noticed this before but the implication of these words
> > appears
> > > > to
> > > > > be that a particular binding is not available for use in a domain
> > > unless
> > > > > there is a
> > > > >
> > > > > 709 <bindingType type="NCName"
> > > > > 710 alwaysProvides="listOfQNames"?
> > > > > 711 mayProvide="listOfQNames"?/>
> > > > >
> > > > > element in the aggregate definitions.xml file.
> > > > >
> > > > > I guess this also applies to implementationType (which is defined
> in
> > > the
> > > > > assembly spec) and interfaceType and databindingType (which aren't
> > > defned
> > > > > in
> > > > > the assembly spec so I just made them up here)
> > > > >
> > > >
> > > > I am not sure if that's the implication.  These defintions are a bit
> of
> > > > meta-data about the binding-types and implementation-types in the
> > domain
> > > > and
> > > > at the present moment this is restricted to the policy area i.e. the
> > meta
> > > > data today only talks about the intents supported in some way by an
> > > > extension.  I suppose in the future there could be a few other things
> > > that
> > > > could get added as well.
> > > >
> > > > Upto now there no information there that is absolutely necessary to
> get
> > > an
> > > > extension's basic functionality going.  So if its not present nothing
> > > > actually comes in the way with the basic functioning of the
> extension.
> > > > However if you were to specify a policy intent which is inherently
> > > > supported
> > > > by the extension  but the type info is missing, then the PolicyFwk
> will
> > > > complain saying it does not have a PolicySet for this intent.  The
> > simple
> > > > reason being the it does not know that the extension inherently
> > supports
> > > > this intent.
> > > >
> > > >
> > > > >
> > > > > Currently Tuscany uses the Java services approach to detect and
> load
> > > > > extensions. If an extension is loaded it is available for use. We
> > don't
> > > > > check that bindingType, implementationType, etc is declared before
> > > making
> > > > > an
> > > > > extension available.
> > > > >
> > > > > As it happens some for our extensions include a defintions.xml
> file,
> > > for
> > > > > example,
> > > > >
> > > > >
> > > >
> > >
> >
> http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/definitions.xml
> > > > > .
> > > > > And in this particular example a bindingType is defined. However
> this
> > > is
> > > > > not
> > > > > true of all of our extensions.
> > > > >
> > > > > Should we enforce the presence of a definitions.xml file in our
> > > > extensions
> > > > > and enforce that it contains an appropriate ?Type elemenent? On the
> > > face
> > > > of
> > > > > it there seems little benefit to doing this given our Tuscany
> > specific
> > > > > scheme for loading extensions. However it would tip our hat to the
> > > spec,
> > > > > assuming we agree this is what the spec means, and give us a place
> to
> > > put
> > > > > other extension configuration information it the need were to
> arise.
> > > > >
> > > > > Thoughts?
> > > > >
> > > >
> > > > At the present moment I think its all very fine to load the extension
> > > even
> > > > if the type info is not present.  For instance if an extension has no
> > > > intent
> > > > that it supports inherently then there is no much need for the type
> > info.
> > > > However, if the scope of type info expands further to include more
> > > > fundamental things that influence the basic functioning of the
> > extension
> > > > then we should probably enforce this for the simple reason that we
> > cannot
> > > > bring the extn up without its information.
> > > >
> > >
> > > I think I agree with Venkat, there doesn't seem a whole lot of point
> > making
> > > a change that does nothing except stop our extensions working till they
> > > contain a definitions.xml. But how about changing the discovery
> mechanism
> > > to
> > > use the definitions.xml file instead of the meta-inf/services approach,
> > at
> > > least then there would be some value to it and it makes our extension
> > > discovery look a little more spec conforming.
> > >
> > >   ...ant
> > >
> >
> > Well we could. We still need to discover the definition.xml files in some
> > way, for example by putting them in a common place such as META-INF where
> > the services info is currently stored. Then we need to load the various
> > extension implementations for each extension. Could we use the services
> > mechanism to do this for a single extension jar? If so it just seems to
> be
> > a
> > matter of priority. I.e load the defintions.xml first in a Tuscany
> specific
> > way. If there is a suitable bindingType etc. then load the various
> > extension
> > implementation artifacts again in a Tuscany specific way to make the
> > extension available. I'm assuming here that the definitions.xml file for
> an
> > extension is packaged with the extension jar.
> >
> > Simon
> >
>
> What i was thinking of was along the lines of adding Tuscany specific xml
> to
> the definitions file that replaces everything we currently put in the
> meta-inf/services files for binding and implementation extensions, eg
> something like:
>
> <definitions xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"; ... >
>
>   <bindingType type="binding.ws" ... >
>
>      <tuscany:binding
>
> providerFactory="org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingProviderFactory"
>
> model="org.apache.tuscany.sca.binding.ws.WebServiceBinding" />
>
>   </bindingType>
>
> </definitions>
>
>   ...ant
>

Reply via email to