You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by aj...@apache.org on 2006/10/06 16:23:33 UTC

svn commit: r453609 - in /incubator/tuscany/cpp: sca/ sca/doc/ sca/doc/css/ sca/samples/BigBank/ sca/samples/Calculator/ sca/samples/PythonCalculator/ sca/samples/RubyBank/ sca/samples/RubyCalculator/ sdo/doc/ sdo/doc/css/

Author: ajborley
Date: Fri Oct  6 07:23:32 2006
New Revision: 453609

URL: http://svn.apache.org/viewvc?view=rev&rev=453609
Log:
Various document updates including changes in the sample deploy structures and updating and HTML-ifying the user docs

Added:
    incubator/tuscany/cpp/sca/doc/Axis2CWSService.html   (with props)
    incubator/tuscany/cpp/sca/doc/CPPComponents.html   (with props)
Removed:
    incubator/tuscany/cpp/sca/doc/CreatingSCACPPComponents.txt
    incubator/tuscany/cpp/sca/doc/WSEntrypoint.txt
Modified:
    incubator/tuscany/cpp/sca/GettingStarted.html
    incubator/tuscany/cpp/sca/doc/PythonExtension.html
    incubator/tuscany/cpp/sca/doc/RubyExtension.html
    incubator/tuscany/cpp/sca/doc/css/maven-theme.css
    incubator/tuscany/cpp/sca/samples/BigBank/README
    incubator/tuscany/cpp/sca/samples/BigBank/README.html
    incubator/tuscany/cpp/sca/samples/Calculator/README
    incubator/tuscany/cpp/sca/samples/Calculator/README.html
    incubator/tuscany/cpp/sca/samples/PythonCalculator/README.html
    incubator/tuscany/cpp/sca/samples/RubyBank/README
    incubator/tuscany/cpp/sca/samples/RubyBank/README.html
    incubator/tuscany/cpp/sca/samples/RubyCalculator/README
    incubator/tuscany/cpp/sca/samples/RubyCalculator/README.html
    incubator/tuscany/cpp/sdo/doc/BuildingSTDCXX.html
    incubator/tuscany/cpp/sdo/doc/css/maven-theme.css

Modified: incubator/tuscany/cpp/sca/GettingStarted.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/GettingStarted.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/GettingStarted.html (original)
+++ incubator/tuscany/cpp/sca/GettingStarted.html Fri Oct  6 07:23:32 2006
@@ -194,7 +194,11 @@
                <TD STYLE="vertical-align: top; white-space: nowrap;">C++ 
                </TD>
                <TD>Provides the SCA C++ client API and enables C++ component implementations 
-                and interfaces. This extension is built by default from a source release.
+                and interfaces. This extension is built by default from a source release. See 
+                the <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">SCA 
+                C++ Client and Implementation specification</A> for more details about the SCA C++ 
+                Programming Model and the <A HREF="doc/CPPComponents.html">Creating C++ SCA Components</A> 
+                document for a step-by-step example.
                </TD>
             </TR>
             <TR CLASS="a">
@@ -202,7 +206,11 @@
                </TD>
                <TD>Provides the Web Service bindings enabling Tuscany to call SCA references via
                 Web Services or expose SCA services as Web Services. This extension is built by 
-                default from a source release.
+                default from a source release. See the 
+                <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">SCA 
+                Web Service bindings specification</A> for more details about SCA Web Service support
+                and the <A HREF="doc/Axis2CWSService.html">Enabling Web Service 
+                access to SCA Components</A> document for a step-by-step example.
                </TD>
             </TR>
             <TR CLASS="b">
@@ -263,15 +271,15 @@
          <TABLE CLASS="bodyTable"> 
             <TBODY>
             <TR CLASS="a">
-               <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="doc/CreatingSCACPPComponents.txt">Creating and building a Tuscany SCA C++ component</A> 
+               <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="doc/CPPComponents.html">Creating and building a Tuscany SCA C++ component</A> 
                </TD>
                <TD>A document that describes how to create, build and run a Tuscany SCA C++ component.
                </TD>
             </TR>
             <TR CLASS="a">
-               <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="doc/WSEntrypoint.txt">Enabling Web Service access to your Tuscany SCA C++ component</A> 
+               <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="doc/Axis2CWSService.html">Enabling Web Service access to your Tuscany SCA component</A> 
                </TD>
-               <TD>A document that describes how to expose a Tuscany SCA C++ component as a Web Service via an SCA Web Service Entrypoint.
+               <TD>A document that describes how to expose a Tuscany SCA C++ component as a Web Service via the Tuscany Axis2C Web Service support.
                </TD>
             </TR>
             </TBODY>

