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:06:04 UTC

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

[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


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

Posted by "Brady Johnson (JIRA)" <tu...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/TUSCANY-1418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brady Johnson closed TUSCANY-1418.
----------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: Cpp-Next)
                   Cpp-M3

Loading multiple services (systems) with one Tuscany SCARuntime can be acheived by instantiating
the SCARuntime with systemRoot set like this: "apps/services/serviceA:apps/services/serviceB" and
leaving sytemPath blank.

No Tuscany code changes were necessary.

--------------------
Brady Johnson
Lead Software Developer - HydraSCA
Rogue Wave Software - brady.johnson@roguewave.com


> [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-M3
>
>
> 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


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

Posted by "Brady Johnson (JIRA)" <tu...@ws.apache.org>.
    [ 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