From 02fc4b2af1805ec6e52114aa799d027ea8154fca Mon Sep 17 00:00:00 2001 From: yyin Date: Wed, 4 Feb 2026 14:53:18 +0800 Subject: [PATCH 1/8] Change discover schema action order for input in TaCoKitGuessSchema --- .../component/runtime/di/schema/TaCoKitGuessSchema.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java index 052bf35d09d16..173f07d187ff9 100644 --- a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java +++ b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java @@ -422,21 +422,22 @@ public boolean guessSchemaThroughAction(final Schema schema) { ServiceMeta.ActionMeta actionRef; if (action == null || action.isEmpty()) { // dataset name should be the same as DiscoverSchema action name so let's try to guess from the component + //First find DiscoverSchemaExtended action name actionRef = findFirstComponentDataSetName() .flatMap(datasetName -> services .stream() .flatMap(s -> s.getActions().stream()) - .filter(a -> a.getFamily().equals(family) && a.getType().equals(SCHEMA_TYPE)) + .filter(a -> a.getFamily().equals(family) && a.getType().equals(SCHEMA_EXTENDED_TYPE)) .filter(a -> a.getAction().equals(datasetName)) .findFirst()) .orElse(null); if (actionRef == null) { - // let's try DiscoverSchemaExtended action name + // second find DiscoverSchema action name actionRef = findFirstComponentDataSetName() .flatMap(datasetName -> services .stream() .flatMap(s -> s.getActions().stream()) - .filter(a -> a.getFamily().equals(family) && a.getType().equals(SCHEMA_EXTENDED_TYPE)) + .filter(a -> a.getFamily().equals(family) && a.getType().equals(SCHEMA_TYPE)) .filter(a -> a.getAction().equals(datasetName)) .findFirst()) .orElse(null); From 977a04808a670a77d677efda1a53e6fb97980034 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Mon, 9 Mar 2026 17:37:54 +0100 Subject: [PATCH 2/8] feat(QTDI-2420): reflect change input discovery order --- .../src/main/antora/modules/ROOT/pages/studio-schema.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc b/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc index 81574e7557d88..e6fae1ffe93fb 100644 --- a/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc +++ b/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc @@ -240,8 +240,8 @@ Example: ==== For inputs . Try to find an action in declared Service class -.. search an action of type `@DiscoverSchema` named like the input dataset. .. search an action of type `@DiscoverSchemaExtended` named like the input dataset. +.. search an action of type `@DiscoverSchema` named like the input dataset. .. search an action of type `@DiscoverSchema`. . Execute a fake job with component to retrieve output schema. From be418b995a950cf02d481401ef2f74b51d44a332 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Mon, 9 Mar 2026 18:16:15 +0100 Subject: [PATCH 3/8] feat(QTDI-2420): use extended prefered instead of just basic action --- .../component/runtime/di/schema/TaCoKitGuessSchema.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java index 173f07d187ff9..afd5c68d1b8e2 100644 --- a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java +++ b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java @@ -447,7 +447,12 @@ public boolean guessSchemaThroughAction(final Schema schema) { .stream() .flatMap(s -> s.getActions().stream()) .filter(a -> a.getFamily().equals(family) && a.getAction().equals(action) - && a.getType().equals(SCHEMA_TYPE)) + && (a.getType().equals(SCHEMA_EXTENDED_TYPE) || a.getType().equals(SCHEMA_TYPE))) + .sorted((action1, action2) -> { + boolean action1IsExtended = action1.getType().equals(SCHEMA_EXTENDED_TYPE); + boolean action2IsExtended = action2.getType().equals(SCHEMA_EXTENDED_TYPE); + return Boolean.compare(!action1IsExtended, !action2IsExtended); + }) .findFirst() .orElseThrow(() -> new IllegalArgumentException( "No action " + family + "#" + SCHEMA_TYPE + "#" + action)); From 6745ba8dfcf27ba8e8b786a0c69b8bd34df62a29 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Mon, 16 Mar 2026 17:27:28 +0100 Subject: [PATCH 4/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../sdk/component/runtime/di/schema/TaCoKitGuessSchema.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java index afd5c68d1b8e2..a45d75e1c8aa1 100644 --- a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java +++ b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java @@ -455,7 +455,8 @@ public boolean guessSchemaThroughAction(final Schema schema) { }) .findFirst() .orElseThrow(() -> new IllegalArgumentException( - "No action " + family + "#" + SCHEMA_TYPE + "#" + action)); + "No action " + family + "#(" + SCHEMA_TYPE + " or " + SCHEMA_EXTENDED_TYPE + ")#" + + action)); } if (actionRef == null) { return false; From 7f1d8064a8eb3bde0f4289be6ece522410ce920f Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Mon, 16 Mar 2026 17:28:32 +0100 Subject: [PATCH 5/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../sdk/component/runtime/di/schema/TaCoKitGuessSchema.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java index a45d75e1c8aa1..3cf4952b5e09e 100644 --- a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java +++ b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java @@ -421,8 +421,8 @@ public boolean guessSchemaThroughAction(final Schema schema) { ServiceMeta.ActionMeta actionRef; if (action == null || action.isEmpty()) { - // dataset name should be the same as DiscoverSchema action name so let's try to guess from the component - //First find DiscoverSchemaExtended action name + // Dataset name should match the DiscoverSchema or DiscoverSchemaExtended action name, so try to + // guess it from the component (preferring DiscoverSchemaExtended over DiscoverSchema). actionRef = findFirstComponentDataSetName() .flatMap(datasetName -> services .stream() From aec96587b582df4f99454d6e5c58513813f40be0 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Mon, 16 Mar 2026 17:29:57 +0100 Subject: [PATCH 6/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../sdk/component/runtime/di/schema/TaCoKitGuessSchema.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java index 3cf4952b5e09e..173a16d40d988 100644 --- a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java +++ b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java @@ -448,6 +448,8 @@ public boolean guessSchemaThroughAction(final Schema schema) { .flatMap(s -> s.getActions().stream()) .filter(a -> a.getFamily().equals(family) && a.getAction().equals(action) && (a.getType().equals(SCHEMA_EXTENDED_TYPE) || a.getType().equals(SCHEMA_TYPE))) + // When both DiscoverSchemaExtended and DiscoverSchema exist for the same action name, + // prefer the extended schema action by ordering it first. .sorted((action1, action2) -> { boolean action1IsExtended = action1.getType().equals(SCHEMA_EXTENDED_TYPE); boolean action2IsExtended = action2.getType().equals(SCHEMA_EXTENDED_TYPE); From 21dba55602f612be57bf279b99001071693dbf96 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Thu, 26 Mar 2026 11:13:18 +0100 Subject: [PATCH 7/8] Update documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../src/main/antora/modules/ROOT/pages/studio-schema.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc b/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc index e6fae1ffe93fb..91b1409f54777 100644 --- a/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc +++ b/documentation/src/main/antora/modules/ROOT/pages/studio-schema.adoc @@ -242,8 +242,7 @@ Example: . Try to find an action in declared Service class .. search an action of type `@DiscoverSchemaExtended` named like the input dataset. .. search an action of type `@DiscoverSchema` named like the input dataset. -.. search an action of type `@DiscoverSchema`. -. Execute a fake job with component to retrieve output schema. +. If no matching action is found, execute a fake job with the component to retrieve the output schema. ==== For processors From f605f827f7528d5c39fe7472a1ba4dd4cfe909dd Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Thu, 26 Mar 2026 11:13:56 +0100 Subject: [PATCH 8/8] Update component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../sdk/component/runtime/di/schema/TaCoKitGuessSchema.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java index 173a16d40d988..9c72735b566d5 100644 --- a/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java +++ b/component-studio/component-runtime-di/src/main/java/org/talend/sdk/component/runtime/di/schema/TaCoKitGuessSchema.java @@ -432,7 +432,7 @@ public boolean guessSchemaThroughAction(final Schema schema) { .findFirst()) .orElse(null); if (actionRef == null) { - // second find DiscoverSchema action name + // Then try the DiscoverSchema action name. actionRef = findFirstComponentDataSetName() .flatMap(datasetName -> services .stream()