The content below is for Apache Syncope <= 1.2 - for later versions the Reference Guide is available. |
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:
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> |
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 and console/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>
<artifactItem>
<groupId>my.new.connector.groupId</groupId>
<artifactId>my.new.connector.artifactId</artifactId>
<version>${my.new.connector.version}</version>
</artifactItem>
</artifactItems>
</configuration>
<executions>
<execution>
<id>set-bundles</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy</goal>
</goals>
</execution>
</executions>
</plugin> |
Connector bundles can be added or replaced at run-time by just performing the following two steps: