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