public static void registerPlugin( Class clazz, String name, String brokerIp, int port, int consumers, String username, String password) throws IOException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { if (properties == null) getProperties(clazz); executor = Executors.newFixedThreadPool(consumers); for (int i = 0; i < consumers; i++) { PluginListener pluginListener = new PluginListener(); pluginListener.setPluginId(getFinalName(clazz, name)); pluginListener.setPluginInstance(clazz.getConstructor().newInstance()); pluginListener.setBrokerIp(brokerIp); pluginListener.setBrokerPort(port); pluginListener.setUsername(username); pluginListener.setPassword(password); executor.execute(pluginListener); } }