Andrew Borley wrote:
+1 from me too. Makes things a tad simpler.

Andy

On 10/2/06, Pete Robbins <[EMAIL PROTECTED]> wrote:
No objections here. I always wanted ModelLoader to find all artifacts under
root ;-)

Cheers,

On 02/10/06, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I'd like to simplify a little the deployment folder structure of our
> samples. The folder structure created by our build under deploy/ is
> currently different from the source development structure and I think
> it'll be simpler if in general we can just use the same structure for
> both, as this will allow people to run their code in place without
> having to move things around and will improve the code/build/run user
> experience.
>
> Here's what we have now:
>
> Source development tree:
> .
> ./sample.calculator.solution
> ./sample.calculator.solution/sample.calculator.solution.composite
> ./README
> ./sample.calculator.wsclient
> ./sample.calculator.wsclient/axis2_Calculator_stub.cpp
> ./sample.calculator.wsclient/CalculatorWSClient.cpp
> ./sample.calculator.wsclient/axis2_Calculator_stub.h
> ./sample.calculator.wsclient/runwsclient.sh
> ./sample.calculator.wsclient/runwsclient.bat
> ./sample.calculator.wsclient/Makefile.am
> ./sample.calculator
> ./sample.calculator/Calculator.wsdl
> ./sample.calculator/CalculatorImpl.h
> ./sample.calculator/Calculator.h
> ./sample.calculator/DivideImpl.h
> ./sample.calculator/runwsserver.bat
> ./sample.calculator/runwsserver.sh
> ./sample.calculator/sample.calculator.composite
> ./sample.calculator/CalculatorImpl.componentType
> ./sample.calculator/DivideImpl.componentType
> ./sample.calculator/DivideImpl.cpp
> ./sample.calculator/Divide.h
> ./sample.calculator/Makefile.am
> ./sample.calculator/CalculatorImpl.cpp
> ./Makefile.am
> ./sample.calculator.client
> ./sample.calculator.client/Calculator.h
> ./sample.calculator.client/runclient.bat
> ./sample.calculator.client/runclient.sh
> ./sample.calculator.client/calculator_client
> ./sample.calculator.client/CalculatorClient.cpp
> ./sample.calculator.client/Makefile.am
>
> Structure currently created by our build under deploy/:
> .
> ./configuration
> ./configuration/sample.calculator.solution.composite
> ./bin
> ./bin/runclient.sh
> ./bin/runwsserver.sh
> ./bin/calculator_client
> ./bin/runwsclient.sh
> ./bin/calculator_wsclient
> ./packages
> ./packages/sample.calculator
> ./packages/sample.calculator/Calculator.wsdl
> ./packages/sample.calculator/libCalculator.so.0.0.0
> ./packages/sample.calculator/sample.calculator.composite
> ./packages/sample.calculator/CalculatorImpl.componentType
> ./packages/sample.calculator/libCalculator.so
> ./packages/sample.calculator/DivideImpl.componentType
> ./packages/sample.calculator/libCalculator.la
> ./packages/sample.calculator/libCalculator.so.0
>
> And here's the new structure under deploy/ with the changes that I'm
> proposing (basically the same structure as the source development tree):
> .
> ./sample.calculator.solution
> ./sample.calculator.solution/sample.calculator.solution.composite
> ./README
> ./sample.calculator.wsclient
> ./sample.calculator.wsclient/runwsclient.sh
> ./sample.calculator.wsclient/calculator_wsclient
> ./sample.calculator
> ./sample.calculator/Calculator.wsdl
> ./sample.calculator/libCalculator.so.0.0.0
> ./sample.calculator/sample.calculator.composite
> ./sample.calculator/CalculatorImpl.componentType
> ./sample.calculator/libCalculator.so
> ./sample.calculator/DivideImpl.componentType
> ./sample.calculator/libCalculator.la
> ./sample.calculator/libCalculator.so.0
> ./sample.calculator/runwsserver.sh
> ./sample.calculator.client
> ./sample.calculator.client/runclient.sh
> ./sample.calculator.client/calculator_client
>
> In addition to the build changes, to support this new structure we have > to make a small change to our ModelLoader to look for artifacts directly
> under $Tuscany_scacpp_system_root instead of just the packages/ and
> configuration/ sub-folders. If there's no objection I'd like to start
> making these changes some time tomorrow.
>
> --
> Jean-Sebastien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Pete



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



I committed the changes proposed in this thread under revisions r453499, r453505 and 4533508. I also created JIRA TUSCANY-801 to document this. I did it after the fact as I had forgotten that we had decided to create JIRAs for all changes now... it's getting late here :) I'll add a link to this email to the JIRA 801.

The structure under the deploy/ directory is now as was described above in this email chain with one more simplification (sample.calculator.solution is directly under deploy/ instead of sitting alone in its own sub-directory):

sample.calculator.solution.composite
./README
./sample.calculator.wsclient
./sample.calculator.wsclient/runwsclient.sh
./sample.calculator.wsclient/calculator_wsclient
./sample.calculator
./sample.calculator/Calculator.wsdl
./sample.calculator/libCalculator.so.0.0.0
./sample.calculator/sample.calculator.composite
./sample.calculator/CalculatorImpl.componentType
./sample.calculator/libCalculator.so
./sample.calculator/DivideImpl.componentType
./sample.calculator/libCalculator.la
./sample.calculator/libCalculator.so.0
./sample.calculator/runwsserver.sh
./sample.calculator.client
./sample.calculator.client/runclient.sh
./sample.calculator.client/calculator_client

The changes to ModelLoader.cpp actually simplify it as we are now using the same code to load "top-level" composites (formerly subsystems, which get included in the SCA system) and load all the other composites used to implement components. The changes also fix some bugs in the loading of nested composites.

The new scheme is as follows:

- Top-level composites are described by .composite files directly under $TUSCANY_SCACPP_SYSTEM_ROOT. These top-level composites are "included" in the SCA system (as if they were included with an SCDL <include>). The components they declare get instantiated by the runtime, and can be named in the $TUSCANY_SCACPP_DEFAULT_COMPONENT variable.

- Other composite files anywhere else under $TUSCANY_SCAPP_SYSTEM_ROOT can be used as implementations of components. Nesting is supported, for example top-level component A can be implemented by composite b, containing component C implemented by composite d containing component E etc.

Even without separate configuration/ and packages/ folders we still need to distinguish between these "top level" composites and "implementation" composites. I've been struggling to find a good way to describe this, so I'll try to draw a simple analogy with Web Applications: - A "top-level" composite is similar to a Web application. When you deploy it and start your server the Web application becomes live, available at a specific URL. - An "implementation" composite is like a library. It is not available at a specific URL like a Web Application, it just packages implementation artifacts that you can reuse in multiple applications.

Let me know if this analogy helps, or is more confusing :)

I also added the implementation of a slightly more flexible scheme:

- Declare in a $TUSCANY_SCACPP_ROOT variable a list of directories where to look for "top-level" composites.

- Declare in a $TUSCANY_SCACPP_PATH variable a list of directories where to look for "implementation" composites.

We don't have to use this new scheme with the paths, as the old environment variable TUSCANY_SCACPP_SYSTEM_ROOT still works, but I'm hoping that people will like it better and will start to use it :) As an example of a use case for this, it will allow you to configure the runtime with all our samples (which are already in different directories), plus other user applications and composites under other directories.

--
Jean-Sebastien


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

Reply via email to