Skip to main content
replaced http://tridion.stackexchange.com/ with https://tridion.stackexchange.com/
Source Link

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 threadthis 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 cd_ambient_conf.xml is:

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

UPDATE

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

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 cd_ambient_conf.xml is:

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

UPDATE

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

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 cd_ambient_conf.xml is:

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

UPDATE

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

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 cd_ambient_conf.xmlcd_ambient_conf.xml is:

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

UPDATE

After long debugging, the issue was found to be that the Context Engine Cartridge did not define any of its claims as an "OutputClaim"OutputClaim and therefore the ADF couldn't detect the dependency. Changing the context_engine_cartridge_conf.xmlcontext_engine_cartridge_conf.xml to specify at least one output claim "fixed" it. Now I have to go bug the context engine developers...

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 cd_ambient_conf.xml is:

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

UPDATE

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

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 cd_ambient_conf.xml is:

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

UPDATE

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

deleted 686 characters in body
Source Link
Nuno Linhares
  • 29.1k
  • 3
  • 42
  • 91

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

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

UPDATE

Following the recommendations from Peter Kjaer and Eric HuizaAfter long debugging, I tried defining the tablet uri as an OutputClaim too, my "c2c.xml" now reads:

<ClaimProcessorDefinitions>
    <ClaimProcessorDefinition Uri="taf:custom:personalization" ImplementationClass="com.sdl.tridion.context.personalization.SetClaimsAsCharacteristics">
        <RequestStart>
            <OutputClaims>
                <ClaimDefinition Uri="taf:claim:context:device:tablet" />
            </OutputClaims>
        </RequestStart>
    </ClaimProcessorDefinition>
    <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>

No change so far. Itissue was also my understandingfound to be that the Context Engine Cartridge did not define any of its claims as an "OutputClaim" and therefore the ADF would check input/output dependenciescouldn't detect the dependency. Changing the context_engine_cartridge_conf.xml to specify at least one output claim "fixed" it. timeNow I have to blow upgo bug the log levelcontext engine developers. [1]: https://github.com/NunoLinhares/TridionContextEngineWrapper/tree/master/com/sdl/tridion/context/personalization [2]: Accessing a com.tridion.user.User object without a page context?..

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:

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

UPDATE

Following the recommendations from Peter Kjaer and Eric Huiza, I tried defining the tablet uri as an OutputClaim too, my "c2c.xml" now reads:

<ClaimProcessorDefinitions>
    <ClaimProcessorDefinition Uri="taf:custom:personalization" ImplementationClass="com.sdl.tridion.context.personalization.SetClaimsAsCharacteristics">
        <RequestStart>
            <OutputClaims>
                <ClaimDefinition Uri="taf:claim:context:device:tablet" />
            </OutputClaims>
        </RequestStart>
    </ClaimProcessorDefinition>
    <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>

No change so far. It was also my understanding that the ADF would check input/output dependencies... time to blow up the log level. [1]: https://github.com/NunoLinhares/TridionContextEngineWrapper/tree/master/com/sdl/tridion/context/personalization [2]: Accessing a com.tridion.user.User object without a page context?

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 cd_ambient_conf.xml is:

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

UPDATE

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

Added more information
Source Link
Nuno Linhares
  • 29.1k
  • 3
  • 42
  • 91
Loading
Tweeted twitter.com/#!/StackTridion/status/388323796475969536
Source Link
Nuno Linhares
  • 29.1k
  • 3
  • 42
  • 91
Loading