Provided as a JAR file, a ConnId connector bundle implements a consistent generic layer between Syncope and external resources.
The specific connector bundle is always a pre-requisite to link a particular external resource. There is a connector bundle for each linkable external resource type. Obviously, a single connector bundle can be used to link more than one resources of the same type.
Here is the complete list of ready-to-use ConnId bundles; if needed, new connector bundles can also be developed on-purpose.
Connector bundles can be added or replaced:
- only when creating new project from archetype, in project sources;
- for all deployment options, at run-time.
Add or replace connector bundles in project sources
Set different version for predefined bundles
First of all, verify which connector bundles are predefined in your project; check an URL like as
https://repo1.maven.org/maven2/org/apache/syncope/syncope/<syncope.version>/syncope-<syncope.version>.pom
where <syncope.version>
is the Syncope version of your project, so for example https://repo1.maven.org/maven2/org/apache/syncope/syncope/1.2.5/syncope-1.2.5.pom for Syncope 1.2.5.
In that file, find maven-dependency-plugin
's configuration - as example, here it follows the content for Syncope 1.2.5:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <configuration> <outputDirectory>${bundles.directory}</outputDirectory> <artifactItems> <artifactItem> <groupId>net.tirasa.connid.bundles.soap</groupId> <artifactId>net.tirasa.connid.bundles.soap</artifactId> <version>${connid.soap.version}</version> </artifactItem> <artifactItem> <groupId>net.tirasa.connid.bundles</groupId> <artifactId>net.tirasa.connid.bundles.csvdir</artifactId> <version>${connid.csvdir.version}</version> </artifactItem> <artifactItem> <groupId>net.tirasa.connid.bundles.db</groupId> <artifactId>net.tirasa.connid.bundles.db.table</artifactId> <version>${connid.db.table.version}</version> </artifactItem> <artifactItem> <groupId>net.tirasa.connid.bundles</groupId> <artifactId>net.tirasa.connid.bundles.ldap</artifactId> <version>${connid.ldap.version}</version> </artifactItem> <artifactItem> <groupId>net.tirasa.connid.bundles</groupId> <artifactId>net.tirasa.connid.bundles.ad</artifactId> <version>${connid.ad.version}</version> </artifactItem> </artifactItems> </configuration> </plugin>
As you can see, there are several Maven properties controlling the related connector bundle's version.
If you want your own project to use a different version of the same connector bundle, all you need to do is to override the related property in your own project's root pom.xml
.
With reference to Syncope 1.2.5, supposing that you would like to use net.tirasa.connid.bundles.db.table
version 2.2.3-SNAPSHOT
rather than 2.2.2
shipped with Syncope 1.2.5, add the following property to your own project's root pom.xml:
<properties> ... <connid.db.table.version>2.2.3-SNAPSHOT</connid.db.table.version> </properties>
Add non-predefined connector bundle
If the needed connector bundle is not in the predefined set as shown above, you need to
Add a new property into your own project's root
pom.xml
:<properties> ... <my.new.connector.version>1.0.0</my.new.connector.version> </properties>
Change maven-dependency-plugin's configuration both in
core/pom.xml
andconsole/pom.xml
from<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <inherited>true</inherited> <executions> <execution> <id>set-bundles</id> <phase>process-test-resources</phase> <goals> <goal>copy</goal> </goals> </execution> </executions> </plugin>
to
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <inherited>true</inherited> <configuration> <artifactItems> <dependency> <groupId>my.new.connector.groupId</groupId> <artifactId>my.new.connector.artifactId</artifactId> <version>${my.new.connector.version}</version> </dependency> </artifactItems> </configuration> <executions> <execution> <id>set-bundles</id> <phase>process-test-resources</phase> <goals> <goal>copy</goal> </goals> </execution> </executions> </plugin>
Add or replace connector bundles at run-time
Connector bundles can be added or replaced at run-time by just performing the following two steps:
- Download the required connector bundle JAR file;
- Copy the downloaded JAR file into one of configured ConnId locations, e.g. a directory where the other connector bundles are already located in.