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/05 14:59:41 UTC

svn commit: r453215 - in /incubator/tuscany/cpp: sca/GettingStarted.html sca/doc/PythonExtension.html sca/doc/RubyExtension.html sdo/samples/GettingStarted.html

Author: ajborley
Date: Thu Oct  5 05:59:40 2006
New Revision: 453215

URL: http://svn.apache.org/viewvc?view=rev&rev=453215
Log:
Documentation updates - adds the Ruby and Python extension install and programming model guides

Added:
    incubator/tuscany/cpp/sca/doc/PythonExtension.html   (with props)
    incubator/tuscany/cpp/sca/doc/RubyExtension.html   (with props)
Modified:
    incubator/tuscany/cpp/sca/GettingStarted.html
    incubator/tuscany/cpp/sdo/samples/GettingStarted.html

Modified: incubator/tuscany/cpp/sca/GettingStarted.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/GettingStarted.html?view=diff&rev=453215&r1=453214&r2=453215
==============================================================================
--- incubator/tuscany/cpp/sca/GettingStarted.html (original)
+++ incubator/tuscany/cpp/sca/GettingStarted.html Thu Oct  5 05:59:40 2006
@@ -41,6 +41,7 @@
                     <LI><A HREF="#winbin">..from the binary release on Windows</A></LI>
                     <LI><A HREF="#winsrc">..from the source release on Windows</A></LI>
                 </UL></LI>
+            <LI><A HREF="#extensions">Tuscany SCA Extensions</A></LI>
             <LI><A HREF="#samples">Samples</A></LI>
             <LI><A HREF="#userguide">User Guide Documents</A></LI>
             <LI><A HREF="#help">Getting Help</A></LI>
@@ -165,6 +166,66 @@
                   or build the samples to rebuild all the projects</LI>
               <LI>Set the TUSCANY_SCACPP environment variable to point to the 'deploy' directory that was just created</LI>
           </OL>
+      </DIV>
+
+      <DIV CLASS="section"> 
+         <A NAME="extensions"><H2>Tuscany SCA Extensions</H2></A>
+         <P>Tuscany SCA is composed of two distinct areas: the core and extensions. The core provides the
+            implementation of the 
+            <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">Service 
+            Component Architecture Assembly Model specification</A>, reading composite files, loading the 
+            appropriate extensions and invoking components via references and services during runtime. The 
+            extensions provide the functionality required to call a component implementation (e.g. a C++ class 
+            compiled into a dll) or invoke a binding (e.g. make a Web Services call).
+         </P>
+         <P>The table below details the extensions that are included with TuscanySCA for C++ Milestone 
+          Release 2. All these extensions are compiled in the binary releases, but not all are compiled by default 
+          when you follow the instructions above for building SCA from a source release.
+         </P>
+         <TABLE CLASS="bodyTable"> 
+            <TBODY>
+            <TR CLASS="a">
+               <TD><STRONG>Extension</STRONG></TD>
+               <TD><STRONG>Details</STRONG></TD>
+            </TR>
+            <TR CLASS="b">
+               <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.
+               </TD>
+            </TR>
+            <TR CLASS="a">
+               <TD STYLE="vertical-align: top; white-space: nowrap;">Axis2C Web Services 
+               </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.
+               </TD>
+            </TR>
+            <TR CLASS="b">
+               <TD STYLE="vertical-align: top; white-space: nowrap;">
+                <A HREF="doc/PythonExtension.html">Python</A>
+               </TD>
+               <TD>Provides a Python SCA client API and enables Python component implementations. 
+                This extension is <STRONG>not</STRONG> built by default from a source release. 
+                See the <A HREF="doc/PythonExtension.html">Python extension documentation</A> for 
+                more details.
+               </TD>
+            </TR>
+            <TR CLASS="a">
+               <TD STYLE="vertical-align: top; white-space: nowrap;">
+                <A HREF="doc/RubyExtension.html">Ruby</A>
+               </TD>
+               <TD>Provides a Ruby SCA client API and enables Ruby component implementations. 
+                This extension is <STRONG>not</STRONG> built by default from a source release. 
+                See the <A HREF="doc/RubyExtension.html">Ruby extension documentation</A> for 
+                more details.
+               </TD>
+            </TR>
+            </TBODY>
+         </TABLE>
+         <BR> 
       </DIV>
 
       <DIV CLASS="section"> 

