*/
package org.opendaylight.controller.blueprint.ext;
-import com.google.common.collect.ImmutableList;
import com.google.common.io.Resources;
import java.io.IOException;
import java.net.URL;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentSkipListSet;
import org.osgi.framework.Bundle;
private volatile BundleTracker<Bundle> bundleTracker;
private volatile ServiceTracker<Object, Object> serviceTracker;
- SpecificReferenceListMetadata(String id, String interfaceName) {
+ SpecificReferenceListMetadata(final String id, final String interfaceName) {
super(id);
this.interfaceName = interfaceName;
serviceResourcePath = "META-INF/services/" + interfaceName;
@Override
protected void startTracking() {
- BundleTrackerCustomizer<Bundle> bundleListener = new BundleTrackerCustomizer<Bundle>() {
+ BundleTrackerCustomizer<Bundle> bundleListener = new BundleTrackerCustomizer<>() {
@Override
- public Bundle addingBundle(Bundle bundle, BundleEvent event) {
+ public Bundle addingBundle(final Bundle bundle, final BundleEvent event) {
bundleAdded(bundle);
return bundle;
}
@Override
- public void modifiedBundle(Bundle bundle, BundleEvent event, Bundle object) {
+ public void modifiedBundle(final Bundle bundle, final BundleEvent event, final Bundle object) {
}
@Override
- public void removedBundle(Bundle bundle, BundleEvent event, Bundle object) {
+ public void removedBundle(final Bundle bundle, final BundleEvent event, final Bundle object) {
}
};
return;
}
- ServiceTrackerCustomizer<Object, Object> serviceListener = new ServiceTrackerCustomizer<Object, Object>() {
+ ServiceTrackerCustomizer<Object, Object> serviceListener = new ServiceTrackerCustomizer<>() {
@Override
- public Object addingService(ServiceReference<Object> reference) {
+ public Object addingService(final ServiceReference<Object> reference) {
return serviceAdded(reference);
}
@Override
- public void modifiedService(ServiceReference<Object> reference, Object service) {
+ public void modifiedService(final ServiceReference<Object> reference, final Object service) {
}
@Override
- public void removedService(ServiceReference<Object> reference, Object service) {
+ public void removedService(final ServiceReference<Object> reference, final Object service) {
container().getBundleContext().ungetService(reference);
}
};
- setDependendencyDesc(interfaceName + " services with types " + expectedServiceTypes);
+ setDependencyDesc(interfaceName + " services with types " + expectedServiceTypes);
serviceTracker = new ServiceTracker<>(container().getBundleContext(), interfaceName, serviceListener);
serviceTracker.open();
}
- private void bundleAdded(Bundle bundle) {
+ private void bundleAdded(final Bundle bundle) {
URL resource = bundle.getEntry(serviceResourcePath);
if (resource == null) {
return;
LOG.debug("{}: Retrieved service type {}", logName(), serviceType);
expectedServiceTypes.add(serviceType);
}
- } catch (IOException e) {
+ } catch (final IOException e) {
setFailure(String.format("%s: Error reading resource %s from bundle %s", logName(), resource,
bundle.getSymbolicName()), e);
}
}
- private Object serviceAdded(ServiceReference<Object> reference) {
+ private Object serviceAdded(final ServiceReference<Object> reference) {
Object service = container().getBundleContext().getService(reference);
- Object serviceType = reference.getProperty(OpendaylightNamespaceHandler.TYPE_ATTR);
+ String serviceType = (String) reference.getProperty(OpendaylightNamespaceHandler.TYPE_ATTR);
LOG.debug("{}: Service type {} added from bundle {}", logName(), serviceType,
reference.getBundle().getSymbolicName());
if (isSatisfied()) {
restartContainer();
} else {
- retrievedServiceTypes.add(serviceType.toString());
+ retrievedServiceTypes.add(serviceType);
retrievedServices.add(service);
if (retrievedServiceTypes.equals(expectedServiceTypes)) {
} else {
Set<String> remaining = new HashSet<>(expectedServiceTypes);
remaining.removeAll(retrievedServiceTypes);
- setDependendencyDesc(interfaceName + " services with types " + remaining);
+ setDependencyDesc(interfaceName + " services with types " + remaining);
}
}
LOG.debug("{}: create returning service list {}", logName(), retrievedServices);
synchronized (retrievedServices) {
- return ImmutableList.copyOf(retrievedServices);
+ return List.copyOf(retrievedServices);
}
}
@Override
- public void destroy(Object instance) {
+ public void destroy(final Object instance) {
super.destroy(instance);
if (bundleTracker != null) {
@Override
public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpecificReferenceListMetadata [interfaceName=").append(interfaceName)
- .append(", serviceResourcePath=").append(serviceResourcePath).append("]");
- return builder.toString();
+ return new StringBuilder()
+ .append("SpecificReferenceListMetadata [interfaceName=").append(interfaceName)
+ .append(", serviceResourcePath=").append(serviceResourcePath).append("]")
+ .toString();
}
}