Added: incubator/tuscany/cpp/sca/doc/Axis2CWSService.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/Axis2CWSService.html?view=auto&rev=453609
==============================================================================
--- incubator/tuscany/cpp/sca/doc/Axis2CWSService.html (added)
+++ incubator/tuscany/cpp/sca/doc/Axis2CWSService.html Fri Oct  6 07:23:32 2006
@@ -0,0 +1,364 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
+<!--
+  Copyright 2006 The Apache Software Foundation or its licensors, as applicable.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+ -->
+<HTML>
+<HEAD>
+   <META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-Type">
+   <META CONTENT="text/css" HTTP-EQUIV="Content-Style-Type">
+   <STYLE MEDIA="all" TYPE="text/css">
+@import url("css/maven-base.css");
+@import url("css/maven-theme.css");
+   </STYLE> 
+
+    <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet"
+         TYPE="text/css">
+   <TITLE>Tuscany SCA for C++ - Creating C++ SCA Components</TITLE>
+</HEAD>
+
+<BODY>
+<DIV ID="bodyColumn"> 
+   <DIV ID="contentBox"> 
+      <DIV CLASS="section"> 
+         <H2>Tuscany SCA for C++ - Creating C++ SCA Components</H2> 
+
+         <P>This document describes the deployment and use of the Axis2C Web Service 
+            (binding.ws) service support in the Apache Tuscany SCA C++ runtime.
+         </P>
+         <P>The WS service code is based on <A HREF="http://ws.apache.org/axis2/c">Apache 
+            Axis2C version 0.94</A> and allows SCA components to be invoked via Web 
+            Service calls.
+         </P>
+         <P>WS service currently supports Document/literal Wrapped style Web Services 
+            only. There are also restrictions about the parameter and return types of the 
+            operations in SCA components that can be exposed as Web Services, see below 
+            for more details.
+         </P>
+         <P>See the <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">SCA 
+            Web Service binding specification</A> for more details about SCA Web 
+            Service support.            
+         </P>
+         <P>Also, see the <A HREF="../samples/GettingStarted.html">samples</A> for various
+            demonstrations of the use of the binding.ws service support.
+         </P>
+      </DIV>
+
+      <DIV CLASS="section"> 
+         <H2>Contents</H2> 
+         <OL>
+            <LI><A HREF="#deploy">Deploying the Tuscany Web Service support to Axis2C..</A>
+                <UL>
+                    <LI><A HREF="#autodeploy">..automatically via scripts</A></LI>
+                    <LI><A HREF="#mandeploy">..manually</A></LI>
+                </UL></LI>
+            <LI><A HREF="#use">Defining an SCA Composite with a WS service</A></LI>
+            <LI><A HREF="#maptable">XML Schema Type to C++ Type Mapping</A></LI>
+            <LI><A HREF="#creatingwsdl">Notes on creating WSDL</A></LI>
+         </OL>
+      </DIV>
+
+
+      <DIV CLASS="section"> 
+         <A NAME="deploy"><H2>Deploying the Tuscany Web Service support to Axis2C</H2></A>
+         <A NAME="autodeploy"><H3>Deploying via scripts</H3></A>
+         <P>Tuscany provides simple shell scripts to deploy the Web Service support to Axis2C.
+            However, the script <STRONG>will overwrite your Axis2C axis.xml file</STRONG>, so if you 
+            have altered your axis2.xml from the default provided by the Axis2C distribution, it is
+            recommended that you follow the <A HREF="#mandeploy">manual deployment</A> steps 
+            outlined below. 
+         </P>
+         <P>To automatically deploy Tuscany Web Service support to Axis2C on Linux:
+           <OL> 
+              <LI>The AXIS2C_HOME environment variable is required:                                 
+                <UL>
+                  <LI>set AXIS2C_HOME=&lt;path to axis2c version 0.94&gt;</LI>
+                </UL></LI>
+              <LI>Use the following command sequence to run the deploy script:
+                  <UL>
+                      <LI>cd &lt;tuscany_sca_install_dir&gt;/extensions/ws/service</LI>
+                      <LI>./deploy.sh</LI>
+                  </UL>
+              </LI>
+           </OL>
+         </P>
+         <P>To automatically deploy Tuscany Web Service support to Axis2C on Windows:
+           <OL> 
+              <LI>The AXIS2C_HOME environment variable is required:                                 
+                <UL>
+                  <LI>export AXIS2C_HOME=&lt;path to axis2c version 0.94&gt;</LI>
+                </UL></LI>
+              <LI>Use the following command sequence to run the deploy script:
+                  <UL>
+                      <LI>cd &lt;tuscany_sca_install_dir&gt;/extensions/ws/service</LI>
+                      <LI>./deploy.cmd</LI>
+                  </UL>
+              </LI>
+           </OL>
+         </P>
+
+
+         <A NAME="mandeploy"><H3>Deploying manually</H3></A>
+         <P>To deploy Tuscany Web Service support to Axis2C manually, use the following steps:
+         </P>
+         <OL>
+             <LI>Create a &lt;axis2c version 0.94&gt;/services/tuscany directory 
+             </LI>
+             <LI>Copy all the files in &lt;tuscany_sca_install_dir&gt;/extensions/ws/service/services/tuscany/
+                 to the directory created above
+             </LI>          
+             <LI>Create a &lt;axis2c version 0.94&gt;/modules/tuscany directory 
+             </LI>
+             <LI>Copy all the files in &lt;tuscany_sca_install_dir&gt;/extensions/ws/service/modules/tuscany/
+                 to the directory created above
+             </LI>
+             <LI>Edit the &lt;axis2c version 0.94&gt;/axis2.xml file to add a &lt;ref module="tuscany"&gt; 
+                 element. This will register the above module. E.g.:
+                 <PRE>...
+    &lt;!-- ================================================= --&gt;
+    &lt;!-- Global Modules  --&gt;
+    &lt;!-- ================================================= --&gt;
+    &lt;!-- Comment this to disable Addressing --&gt;
+    &lt;module ref="addressing"/&gt;
+
+    &lt;module ref="tuscany"/&gt;
+
+...              </PRE>
+             </LI>
+         </OL>
+      </DIV>
+
+      <DIV CLASS="section"> 
+         <A NAME="use"><H2>Defining an SCA Composite with a WS service</H2></A>
+
+         <P>In this section we will use the Calculator sample as a worked example. 
+            The Calculator code and files can be found at 
+            &lt;tuscany_sca_install_dir&gt;samples/Calculator.
+         </P> 
+         <P>Pre-requisites:
+           <UL>
+               <LI>A working component within a composite and solution composite, 
+                   with SCAGEN generated Proxy and Wrapper classes and a .dll or 
+                   .so library compiled from these and the component class files. 
+                   The *.composite and *.componentType files must also be available 
+                   and working                       
+               </LI>
+           </UL>
+         </P>
+         <OL>
+             <LI>Create the WSDL that defines the interface of your SCA component. See the 
+                 table <A HREF="#maptable">XML Schema Type to C++ Type Mapping</A> and 
+                 <A HREF="#creatingwsdl">Notes on creating WSDL</A> below 
+                 for mapping the parameters and return types of the component operations to XML 
+                 schema types in the WSDL. This file needs to be accessible from the component, 
+                 so place it in the same directory as the component or in a subdirectory.
+                 <BR/>
+                 See the &lt;tuscany_sca_install_dir&gt;/samples/Calculator/sample.calculator/Calculator.wsdl 
+                 file as an example.
+             </LI>
+             <LI>Add a service definition to the component .composite file, setting the         
+                 interface.wsdl interface attribute to the namespace, port name specified in the        
+                 WSDL, in the form: "&lt;namespace&gt;#wsdl.interface(&lt;port-name&gt;)".    
+                 Link a reference from this service definition to your
+                 component, give the service a name and set the multiplicity if required.                      
+                 <BR/>                                                                               
+                 E.g. for the Calculator component, based on the Calculator.wsdl file:          
+                 <PRE>&lt;service name="CalculatorService"&gt;
+    &lt;interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"/&gt;
+    &lt;binding.ws/&gt;
+    &lt;reference&gt;CalculatorComponent/CalculatorService&lt;/reference&gt;
+&lt;/service&gt;</PRE>
+             </LI>         
+             <LI>You are now ready to start the Axis2C HTTP server. Remember you will need to have the 
+                 TUSCANY_SCACPP, TUSCANY_SDOCPP and AXIS2C_HOME environment variables set, 
+                 as well as the SCA and SDO bin directories and the Axis2C lib directory on 
+                 your PATH on Windows or the SCA, SDO and Axis2C lib directories on 
+                 your LD_LIBRARY_PATH on Linux. You will also need to set the TUSCANY_SCACPP_SYSTEM_ROOT
+                 and TUSCANY_SCACPP_DEFAULT_COMPONENT environment variables to the 
+                 path to your SCA component directory structure and the default component respectively.
+                 E.g. on Windows run the following commands:
+                 <UL>
+                     <LI>set TUSCANY_SCACPP=C:/tuscany_sca                                                 </LI>
+                     <LI>set TUSCANY_SDOCPP=C:/tuscany_sdo                                                 </LI>
+                     <LI>set AXIS2C_HOME=C:/axis2c-bin-0.94-win32                                          </LI>
+                     <LI>set PATH=%PATH%;C:/tuscany_sca/bin;C:/tuscany_sdo/bin;C:/axis2c-bin-0.94-win32/lib</LI>
+                     <LI>set TUSCANY_SCACPP_SYSTEM_ROOT=C:/tuscany_sca/samples/Calculator/deploy           </LI>
+                     <LI>set TUSCANY_SCACPP_DEFAULT_COMPONENT=sample.calculator.CalculatorComponent        </LI>
+                     <LI>cd %AXIS2C_HOME%/bin/                                                             </LI>
+                     <LI>./axis2_http_server.exe                                                           </LI>
+                 </UL>
+             </LI>
+             <LI>Optionally, enable Tuscany logging by setting the TUSCANY_SCACPP_LOGGING 
+                 environment variable with the level you wish to log at (0 for minimal 
+                 logging, up to 9 for more detailed logging) and the TUSCANY_SCACPP_LOG 
+                 environment variable to define the file to log to (if this is not set, 
+                 logging will go to the console). E.g. on Windows run the following 
+                 commands:
+                 <UL>
+                     <LI>set TUSCANY_SCACPP_LOGGING=5                   </LI>
+                     <LI>set TUSCANY_SCACPP_LOG=C:/tuscany/mylogfile.txt</LI>
+                 </UL>
+             </LI>
+         </OL>
+         <P>Your component should now be exposed as an Axis2C Web Service, via the WS    
+            service you created. See the Axis2C documentation for writing clients to  
+            invoke the Web Service, or you can use any other Web Service client platform 
+            (e.g. <A HREF="http://ws.apache.org/axis2">Axis2 for Java</A>), or you can invoke your    
+            component from another Tuscany runtime by using Tuscany's WS reference
+            support.                                                                     
+         </P>
+
+      </DIV>              
+
+      <DIV CLASS="section"> 
+         <A name="maptable"><H2>XML Schema Type to C++ Type Mapping</H2></A>
+         <P>To help define the WSDL that describes the interface of your component, the    
+            table below lists how incoming XML data in Web Service messages is mapped to   
+            C++ types used in the parameters and return types of your component operations.
+         </P>
+         <P>This lists the only C++ types that can currently be used on the operations of a
+            component exposed as a Web Service. For other types, use an SDO DataObject to  
+            wrap the data, and define that wrapping as a complexType in the WSDL. See the  
+            <A HREF="http://www.osoa.org/display/Main/SDO+-+Previously+Published+Specifications">SDO 
+            specifications</A> for the C++ types that SDO supports.                                                                  
+         </P>
+         <TABLE CLASS="bodyTable"> 
+            <TBODY>
+            <TR CLASS="a">
+               <TD><STRONG>XML Schema Type</STRONG></TD>
+               <TD><STRONG>C++ Type</STRONG></TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>string</TD>
+               <TD>std::string</TD>
+            </TR>
+            <TR CLASS="a">
+               <TD>int</TD>
+               <TD>long</TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>integer</TD>
+               <TD>long</TD>
+            </TR>
+            <TR CLASS="a">
+               <TD>short</TD>
+               <TD>short</TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>float</TD>
+               <TD>float</TD>
+            </TR>
+            <TR CLASS="a">
+               <TD>double</TD>
+               <TD>long double</TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>boolean</TD>
+               <TD>bool</TD>
+            </TR>
+            <TR CLASS="a">
+               <TD>hexBinary</TD>
+               <TD>char*</TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>base64Binary</TD>
+               <TD>char*</TD>
+            </TR>
+            <TR CLASS="a">
+               <TD>byte</TD>
+               <TD>char</TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>complexType</TD>
+               <TD>commonj::sdo::DataObjectPtr</TD>
+            </TR>
+            <TR CLASS="a">
+               <TD>any</TD>
+               <TD>commonj::sdo::DataObjectPtr with OpenDataObjectType</TD>
+            </TR>
+            </TBODY>
+         </TABLE>
+      </DIV>
+
+      <DIV CLASS="section"> 
+         <A name="creatingwsdl"><H2>Notes on creating WSDL</H2></A>
+         <P>Currently only Document/literal Wrapped style Web Services are supported by                  
+            WS EntryPoint, support for RPC style Web Services is planned for future                      
+            releases.                                                                                    
+         </P>                                                                                                
+         <P>See <A HREF="http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/">this article</A>
+            for an explanation of Document/literal Wrapped style WSDL and Web Services                   
+         </P>                                                                                             
+         <P>Operation parameter and return messages that are defined in the WSDL must be                 
+            XML Schema elements containing a complexType - there is currently no                         
+            support for simpleTypes or single-level elements. Also, Document/literal                     
+            Wrapped services require that the operation name is used as the name of the                  
+            incoming element that wraps the operation parameters.                                        
+         </P>                                                                                                
+         <P>For example, a component operation defined in C++ as:                                        
+         <PRE>long myOperation(std::string arg1, short arg2, DataObjectPtr arg3);</PRE>
+            will need to be described in WSDL with messages like:                                        
+         <PRE>&lt;wsdl:message name="myOperationRequestMsg"&gt;                                               
+  &lt;wsdl:part element="tns:myOperation" name="myOperationRequestPart"/&gt;                    
+&lt;/wsdl:message&gt;                                                                           
+&lt;wsdl:message name="myOperationResponseMsg"&gt;                                              
+  &lt;wsdl:part element="tns:myOperationResponse" name="myOperationResponsePart"/&gt;           
+&lt;/wsdl:message&gt;</PRE>                                                                           
+            and will need an XML schema to define the types like:                                        
+         <PRE>&lt;xsd:element name="myOperation"&gt;                                                          
+ &lt;xsd:complexType&gt;                                                                       
+   &lt;xsd:sequence&gt;                                                                        
+     &lt;xsd:element name="arg1" type="xsd:string" minOccurs="1"/&gt;                          
+     &lt;xsd:element name="arg2" type="xsd:short" minOccurs="1"/&gt;                           
+     &lt;xsd:element name="arg3" minOccurs="1"&gt;                                             
+       &lt;xsd:complexType&gt;                                                                 
+         &lt;xsd:sequence&gt;                                                                  
+           &lt;xsd:element name="dataObjectFloatData" type="xsd:float"/&gt;                    
+           &lt;xsd:element name="dataObjectStringData" type="xsd:string"/&gt;                  
+           &lt;xsd:element name="dataObjectIntData" type="xsd:int"/&gt;                        
+         &lt;/xsd:sequence&gt;                                                                 
+       &lt;/xsd:complexType&gt;                                                                
+     &lt;/xsd:element&gt;                                                                      
+   &lt;/xsd:sequence&gt;                                                                       
+ &lt;/xsd:complexType&gt;                                                                      
+&lt;/xsd:element&gt;                                                                            
+                                                                                         
+&lt;xsd:element name="myOperationResponse"&gt;                                                  
+ &lt;xsd:complexType&gt;                                                                       
+   &lt;xsd:sequence&gt;                                                                        
+     &lt;xsd:element name="result" type="xsd:int" minOccurs="1"/&gt;                           
+   &lt;/xsd:sequence&gt;                                                                       
+ &lt;/xsd:complexType&gt;                                                                      
+&lt;/xsd:element&gt;</PRE>                                                                            
+      </DIV>
+
+      <DIV CLASS="section"> 
+         <A NAME="help"><H2>Getting Help</H2></A>
+
+         <P>First place to look is at the Tuscany FAQ at 
+         <A HREF="http://incubator.apache.org/tuscany/faq.html"
+            TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P>
+
+         <P>Any problem with this release can be reported to the Tuscany 
+         <A HREF="http://incubator.apache.org/tuscany/mail-lists.html"
+            TARGET="_blank">mailing lists</A> or create a JIRA issue at&nbsp;<A HREF="http://issues.apache.org/jira/browse/Tuscany"
+                                                                                TARGET="_blank">http://issues.apache.org/jira/browse/Tuscany</A>.</P>
+      </DIV>
+   </DIV>
+</DIV>
+</BODY>
+
+</HTML>
+

