private void deployInstance ( final InstanceContext instance , final CountingCompletionHandler < Void > counter ) { // First we need to select a node from the component's deployment group // to which to deploy the component. // If the component doesn't specify a group then deploy to any node in the cluster. if ( instance . component ( ) . group ( ) != null ) { cluster . getGroup ( instance . component ( ) . group ( ) , new Handler < AsyncResult < Group > > ( ) { @ Override public void handle ( AsyncResult < Group > result ) { if ( result . failed ( ) ) { counter . fail ( result . cause ( ) ) ; } else { result . result ( ) . selectNode ( instance . address ( ) , new Handler < AsyncResult < Node > > ( ) { @ Override public void handle ( AsyncResult < Node > result ) { if ( result . failed ( ) ) { counter . fail ( result . cause ( ) ) ; } else { deployInstance ( result . result ( ) , instance , counter ) ; } } } ) ; } } } ) ; } else { cluster . selectNode ( instance . address ( ) , new Handler < AsyncResult < Node > > ( ) { @ Override public void handle ( AsyncResult < Node > result ) { if ( result . failed ( ) ) { counter . fail ( result . cause ( ) ) ; } else { deployInstance ( result . result ( ) , instance , counter ) ; } } } ) ; } }
Deploys a single component instance .