2009-04-27 13 views
1

Le fichier MANIFEST.MF contient une entrée permettant de définir les fichiers * .properties chargés lors de l'exécution. Ces entrées définissent le nom et le fichier de propriétés correspondant qui est utilisé pour traduire les chaînes de plug-ins qui commencent par le préfixe « % », comme « % plugin.name »Utilisation du chemin d'accès au regroupement externe dans le fichier MANIFEST

Bundle-Localization: plugin 

plugin.properties que contient une ligne comme

%plugin.name=Runtime Plugin 

le fichier de propriétés peuvent également avoir le nom application.properties, que je dois définir

Bundle-Localization: application 

Lorsque les fichiers de propriétés sont à l'intérieur d'un plug-in sous dire "propriétés" ctory i peuvent définir

Bundle-Localization: properties/application 

Ma question: Puis-je définir un chemin de localisation Bundle qui est en dehors du plugin, comme

Bundle-Localization: ../properties/application 

Il semble que le L'objet ManifestLocalization qui recherche le chemin du fichier de propriétés demande à ZipFile le chemin. Et ZipPath ne supporte pas cette fonctionnalité.

Comment puis-je résoudre ce problème?

Répondre

3

Non, vous ne pouvez pas définir un chemin hors du plug-in. Bien que les fragments sont considérés en plus du faisceau.

En général, les faisceaux ne sont pas liés à un emplacement sur le disque afin que vous ne pouvez pas vraiment définir où un chemin comme ../properties devrait se résoudre à. Considérons par exemple un paquet installé en utilisant BundleContext#installBundle(String location, InputStream input). Le paramètre location est l'identité du bundle et il n'y a pas de sémantique liée à celui-ci. Le contenu du faisceau est lu dans le flux d'entrée. Que signifierait alors un chemin à l'extérieur du faisceau?