Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
f692cad
chore(QTDI-1914): Sample dynamic schema connector.
ypiel-talend Oct 22, 2025
e53256c
Add 2 params
yyin-talend Oct 23, 2025
b4705a0
chore(QTDI-1914): remove unused option in dso, environment info manag…
ypiel-talend Oct 23, 2025
1a76af5
Add 2 connectors: dataset, datastore with tests
yyin-talend Oct 27, 2025
8c10ae1
Add 2 connectors: dataset, datastore with tests
yyin-talend Oct 27, 2025
189ac9e
chore(QTDI-1914): Some adjustments.
ypiel-talend Oct 27, 2025
51c2838
chore(QTDI-1914): Working unit test.
ypiel-talend Oct 27, 2025
a921b04
chore(QTDI-1914): working dynamic dependencies connectors.
ypiel-talend Oct 27, 2025
54714b7
fix labels
yyin-talend Oct 28, 2025
d52d6eb
chore(QTDI-1914): fix artifact group id for dependency.
ypiel-talend Oct 28, 2025
e55a7a4
refactor junits
yyin-talend Oct 29, 2025
0c8e974
add working directory in output
yyin-talend Oct 29, 2025
3b18693
chore(QTDI-1914): Improve and unit test and fix labels.
ypiel-talend Oct 29, 2025
360f13d
chore(QTDI-1914): Add a connector with same behavior as datapreprun.
ypiel-talend Oct 30, 2025
136b654
fix layout for dieOnError
yyin-talend Oct 31, 2025
c3e7ad0
Fix dataprepRunAnnotation connector
yyin-talend Oct 31, 2025
2417f80
feat(QTDI-1914): Cleanings.
ypiel-talend Nov 4, 2025
fdde448
Add Readme
yyin-talend Nov 5, 2025
55bd365
Merge branch 'master' into ypiel/QTDI-1914_sample_connector_dyndeps
yyin-talend Nov 10, 2025
0572b53
feat(QTDI-1914): try to execute a TCK connector to check if it is wel…
ypiel-talend Nov 10, 2025
6ff4e06
Merge branch 'ypiel/QTDI-1914_sample_connector_dyndeps' of github.com…
ypiel-talend Nov 10, 2025
06da286
Add function to load depended component's depends
yyin-talend Nov 12, 2025
fe550fc
# Conflicts:
yyin-talend Nov 18, 2025
caef44a
rename
yyin-talend Nov 18, 2025
15c4e2d
fix junit
yyin-talend Nov 18, 2025
132e0d9
fix(QTDI-1914): some refactoring.
ypiel-talend Nov 18, 2025
578c338
feat(QTDI-1914): Add a connector taht uses a SPI.
ypiel-talend Nov 25, 2025
2dc763d
feat(QTDI-1914): remove unnecessary dependency.
ypiel-talend Nov 25, 2025
fabc258
feat(QTDI-1914): Add a test on the spi.
ypiel-talend Nov 25, 2025
15759e1
feat(QTDI-1914): Change the SPI interface and add a unit test.
ypiel-talend Nov 26, 2025
9bb8698
Merge branch 'master' into ypiel/QTDI-1914_sample_connector_dyndeps
ypiel-talend Nov 26, 2025
bc2ded4
feat(QTDI-1914): Update pom version in dynamic-dependencies modules.
ypiel-talend Nov 26, 2025
d282b18
feat(QTDI-1914): Clean pom.xml in dynamic-dependencies sample module.
ypiel-talend Nov 27, 2025
07e2722
feat(QTDI-1914): try to add a classloader customizer.
ypiel-talend Nov 27, 2025
208067a
feat(QTDI-1914): Fix customizer SPI resource file.
ypiel-talend Nov 27, 2025
646d9ab
feat(QTDI-1914): Add some resources to be loaded.
ypiel-talend Nov 27, 2025
cad9132
feat(QTDI-1914): Add multiple resources load.
ypiel-talend Nov 27, 2025
e94f6ce
feat(QTDI-1914): Add SPI resource for classloader customizer.
ypiel-talend Nov 28, 2025
08548c9
feat(QTDI-1914): Rename StringMapTransformer t o StringListTransformer.
ypiel-talend Nov 28, 2025
2d94660
feat(QTDI-1914): Refactoring + external dependency.
ypiel-talend Dec 1, 2025
103c741
feat(QTDI-1914): Add a class from standard dependency.
ypiel-talend Dec 4, 2025
9e50baf
feat(QTDI-1914): Complete the readme.md.
ypiel-talend Dec 4, 2025
4239689
feat(QTDI-1914): Complete the readme.md.
ypiel-talend Dec 4, 2025
33dd8e2
feat(QTDI-1914): fix json2Map and record builder
undx Dec 12, 2025
ee71c1e
Merge branch 'master' into ypiel/QTDI-1914_sample_connector_dyndeps
undx Jan 6, 2026
30ac693
feat(QTDI-1914): Don't throw exception anymore if it misses a spi, ju…
ypiel-talend Jan 7, 2026
ea29927
feat(QTDI-1914): Don't throw exception anymore if it misses a spi, ju…
ypiel-talend Jan 7, 2026
dfe6b1f
feat(QTDI-1914): Don't throw exception anymore if a resources from a …
ypiel-talend Jan 7, 2026
56c3451
feat(QTDI-1914): Some improvements
ypiel-talend Jan 14, 2026
258e6c0
feat(QTDI-1914): Fix some SPI / deactivate the customer by default / …
ypiel-talend Jan 16, 2026
a53a627
feat(QTDI-1914): Simplify connectors forms.
ypiel-talend Jan 19, 2026
8e76aef
feat(QTDI-1914): Fix unit tests.
ypiel-talend Jan 19, 2026
26160e5
feat(QTDI-1914): Remove unused parameter to throw exception when a sp…
ypiel-talend Jan 19, 2026
ea5ea8a
feat(QTDI-1914): A connector needs at least one parameter to be able …
ypiel-talend Jan 23, 2026
7cbd5a1
feat(QTDI-1914): Add rootRepo/classpath/workingDir info in dyndepsWit…
ypiel-talend Jan 27, 2026
642c325
feat(QTDI-1914): Deactivate car/dependencies/scan in dynamic-dependen…
ypiel-talend Jan 29, 2026
df43a2e
feat(QTDI-1914): Update documentation.
ypiel-talend Feb 2, 2026
ab3afe8
feat(QTDI-1914): Copilot code review.
ypiel-talend Feb 2, 2026
e78dbd0
feat(QTDI-1914): Refactoring dynamic-dependencies module to loading-a…
ypiel-talend Feb 9, 2026
45f93fd
feat(QTDI-1914): Fix after refactoring.
ypiel-talend Feb 9, 2026
a17adc6
feat(QTDI-1914): Clean labels and icons after refactoring.
ypiel-talend Feb 9, 2026
27d47be
feat(QTDI-1914): Update README.md after refactoring.
ypiel-talend Feb 10, 2026
b8e2994
feat(QTDI-1914): Copilot code review fixes.
ypiel-talend Feb 10, 2026
c273218
feat(QTDI-1914): Fix typos in loading-analysis README
Copilot Feb 10, 2026
b0a424f
feat(QTDI-1914): Copilot code review fixes.
ypiel-talend Feb 10, 2026
bf3c798
Merge branch 'ypiel/QTDI-1914_sample_connector_dyndeps' of github.com…
ypiel-talend Feb 10, 2026
9b3d378
feat(QTDI-1914): Process the real m2 repository inferred by the frame…
ypiel-talend Mar 2, 2026
d4afd80
feat(QTDI-1914): Improve unit tests.
ypiel-talend Mar 6, 2026
a28f36d
feat(QTDI-1914): Remove DynamicDependenciesConfiguration that will be…
ypiel-talend Mar 6, 2026
44ed412
Merge branch 'master' into ypiel/QTDI-1914_sample_connector_dyndeps
ypiel-talend Mar 6, 2026
4c76bbe
feat(QTDI-1914): Update year in copyright.
ypiel-talend Mar 6, 2026
abe4e32
feat(QTDI-1914): Fix version.
ypiel-talend Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sample-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,4 @@
</plugin>
</plugins>
</build>
</project>
</project>
3 changes: 3 additions & 0 deletions sample-parent/sample-connector/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@ The connectors should have everything translated in at least 2 languages, no nee
In order to have an easy testing of language mechanic, a simple python script has been provided in the project: [i18n_messages_properties_generator.py](src/main/resources/org/talend/sdk/component/test/connectors/i18n_messages_properties_generator.py).
Simply execute it to generate a copy of every `messages.properties` files in multiples languages.
The translation will add "-xx" at the end to easily test translations.

