analizzarlo in javascript;) Ecco un JSFiddle a pretty-stampa un file OSGi MANIFEST.MF:
http://jsfiddle.net/scotch/5WJwd/embedded/result/
var sectionsText = text.split(/\n\n\n/),
sections = {},
sectionText,
name,
body,
packagesText,
packages,
packageName,
packageBody;
for (var i in sectionsText) {
sectionText = sectionsText[i];
name = sectionText.substr(0, sectionText.indexOf(": "));
body = sectionText.substr(sectionText.indexOf(": ") + 2);
sections[name] = body;
if (name.indexOf("Package") != -1) {
body = body.replace(/[\n\r] /g, '');
body = body.replace(/(,)(?=(?:[^"]|"[^"]*")*$)/g, "$1\n");
packagesText = body.split(/\n/);
packages = {};
for (var i in packagesText) {
packageBody = packagesText[i];
packageName = packageBody.substr(0, packageBody.indexOf(";"));
packageBody = packageBody.substr(packageBody.indexOf(";")+1);
if (collapse) {
packageBody = packageBody.replace(/uses:="[^"]*"/g, 'uses:="..."');
}
packages[packageName] = packageBody;//.replace(/;/g, ';\n');
}
sections[name] = packages;
}
}
Si ordina le voci per ordine alfabetico anche, in modo da poter confrontare loro. Spero che possa essere utile a qualcuno (in particolare persone che si sviluppano al di fuori di Eclipse).
Questo è quasi esattamente quello che stavo cercando: l'editor JAR mostra solo il file manifest come testo normale, ma l'Editor di Bundle BND sembra in grado di aprire un file jar e analizzare e visualizzare il file importa pkgs bene (+1) ma non l'esportazione o pkgs privato (-1). – pauli
In realtà non è corretto. Se hai aggiunto il tuo file Jar al tuo cnf Repository, devi solo cliccare sul bundle nella vista Repository e poi dare un'occhiata alla vista "Imports/Exports". Lì vedrai che tipo di pacchetti saranno importati e che tipo di pacchetti saranno esportati.ma ovviamente non quelli privati, bc sono ancora privati;) –
Nota che nella versione recente di Bndtools puoi installare l'editor JAR come componente autonomo, ovvero non devi installare l'intero Bndtools se non lo fai voglio. –