Integrating components into Talend Studio

Design

The Studio integration relies on the Component Server (see Web for more details).

When the plugin is deployed, it starts a local server that the Studio uses to gather data about the components.

Installing the components

  1. Copy org.talend.sdk.component.studio-integration.jar in the $STUDIO_HOME/plugins directory of the Studio.

  2. Restart the Studio.

  3. Make sure that the component-server dependencies and commons-cli 1.4 are in the Studio Maven repository.
    If you install any other component, ensure its dependencies are in the repository as well.

you can set the maven.repository value to global in $STUDIO_HOME/configuration/config.ini to reuse your local Maven repository.

Configuring the components

The configuration is done in the $STUDIO_HOME/configuration/config.ini file.

Name

Description

Default

component.environment

Enables the developer mode when set to dev

-

component.debounce.timeout

Specifies the timeout (in milliseconds) before calling listeners in components Text fields

750

component.kit.skip

If set to true, the plugin is not enabled. It is useful if you don’t have any component developed with the framework.

false

component.java.arguments

Component server additional options

-

component.java.m2

Maven repository that the server uses to resolve components

Defaults to the global Studio configuration

component.java.coordinates

A list of comma-separated GAV (groupId:artifactId:version) of components to register

-

component.java.registry

A properties file with values matching component GAV (groupId:artifactId:version) registered at startup

-

component.java.port

Sets the port to use for the server

random

components.server.beam.active

Active, if set to true, beam support (Experimental). It requires beam sdk java core dependencies to be available.

false

component.server.jul.forceConsole

Adds a console handler to JUL to see logs in the console. This can be helpful in development because the formatting is clearer than the OSGi one in workspace/.metadata/.log.

It uses the java.util.logging.SimpleFormatter.format property to define its format. By default, it is %1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%6$s%n, but for development purposes [%4$s] %5$s%6$s%n is simpler and more readable.

false

To activate the plugin and be able to deploy your component, set component.kit.skip to true.

A common developer configuration/config.ini file uses the following specific entries:

configuration/config.ini
# use local .m2 instead of embedded studio one
maven.repository = global

# load these component modules
component.java.coordinates = \
    group1:artifact1:0.0.1,\
    group2:artifact2:0.2.1

# during development, see developer model part
component.environment = dev

# log into the console the component interactions - optional
component.server.jul.forceConsole = true
java.util.logging.SimpleFormatter.format = [%4$s] %5$s%6$s%n

Random port when running concurrent studio instances

If you run multiple Studio instances automatically in parallel, you can run into some issues with the random port computation. For example on a CI platform. For that purpose, you can create the $HOME/.talend/locks/org.talend.sdk.component.studio-integration.lock file.

Then, when a server starts, it acquires a lock on that file and prevents another server to get a port until it is started. It ensures that you can’t have two concurrent processes getting the same port allocated.

However, it is highly unlikely to happen on a desktop. In that case, forcing a different value through component.java.port in your config.ini file is a better solution for local installations.

Developer mode

The developer mode adds a Talend Component Kit button in the main toolbar:

Studio Reload Button

When clicking this button, all components developed with the Talend Component Kit framework are reloaded. The cache is invalidated and the components refreshed.

You still need to add and remove the components to see the changes.

The developer mode can be very useful to see some updates in components without having to restart entirely the Studio.

Scroll to top