<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<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("doc/css/maven-base.css");
@import url("doc/css/maven-theme.css");
   </STYLE> 

    <LINK HREF="doc/css/maven-theme.css" MEDIA="print" REL="stylesheet"
         TYPE="text/css">
   <TITLE>Tuscany - Getting Started</TITLE>
</HEAD>

<BODY>
<DIV ID="bodyColumn"> 
   <DIV ID="contentBox"> 
      <DIV CLASS="section"> 
         <H2>Tuscany - Getting Started - SCA C++ Milestone release 1</H2> 

         <P>Tuscany SCA C++ provides a runtime implementation for the Service Component
         Architecture 0.9 specification, written in C++ and currently supports C++
         component implementation types. This page describes what is needed to install and run Tuscany
         SCA for C++.<BR/>If you haven't already done so, the first
         step is to download the SCA C++ Milestone release 1 of Apache Tuscany from our
         <A HREF="http://incubator.apache.org/tuscany/download.html" target='_blank'>download page</A>.<BR/>
         </P>
      </DIV>

      <DIV CLASS="section"> 
         <H2>Contents</H2> 
         <OL>
            <LI><A HREF="#requirements">System Requirements</A></LI>
            <LI><A HREF="#install">Installing Tuscany SCA..</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="#samples">Samples</A></LI>
            <LI><A HREF="#userguide">User Guide Documents</A></LI>
            <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 run Tuscany SCA there are some
         minimum requirements:</P> 
         <TABLE CLASS="bodyTable">

            <TBODY>
            <TR CLASS="a">
               <TD><B>Software</B></TD>
               <TD><B>Download Link</B></TD>
            </TR>
            <TR CLASS="b">
               <TD>Operating systems: 
                  <UL>

                     <LI>Windows XP SP2</LI> 
                     <LI>Linux</LI> 
                  </UL>
               </TD>
               <TD> 
               </TD>
            </TR>
            <TR CLASS="a">
               <TD>Axis2C Release 0.92</TD>

               <TD> 
                  <A HREF="http://ws.apache.org/axis2/c/download.cgi"
                     TARGET="_blank">http://ws.apache.org/axis2/c/download.cgi</A><BR/>
                  Please download and follow the installation instructions. Ensure you can run the Axis2C samples                  
               </TD>
            </TR>
            <TR CLASS="b">
               <TD>Tuscany SDO for C++ Milestone Release 1</TD>

               <TD> 
                  <A HREF="http://incubator.apache.org/tuscany/download.html"
                     TARGET="_blank">http://incubator.apache.org/tuscany/download.html</A><BR/>
                  Please download and follow the installation instructions
               </TD>
            </TR>
            <TR CLASS="a">
               <TD>Java SDK 1.4 or later</TD>

               <TD> 
                  <A HREF="http://java.sun.com/javase/downloads/index.jsp"
                     TARGET="_blank">http://java.sun.com/javase/downloads/index.jsp</A><BR/>
                  This is required for building and running the SCAGEN code generation tool, which is used
                  when developing Tuscany SCA C++ components
               </TD>
            </TR>
            <TR CLASS="b">
               <TD>Apache Ant 1.6 or later</TD>

               <TD> 
                  <A HREF="http://ant.apache.org"
                     TARGET="_blank">http://ant.apache.org</A><BR/>
                  This is required for building the SCAGEN code generation tool, which is used
                  when developing Tuscany SCA C++ components
               </TD>
            </TR>
            </TBODY>
         </TABLE>
      </DIV> 
      <DIV CLASS="section"> 
         <A NAME="install"><H2>Installing Tuscany SCA for C++</H2></A>
         <A NAME="linuxbin"><H3>Getting Tuscany SCA for C++ 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 *install_dir*/lib directory to the LD_LIBRARY_PATH environment variable</LI>
          </OL>
         <A NAME="linuxsrc"><H3>Getting Tuscany SCA for C++ working with the source release on Linux</H3></A>
          <OL>
              <LI>Extract the source tar package to a folder &lt;tuscany_sca&gt;</LI>
              <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.92&gt;</LI>
                </UL></LI>
              <LI>Build the source with the following command sequence:
                  <UL>
                      <LI>./configure</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 Tuscany SCA for C++ 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 *install_dir*\bin directory to the PATH environment variable</LI>
          </OL>
        <A NAME="winsrc"><H3>Getting Tuscany SCA for C++ 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_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
                  <LI>AXIS2C_HOME=&lt;path to axis2c version 0.92&gt;</LI>
                </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="samples"><H2>Samples</H2></A>
         <TABLE CLASS="bodyTable"> 
            <TBODY>
            <TR CLASS="a">
               <TD STYLE="vertical-align: top; white-space: nowrap;">SCA Technology samples 
               </TD>
               <TD>Simple samples that emphasize how to to use
                  Service Component Architecture technology. Follow the 
                  instructions on the samples <A HREF="samples/GettingStarted.html">Getting Started</A> 
                  page to build and run the Tuscany SCA samples 
               </TD>
            </TR>
            </TBODY>
         </TABLE>
         <BR> 
      </DIV>
     <DIV CLASS="section"> 
         <A NAME="userguide"><H2>User Guide Documents</H2></A>
         <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>
               <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>
               <TD>A document that describes how to expose a Tuscany SCA C++ component as a Web Service via an SCA Web Service Entrypoint.
               </TD>
            </TR>
            </TBODY>
         </TABLE>
         <BR> 
      </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>
         

         <P>&nbsp;</P> 

         <P>&nbsp;</P> 

         <P>&nbsp;</P> 
         <TABLE CLASS="bodyTable">
            <TBODY>
            <TR CLASS="a">
               <TD> 

                  <P>Thank you for your interest in Tuscany.</P> <STRONG><EM>-The
                  Tuscany Development Team</EM></STRONG> 

                  <P></P>

               </TD>
            </TR>
            </TBODY>
         </TABLE>

         <P></P>
      </DIV>
   </DIV>
</DIV>
</BODY>

</HTML>