Propchange: incubator/tuscany/cpp/sca/doc/Axis2CWSService.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/cpp/sca/doc/Axis2CWSService.html
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/cpp/sca/doc/CPPComponents.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/CPPComponents.html?view=auto&rev=453609
==============================================================================
--- incubator/tuscany/cpp/sca/doc/CPPComponents.html (added)
+++ incubator/tuscany/cpp/sca/doc/CPPComponents.html Fri Oct  6 07:23:32 2006
@@ -0,0 +1,321 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
+<!--
+  Copyright 2006 The Apache Software Foundation or its licensors, as applicable.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+ -->
+<HTML>
+<HEAD>
+   <META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-Type">
+   <META CONTENT="text/css" HTTP-EQUIV="Content-Style-Type">
+   <STYLE MEDIA="all" TYPE="text/css">
+@import url("css/maven-base.css");
+@import url("css/maven-theme.css");
+   </STYLE> 
+
+    <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet"
+         TYPE="text/css">
+   <TITLE>Tuscany SCA for C++ - Creating C++ SCA Components</TITLE>
+</HEAD>
+
+<BODY>
+<DIV ID="bodyColumn"> 
+   <DIV ID="contentBox"> 
+      <DIV CLASS="section"> 
+         <H2>Tuscany SCA for C++ - Creating C++ SCA Components</H2> 
+
+         <P>This document describes how to create and run SCA components in Tuscany SCA C++ 
+            milestone release 2.
+         </P>
+         <P>See the <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">SCA 
+            C++ Client and Implementation specification</A> for more details about the SCA C++ 
+            programming model.            
+         </P>
+         <P>See <A HREF="../samples/Calculator/README.html">Calculator</A> or 
+            <A HREF="../samples/BigBank/README.html">BigBank</A> for samples that 
+            demonstrate the use of C++ components                    
+         </P>
+      </DIV>
+      <DIV CLASS="section"> 
+         <H2>Creating and deploying an SCA C++ Component</H2>
+
+         <P>Each SCA C++ component needs:
+         </P> 
+         <UL>
+             <LI>A service header file that defines the operations that can be invoked on the 
+                 component
+             </LI>
+             <LI>An implementation header file that defines the implementation and extends 
+                 the service header file
+             </LI>
+             <LI>A C++ implementation of the service that implements the operations defined
+                 in the service header file
+             </LI>
+             <LI>Proxy and wrapper header and implementation files generated by the Tuscany
+                 C++ SCAGEN tool
+             </LI>
+             <LI>A component definition in a composite file
+             </LI>
+             <LI>A service definition in a .componentType file
+             </LI>
+             <LI>A composite describing the configuration of the composite definition above
+             </LI>
+         </UL>
+         <P>In this section we will use the Calculator sample as a worked example. 
+            The Calculator code and files can be found at samples/Calculator and has been 
+            developed further than the details specified below. In the interests of 
+            readability, the example used below takes the simplest path.
+         </P>
+         <OL>
+             <LI>Create the service header file that defines the operations your component 
+                 will implement. E.g. Calculator.h contains the following:<BR/>
+                 <PRE>#ifndef CALCULATOR_H
+#define CALCULATOR_H
+class Calculator  
+{
+public:
+    virtual float add(float arg1, float arg2) = 0;
+    virtual float sub(float arg1, float arg2) = 0;
+    virtual float mul(float arg1, float arg2) = 0;
+    virtual float div(float arg1, float arg2) = 0;
+};
+
+#endif</PRE>
+             </LI>
+             <LI>Create the implementation header file that extends the service header file. 
+                 E.g. CalculatorImpl.h contains the following:<BR/>
+                 <PRE>#ifndef CALCULATORIMPL_H
+#define CALCULATORIMPL_H
+
+#include "Calculator.h"
+
+class CalculatorImpl : public Calculator
+{
+public:
+    CalculatorImpl();
+    virtual ~CalculatorImpl();
+
+    // Calculator interface
+    virtual float add(float arg1, float arg2);
+    virtual float sub(float arg1, float arg2);
+    virtual float mul(float arg1, float arg2);
+    virtual float div(float arg1, float arg2);
+};
+
+#endif</PRE>
+             </LI>
+             <LI>Create the implementation for the component based on the implementation 
+                 header file. E.g. CalculatorImpl.cpp contains the following code:<BR/>
+                 <PRE>#include "CalculatorImpl.h"
+#include <stdio.h>
+
+CalculatorImpl::CalculatorImpl()
+{
+}
+    
+CalculatorImpl::~CalculatorImpl()
+{
+}
+
+// Calculator interface
+float CalculatorImpl::add(float arg1, float arg2)
+{
+    float result = arg1 + arg2;
+
+    printf("CalculatorImpl::add %f + %f = %f\n", arg1, arg2, result);
+    return result;
+}
+
+float CalculatorImpl::sub(float arg1, float arg2)
+{
+    float result = arg1 - arg2;
+    printf("CalculatorImpl::sub %f - %f = %f\n", arg1, arg2, result);
+    return result;
+}
+
+float CalculatorImpl::div(float arg1, float arg2)
+{
+    float result = arg1 / arg2;
+    printf("CalculatorImpl::div %f / %f = %f\n", arg1, arg2, result);
+    return result;
+}
+	
+float CalculatorImpl::mul(float arg1, float arg2)
+{
+    float result = arg1 * arg2;
+    printf("CalculatorImpl::mul %f * %f = %f\n", arg1, arg2, result);
+    return result;
+}</PRE>
+             </LI>
+             <LI>Create the componentType file for your component to define the service that 
+                 your component provides. The file must be named after your implementation 
+                 class and specifies the name of the service and the service header file 
+                 (which describes the service operations). E.g. CalculatorImpl.componentType 
+                 contains the following XML:<BR/>
+                 <PRE>&lt;componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"&gt;
+
+	&lt;service name="CalculatorService"&gt;
+		&lt;interface.cpp header="Calculator.h"/&gt;
+	&lt;/service&gt;
+
+&lt;/componentType&gt;</PRE>
+             </LI>
+             <LI>Create a sample.calculator.composite file for your composite and define your 
+                 component within it. The component definition specifies the implementation 
+                 library to use (a .dll file on Windows and a .so file on Linux) and the 
+                 implementation header file (which describes the implementation class). Component 
+                 properties and references to other services can also be specified here. E.g. the 
+                 Calculator sample.calculator.composite file contains the following XML:<BR/>
+                 <PRE>&lt;composite xmlns="http://www.osoa.org/xmlns/sca/1.0" 
+	name="sample.calculator"&gt;
+
+	&lt;component name="CalculatorComponent"&gt;
+		&lt;implementation.cpp library="Calculator" header="CalculatorImpl.h"/&gt;
+	&lt;/component&gt;
+
+&lt;/composite&gt;</PRE>
+             </LI>
+             <LI>Generate the proxy and wrapper classes and header files using the SCAGEN   
+                 tool. These classes are used by the Tuscany SCA C++ runtime to enable      
+                 service implementations to be invoked from a client or another component.  
+                 Run the SCAGEN tool, specifying the directory where your header files,     
+                 sca.composite and componentType file are and the directory where you       
+                 want the generated files to be placed. E.g. on Windows, the                
+                 following command is run from the directory where Tuscany SCA is deployed:<BR/>
+                 <PRE>./bin/scagen.cmd -dir ./samples/Calculator/sample.calculator -output ./samples/Calculator/sample.calculator</PRE>
+                 which produces the following files:
+                 <UL>
+                     <LI>CalculatorImpl_CalculatorService_Proxy.h</LI>
+                     <LI>CalculatorImpl_CalculatorService_Proxy.cpp</LI>
+                     <LI>CalculatorImpl_CalculatorService_Wrapper.h</LI>
+                     <LI>CalculatorImpl_CalculatorService_Wrapper.cpp</LI>
+                 </UL>
+             </LI>
+             <LI>Compile and link the code that has been written and generated. This will 
+                 produce a .dll or .so library file. The name should match the library name 
+                 specified in the sample.calculator.composite file.
+             </LI>
+             <LI>Create the sample.calculator.solution.composite file and define your composite 
+                 component within it. The composite component definition should specify the service 
+                 name used in the componentType file and the composite name used in the 
+                 sample.calculator.composite file. E.g. the Calculator sample.calculator.solution.composite 
+                 file contains the following XML:<BR/>
+                 <PRE>&lt;composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+	name="sample.calculator.solution"&gt;
+	
+        &lt;component name="sample.calculator.CalculatorComponent"&gt;
+        	&lt;implementation.composite name="sample.calculator" /&gt;
+       	&lt;/component&gt;
+
+&lt;/composite&gt;</PRE>
+             </LI>
+             <LI>Deploy the various files into the SCA directory structure, as follows:
+                 <UL>
+                     <LI>&lt;deploy_root&gt;/CompositeName/ServiceHeader.h</LI>
+                     <LI>&lt;deploy_root&gt;/CompositeName/ImplementationHeader.h               </LI>
+                     <LI>&lt;deploy_root&gt;/CompositeName/CompositeName.composite              </LI>
+                     <LI>&lt;deploy_root&gt;/CompositeName/Implementation.componentType         </LI>
+                     <LI>&lt;deploy_root&gt;/CompositeName/Implementation.dll (or .so on Linux) </LI>
+                     <LI>&lt;deploy_root&gt;/SolutionName.composite           </LI>
+                 </UL>
+                 E.g. for the Calculator sample the structure is:
+                 <UL>
+                     <LI>samples/Calculator/deploy/sample.calculator/Calculator.h                </LI>
+                     <LI>samples/Calculator/deploy/sample.calculator/CalculatorImpl.h            </LI>
+                     <LI>samples/Calculator/deploy/sample.calculator/sample.calculator.composite </LI>
+                     <LI>samples/Calculator/deploy/sample.calculator/CalculatorImpl.componentType</LI>
+                     <LI>samples/Calculator/deploy/sample.calculator/Calculator.dll              </LI>
+                     <LI>samples/Calculator/deploy/sample.calculator.solution.composite</LI>
+                 </UL>
+             </LI>
+             <LI>Your component, composite and subsystem are now ready to be invoked. Create a 
+                 client that will call the service. E.g. the Calculator client (in the 
+                 CalculatorClient.cpp file) contains code similar to the following:<BR/>
+                 <PRE>try
+{
+    // Locate the service
+    CompositeContext myContext = CompositeContext::getCurrent();
+    Calculator *calcService = (Calculator*) myContext.locateService("CalculatorComponent/CalculatorService");
+    if (calcService == 0)
+    {
+        cout &lt;&lt; "calculator_client: Unable to find Calculator service" &lt;&lt; endl;
+    }
+    else
+    {
+        float result = calcService-&gt;add(arg1, arg2);
+        cout &lt;&lt; "calculator_client add(" &lt;&lt; arg1 &lt;&lt; "," &lt;&lt; arg2 &lt;&lt; ") = " &lt;&lt; result &lt;&lt; endl; 
+    }
+}
+catch (ServiceRuntimeException& ex)
+{
+    cout &lt;&lt; "calculator_client: Error whilst invoking Tuscany: " &lt;&lt; 
+            ex.getMessageText() &lt;&lt; endl; 
+}
+</PRE>
+             </LI>
+             <LI>Compile, link and run the client that has been created. You should 
+                 (hopefully!) see your component invoked. Remember you will need to have the 
+                 TUSCANY_SCACPP, TUSCANY_SDOCPP and AXIS2C_HOME environment variables set, 
+                 as well as the SCA and SDO bin directories and the Axis2C lib directory on 
+                 your PATH on Windows or the SCA, SDO and Axis2C lib directories on 
+                 your LD_LIBRARY_PATH on Linux. You will also need to set the TUSCANY_SCACPP_SYSTEM_ROOT
+                 and TUSCANY_SCACPP_DEFAULT_COMPONENT environment variables to the 
+                 path to your SCA component directory structure and the default component respectively.
+                 E.g. on Windows run the following commands:
+                 <UL>
+                     <LI>set TUSCANY_SCACPP=C:/tuscany_sca                                                 </LI>
+                     <LI>set TUSCANY_SDOCPP=C:/tuscany_sdo                                                 </LI>
+                     <LI>set AXIS2C_HOME=C:/axis2c-bin-0.94-win32                                          </LI>
+                     <LI>set PATH=%PATH%;C:/tuscany_sca/bin;C:/tuscany_sdo/bin;C:/axis2c-bin-0.94-win32/lib</LI>
+                     <LI>set TUSCANY_SCACPP_SYSTEM_ROOT=C:/tuscany_sca/samples/Calculator/deploy           </LI>
+                     <LI>set TUSCANY_SCACPP_DEFAULT_COMPONENT=sample.calculator.CalculatorComponent        </LI>
+                     <LI>./calculator_client.exe                                                           </LI>
+                 </UL>
+             </LI>
+             <LI>Optionally, enable Tuscany logging by setting the TUSCANY_SCACPP_LOGGING 
+                 environment variable with the level you wish to log at (0 for minimal 
+                 logging, up to 9 for more detailed logging) and the TUSCANY_SCACPP_LOG 
+                 environment variable to define the file to log to (if this is not set, 
+                 logging will go to the console). E.g. on Windows run the following 
+                 commands:
+                 <UL>
+                     <LI>set TUSCANY_SCACPP_LOGGING=5                   </LI>
+                     <LI>set TUSCANY_SCACPP_LOG=C:/tuscany/mylogfile.txt</LI>
+                 </UL>
+             </LI>
+         </OL>
+         <P>The Calculator sample has been developed further than the details specified 
+            above. In particular, it demonstrates how two services can be wired together 
+            such that one references and invokes the other. It also demonstrates how to 
+            expose the Calculator component service as an Axis2C Web Service.
+         </P>
+      </DIV>              
+      <DIV CLASS="section"> 
+         <A NAME="help"><H2>Getting Help</H2></A>
+
+         <P>First place to look is at the Tuscany FAQ at 
+         <A HREF="http://incubator.apache.org/tuscany/faq.html"
+            TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P>
+
+         <P>Any problem with this release can be reported to the Tuscany 
+         <A HREF="http://incubator.apache.org/tuscany/mail-lists.html"
+            TARGET="_blank">mailing lists</A> or create a JIRA issue at&nbsp;<A HREF="http://issues.apache.org/jira/browse/Tuscany"
+                                                                                TARGET="_blank">http://issues.apache.org/jira/browse/Tuscany</A>.</P>
+      </DIV>
+   </DIV>
+</DIV>
+</BODY>
+
+</HTML>
+

