Eclipse platform bedolgozóleírás

Verzió: 3.0 - Utolsó felülvizsgálat: 2004. június 24.

A leírófájl alább található kódmeghatározásai különféle elnevezési jelsorokat és azonosítókat használnak. A félreértések elkerülése érdekében néhány [az alábbi szövegben hivatkozott] termékszabály ezekkel kapcsolatban. Általánosságban minden azonosítóban különbözőnek számítanak a kis- és a nagybetűk.

SimpleToken := karaktersorozat ('a-z','A-Z','0-9','_')
ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)
JavaClassName := ComposedToken
PlugInId := ComposedToken
PlugInPrereq := PlugInId | 'export' PlugInId
ExtensionId := SimpleToken
ExtensionPointId := SimpleToken
ExtensionPointReference := ExtensionPointID | (PlugInId '.' ExtensionPointId)

A fejezet további része leírja a plugin.xml fájl szerkezetét DTD töredékek sorozataként. Teljes egészében a plugin.dtd fájl tartalmazza a DTD meghatározást.

<?xml encoding="US-ASCII"?>
<!ELEMENT plugin (requires?, runtime?, extension-point*, extension*)>
<!ATTLIST plugin
 name                CDATA #REQUIRED
 id                  CDATA #REQUIRED
 version             CDATA #REQUIRED 
 provider-name       CDATA #IMPLIED
 class               CDATA #IMPLIED 
>

A <plugin> elem határozza meg a leírófájl törzsét. Nem kötelező jelleggel tartalmazhatja a bedolgozó futási környezet meghatározásait, az ehhez a bedolgozóhoz szükséges más bedolgozók definícióját, bármilyen új, a bedolgozóval bevezetett kiterjesztési pont deklarációját, valamint a (más bedolgozók által megadott kiterjesztési pontokká beállított, vagy ebben a bedolgozóban bevezetett) funkcionális kiterjesztések beállításait. A <plugin> attribútumai a következők:

Az elem* XML DTD felépítési szabály az elem nulla vagy egy; az elem? nulla vagy egy; az elem+ (alább látható) pedig az elem egy vagy több előfordulását jelenti. A fenti <plugin> definícióra épülve ez például azt jelenti, hogy egy csak futási környezet definíciót tartalmazó, de kiterjesztési pont deklarációval vagy kiterjesztési beállításokkal nem rendelkező bedolgozó érvényes (például: közös könyvtárak, amelyektől más bedolgozók függenek). Ugyanígy egy csak kiterjesztési beállításokat tartalmazó (és futási környezettel vagy saját kiterjesztési pontokkal nem rendelkező) bedolgozó is érvényes (például: más bedolgozók által biztosított osztályok más bedolgozók által deklarált kiterjesztési pontokká konfigurálása).

A leírófájl <requires> fejezete deklarálja a többi bedolgozó minden függőségét.

<!ELEMENT requires (import+)>
<!ELEMENT import EMPTY>
<!ATTLIST import
 plugin              CDATA #REQUIRED
 version             CDATA #IMPLIED
 match               (perfect | equivalent | compatible | greaterOrEqual) "compatible"
 export              (true | false) "false"
 optional            (true | false) "false"
>

Minden függőség egy <import> elem használatával került meghatározásra. A kövezkező attribútumokat tartalmazza:

A leírófájl <runtime> része tartalmazza legalább egy könyvtár definícióját, ami futásivá teszi a bedolgozót. A hivatkozott könyvtárakat a platformvégrehajtási mechanizmusok használják (a bedolgozó osztálybetöltő) a bedolgozó által megkívánt helyes kód betöltésére és végrehajtására.

<!ELEMENT runtime (library+)>
<!ELEMENT library (export*, packages?)>
<!ATTLIST library
 name                CDATA #REQUIRED
 type                (code | resource) "code"
>
<!ELEMENT export EMPTY>
<!ATTLIST export
 name                CDATA #REQUIRED
>
<!ELEMENT packages EMPTY>
<!ATTLIST packages
  prefixes           CDATA #REQUIRED
>

A <runtime> elemnek nincsenek attribútumai.

A <library> elemeket együttesen határozza meg a futási bedolgozó. Legalább egy <library> elemnek meg kell lennie adva. Minden <library> elem a következő attribútumokkal rendelkezik:

Minden <library> elem meghatározhatja, hogy a könyvtár melyik részét kell exportálni. Az exportálási szabályok exportálási maszkok készleteként vannak megadva. Alapértelmezésben (nincsenek exportálási szabályok megadva) a könyvtár privátnak számít. Minden exportálási maszk a name attribútum megadásával kerül megadásra, amely a következő értékekkel rendelkezhet:

