/******************************************************************************* * Copyright (c) 2014 IBH SYSTEMS GmbH. * 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 * * Contributors: * IBH SYSTEMS GmbH - initial API and implementation *******************************************************************************/ package org.eclipse.packagedrone.utils.validation; import java.util.ArrayList; import java.util.List; import javax.validation.ValidationProviderResolver; import javax.validation.spi.ValidationProvider; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.util.tracker.ServiceTracker; public class OsgiValidationProviderTracker implements ValidationProviderResolver { @SuppressWarnings ( "rawtypes" ) private final ServiceTracker<ValidationProvider, ValidationProvider<?>> tracker; public OsgiValidationProviderTracker () { final BundleContext context = FrameworkUtil.getBundle ( OsgiValidationProviderTracker.class ).getBundleContext (); this.tracker = new ServiceTracker<> ( context, ValidationProvider.class, null ); } public void open () { this.tracker.open (); } public void close () { this.tracker.close (); } public int getTrackingCount () { return this.tracker.getTrackingCount (); } @Override public List<ValidationProvider<?>> getValidationProviders () { return new ArrayList<> ( this.tracker.getTracked ().values () ); } }