| <!DOCTYPE html> |
| <!-- |
| | Generated by Apache Maven Doxia Site Renderer 1.9.2 at 2021-08-01 |
| | Rendered using Apache Maven Fluido Skin 1.6 |
| --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta name="Date-Revision-yyyymmdd" content="20210801" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| <title>Apache Axis2 – Axis2 Plug-in Guide for IntelliJ IDEA</title> |
| <link rel="stylesheet" href="../../css/apache-maven-fluido-1.6.min.css" /> |
| <link rel="stylesheet" href="../../css/site.css" /> |
| <link rel="stylesheet" href="../../css/print.css" media="print" /> |
| <script type="text/javascript" src="../../js/apache-maven-fluido-1.6.min.js"></script> |
| <meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="text/html; charset=us-ascii" /><meta content="text/html; charset=iso-8859-1" /><meta name="generator" content="Bluefish 1.0.6" /> </head> |
| <body class="topBarDisabled"> |
| <div class="container-fluid"> |
| <div id="banner"> |
| <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2"/></a></div> |
| <div class="pull-right"><a href="../.././" id="bannerRight"><img src="../../images/axis.jpg" /></a></div> |
| <div class="clear"><hr/></div> |
| </div> |
| |
| <div id="breadcrumbs"> |
| <ul class="breadcrumb"> |
| <li id="publishDate">Last Published: 2021-08-01<span class="divider">|</span> |
| </li> |
| <li id="projectVersion">Version: 1.8.0<span class="divider">|</span></li> |
| <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> |
| <li class=""><a href="../../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li> |
| <li class="active ">Axis2 Plug-in Guide for IntelliJ IDEA</li> |
| </ul> |
| </div> |
| <div class="row-fluid"> |
| <div id="leftColumn" class="span2"> |
| <div class="well sidebar-nav"> |
| <ul class="nav nav-list"> |
| <li class="nav-header">Axis2/Java</li> |
| <li><a href="../../index.html" title="Home"><span class="none"></span>Home</a> </li> |
| <li><a href="../../download.html" title="Downloads"><span class="none"></span>Downloads</a> </li> |
| <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a> |
| <ul class="nav nav-list"> |
| <li><a href="../../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a> </li> |
| <li><a href="../../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a> </li> |
| <li><a href="../../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a> </li> |
| <li><a href="../../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a> </li> |
| <li><a href="../../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a> </li> |
| <li><a href="../../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a> </li> |
| </ul> |
| </li> |
| <li><a href="../../modules/index.html" title="Modules"><span class="none"></span>Modules</a> </li> |
| <li><a href="../../tools/index.html" title="Tools"><span class="none"></span>Tools</a> </li> |
| <li class="nav-header">Documentation</li> |
| <li><a href="../../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a> </li> |
| <li><a href="../../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> |
| <li><a href="../../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a> </li> |
| <li><a href="../../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a> </li> |
| <li><a href="../../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a> </li> |
| <li><a href="../../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a> </li> |
| <li><a href="../../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a> </li> |
| <li><a href="../../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a> </li> |
| <li><a href="../../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a> </li> |
| <li class="nav-header">Resources</li> |
| <li><a href="../../faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> |
| <li><a href="../../articles.html" title="Articles"><span class="none"></span>Articles</a> </li> |
| <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a> </li> |
| <li><a href="../../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a> </li> |
| <li><a href="../../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a> </li> |
| <li class="nav-header">Get Involved</li> |
| <li><a href="../../overview.html" title="Overview"><span class="none"></span>Overview</a> </li> |
| <li><a href="../../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a> </li> |
| <li><a href="../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> |
| <li><a href="../../release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> |
| <li><a href="../../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a> </li> |
| <li><a href="../../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a> </li> |
| <li class="nav-header">Project Information</li> |
| <li><a href="../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> |
| <li><a href="../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> |
| <li><a href="https://github.com/apache/axis-axis2-java-core/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a> </li> |
| <li><a href="../../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a> </li> |
| <li class="nav-header">Apache</li> |
| <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a> </li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> |
| <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> |
| <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> |
| </ul> |
| <hr /> |
| <div id="poweredBy"> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /></a> |
| </div> |
| </div> |
| </div> |
| <div id="bodyColumn" class="span10" > |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| |
| |
| <h1>Axis2 Plug-in Guide for IntelliJ IDEA</h1> |
| |
| <p>This document explains the installation and usage of Axis2 |
| plug-in for IntelliJ IDEA.</p> |
| |
| <p><a href="../../download.html">[Download |
| Plug-in]</a></p> |
| <section> |
| <h2><a name="Content"></a>Content</h2> |
| |
| <ul> |
| |
| <li><a href="#intro">Introduction</a></li> |
| |
| <li><a href="#installation">Installation</a></li> |
| |
| <li><a href="#WSDL2Java_Code_Generation">WSDL2Java Code |
| Generation</a></li> |
| |
| <li><a href="#Create_Service_Archive">Create a Service Archive</a> |
| |
| <ul> |
| |
| <li><a href="#sub12">Sub Wizard 1 & Sub Wizard 2</a></li> |
| |
| <li><a href="#sub3">Sub Wizard 3</a></li> |
| </ul> |
| </li> |
| </ul> |
| <a name="intro" id="intro"></a> |
| <section> |
| <h2><a name="Introduction"></a>Introduction</h2> |
| |
| <p>The Axis2 plug-in for IntelliJ IDEA helps users to create |
| service archives which can be deployed in Axis2, and generate java |
| classes files from WSDL files. The following section describes the |
| installation procedure followed by the usage of the plug-in.</p> |
| |
| <p><b>Note:</b> This plug-in is made up with IDEA Open API which will be |
| compatible with idea version since build 4121. The plugin also be |
| compatible with all the builds after build number 4121 and 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="installation" id="installation"></a> |
| <section> |
| <h2><a name="Installation"></a>Installation</h2> |
| |
| <p>First <a href="../../download.html">download</a> the |
| plug-in which is a zipped file, and extract it into plugins |
| directory which is located in the directory where IDEA is |
| installed. If a previous version of the plug-in resides in this |
| directory you will have to delete it prior to extracting the new |
| zip file. If you have extracted the file correctly you would see a |
| directory called axis2-idea-plugin.</p> |
| |
| <p>Next step is to restart IDEA so that the changes can take place. |
| If the plug-in has been installed correctly, you will see following |
| icons in IDEA when it is restarted.</p> |
| |
| <p><img src="images/idea-icons.jpg" alt="Figure 1" /></p> |
| |
| <p>Also if you right-click on the IDEA editor you would see a link |
| to the same plug-in.</p> |
| |
| <p><img src="images/idea-popup.jpg" alt="Figure2" /></p> |
| |
| <p>When you click on either one of them, a window (Page 1) will |
| appear asking you to select one of the following two options.</p> |
| |
| <ol style="list-style-type: decimal"> |
| |
| <li><a href="#Create_Service_Archive">Create a service |
| archive</a></li> |
| |
| <li><a href="#WSDL2Java_Code_Generation">WSDL2Java code |
| generation</a></li> |
| </ol> |
| |
| <p><b>Page 1:</b></p> |
| |
| <p><img src="images/fig1.jpg" alt="Figure3" /></p> |
| |
| <p>If you want to create a service archive obviously you must |
| select "Create a service archive" option. Like wise, if u want to |
| generate java class file from a WSDL file you must select the radio |
| button option "WSDL2Java code generation".</p> |
| <section> |
| <h2><a name="WSDL2Java_Code_Generation" id="WSDL2Java_Code_Generation">WSDL2Java Code Generation</a></h2> |
| |
| <p>Select "WSDL2Java code generation" and click on the button "OK" |
| to generate code from a WSDL file. Then the following window will |
| appear.</p> |
| |
| <p><b>WSDL2Java Page 2:</b></p> |
| |
| <p><img src="images/fig2.jpg" alt="Figure4" /></p> |
| |
| <p>Once the WSDL file is selected you will be able to move onto the |
| next page. The "Browse" button can be used to easily browse for a |
| file rather than having to type the whole path.</p> |
| |
| <p>Once the WSDL file is selected, click on the "Next" button which |
| will take you to the page below.</p> |
| |
| <p><b>WSDL2Java Page 3:</b></p> |
| |
| <p>This page gives the user the option of selecting default or |
| custom code generation options. There are three default code |
| generation options in all. The first enables the user to generate |
| both client and server code under default configurations while the |
| second generates just the client side under default configurations. |
| The third option generates server side code under default |
| configurations.</p> |
| |
| <p><b>Note:</b></p> |
| |
| <ul> |
| |
| <li>When client side code is generated under default configurations |
| it generates the stub, compiles it, packages it as a jar (the name |
| of the jar will be <service name >-jar) places it in a lib |
| folder (If there is no lib folder, it is created) under the IDEA |
| project that is opened. This jar that's generated will also be |
| added as a project library to the current active IDEA project.</li> |
| |
| <li>When server code is generated under default configurations it |
| generates the server side code and also generates a default |
| service.xml. The user will then be taken to page 5.</li> |
| |
| <li>When both server and client side is generated under default |
| configurations the client stub is added are a jar to the current |
| IDEA project and the user is taken to page 5.</li> |
| </ul> |
| |
| <p><img src="images/fig19.jpg" alt="Figure5" /></p> |
| |
| <p><b>WSDL2Java Page 4:</b></p> |
| |
| <p><b>Codegen options</b> are to be selected here. By far |
| this is the most important page in this wizard, which determines |
| the characteristics of the code being generated.</p> |
| |
| <p><img src="images/fig18.jpg" alt="Figure5" /></p> |
| |
| <p><b>Here's some information on the options for |
| selection:</b></p> |
| |
| <ul> |
| |
| <li>Output language can be Java, C#. But we have not fully tested |
| C# codegeneration, therefore, it is better to select Java as output |
| language.</li> |
| |
| <li>If the WSDL comprises of several services, the user can select |
| the service for which the code should be generated for.</li> |
| |
| <li>If the WSDL comprises of several ports for a particullar |
| service, the user can select the port which the code should be |
| generated for.</li> |
| |
| <li>The default data binding type is adb (Axis2 Data Binding). |
| Although the tool is capable of providing XML beans, due to class |
| loading issues in XML beans, current implementation only generate |
| code with OM and ADB.</li> |
| |
| <li>As for the package name of the generated code, you can set the |
| name as you wish.</li> |
| |
| <li>Users can select the one out of the three options- "Generate |
| Client Side", "Generate Server Side" and "Generate All". The user |
| will be able to select further options based on his options |
| selected here. These sub options are explained below.</li> |
| |
| <li style="list-style: none; display: inline"> |
| |
| <ul> |
| |
| <li>If user selects "Generate Client Side", he can further select |
| the service invocation style. Since Axis2 supports both synchronous |
| and asynchronous client programming model, the tool has provided a |
| way to selecting the invocation style.</li> |
| |
| <li>If user selects "Generate Server Side", he can also generate a |
| default service XML file. If the user selects "Generate an |
| interface for skeleton" option then it only generates an interface |
| for the server side. If so the user has to implement this |
| interface. If this option is not selected, the skeleton class is |
| generated, which the user can fill in later on.</li> |
| |
| <li>If user selects "Generate All" option, then all the classes |
| will be generated in the referenced schemas by the WSDL |
| irrespective of elements referred by the WSDL, along with the |
| client side code.</li> |
| </ul> |
| </li> |
| |
| <li>The dafault behaviour of the code generator is to map |
| namespaces to package names logically, but if the user wishes to |
| change the package names of the generated classes, he can do so by |
| changing the values in the Namespace to Packagename mapping |
| table.</li> |
| </ul> |
| |
| <p>With these enhanced options novices need not worry about the |
| options that can be set as the default options cover the most |
| common cases. Advanced users will find it very easy to turn the |
| knobs using the custom generation option.</p> |
| |
| <p><b>WSDL2Java Page 5:</b></p> |
| |
| <p><img src="images/fig3.jpg" alt="Figure6" /></p> |
| |
| <p>Here uses have the option of adding the generated code directly |
| to their working IDEA project or choose a custom location. If the |
| user decides to add it to the current IDEA project he/she will have |
| to choose the module and the source directory that the code should |
| be generated to.</p> |
| |
| <p>Alternatively the user can browse and select the output |
| location/path (the location at which the code is to be generated) |
| using the "Browse" button. Because of the "Browse" button you do |
| not need to type in the output file path.</p> |
| |
| <p><img src="images/fig4.jpg" alt="Fig4" /></p> |
| |
| <p>Once an output location is selected you can click on "Finish" |
| button which will generate the java class file. If code generation |
| is successful then a message box will appear acknowledging this |
| fact a shown above.</p> |
| |
| <p><a name="Create_Service_Archive" id="Create_Service_Archive"></a></p> |
| <section> |
| <h2><a name="Create_a_Service_Archive"></a>Create a Service Archive</h2> |
| |
| <p>Select the "Create a service archive" radio button on Page 1 of |
| Axis2 IDEA plug-in wizard.</p> |
| |
| <p><b>Page 1:</b></p> |
| |
| <p><img src="images/fig1.jpg" alt="Fig5" /></p> |
| |
| <p><b>Service Archive Page 2:</b></p> |
| |
| <p>The page below will appear asking the user to select the archive |
| type</p> |
| |
| <p><img src="images/fig6.jpg" alt="fig6" /></p> |
| |
| <p>In Axis2, the user can deploy a single service or a service |
| group. Therefore, you can select either "Single service archive" or |
| "Service group archive" for the archive type you want to |
| create.</p> |
| |
| <p>If you already have a services.xml you can skip some of the |
| steps in the wizard by selecting the radio button option "I already |
| have services.xml" and clicking on "Next" button. If you do not |
| have the services.xml, select the radio button option "Generate |
| services.xml" and click on the "Next" button, in which case the |
| tool will create the services.xml for you.</p> |
| |
| <p>Depending on the options you selected on this page there can be |
| three sub wizards:</p> |
| |
| <ol style="list-style-type: decimal"> |
| |
| <li><a href="#sub12">Sub wizard 1</a> (Generate single service and |
| its services.xml)</li> |
| |
| <li><a href="#sub12">Sub wizard 2</a> (Generate service group and |
| its services.xml)</li> |
| |
| <li><a href="#sub3">Sub wizard 3</a> (Generate service/service |
| group using already existing services.xml)</li> |
| </ol> |
| |
| <p>1 & 2 follow the same set of steps except for some looping |
| mechanism in the middle of the wizard.</p> |
| <a name="sub12" id="sub12"></a> |
| <section> |
| <h3><a name="Sub_Wizard_1_and_Sub_Wizard_2"></a>Sub Wizard 1 and Sub Wizard 2</h3> |
| |
| <p><b>Service Archive (sub wizards 1 & 2) Page |
| 3:</b></p> |
| |
| <p>From this page you have to select the location of the service |
| classes directory (the location of the compiled classes). You do |
| not need to type path, simply browse and select.</p> |
| |
| <p><img src="images/fig7.jpg" alt="fig7" /></p> |
| |
| <p>When you click on "Next" button, wizard will move to the page |
| below</p> |
| |
| <p><b>Service Archive (sub wizards 1 & 2) Page |
| 4:</b></p> |
| |
| <p>Here you select service specific external libraries (third party |
| libraries) and service WSDL files. If you want to add multiple WSDL |
| files to a single service type you can do that as well.</p> |
| |
| <p><img src="images/fig8.jpg" alt="fig8" /></p> |
| |
| <p>To add libraries first click on the browse button to browse for |
| library files and then click on the "Add" button. Once added the |
| selected file will appear in the list box.</p> |
| |
| <p>To add WSDLs, first click on the browse button to browse for |
| WSDL file and then click the "Add" button to add the file to the |
| list.</p> |
| |
| <p>After adding external libraries and service WSDL files click on |
| the "Next" button to move to next page.</p> |
| |
| <p><b>Service Archive (sub wizards 1 & 2) Page |
| 5:</b></p> |
| |
| <p>This page allows you to select service implementation class. In |
| the case of service group, same page will be looped to select |
| multiple service implementation classes. This process is explained |
| in detail below.</p> |
| |
| <p>Select a service implementation class by browsing and clicking |
| on the "Load" button to load all the public methods in that class, |
| after which you can select the methods that you want to publish |
| using the check boxes.</p> |
| |
| <p><b>Note :</b> If you do not select the correct class |
| path from the "Class location selection" window, the public methods |
| which are available in the selected class file will not be |
| loaded.</p> |
| |
| <p><img src="images/fig10.jpg" alt="fig10" /></p> |
| |
| <p>In "Service Name" text box you can type the name of the service |
| you want, but remember that the service name should be unique |
| throughout the system.</p> |
| |
| <p>When you have completed this particular service click on the |
| button "Next". In the case of a service group when you click on the |
| "Next" button for that particular service the following dialog box |
| will appear with option to add more service(s) to a service |
| group.</p> |
| |
| <p><img src="images/fig11.jpg" alt="fig11" /></p> |
| |
| <p>If you click on "Yes", you have to follow the same procedure to |
| add some other service(s) to service group.</p> |
| |
| <p>If you click on "No", the button "Next" will be enabled and you |
| can go to next page.</p> |
| |
| <p><a name="Note" id="Note"><b><i>Note: From this point |
| onwards the steps are similar to all the sub |
| wizards.</i></b></a></p> |
| |
| <p><b>Service Archive (sub wizards 1 & 2) Page |
| 6:</b></p> |
| |
| <p>This page displays the services.xml file, either the one given |
| by you (in the case of I already have services.xml) |
| or the one generated by the system (in the case of "generate |
| services.xml")</p> |
| |
| <p><img src="images/fig12.jpg" alt="fig12" /></p> |
| |
| <p>This page is editable and provide a way to add parameters and |
| module references to any level.</p> |
| |
| <p><b>Note :</b> When you click on either the |
| "+Parameter" or the "+ModuleRef" buttons remember that |
| corresponding text will be added to the current mouse position. |
| Therefore, click on the location you want to add the parameter or |
| module references and then click relevant button (+Parameter or |
| +ModuleRef).</p> |
| |
| <p><b>+Parameter button:</b></p> |
| |
| <p>If you click on the "+Parameter" button a window will appear |
| asking to give parameter name and parameter value.</p> |
| |
| <p><img src="images/fig13.jpg" alt="fig13" /></p> |
| |
| <p>Note that you can also manually add parameters (without clicking |
| on the "+Parameter" button ) to any where in the document as you |
| wish.</p> |
| |
| <p><b>+ModuleRef button:</b></p> |
| |
| <p>Likewise, adding module references can be done by clicking on |
| the "+ModuleRef" button in the page. You have to type the name of |
| the module to be engaged as shown in the following figure.</p> |
| |
| <p><img src="images/fig14.jpg" alt="fig14" /></p> |
| |
| <p>When you complete this page press the "Next" button to go to |
| final page.</p> |
| |
| <p><b>Service Archive (sub wizards 1 & 2) Page |
| 7:</b></p> |
| |
| <p><img src="images/fig15.jpg" alt="fig15" /></p> |
| |
| <p>Next step is to select output file location, the location in |
| which archive file should be created.</p> |
| |
| <p>In the "Archive Name" text box, type the name of the archive |
| file you want to place. This name will finally become the service |
| group name.</p> |
| |
| <p><b>Note :</b> Do not include file extension when you |
| type archive name. System will generate that for you.</p> |
| |
| <p>When you are done, click the "Finish" button. If everything has |
| been done successfully you will see following message.</p> |
| |
| <p><img src="images/fig16.jpg" alt="fig16" /></p> |
| |
| <p><b><i>Note: Pages 6 & 7 of sub wizards 1 & 2 are |
| common to sub wizard 3 from its page 3 onwards.</i></b></p> |
| <a name="sub3" id="sub3"></a> |
| </section><section> |
| <h3><a name="Sub_Wizard_3"></a>Sub Wizard 3</h3> |
| |
| <p>In the case where services.xml is already available, the steps |
| are as follows:</p> |
| |
| <p><b>Service Archive (sub wizard 3) Page 3:</b></p> |
| |
| <p><img src="images/fig17.jpg" alt="fig17" /></p> |
| |
| <p>This page allows you to select both location of services.xml and |
| the location of service classes directory. Click on the "Select" |
| buttons and browse the file system to find required document and |
| location.</p> |
| |
| <p>Click on the "Next" button which will take you to a page which |
| allows you to add third party libraries and WSDL's in the same |
| manner as "Sub Wizard 1 & Sub Wizard 2" section's <a href="#Note">Page 6 - Edit service descriptors</a>. Note that Sub Wizard |
| 3 from this point takes the same pages as 6 to 7 of Sub Wizards 1 |
| & 2.</p> |
| </section> |
| </html> |
| </div> |
| </div> |
| </div> |
| <hr/> |
| <footer> |
| <div class="container-fluid"> |
| <div class="row-fluid"> |
| <p>Copyright ©2004–2021 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| All rights reserved.</p> |
| </div> |
| </div> |
| </footer> |
| </body> |
| </html> |