Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-22 Thread Jean-Sebastien Delfino

Pete Robbins wrote:

I may get some time tomorrow to look at it. Feel free to make the changes
and I can pick it up from there.

Cheers,


On 12/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Pete Robbins wrote:
 I do not like the central composite file.

 As I mentioned earlier I'd really like our loader to be able to 
load all

 composites under a dir structure and just figure out all the
 relationships. I do not like enforcing a user to put some files under
 packages and some under configuration. This may be very good practice
and
 something I would do but I do not think we should enforce it. For now
 we may
 have to enforce it, i.e. the loader will first load the composites in
the
 configuration folder then load from the packages folder but 
ultimately I

 would like our loader to be able to load these in any order and just
 work!

 I'd also like to add the ability to dynamically add a composite to the
 runtime programatically at some point!

 So for now let's organise our samples into
 .../deploy
  /configuration
   (system composites)
  /packages
   (implementation composites)
   (other artifacts , .h, libraries etc.)

 and the loader can load from deploy/configuration/ first then
 deploy/packages/. Later we can change this to just load from 
deploy/ and

 make it all work by magic ;-)

 In both cases we will have the TUSCANY_SCACPP_SYSTEM_ROOT set as the
 path to
 the deploy/ folder.

 Cheers,


Cool, let's go with that approach then. Is anybody volunteering to make
these changes to ModelLoader? or do you guys want me to to do it?

--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





I just committed under revision r433553 a set of changes to support the 
new structure:

system root/packages contains the implementations installed on your system
system root/configuration contains the configuration of your system

While I was doing this refactoring I noticed that the runtime test suite 
and the myvalue sample still use old SCA 0.9 SCDL files, this needs to 
be fixed at some point.


--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-12 Thread Pete Robbins

I do not like the central composite file.

As I mentioned earlier I'd really like our loader to be able to load all
composites under a dir structure and just figure out all the
relationships. I do not like enforcing a user to put some files under
packages and some under configuration. This may be very good practice and
something I would do but I do not think we should enforce it. For now we may
have to enforce it, i.e. the loader will first load the composites in the
configuration folder then load from the packages folder but ultimately I
would like our loader to be able to load these in any order and just work!

I'd also like to add the ability to dynamically add a composite to the
runtime programatically at some point!

So for now let's organise our samples into
.../deploy
 /configuration
  (system composites)
 /packages
  (implementation composites)
  (other artifacts , .h, libraries etc.)

and the loader can load from deploy/configuration/ first then
deploy/packages/. Later we can change this to just load from deploy/ and
make it all work by magic ;-)

In both cases we will have the TUSCANY_SCACPP_SYSTEM_ROOT set as the path to
the deploy/ folder.

Cheers,

On 12/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Andrew Borley wrote:
[snip]
 I think we use our samples to demonstrate different ways of working -
 have
 the Calculator be deployed in a single directory and have the BigBank
 show
 the use of multiple directories.
 So perhaps have configuration, packages/account and packages/client
 directories under the root directory? What do you think?

 Andy


Andy, where would you place the two composites files describing the
calculator implementation and component?

Just to recap, here's what we had in M1:
subsystems/
   CalculatorSubsystem/
   CalculatorSubsystem.composite
   BigBankSubsystem/
  BigBankSubsystem.composite
modules/
   CalculatorModule/
  CalculatorModule.module
   Accounts/
  Accounts.composite

I am proposing something like this:
configuration/
   sample.calculator.composite
   bigbank.composite
packages/
   calculator/
  calculator.composite
   bigbank.account/
  bigbank.account.composite
   bigbank.client/
  bigbank.client.composite

The configuration directory contains the composites included in your
system, the packages directory contains implementations (composites or
other things).

And here's another option:
system.composite file ... containing
include name=sample.calculator.composite/
include name=bigbank.composite/

and a more free form distribution for the other artifacts:
sample.calculator.composite
bigbank.composite
calculator/
   calculator.composite
bigbank.account/
   bigbank.account.composite
bigbank.client/
   bigbank.client.composite


This would provide less guidance to our users but maybe more
flexibility. They would have to edit this central system.composite file
instead of just placing files in a well known folder.

I'm OK with both the folder structure option or the cenral composite
file option. I suggest we start experimenting with a simple scheme that
you guys are comfortable and evolve it over time as we implement more
scenarios. What do you think?

--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Pete


Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-12 Thread Jean-Sebastien Delfino

Pete Robbins wrote:

I do not like the central composite file.

As I mentioned earlier I'd really like our loader to be able to load all
composites under a dir structure and just figure out all the
relationships. I do not like enforcing a user to put some files under
packages and some under configuration. This may be very good practice and
something I would do but I do not think we should enforce it. For now 
we may

have to enforce it, i.e. the loader will first load the composites in the
configuration folder then load from the packages folder but ultimately I
would like our loader to be able to load these in any order and just 
work!


I'd also like to add the ability to dynamically add a composite to the
runtime programatically at some point!

So for now let's organise our samples into
.../deploy
 /configuration
  (system composites)
 /packages
  (implementation composites)
  (other artifacts , .h, libraries etc.)

and the loader can load from deploy/configuration/ first then
deploy/packages/. Later we can change this to just load from deploy/ and
make it all work by magic ;-)

In both cases we will have the TUSCANY_SCACPP_SYSTEM_ROOT set as the 
path to

the deploy/ folder.

Cheers,



Cool, let's go with that approach then. Is anybody volunteering to make 
these changes to ModelLoader? or do you guys want me to to do it?


--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-12 Thread Pete Robbins

I may get some time tomorrow to look at it. Feel free to make the changes
and I can pick it up from there.

Cheers,


On 12/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Pete Robbins wrote:
 I do not like the central composite file.

 As I mentioned earlier I'd really like our loader to be able to load all
 composites under a dir structure and just figure out all the
 relationships. I do not like enforcing a user to put some files under
 packages and some under configuration. This may be very good practice
and
 something I would do but I do not think we should enforce it. For now
 we may
 have to enforce it, i.e. the loader will first load the composites in
the
 configuration folder then load from the packages folder but ultimately I
 would like our loader to be able to load these in any order and just
 work!

 I'd also like to add the ability to dynamically add a composite to the
 runtime programatically at some point!

 So for now let's organise our samples into
 .../deploy
  /configuration
   (system composites)
  /packages
   (implementation composites)
   (other artifacts , .h, libraries etc.)

 and the loader can load from deploy/configuration/ first then
 deploy/packages/. Later we can change this to just load from deploy/ and
 make it all work by magic ;-)

 In both cases we will have the TUSCANY_SCACPP_SYSTEM_ROOT set as the
 path to
 the deploy/ folder.

 Cheers,


Cool, let's go with that approach then. Is anybody volunteering to make
these changes to ModelLoader? or do you guys want me to to do it?

--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Pete


Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-11 Thread Pete Robbins

A lot of things referenced from a .composite are a path relative to the
.composite file (the compsite root). This is defined in the spec. For
example,
component name=MyValueServiceComponent
 implementation.cpp library=MyValuelibrary path=MyValue
header=MyValue/MyValueImpl.h/implementation.cpp

so if the composite file is in .../deploy/configuration/myValue.composite
the library will be located at
.../deploy/configuration/MyValue/libMyValuelibrary.so. Similarly the
implementation header will be located at
.../deploy/configuration/MyValue/MyValueImpl.h

...so I don't think you can have an arbitrary separation of configuration
and packages.

I think we can use a very simple deployment which is that the runtime will
find all the composites under the system root so it could look like:
.../deploy
 fred.composite ( composite name=abc/ )
some_other_artifacts
/ANOtherCompo
   joe.composite ( composite name=xyz/ )
  /joes_libraries
  joe.dll

So the name of the folder and composite file is irrelevent as the actual
composite name comes from the scdl name=. This, of course, is a little
harder for the runtime to load but a lot simpler for the user IMO.

So for a MyValue sample I'd develop my composites in a structure that
matches the deploy layout. This is necessary for the scagen step that
requires the scdl and the interface headers to generate the proxies and
wrappers. This strcture may or may not have multiple directories at the
choice of the developer, he may want each component in a separate dir for
instance. Deployment is simply copying the scdl, libraries and headers to
wherever they are to be deployed. (Although the headers are not currently
used at runtime it is possible that they may be in the future).

So I may end up with:

.../MyValue
 myValue.composite
 myVal.componentType
 /CustomerInfo
custinfo.componentType
custinfo.h etc..

Cheers,


On 11/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


When I started to implement the new composite assembly model I felt a
need to adjust a little the folder structure under the Tuscany system
root, did half of it, which triggered some questions :) This is a new
thread to discuss these changes.

