View Javadoc
1   /*
2    *   Licensed to the Apache Software Foundation (ASF) under one
3    *   or more contributor license agreements.  See the NOTICE file
4    *   distributed with this work for additional information
5    *   regarding copyright ownership.  The ASF licenses this file
6    *   to you under the Apache License, Version 2.0 (the
7    *   "License"); you may not use this file except in compliance
8    *   with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *   Unless required by applicable law or agreed to in writing,
13   *   software distributed under the License is distributed on an
14   *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *   KIND, either express or implied.  See the License for the
16   *   specific language governing permissions and limitations
17   *   under the License.
18   *
19   */
20  package org.apache.directory.api.ldap.codec.protocol.mina;
21  
22  
23  import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
24  import org.osgi.framework.BundleActivator;
25  import org.osgi.framework.BundleContext;
26  import org.osgi.framework.ServiceRegistration;
27  
28  
29  /**
30   * The {@link org.osgi.framework.BundleActivator} for the codec.
31   *
32   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
33   */
34  public class LdapProtocolCodecActivator implements BundleActivator
35  {
36      private LdapProtocolCodecFactory factory;
37      private ServiceRegistration registration;
38  
39  
40      /**
41       * Create a new instance of a LdapProtocolCodecActivator 
42       */
43      public LdapProtocolCodecActivator()
44      {
45          this.factory = new LdapProtocolCodecFactory();
46      }
47  
48  
49      /**
50       * This class does nothing. It's just a nasty hack to force the bundle
51       * to get started lazy by calling this method.
52       */
53      public static void lazyStart()
54      {
55          // Does nothing
56      }
57  
58  
59      /**
60       * {@inheritDoc}
61       */
62      public void start( BundleContext bundleContext ) throws Exception
63      {
64          registration = bundleContext.registerService( LdapProtocolCodecFactory.class.getName(), factory, null );
65          LdapApiServiceFactory.getSingleton().registerProtocolCodecFactory( factory );
66      }
67  
68  
69      /**
70       * {@inheritDoc}
71       */
72      public void stop( BundleContext bundleContext ) throws Exception
73      {
74          registration.unregister();
75      }
76  }