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

Reply via email to