// This assembly is included in the following assemblies:
// as_adding-extensions.adoc

[id='making-extensions-available_{context}']
= Making custom features available

To make a custom feature available for use in an integration, upload
the extension to {prodname}.

.Prerequisites
* A developer has provided a `.jar` file that contains a {prodname} extension. 

.Procedure

. In the left {prodname} panel, click *Customizations* > *Extensions*. 
. Click *Import Extension*. 
. Drag and drop, or choose, the `.jar` file that contains the extension 
that you want to upload.
+
{prodname} immediately tries to validate that the file contains an 
extension. If there is a problem, {prodname} displays a message about the error. 
You must coordinate with the extension 
developer to obtain an updated `.jar` file, which you can then try to upload. 

. Review the extension details.
+
After {prodname} validates the file, it extracts and displays the extension's 
name, ID, description, and type. The type indicates whether the extension
defines a custom connector, or one or more custom steps for
operating on data between connections, or a runtime library extension (including a JDBC driver).
+
For a connector extension, {prodname} displays
the actions that are available to a connection that is created from this 
custom connector. In the extension, the developer might have provided an icon 
that {prodname} can use to represent the application connections created
from this connector. While you do not see this icon in the extension
details page, it appears when you create connections
from the custom connector. If the extension developer did not provide
an icon in the extension, then {prodname} generates an icon. 
+
For a step extension, {prodname} displays
the name of each custom step that the extension defines.
+
For a library extension, {prodname} includes the imported Maven dependencies in the integration runtime classpath. You must ensure that the imported Maven dependencies do not conflict with other dependencies that are already used in the integration (including any other library extension, such as a JDBC driver).

. Click *Import Extension*. {prodname} makes the custom connector or 
custom step(s) available and displays the extension's details page. 

.Additional resources

* link:{LinkSyndesisIntegrationGuide}#creating-connections-from-custom-connectors_connections[Creating a connection from a custom connectors].
* link:{LinkSyndesisIntegrationGuide}#add-custom-step_create[Adding a custom step]
* link:{LinkSyndesisConnectorGuide}#connecting-to-proprietary-databases_db[Connecting to a proprietary database]
