/* * Copyright (c) 2016, Alex Blewitt, Bandlem Ltd * Copyright (c) 2016, Packt Publishing Ltd * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package com.packtpub.e4.timezones; import java.util.function.Consumer; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.util.tracker.ServiceTracker; public class TimeZonesFactory { private static final Bundle bundle = FrameworkUtil.getBundle(TimeZonesService.class); private static final BundleContext context = bundle == null ? null : bundle.getBundleContext(); private static final ServiceTracker<TimeZonesService, TimeZonesService> tracker = context == null ? null : new ServiceTracker<>(context, TimeZonesService.class, null); static { if (tracker != null) { tracker.open(); // Remember to call this! } } public static void use(Consumer<TimeZonesService> consumer) { if (tracker != null) { consumer.accept(tracker.getService()); } } }