# SimpleInput
It's a very simple input conncetor that generates only 1 record that echoes its configuration.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/**
* Copyright (C) 2006-2025 Talend Inc. - www.talend.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.talend.sdk.component.test.connectors.config;

import java.io.Serializable;

import org.talend.sdk.component.api.configuration.Option;
import org.talend.sdk.component.api.configuration.ui.layout.GridLayout;
import org.talend.sdk.component.api.meta.Documentation;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@GridLayout({
@GridLayout.Row({ "dataset" }),
@GridLayout.Row({ "debug" })
})
@Documentation("Configuration used by the simple input emitter.")
public class SimpleInputConfiguration implements Serializable {

@Option
@Documentation("The simple input dataset.")
private SimpleInputDataset dataset;

@Option
@Documentation("Is it in debug mode.")
private boolean debug;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* Copyright (C) 2006-2025 Talend Inc. - www.talend.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.talend.sdk.component.test.connectors.config;

import java.io.Serializable;

import org.talend.sdk.component.api.configuration.Option;
import org.talend.sdk.component.api.configuration.type.DataSet;
import org.talend.sdk.component.api.configuration.ui.DefaultValue;
import org.talend.sdk.component.api.configuration.ui.layout.GridLayout;
import org.talend.sdk.component.api.meta.Documentation;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@DataSet("dataset")
@GridLayout({
@GridLayout.Row({ "datastore" }),
@GridLayout.Row({ "resource" })
})
@Documentation("Dataset selecting a simple resource.")
public class SimpleInputDataset implements Serializable {

@Option
@Documentation("The Simple input datastore.")
private SimpleInputDatastore datastore;

@Option
@DefaultValue("default")
@Documentation("The resource to process.")
private String resource;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/**
* Copyright (C) 2006-2025 Talend Inc. - www.talend.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.talend.sdk.component.test.connectors.config;

import java.io.Serializable;

import org.talend.sdk.component.api.configuration.Option;
import org.talend.sdk.component.api.configuration.type.DataStore;
import org.talend.sdk.component.api.configuration.ui.DefaultValue;
import org.talend.sdk.component.api.configuration.ui.layout.GridLayout;
import org.talend.sdk.component.api.configuration.ui.widget.Credential;
import org.talend.sdk.component.api.meta.Documentation;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@DataStore("simpleDSO")
@GridLayout({
@GridLayout.Row({ "url" }),
@GridLayout.Row({ "token" })
})
@Documentation("Datastore for simple input.")
public class SimpleInputDatastore implements Serializable {

@Option
@DefaultValue("http://localhost")
@Documentation("The url to call.")
private String url;

@Option
@Credential
@Documentation("The token to use.")
private String token;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/**
* Copyright (C) 2006-2025 Talend Inc. - www.talend.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.talend.sdk.component.test.connectors.simpleinput;

import java.io.Serializable;

import org.talend.sdk.component.api.component.Icon;
import org.talend.sdk.component.api.component.Version;
import org.talend.sdk.component.api.configuration.Option;
import org.talend.sdk.component.api.input.Emitter;
import org.talend.sdk.component.api.input.Producer;
import org.talend.sdk.component.api.meta.Documentation;
import org.talend.sdk.component.api.record.Record;
import org.talend.sdk.component.api.service.Service;
import org.talend.sdk.component.api.service.record.RecordBuilderFactory;
import org.talend.sdk.component.test.connectors.config.SimpleInputConfiguration;

@Version
@Icon(value = Icon.IconType.CUSTOM, custom = "mapper")
@Emitter(name = "simple-input")
@Documentation("A simple emitter that doesn't expect dynamic dependencies and generated few records.")
public class SimpleInput implements Serializable {

@Service
private RecordBuilderFactory recordBuilderFactory;

private final SimpleInputConfiguration configuration;

private boolean done = false;

public SimpleInput(@Option("configuration") final SimpleInputConfiguration configuration) {
this.configuration = configuration;
}

@Producer
public Record next() {
if (done) {
return null;
}

done = true;

return recordBuilderFactory.newRecordBuilder()
.withString("url", configuration.getDataset().getDatastore().getUrl())
.withString("token", configuration.getDataset().getDatastore().getToken())
.withString("resource", configuration.getDataset().getResource())
.withBoolean("debug", configuration.isDebug())
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ the_family.actions.connection.action_CREATE_CONNECTION_ERROR._displayName = Name
the_family.actions.user.action_USER._displayName = Name: Extension point for custom UI integrations and custom actions
the_family.actions.dataset.action_DISCOVER_DATASET._displayName = Name: Discover the datasets
the_family.actions.connection.action_BUILTIN_SUGGESTABLE._displayName = Name: BuiltInSuggestable
the_family.actions.dynamic_values.action_DYNAMIC_VALUES._displayName = Name: DynamicValues
the_family.actions.dynamic_values.action_DYNAMIC_VALUES._displayName = Name: DynamicValues

# Simple input
the_family.datastore.simpleDSO._displayName = Simple input datastore
the_family.dataset.dataset._displayName = Simple input dataset
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,15 @@ NestedConfig.stringOption2._documentation = Doc: string option 2

Auth.nbAuthRetry._placeholder =
TheDatastore.timeout._placeholder =
InputConfig.date._placeholder =
InputConfig.date._placeholder =

# The simpleInput connector configuration
SimpleInputDatastore.url._displayName = URL
SimpleInputDatastore.token._displayName = Token
SimpleInputDataset.datastore._displayName =
SimpleInputDataset.resource._displayName = Resource
SimpleInputConfiguration.dataset._displayName =
SimpleInputConfiguration.debug._displayName = Debug
SimpleInputDatastore.url._placeholder =
SimpleInputDatastore.token._placeholder =
SimpleInputDataset.resource._placeholder =
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright (C) 2006-2025 Talend Inc. - www.talend.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Here you can change all your configuration display names to use more explicit labels
# You can also translate your configuration by adding one file by local Messages_fr.properties for french for example

the_family.simple-input._displayName = Simple Input
Loading
Loading