टेंप्लेट और ट्रेडेड एक्सएमएल कॉन्फ़िगरेशन में शामिल हैं

टेस्ट तय करने के लिए, एक मोनोलिथिक एक्सएमएल कॉन्फ़िगरेशन बनाना हमेशा ज़रूरी नहीं होता है व्यावहारिक. अगर आपको इस तरह के टेस्ट करने के लिए, सेटअप के कुछ हिस्से का फिर से इस्तेमाल करना है, तो दो बड़ी एक्सएमएल फ़ाइलों को कॉपी करना और उनका रखरखाव करना ज़रूरी होगा.

यहां ट्रेडेड एक्सएमएल कॉन्फ़िगरेशन में template और include टैग शामिल होते हैं परिभाषाएं आसानी से देखी जा सकती हैं. इनकी मदद से, कुछ एक्सएमएल में प्लेसहोल्डर सेट किए जा सकते हैं कॉन्फ़िगरेशन का इस्तेमाल करें.

टेंप्लेट की परिभाषा का उदाहरण

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <template-include name="preparers" default="empty" />

    <template-include name="test" default="empty" />

    <template-include name="reporters" default="empty" />
</configuration>

टेंप्लेट, प्लेसहोल्डर होते हैं. साथ ही, इनमें name मौजूद होता है, ताकि उनका रेफ़रंस दिया जा सके. साथ ही, यह ज़रूरी नहीं है default फ़ील्ड. डिफ़ॉल्ट फ़ील्ड, उस डिफ़ॉल्ट रिप्लेसमेंट एक्सएमएल को तय करता है जो इस्तेमाल किया जाना चाहिए.

किसी दिए गए कॉन्फ़िगरेशन के लिए टेंप्लेट को बदलने के लिए, यह निर्देश पैरामीटर को कमांड लाइन में जोड़ना ज़रूरी है:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

उदाहरण के लिए:

<template-include name="preparers" default="empty" />

इस मामले में empty रेफ़रंस, empty.xml कॉन्फ़िगरेशन को दिखाता है में कुछ भी नहीं है; हम इसका इस्तेमाल कुछ नहीं बदलने के लिए करते हैं.

एक्सएमएल कॉन्फ़िगरेशन का पाथ, res/config फ़ोल्डर के ऐब्सलूट या उसके हिसाब से हो सकता है के JAR संसाधनों के लिए इस्तेमाल किया जा सकता है. उनके कुछ स्थान यहां दिए गए हैं:

  • टूल/ट्राडफ़िडरेशन/कोर/रिज़ॉल्यूशन/कॉन्फ़िगरेशन
  • टूल/ट्राडफ़िडरेशन/कोर/टेस्ट/रिज़ॉल्यूशन/कॉन्फ़िगरेशन
  • टूल/ट्रेडडिफ़रेशन/कंट्रिब/रेज़/कॉन्फ़िगरेशन

शामिल की गई परिभाषा का उदाहरण

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

इसमें टेंप्लेट के मुकाबले आसान होते हैं, क्योंकि इनमें किसी कमांड लाइन आर्ग्युमेंट की ज़रूरत नहीं होती; वे name टैग में रेफ़र की गई एक्सएमएल को सीधे बड़ा करते हैं. टेंप्लेट की तरह, कॉन्फ़िगरेशन का पाथ ऐब्सलूट या रिलेटिव हो सकता है. फिर भी, includes के लिए हम सिर्फ़ मिलते-जुलते पाथ का इस्तेमाल करने का सुझाव देते हैं, क्योंकि वे ट्रेडेड में ज़्यादा पोर्टेबल होते हैं. अगर ट्रेडफेड को किसी दूसरी मशीन पर ले जाया जाता है, तो ऐब्सलूट पाथ मान्य नहीं होंगे.

गलत कॉन्फ़िगरेशन

गलत कॉन्फ़िगरेशन के मामले में, जैसे कि जब एक्सएमएल बदला नहीं जाता है, तो ट्रेडफ़ेड, एक ConfigurationException देगा और उसमें यह जानकारी भी दी जाएगी कि वह कैसा दिख रहा है मौजूद नहीं हैं या गलत तरीके से कॉन्फ़िगर किए गए हैं.