<?xml version="1.0" encoding="UTF-8"?>
<feature
      id="org.apache.hdt.feature"
      label="Hadoop Development Tools"
      version="0.0.2.incubating"
      provider-name="Apache Software Foundation">

   <description url="http://hdt.incubator.apache.org/">
      The Apache Hadoop Development Tools extend Eclipse to add support for developing against the Apache Hadoop platform.
   </description>
   
   <copyright url="http://www.apache.org/licenses/LICENSE-2.0">

Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
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 &quot;AS IS&quot; 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.
   </copyright>

   <license url="http://www.apache.org/licenses/LICENSE-2.0">
Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
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 &quot;AS IS&quot; 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.
   </license>
   
   <plugin
         id="org.apache.hdt.hadoop.release"
         download-size="0"
         install-size="0"
         version="0.0.2.incubating"
         fragment="true"
         unpack="false"/>

   <plugin
         id="org.apache.hdt.hadoop2.release"
         download-size="0"
         install-size="0"
         version="0.0.2.incubating"
         fragment="true"
         unpack="false"/>

   <plugin
         id="org.apache.hdt.ui"
         download-size="0"
         install-size="0"
         version="0.0.2.incubating"
         unpack="false"/>
         
   <plugin
         id="org.apache.hdt.core"
         download-size="0"
         install-size="0"
         version="0.0.2.incubating"
         unpack="false"/>

</feature>
