@Override public void removedService(ServiceReference<Object> reference, List<Command> commands) { for (Command command : commands) { sessionFactory.getRegistry().unregister(command); } } }
@Override public void removedService(ServiceReference<Object> reference, List<Command> commands) { for (Command command : commands) { sessionFactory.getRegistry().unregister(command); } } }
@Override public void removedService(ServiceReference reference, Object service) { if (service instanceof org.apache.karaf.shell.api.console.Command) { sessionFactory.getRegistry().unregister(service); } if (service instanceof List) { List<org.apache.karaf.shell.api.console.Command> commands = (List<org.apache.karaf.shell.api.console.Command>) service; for (org.apache.karaf.shell.api.console.Command command : commands) { sessionFactory.getRegistry().unregister(command); } } context.ungetService(reference); } }
@Override public void unregister(Class<?> clazz) { Object object; synchronized (instances) { object = instances.remove(clazz); } if (object != null) { registrations.unregister(object); if (object instanceof Completer) { try { release(object); } catch (Exception e) { // TODO: log exception } } } } }
@Override public void unregister(Class<?> clazz) { Object object; synchronized (instances) { object = instances.remove(clazz); } if (object != null) { registrations.unregister(object); if (object instanceof Completer) { try { release(object); } catch (Exception e) { // TODO: log exception } } } } }
/** * Unregister a command. * * The session factory must be not null. * * @param command The command that should be unregistered. */ private void unregisterCommand(final ConsoleCommandExtension command) { final Registry registry = sessionFactory.getRegistry(); final CommandWrapper wrapperOld; wrapperOld = registeredCommands.get(command); if (wrapperOld != null) { try { registry.unregister(wrapperOld); } catch (final Exception ex) { logger.error("Cannot unregister command '{}'.", command.getCommand(), ex); } } }
@Override public void remove(final BeanEntry<Named, Action> beanEntry, final BundleContext bundleContext) throws Exception { Command command = beanEntry.getImplementationClass().getAnnotation(Command.class); if (command != null) { log.debug("Unregistering command: {}", beanEntry); sessionFactory.getRegistry().unregister(new BeanEntryCommand(beanLocator, beanEntry)); } } }
/** * Register a command. * * The session factory must be not null. * * @param command The command that should be registered. */ private void registerCommand(final ConsoleCommandExtension command) { final Registry registry = sessionFactory.getRegistry(); final CommandWrapper wrapperOld; final CommandWrapper wrapperNew; wrapperNew = new CommandWrapper(command); wrapperOld = registeredCommands.put(command, wrapperNew); if (wrapperOld != null) { registry.unregister(wrapperOld); } try { registry.register(wrapperNew); } catch (final Exception ex) { logger.error("Cannot register command '{}'.", command.getCommand(), ex); } }