Simon Laws wrote:


On Tue, Dec 9, 2008 at 10:36 AM, ant elder <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:



    On Tue, Dec 9, 2008 at 10:26 AM, Simon Laws
    <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:



        On Mon, Dec 8, 2008 at 9:11 PM, Simon Nash <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>> wrote:

            Raymond Feng wrote:

                I meant Extension. Some projects such as Axis2 and
                Woodstox use this suffix for extended API/SPI.
                 Thanks,
                Raymond

                *From:* Simon Laws <mailto:[EMAIL PROTECTED]
                <mailto:[EMAIL PROTECTED]>>
                *Sent:* Monday, December 08, 2008 8:44 AM
                *To:* [email protected]
                <mailto:[email protected]>
                <mailto:[email protected]
                <mailto:[email protected]>>

                *Subject:* Re: [1.4] ComponentContext changes



                On Mon, Dec 8, 2008 at 4:38 PM, Raymond Feng
                <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
                <mailto:[EMAIL PROTECTED]
                <mailto:[EMAIL PROTECTED]>>> wrote:

                   Hi,
                       I'm looking into this area in the 2.x stream.
                What I have done is to
                   define a ComponentContextExt interface which extends
                from the
                   ComponentContext interface and provides Tuscany
                specific SPIs. I
                   also plan to consolidate RuntimeComponentContext and
                   ComponentContextExt into one interface.
                       In 1.4, the case is slightly different because we
                are trying to
                   "enhance" the API. What module do you plan to add
                such an API? I
                   think "ComponentContextExt" is still a good name for
                the extended API.
                       Thanks,
                   Raymond

                   *From:* Simon Laws <mailto:[EMAIL PROTECTED]
                <mailto:[EMAIL PROTECTED]>>
                   *Sent:* Monday, December 08, 2008 8:26 AM
                   *To:* tuscany-dev <mailto:[email protected]
                <mailto:[email protected]>>
                   *Subject:* [1.4] ComponentContext changes


                   A while back I checked the patch for TUSCANY-2281 in
                and part of
                   this change was the extension of the ComponentContext
                API. This
                   would seem to be incompatible with the spec license
                so I would like
                   to propose a further change;

                   1/ Create a TuscanyComponentContext interface which
                extends
                   ComponentContext and holds the new APIs for
                retrieving reference
                   collections.
                   2/ Have the RuntimeComponentContext extend the
                   TuscanyCompoentContext interface
                   3/ When you need to use the new APIs you have to cast
                to the
                   TuscanyComponentContext

                   Collection<Crawler> crawlers =
((TuscanyComponentContext)componentContext).getServices(Crawler.class,
                   "crawlers");

                   As an optimization we could look at having the
                injectors inject
                   TuscanyComponentContext if this is specified to
                remove the need to
                   do the cast.

                   Thoughts?

                   Regards

                   Simon


                By Ext do you mean Extension/External?
                ComponentContextExtentsion sounds ok to me. I think it
                could happily live in the sca api package as long as it
                is clear that it isn't part of the specified api. Maybe
                the addition of the word Tuscany makes that clearer? I
                should point out that the particular problem that 2281
                fixes has been corrected in the OASIS specs so this
                change won't be needed in the OASIS SCA APIs that are
                added to trunk.

            Whatever name we choose, I don't think this interface should
            be part of
            the sca-api module or the org.osoa.sca package.  We should
            add another
            module and package for Tuscany API extensions.

             Simon

                Simon




        Hi Simon

        I agree it shouldn't be part of the org.osoa.sca package. But do
        we need to add a new module just to hold these extensions?

        Simon


    Not so long ago there was some reluctance to put even the spec
    defined JSP taglib into the sca-api module so while thats the
    approach then i don't think Tuscany classes should go in the sca-api
    module either. I do think it would be easier for users to have a
    single jar they can use which has all the API classes that they
    might be needed to compile an SCA application, that was the
    intention for the api module which aggregated all the API classes in
    to one easy to use jar.

       ...ant




Looking back over the mail list I see I would be swimming against the tide on this. In 1.x/1.4 I'll create a new module called sca-api-extension and put the tuscany specific API in there.

I would hope that OASIS actually ship the api jar themselves and we wouldn't want to insert new content in there so I could be persuaded that this is a consistent story going forward in 2.x.

Simon
>
I'll raise the API jar question with OASIS.  So far the sca-j TC has not
produced an API jar as a formal deliverable.  I think it would be a very
good idea for OASIS to do that.

  Simon


Reply via email to