I'm having an "interesting" issue with the order in which ADF cartridges are executed (I think).
I'm using the "Set Claims as Characteristics" (c2c) cartridge to load device information into a user profile (see also this thread for more background) and this cartridge seems to be executing before the Context Engine, with the unfortunate result that characteristics are being set "one click too late".
Looking at my logs confirms that indeed the c2c cartridge is executed before the engine.
The order of the cartridges in
<Cartridge File="context_engine_cartridge_conf.xml" /> <Cartridge File="c2c.xml" /> <Cartridge File="cd_webservice_preview_cartridge.xml" /> <Cartridge File="footprint_cartridge_conf.xml" />
I've tried setting one of the Output claims of the context engine as an Input claim for the c2c cartridge, but that didn't make a change.
<ClaimProcessorDefinitions> <ClaimProcessorDefinition Uri="taf:custom:personalization" ImplementationClass="com.sdl.tridion.context.personalization.SetClaimsAsCharacteristics"> <RequestStart> <InputClaims> <ClaimDefinition Uri="taf:claim:context:device:tablet" /> </InputClaims> </RequestStart> </ClaimProcessorDefinition> </ClaimProcessorDefinitions>
Any idea how to make sure this cartridge executes after the Context Engine?
After long debugging, the issue was found to be that the Context Engine Cartridge did not define any of its claims as an
OutputClaim and therefore the ADF couldn't detect the dependency. Changing the
context_engine_cartridge_conf.xml to specify at least one output claim "fixed" it. Now I have to go bug the context engine developers...