Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * 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.killbill.osgi.libs.killbill;
public class KillbillServiceListener implements ServiceListener {
    private final BundleContext context;
    public static KillbillServiceListener listenForService(final BundleContext contextfinal String serviceClassfinal KillbillServiceListenerCallback listenerCallbackthrows InvalidSyntaxException {
        final String filter = "(objectclass=" + serviceClass + ")";
        final KillbillServiceListener killbillServiceListener = new KillbillServiceListener(contextlistenerCallback);
        context.addServiceListener(killbillServiceListenerfilter);
        // If the service was already registered, manually construct a REGISTERED ServiceEvent
        final ServiceReference[] serviceReferences = context.getServiceReferences((Stringnullfilter);
        for (int i = 0; serviceReferences != null && i < serviceReferences.lengthi++) {
            killbillServiceListener.serviceChanged(new ServiceEvent(.serviceReferences[i]));
        }
        return killbillServiceListener;
    }
    public KillbillServiceListener(final BundleContext contextfinal KillbillServiceListenerCallback killbillServiceListenerCallback) {
        this. = context;
        this. = killbillServiceListenerCallback;
    }
    @Override
    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 Object service = bundleContext.getService(serviceReference);
        if (service != null) {
            if (event.getType() == .) {
                .isRegistered();
            } else if (event.getType() == .) {
            }
        }
    }
New to GrepCode? Check out our FAQ X