<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2005, 2015 Tasktop Technologies and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html

    Contributors:
         Tasktop Technologies - initial API and implementation
 -->
<feature
      id="org.eclipse.mylyn_feature"
      label="%featureName"
      version="3.23.1.qualifier"
      provider-name="%providerName"
      plugin="org.eclipse.mylyn.tasks.core"
      license-feature="org.eclipse.license"
      license-feature-version="1.0.1">

   <description url="http://eclipse.org/mylyn">
      %description
   </description>

   <copyright>
      %copyright
   </copyright>

   <license url="%licenseURL">
      %license
   </license>

   <url>
      <discovery label="Mylyn 3.23 for Eclipse 4.5 and 4.6" url="http://download.eclipse.org/mylyn/releases/3.23"/>
   </url>

   <requires>
      <import plugin="org.eclipse.mylyn.commons.net" version="3.23.1" match="compatible"/>
      <import plugin="org.apache.commons.codec" version="1.3.0" match="compatible"/>
      <import plugin="org.apache.commons.lang" version="2.3.0" match="compatible"/>
      <import plugin="org.apache.commons.logging" version="1.0.4" match="compatible"/>
      <import plugin="org.apache.commons.httpclient" version="3.1.0" match="compatible"/>
      <import plugin="org.apache.lucene.core" version="6.0.0" match="greaterOrEqual"/>
      <import plugin="org.apache.lucene.analyzers-common" version="6.0.0" match="greaterOrEqual"/>
      <import plugin="org.apache.lucene.queryparser" version="6.0.0" match="greaterOrEqual"/>
      <import plugin="com.google.guava" version="15.0.0" match="greaterOrEqual"/>
      <import feature="org.eclipse.mylyn.discovery" version="3.23.1" match="compatible"/>
      <import feature="org.eclipse.mylyn.monitor" version="3.23.1" match="compatible"/>
      <import feature="org.eclipse.mylyn.commons" version="3.23.1" match="compatible"/>
      <import feature="org.eclipse.mylyn.commons.identity" version="1.15.0" match="compatible"/>
      <import feature="org.eclipse.mylyn.commons.repositories" version="1.15.0" match="compatible"/>
      <import feature="org.eclipse.mylyn.commons.notifications" version="1.15.0" match="compatible"/>
   </requires>

   <plugin
         id="org.eclipse.mylyn.tasks.core"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>

   <plugin
         id="org.eclipse.mylyn.tasks.index.core"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>

   <plugin
         id="org.eclipse.mylyn.tasks.index.ui"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>

   <plugin
         id="org.eclipse.mylyn.tasks.search"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>

   <plugin
         id="org.eclipse.mylyn.tasks.ui"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>

</feature>
