Talend Component Studio Integration

Design

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

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

Installation

Copy org.talend.sdk.component.studio-integration.jar in the $STUDIO_HOME/plugins directory and restart the studio.

Also ensure the component-server dependencies and commons-cli 1.4 are into the Studio maven repository. If you install any component, ensure its dependencies are in the repository as well.

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

Configuration

The configuration goes into $STUDIO_HOME/configuration/config.ini.

Name

Description

Default

component.debounce.timeout

Specifies timeout in milliseconds before calling listeners in components Text fields

750

component.kit.skip

If true the plugin is not active. Useful if you don’t have any component develop with the framework.

false

component.java.arguments

Component server additional options

-

component.java.m2

The maven repository the server uses to resolve components

default to 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) which are registered at startup

-

component.java.port

Set a 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 dev since the formatting will be better than the OSGi one in workspace/.metadata/.log.

it uses java.util.logging.SimpleFormatter.format property to define its format. Default 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, don’t forget to set component.kit.skip to true.

A common developer configuration/config.ini will use the following specific entries:

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

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

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

Random port when running concurrent studio instances

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

When a server will start it will acquire a lock on that file and prevent another one to get a port until it is started. It ensures you can’t get two concurrent processes getting the same allocated port.

it is highly unlikely it happens on a desktop and forcing a different value through component.java.port in your config.ini is likely a better solution for local installations.
Scroll to top