Thanks for the help.  The example you provide is very close to what I want.
This will get me started.

On Fri, Jan 16, 2009 at 8:23 AM, ant elder <[email protected]> wrote:

>
>
> On Fri, Jan 16, 2009 at 2:09 PM, Simon Laws <[email protected]>wrote:
>
>>
>>
>> On Thu, Jan 15, 2009 at 4:42 PM, Jared Ladner <[email protected]>wrote:
>>
>>> Hi,
>>>
>>> I have been reviewing Tuscany SCA for a couple of days and I am trying to
>>> determine if it will suit my requirements for dynamically locating services
>>> (dynamically meaning using a config file and no code changes).
>>>
>>> I have an application that needs to locate new service implementations of
>>> a non remote Java Interface.  The Implementation is simply a JAR that is
>>> dropped into the classpath.  I would like to only add the new service/JAR as
>>> a config entry into the Tuscany '*.composite' file without making any code
>>> changes.  A server restart is acceptable.  Is this possible?
>>>
>>> Sequence
>>> 1. Input to 'core' application is Web Service (does not need to be
>>> associated with Tuscany SCA)
>>> 2. Core app will find available services loadded from the Tuscany SCA
>>> 3. Make API calls (from non remote Interface) to all available services.
>>>
>>> The Services are simple Java Interfaces.  Currently they are NOT web
>>> services or even remote, but will only be JAR file added to the classpath.
>>>
>>> The examples that I have seen define the services as a reference in the
>>> '*.composite' file.  This is fine but the implemenation code that uses the
>>> reference is hard coded to have a matching reference member variable.  I
>>> need this to be dynamic.
>>>
>>> Please help!
>>>
>>> Thanks,
>>> Jared
>>> SCJD,SCWCD,SCBCD
>>>
>>>
>> Hi Jared, Welcome.
>>
>> It would be possible to add a new service to a SCA composite in the way
>> that you describe, i.e. add jar to classpath, update composite file, restart
>> node. However you would need to wire something to the service to make use of
>> it.
>>
>> I've had a similar question before (or at least I think it's similar to
>> your case). Someone wanted to implement a scheduler component which could
>> talk to a dynamic number of worker nodes. I made a quick example to give an
>> idea of how this dynamic behaviour can work [1]. Take a look and see if this
>> matches your defintion of dynamic. If the code doesn't make sense I can talk
>> you through it.
>>
>> The schedler code might not be completely right for you but if we can
>> agree what the question is we might be able to come up with an approach.
>>
>> Hope that helps
>>
>> Simon
>>
>> [1]  http://svn.apache.org/repos/asf/tuscany/sandbox/slaws/scheduler/
>>
>
> Hi Jared, agree with what Simon said (who bet me to it while I was in the
> middle of replying), but i'll continue with an alternative - you could also
> use a dynamic language like JavaScript or Groovy which enables what I think
> you're asking for without needing any hardcoding in the core implementation.
> I think from what you said you don't want to hard code the reference names
> in you core application but have it pick up whatever references are defined
> in the .composite? So this way your core application would use Tuscany to
> call into a JavaScript component which can dynamically query what references
> are wired to it and invoke the services as necessary. I can give you a few
> pointers if thats what you are trying to do.
>
>    ...ant
>
>

Reply via email to