Propchange: incubator/tuscany/cpp/sca/doc/CPPComponents.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/cpp/sca/doc/CPPComponents.html
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/cpp/sca/doc/PythonExtension.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/PythonExtension.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/doc/PythonExtension.html (original)
+++ incubator/tuscany/cpp/sca/doc/PythonExtension.html Fri Oct  6 07:23:32 2006
@@ -174,15 +174,15 @@
          <A NAME="clients"><H3>Clients</H3></A>
          <P>Using the sca module, a Python client can search for an SCA service with:
          </P>
-<DIV CLASS="sourcecode">import sca
+<PRE>import sca
 
 calculator = sca.locateservice("CalculatorComponent/CalculatorService")
-</DIV>
+</PRE>
          <P>This finds the component and service as defined in the composite and componentType 
             side files and returns a proxy object that can call the SCA service. You can then 
             simply call a business method on "calculator", like this:
          </P>
-<DIV CLASS="sourcecode">result = calculator.add(12.3, 45.6)</DIV>
+<PRE>result = calculator.add(12.3, 45.6)</PRE>
          </P>
          <A NAME="components"><H3>Components</H3></A>
          <P>Python component implementations are standard Python scripts, where class-level 
@@ -192,15 +192,15 @@
             at path/to/module/PythonModuleName.py, where the path is relative to the location of
             the composite file:
          </P>         
