@ SuppressWarnings ( "unchecked" ) private ImmutableMap < String , ProcedureRunnerNTGenerator > loadSystemProcedures ( boolean startup ) { ImmutableMap . Builder < String , ProcedureRunnerNTGenerator > builder = ImmutableMap . < String , ProcedureRunnerNTGenerator > builder ( ) ; Set < Entry < String , Config > > entrySet = SystemProcedureCatalog . listing . entrySet ( ) ; for ( Entry < String , Config > entry : entrySet ) { String procName = entry . getKey ( ) ; Config sysProc = entry . getValue ( ) ; // transactional sysprocs handled by LoadedProcedureSet if ( sysProc . transactional ) { continue ; } final String className = sysProc . getClassname ( ) ; Class < ? extends VoltNonTransactionalProcedure > procClass = null ; // this check is for sysprocs that don't have a procedure class if ( className != null ) { try { procClass = ( Class < ? extends VoltNonTransactionalProcedure > ) Class . forName ( className ) ; } catch ( final ClassNotFoundException e ) { if ( sysProc . commercial ) { continue ; } VoltDB . crashLocalVoltDB ( "Missing Java class for NT System Procedure: " + procName ) ; } if ( startup ) { // This is a startup-time check to make sure we can instantiate try { if ( ( procClass . newInstance ( ) instanceof VoltNTSystemProcedure ) == false ) { VoltDB . crashLocalVoltDB ( "NT System Procedure is incorrect class type: " + procName ) ; } } catch ( InstantiationException | IllegalAccessException e ) { VoltDB . crashLocalVoltDB ( "Unable to instantiate NT System Procedure: " + procName ) ; } } ProcedureRunnerNTGenerator prntg = new ProcedureRunnerNTGenerator ( procClass ) ; builder . put ( procName , prntg ) ; } } return builder . build ( ) ; }
Load the system procedures . Optionally don t load UAC but use parameter instead .