Here's what we had in M1:

$TUSCANY_SCAPP_SYSTEM_ROOT/ -- your Tuscany-system-root
   subsystems/
   CalculatorSubsystem/
   sca.subsystem -- creates and configures the Calculator
module component
   modules/
   Calculator -- the Calculator module and code
   sca.module
   other artifacts, *.so, *.wsdl, *.xsd etc.

Now that the spec has removed subsystem, module and fragment, and
generalized the use of composites, here's what I'd like to propose:

deploy/ -- your Tuscany-system-root
   configuration/
   CalculatorApp.composite -- creates the Calculator component, we
don't need sub-folders here since we can give meaningful name to
composite files now
   packages/
   Calculator -- the Calculator composite and code
   Calculator.composite
   other artifacts, *.so, *.wsdl, *.xsd etc.

- Configuration contains the composites included in your system creating
and configuring your top level components.
- Packages contains all your other development artifacts (not
necessarily just composites that's why I'm proposing packages/ instead
of modules/ or composites/).
- I think that the samples should use consistent naming convenvions, but
you should also be able to pick the names you want for your folders and
artifacts and have Foo/Bar.composite containing composite name=Abc/
for example.

Any thoughts?

--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Pete


Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-11 Thread Jean-Sebastien Delfino

Pete Robbins wrote:

A lot of things referenced from a .composite are a path relative to the
.composite file (the compsite root). This is defined in the spec. For
example,
component name=MyValueServiceComponent
 implementation.cpp library=MyValuelibrary path=MyValue
header=MyValue/MyValueImpl.h/implementation.cpp

so if the composite file is in .../deploy/configuration/myValue.composite
the library will be located at
.../deploy/configuration/MyValue/libMyValuelibrary.so. Similarly the
implementation header will be located at
.../deploy/configuration/MyValue/MyValueImpl.h

...so I don't think you can have an arbitrary separation of configuration
and packages.

I think we can use a very simple deployment which is that the runtime 
will

find all the composites under the system root so it could look like:
.../deploy
 fred.composite ( composite name=abc/ )
some_other_artifacts
/ANOtherCompo
   joe.composite ( composite name=xyz/ )
  /joes_libraries
  joe.dll

So the name of the folder and composite file is irrelevent as the actual
composite name comes from the scdl name=. This, of course, is a little
harder for the runtime to load but a lot simpler for the user IMO.

So for a MyValue sample I'd develop my composites in a structure that
matches the deploy layout. This is necessary for the scagen step that
requires the scdl and the interface headers to generate the proxies and
wrappers. This strcture may or may not have multiple directories at the
choice of the developer, he may want each component in a separate dir for
instance. Deployment is simply copying the scdl, libraries and headers to
wherever they are to be deployed. (Although the headers are not currently
used at runtime it is possible that they may be in the future).

So I may end up with:

.../MyValue
 myValue.composite
 myVal.componentType
 /CustomerInfo
custinfo.componentType
custinfo.h etc..

Cheers,


On 11/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


When I started to implement the new composite assembly model I felt a
need to adjust a little the folder structure under the Tuscany system
root, did half of it, which triggered some questions :) This is a new
thread to discuss these changes.

Here's what we had in M1:

$TUSCANY_SCAPP_SYSTEM_ROOT/ -- your Tuscany-system-root
   subsystems/
   CalculatorSubsystem/
   sca.subsystem -- creates and configures the Calculator
module component
   modules/
   Calculator -- the Calculator module and code
   sca.module
   other artifacts, *.so, *.wsdl, *.xsd etc.

Now that the spec has removed subsystem, module and fragment, and
generalized the use of composites, here's what I'd like to propose:

deploy/ -- your Tuscany-system-root
   configuration/
   CalculatorApp.composite -- creates the Calculator component, we
don't need sub-folders here since we can give meaningful name to
composite files now
   packages/
   Calculator -- the Calculator composite and code
   Calculator.composite
   other artifacts, *.so, *.wsdl, *.xsd etc.

- Configuration contains the composites included in your system creating
and configuring your top level components.
- Packages contains all your other development artifacts (not
necessarily just composites that's why I'm proposing packages/ instead
of modules/ or composites/).
- I think that the samples should use consistent naming convenvions, but
you should also be able to pick the names you want for your folders and
artifacts and have Foo/Bar.composite containing composite name=Abc/
for example.

