<?xml version="1.0" encoding="UTF-8"?>
<!--
   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.    
-->
<!--
  publishing this files means copying it into the ivyde website at:
    svn.apache.org/repos/asf/ant/ivy/site/ivyde/updatesite/site.xml
-->
<site pack200="true"
      digestURL="http://www.apache.org/dist/ant/ivy/ivyde/updatesite/digest.zip/"
      mirrorsURL="http://www.apache.org/ant/ivy/ivyde/updatesite/eclipse-update--xml.cgi">
   <description url="http://www.apache.org/ant/ivy/ivyde/updatesite">
      Eclipse update site for Apache IvyDE.
   </description>

   <feature url="features/org.apache.ivyde.feature_2.0.0.alpha1.jar" id="org.apache.ivyde.feature" version="2.0.0.alpha1">
      <category name="ivyde"/>
   </feature>

   <feature url="features/org.apache.ivy.feature_2.0.0.beta2.jar" id="org.apache.ivy.feature" version="2.0.0.beta2">
      <category name="ivyde"/>
   </feature>

   <category-def name="ivyde" label="Apache IvyDE Eclipse plugins"/>
</site>
