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][1]" (c2c) cartridge to load device information into a user profile (see also [this thread][2] 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 cd_ambient_conf.xml is:

<!-- language: xml -->

    <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.

<!-- language: xml -->

    <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?

  [1]: https://github.com/NunoLinhares/TridionContextEngineWrapper/tree/master/com/sdl/tridion/context/personalization
  [2]: http://tridion.stackexchange.com/questions/2506/accessing-a-com-tridion-user-user-object-without-a-page-context