@Override public void callExtensionPoint( LogChannelInterface logChannelInterface, Object o ) throws KettleException {
    ExecutionConfiguration executionConfiguration = (ExecutionConfiguration) ( (Object[]) o )[ 0 ];
    AbstractMeta meta = (AbstractMeta) ( (Object[]) o )[ 1 ];
    VariableSpace variableSpace = (VariableSpace) ( (Object[]) o )[ 2 ];
    Repository repository = (Repository) ( (Object[]) o )[ 3 ];
    EmbeddedMetaStore embeddedMetaStore = meta.getEmbeddedMetaStore();

    RunConfigurationManager runConfigurationManager = rcmProvider.apply( meta.getBowl() );
    RunConfiguration runConfiguration =
      runConfigurationManager.load( executionConfiguration.getRunConfiguration() );

    if ( runConfiguration == null ) {
      RunConfigurationManager embeddedRunConfigurationManager =
        EmbeddedRunConfigurationManager.build( embeddedMetaStore );
      runConfiguration = embeddedRunConfigurationManager.load( executionConfiguration.getRunConfiguration() );
    }

    if ( runConfiguration != null ) {
      RunConfigurationExecutor runConfigurationExecutor =
        runConfigurationManager.getExecutor( runConfiguration.getType() );

      if ( runConfigurationExecutor != null ) {
        runConfigurationExecutor.execute( runConfiguration, executionConfiguration, meta, variableSpace, repository );
      }
    } else {
      String name = "";
      if ( variableSpace instanceof TransMeta ) {
        name = ( (TransMeta) variableSpace ).getFilename();
      }
      throw new KettleException( BaseMessages
        .getString( PKG, "RunConfigurationRunExtensionPoint.ConfigNotFound.Error", name,
          executionConfiguration.getRunConfiguration(), "{0}" ) );
    }
  }
@Test
  public void testCallExtensionPoint() throws Exception {

    runConfigurationRunExtensionPoint.callExtensionPoint( log, new Object[] {
      transExecutionConfiguration, abstractMeta, variableSpace, null
    } );

    verify( runConfigurationExecutor )
      .execute( runConfiguration, transExecutionConfiguration, abstractMeta, variableSpace, null );
  }