-<DIV CLASS="sourcecode">&lt;implementation.python module="PythonModuleName" path="path/to/module"/&gt;
-</DIV>
+<PRE>&lt;implementation.python module="PythonModuleName" path="path/to/module"/&gt;
+</PRE>
          <P>To instantiate a class instance and use a class-level function, the Python class must 
             have a default constructor (an __init__ method that takes no arguments besides 
             'self') and the class attribute must be defined in the implementation.python element 
             in your composite, like so:
          </P>
-<DIV CLASS="sourcecode">&lt;implementation.python module="PythonModuleName" path="relative/path/to/module" class="PythonClassName"/&gt;
-</DIV>
+<PRE>&lt;implementation.python module="PythonModuleName" path="relative/path/to/module" class="PythonClassName"/&gt;
+</PRE>
          <P>Additionally, Tuscany currently requires a componentType file that corresponds to the 
             name of the Python module, e.g. for the Python Calculator sample, the module name is
             'CalculatorImpl' and the componentType file is 'CalculatorImpl.componentType'. The 
@@ -208,7 +208,7 @@
             references are called by the component. For example, CalculatorImpl.componentType
             contains the following:
          </P>
-<DIV CLASS="sourcecode">&lt;componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"&gt;
+<PRE>&lt;componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"&gt;
     &lt;service name="CalculatorService"&gt;
         &lt;interface.python/&gt;
     &lt;/service&gt;
@@ -216,44 +216,44 @@
         &lt;interface.python/&gt;
     &lt;/reference&gt;
 &lt;/componentType&gt;
-</DIV>
+</PRE>
          <A NAME="references"><H3>References</H3></A>
          <P>References are automatically added to your Python component implementation when 
             the runtime loads the implementation script, so they can be used like so:
          </P>
-<DIV CLASS="sourcecode"># The module-level div function
+<PRE># The module-level div function
 def div(val1, val2):
     # Use the divideService reference
     result = divideService.divide(val1, val2)
     return result
-</DIV>
+</PRE>
         <P>and in your composite file:
         </P>
-<DIV CLASS="sourcecode">&lt;component name="CalculatorComponent"&gt;
+<PRE>&lt;component name="CalculatorComponent"&gt;
     &lt;implementation.python module="CalculatorImpl"/&gt;
     &lt;reference name="divideService"&gt;DivideComponent/DivideService&lt;/reference&gt;
 &lt;/component&gt;
-</DIV>
+</PRE>
         <A NAME="properties"><H3>Properties</H3></A>
         <P>A composite with a property defined for a component like so:
         </P>
-<DIV CLASS="sourcecode">&lt;component name="DivideComponent"&gt;
+<PRE>&lt;component name="DivideComponent"&gt;
     &lt;implementation.python module="DivideImpl"/&gt;
     &lt;property name="doRounding"&gt;true&lt;/property&gt;
 &lt;/component&gt;
-</DIV>
+</PRE>
         <P>and in the associated .componentType file like so:
         </P>
-<DIV CLASS="sourcecode">&lt;componentType ...
+<PRE>&lt;componentType ...
 ...
     &lt;property name="doRounding" type="xsd:boolean"/&gt;
 &lt;/componentType&gt;
-</DIV>
+</PRE>
         <P>means the property is automatically instantiated and assigned the 
           property value in the Python component implementation, so it can be 
           used like so:
         </P>
-<DIV CLASS="sourcecode">def divide(val1, val2):
+<PRE>def divide(val1, val2):
     result = float(val1) / float(val2)
     print "Python - DivideImpl.divide " + str(val1) + " / " + str(val2) + " = " + str(result)
 
@@ -263,7 +263,7 @@
         print "Python - DivideImpl.divide is rounding the result to " + str(result)
 
     return result
-</DIV>
+</PRE>
 </P>
       </DIV>
               

Modified: incubator/tuscany/cpp/sca/doc/RubyExtension.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/RubyExtension.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/doc/RubyExtension.html (original)
+++ incubator/tuscany/cpp/sca/doc/RubyExtension.html Fri Oct  6 07:23:32 2006
@@ -167,15 +167,15 @@
          <A NAME="clients"><H3>Clients</H3></A>
          <P>Using the Ruby SCA extension library, a Ruby client can search for an SCA service with:
          </P>
-<DIV CLASS="sourcecode">require("libtuscany_sca_ruby")
+<PRE>require("libtuscany_sca_ruby")
 
 calculator = SCA::locateService("CalculatorComponent/CalculatorService")
-</DIV>
+</PRE>
          <P>This finds the component and service as defined in the composite and componentType 
             side files and returns a proxy object that can call the SCA service. You can then 
             simply call a business method on "calculator", like this:
          </P>
-<DIV CLASS="sourcecode">result = calculator.add(12.3, 45.6)</DIV>
+<PRE>result = calculator.add(12.3, 45.6)</PRE>
          </P>
          <A NAME="components"><H3>Components</H3></A>
          <P>Ruby component implementations are standard Ruby scripts, where class-level 
@@ -183,15 +183,15 @@
             use a Ruby component implementation, use the implementation.ruby element in 
             your .composite file. For example:
          </P>         
-<DIV CLASS="sourcecode">&lt;implementation.ruby script="CalculatorImpl.rb"/&gt;
-</DIV>
+<PRE>&lt;implementation.ruby script="CalculatorImpl.rb"/&gt;
+</PRE>
          <P>To instantiate a class instance and use a class-level function, the Ruby class must 
             have a default constructor (an initialize() method that takes no arguments) and the 
             class attribute must be definde in the implementation.ruby element 
             in your composite, like so:
          </P>
-<DIV CLASS="sourcecode">&lt;implementation.ruby script="CalculatorImpl.rb" class="CalculatorImpl"/&gt;
-</DIV>
+<PRE>&lt;implementation.ruby script="CalculatorImpl.rb" class="CalculatorImpl"/&gt;
+</PRE>
          <P>You can write a componentType file for your Ruby component, but you don't have to, the Ruby 
             extension introspects Ruby component implementation classes for you and binds public 
             attributes to references and properties.
@@ -200,7 +200,7 @@
          <P>References can be invoked from Ruby component implementations by the use of public 
             attributes in the component implementation classes, like this:
          </P>
-<DIV CLASS="sourcecode">class CalculatorImpl
+<PRE>class CalculatorImpl
 
   # Define the public attribute that corresponds to the divideService reference
   attr_writer :divideService
@@ -215,26 +215,26 @@
 
 ...
 end
-</DIV>
+</PRE>
         <P>and in your composite file:
         </P>
-<DIV CLASS="sourcecode">&lt;component name="CalculatorComponent"&gt;
+<PRE>&lt;component name="CalculatorComponent"&gt;
     &lt;implementation.ruby script="CalculatorImpl.rb"/&gt;
     &lt;reference name="divideService"&gt;DivideComponent/DivideService&lt;/reference&gt;
 &lt;/component&gt;
-</DIV>
+</PRE>
         <A NAME="properties"><H3>Properties</H3></A>
         <P>A composite with a property defined for a component like so:
         </P>
