I looked at the code and this is how the cartridges are loaded:

<!-- language: java -->

    public static Engine newEngine()
        throws AmbientDataException
    {
        try
        {
            AmbientDataConfig ambientDataConfig = AmbientDataContext.getAmbientDataConfig();
            Set cartridgeDefinitions = new HashSet();
            Configuration config;
            for(Iterator i$ = ambientDataConfig.getCartridgeConfigurations().iterator(); i$.hasNext(); cartridgeDefinitions.add(cartridgeDefinitionFromConfig(config)))
                config = (Configuration)i$.next();

            return new Engine(cartridgeDefinitions);
        }
        catch(ConfigurationException ex)
        {
            LOG.error("Unable to configure the AmbientData Framework", ex);
            throw new AmbientDataException("Error while configuring ambient data framework", ex);
        }
    }


So it "seems" it loads the cartridges from the xml confg file (`cd_ambient_conf.xml`) in the `getCartridgeConfigurations` by executing the following loop:

<!-- language: java -->

    for(Iterator i$ = ConfigurationHelper.getConfigurations(configuration, "/Configuration/Cartridges/Cartridge").iterator(); i$.hasNext(); result.add((new XMLConfigurationReader()).readConfiguration(fileName, "schemas/cd_ambient_cartridge_conf.xsd")))
        {
           ....
        }

Which means they should be loaded in the same order they show in the configuration file.
Further investigation, the cartridges configuration are saved on a `java.util.HashSet` object which by definition it doesn't care about the order of its elements. Copied from the [javadoc][1]:



    public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, Serializable
    This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element.


So I think that answers your question. I don't think there's a way to control the order of the execution. But yet again, let's see if someone from R&D confirms my research.


  [1]: http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html