Before implementing a component logic and configuration, you need to specify the family and the category it belongs to, the component type and name, as well as its name and a few other generic parameters. This set of metadata, and more particularly the family, categories and component type, is mandatory to recognize and load the component to Talend Studio or Cloud applications.
Some of these parameters are handled at the project generation using the starter, but can still be accessed and updated later on.
Component family and categories
The family and category of a component is automatically written in the package-info.java
of the component package, using the @Components
annotation. By default, these parameters are already configured in this file when you import your project in your IDE. Their value correspond to what was defined during the project definition with the starter.
Multiple components can share the same family
and category
value, but the family
+ name
pair must be unique for the system.
A component can belong to one family only and to one or several categories. If not specified, the category defaults to Misc
.
The package-info.java
also defines the component family icon, which is different from the component icon. You can learn how to customize this icon in this section.
Here is a sample package-info.java
:
@Components(name = "my_component_family", categories = "My Category")
package org.talend.sdk.component.sample;
import org.talend.sdk.component.api.component.Components;
Another example with an existing component:
@Components(name = "Salesforce", categories = {"Business", "Cloud"})
package org.talend.sdk.component.sample;
import org.talend.sdk.component.api.component.Components;
Component icon and version
Components can require metadata to be integrated in Talend Studio or Cloud platforms.
Metadata is set on the component class and belongs to the org.talend.sdk.component.api.component
package.
When you generate your project and import it in your IDE, icon and version both come with a default value.
-
@Icon: Sets an icon key used to represent the component. You can use a custom key with the
custom()
method but the icon may not be rendered properly. The icon defaults to Star.
Learn how to set a custom icon for your component in this section. -
@Version: Sets the component version. 1 by default.
Learn how to manage different versions and migrations between your component versions in this section.
@Version(1)
@Icon(FILE_XML_O)
@PartitionMapper(name = "jaxbInput")
public class JaxbPartitionMapper implements Serializable {
// ...
}
Defining a custom icon for a component or component family
Every component family and component needs to have a representative icon.
You can use one of the icons provided by the framework or you can use a custom icon.
-
For the component family the icon is defined in the
package-info.java
file. -
For the component itself, you need to declare the icon in the component class.
To use a custom icon, you need to have the icon file placed in the resources/icons
folder of the project.
The icon file needs to have a name following the convention IconName_icon32.png
, where you can replace IconName
by the name of your choice.
@Icon(value = Icon.IconType.CUSTOM, custom = "IconName")