@Override public Set<ComponentDerivationRecord> getChangeRecords( GetXMLDataMeta meta ) throws MetaverseAnalyzerException { Set<ComponentDerivationRecord> changes = new HashSet<>(); boolean isInFields = meta.isInFields(); boolean isAFile = meta.getIsAFile(); boolean isAUrl = meta.isReadUrl(); // if we are getting xml from a field, we need to add the "derives" links from the xml to the output fields if ( isInFields && !isAFile && !isAUrl ) { GetXMLDataField[] fields = baseStepMeta.getInputFields(); if ( getInputs() != null ) { Set<StepField> inputFields = getInputs().getFieldNames(); for ( StepField inputField : inputFields ) { if ( inputField.getFieldName().equals( meta.getXMLField() ) ) { // link this to all of the outputs that come from the xml for ( GetXMLDataField field : fields ) { ComponentDerivationRecord change = new ComponentDerivationRecord( meta.getXMLField(), field.getName() ); changes.add( change ); } break; } } } } return changes; }
@Override protected void customAnalyze( MetaInjectMeta meta, IMetaverseNode rootNode ) throws MetaverseAnalyzerException { final String sourceStepName = parentTransMeta.environmentSubstitute( meta.getSourceStepName() ); rootNode.setProperty( "sourceStepName", sourceStepName ); rootNode.setProperty( "targetFile", parentTransMeta.environmentSubstitute( meta.getTargetFile() ) ); rootNode.setProperty( "streamSourceStepname", parentTransMeta.environmentSubstitute( meta.getStreamSourceStepname() ) ); rootNode.setProperty( "streamTargetStepname", parentTransMeta.environmentSubstitute( meta.getStreamTargetStepname() ) ); rootNode.setProperty( "runResultingTransformation", !meta.isNoExecution() ); KettleAnalyzerUtil.analyze( this, parentTransMeta, meta, rootNode ); }
final TransMeta subTransMeta = KettleAnalyzerUtil.getSubTransMeta( meta ); subTransMeta.setFilename( transformationPath ); final IMetaverseNode matchingInjectorFieldNode = getInputs().findNode( injectorStepName, injectotFieldName ); if ( matchingInjectorFieldNode != null ) {
.loadMappingMeta( baseStepMeta, parentTransMeta.getRepository(), parentTransMeta.getMetaStore(), parentTransMeta ); SubtransAnalyzer<KafkaConsumerInputMeta> subtransAnalyzer = new SubtransAnalyzer<>( this, log ); HashSet<StepField> stepFields = new HashSet<>(); for ( KafkaConsumerField.Name kafkaField : KafkaConsumerField.Name.values() ) { stepFields.add( new StepField( RESOURCE, kafkaField.toString() ) ); IMetaverseNode subTransNode = KettleAnalyzerUtil.analyze( this, parentTransMeta, baseStepMeta, rootNode ); for ( StepField stepField : stepFields ) { IMetaverseNode inputNode = this.getInputs().findNode( stepField ); String outputName = baseStepMeta.getFieldDefinitions().stream() .filter( kcf -> kcf.getKafkaName().toString().equals( stepField.getFieldName() ) ) .map( KafkaConsumerField::getOutputName ) .findFirst().orElse( "" ); subtransAnalyzer.linkUsedFieldToSubTrans( inputNode, subTransMeta, subTransNode, descriptor, ( fieldName ) -> fieldName.equals( outputName ) );
@Override public Set<ComponentDerivationRecord> getChangeRecords( KafkaProducerOutputMeta meta ) { LinkedHashSet<ComponentDerivationRecord> changes = new LinkedHashSet<>(); Set<String> stepNames = getInputs().getStepNames(); for ( String stepName : stepNames ) { changes.add( new ComponentDerivationRecord( new StepField( stepName, meta.getKeyField() ), new StepField( RESOURCE, KEY ) ) ); changes.add( new ComponentDerivationRecord( new StepField( stepName, meta.getMessageField() ), new StepField( RESOURCE, MESSAGE ) ) ); } return changes; }
@Override protected void customAnalyze( final JmsConsumerMeta meta, final IMetaverseNode rootNode ) throws MetaverseAnalyzerException { // TODO: When/If adding JmsProducerAnalyzer, move common code to new base class. final JmsDelegate jmsDelegate = meta.getJmsDelegate(); rootNode.setProperty( "batchSize", parentTransMeta.environmentSubstitute( meta.getBatchSize() ) ); rootNode.setProperty( "batchDuration", parentTransMeta.environmentSubstitute( meta.getBatchDuration() ) ); rootNode.setProperty( "connectionType", jmsDelegate.getConnectionType() ); rootNode.setProperty( "connectionUrl", parentTransMeta.environmentSubstitute( jmsDelegate.getConnectionUrl() ) ); rootNode.setProperty( "destinationType", parentTransMeta.environmentSubstitute( jmsDelegate.getDestinationType() ) ); rootNode.setProperty( "destinationName", parentTransMeta.environmentSubstitute( jmsDelegate.getDestinationName() ) ); rootNode.setProperty( "receiveTimeout", parentTransMeta.environmentSubstitute( meta.getReceiveTimeout() ) ); KettleAnalyzerUtil.analyze( this, parentTransMeta, meta, rootNode ); }