<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Apache Wink : 3 Getting Started with Apache Wink</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            Apache Wink : 3 Getting Started with Apache Wink
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Sep 23, 2009 by <font color="#0050B2">michael</font>.
				    </div>

				    <h1><a name="3GettingStartedwithApacheWink-GettingStartedwithApacheWink"></a>Getting Started with Apache Wink</h1>


<p>Apache Wink consists of a main library and an additional set of dependant libraries. The Apache Wink distribution also includes an "<b>examples</b>" folder that contains all of the "<b>example projects</b>" referred to in this developer guide.</p>

<h3><a name="3GettingStartedwithApacheWink-Thissectioncontainsthefollowing%3A"></a>This section contains the following:</h3>

<ul>
	<li><a href="#3GettingStartedwithApacheWink-ApacheWinkDistributionFiles">Apache Wink Distribution Files</a></li>
	<li><a href="#3GettingStartedwithApacheWink-CreatingaProjectusingtheApacheWink">Creating a Project using the Apache Wink</a></li>
	<li><a href="#3GettingStartedwithApacheWink-TestingtheProjectDeployment">Testing the Project Deployment</a></li>
	<li><a href="#3GettingStartedwithApacheWink-HelloWorldDetailedDescription">HelloWorld Detailed Description</a></li>
	<li><a href="#3GettingStartedwithApacheWink-HelloWorldJ2EEDeploymentDescriptorweb.xml">HelloWorld J2EE Deployment Descriptor - web.xml</a></li>
	<li><a href="#3GettingStartedwithApacheWink-HelloWorldSpringDeploymentDescriptorHelloWorldContextserver.xml">HelloWorld Spring Deployment Descriptor HelloWorldContext-server.xml</a></li>
	<li><a href="#3GettingStartedwithApacheWink-BookmarkExampleApplication">Bookmark Example Application</a></li>
	<li><a href="#3GettingStartedwithApacheWink-ApacheWinkGettingStartedSummary">Apache Wink Getting Started Summary</a></li>
</ul>


<h1><a name="3GettingStartedwithApacheWink-GettingStartedwithApacheWinkOverview"></a>Getting Started with Apache Wink Overview</h1>

<p>In order to gain an in-depth understanding of the Apache Wink SDK a series of example projects have been designed to help the developer clarify the underlying principles and usage of the Apache Wink.<br/>
The following sections provide a detailed step-by-step implementation and deployment of the HelloWorld example application using the Eclipse IDE as the default development environment.</p>

<h2><a name="3GettingStartedwithApacheWink-ApacheWinkDistributionFiles"></a>Apache Wink Distribution Files</h2>

<p>TBD</p>

<h2><a name="3GettingStartedwithApacheWink-CreatingaProjectusingtheApacheWink"></a>Creating a Project using the Apache Wink</h2>

<p>TBD</p>

<h2><a name="3GettingStartedwithApacheWink-TestingtheProjectDeployment"></a>Testing the Project Deployment</h2>

<p>TBD</p>

<h2><a name="3GettingStartedwithApacheWink-HelloWorldDetailedDescription"></a>HelloWorld Detailed Description</h2>

<p>TBD</p>

<h2><a name="3GettingStartedwithApacheWink-HelloWorldJ2EEDeploymentDescriptorweb.xml"></a>HelloWorld J2EE Deployment Descriptor - web.xml</h2>

<p>TBD</p>

<h3><a name="3GettingStartedwithApacheWink-HelloWorldSpringDeploymentDescriptorHelloWorldContextserver.xml"></a>HelloWorld Spring Deployment Descriptor HelloWorldContext-server.xml</h3>

<p>TBD</p>

<h2><a name="3GettingStartedwithApacheWink-BookmarkExampleApplication"></a>Bookmark Example Application</h2>

<p>TBD</p>


<h2><a name="3GettingStartedwithApacheWink-ApacheWinkGettingStartedSummary"></a>Apache Wink Getting Started Summary</h2>

<p>TBD</p>

				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Nov 11, 2009 06:57</font></td>
		    </tr>
	    </table>
    </body>
</html>