Uploaded image for project: 'Talend Component Kit'
  1. Talend Component Kit
  2. TCOMP-240

Support of hybrid components (Input/Output/Middle) simultaneously

Apply templateInsert Lucidchart Diagram
    XMLWordPrintable

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • 0.16.0
    • None
    • None
    • None
    • All
    • Hide

      This feature was implemented during TCOMP-112 implementation by Sebastien
      https://jira.talendforge.org/browse/TCOMP-112

      Show
      This feature was implemented during TCOMP-112 implementation by Sebastien https://jira.talendforge.org/browse/TCOMP-112
    • GreenHopper Ranking:
      0|i0vwqj:
    • 9223372036854775807
    • Small

    Description

      Issue description

      This issue is related to problem Wang Wei met while porting tJDBCRow component to new framework.
      See comment https://jira.talendforge.org/browse/TDI-36958?focusedCommentId=432623&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-432623

      tJDBCRow is a kind of hybrid component:
      it could work as InputComponent or OutputComponent or MiddleComponent (maybe Virtual) depending on job design and what flows are connected to this component.

      Details:
      1. If there is no flows, tJDBCRow can just execute SQL query specified in Properties. For example, it could be query to create database, table.
      2. If there is only input flow, tJDBCRow plays as OutputComponent. It could execute prepared statements with arguments from incoming records. For example, it could insert several records into table.
      3. If there is only output flow, tJDBCRow plays as InputComponent. It could execute SQL statement and provide result set as outgoing records. For example, it could execute select query and output resulting records.
      4. If there are both input and output flow, tJDBCRow plays as MiddleComponent or VirtualComponent.

      Issue reason

      For now, Component Framework doesn't support hybrid components. Component Framework assumes component can be either InputComponent or OutputComponent, but not both simultaneously.

      Possible solutions

      As for me there are 2 conceptual ways:

      1. Support compatibility with old components and change Component Framework to support old kind of old components (even broken one)
      2. Break compatibility with old components and change components according to Framework architecture

      With regard to this problem 1st way means to add support of hybrid components in Component Framework.
      2nd way means to split tJDBCRow to several components of different type: tJDBCRowInput, tJDBCRowOutput, tJDBCRowMiddle

      Attachments

        Activity

          People

            igonchar Ivan Gonchar
            igonchar Ivan Gonchar
            Ivan Gonchar
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 4 hours, 30 minutes
                4h 30m