Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2013 Ning, Inc.
   * Copyright 2014 Groupon, Inc
   * Copyright 2014 The Billing Project, LLC
   *
   * The Billing Project 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 org.killbill.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() == .) {
                     unregisterLogReaderService(logReaderService);
                 }
             }
         }
     };
 
     @Override
     public void start(final BundleContext contextthrows Exception {
         final String filter = "(objectclass=" + LogReaderService.class.getName() + ")";
         try {
             context.addServiceListener(filter);
         } catch (final InvalidSyntaxException e) {
             .warn("Unable to register the killbill LogReaderService listener"e);
         }
 
         // If the LogReaderService was already registered, manually construct a REGISTERED ServiceEvent
         final ServiceReference[] serviceReferences = context.getServiceReferences((Stringnullfilter);
         for (int i = 0; serviceReferences != null && i < serviceReferences.lengthi++) {
             .serviceChanged(new ServiceEvent(.serviceReferences[i]));
         }
     }
 
     @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) {
         .info("Registering the killbill LogReaderService listener");
         .add(service);
         service.addLogListener();
     }
 
     private void unregisterLogReaderService(final LogReaderService logReaderService) {
         .info("Unregistering the killbill LogReaderService listener");
         logReaderService.removeLogListener();
        .remove(logReaderService);
    }
New to GrepCode? Check out our FAQ X