+ //
+ // INTERFACE PropertyChangeListener
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
+ Object eventSource = propertyChangeEvent.getSource();
+ if (eventSource instanceof Node) {
+ String propertyName = propertyChangeEvent.getPropertyName();
+ if ("hostname".equals(propertyName) || "port".equals(propertyName)) {
+ Node node = (Node) eventSource;
+ HighLevelClient highLevelClient = nodeClients.get(node);
+ if (highLevelClient == null) {
+ logger.log(Level.WARNING, "got property change event for unknown node: " + node);
+ return;
+ }
+ if (highLevelClient.isConnected()) {
+ highLevelClient.disconnect();
+ try {
+ highLevelClient.connect(node.getHostname(), node.getPort());
+ } catch (UnknownHostException uhe1) {
+ fireNodeConnectionFailed(node, uhe1);
+ } catch (IOException ioe1) {
+ fireNodeConnectionFailed(node, ioe1);
+ }
+ }
+ }
+ }
+ }
+