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.environment

Active the developer mode when set to dev

-

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

# 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 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.

Developer mode

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

Studio Reload Button

When clicking on this button, all component developped with the framework will be reloaded. The cache will be invalidated and the component refreshed.

you still need to add/remove the components to see the changes.

This feature is very useful to see some updates in components without having to restart the studio completly.

Scroll to top