Added: incubator/tuscany/cpp/sca/doc/PythonExtension.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/PythonExtension.html?view=auto&rev=453215
==============================================================================
--- incubator/tuscany/cpp/sca/doc/PythonExtension.html (added)
+++ incubator/tuscany/cpp/sca/doc/PythonExtension.html Thu Oct  5 05:59:40 2006
@@ -0,0 +1,287 @@
+
+<!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++ - Python Extension</TITLE>
+</HEAD>
+
+<BODY>
+<DIV ID="bodyColumn"> 
+   <DIV ID="contentBox"> 
+      <DIV CLASS="section"> 
+         <H2>Tuscany SCA for C++ - Python Extension</H2> 
+
+         <P>The Tuscany Python extension allows Python scripts to be used as components in
+            SCA composites and as clients that can invoke SCA services.
+         </P>
+         <P>See <A HREF="../samples/PythonCalculator/README.html">PythonCalculator</A> for 
+            a sample that demonstrates the use of the Python extension.
+         </P>
+      </DIV>
+      <DIV CLASS="section"> 
+         <H2>Contents</H2> 
+         <OL>
+            <LI><A HREF="#requirements">System Requirements</A></LI>
+            <LI><A HREF="#install">Installing the Tuscany SCA Python Extension..</A>
+                <UL>
+                    <LI><A HREF="#linuxbin">..from the binary release on Linux</A></LI>
+                    <LI><A HREF="#linuxsrc">..from the source release on Linux</A></LI>
+                    <LI><A HREF="#winbin">..from the binary release on Windows</A></LI>
+                    <LI><A HREF="#winsrc">..from the source release on Windows</A></LI>
+                </UL></LI>
+            <LI><A HREF="#pm">The Tuscany Python Programming Model</A></LI>
+               <UL>
+                  <LI><A HREF="#clients">Clients</A></LI>
+                  <LI><A HREF="#components">SCA Components</A></LI>
+                  <LI><A HREF="#references">Component references</A></LI>
+                  <LI><A HREF="#properties">Component properties</A></LI>
+               </UL>
+            <LI><A HREF="#help">Getting help</A></LI>
+         </OL>
+      </DIV>
+     <DIV CLASS="section"> 
+         <A NAME="requirements"><H2>System Requirements</H2></A>
+
+         <P>In order to install and use the Tuscany SCA Python Extension there are some
+         extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany 
+         SCA requirements</A>:</P> 
+         <TABLE CLASS="bodyTable">
+
+            <TBODY>
+            <TR CLASS="a">
+               <TD><B>Software</B></TD>
+               <TD><B>Download Link</B></TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>Python version 2.3 or higher</TD>
+
+               <TD> 
+                  <A HREF="http://www.python.org/download/"
+                     TARGET="_blank">http://www.python.org/download/</A><BR/>
+                  Please download and follow the installation instructions
+               </TD>
+            </TR>
+            </TBODY>
+         </TABLE>
+      </DIV> 
+
+      <DIV CLASS="section"> 
+         <A NAME="install"><H2>Installing the Tuscany SCA Python Extension</H2></A>
+         <A NAME="linuxbin"><H3>Getting the Tuscany SCA Python Extension working with the binary release on Linux</H3></A>
+          <OL>
+              <LI>Extract the binary tar package to a folder</LI>
+              <LI>Set the TUSCANY_SCACPP environment variable to point to the directory that was just extracted</LI>
+              <LI>Add the &lt;tuscany_sca_install_dir&gt;/lib directory to the LD_LIBRARY_PATH <!--(Linux) or DYLD_LIBRARY_PATH (MacOS X)--> environment variable</LI>
+              <LI>Add the &lt;tuscany_sca_install_dir&gt;/extensions/python/lib directory to the PYTHONPATH environment variable</LI>
+          </OL>
+         <A NAME="linuxsrc"><H3>Getting the Tuscany SCA Python Extension working with the source release on Linux</H3></A>
+          <OL>
+              <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions 
+                  <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI>
+              <LI>The following environment variables are required:                                 
+                <UL>
+                  <LI>TUSCANY_SCACPP=&lt;path to built Tuscany SCA&gt;                                      
+                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
+                  <LI>PYTHON_LIB=&lt;path to Python libraries&gt;</LI>
+                  <LI>PYTHON_INCLUDE=&lt;path to Python includes&gt;</LI>
+                  <LI>PYTHON_VERSION=&lt;name of the Python version&gt;<BR/>
+                   Note: If you are using a default installation of Python 2.3 these are usually:<BR/>
+                   PYTHON_LIB=/usr/lib<BR/>
+                   PYTHON_INCLUDE=/usr/include/python2.3<BR/>
+                   PYTHON_VERSION=python2.3<BR/></LI>
+                </UL></LI>
+              <LI>Build the Python source only with the following command sequence:
+                  <UL>
+                      <LI>cd &lt;tuscany_sca_install_dir&gt;</LI>
+                      <LI>./configure --prefix=$TUSCANY_SCACPP --enable-python --enable-cpp=no</LI>
+                      <LI>make</LI>
+                      <LI>make install</LI>
+                  </UL>
+	              NOTE: If you don't provide a --prefix configure option, it will by default install into
+                  /usr/local/tuscany/sca</LI>
+              </OL>
+           
+         <A NAME="winbin"><H3>Getting the Tuscany SCA Python Extension working with the binary release on Windows</H3></A>
+          <OL>
+              <LI>Unzip the supplied zip file to a folder</LI>
+              <LI>Set the TUSCANY_SCACPP environment variable to point to the directory that was just unzipped</LI>
+              <LI>Add the &lt;tuscany_sca_install_dir&gt;\bin directory to the PATH environment variable</LI>
+              <LI>Add the &lt;tuscany_sca_install_dir&gt;\extensions\python\bin directory to the PYTHONPATH environment variable</LI>
+          </OL>
+        <A NAME="winsrc"><H3>Getting the Tuscany SCA Python Extension working with the source release on Windows</H3></A>
+           <OL>   
+              <LI>Unzip the supplied source zip file</LI>
+              <LI>The following environment variables are required:                                 
+                <UL>
+                  <LI>TUSCANY_SCACPP=&lt;path to built Tuscany SCA&gt;                                      
+                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
+                  <LI>PYTHON_HOME=&lt;path to installed Python&gt;                                      
+                </UL></LI>
+              <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command 
+                  will call vcvars32 to set the environment. Ensure the directory containing this is on your path.
+                  This will be where you installed the compiler.</LI>
+              <LI>Build the source:
+                  <UL>
+                      <LI>cd &lt;to where you unzipped the source&gt;</LI>
+                      <LI>build</LI>                      
+                  </UL>
+	              This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/>
+                  Alternatively, open the workspace tuscany_sca.dsw in Visual Studio 6 - you can build projects individually
+                  or build the samples to rebuild all the projects</LI>
+              <LI>Set the TUSCANY_SCACPP environment variable to point to the 'deploy' directory that was just created</LI>
+          </OL>
+      </DIV>
+
+
+      <DIV CLASS="section"> 
+         <A NAME="pm"><H2>The Tuscany Python Programming Model</H2></A>
+         <P>This section will explain  
+            the Tuscany Python programming model to help you to write your own Python 
+            components and clients.
+         </P>
+         <P>The Tuscany Python component and client support comes from a Python extension 
+            package that is built in the &lt;tuscany_sca_install_dir&gt;/extensions/python/bin
+            directory on Windows and &lt;tuscany_sca_install_dir&gt;/extensions/python/lib on
+            Linux. This package must be made available to your Python environment by 
+            adding this directory to your PYTHONPATH environment variable. This makes the sca 
+            module available for use by clients and allows references and properties to be 
+            used in your Python components
+         </P>
+         <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
+
+calculator = sca.locateservice("CalculatorComponent/CalculatorService")
+</DIV>
+         <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>
+         </P>
+         <A NAME="components"><H3>Components</H3></A>
+         <P>Python component implementations are standard Python scripts, where class-level 
+            functions or module-level functions can be invoked by the Tuscany runtime. To 
+            use a Python component implementation, use the implementation.python element in 
+            your .composite file. For example, the following snippet will use the Python script
+            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>
+         <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>
+         <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 
+            componentType file specifies what services are available on the component and which
+            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;
+    &lt;service name="CalculatorService"&gt;
+        &lt;interface.python/&gt;
+    &lt;/service&gt;
+    &lt;reference name="divideService"&gt;
+        &lt;interface.python/&gt;
+    &lt;/reference&gt;
+&lt;/componentType&gt;
+</DIV>
+         <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
+def div(val1, val2):
+    # Use the divideService reference
+    result = divideService.divide(val1, val2)
+    return result
+</DIV>
+        <P>and in your composite file:
+        </P>
+<DIV CLASS="sourcecode">&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>
+        <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;
+    &lt;implementation.python module="DivideImpl"/&gt;
+    &lt;property name="doRounding"&gt;true&lt;/property&gt;
+&lt;/component&gt;
+</DIV>
+        <P>and in the associated .componentType file like so:
+        </P>
+<DIV CLASS="sourcecode">&lt;componentType ...
+...
+    &lt;property name="doRounding" type="xsd:boolean"/&gt;
+&lt;/componentType&gt;
+</DIV>
+        <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):
+    result = float(val1) / float(val2)
+    print "Python - DivideImpl.divide " + str(val1) + " / " + str(val2) + " = " + str(result)
+
+    # Use the doRounding property
+    if doRounding:
+        result = round(result)
+        print "Python - DivideImpl.divide is rounding the result to " + str(result)
+
+    return result
+</DIV>
+</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/PythonExtension.html
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: incubator/tuscany/cpp/sca/doc/RubyExtension.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/doc/RubyExtension.html?view=auto&rev=453215
==============================================================================
--- incubator/tuscany/cpp/sca/doc/RubyExtension.html (added)
+++ incubator/tuscany/cpp/sca/doc/RubyExtension.html Thu Oct  5 05:59:40 2006
@@ -0,0 +1,277 @@
+
+<!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++ - Ruby Extension</TITLE>
+</HEAD>
+
+<BODY>
+<DIV ID="bodyColumn"> 
+   <DIV ID="contentBox"> 
+      <DIV CLASS="section"> 
+         <H2>Tuscany SCA for C++ - Ruby Extension</H2> 
+
+         <P>The Tuscany Ruby extension allows Ruby scripts to be used as components in
+            SCA composites and as clients that can invoke SCA services.
+         </P>
+         <P>See <A HREF="../samples/RubyCalculator/README.html">RubyCalculator</A> and
+            <A HREF="../samples/RubyBank/README.html">RubyBank</A> for 
+            two samples that demonstrate the use of the Ruby extension.
+         </P>
+      </DIV>
+      <DIV CLASS="section"> 
+         <H2>Contents</H2> 
+         <OL>
+            <LI><A HREF="#requirements">System Requirements</A></LI>
+            <LI><A HREF="#install">Installing the Tuscany SCA Ruby Extension..</A>
+                <UL>
+                    <LI><A HREF="#linuxbin">..from the binary release on Linux</A></LI>
+                    <LI><A HREF="#linuxsrc">..from the source release on Linux</A></LI>
+                    <LI><A HREF="#winbin">..from the binary release on Windows</A></LI>
+                    <LI><A HREF="#winsrc">..from the source release on Windows</A></LI>
+                </UL></LI>
+            <LI><A HREF="#pm">The Tuscany Ruby Programming Model</A></LI>
+               <UL>
+                  <LI><A HREF="#clients">Clients</A></LI>
+                  <LI><A HREF="#components">SCA Components</A></LI>
+                  <LI><A HREF="#references">Component references</A></LI>
+                  <LI><A HREF="#properties">Component properties</A></LI>
+               </UL>
+            <LI><A HREF="#help">Getting help</A></LI>
+         </OL>
+      </DIV>
+     <DIV CLASS="section"> 
+         <A NAME="requirements"><H2>System Requirements</H2></A>
+
+         <P>In order to install and use the Tuscany SCA Ruby Extension there are some
+         extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany 
+         SCA requirements</A>:</P> 
+         <TABLE CLASS="bodyTable">
+
+            <TBODY>
+            <TR CLASS="a">
+               <TD><B>Software</B></TD>
+               <TD><B>Download Link</B></TD>
+            </TR>
+            <TR CLASS="b">
+               <TD>Ruby version 1.8.4 or higher</TD>
+
+               <TD> 
+                  <A HREF="http://www.ruby-lang.org"
+                     TARGET="_blank">http://www.ruby-lang.org</A><BR/>
+                  Please download and follow the installation instructions
+               </TD>
+            </TR>
+            </TBODY>
+         </TABLE>
+      </DIV> 
+
+      <DIV CLASS="section"> 
+         <A NAME="install"><H2>Installing the Tuscany SCA Ruby Extension</H2></A>
+         <A NAME="linuxbin"><H3>Getting the Tuscany SCA Ruby Extension working with the binary release on Linux</H3></A>
+          <OL>
+              <LI>Extract the binary tar package to a folder</LI>
+              <LI>Set the TUSCANY_SCACPP environment variable to point to the directory that was just extracted</LI>
+              <LI>Add the &lt;tuscany_sca_install_dir&gt;/lib directory to the LD_LIBRARY_PATH <!--(Linux) or DYLD_LIBRARY_PATH (MacOS X)--> environment variable</LI>
+          </OL>
+         <A NAME="linuxsrc"><H3>Getting the Tuscany SCA Ruby Extension working with the source release on Linux</H3></A>
+          <OL>
+              <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions 
+                  <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI>
+              <LI>The following environment variables are required:                                 
+                <UL>
+                  <LI>TUSCANY_SCACPP=&lt;path to built Tuscany SCA&gt;                                      
+                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
+                  <LI>RUBY_LIB=&lt;path to Ruby libraries&gt;</LI>
+                  <LI>RUBY_INCLUDE=&lt;path to Ruby includes&gt;<BR/>
+                   Note: If you are using a default installation of Ruby these are usually:<BR/>
+                   RUBY_LIB=/usr/lib<BR/>
+                   RUBY_INCLUDE=/usr/lib/ruby/1.8/i386-linux</LI>
+                </UL></LI>
+              <LI>Build the Ruby source only with the following command sequence:
+                  <UL>
+                      <LI>cd &lt;tuscany_sca_install_dir&gt;</LI>
+                      <LI>./configure --prefix=$TUSCANY_SCACPP --enable-ruby --enable-cpp=no</LI>
+                      <LI>make</LI>
+                      <LI>make install</LI>
+                  </UL>
+	              NOTE: If you don't provide a --prefix configure option, it will by default install into
+                  /usr/local/tuscany/sca</LI>
+              </OL>
+           
+         <A NAME="winbin"><H3>Getting the Tuscany SCA Ruby Extension working with the binary release on Windows</H3></A>
+          <OL>
+              <LI>Unzip the supplied zip file to a folder</LI>
+              <LI>Set the TUSCANY_SCACPP environment variable to point to the directory that was just unzipped</LI>
+              <LI>Add the &lt;tuscany_sca_install_dir&gt;\bin directory to the PATH environment variable</LI>
+          </OL>
+        <A NAME="winsrc"><H3>Getting the Tuscany SCA Ruby Extension working with the source release on Windows</H3></A>
+           <OL>   
+              <LI>Unzip the supplied source zip file</LI>
+              <LI>The following environment variables are required:                                 
+                <UL>
+                  <LI>TUSCANY_SCACPP=&lt;path to built Tuscany SCA&gt;                                      
+                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
+                  <LI>RUBY_HOME=&lt;path to installed Ruby&gt;                                      
+                </UL></LI>
+              <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command 
+                  will call vcvars32 to set the environment. Ensure the directory containing this is on your path.
+                  This will be where you installed the compiler.</LI>
+              <LI>Build the source:
+                  <UL>
+                      <LI>cd &lt;to where you unzipped the source&gt;</LI>
+                      <LI>build</LI>                      
+                  </UL>
+	              This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/>
+                  Alternatively, open the workspace tuscany_sca.dsw in Visual Studio 6 - you can build projects individually
+                  or build the samples to rebuild all the projects</LI>
+              <LI>Set the TUSCANY_SCACPP environment variable to point to the 'deploy' directory that was just created</LI>
+          </OL>
+      </DIV>
+
+
+      <DIV CLASS="section"> 
+         <A NAME="pm"><H2>The Tuscany Ruby Programming Model</H2></A>
+         <P>This section will explain the Tuscany Ruby programming model to help you to 
+            write your own Ruby components and clients.
+         </P>
+         <P>The Tuscany Ruby component and client support comes from a Ruby extension 
+            library that is built in the &lt;tuscany_sca_install_dir&gt;/extensions/ruby/bin
+            directory on Windows and &lt;tuscany_sca_install_dir&gt;/extensions/ruby/lib on
+            Linux. 
+         </P>
+         <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")
+
+calculator = SCA::locateService("CalculatorComponent/CalculatorService")
+</DIV>
+         <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>
+         </P>
+         <A NAME="components"><H3>Components</H3></A>
+         <P>Ruby component implementations are standard Ruby scripts, where class-level 
+            functions or module-level functions can be invoked by the Tuscany runtime. To 
+            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>
+         <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>
+         <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.
+         </P>
+         <A NAME="references"><H3>References</H3></A>
+         <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
+
+  # Define the public attribute that corresponds to the divideService reference
+  attr_writer :divideService
+
+...	
+
+  def div(arg1, arg2)
+    print "Ruby - CalculatorImpl.div\n"
+    # Invoke the divideService reference
+    @divideService.divide(arg1.to_f, arg2.to_f)
+  end
+
+...
+end
+</DIV>
+        <P>and in your composite file:
+        </P>
+<DIV CLASS="sourcecode">&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>
+        <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;
+    &lt;implementation.ruby script="DivideImpl.rb" class="DivideImpl"/&gt;
+    &lt;property name="round"&gt;true&lt;/property&gt;
+&lt;/component&gt;
+</DIV>
+        <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
+
+  # Define the public attribute that corresponds to the round property
+  attr_writer :round           
+
+...	
+
+  def divide(arg1, arg2)
+    print "Ruby - DivideImpl.divide ", arg1, " / ", arg2, "\n"
+    res = arg1.to_f / arg2.to_f
+    # Use the round property
+    if @round then
+      res = res.round
+      print "DivideImpl.divide rounding\n"
+    end
+    print "DivideImpl.divide ", res, "\n"
+    res
+  end
+end
+</DIV>
+</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/RubyExtension.html
------------------------------------------------------------------------------
    svn:eol-style = native

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

