<?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.
-->
<?eclipse version="3.0"?>
<plugin>
  <extension
      point="org.eclipse.core.runtime.preferences">
    <initializer class="org.apache.directory.studio.ldapbrowser.core.BrowserCorePreferencesInitializer"/>
  </extension>
  
  <extension
      point="org.apache.directory.studio.connectionlistener">
    <connectionListener
      class="org.apache.directory.studio.ldapbrowser.core.BrowserConnectionListener"
      description="%ConnectionListener_BrowserConnectionListener_description"
      id="org.apache.directory.studio.ldapbrowser.core.model.impl.BrowserConnection"
      name="%ConnectionListener_BrowserConnectionListener_name">
    </connectionListener>
  </extension>
</plugin>