-<DIV CLASS="sourcecode">&lt;component name="DivideComponent"&gt;
+<PRE>&lt;component name="DivideComponent"&gt;
     &lt;implementation.ruby script="DivideImpl.rb" class="DivideImpl"/&gt;
     &lt;property name="round"&gt;true&lt;/property&gt;
 &lt;/component&gt;
-</DIV>
+</PRE>
         <P>allows a public attribute of a Ruby component implementation class to be
            assigned the property value, so it can be used like so:
         </P>
-<DIV CLASS="sourcecode">class DivideImpl
+<PRE>class DivideImpl
 
   # Define the public attribute that corresponds to the round property
   attr_writer :round           
@@ -253,7 +253,7 @@
     res
   end
 end
-</DIV>
+</PRE>
 </P>
       </DIV>
               

Modified: incubator/tuscany/cpp/sca/doc/css/maven-theme.css
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/css/maven-theme.css?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/doc/css/maven-theme.css (original)
+++ incubator/tuscany/cpp/sca/doc/css/maven-theme.css Fri Oct  6 07:23:32 2006
@@ -4,6 +4,8 @@
 body, td, select, input, li{
   font-family: Verdana, Helvetica, Arial, sans-serif;
   font-size: 13px;
+  padding: 4px 4px 4px 4px;
+  line-height: 1.5em;
 }
 code{
   font-family: Courier, monospace;
@@ -67,7 +69,7 @@
   font-size: normal;
 }
 p {
-  line-height: 1.3em;
+  line-height: 1.5em;
   font-size: small;
 }
 #breadcrumbs {
@@ -129,6 +131,15 @@
   font-size: 13px;
   white-space: pre;
   padding: 4px 4px 4px 6px;
+  margin: 4px 4px 4px 6px;
+}
+pre {
+  border: 1px solid #999;
+  font-family: Courier, monospace;
+  font-size: 13px;
+  white-space: pre;
+  padding: 4px 4px 4px 6px;
+  margin: 4px 4px 4px 6px;
 }
 
 

Modified: incubator/tuscany/cpp/sca/samples/BigBank/README
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/BigBank/README?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/BigBank/README (original)
+++ incubator/tuscany/cpp/sca/samples/BigBank/README Fri Oct  6 07:23:32 2006
@@ -7,15 +7,11 @@
 external Web Service via a reference, exposes the service as a Web Service 
 and also provides a PHP based client.
 
-There are five sub projects in this workspace:
+There are four sub projects in this workspace:
     - bigbank.account
       This contains the source code and SCDL artifacts for the SCA BigBank 
       composite implementing the account services.
 
-    - bigbank.accountmanagement
-      This contains the SCDL file describing the configuration of the SCA 
-      BigBank composite deployed to the SCA runtime.
-
     - bigbank.client
       A sample client which does a local call to the BigBank service.
 
@@ -26,4 +22,9 @@
       A sample PHP client which calls the BigBank Web service and then 
       deconstructs and displays the result by using the SDO for PHP extension.
 
+Additionally, there is the bigbank.accountmanagement.composite file. This      
+describes the configuration of the SCA Calculator composite deployed to the 
+SCA runtime.                                                                       
+
 See the README.html file for instructions to build and run this sample
+

Modified: incubator/tuscany/cpp/sca/samples/BigBank/README.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/BigBank/README.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/BigBank/README.html (original)
+++ incubator/tuscany/cpp/sca/samples/BigBank/README.html Fri Oct  6 07:23:32 2006
@@ -41,16 +41,12 @@
             This sample uses multiple C++ components, calls out to an external Web Service via a reference, 
             exposes the service as a Web Service and also provides a PHP based client.
          </P>
-         <P>There are five sub projects in this workspace:</P>
+         <P>There are four sub projects in this workspace:</P>
          <UL>
             <LI>bigbank.account<BR/>
                 This contains the source code and SCDL artifacts for the SCA BigBank 
                 composite implementing the account services.
             </LI>
-            <LI>bigbank.accountmanagement<BR/>
-                This contains the SCDL file describing the configuration of the SCA
-                BigBank composite deployed to the SCA runtime.
-            </LI>
             <LI>bigbank.client<BR/>
                 A sample client which does a local call to the BigBank service.
             </LI>
@@ -61,8 +57,26 @@
                 A sample PHP client which calls the BigBank Web service and then deconstructs 
                 and displays the result by using the 
                 <A HREF="http://www.osoa.org/display/PHP/SOA+PHP+Homepage">SDO for PHP extension</A>.
+                  <P>This is a pair of very simple PHP scripts to demonstrate how the Accounts service
+                     that the C++ Big Bank sample exposes can be used from within the PHP scripting 
+                     language. 
+                  </P>
+                  <P>bigwelcome.php<BR/>
+                     A bootstrap script that shows a form and allows the user to press a button
+                     in order to invoke the bigaccount.php script
+                  </P>
+                  <P>bigaccount.php<BR/>
+                     Makes a call to a locally installed BigBank Accounts service. The script 
+                     shows how to use PHP SDO and SOAP extensions to construct the call 
+                     and interpret the result. 
+                  </P>
             </LI>
          </UL>
+         <P>Additionally, there is the bigbank.accountmanagement.composite file. This     
+            describes the configuration of the SCA Calculator composite deployed to the SCA
+            runtime.                                                                       
+         </P>
+
       </DIV>
 
       <DIV CLASS="section"> 
@@ -131,7 +145,8 @@
          </OL>                                                  
          <A NAME="linuxws"><H3>BigBank with Web Service client</H3></A>
          <OL>
-             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions found here.
+             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions 
+                 found <A HREF="../../../doc/Axis2CWSService.html">here</A>.
              </LI>
              <LI>Start the Axis2C simple http server:
                 <OL>
@@ -161,7 +176,8 @@
          </OL>                                                  
         <A NAME="linuxphp"><H3>BigBank with PHP web client</H3></A>
           <OL>
-             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions found here.
+             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions 
+                 found <A HREF="../../../doc/Axis2CWSService.html">here</A>.
              </LI>
              <LI>Start the Axis2C simple http server:
                 <OL>
@@ -177,13 +193,36 @@
                    <LI>./runwsserver.sh</LI>
                 </OL>
              </LI>
-             <LI>Install the PHP web client:
-                <OL>
-                   <LI></LI>
-                </OL>
+             <LI>To run the php scripts requires some configuration and setup of a php runtime with 
+                 the SDO and SimpleXML extensions enabled. The bits you will need are:
+                 <UL>
+                   <LI><A HREF="http://httpd.apache.org/">Apache web server</A> (tested with version 2.0.55)</LI>
+                   <LI><A HREF="http://www.php.net/downloads.php">PHP 5</A> (tested with version 5.1.6)</LI>
+                   <LI><A HREF="http://pecl.php.net/package/sdo">PHP SDO</A> (tested with version 1.0.3)</LI>
+                 </UL>
+                 <P>Follow 
+                    <A HREF="http://livedocs.phpdoc.info/index.php?l=en&q=ref.sdo">these instructions</A> to
+                    install SDO and DAS.
+                 </P>
+               </LI>
+               <LI>You need to configure Apache to run PHP of course. This is well documented but this
+                   is what I put at the end of httpd.conf:
+                 <PRE># PHP5 Support
+LoadModule php5_module "/home/php/php5.1.6/php5apache2.so"
+AddType application/x-httpd-php .php
+
+# configure the path to php.ini
+PHPIniDir "/home/php/php5.1.6"</PRE>
+               </LI>
+               <LI>Copy the &lt;tuscany_sca_install_dir&gt;/samples/BigBank/bigbank.phpwsclient
+                   directory to your Apache document root directory (by default this is named 'htdocs').
+               </LI>
+               <LI>Finally, start your Apache web server.
              </LI>
              <LI>Run the PHP web client by pointing your browser at
-                <A HREF="http://localhost/BigBank/welcome.php">http://localhost/BigBank/welcome.php</A>
+                <A HREF="http://localhost/bigbank.phpwsclient/welcome.php">http://localhost/bigbank.phpwsclient/welcome.php</A>.
+                You should now be able to press the "GetAccount" button and see the values
+                returned from the BigBank SCA application.
              </LI>
 
           </OL>
@@ -234,7 +273,8 @@
          </OL>                                                  
          <A NAME="winws"><H3>BigBank with Web Service client</H3></A>
          <OL>
-             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions found here.
+             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions 
+                 found <A HREF="../../../doc/Axis2CWSService.html">here</A>.
              </LI>
              <LI>Start the Axis2C simple http server:
                 <OL>
@@ -264,7 +304,8 @@
          </OL>                                                  
         <A NAME="winphp"><H3>BigBank with PHP web client</H3></A>
           <OL>
-             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions found here.
+             <LI>Ensure you have enabled Axis2C to run Tuscany SCA services. Follow the instructions 
+                 found <A HREF="../../../doc/Axis2CWSService.html">here</A>.
              </LI>
              <LI>Start the Axis2C simple http server:
                 <OL>
