<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

<!--
  ~ 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.
  -->

<plugin
   id="Axis2_Service_Archiver"
   name="Axis2 Service Maker"
   version="@eclipse.plugins.version@"
   provider-name="Apache Software Foundation"
   class="org.apache.axis2.tool.service.eclipse.plugin.ServiceArchiver">

   <runtime>
      <library name="Axis_Service_Archiver.jar">
         <export name="*"/>
      </library>
       <library name="lib/axis2-@version@.jar">
           <export name="*"/>
       </library>
       <library name="lib/commons-logging-@commons.logging.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/log4j-@log4j.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/ant-@ant.version@.jar">
         <export name="*"/>
      </library>
   </runtime>

   <requires>
      <import plugin="org.eclipse.ui"/>
      <import plugin="org.eclipse.ui.ide"/>
      <import plugin="org.eclipse.core.runtime"/>
      <import plugin="org.eclipse.core.resources"/>
      <import plugin="org.apache.ant"/>
      <import plugin="org.eclipse.jface.text"/>
   </requires>

<extension
         point="org.eclipse.ui.newWizards">
      <category
            name="Axis2 Wizards"
            id="Axis2_Wizards">
      </category>
      <wizard
            name="Axis2 Service Archiver"
            icon="icons/sample.gif"
            category="Axis2_Wizards"
            class="org.apache.axis2.tool.service.eclipse.ui.ServiceArchiveWizard"
            id="org.apache.axis2.tool.service.serviceWizard">
      </wizard>
   </extension>
   <extension point="org.eclipse.help.toc">
    <toc file="help_toc.xml" primary="true" />
</extension>
</plugin>
