
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you 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("../../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 SCA Native Samples - PythonWeatherForecast Sample</TITLE>
</HEAD>

<BODY>
<DIV ID="bodyColumn"> 
   <DIV ID="contentBox"> 
      <DIV CLASS="section"> 
         <H1>Tuscany SCA Native Samples - PythonWeatherForecast Sample</H1> 

         <P>This is a very simple sample to show how an SCA composite can wire 
          together two components to implement calls to a Weather Forecast web service. 
         </P>
         <P>The PythonWeatherForecast sample requires the following extensions:
            <UL>
               <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Service Reference Extension</A></LI>
               <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI>
            </UL>
            Please follow the documentation to ensure you have these extensions built and installed
            on your system
         </P>
         <P>There are two sub projects in this workspace:</P>
         <UL>
            <LI>sample.weather<BR/>
                This contains the source code and SCDL artifacts for the SCA Weather
                composite implementing the calls to the Weather web services.
            </LI>
            <LI>sample.weather.client<BR/>
                A sample client which does a local call to the SCA Weather service.
            </LI>
         </UL>
         <P>Additionally, there is the sample.weather.app.composite file. This     
            describes the configuration of the SCA Weather composite deployed to the SCA
            runtime.                                                                       
         </P>

      </DIV>

      <DIV CLASS="section"> 
         <H2>Contents</H2> 
         <OL>
            <LI><A HREF="#linuxbld">Building the PythonWeatherForecast sample on Linux and Mac OS X</A></LI>
            <LI><A HREF="#linuxrun">Running the PythonWeatherForecast sample on Linux and Mac OS X</A></LI>
            <LI><A HREF="#winbld">Building the PythonWeatherForecast sample on Windows</A></LI>
            <LI><A HREF="#winrun">Running the PythonWeatherForecast sample on Windows</A></LI>
            <LI><A HREF="#help">Getting help</A></LI>
         </OL>
      </DIV>


       <DIV CLASS="section"> 
         <A NAME="linuxbld"><H2>Building the PythonWeatherForecast sample on Linux and Mac OS X</H2></A>
         <P>If using the binary distribution the samples are built and installed in
            &lt;tuscany_sca_install_dir&gt;/samples - go directly to <A HREF="#linuxrun">Running the samples on Linux and Mac OS X</A>.</P>
         <OL>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>
                </UL>
             </LI>
             <LI>As the PythonWeatherForecast sample is based on Python scripts, a specific compilation step is not necessary - 
                 only deployment is required. Deploy the Python samples only with the following command sequence:
                  <UL>
                      <LI>cd &lt;tuscany_sca_install_dir&gt;/samples</LI>
                      <LI>./configure --enable-python --enable-cpp=no --prefix=$TUSCANY_SCACPP/samples</LI>
                      <LI>make install</LI>
                  </UL>
	              NOTE: If you don't provide the --prefix configure option, it will by default install into
                  /usr/local/tuscany/sca/samples/PythonWeatherForecast</LI>
         </OL>                                                  
        </DIV>

       <DIV CLASS="section"> 
         <A NAME="linuxrun"><H2>Running the PythonWeatherForecast sample on Linux and Mac OS X</H2></A>
         <OL>
             <LI>The PythonWeatherForecast sample requires the following extensions:
                <UL>
                   <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Service Reference Extension</A></LI>
                   <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI>
                </UL>
                Please follow the documentation to ensure you have these extensions built and installed
                on your system
             </LI>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>                                      
                  <LI>AXIS2C_HOME=&lt;path to Axis2/C version 0.96&gt;</LI>
                  <LI>PYTHON_LIB=&lt;path to the Python library&gt;<BR/>
                      Note: If you are using a default installation of Python 2.5 this is usually /usr/lib</LI>
                </UL>
             </LI>
             <LI>Run the sample with the following commands:
                <UL>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;/samples/PythonWeatherForecast/deploy/sample.weather.client</LI>
                   <LI>./runclient.sh</LI>
                </UL>
             </LI>
         </OL>                                                  
        </DIV>

        <DIV CLASS="section">
         <A NAME="winbld"><H2>Building the PythonWeatherForecast sample on Windows</H2></A>
         <P>If using the binary distribution the samples are built and installed in
            &lt;tuscany_sca_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_SCACPP=&lt;path to installed Tuscany SCA&gt;                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
                </UL></LI>
             </LI>
             <LI>As this sample is based on Python scripts, a specific compilation step is not necessary - 
                 only deployment is required. Deploy the sample with the following commands:
                 <UL>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;\samples\PythonWeatherForecast</LI>
                   <LI>deploy.bat</LI>
                </UL>
             </LI>
         </OL>                                                  
        </DIV>

       <DIV CLASS="section"> 
         <A NAME="winrun"><H2>Running the PythonWeatherForecast sample on Windows</H2></A>
         <OL>
             <LI>The PythonWeatherForecast sample requires the following extensions:
                <UL>
                   <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Service Reference Extension</A></LI>
                   <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI>
                </UL>
                Please follow the documentation to ensure you have these extensions built and installed
                on your system
             </LI>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>                                      
                  <LI>AXIS2C_HOME=&lt;path to Axis2/C version 0.96&gt;</LI>
                </UL>
             </LI>
             <LI>Run the sample with the following commands:
                <UL>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;\samples\PythonWeatherForecast\deploy\sample.weather.client</LI>
                   <LI>runclient.bat</LI>
                </UL>
             </LI>
         </OL>                                                  
      </DIV>
               
      <DIV CLASS="section"> 
         <A NAME="help"><H2>Getting Help</H2></A>

         <P>The first place to look is at the Tuscany SCA FAQ at 
         <A HREF="http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ"
            TARGET="_blank">http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ</A> </P>

         <P>Any problem with this release can be reported to the Tuscany 
         <A HREF="http://cwiki.apache.org/TUSCANY/mailing-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>