@@ -280,13 +321,83 @@
                    <LI>./runwsserver.bat</LI>
                 </OL>
              </LI>
-             <LI>Install the PHP web client:
-                <OL>
-                   <LI></LI>
-                </OL>
+             <LI>To run the php scripts requires some configuration and setup of a php runtime with 
+                 the SDO and SimpleXML extensions enabled. The bits you will need are:
+                 <UL>
+                   <LI><A HREF="http://httpd.apache.org/">Apache web server</A> (tested with version 2.0.55)</LI>
+                   <LI><A HREF="http://www.php.net/downloads.php">PHP 5</A> (tested with version 5.1.6)</LI>
+                   <LI><A HREF="http://pecl.php.net/package/sdo">PHP SDO</A> (tested with version 1.0.3)</LI>
+                 </UL>
+                 <P>You can get Windows binary builds from 
+                    <A HREF="http://www.php.net/downloads.php">http://www.php.net/downloads.php</A>. 
+                    For SDO you need two dlls as follows: 
+                 </P>
+                 <UL>
+                   <LI><A HREF="http://pecl4win.php.net/ext.php/php_sdo.dll">php_sdo.dll</A></LI>
+                   <LI><A HREF="http://pecl4win.php.net/ext.php/php_sdo_das_xml.dll">php_sdo_das_xml.dll</A></LI>
+                 </UL>
+                 <P>I copied these to my php5.1.6/ext dir ( php_soap.dll is already there) and added the 
+                    following to my php.ini file (having already renamed php.ini-recommended to php.ini 
+                    of course)
+                 <PRE>extension=php_soap.dll
+extension=php_sdo.dll
+extension=php_sdo_das_xml.dll</PRE>
+                    I also changed the extension_dir directive to point to my extensions directory:
+                 <PRE>extension_dir="C:/php5.1.6/ext"</PRE>
+                 </P>
+                 <P>When I ask PHP to list what modules are active in my version of PHP I get the 
+                    following:
+                 <PRE>C:\php5.1.6>php -m
+[PHP Modules]
+bcmath
+calendar
+com_dotnet
+ctype
+date
+dom
+ftp
+hash
+iconv
+libxml
+odbc
+pcre
+Reflection
+sdo
+sdo_das_xml
+session
+SimpleXML
+soap
+SPL
+standard
+tokenizer
+wddx
+xml
+xmlreader
+xmlwriter
+zlib
+
+[Zend Modules]</PRE>
+                    Of particular relevance to these scripts note that soap, sdo and sdo_das_xml are active. 
+                 </P>
+               </LI>
+               <LI>You need to configure Apache to run PHP of course. This is well documented but this
+                   is what I put at the end of httpd.conf:
+                 <PRE># PHP5 Support
+LoadModule php5_module "C:/php5.1.6/php5apache2.dll"
+AddType application/x-httpd-php .php
+
+# configure the path to php.ini
+PHPIniDir "C:/php5.1.6"</PRE>
+               </LI>
+               <LI>Copy the &lt;tuscany_sca_install_dir&gt;/samples/BigBank/bigbank.phpwsclient
+                   directory to your Apache document root directory (by default this is named 'htdocs').
+               </LI>
+               <LI>Finally, start your Apache web server.
              </LI>
              <LI>Run the PHP web client by pointing your browser at
-                <A HREF="http://localhost/BigBank/welcome.php">http://localhost/BigBank/welcome.php</A>
+                <A HREF="http://localhost/bigbank.phpwsclient/welcome.php">http://localhost/bigbank.phpwsclient/welcome.php</A>.
+                You should now be able to press the "GetAccount" button and see the values
+                returned from the BigBank SCA application.
              </LI>
           </OL>
       </DIV>

Modified: incubator/tuscany/cpp/sca/samples/Calculator/README
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/Calculator/README?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/Calculator/README (original)
+++ incubator/tuscany/cpp/sca/samples/Calculator/README Fri Oct  6 07:23:32 2006
@@ -5,19 +5,19 @@
 two components to implement a Calculator service and expose that service as
 a Web Service.
 
-There are four sub projects in this workspace:
+There are three sub projects in this workspace:
     - sample.calculator
       This contains the source code and SCDL artifacts for the SCA Calculator.
       composite implementing the sample Calculator.
 
-    - sample.calculator.solution
-      This contains the SCDL file describing the configuration of the SCA
-      Calculator composite deployed to the SCA runtime.
-
     - sample.calculator.client
       A sample client which does a local call to the Calculator service.
 
     - sample.calculator.wsclient
       A sample Axis2 Web Service client which calls the Calculator Web service.
+
+Additionally, there is the sample.calculator.solution.composite file. This 
+describes the configuration of the SCA Calculator composite deployed to the 
+SCA runtime.
 
 See the README.html file for instructions to build and run this sample

Modified: incubator/tuscany/cpp/sca/samples/Calculator/README.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/Calculator/README.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/Calculator/README.html (original)
+++ incubator/tuscany/cpp/sca/samples/Calculator/README.html Fri Oct  6 07:23:32 2006
@@ -39,16 +39,12 @@
           together two C++ components to implement a Calculator service and expose 
           that service as a Web Service.
          </P>
-         <P>There are four sub projects in this workspace:</P>
+         <P>There are three sub projects in this workspace:</P>
          <UL>
             <LI>sample.calculator<BR/>
                 This contains the source code and SCDL artifacts for the SCA Calculator 
                 composite implementing the sample Calculator.
             </LI>
-            <LI>sample.calculator.solution<BR/>
-                This contains the SCDL file describing the configuration of the SCA
-                Calculator composite deployed to the SCA runtime.
-            </LI>
             <LI>sample.calculator.client<BR/>
                 A sample client which does a local call to the Calculator service.
             </LI>
@@ -56,6 +52,10 @@
                 A sample Axis2 Web Service client which calls the Calculator Web service.
             </LI>
          </UL>
+         <P>Additionally, there is the sample.calculator.solution.composite file. This     
+            describes the configuration of the SCA Calculator composite deployed to the SCA
+            runtime.                                                                       
+         </P>
       </DIV>
 
       <DIV CLASS="section"> 

Modified: incubator/tuscany/cpp/sca/samples/PythonCalculator/README.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/PythonCalculator/README.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/PythonCalculator/README.html (original)
+++ incubator/tuscany/cpp/sca/samples/PythonCalculator/README.html Fri Oct  6 07:23:32 2006
@@ -43,16 +43,12 @@
           documentation for information about building the Tuscany Python extension 
           and using Python in SCA composites.
          </P>
-         <P>There are four sub projects in this workspace:</P>
+         <P>There are three sub projects in this workspace:</P>
          <UL>
             <LI>sample.calculator<BR/>
                 This contains the Python scripts and SCDL artifacts for the SCA Calculator 
                 composite implementing the sample Calculator.
             </LI>
-            <LI>sample.calculator.solution<BR/>
-                This contains the SCDL file describing the configuration of the SCA
-                Calculator composite deployed to the SCA runtime.
-            </LI>
             <LI>sample.calculator.client<BR/>
                 A sample client which does a local call to the Calculator service.
             </LI>
@@ -61,6 +57,11 @@
                 that calls the Calculator Web Service.
             </LI>
          </UL>
+         <P>Additionally, there is the sample.calculator.solution.composite file. This     
+            describes the configuration of the SCA Calculator composite deployed to the SCA
+            runtime.                                                                       
+         </P>
+
       </DIV>
 
       <DIV CLASS="section"> 

Modified: incubator/tuscany/cpp/sca/samples/RubyBank/README
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyBank/README?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/RubyBank/README (original)
+++ incubator/tuscany/cpp/sca/samples/RubyBank/README Fri Oct  6 07:23:32 2006
@@ -7,16 +7,16 @@
 external Web Service via a reference, exposes the service as a Web Service 
 and also provides a PHP based client.
 
-There are three sub projects in this workspace:
+There are two sub projects in this workspace:
     - bigbank.account
       This contains the source code and SCDL artifacts for the SCA BigBank 
       composite implementing the account services.
 
-    - bigbank.accountmanagement
-      This contains the SCDL file describing the configuration of the SCA 
-      BigBank composite deployed to the SCA runtime.
-
     - bigbank.client
       A sample client which does a local call to the BigBank service.
+
+Additionally, there is the bigbank.accountmanagement.composite file. This      
+describes the configuration of the SCA Calculator composite deployed to the 
+SCA runtime.                                                                       
 
 See the README.html file for instructions to build and run this sample

Modified: incubator/tuscany/cpp/sca/samples/RubyBank/README.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyBank/README.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/RubyBank/README.html (original)
+++ incubator/tuscany/cpp/sca/samples/RubyBank/README.html Fri Oct  6 07:23:32 2006
@@ -41,20 +41,20 @@
             This sample uses multiple Ruby components, calls out to an external Web Service via a reference 
             and exposes the service as a Web Service.
          </P>
