public int process ( ) throws IOException , InterruptedException { debug ( "ReplicationProcessor#process(): Processing start" ) ; Properties gemfireProperties = PropertiesHelper . filterProperties ( System . getProperties ( ) , "gemfire." ) ; String [ ] vmOptions = PropertiesHelper . propertiesToVMOptions ( gemfireProperties ) ; debug ( "ReplicationProcessor#process(): vmOptions = " + Arrays . asList ( vmOptions ) ) ; List < Process > processesList = new ArrayList < Process > ( ) ; for ( Object keyObject : clustersProperties . keySet ( ) ) { String cluster = ( String ) keyObject ; String clustersPropertiesString = PropertiesHelper . propertiesToString ( clustersProperties ) ; debug ( "ReplicationProcessor#process(): Starting GuestNode with parameters: cluster = " + cluster + ", clustersPropertiesString = " + clustersPropertiesString + ", timeout = " + timeout + ", regionName = " + regionName ) ; Process process = javaProcessLauncher . runWithoutConfirmation ( "" , GuestNode . class , vmOptions , new String [ ] { cluster , clustersPropertiesString , String . valueOf ( timeout ) , regionName , String . valueOf ( debugEnabled ) , String . valueOf ( quiet ) , String . valueOf ( processingStartedAt ) } ) ; debug ( "ReplicationProcessor#process(): Adding GuestNode to processList" ) ; processesList . add ( process ) ; } debug ( "ReplicationProcessor#process(): Waiting for processes finish" ) ; int mainExitCode = 0 ; int processNumber = 0 ; for ( Process process : processesList ) { debug ( "ReplicationProcessor#process(): Waiting for process #" + processNumber ) ; int exitCode = process . waitFor ( ) ; if ( exitCode != 0 ) { mainExitCode = 1 ; } debug ( "ReplicationProcessor#process(): Process #" + processNumber + " finished with exitCode = " + exitCode ) ; processNumber ++ ; } debug ( "ReplicationProcessor#process(): Processing finished with mainExitCode = " + mainExitCode ) ; return mainExitCode ; }
Creates configures and runs the guest nodes and collects information form them