<?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_Codegen_Wizard"
   name="Axis2 Codegen Wizard Plug-in"
   version="@eclipse.plugins.version@"
   provider-name="Apache Software Foundation"
   class="org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin">

   <runtime>
      <library name="Axis2CodegenWizard.jar">
         <export name="*"/>
      </library>
      <library name="lib/geronimo-activation_1.1_spec-@geronimo.spec.activation.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/geronimo-stax-api_1.0_spec-@geronimo.spec.stax.version@.jar">
         <export name="*"/>
      </library>
      <library name="./lib/axiom-api-@axiom.version@.jar">
         <export name="*"/>
      </library>
      <library name="./lib/axiom-dom-@axiom.version@.jar">
         <export name="*"/>
      </library>
      <library name="./lib/axiom-impl-@axiom.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/commons-logging-@commons.logging.version@.jar">
         <export name="*"/>
      </library>
       <library name="lib/axis2-@version@.jar">
       <export name="*"/>
       </library>
       <library name="lib/log4j-@log4j.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/neethi-@neethi.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/wsdl4j-@wsdl4j.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/xmlbeans-@xmlbeans.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/XmlSchema-@xmlschema.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/woden-@woden.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/commons-httpclient-@commons.httpclient.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/commons-codec-@commons.codec.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/jibx-bind-@jibx.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/jibx-run-@jibx.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/mail-@javax.mail.version@.jar">
         <export name="*"/>
      </library>
      <library name="lib/geronimo-ws-metadata_2.0_spec-@geronimo.spec.metadata.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"/>
   </requires>

   <extension
         point="org.eclipse.ui.newWizards">
      <category
            name="Axis2 Wizards"
            id="Axis2_Wizards">
      </category>
      <wizard
            name="Axis2 Code Generator"
            icon="icons/icon.gif"
            category="Axis2_Wizards"
            class="org.apache.axis2.tool.codegen.eclipse.CodeGenWizard"
            id="org.apache.axis2.tool.codegen.eclipse.CodeGenWizard">
      </wizard>
   </extension>
    <extension point="org.eclipse.help.toc">
    <toc file="help_toc.xml" primary="true" />
</extension>

</plugin>
