Search in sources :

Example 1 with Closer

use of org.apache.camel.guice.support.Closer in project camel by apache.

the class Injectors method close.

/**
     * Closes objects within the given scope using the currently registered
     * {@link Closer} implementations
     */
public static void close(Injector injector, Class<? extends Annotation> scopeAnnotationToClose, CloseErrors errors) throws CloseFailedException {
    Set<Closer> closers = getInstancesOf(injector, Closer.class);
    Closer closer = CompositeCloser.newInstance(closers);
    if (closer == null) {
        return;
    }
    Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet();
    for (Entry<Key<?>, Binding<?>> entry : entries) {
        Key<?> key = entry.getKey();
        Binding<?> binding = entry.getValue();
        closeBinding(key, binding, scopeAnnotationToClose, closer, errors);
    }
    tryCloseJitBindings(closer, injector, scopeAnnotationToClose, errors);
    errors.throwIfNecessary();
}
Also used : Closer(org.apache.camel.guice.support.Closer) CompositeCloser(org.apache.camel.guice.support.CompositeCloser) Binding(com.google.inject.Binding) Entry(java.util.Map.Entry) Key(com.google.inject.Key)

Aggregations

Binding (com.google.inject.Binding)1 Key (com.google.inject.Key)1 Entry (java.util.Map.Entry)1 Closer (org.apache.camel.guice.support.Closer)1 CompositeCloser (org.apache.camel.guice.support.CompositeCloser)1