You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Brady Johnson (JIRA)" <tu...@ws.apache.org> on 2007/07/10 01:13:04 UTC

[jira] Commented: (TUSCANY-1418) [TuscanySCA CPP] problems trying to load services from multiple directories at once

    [ https://issues.apache.org/jira/browse/TUSCANY-1418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12511285 ] 

Brady Johnson commented on TUSCANY-1418:
----------------------------------------


Just to clarify one piece of information about this problem:

serviceA and serviceB are totally unrelated. The system composites are located as follows:

~/tuscany/services/
                      |
                      +----->serviceA/serviceA.composite
                      |
                      +----->serviceB/serviceB.composite


> [TuscanySCA CPP] problems trying to load services from multiple directories at once
> -----------------------------------------------------------------------------------
>
>                 Key: TUSCANY-1418
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1418
>             Project: Tuscany
>          Issue Type: Bug
>          Components: C++ SCA
>    Affects Versions: Cpp-M3
>         Environment: All platforms
>            Reporter: Brady Johnson
>             Fix For: Cpp-Next
>
>
> Im trying to start the Tuscany SCA runtime so that it loads several service directories at once. Im assuming that this 
> should be achieved by using the systemPath argument of the SCARuntime::initializeSharedRuntime() method. Im also 
> assuming that the systemPath should be a ":" (colon) or ";" (semi-colon) seperated list of directories, each of which is a
> separate SCA service directory.
> If my assumptions are correct, then what purpose does the systemRoot paramater serve when systemPath is specified?
> In the call to ModelLoader::load(), if systemPath is specified, then the following call is made:
>     ModelLoader::loadComposites(systemRoot + PATH_SEPARATOR + systemPath);
> So lets assume that systemRoot is "~/tuscany/services" and systemPath is "~/tuscany/services/serviceA:~/tuscany/services/serviceB"
> Then ModelLoader::loadComposites() will be called with this string:
>     "~/tuscany/services:~/tuscany/services/serviceA:~/tuscany/services/serviceB"
> Since the Files() constructor in loadComposites has the subdirectories parameter set to true, the directories will be traversed as follows:
> 1. everything under "~/tuscany/services" (including serviceA and serviceB)
> 2. everything under "~/tuscany/services/serviceA"
> 3. everything under "~/tuscany/services/serviceB"
> This is problematic since the services get loaded/parsed multiple times.
> When systemPath is set, changing the call do loadComposites() to this:
>     ModelLoader::loadComposites(systemPath);
> Avoids the multiple loading of the services.  There is still some sort of error when loading multiple services when loadComposites() is 
> called this way. It appears that the systemComposite is being overwritten somehow and ends up empty.
> Before digging into the second problem further, I would like to make sure that my previous assumptions are accurate. It may be that Im 
> not invoking the runtime correctly.
> --------------------
> Brady Johnson
> Lead Software Developer - HydraSCA
> Rogue Wave Software - brady.johnson@roguewave.com

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org