+ protected void run() throws Exception {
+ while (isRunning()) {
+ try {
+ Thread.sleep(TimeUnit.MINUTES.toMillis(1));
+ } catch (InterruptedException ie1) {
+ /* ignore. */
+ }
+
+ /* find channels that should be monitored but are not. */
+ for (Channel channel : channels) {
+ if (joinedChannels.contains(channel)) {
+ continue;
+ }
+
+ connectNetwork(channel.network());
+ Connection connection = networkConnections.get(channel.network());
+ if (connection.established()) {
+ eventBus.post(new GenericMessage(String.format("Trying to join %s on %s.", channel.name(), channel.network().name())));
+ connection.joinChannel(channel.name());
+ }
+ }
+ }
+ }
+
+ @Override