<?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.
-->
<site>
   <feature
   		url="features/org.apache.directory.ldapstudio.rcp.feature_0.7.1.jar"
   		id="org.apache.directory.ldapstudio.rcp.feature" version="0.7.1"
        os="linux,macosx,win32" ws="carbon,gtk,win32" arch="ppc,x86,x86_64">
      <category name="LDAP Studio RCP"/>
   </feature>
   <feature
   		url="features/org.apache.directory.ldapstudio.browser.feature_0.8.2.jar"
   		id="org.apache.directory.ldapstudio.browser.feature" version="0.8.2">
      <category name="LDAP Studio Browser"/>
   </feature>
   <feature
   		url="features/org.apache.directory.ldapstudio.schemas.feature_0.8.2.jar"
   		id="org.apache.directory.ldapstudio.schemas.feature" version="0.8.2">
      <category name="LDAP Studio Schemas Editor"/>
   </feature>
   <feature 
   		url="features/org.apache.directory.ldapstudio.apacheds.configuration.feature_0.8.1.jar" 
   		id="org.apache.directory.ldapstudio.apacheds.configuration.feature" version="0.8.1">
      <category name="LDAP Studio Apache DS"/>
   </feature>
   <category-def name="LDAP Studio RCP" label="LDAP Studio RCP">
      <description>
         The LDAP Studio RCP category contains all features related to the LDAP Studio RCP Application.
      </description>
   </category-def>
   <category-def name="LDAP Studio Browser" label="LDAP Studio Browser">
      <description>
         The LDAP Studio Browser category contains all features related to the LDAP Studio Browser.
      </description>
   </category-def>
   <category-def name="LDAP Studio Schemas Editor" label="LDAP Studio Schemas Editor">
      <description>
         The LDAP Studio Schemas category contains all features related to the LDAP Studio Schemas Editor.
      </description>
   </category-def>
   <category-def name="LDAP Studio Apache DS" label="LDAP Studio Apache DS">
      <description>
         The LDAP Studio Apache DS category contains all features related to Apache DS.
      </description>
   </category-def>
</site>
