The composite DDA is an extension of the DDA architecture introduced with CCF 2009 SP1. It was built to address the issue where you can assign only one DDA type to an application. In some cases, an application might need different technologies, provided by different DDAs to access the required functionality. An example for this could be a Java applet in a web application. You can use the composite DDA in these scenarios. In previous versions of CCF, you had to extend the Java DDA or Web DDA to access the required functionality in these scenarios.
The composite DDA bindings are similar to the other DDAs. The bindings are simply added to a <DataDrivenAdapterBindingsCollection> collection, which supporting adding bindings of different types. The sample below shows a binding collection of three DDAs. However, you can add only one collection per application.
<DataDrivenAdapterBindingsCollection>
<Type>DDAType1, DDAAssembly</Type>
<Controls>
…
</Controls>
</DataDrivenAdapterBindings>
<DataDrivenAdapterBindings prefix="dda1">
<Type>DDAType2, DDAAssembly</Type>
<Controls>
…
</Controls>
</DataDrivenAdapterBindings>
<DataDrivenAdapterBindings prefix="dda2">
<Type>DDAType3, DDAAssembly</Type>
<Controls>
…
</Controls>
</DataDrivenAdapterBindings>
</DataDrivenAdapterBindingsCollection>
Each of the <DataDrivenAdapterBindings> tags can have an optional parameter prefix. This allows using the same control name in different binding sections. If prefix is defined, all controls in this DDA will have this prefix attached to their control name. E.g., if the DDAType2 and DDAType3 have a control defined with the name Button1. The control names used in the automation are dda1Button1 and dda2Button1. However, the recommendation is to use unique control names among the <DataDrivenAdapterBindings> tags that are in one <DataDrivenAdapterBindingsCollection> section.