Any thoughts?

--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






Pete,

I'm OK too with a simpler structure without separate configuration/ and 
packages/. I was initially trying to build on the structure that we 
already have with separate subsystems and modules directories.


On the other hand, I'm not sure how we'd handle the following scenario 
with all composites under a single structure:
I have developed two composites, bigbank.account and bigbank.client (in 
0.9 speak these would be modules).

I install these two composites on my runtime.
I now want to actually make them live. For this I need to create a new 
composite, let's call it bigbank. My bigbank composite declares two 
components (instances of bigbank.account and bigbank.client) configures 
them, and wires them together. With SCA 0.9 bigbank was a subsytem.

I now have 3 composites on my runtime.

How will we distinguish between bigbank (describing the composition and 
configuration of my system and used to create actual instances) and 
bigbank.account + bigbank.client (just describing composite 
implementations), once we have these 3 composites under a single folder 
structure?


The other thing is that in the scenario above we probably have 3 
different roles:

- The developer putting 

Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-11 Thread Andrew Borley

I think we use our samples to demonstrate different ways of working - have
the Calculator be deployed in a single directory and have the BigBank show
the use of multiple directories.
So perhaps have configuration, packages/account and packages/client
directories under the root directory? What do you think?

Andy


On 8/11/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Andrew Borley wrote:
 Can't we allow both ways of working? i.e. with or without subdirectory
 structures? As long as we recurse into directories looking for any
 .composite files then it should still work (as long as we check for name
 clashes, etc). Then it's up to users how they package their projects -
 they
 can follow structures that make most sense to them.

 Andy
Yes, makes sense. I agree that users should be free to package their
projects in the way that makes most sense to them. We can only show and
recommend some practices in our samples.

So I guess the only remaining question is: one big root directory, or
two configuration/ and packages/ directories, and how do we handle my
little Bigbank deployment scenario below :)



 On 8/11/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 Pete Robbins wrote:
  A lot of things referenced from a .composite are a path relative to
 the
  .composite file (the compsite root). This is defined in the spec. For
  example,
  component name=MyValueServiceComponent
   implementation.cpp library=MyValuelibrary path=MyValue
  header=MyValue/MyValueImpl.h/implementation.cpp
 
  so if the composite file is in
 .../deploy/configuration/myValue.composite
  the library will be located at
  .../deploy/configuration/MyValue/libMyValuelibrary.so. Similarly the
  implementation header will be located at
  .../deploy/configuration/MyValue/MyValueImpl.h
 
  ...so I don't think you can have an arbitrary separation of
 configuration
  and packages.
 
  I think we can use a very simple deployment which is that the runtime
  will
  find all the composites under the system root so it could look
like:
  .../deploy
   fred.composite ( composite name=abc/ )
  some_other_artifacts
  /ANOtherCompo
 joe.composite ( composite name=xyz/ )
/joes_libraries
joe.dll
 
  So the name of the folder and composite file is irrelevent as the
 actual
  composite name comes from the scdl name=. This, of course, is a
little
  harder for the runtime to load but a lot simpler for the user IMO.
 
  So for a MyValue sample I'd develop my composites in a structure that
  matches the deploy layout. This is necessary for the scagen step that
  requires the scdl and the interface headers to generate the proxies
 and
  wrappers. This strcture may or may not have multiple directories at
 the
  choice of the developer, he may want each component in a separate dir
 for
  instance. Deployment is simply copying the scdl, libraries and
headers
 to
  wherever they are to be deployed. (Although the headers are not
 currently
  used at runtime it is possible that they may be in the future).
 
  So I may end up with:
 
  .../MyValue
   myValue.composite
   myVal.componentType
   /CustomerInfo
  custinfo.componentType
  custinfo.h etc..
 
  Cheers,
 
 
  On 11/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
 
  When I started to implement the new composite assembly model I felt
a
  need to adjust a little the folder structure under the Tuscany
system
  root, did half of it, which triggered some questions :) This is a
