Previous Topic: Implementation RecommendationsNext Topic: SDK Sample Connectors


Recommended Implementation Steps

The following are the recommended steps for implementing a new connector:

  1. Use a short indicative prefix for your connector and create a source directory for it under cs-sdk-home/connectors/ using the SDK connector's structure as a template.
    1. Determine whether any useful base classes exist for you to derive your connector and attribute-style processor classes from (this can mean extending an existing connector implementation).
    2. Create new derived classes as required, and verify that they are referenced properly in connector.xml.
    3. Derive basic metadata for the object classes managed by your connector, initially paying particular attention to the top-level namespace and directory level properties and associated metadata settings. In particular the choice of the implementationBundle=value, which must match the value for <property name="name"> your ImplBundle JavaBean in connector.xml.
  2. Implement and test the connection to the endpoint, which requires connector-level metadata settings are complete and correct. Start a new JMeter file for your connector at this stage, and add test steps to it for each additional step. Such a test suite is invaluable, and easy to write if you add to it incrementally during the implementation process.
  3. Implement and test ADD operation (no associations yet).
  4. Implement and test LOOKUP operation (no associations yet). Implement and test early and carefully as the ApacheDS framework on which CA IAM CS is built uses lookup operations internally to verify the sanity of the other operations. Hence, any bugs at this stage are a road-block for the connector's implementation.

    When the array of requested attribute ids is null, all attributes (including expensive ones) should be returned. This behavior differs from the default semantics for search operations.

  5. Implement and test DELETE operation (no associations yet).
  6. Implement and test MODIFY operation (no associations yet). If any multivalued attributes are supported, then carefully consider whether using the forceModificationMode=REPLACE or forceModificationMode=DELTA metadata settings on them aid your implementation.
  7. Implement and test SEARCH operation (no associations yet). Consider the following:
  8. We recommend that you start writing any custom validator and converter plug-ins required by any of your connector’s attributes at this point. As the set of attributes supported by your connector grows, you can add more as required.
  9. Test the connector using the Provisioning Manager or Provisioning Server.

    Important! You could also do test incrementally if desired, but we recommend that you always use JMeter first. You could also delay this integration until the connector is fully implemented, and instead validate entirely using your JMeter test. However, as this integration point can produce problems we recommend that you test the implementation.

  10. Implement association handling logic in the same order as steps 2 - 7. If your connector uses direct associations, consider the following:
  11. Implement and test MODIFYRN operation (including handling of associations), if implemented by your connector.
  12. Implement and test MOVE operations (including handling of associations), if implemented by your connector.
  13. Configure and test resiliency (that is, investigate exceptions and such). We recommend that you test to determine that your connector behaves properly when any of its connection-related attributes are modified at this stage of the implementation. Consider the following:

Note: The corresponding chapters of this documentation sometimes group multiple steps around their associated operation (for example, all aspects of implementing each operation are discussed in the same chapter).