/** * Initializes a transformation from transformation meta-data defined in memory. Also take into account the parent log * channel interface (job or transformation) for logging lineage purposes. * * @param transMeta the transformation meta-data to use. * @param parent the parent job that is executing this transformation */ public Trans( TransMeta transMeta, LoggingObjectInterface parent ) { this(); this.transMeta = transMeta; this.containerObjectId = transMeta.getContainerObjectId(); setParent( parent ); initializeVariablesFrom( transMeta ); copyParametersFrom( transMeta ); transMeta.activateParameters(); // Get a valid transactionId in case we run database transactional. transactionId = calculateTransactionId(); threadName = transactionId; // / backward compatibility but deprecated! }
@Test public void testCreateInternalTransSetsRepository() throws KettleException { Trans transParentMock = mock( Trans.class ); Repository repositoryMock = mock( Repository.class ); TransExecutorData transExecutorDataMock = mock( TransExecutorData.class ); TransMeta transMetaMock = mock( TransMeta.class ); executor.init( meta, data ); when( transParentMock.getRepository() ).thenReturn( repositoryMock ); when( transParentMock.getLogLevel() ).thenReturn( LogLevel.DEBUG ); doNothing().when( transParentMock ).initializeVariablesFrom( any( VariableSpace.class ) ); when( executor.getLogLevel() ).thenReturn( LogLevel.DEBUG ); when( executor.createInternalTrans() ).thenCallRealMethod(); when( executor.getTrans() ).thenReturn( transParentMock ); when( executor.getData() ).thenReturn( transExecutorDataMock ); when( transMetaMock.listVariables() ).thenReturn( new String[0] ); when( transMetaMock.listParameters() ).thenReturn( new String[0] ); when( transExecutorDataMock.getExecutorTransMeta() ).thenReturn( transMetaMock ); Trans internalTrans = executor.createInternalTrans(); assertNotNull( internalTrans ); Trans parentTrans = internalTrans.getParentTrans(); assertEquals( parentTrans, transParentMock ); assertEquals( parentTrans.getRepository(), repositoryMock ); assertEquals( internalTrans.getRepository(), repositoryMock ); }
/** * Configures the transformation with the given parameters and their values * * @param trans the executable transformation object * @param optionParams the list of parameters to set for the transformation * @param transMeta the transformation metadata * @throws UnknownParamException */ protected static void configureParameters( Trans trans, NamedParams optionParams, TransMeta transMeta ) throws UnknownParamException { trans.initializeVariablesFrom( null ); trans.getTransMeta().setInternalKettleVariables( trans ); // Map the command line named parameters to the actual named parameters. // Skip for the moment any extra command line parameter not known in the transformation. String[] transParams = trans.listParameters(); for ( String param : transParams ) { String value = optionParams.getParameterValue( param ); if ( value != null ) { trans.setParameterValue( param, value ); transMeta.setParameterValue( param, value ); } } // Put the parameters over the already defined variable space. Parameters get priority. trans.activateParameters(); }
trans.initializeVariablesFrom( null ); trans.getTransMeta().setInternalKettleVariables( trans ); trans.injectVariables( transConfiguration.getTransExecutionConfiguration().getVariables() );
trans.initializeVariablesFrom( runTimeVariables ); if ( runTimeParameters != null ) { for ( String param : trans.listParameters() ) {