new
  thread to discuss these changes.
 
  Here's what we had in M1:
 
  $TUSCANY_SCAPP_SYSTEM_ROOT/ -- your Tuscany-system-root
 subsystems/
 CalculatorSubsystem/
 sca.subsystem -- creates and configures the Calculator
  module component
 modules/
 Calculator -- the Calculator module and code
 sca.module
 other artifacts, *.so, *.wsdl, *.xsd etc.
 
  Now that the spec has removed subsystem, module and fragment, and
  generalized the use of composites, here's what I'd like to propose:
 
  deploy/ -- your Tuscany-system-root
 configuration/
 CalculatorApp.composite -- creates the Calculator
 component, we
  don't need sub-folders here since we can give meaningful name to
  composite files now
 packages/
 Calculator -- the Calculator composite and code
 Calculator.composite
 other artifacts, *.so, *.wsdl, *.xsd etc.
 
  - Configuration contains the composites included in your system
 creating
  and configuring your top level components.
  - Packages contains all your other development artifacts (not
  necessarily just composites that's why I'm proposing packages/
 instead
  of modules/ or composites/).
  - I think that the samples should use consistent naming convenvions,
 but
  you should also be able to pick the names you want for your
 folders and
  artifacts and have Foo/Bar.composite containing composite
 name=Abc/
  for example.
 
  Any thoughts?
 
  --
  Jean-Sebastien
 
 
 

Re: [C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-11 Thread Jean-Sebastien Delfino

Andrew Borley wrote:
[snip]
I think we use our samples to demonstrate different ways of working - 
have
the Calculator be deployed in a single directory and have the BigBank 
show

the use of multiple directories.
So perhaps have configuration, packages/account and packages/client
directories under the root directory? What do you think?

Andy



Andy, where would you place the two composites files describing the 
calculator implementation and component?


Just to recap, here's what we had in M1:
subsystems/
   CalculatorSubsystem/
   CalculatorSubsystem.composite
   BigBankSubsystem/
  BigBankSubsystem.composite
modules/
   CalculatorModule/
  CalculatorModule.module
   Accounts/
  Accounts.composite

I am proposing something like this:
configuration/
   sample.calculator.composite
   bigbank.composite
packages/
   calculator/
  calculator.composite
   bigbank.account/
  bigbank.account.composite
   bigbank.client/
  bigbank.client.composite

The configuration directory contains the composites included in your 
system, the packages directory contains implementations (composites or 
other things).


And here's another option:
system.composite file ... containing
include name=sample.calculator.composite/
include name=bigbank.composite/

and a more free form distribution for the other artifacts:
sample.calculator.composite
bigbank.composite
calculator/
   calculator.composite
bigbank.account/
   bigbank.account.composite
bigbank.client/
   bigbank.client.composite


This would provide less guidance to our users but maybe more 
flexibility. They would have to edit this central system.composite file 
instead of just placing files in a well known folder.


I'm OK with both the folder structure option or the cenral composite 
file option. I suggest we start experimenting with a simple scheme that 
you guys are comfortable and evolve it over time as we implement more 
scenarios. What do you think?


--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[C++] Folder structure under $Tuscany_scacpp_system_root

2006-08-10 Thread Jean-Sebastien Delfino
When I started to implement the new composite assembly model I felt a 
need to adjust a little the folder structure under the Tuscany system 
root, did half of it, which triggered some questions :) This is a new 
thread to discuss these changes. 


Here's what we had in M1:

$TUSCANY_SCAPP_SYSTEM_ROOT/ -- your Tuscany-system-root
   subsystems/
   CalculatorSubsystem/
   sca.subsystem -- creates and configures the Calculator 
module component

   modules/
   Calculator -- the Calculator module and code
   sca.module
   other artifacts, *.so, *.wsdl, *.xsd etc.

Now that the spec has removed subsystem, module and fragment, and 
generalized the use of composites, here's what I'd like to propose:


deploy/ -- your Tuscany-system-root
   configuration/
   CalculatorApp.composite -- creates the Calculator component, we 
don't need sub-folders here since we can give meaningful name to 
composite files now

   packages/
   Calculator -- the Calculator composite and code
   Calculator.composite
   other artifacts, *.so, *.wsdl, *.xsd etc.

- Configuration contains the composites included in your system creating 
and configuring your top level components.
- Packages contains all your other development artifacts (not 
necessarily just composites that's why I'm proposing packages/ instead 
of modules/ or composites/).
- I think that the samples should use consistent naming convenvions, but 
you should also be able to pick the names you want for your folders and 
artifacts and have Foo/Bar.composite containing composite name=Abc/ 
for example.


Any thoughts?

--
Jean-Sebastien


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]