Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 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
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**
* 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.api.configuration.type;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import org.talend.sdk.component.api.configuration.type.meta.ConfigurationType;
import org.talend.sdk.component.api.meta.Documentation;

@Target(TYPE)
@Retention(RUNTIME)
@ConfigurationType("dynamicDependenciesConfiguration")
@Documentation("Mark a model (complex object) as being the configuration expected to compute dynamic dependencies.")
public @interface DynamicDependenciesConfiguration {

String value() default "default";
}
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>
38 changes: 38 additions & 0 deletions sample-parent/sample-features/dynamic-dependencies/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Component Runtime :: Sample Feature :: DynamicDependency

## Table of Contents
- [Overview](#overview)
- [Usage](#usage)
- [How to build the connector plugin](#how-to-build-the-sample-connector-plugin)
- [How to use](#how-to-use)


## Overview
This is a test TCK connector plugin to test and validate the DynamicDependency input feature.

This project contains 4 test connectors:
### DynamicDependency with Dataset
The service of this connector use a dataset as parameter.

### DynamicDependency with Datastore
The service of this connector use a datastore as parameter.

### DynamicDependency with Dataprep run annotation
The service of this connector use a new annotation @DynamicDependencySupported.

### DynamicDependency with @DynamicDependenciesConfiguration
The service of this connector use a config which using @DynamicDependenciesConfiguration.

## Usage
### How to build the sample connector plugin
Checkout the code from the repository and build the project using `mvn clean install`
Alternatively build the feature module using `mvn install -am -pl :dynamicdependencies`

### How to use
- Deploy the connector into Studio:
java -jar dynamic-dependencies-with-dataset-1.86.0-SNAPSHOT.car studio-deploy --location c:\Talend-Studio-20251010_0827-V8.0.2SNAPSHOT

- Use the connector in the job.
- Click "Guess schema" of the connector.
- Add others you want to use in the job, then run the job.

Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.sdk.component</groupId>
<artifactId>dynamic-dependencies</artifactId>
<version>1.86.0-SNAPSHOT</version>
</parent>

<!-- All artifacts with group starting by 'org.talend.sdk.component' are automatically excluded -->
<!-- So we changed the group to org.talend.sdk.sample -->
<groupId>org.talend.sdk.sample</groupId>
<artifactId>dynamic-dependencies-common</artifactId>
<packaging>jar</packaging>
<name>Component Runtime :: Sample Feature @DynamicDependency Common</name>

<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<version>1.21.3</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
</exclusion>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-commons</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Automatic-Module-Name>dynamic.dependencies.common</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.talend.sdk.component</groupId>
<artifactId>talend-component-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<id>talend-component-validate</id>
<configuration>
<validateInternationalization>false</validateInternationalization>
<validateDataStore>false</validateDataStore>
<validateDataSet>false</validateDataSet>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<executions>
<execution>
<goals>
<!-- Generate a test-jar to share some test classes with child modules tests. -->
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/**
* 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.sample.feature.dynamicdependencies.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.Data;

@Data
@GridLayout(value = {
@GridLayout.Row({ "groupId", "artifactId", "version", "clazz" })
})
public class Dependency implements Serializable {

@Option
@Documentation("The groupId of the dependency.")
private String groupId;

@Option
@Documentation("The artifactId of the dependency.")
private String artifactId;

@Option
@Documentation("The version of the dependency.")
private String version;

@Option
@Documentation("The class to try to load from this dependency.")
private String clazz;

@Option
@Documentation("The family for depended connector.")
private String connectorFamily;

@Option
@Documentation("The name for depended connector.")
private String connectorName;

@Option
@Documentation("The version for depended connector.")
private int connectorVersion;

@Option
@Documentation("The configuration for depended connector.")
private String connectorConfiguration;


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/**
* 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.sample.feature.dynamicdependencies.config;

import java.util.List;

public interface DynamicDependencyConfig {

List<Dependency> getDependencies();

boolean isEnvironmentInformation();

boolean isDieOnError();

}
Loading
Loading