<!--
  ~ 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.
  -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
<meta http-equiv="content-type" content="" />
<title>Service Archive Generator Wizard Guide for Eclipse
Plug-in</title>
<link href="../../../css/axis-docs.css" rel="stylesheet" type=
"text/css" media="all" />
</head>
<body lang="en" xml:lang="en">
<h1>Service Archive Generator Wizard Guide for Eclipse Plug-in</h1>
<p>This document will guide you through the installation and usage
of the archive generator Eclipse plug-in.</p>
<p><a href="http://ws.apache.org/axis2/tools/index.html" target=
"_blank">[Download Plugin Tool]</a></p>
<h2>Content</h2>
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#operation">Operation</a></li>
</ul>
<a name="intro" id="intro"></a>
<h2>Introduction</h2>
<p>As part of the Axis2 tool set, the service archive generator is
an important tool that allows the generation of service archives
("aar" file or a "jar" files) that can be deployed as a web
services to the Axis2.</p>
<a name="installation" id="installation"></a>
<h2>Installation</h2>
<p>One can easily <a href=
"http://ws.apache.org/axis2/tools/index.html">download</a> the
plugin</p>
<p>If one needs to build the plug-in from source, Maven2 and Ant
builds arevailabe. Please refer the readme.txt located at
module/tools on Axis2 source.</p>
<p>Once you've obtained the plug-in just unzip the content of the
plug-in archive to the Eclipse plug-in directory (if it is the
zipped-binary version) or copy the necessary folders to the Eclipse
plug-in directory and restart Eclipse.</p>
<p><strong>NOTE</strong> : This plug-in works on Eclipse version
3.1 and upwards, also the java version should be 1.4 or higher. The
provided screen shots may slightly differ with what the user would
actually see but the functionality has not been changed.</p>
<a name="operation" id="operation"></a>
<h2>Operation</h2>
<p>If the plug-in is properly installed you should see a new wizard
under the "New" section. (Use the File -&gt; New -&gt; Other or
Ctrl + N )</p>
<p align="center"><img border="0" src=
"images/ServiceWizardSelection.jpg" /></p>
<p>Selecting the wizard and pressing the "Next" button will start
the service generator wizard. Following is the first page of the
wizard.</p>
<p><strong>Page 1:</strong></p>
<p align="center"><img border="0" src=
"images/ServicePage1.jpg" /></p>
<p>Once the class file folder(which should be a folder in the
file system) is browsed and selected, the "Next" button will be
enabled and you can move to the next page. Note that you have the
option of either including all the files or the class files only of
the folder on page 1.</p>
<p><strong>Page 2:</strong></p>
<p>Page 2 of the wizard as seen below requires you to locate/browse
the WSDL file. If you do not wish to add a WSDL file to the service
archive, select skip WSDL, else you can select the location of the
WSDL file by selecting the select WSDL option.</p>
<p align="center"><img border="0" src=
"images/service_page2.jpg" /></p>
<p><strong>Page 3:</strong></p>
<p>Select the services.xml file on this wizard page by browsing or
select the option of generating service xml automatically, after
which you can click "Next" button to go to the next page. Notice
how the browsing option disables when the "Generate service xml
automatically" check box is ticked.</p>
<p align="center"><img border="0" src=
"images/service_page3.jpg" /></p>
<!--
<p>Note that The service XML file can be generated if needed. To proceed
to the service generation page, check the "generate automatically" checkbox. </p>
<p align="center"><img border="0" src="service_page3_hl.jpg"></p>

<p>If the automatic mode is not selected then the wizard
will directly jump to the library selection page. However if the automatic mode is selected the wizard will show the
following page</p>
<p align="center"><img border="0" src="service_page4_plain.JPG" width="500" height="500"></p>
<p>This is a somewhat complicated page. The service name textbox should include the name of the service that you
wish to give this service. 
For the implementation class type in the fully qualified class name and hit the load button to view the operations</p>
<p align="center"><img border="0" src="service_page4_load.JPG" ></p>
<p> The loaded operations should be displayed in a table. Once this is displayed you can filter the methods by selecting/deselecting the methods using the checkbox at each row.</p>
<p align="center"><img border="0" src="service_page4_table.JPG" width="500" height="500"></p>
<p>Further filtering can be achieved by using the "search declared methods" only checkbox</p>
<p align="center"><img border="0" src="service_page4_search_declared.JPG" ></p>
<p>Once the method selection is complete the wizard has enough information to generate a basic services.xml file. If further customization is required, there's no choice but to manually edit it!</p>

-->
<p><strong>Page 4:</strong></p>
<!--START-->
<p>The next step is to add the libraries. The library addition page
looks like this :</p>
<p align="center"><img border="0" src=
"images/service_page5.jpg" /></p>
<p>The library name (with full path) can be either typed on the
text box or browsed for using the "Browse" button.</p>
<p align="center"><img border="0" src=
"images/service_page5_browsed.jpg" /></p>
<p>Once there is a library name with full path on the text box, hit
the "Add" button to add the library to the list. Added libraries
should be displayed in the "Added libraries" list box. This way you
can add as many external libraries as you wish. See the screen
shots below.</p>
<p align="center"><img border="0" src=
"images/service_page5_hl.jpg" /></p>
<p align="center"><img border="0" src=
"images/service_page5_added.jpg" /></p>
<p>If any added library needs to be removed, highlight it or in
other words, select it from the "Added libraries" list and hit on
the "Remove" button as shown below. Click on the "Next" button to
proceed to the last page of the wizard if the user did not select
to auto generate the services.xml file. If user select to auto
generate the services.xml file then the services.xml option page
will be displayed.</p>
<p align="center"><img border="0" src=
"images/service_page5_remove.jpg" /></p>
<p><strong>Page 5:</strong></p>
<p>This page only appears if the user select to generate the
services.xml at page 3 of the wizard. If the user have selected a
services.xml then the user will be directed to the last page of the
wizard.</p>
<p>After entering the correct service name and valid fully
qualified class name, try to load the existing methods of that
class by clicking the load button.</p>
<p align="center"><img border="0" src=
"images/service_page4_load.jpg" /></p>
<p>If successfully loaded the user will be presented with a table
at the bottom of the page with the details of the loaded class. By
checking and unchecking the user can select the necessary methods
to include in the services.xml</p>
<p align="center"><img border="0" src=
"images/service_page4_table.jpg" /></p>
<p>By clicking on the search declared method only check box, the
user can remove the inherited methods from the class. Click on the
"Next" button to proceed to the last page of the wizard</p>
<p align="center"><img border="0" src=
"images/service_page4_search_declared.jpg" /></p>
<p><strong>Page 6:</strong></p>
<p>The last page of the wizard asks for the output file location
and the output archive file name. To be able to finish the wizard,
user must enter valid output file location and output file
name.</p>
<p align="center"><img border="0" src=
"images/service_page6.jpg" /></p>
<p>Once all the parameters are filled, hit the "Finish" button to
complete the wizard and generate the service archive.</p>
<p align="center"><img border="0" src=
"images/success_msg.jpg" /></p>
<p>If you see the above message, then you've successfully generated
the service archive! This service archive can be hot deployed
(deployed at run time) to the axis2</p>
<h1>Appendix</h1>
<ul>
<li>Eclipse reference - <a href="http://www.eclipse.org/" target=
"_blank">http://www.eclipse.org/</a></li>
<li>Custom Ant Tasks - <a href=
"http://ant.apache.org/manual/develop.html" target=
"_blank">http://ant.apache.org/manual/develop.html</a></li>
</ul>
</body>
</html>
