Skip to content

Commit

Permalink
Do a little less OSGi manifest parsing
Browse files Browse the repository at this point in the history
Parsing is now not done on the initialization of the OSGi bundle datastructures but only when it is actually being displayed on the screen.
  • Loading branch information
bosschaert committed Apr 4, 2013
1 parent 2e5c49f commit 3ce2615
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 13 deletions.
Expand Up @@ -142,7 +142,7 @@
</div>
<div id="collapseExportedPackages" class="accordion-body collapse out">
<table>
<tr ng-repeat="(package, ver) in row.ExportData">
<tr ng-repeat="(package, data) in row.ExportData">
<td><div class="less-big label label-success" id="export.{{package}}">{{package}}</div></td>
</tr>
</table>
Expand Down
5 changes: 3 additions & 2 deletions hawtio-web/src/main/webapp/app/osgi/js/bundle.ts
Expand Up @@ -127,10 +127,11 @@ module Osgi {
placement: "right"});

// setup export popovers
var exportPackageHeaders = Osgi.parseExportPackageHeaders($scope.row.Headers);
for (var pkg in $scope.row.ExportData) {
var po = "<small><table>" +
"<tr><td><strong class='text-info'>Version=</strong>" + $scope.row.ExportData[pkg].ReportedVersion + "</td></tr>";
for (var da in $scope.row.ExportData[pkg]) {
for (var da in exportPackageHeaders[pkg]) {
var type = da.charAt(0);

var separator = "";
Expand All @@ -150,7 +151,7 @@ module Osgi {
continue;
}

var value = $scope.row.ExportData[pkg][da];
var value = exportPackageHeaders[pkg][da];
value = value.replace(/[,]/g, ",<br/>&nbsp;&nbsp;");
po += "<tr><td><strong class='" + txtClass + "'>" + da.substring(1) + "</strong>" + separator + value + "</td></tr>";
}
Expand Down
7 changes: 3 additions & 4 deletions hawtio-web/src/main/webapp/app/osgi/js/helpers.ts
Expand Up @@ -2,7 +2,7 @@ module Osgi {

export function defaultBundleValues(workspace:Workspace, $scope, values) {
angular.forEach(values, (row) => {
row["ExportData"] = handleExportedPackages(row["ExportedPackages"], row["Headers"]);
row["ExportData"] = handleExportedPackages(row["ExportedPackages"]);
row["IdentifierLink"] = bundleLinks(workspace, row["Identifier"]);
row["Hosts"] = bundleLinks(workspace, row["Hosts"]);
row["Fragments"] = bundleLinks(workspace, row["Fragments"]);
Expand Down Expand Up @@ -74,9 +74,8 @@ module Osgi {
return array;
}

export function handleExportedPackages(packages : string[], headers : {}) : {} {
var result = parseExportPackageHeaders(headers);

export function handleExportedPackages(packages : string[]) : {} {
var result = {};
for (var i = 0; i < packages.length; i++) {
var exported = packages[i];
var idx = exported.indexOf(";");
Expand Down
8 changes: 2 additions & 6 deletions hawtio-web/src/test/specs/spec/OSGiSpec.js
Expand Up @@ -57,14 +57,10 @@ describe("OSGi", function() {
});

it("helpers.handleExportedPackages1", function() {
var value = {};
value["Value"] = "org.foo.bar;someattr=1.2.3";
var headers = {};
headers["Export-Package"] = value;
var result = Osgi.handleExportedPackages(["org.foo.bar;1.0.0"], headers);
var result = Osgi.handleExportedPackages(["org.foo.bar;1.0.0"]);

expect(Object.keys(result).length).toEqual(1);
var expected = {Asomeattr: "1.2.3", ReportedVersion: "1.0.0"};
var expected = {ReportedVersion: "1.0.0"};
expect(result["org.foo.bar"]).toEqual(expected);
});
})

0 comments on commit 3ce2615

Please sign in to comment.