Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2013 Ning, Inc.
   *
   * Ning 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.
  */
 
 package com.ning.billing.osgi.bundles.logger;
 
 import java.util.List;
 
 
 public class Activator implements BundleActivator {
 
     private static final Logger logger = LoggerFactory.getLogger(Activator.class);
 
     private final LogListener killbillLogListener = new KillbillLogWriter();
     private final List<LogReaderServicelogReaderServices = new LinkedList<LogReaderService>();
 
     private final ServiceListener logReaderServiceListener = new ServiceListener() {
         public void serviceChanged(final ServiceEvent event) {
             final ServiceReference serviceReference = event.getServiceReference();
             if (serviceReference == null || serviceReference.getBundle() == null) {
                 return;
             }
 
             final BundleContext bundleContext = serviceReference.getBundle().getBundleContext();
             if (bundleContext == null) {
                 return;
             }
 
             final LogReaderService logReaderService = (LogReaderServicebundleContext.getService(serviceReference);
             if (logReaderService != null) {
                 if (event.getType() == .) {
                     registerLogReaderService(logReaderService);
                 } else if (event.getType() == .) {
                     logReaderService.removeLogListener();
                     .remove(logReaderService);
                 }
             }
         }
     };
 
     @Override
     public void start(final BundleContext contextthrows Exception {
         // Get a list of all the registered LogReaderService, and add the killbill listener
         final ServiceTracker logReaderTracker = new ServiceTracker(contextLogReaderService.class.getName(), null);
         logReaderTracker.open();
         final Object[] readers = logReaderTracker.getServices();
         if (readers != null) {
             for (final Object reader : readers) {
                 final LogReaderService service = (LogReaderServicereader;
                 registerLogReaderService(service);
             }
         }
         logReaderTracker.close();
 
         // Add the ServiceListener
         final String filter = "(objectclass=" + LogReaderService.class.getName() + ")";
         try {
             context.addServiceListener(filter);
         } catch (InvalidSyntaxException e) {
             .warn("Unable to register the killbill LogReaderService listener"e);
         }
     }
 
     @Override
     public void stop(final BundleContext contextthrows Exception {
         for (final Iterator<LogReaderServiceiterator = .iterator(); iterator.hasNext(); ) {
             final LogReaderService service = iterator.next();
             service.removeLogListener();
             iterator.remove();
         }
     }
 
     private void registerLogReaderService(final LogReaderService service) {
         .add(service);
        service.addLogListener();
    }
New to GrepCode? Check out our FAQ X