-         <P>There are three sub projects in this workspace:</P>
+         <P>There are two sub projects in this workspace:</P>
          <UL>
             <LI>bigbank.account<BR/>
                 This contains the source code and SCDL artifacts for the SCA RubyBank 
                 composite implementing the account services.
             </LI>
-            <LI>bigbank.accountmanagement<BR/>
-                This contains the SCDL file describing the configuration of the SCA
-                RubyBank composite deployed to the SCA runtime.
-            </LI>
             <LI>bigbank.client<BR/>
                 A sample client which does a local call to the RubyBank service.
             </LI>
-         </UL>
+         </UL> 
+         <P>Additionally, there is the bigbank.accountmanagement.composite file. This     
+            describes the configuration of the SCA Calculator composite deployed to the SCA
+            runtime.                                                                       
+         </P>
       </DIV>
 
       <DIV CLASS="section"> 

Modified: incubator/tuscany/cpp/sca/samples/RubyCalculator/README
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyCalculator/README?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/RubyCalculator/README (original)
+++ incubator/tuscany/cpp/sca/samples/RubyCalculator/README Fri Oct  6 07:23:32 2006
@@ -5,19 +5,19 @@
 two components to implement a Calculator service and expose that service as
 a Web Service.
 
-There are four sub projects in this workspace:
+There are three sub projects in this workspace:
     - sample.calculator
       This contains the source code and SCDL artifacts for the SCA Calculator.
       composite implementing the sample Calculator.
 
-    - sample.calculator.solution
-      This contains the SCDL file describing the configuration of the SCA
-      Calculator composite deployed to the SCA runtime.
-
     - sample.calculator.client
       A sample client which does a local call to the Calculator service.
 
     - sample.calculator.wsclient
       A sample Axis2 Web Service client which calls the Calculator Web service.
+
+Additionally, there is the sample.calculator.solution.composite file. This 
+describes the configuration of the SCA Calculator composite deployed to the 
+SCA runtime.
 
 See the README.html file for instructions to build and run this sample

Modified: incubator/tuscany/cpp/sca/samples/RubyCalculator/README.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyCalculator/README.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sca/samples/RubyCalculator/README.html (original)
+++ incubator/tuscany/cpp/sca/samples/RubyCalculator/README.html Fri Oct  6 07:23:32 2006
@@ -39,16 +39,12 @@
           together two Ruby components to implement a Calculator service and expose 
           that service as a Web Service.
          </P>
-         <P>There are four sub projects in this workspace:</P>
+         <P>There are three sub projects in this workspace:</P>
          <UL>
             <LI>sample.calculator<BR/>
                 This contains the Ruby scripts and SCDL artifacts for the SCA Calculator 
                 composite implementing the sample Calculator.
             </LI>
-            <LI>sample.calculator.solution<BR/>
-                This contains the SCDL file describing the configuration of the SCA
-                Calculator composite deployed to the SCA runtime.
-            </LI>
             <LI>sample.calculator.client<BR/>
                 A sample client which does a local call to the Calculator service.
             </LI>
@@ -57,6 +53,10 @@
                 that calls the Calculator Web Service.
             </LI>
          </UL>
+         <P>Additionally, there is the sample.calculator.solution.composite file. This     
+            describes the configuration of the SCA Calculator composite deployed to the SCA
+            runtime.                                                                       
+         </P>
       </DIV>
 
       <DIV CLASS="section"> 

Modified: incubator/tuscany/cpp/sdo/doc/BuildingSTDCXX.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/doc/BuildingSTDCXX.html?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sdo/doc/BuildingSTDCXX.html (original)
+++ incubator/tuscany/cpp/sdo/doc/BuildingSTDCXX.html Fri Oct  6 07:23:32 2006
@@ -70,12 +70,12 @@
              </LI>
              <LI>Change directory to STDCXX_HOME. Then build a debug version of the stdcxx
                  library using the following command:
-             <DIV CLASS="sourcecode">gmake BUILDDIR=$STDCXX_HOME/Debug BUILDTYPE=15d CONFIG=gcc.config</DIV>         
+             <PRE>gmake BUILDDIR=$STDCXX_HOME/Debug BUILDTYPE=15d CONFIG=gcc.config</PRE>         
                  This will create a sub-directory of STDCXX_HOME called Debug and place the
                  build products below that.
              </LI>
              <LI>For a release version the command is:
-             <DIV CLASS="sourcecode">gmake BUILDDIR=$STDCXX_HOME/Release BUILDTYPE=12d CONFIG=gcc.config</DIV>
+             <PRE>gmake BUILDDIR=$STDCXX_HOME/Release BUILDTYPE=12d CONFIG=gcc.config</PRE>
              </LI>        
          </OL>
          <P>This provides Tuscany SDO with the versions of stdcxx that it needs for both
@@ -94,29 +94,29 @@
              </LI>
              <LI>Create two directories to contain the results of building stdcxx. The first is
                 for the debug enabled version and must be:
-             <DIV CLASS="sourcecode">&lt;STDCXX_HOME&gt;\Debug</DIV>
+             <PRE>&lt;STDCXX_HOME&gt;\Debug</PRE>
              </LI>
              <LI>The second is for the release (ie optimised) version and must be
-             <DIV CLASS="sourcecode">&lt;STDCXX_HOME&gt;\Release</DIV>
+             <PRE>&lt;STDCXX_HOME&gt;\Release</PRE>
              </LI>
              <LI>Launch an MSVC++ 7.1 command window. In the command window, set the default
                 directory to &lt;STDCXX_HOME&gt; where there is a file called generate.bat. Create
                 the project definitions that MSVC++ 7.1 will need in order to build stdcxx by
                 running generate.bat using the following command:
-             <DIV CLASS="sourcecode">.\generate.bat /BUILDDIR:&lt;STDCXX_HOME&gt;\Debug /CONFIG:VC71</DIV>
+             <PRE>.\generate.bat /BUILDDIR:&lt;STDCXX_HOME&gt;\Debug /CONFIG:VC71</PRE>
                 It is necessary to provide the full, absolute path to the build directory - it
                 is not sufficient to provide a relative path. (This restriction will be fixed
                 in a future release.)
              </LI>
              <LI>Repeat this operation for the release build, via the command:
-             <DIV CLASS="sourcecode">.\generate.bat /BUILDDIR:&lt;STDCXX_HOME&gt;\Release /CONFIG:VC71</DIV>
+             <PRE>.\generate.bat /BUILDDIR:&lt;STDCXX_HOME&gt;\Release /CONFIG:VC71</PRE>
              </LI>
              <LI>Still using the MSVC++ 7.1 command window, set the default directory to one of
                 the two build directories eg
-             <DIV CLASS="sourcecode">cd &lt;STDCXX_HOME&gt;\Debug</DIV>
+             <PRE>cd &lt;STDCXX_HOME&gt;\Debug</PRE>
              </LI>
              <LI>Then launch the developer studio via
-             <DIV CLASS="sourcecode">cd &lt;STDCXX_HOME&gt;\Debug</DIV>
+             <PRE>cd &lt;STDCXX_HOME&gt;\Debug</PRE>
              </LI>
              <LI>Select the configuration to build. For the Debug version of SDO this will be
                 "15d Debug Thread-safe Dll". Then select "Build Solution". The build will take
@@ -125,7 +125,7 @@
                 itself is fine.
              </LI>
              <LI>Repeat this process for the release version, setting the default directory to
-             <DIV CLASS="sourcecode">cd &lt;STDCXX_HOME&gt;\Release</DIV>
+             <PRE>cd &lt;STDCXX_HOME&gt;\Release</PRE>
                  and choosing "12d Optimized Thread-safe Dll" as the build configuration.
              </LI>        
          </OL>

Modified: incubator/tuscany/cpp/sdo/doc/css/maven-theme.css
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/doc/css/maven-theme.css?view=diff&rev=453609&r1=453608&r2=453609
==============================================================================
--- incubator/tuscany/cpp/sdo/doc/css/maven-theme.css (original)
+++ incubator/tuscany/cpp/sdo/doc/css/maven-theme.css Fri Oct  6 07:23:32 2006
@@ -4,6 +4,8 @@
 body, td, select, input, li{
   font-family: Verdana, Helvetica, Arial, sans-serif;
   font-size: 13px;
+  padding: 4px 4px 4px 4px;
+  line-height: 1.5em;
 }
 code{
   font-family: Courier, monospace;
@@ -67,7 +69,7 @@
   font-size: normal;
 }
 p {
-  line-height: 1.3em;
+  line-height: 1.5em;
   font-size: small;
 }
 #breadcrumbs {
@@ -129,6 +131,15 @@
   font-size: 13px;
   white-space: pre;
   padding: 4px 4px 4px 6px;
+  margin: 4px 4px 4px 6px;
+}
+pre {
+  border: 1px solid #999;
+  font-family: Courier, monospace;
+  font-size: 13px;
+  white-space: pre;
+  padding: 4px 4px 4px 6px;
+  margin: 4px 4px 4px 6px;
 }
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org