<!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 SDO C++ Samples - Getting Started</TITLE>
</HEAD>

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

         <P>Tuscany SDO C++ includes some simple technology samples that demonstrate some of the basic sceanrios for C++ SDO. 
            This page describes the samples and what is needed to install and run them.
         </P>
         <P>The ObjectCreation sample demonstrates building the metadata programmatically, followed by use 
            of the metadata to instantiate objects in a graph.
         </P>
         <P>The XSDLoading sample shows how to load metadata from an XSD, and how to check for errors during 
            parsing. The parser gathers all non-fatal errors into one list, so all errors can be checked at one
            time after parsing. Elements which contained errors will have been omitted from the resulting metadata.
         </P>
         <P>The ChangeSummarySave sample modifies a data graph of employees, and saves the modified graph with
            its change summary. The output in ChangeSummarySave-output.xml shows the summary and its relationship 
            by references to the data graph.
         </P>
         <P>The Substitutes sample shows how to use substitites in XSD  to achieve a property which will accept a 
            range of types.
         </P>
         <P>The Query sample shows how to use XPath to navigate within a graph to the required element. Note 
            that exceptions such as "path not found" may well be thrown if the XPath specified does not lead to
            a real object in the graph.
         </P>
         <P>The SDO samples are built together into a single executable called sdo_misc.exe on Windows and sdo_misc on Linux
         </P>
      </DIV>

      <DIV CLASS="section"> 
         <H2>Contents</H2> 
         <OL>
            <LI><A HREF="#linuxbld">Building the samples on Linux</A></LI>
            <LI><A HREF="#linuxrun">Running the samples on Linux</A></LI>
            <LI><A HREF="#winbld">Building the samples on Windows</A></LI>
            <LI><A HREF="#winrun">Running the samples on Windows</A></LI>
         </OL>
      </DIV>


       <DIV CLASS="section"> 
         <A NAME="linuxbld"><H2>Building the samples on Linux</H2></A>
         <P>If using the binary distribution the samples are built and installed in
            &lt;tuscany_sdo_install_dir&gt;/samples - go directly to <A HREF="#linuxrun">Running the samples on Linux</A>.</P>
         <OL>
             <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>
             <LI>Build the source with the following command sequence:
                  <UL>
                      <LI>cd &lt;tuscany_sdo_install_dir&gt;/samples</LI>
                      <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/sdo/samples/misc</LI>
         </OL>                                                  
        </DIV>

       <DIV CLASS="section"> 
         <A NAME="linuxrun"><H2>Running the samples on Linux</H2></A>
         <OL>
             <LI>Ensure that &lt;tuscany_sdo_install_dir&gt;/lib is included in the LD_LIBRARY_PATH environment variable
             </LI>
             <LI>Run the sample with the following commands:
                <UL>
                   <LI>cd &lt;tuscany_sdo_install_dir&gt;/samples/misc/deploy</LI>
                   <LI>./bin/sdo_misc</LI>
                </UL>
             </LI>
         </OL>                                                  
        </DIV>

        <DIV CLASS="section">
         <A NAME="winbld"><H2>Building the samples on Windows</H2></A>
         <P>If using the binary distribution the samples are built and installed in
            &lt;tuscany_sdo_install_dir&gt;/samples - go directly to <A HREF="#winrun">Running the samples on Windows</A>.</P>
         <OL>
             <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>
             <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, either via the Visual Studio 6 project under 
                 &lt;tuscany_sdo_install_dir&gt;\samples\ides or via the command-line build file
                 found at &lt;tuscany_sdo_install_dir&gt;\samples\ides\devstudio6\projects\misc\build.cmd
                 which will build and deploy the samples.
             </LI>
         </OL>                                                  
        </DIV>

       <DIV CLASS="section"> 
         <A NAME="winrun"><H2>Running the samples on Windows</H2></A>
         <OL>
             <LI>Ensure that &lt;tuscany_sdo_install_dir&gt;\bin is included in the PATH environment variable
             </LI>
             <LI>Run the sample with the following commands:
                <UL>
                   <LI>cd &lt;tuscany_sdo_install_dir&gt;/samples/misc/deploy</LI>
                   <LI>bin\sdo_misc</LI>
                </UL>
             </LI>
         </OL>                                                  
      </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>