Csak Eclipse 2.1 bedolgozók esetében: Minden könyvtár meghatározhatja a csomag előtagokat is. Ezek az osztálybetöltési teljesítmény fokozására használhatók a bedolgozók és/vagy a töredékek esetében. Ha a <packages> elem nincs megadva, akkor a rendszer alapértelmezésben nem használja az osztálybetöltési bővítéseket. A <packages> elem a következő attribútumokkal rendelkezik:

A platform architektúrája a beállítható kiterjesztési pontokon alapul. A platform maga előre meghatároz egy kiterjesztési pont készletet, amely lefedi platform és az asztali rendszer kiterjesztésének feladatait (például menüműveletek hozzáadása, beágyazott szerkesztő biztosítása). Az előre meghatározott kiterjesztési pontok mellett minden rendelkezésre álló bedolgozó további kiegészítő kiterjesztési pontokat is deklarálhat. Egy kiterjesztési pont deklarálásával a bedolgozó alapvetően meghirdeti a lehetőséget a bedolgozó szolgáltatásainak beállítására külsőleg biztosított bővítményekkel. A Page Builder bedolgozó deklarálhat például egy kiterjesztési pontot új Design Time Controls (DTC) elemek felvételére összeállítási palettájába. Ez azt jelenti, hogy a Page Builder leírt egy architektúrát, hogy mit is jelent DTC-nek lenni, és megvalósította a kódot, amelyik kikeresi a kiterjesztési pontokká konfigurált DTC kiterjesztéseket.

<!ELEMENT extension-point EMPTY>  
<!ATTLIST extension-point 
 name                CDATA #REQUIRED 
 id                  CDATA #REQUIRED    
 schema              CDATA #IMPLIED 
>

Az <extension-point> elem attribútumai a következők:

Az aktuális kiterjesztések (előre meghatározott, vagy ebben a bedolgozóban újonnan deklarált) kiterjesztési pontokba vannak konfigurálva az <extension> részben. A konfigurációs információk szabályosan formázott XML-ként vannak megadva, <extension> és </extension> címkék között vannak elhelyezve. A platform nem adja meg a konfigurációs leírónyelv aktuális formáját (mást, mint hogy szabályosan formázott XML-nek kell lennie). A leírónyelvet a kiterjesztési pontot deklaráló bedolgozó szállítója határozta meg. A platform ténylegesen nem értelmezi a konfigurációs leírónyelvet. Egyszerűen átadja a konfigurációs információkat a bedolgozónak a kiterjesztési pont feldolgozási folyamatának részeként (akkor, amikor a kiterjesztési pont logika lekérdezi az összes beállított kiterjesztést).

<!ELEMENT extension ANY> 
<!ATTLIST extension 
 point               CDATA #REQUIRED 
 id                  CDATA #IMPLIED 
 name                CDATA #IMPLIED 
>

Az <extension> elem attribútumai a következők:

Fontos: Az <extension> elem tartalma az ANY szabállyal van deklarálva. Ez azt jelenti, hogy bármely szabályosan formázott XML megadható a kiterjesztési konfigurációs részben az <extension> és </extension> címkék között).

A töredékek a bedolgozó hatókörének növelését szolgálják. Példa lehet adatok -- például üzenetek vagy más nyelvű címkék -- befoglalására.

<?xml encoding="US-ASCII"?> 
<!ELEMENT fragment (requires?, runtime?, extension-point*, extension*)>
<!ATTLIST fragment
 name                CDATA #REQUIRED
 id                  CDATA #REQUIRED
 version             CDATA #REQUIRED
 provider-name       CDATA #IMPLIED
 plugin-id           CDATA #REQUIRED
 plugin-version      CDATA #REQUIRED
 match               (perfect | equivalent | compatible | greaterOrEqual) "compatible"
>

Minden töredéknek egy adott bedolgozóhoz kell tartoznia. A társított bedolgozókat a <plugin-id>, a <plugin-version> vagy esetleg a <match> azonosítja. Figyeljen rá, hogy ha ez a specifikáció egynél több bedolgozóhoz megfelelő, a rendszer ezek közül a legmagasabb verziószámút fogja használni.

A töredék <requires>, <runtime>, <extension-point> és <extension> összetevője logikailag hozzáadásra kerül a megfelelő bedolgozóhoz.

A <fragment> attribútumai a következők: