2009-08-23 3 views
1

Wenn ich plugin common habe, mit plugin A und B als separate plugins/products, beide abhängig vom plugin common.Sind externalisierte plugin.xml-Strings für Downstream-Plugins verfügbar?

In Plugin common externarise ich die Zeichenfolgen in plugin.xml, dies gibt mir% bundle-vendor = "Mein Firmenname".

In den nachgeschalteten Plugins A und B kann ich die allgemeine Eigenschaft bundle-vendor für den Anbieter verwenden. Ich habe versucht, die gemeinsame Plugin-ID vor, aber es hat nicht funktioniert. Sollte das möglich sein?

Antwort

0

Soweit ich mich erinnere, sind die plugin.properties außerhalb des Plugins nicht verfügbar. Sie können jedoch einen Eigenschaftentyp (extending org.eclipse.osgi.util.NLS) definieren, um die Eigenschaftendatei automatisch zu laden und sie anderen Plugins zugänglich zu machen.

Jede statische String-Eigenschaft des Typs wird aus den Eigenschaftendatei (en) entsprechend den NLS-Regeln verarbeitet und zur Verfügung gestellt.

Hier ist ein einfaches Beispiel, das die Eigenschaftendatei und füllen Sie die statischen Variablen some_property und some_other_property wenn die Klasse geladen wird, geladen werden.

public class ContentMessages extends NLS { 

    private static final String BUNDLE_NAME = 
     "name.seller.rich.content.messages"; //$NON-NLS-1$ 

    public static String some_property; 
    public static String some_other_property; 

    static { 
     // load message values from bundle file 
     reloadMessages(); 
    } 

    public static void reloadMessages() { 
     NLS.initializeMessages(BUNDLE_NAME, ContentMessages.class); 
    } 
} 
0

Große Antwort Reich. Das einzige, was ich hinzufügen möchte, ist sicherzustellen, dass Sie das Paket/die Klasse im Bündelmanifest verfügbar machen, um sicherzustellen, dass andere Bundles darauf zugreifen können.

Verwandte Themen