private ListenerRegistry<SchemaServiceListener> listeners;
private BundleContext context;
- private BundleScanner scanner = new BundleScanner();
+ private final BundleScanner scanner = new BundleScanner();
private BundleTracker<ImmutableSet<Registration<URL>>> bundleTracker;
return listeners;
}
- public void setListeners(ListenerRegistry<SchemaServiceListener> listeners) {
+ public void setListeners(final ListenerRegistry<SchemaServiceListener> listeners) {
this.listeners = listeners;
}
return context;
}
- public void setContext(BundleContext context) {
+ public void setContext(final BundleContext context) {
this.context = context;
}
return getGlobalContext();
}
+ @Override
public SchemaContext getGlobalContext() {
return contextResolver.getSchemaContext().orNull();
}
@Override
- public void addModule(Module module) {
+ public void addModule(final Module module) {
throw new UnsupportedOperationException();
}
}
@Override
- public void removeModule(Module module) {
+ public void removeModule(final Module module) {
throw new UnsupportedOperationException();
}
@Override
- public ListenerRegistration<SchemaServiceListener> registerSchemaServiceListener(SchemaServiceListener listener) {
+ public ListenerRegistration<SchemaServiceListener> registerSchemaServiceListener(final SchemaServiceListener listener) {
+ Optional<SchemaContext> potentialCtx = contextResolver.getSchemaContext();
+ if(potentialCtx.isPresent()) {
+ listener.onGlobalContextUpdated(potentialCtx.get());
+ }
return listeners.register(listener);
}
}
- private void updateContext(SchemaContext snapshot) {
+ private void updateContext(final SchemaContext snapshot) {
Object[] services = listenerTracker.getServices();
if (services != null) {
for (Object rawListener : services) {
private class BundleScanner implements BundleTrackerCustomizer<ImmutableSet<Registration<URL>>> {
@Override
- public ImmutableSet<Registration<URL>> addingBundle(Bundle bundle, BundleEvent event) {
+ public ImmutableSet<Registration<URL>> addingBundle(final Bundle bundle, final BundleEvent event) {
if (bundle.getBundleId() == 0) {
return ImmutableSet.of();
}
@Override
- public void modifiedBundle(Bundle bundle, BundleEvent event, ImmutableSet<Registration<URL>> object) {
+ public void modifiedBundle(final Bundle bundle, final BundleEvent event, final ImmutableSet<Registration<URL>> object) {
logger.debug("Modified bundle {} {} {}", bundle, event, object);
}
*/
@Override
- public synchronized void removedBundle(Bundle bundle, BundleEvent event, ImmutableSet<Registration<URL>> urls) {
+ public synchronized void removedBundle(final Bundle bundle, final BundleEvent event, final ImmutableSet<Registration<URL>> urls) {
for (Registration<URL> url : urls) {
try {
url.close();
}
@Override
- public SchemaServiceListener addingService(ServiceReference<SchemaServiceListener> reference) {
+ public SchemaServiceListener addingService(final ServiceReference<SchemaServiceListener> reference) {
SchemaServiceListener listener = context.getService(reference);
SchemaContext _ctxContext = getGlobalContext();
}
@Override
- public void modifiedService(ServiceReference<SchemaServiceListener> reference, SchemaServiceListener service) {
+ public void modifiedService(final ServiceReference<SchemaServiceListener> reference, final SchemaServiceListener service) {
// NOOP
}
@Override
- public void removedService(ServiceReference<SchemaServiceListener> reference, SchemaServiceListener service) {
+ public void removedService(final ServiceReference<SchemaServiceListener> reference, final SchemaServiceListener service) {
context.ungetService(reference);
}
}