// This assembly is included in the following assemblies:
// as_customizing.adoc

:context: custom
[id='developing-extensions_{context}']
= Developing {prodname} extensions
:context: extensions

If {prodname} does not provide a feature that is needed to create an
integration, then an expert developer 
can code an extension that provides the needed behavior.  The Syndesis 
extension repository, 
link:https://github.com/syndesisio/syndesis-extensions[], 
contains examples of extensions. 

A business integrator shares requirements with a developer who codes the 
extension. The developer provides a `.jar` file that contains the extension. 
The business integrator uploads the `.jar` file in {prodname} to make the 
custom connector, custom step(s), or library resource available for use 
in {prodname}. 

The Fuse Tooling plugin to Red Hat Developer Studio provides a wizard
that helps you develop a step extension or a connector extension. It is 
a matter of personal preference whether you choose to develop a step
extension or a connector extension in Developer Studio or in some other
IDE. For information about using the Developer Studio plugin, see 
link:{LinkToolingUserGuide}#FuseOnlineExtension[Developing extensions for {prodname} integrations].

In this document, the following topics outline the 
procedure, describe the requirements, and provide additional examples for
developing extensions in an IDE that you choose. 

* xref:procedure-for-developing-extensions_{context}[]
* xref:description-kinds-extensions_{context}[]
* xref:overview-extension-content-structure_{context}[]
* xref:about-extension-definitions_{context}[]
* xref:descriptions-of-user-interface-properties-in-extension-definitions_{context}[]
* xref:using-maven-to-generate-extension-definitions_{context}[]
* xref:how-to-specify-data-shapes_{context}[]
* xref:develop-step-extensions_{context}[]
* xref:develop-connector-extensions_{context}[]
* xref:develop-library-extensions_{context}[]
* xref:creating-jdbc-driver-library-extensions_{context}[]

include::../../modules/customizing/proc-developing-extensions.adoc[leveloffset=+1]

include::../../modules/customizing/con-description-kinds-extensions.adoc[leveloffset=+1]

include::../../modules/customizing/con-overview-extension-content-structure.adoc[leveloffset=+1]

include::../../modules/customizing/con-about-extension-definitions.adoc[leveloffset=+1]

include::../../modules/customizing/ref-descriptions-of-user-interface-properties-in-extension-definitions.adoc[leveloffset=+1]

include::../../modules/customizing/proc-using-maven-to-generate-extension-definitions.adoc[leveloffset=+1]

include::../../modules/customizing/ref-how-to-specify-data-shapes.adoc[leveloffset=+1]

include::assembly-develop-step-extensions.adoc[leveloffset=+1]

include::../../modules/customizing/ref-develop-connector-extensions.adoc[leveloffset=+1]

include::../../modules/customizing/ref-develop-library-extensions.adoc[leveloffset=+1]

include::../../modules/customizing/proc-creating-jdbc-driver-library-extensions.adoc[leveloffset=+1]

:context: custom