Modified: incubator/tuscany/cpp/sdo/samples/GettingStarted.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/samples/GettingStarted.html?view=diff&rev=453215&r1=453214&r2=453215
==============================================================================
--- incubator/tuscany/cpp/sdo/samples/GettingStarted.html (original)
+++ incubator/tuscany/cpp/sdo/samples/GettingStarted.html Thu Oct  5 05:59:40 2006
@@ -81,7 +81,7 @@
              <LI>The following environment variables are required:                                 
                 <UL>
                   <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
-                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.93&gt;</LI>
+                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.94&gt;</LI>
                 </UL></LI>
              </LI>
              <LI>Build the source with the following command sequence:
@@ -102,7 +102,7 @@
              <LI>The following environment variables are required:                                 
                 <UL>
                   <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
-                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.93&gt;</LI>
+                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.94&gt;</LI>
                 </UL></LI>
              </LI>
              <LI>Build the source with the following command sequence:
@@ -139,7 +139,7 @@
              <LI>The following environment variables are required:                                 
                 <UL>
                   <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
-                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.93&gt;</LI>
+                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.94&gt;</LI>
                 </UL></LI>
              </LI>
              <LI>You must have set up the environment for Microsoft Visual C++ tools.
@@ -161,7 +161,7 @@
              <LI>The following environment variables are required:                                 
                 <UL>
                   <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
-                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.93&gt;</LI>
+                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.94&gt;</LI>
                 </UL></LI>
              </LI>
              <LI>You must have set up the environment for Microsoft Visual C++ tools.



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