jFreeReportAction.setComponentName( dataComponentName );
ActionDefinition tmpActionDefinition =
ActionFactory.getActionDefinition( jFreeReportAction.getElement(), jFreeReportAction
.getActionParameterMgr() );
final Class componentClass = Class.forName( dataComponentName );
IDataComponent dataComponent = (IDataComponent) componentClass.newInstance();
dataComponent.setInstanceId( getInstanceId() );
dataComponent.setActionName( getActionName() );
dataComponent.setProcessId( getProcessId() );
dataComponent.setActionDefinition( tmpActionDefinition );
dataComponent.setComponentDefinition( getComponentDefinition() );
dataComponent.setRuntimeContext( getRuntimeContext() );
dataComponent.setSession( getSession() );
dataComponent.setLoggingLevel( getLoggingLevel() );
dataComponent.setMessages( getMessages() );
// if that fails, then we know we messed up again.
// Abort, we cant continue anyway.
if ( ( dataComponent.validate() == IRuntimeContext.RUNTIME_CONTEXT_VALIDATE_OK ) && dataComponent.init()
&& ( dataComponent.execute() == IRuntimeContext.RUNTIME_STATUS_SUCCESS ) ) {
final IPentahoResultSet resultset = dataComponent.getResultSet();
factory =
new PentahoTableDataFactory( AbstractJFreeReportComponent.DATACOMPONENT_DEFAULTINPUT,
new PentahoTableModel( resultset ) );
} else {
throw new IllegalArgumentException( Messages.getInstance().getErrorString(