You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ld...@apache.org on 2012/02/10 15:50:43 UTC

svn commit: r1242797 [1/3] - in /karaf/webconsole/trunk: assembly/src/main/resources/ core/src/test/java/org/apache/karaf/webconsole/core/page/ osgi/ osgi/blueprint/ osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/ osgi/blueprin...

Author: ldywicki
Date: Fri Feb 10 14:50:38 2012
New Revision: 1242797

URL: http://svn.apache.org/viewvc?rev=1242797&view=rev
Log:
Merge of osgi framework and bundle modules into core module. All dependant changes + features update. Add new pages to core - services and package introspection (needs more work).

Added:
    karaf/webconsole/trunk/core/src/test/java/org/apache/karaf/webconsole/core/page/SecuredPageTest.java
    karaf/webconsole/trunk/osgi/core/
    karaf/webconsole/trunk/osgi/core/NOTICE
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/NOTICE
    karaf/webconsole/trunk/osgi/core/pom.xml
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/pom.xml
    karaf/webconsole/trunk/osgi/core/src/
    karaf/webconsole/trunk/osgi/core/src/main/
    karaf/webconsole/trunk/osgi/core/src/main/java/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/BundleActionsPanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/DecorationPanel.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/SystemBundleDecorationProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/SystemBundleDecorationProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ExportPackage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ImportPackage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ManifestUtil.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/Package.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/navigation/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/navigation/OsgiConsoleTabProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/navigation/OsgiConsoleTabProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ClauseModel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ExportPackageTable.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderDataProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderTable.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ImportPackageTable.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/PackagePage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/WicketClause.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesColumn.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesPanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/DirectivesColumn.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/DirectivesPanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/PackageColumn.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/PackagePanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionColumn.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionPanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/VersionColumn.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/VersionRangeColumn.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/ServiceDetailPage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/list/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/service/list/ServicePage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/BundleDataProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesDataProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/BundleModel.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/BundleModel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/MissingServiceReferenceException.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/model/MissingServiceReferenceException.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/OsgiPage.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/OsgiPage.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/ServiceDataProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/ServiceReferenceModel.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/model/ServiceReferenceModel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/State.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/State.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/shared/SystemBundleModel.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/SystemBundleModel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IActionProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/IActionProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IColumnProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/IColumnProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/spi/IDecorationProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/IDecorationProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/widget/
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/widget/OsgiWidgetPanel.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/OsgiWidgetPanel.java
    karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/widget/OsgiWidgetProvider.java
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/OsgiWidgetProvider.java
    karaf/webconsole/trunk/osgi/core/src/main/resources/
    karaf/webconsole/trunk/osgi/core/src/main/resources/OSGI-INF/
    karaf/webconsole/trunk/osgi/core/src/main/resources/OSGI-INF/blueprint/
    karaf/webconsole/trunk/osgi/core/src/main/resources/OSGI-INF/blueprint/framework.xml
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/resources/OSGI-INF/blueprint/framework.xml
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/FrameworkPage.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/resources/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/list/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/list/DecorationPanel.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/list/decoration.css
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/decoration.css
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/bundle/list/system.gif
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/system.gif
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/PackagePage.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/column/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesPanel.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/column/DirectivesPanel.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/column/PackagePanel.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/pkg/column/ResolutionPanel.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/service/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/service/list/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/service/list/ServicePage.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.html
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/widget/
    karaf/webconsole/trunk/osgi/core/src/main/resources/org/apache/karaf/webconsole/osgi/core/widget/OsgiWidgetPanel.html
      - copied, changed from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/resources/org/apache/karaf/webconsole/osgi/framework/internal/OsgiWidgetPanel.html
Removed:
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/model/MissingServiceReferenceException.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/model/ServiceReferenceModel.java
    karaf/webconsole/trunk/osgi/bundle/NOTICE
    karaf/webconsole/trunk/osgi/bundle/pom.xml
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/IActionProvider.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/IColumnProvider.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/IDecorationProvider.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundleNavigationProvider.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesDataProvider.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/DetailsPage.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/State.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/BundleActionsPanel.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/BundlesDataTable.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.java
    karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/SystemBundleDecorationProvider.java
    karaf/webconsole/trunk/osgi/bundle/src/main/resources/OSGI-INF/blueprint/osgi.xml
    karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.html
    karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/DetailsPage.html
    karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.html
    karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/decoration.css
    karaf/webconsole/trunk/osgi/bundle/src/main/resources/org/apache/karaf/webconsole/osgi/bundle/internal/view/system.gif
    karaf/webconsole/trunk/osgi/framework/NOTICE
    karaf/webconsole/trunk/osgi/framework/pom.xml
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/BundleModel.java
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/OsgiPage.java
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/SystemBundleModel.java
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.java
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/OsgiWidgetPanel.java
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/OsgiWidgetProvider.java
    karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/navigation/OsgiConsoleTabProvider.java
    karaf/webconsole/trunk/osgi/framework/src/main/resources/OSGI-INF/blueprint/framework.xml
    karaf/webconsole/trunk/osgi/framework/src/main/resources/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.html
    karaf/webconsole/trunk/osgi/framework/src/main/resources/org/apache/karaf/webconsole/osgi/framework/internal/OsgiWidgetPanel.html
Modified:
    karaf/webconsole/trunk/assembly/src/main/resources/features.xml
    karaf/webconsole/trunk/osgi/blueprint/pom.xml
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintDecorationProvider.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java
    karaf/webconsole/trunk/osgi/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml
    karaf/webconsole/trunk/osgi/config/pom.xml
    karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java
    karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationNavigationProvider.java
    karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java
    karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java
    karaf/webconsole/trunk/osgi/event/pom.xml
    karaf/webconsole/trunk/osgi/event/src/main/java/org/apache/karaf/webconsole/osgi/event/EventsPage.java
    karaf/webconsole/trunk/osgi/log/pom.xml
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogEntriesDataProvider.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogEntryModel.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogNavigationProvider.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/LogsPage.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/Options.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/OptionsForm.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/Priority.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/search/BundleMatcher.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/search/DateFromMatcher.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/search/DateToMatcher.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/search/Matcher.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/search/MessageMatcher.java
    karaf/webconsole/trunk/osgi/log/src/main/java/org/apache/karaf/webconsole/osgi/log/search/PriorityMatcher.java
    karaf/webconsole/trunk/osgi/pom.xml
    karaf/webconsole/trunk/osgi/scr/pom.xml
    karaf/webconsole/trunk/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrColumnProvider.java
    karaf/webconsole/trunk/osgi/scr/src/main/java/org/apache/karaf/webconsole/osgi/scr/ScrDecorationProvider.java
    karaf/webconsole/trunk/osgi/scr/src/main/resources/OSGI-INF/column.xml
    karaf/webconsole/trunk/osgi/scr/src/main/resources/OSGI-INF/decoration.xml

Modified: karaf/webconsole/trunk/assembly/src/main/resources/features.xml
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/assembly/src/main/resources/features.xml?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/assembly/src/main/resources/features.xml (original)
+++ karaf/webconsole/trunk/assembly/src/main/resources/features.xml Fri Feb 10 14:50:38 2012
@@ -41,8 +41,7 @@
   <feature name="webconsole-osgi" version="${project.version}" description="Karaf WebConsole OSGi Core">
     <details>Adds support for osgi packages to the webconsole.</details>
     <feature>webconsole-core</feature>
-    <bundle>mvn:org.apache.karaf.webconsole.osgi/org.apache.karaf.webconsole.osgi.framework/${project.version}</bundle>
-    <bundle>mvn:org.apache.karaf.webconsole.osgi/org.apache.karaf.webconsole.osgi.bundle/${project.version}</bundle>
+    <bundle>mvn:org.apache.karaf.webconsole.osgi/org.apache.karaf.webconsole.osgi.core/${project.version}</bundle>
   </feature>
 
   <feature name="webconsole-config" version="${project.version}" description="Karaf WebConsole OSGi ConfigurationAdmin">
@@ -82,7 +81,7 @@
     <details>Adds support for osgi Service Components. This feature also install felix scr runtime.</details>
     <feature>webconsole-osgi</feature>
     <bundle>mvn:org.apache.felix/org.apache.felix.scr/${felix-scr.version}</bundle>
-    <bundle>mvn:org.apache.karaf.webconsole.osgi/org.apache.karaf.webconsole.osgi.log/${project.version}</bundle>
+    <bundle>mvn:org.apache.karaf.webconsole.osgi/org.apache.karaf.webconsole.osgi.scr/${project.version}</bundle>
   </feature>
 
 </features>

Added: karaf/webconsole/trunk/core/src/test/java/org/apache/karaf/webconsole/core/page/SecuredPageTest.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/core/src/test/java/org/apache/karaf/webconsole/core/page/SecuredPageTest.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/core/src/test/java/org/apache/karaf/webconsole/core/page/SecuredPageTest.java (added)
+++ karaf/webconsole/trunk/core/src/test/java/org/apache/karaf/webconsole/core/page/SecuredPageTest.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.core.page;
+
+import org.apache.karaf.webconsole.core.WebConsoleTest;
+import org.apache.karaf.webconsole.core.test.AlwaysAuthenticatedWebSession;
+import org.apache.wicket.authentication.AuthenticatedWebSession;
+import org.apache.wicket.util.tester.WicketTester;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+
+/**
+ * Test secured page and navigation rendering.
+ */
+@RunWith(BlockJUnit4ClassRunner.class)
+public class SecuredPageTest extends WebConsoleTest {
+
+    /**
+     * Test logout link behavior.
+     */
+    @Test
+    public void shouldRenderLogoutLink() {
+        WicketTester tester = new WicketTester(application);
+
+        tester.startPage(SinglePage.class);
+        tester.debugComponentTrees();
+        tester.clickLink("topPanel:logoutLink");
+        tester.assertRenderedPage(LoginPage.class);
+    }
+
+    protected Class<? extends AuthenticatedWebSession> getWebSessionClass() {
+        return AlwaysAuthenticatedWebSession.class;
+    }
+
+}

Modified: karaf/webconsole/trunk/osgi/blueprint/pom.xml
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/pom.xml?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/pom.xml (original)
+++ karaf/webconsole/trunk/osgi/blueprint/pom.xml Fri Feb 10 14:50:38 2012
@@ -33,8 +33,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.karaf.webconsole.osgi</groupId>
-            <artifactId>org.apache.karaf.webconsole.osgi.bundle</artifactId>
-            <version>${project.version}</version>
+            <artifactId>org.apache.karaf.webconsole.osgi.core</artifactId>
         </dependency>
 
         <dependency>

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintDataProvider.java Fri Feb 10 14:50:38 2012
@@ -20,7 +20,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.karaf.webconsole.osgi.blueprint.model.ServiceReferenceModel;
+import org.apache.karaf.webconsole.osgi.core.shared.ServiceReferenceModel;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.model.IModel;
 import org.osgi.framework.ServiceReference;

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/BlueprintPage.java Fri Feb 10 14:50:38 2012
@@ -48,7 +48,7 @@ public class BlueprintPage extends Singl
 
                 PageParameters params = new PageParameters();
                 params.put("bundleId", reference.getBundle().getBundleId());
-                item.add(new BookmarkablePageLink<DetailsPage>("details", DetailsPage.class, params));
+                item.add(new BookmarkablePageLink<SingleBundlePage>("details", SingleBundlePage.class, params));
             }
             
         });

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintActionProvider.java Fri Feb 10 14:50:38 2012
@@ -18,7 +18,7 @@ package org.apache.karaf.webconsole.osgi
 
 import org.apache.karaf.webconsole.osgi.blueprint.IBlueprintBundleStateTracker;
 import org.apache.karaf.webconsole.osgi.blueprint.details.DetailsPage;
-import org.apache.karaf.webconsole.osgi.bundle.IActionProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IActionProvider;
 import org.apache.wicket.Component;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintColumnProvider.java Fri Feb 10 14:50:38 2012
@@ -18,7 +18,7 @@ package org.apache.karaf.webconsole.osgi
 
 import org.apache.karaf.webconsole.osgi.blueprint.BlueprintState;
 import org.apache.karaf.webconsole.osgi.blueprint.IBlueprintBundleStateTracker;
-import org.apache.karaf.webconsole.osgi.bundle.IColumnProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IColumnProvider;
 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintDecorationProvider.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintDecorationProvider.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintDecorationProvider.java (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/bundle/BlueprintDecorationProvider.java Fri Feb 10 14:50:38 2012
@@ -18,7 +18,7 @@ package org.apache.karaf.webconsole.osgi
 
 import org.apache.karaf.webconsole.core.panel.StaticImagePanel;
 import org.apache.karaf.webconsole.osgi.blueprint.IBlueprintBundleStateTracker;
-import org.apache.karaf.webconsole.osgi.bundle.IDecorationProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IDecorationProvider;
 import org.apache.wicket.ResourceReference;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/java/org/apache/karaf/webconsole/osgi/blueprint/details/DetailsPage.java Fri Feb 10 14:50:38 2012
@@ -19,7 +19,7 @@ package org.apache.karaf.webconsole.osgi
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.karaf.webconsole.osgi.framework.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.JavascriptPackageResource;
 import org.apache.wicket.markup.html.basic.Label;

Modified: karaf/webconsole/trunk/osgi/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ karaf/webconsole/trunk/osgi/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml Fri Feb 10 14:50:38 2012
@@ -33,7 +33,7 @@
 
     <bean id="tracker" class="org.apache.karaf.webconsole.osgi.blueprint.BlueprintBundleStateTracker" />
 
-    <service interface="org.apache.karaf.webconsole.osgi.bundle.IActionProvider">
+    <service auto-export="interfaces">
         <bean class="org.apache.karaf.webconsole.osgi.blueprint.bundle.BlueprintActionProvider">
             <argument ref="trackerService" />
         </bean>

Modified: karaf/webconsole/trunk/osgi/config/pom.xml
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/config/pom.xml?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/config/pom.xml (original)
+++ karaf/webconsole/trunk/osgi/config/pom.xml Fri Feb 10 14:50:38 2012
@@ -33,8 +33,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.karaf.webconsole.osgi</groupId>
-            <artifactId>org.apache.karaf.webconsole.osgi.framework</artifactId>
-            <version>${project.version}</version>
+            <artifactId>org.apache.karaf.webconsole.osgi.core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>

Modified: karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java (original)
+++ karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationEditPage.java Fri Feb 10 14:50:38 2012
@@ -24,7 +24,7 @@ import org.apache.karaf.webconsole.core.
 import org.apache.karaf.webconsole.core.table.map.MapDataTable;
 import org.apache.karaf.webconsole.core.util.DictionaryUtils;
 import org.apache.karaf.webconsole.osgi.config.model.ConfigurationModel;
-import org.apache.karaf.webconsole.osgi.framework.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.Session;

Modified: karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationNavigationProvider.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationNavigationProvider.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationNavigationProvider.java (original)
+++ karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationNavigationProvider.java Fri Feb 10 14:50:38 2012
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.karaf.webconsole.osgi.config;
 
 import static org.apache.karaf.webconsole.core.util.LinkUtils.createPageLink;
@@ -9,6 +25,9 @@ import org.apache.karaf.webconsole.core.
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.link.Link;
 
+/**
+ * Navigation provider for configurations.
+ */
 public class ConfigurationNavigationProvider implements NavigationProvider {
 
     public List<Link<Page>> getItems(String componentId, String labelId) {

Modified: karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java (original)
+++ karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationRemovePage.java Fri Feb 10 14:50:38 2012
@@ -18,7 +18,7 @@ package org.apache.karaf.webconsole.osgi
 
 import org.apache.karaf.webconsole.osgi.config.model.ConfigurationModel;
 import org.apache.karaf.webconsole.osgi.config.view.ConfigurationRemoveForm;
-import org.apache.karaf.webconsole.osgi.framework.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 import org.ops4j.pax.wicket.api.PaxWicketBean;

Modified: karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java?rev=1242797&r1=1242796&r2=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java (original)
+++ karaf/webconsole/trunk/osgi/config/src/main/java/org/apache/karaf/webconsole/osgi/config/ConfigurationsPage.java Fri Feb 10 14:50:38 2012
@@ -17,7 +17,7 @@
 package org.apache.karaf.webconsole.osgi.config;
 
 import org.apache.karaf.webconsole.osgi.config.view.ConfigurationsDataTable;
-import org.apache.karaf.webconsole.osgi.framework.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
 import org.apache.wicket.markup.html.CSSPackageResource;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;

Copied: karaf/webconsole/trunk/osgi/core/NOTICE (from r1242787, karaf/webconsole/trunk/osgi/bundle/NOTICE)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/NOTICE?p2=karaf/webconsole/trunk/osgi/core/NOTICE&p1=karaf/webconsole/trunk/osgi/bundle/NOTICE&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
    (empty)

Copied: karaf/webconsole/trunk/osgi/core/pom.xml (from r1242787, karaf/webconsole/trunk/osgi/framework/pom.xml)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/pom.xml?p2=karaf/webconsole/trunk/osgi/core/pom.xml&p1=karaf/webconsole/trunk/osgi/framework/pom.xml&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/framework/pom.xml (original)
+++ karaf/webconsole/trunk/osgi/core/pom.xml Fri Feb 10 14:50:38 2012
@@ -26,8 +26,8 @@
     </parent>
 
     <groupId>org.apache.karaf.webconsole.osgi</groupId>
-    <artifactId>org.apache.karaf.webconsole.osgi.framework</artifactId>
-    <name>Apache Karaf :: WebConsole :: OSGi :: Framework</name>
+    <artifactId>org.apache.karaf.webconsole.osgi.core</artifactId>
+    <name>Apache Karaf :: WebConsole :: OSGi :: Core</name>
     <packaging>bundle</packaging>
 
     <dependencies>
@@ -40,6 +40,25 @@
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.utils</artifactId>
+            <version>1.1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.10</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>1.6.4</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
@@ -50,18 +69,37 @@
                 <configuration>
                     <instructions>
                         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Export-Package>
+                            org.apache.karaf.webconsole.osgi.core.spi,
+                            org.apache.karaf.webconsole.osgi.core.shared
+                        </Export-Package>
                         <Import-Package>
-                            !org.apache.karaf.webconsole.osgi.framework*,
+                            !org.apache.karaf.webconsole.osgi.core*,
                             *,<!-- let bnd import direct dependencies -->
                             <!-- transient dependencies -->
                             org.ops4j.pax.wicket.api,
                             org.ops4j.pax.wicket.util,
                             org.ops4j.pax.wicket.util.proxy
                         </Import-Package>
+                        <Private-Package>
+                            org.apache.karaf.webconsole.osgi.core*,
+                            <!-- manifest parsing -->
+                            org.apache.felix.utils.manifest,
+                            org.apache.felix.utils.version
+                        </Private-Package>
                     </instructions>
                 </configuration>
                 <extensions>true</extensions>
             </plugin>
         </plugins>
     </build>
+
+
+    <repositories>
+        <repository>
+		    <id>com.springsource.repository.bundles.release</id>
+		    <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
+		    <url>http://repository.springsource.com/maven/bundles/release</url>
+		</repository>
+    </repositories>
 </project>

Copied: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java (from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.java)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java?p2=karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java&p1=karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.java&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/internal/FrameworkPage.java (original)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/FrameworkPage.java Fri Feb 10 14:50:38 2012
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.webconsole.osgi.framework.internal;
+package org.apache.karaf.webconsole.osgi.core;
 
-import org.apache.karaf.webconsole.osgi.framework.OsgiPage;
-import org.apache.karaf.webconsole.osgi.framework.SystemBundleModel;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.SystemBundleModel;
 import org.apache.wicket.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.CompoundPropertyModel;

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/SingleBundlePage.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.osgi.core.bundle;
+
+import java.io.IOException;
+
+import org.apache.karaf.webconsole.core.security.SecuredPageLink;
+import org.apache.karaf.webconsole.osgi.core.pkg.ExportPackageTable;
+import org.apache.karaf.webconsole.osgi.core.pkg.ImportPackageTable;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.Link;
+import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
+import org.osgi.framework.Bundle;
+
+@PaxWicketMountPoint(mountPoint = "/osgi/bundle/detail")
+public class SingleBundlePage extends OsgiPage {
+
+    public static String BUNDLE_ID = "bundleId";
+
+    private long bundleId;
+
+    public SingleBundlePage(PageParameters params) throws IOException {
+        bundleId = params.getLong("bundleId");
+        Bundle bundle = context.getBundle(bundleId);
+
+        //ExportedPackage[] exported = admin.getExportedPackages(bundle);
+
+        add(new Label("name", bundle.getSymbolicName()).setRenderBodyOnly(true));
+
+//        String object = (String) bundle.getHeaders().get(Constants.IMPORT_PACKAGE);
+//        if (object == null) object = "";
+        add(new ImportPackageTable("imports", bundle));
+
+//        add(new ListView<Package>("imports", parser.getImportPackages()) {
+//            @Override
+//            protected void populateItem(ListItem<Package> item) {
+//                Package model = item.getModelObject();
+//                String value = model.getName();
+//                item.add(new Label("importPackage", value));
+//            }
+//        });
+
+        add(new ExportPackageTable("exports", bundle));
+
+//        IModel<List<ServiceReference>> model = new LoadableDetachableModel<List<ServiceReference>>() {
+//            @Override
+//            protected List<ServiceReference> load() {
+//                return Arrays.asList(context.getBundle(bundleId).getServicesInUse());
+//            }
+//        };
+//
+//        add(new ListView<ServiceReference>("servicesIn", model) {
+//            @Override
+//            protected void populateItem(ListItem<ServiceReference> item) {
+//                ServiceReference reference = item.getModelObject();
+//                item.add(new Label("serviceInUse", Arrays.toString((String[]) reference.getProperty("objectClass"))));
+//            }
+//        });
+//
+//        model = new LoadableDetachableModel<List<ServiceReference>>() {
+//            @Override
+//            protected List<ServiceReference> load() {
+//                return Arrays.asList(context.getBundle(bundleId).getRegisteredServices());
+//            }
+//        };
+//
+//        add(new ListView<ServiceReference>("servicesOut", model) {
+//            @Override
+//            protected void populateItem(ListItem<ServiceReference> item) {
+//                ServiceReference reference = item.getModelObject();
+//                item.add(new Label("serviceExported", Arrays.toString((String[]) reference.getProperty("objectClass"))));
+//            }
+//        });
+    }
+
+//    public static void main(String[] args) throws IOException {
+//        Manifest manifest = new Manifest(new FileInputStream("target/classes/META-INF/MANIFEST.MF"));
+//        Attributes mainAttributes = manifest.getMainAttributes();
+//
+//        Map<String, Map<String, String>> keySet = OSGiHeader.parseHeader(manifest.getMainAttributes().getValue(Constants.IMPORT_PACKAGE));
+//        System.out.println(keySet);
+//
+////        for (Entry<Object, Object> string : mainAttributes.entrySet()) {
+////            System.out.println(OSGiHeader.parseHeader("" + string.getValue()));
+////        }
+//    }
+
+    /**
+     * Create link to page with given bundle.
+     * 
+     * @param id Link id.
+     * @param bundle Bundle.
+     * @return Link to page.
+     */
+    public static Link<SingleBundlePage> createLink(String id, Bundle bundle) {
+        return createLink(id, bundle.getBundleId());
+    }
+
+    /**
+     * Create link to page with given bundle id..
+     * 
+     * @param id Link id.
+     * @param bundleId Bundle identifier.
+     * @return Link to page.
+     */
+    public static Link<SingleBundlePage> createLink(String id, long bundleId) {
+        PageParameters params = new PageParameters();
+        params.put(BUNDLE_ID, bundleId);
+        return new SecuredPageLink<SingleBundlePage>(id, SingleBundlePage.class, params);
+    }
+
+}

Copied: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java (from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/BundleActionsPanel.java)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java?p2=karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java&p1=karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/BundleActionsPanel.java&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/BundleActionsPanel.java (original)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundleActionsPanel.java Fri Feb 10 14:50:38 2012
@@ -14,16 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.webconsole.osgi.bundle.internal.view;
+package org.apache.karaf.webconsole.osgi.core.bundle.list;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.karaf.webconsole.core.table.ActionsPanel;
-import org.apache.karaf.webconsole.osgi.bundle.IActionProvider;
-import org.apache.karaf.webconsole.osgi.bundle.internal.BundlesPage;
-import org.apache.karaf.webconsole.osgi.bundle.internal.DetailsPage;
-import org.apache.karaf.webconsole.osgi.bundle.internal.State;
+import org.apache.karaf.webconsole.osgi.core.bundle.SingleBundlePage;
+import org.apache.karaf.webconsole.osgi.core.shared.State;
+import org.apache.karaf.webconsole.osgi.core.spi.IActionProvider;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.Session;
@@ -66,7 +65,7 @@ public class BundleActionsPanel extends 
         List<Link> links = new ArrayList<Link>();
 
         // details link
-        Link link = new BookmarkablePageLink<DetailsPage>(linkId, DetailsPage.class, params);
+        Link link = new BookmarkablePageLink<SingleBundlePage>(linkId, SingleBundlePage.class, params);
         link.add(new Label("label", "Details"));
 
         links.add(link);
@@ -96,7 +95,7 @@ public class BundleActionsPanel extends 
                     bundle.uninstall();
 
                     Session.get().info("Bundle " + bundle.getSymbolicName() + " uninstalled");
-                    RequestCycle.get().setResponsePage(BundlesPage.class);
+                    RequestCycle.get().setResponsePage(BundlePage.class);
                 } catch (BundleException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
@@ -116,7 +115,7 @@ public class BundleActionsPanel extends 
 
                 admin.refreshPackages(new Bundle[] {bundle});
                 Session.get().info("Bundle " + bundle.getSymbolicName() + " refreshed");
-                RequestCycle.get().setResponsePage(BundlesPage.class);
+                RequestCycle.get().setResponsePage(BundlePage.class);
             }
             
         };
@@ -133,7 +132,7 @@ public class BundleActionsPanel extends 
                 try {
                     bundle.start();
                     Session.get().info("Bundle " + bundle.getSymbolicName() + " started");
-                    RequestCycle.get().setResponsePage(BundlesPage.class);
+                    RequestCycle.get().setResponsePage(BundlePage.class);
                 } catch (BundleException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
@@ -152,7 +151,7 @@ public class BundleActionsPanel extends 
                 try {
                     bundle.stop();
                     Session.get().info("Bundle " + bundle.getSymbolicName() + " stopped");
-                    RequestCycle.get().setResponsePage(BundlesPage.class);
+                    RequestCycle.get().setResponsePage(BundlePage.class);
                 } catch (BundleException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();

Copied: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java (from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.java)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java?p2=karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java&p1=karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.java&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/BundlesPage.java (original)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/BundlePage.java Fri Feb 10 14:50:38 2012
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.webconsole.osgi.bundle.internal;
+package org.apache.karaf.webconsole.osgi.core.bundle.list;
 
 import static org.apache.wicket.model.Model.of;
 
@@ -22,15 +22,15 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
-import org.apache.karaf.webconsole.osgi.bundle.IActionProvider;
-import org.apache.karaf.webconsole.osgi.bundle.IColumnProvider;
-import org.apache.karaf.webconsole.osgi.bundle.IDecorationProvider;
-import org.apache.karaf.webconsole.osgi.bundle.internal.view.BundleActionsPanel;
-import org.apache.karaf.webconsole.osgi.bundle.internal.view.BundlesDataTable;
-import org.apache.karaf.webconsole.osgi.bundle.internal.view.DecorationPanel;
-import org.apache.karaf.webconsole.osgi.framework.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.BundleDataProvider;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
+import org.apache.karaf.webconsole.osgi.core.shared.State;
+import org.apache.karaf.webconsole.osgi.core.spi.IActionProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IColumnProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IDecorationProvider;
 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
@@ -41,8 +41,8 @@ import org.ops4j.pax.wicket.api.PaxWicke
 import org.osgi.framework.Bundle;
 import org.osgi.service.startlevel.StartLevel;
 
-@PaxWicketMountPoint(mountPoint = "/osgi/bundles")
-public class BundlesPage extends OsgiPage {
+@PaxWicketMountPoint(mountPoint = "/osgi/bundle")
+public class BundlePage extends OsgiPage {
 
     @PaxWicketBean(name = "columnProviders")
     private List<IColumnProvider> columnProviders;
@@ -56,7 +56,7 @@ public class BundlesPage extends OsgiPag
     @PaxWicketBean(name = "startLevel")
     private StartLevel startLevel;
 
-    public BundlesPage() {
+    public BundlePage() {
         List<IColumn<Bundle>> columns = new ArrayList<IColumn<Bundle>>();
         columns.add(new AbstractColumn<Bundle>(of("")) {
             public void populateItem(Item<ICellPopulator<Bundle>> cellItem, final String componentId, final IModel<Bundle> rowModel) {
@@ -89,7 +89,7 @@ public class BundlesPage extends OsgiPag
             }
         });
 
-        add(new BundlesDataTable("bundles", columns, new BundlesDataProvider(context), 100));
+        add(new DefaultDataTable<Bundle>("bundles", columns, new BundleDataProvider(context), 100));
     }
 
 }

Copied: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/DecorationPanel.java (from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.java)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/DecorationPanel.java?p2=karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/DecorationPanel.java&p1=karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.java&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/DecorationPanel.java (original)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/DecorationPanel.java Fri Feb 10 14:50:38 2012
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.webconsole.osgi.bundle.internal.view;
+package org.apache.karaf.webconsole.osgi.core.bundle.list;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.karaf.webconsole.osgi.bundle.IDecorationProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IDecorationProvider;
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.CSSPackageResource;
 import org.apache.wicket.markup.html.list.ListItem;

Copied: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/SystemBundleDecorationProvider.java (from r1242787, karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/SystemBundleDecorationProvider.java)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/SystemBundleDecorationProvider.java?p2=karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/SystemBundleDecorationProvider.java&p1=karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/SystemBundleDecorationProvider.java&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/bundle/src/main/java/org/apache/karaf/webconsole/osgi/bundle/internal/view/SystemBundleDecorationProvider.java (original)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/bundle/list/SystemBundleDecorationProvider.java Fri Feb 10 14:50:38 2012
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.webconsole.osgi.bundle.internal.view;
+package org.apache.karaf.webconsole.osgi.core.bundle.list;
 
 import org.apache.karaf.webconsole.core.panel.CssImagePanel;
-import org.apache.karaf.webconsole.osgi.bundle.IDecorationProvider;
+import org.apache.karaf.webconsole.osgi.core.spi.IDecorationProvider;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.osgi.framework.Bundle;

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ExportPackage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ExportPackage.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ExportPackage.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ExportPackage.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,31 @@
+package org.apache.karaf.webconsole.osgi.core.manifest;
+
+import org.osgi.framework.Version;
+
+public class ExportPackage extends Package {
+
+	private static final long serialVersionUID = 1L;
+	private Version version;
+	private String uses;
+
+	public ExportPackage(String name) {
+		super(name);
+	}
+
+	public void setVersion(Version version) {
+		this.version = version;
+	}
+
+	public Version getVersion() {
+		return version;
+	}
+
+	public void setUses(String uses) {
+		this.uses = uses;
+	}
+
+	public String getUses() {
+		return uses;
+	}
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ImportPackage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ImportPackage.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ImportPackage.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ImportPackage.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,22 @@
+package org.apache.karaf.webconsole.osgi.core.manifest;
+
+import org.apache.felix.utils.version.VersionRange;
+
+public class ImportPackage extends Package {
+
+	private static final long serialVersionUID = 1L;
+	private VersionRange versionRange;
+	private String provider;
+
+	public ImportPackage(String name) {
+		super(name);
+	}
+
+	public void setVersionRange(VersionRange versionRange) {
+		this.versionRange = versionRange;
+	}
+
+	public VersionRange getVersionRange() {
+		return versionRange;
+	}
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ManifestUtil.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ManifestUtil.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ManifestUtil.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/ManifestUtil.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,25 @@
+package org.apache.karaf.webconsole.osgi.core.manifest;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.felix.utils.manifest.Parser;
+import org.osgi.framework.Bundle;
+
+public abstract class ManifestUtil {
+
+    public static Clause[] getHeader(Bundle bundle, String header) throws IOException {
+        return getHeader(bundle.getResource("META-INF/MANIFEST.MF").openStream(), header);
+    }
+
+    public static Clause[] getHeader(InputStream stream, String header) throws IOException {
+        Manifest manifest = new Manifest(stream);
+		Attributes mainAttributes = manifest.getMainAttributes();
+		String value = mainAttributes.getValue(header);
+        return Parser.parseHeader(value);
+    }
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/Package.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/Package.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/Package.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/manifest/Package.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,30 @@
+package org.apache.karaf.webconsole.osgi.core.manifest;
+
+import java.io.Serializable;
+import java.util.Map;
+
+import org.osgi.framework.Version;
+
+public class Package implements Serializable {
+
+	private String name;
+	private Map<String, String> attributes;
+
+	public Package(String name) {
+		this.name = name;
+	}
+
+
+	public void setAttributes(Map<String, String> attributes) {
+		this.attributes = attributes;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public Map<String, String> getAttributes() {
+		return attributes;
+	}
+
+}

Copied: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/navigation/OsgiConsoleTabProvider.java (from r1242787, karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/navigation/OsgiConsoleTabProvider.java)
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/navigation/OsgiConsoleTabProvider.java?p2=karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/navigation/OsgiConsoleTabProvider.java&p1=karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/navigation/OsgiConsoleTabProvider.java&r1=1242787&r2=1242797&rev=1242797&view=diff
==============================================================================
--- karaf/webconsole/trunk/osgi/framework/src/main/java/org/apache/karaf/webconsole/osgi/framework/navigation/OsgiConsoleTabProvider.java (original)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/navigation/OsgiConsoleTabProvider.java Fri Feb 10 14:50:38 2012
@@ -14,13 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.webconsole.osgi.framework.navigation;
+package org.apache.karaf.webconsole.osgi.core.navigation;
 
-import java.util.Collections;
+import static org.apache.karaf.webconsole.core.util.LinkUtils.createPageLink;
+
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.karaf.webconsole.core.navigation.ConsoleTabProvider;
-import org.apache.karaf.webconsole.osgi.framework.internal.FrameworkPage;
+import org.apache.karaf.webconsole.osgi.core.FrameworkPage;
+import org.apache.karaf.webconsole.osgi.core.bundle.list.BundlePage;
+import org.apache.karaf.webconsole.osgi.core.service.list.ServicePage;
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
@@ -35,7 +39,10 @@ public class OsgiConsoleTabProvider impl
     }
 
     public List<Link<Page>> getItems(String componentId, String labelId) {
-        return Collections.emptyList();
+        List<Link<Page>> links = new ArrayList<Link<Page>>();
+        links.add(createPageLink(componentId, labelId, "Bundles", BundlePage.class));
+        links.add(createPageLink(componentId, labelId, "Services", ServicePage.class));
+        return links;
     }
 
 }

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ClauseModel.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ClauseModel.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ClauseModel.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ClauseModel.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,19 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.wicket.model.LoadableDetachableModel;
+
+public class ClauseModel extends LoadableDetachableModel<Clause> {
+
+    private static final long serialVersionUID = 1L;
+
+    public ClauseModel(Clause object) {
+        super(object);
+    }
+
+    @Override
+    protected Clause load() {
+        return null;
+    }
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ExportPackageTable.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ExportPackageTable.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ExportPackageTable.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ExportPackageTable.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,30 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.karaf.webconsole.core.table.OrdinalColumn;
+import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.AttributesColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.DirectivesColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.PackageColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Constants;
+
+public class ExportPackageTable extends HeaderTable {
+
+	@SuppressWarnings("unchecked")
+	static IColumn<Clause>[] columns = new IColumn[] {
+		new OrdinalColumn<Clause>(),
+		new PropertyColumnExt<Clause>("Package", "name"),
+		new PackageColumn("Export"),
+//		new ResolutionColumn("Resolution"),
+//		new VersionRangeColumn("Version"),
+		new AttributesColumn("Attributes"),
+		new DirectivesColumn("Directives"),
+	};
+
+	public ExportPackageTable(String id, Bundle bundle) {
+		super(id, columns, bundle, Constants.EXPORT_PACKAGE);
+	}
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderDataProvider.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderDataProvider.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderDataProvider.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderDataProvider.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,46 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.karaf.webconsole.osgi.core.manifest.ManifestUtil;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.model.IModel;
+import org.osgi.framework.Bundle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class HeaderDataProvider extends SortableDataProvider<Clause> {
+
+    private static final long serialVersionUID = 1L;
+    private transient Logger logger = LoggerFactory.getLogger(getClass());
+    private transient Clause[] clauses;
+
+    public HeaderDataProvider(Bundle bundle, String header) {
+        try {
+            clauses = ManifestUtil.getHeader(bundle, header);
+        } catch (IOException e) {
+            clauses = new Clause[0];
+            logger.error("Cannot parse bundle headers", e);
+        }
+    }
+
+    public Iterator<? extends Clause> iterator(int first, int count) {
+        List<Clause> clauses = new ArrayList<Clause>();
+        clauses.addAll(Arrays.asList(this.clauses));
+        return clauses.subList(first, count).iterator();
+    }
+
+    public int size() {
+        return clauses.length;
+    }
+
+    public IModel<Clause> model(Clause object) {
+        return new ClauseModel(object);
+    }
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderTable.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderTable.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderTable.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/HeaderTable.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,16 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.osgi.framework.Bundle;
+
+public class HeaderTable extends DefaultDataTable<Clause> {
+
+	private static final long serialVersionUID = 1L;
+
+	public HeaderTable(String id, IColumn<Clause>[] columns, Bundle bundle, String header) {
+		super(id, columns, new HeaderDataProvider(bundle, header), Integer.MAX_VALUE);
+	}
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ImportPackageTable.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ImportPackageTable.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ImportPackageTable.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/ImportPackageTable.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,30 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.karaf.webconsole.core.table.OrdinalColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.AttributesColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.DirectivesColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.PackageColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.ResolutionColumn;
+import org.apache.karaf.webconsole.osgi.core.pkg.column.VersionRangeColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Constants;
+
+public class ImportPackageTable extends HeaderTable {
+
+	@SuppressWarnings("unchecked")
+	static IColumn<Clause>[] columns = new IColumn[] {
+		new OrdinalColumn<Clause>(),
+		new PackageColumn("Import"),
+		new ResolutionColumn("Resolution"),
+		new VersionRangeColumn("Version"),
+		new AttributesColumn("Attributes"),
+		new DirectivesColumn("Directives"),
+	};
+
+	public ImportPackageTable(String id, Bundle bundle) {
+		super(id, columns, bundle, Constants.IMPORT_PACKAGE);
+	}
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/PackagePage.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/PackagePage.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/PackagePage.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/PackagePage.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,92 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import static org.apache.karaf.webconsole.osgi.core.bundle.SingleBundlePage.createLink;
+
+import java.util.Arrays;
+
+import org.apache.karaf.webconsole.osgi.core.bundle.SingleBundlePage;
+import org.apache.karaf.webconsole.osgi.core.shared.BundleModel;
+import org.apache.karaf.webconsole.osgi.core.shared.OsgiPage;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.repeater.RepeatingView;
+import org.apache.wicket.model.PropertyModel;
+import org.ops4j.pax.wicket.api.PaxWicketBean;
+import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Version;
+import org.osgi.service.packageadmin.ExportedPackage;
+import org.osgi.service.packageadmin.PackageAdmin;
+
+@PaxWicketMountPoint(mountPoint = "/osgi/package/detail")
+public class PackagePage extends OsgiPage {
+
+    @PaxWicketBean(name = "packageAdmin")
+    private PackageAdmin admin;
+
+    public PackagePage(PageParameters params) {
+        String pkg = params.getString("package");
+        String version = params.getString("version");
+
+        add(new Label("package", pkg).setRenderBodyOnly(true));
+        add(new Label("version", version).setRenderBodyOnly(true));
+
+        ExportedPackage[] packages = admin.getExportedPackages((Bundle) null);
+
+        boolean found = false;
+        Version osgiVersion = new Version(version);
+        for (ExportedPackage exportPkg : packages) {
+            if (pkg.equals(exportPkg.getName()) && osgiVersion.equals(exportPkg.getVersion())) {
+                found = true;
+                populate(exportPkg);
+                break;
+            }
+        }
+
+        if (!found) {
+            Link link = new Link("exporterLink") {
+                @Override
+                public void onClick() {
+                    // TODO Auto-generated method stub
+                    
+                }
+            };
+
+            error("Unable to find package " + pkg);
+
+            link.add(new Label("exporterLabel", "NOT FOUND"));
+            add(link);
+            add(new Label("packageDet"));
+            add(new RepeatingView("importers"));
+        }
+    }
+
+    private void populate(ExportedPackage exportPkg) {
+        Bundle exporter = exportPkg.getExportingBundle();
+        Bundle[] importers = exportPkg.getImportingBundles();
+
+        PageParameters params = new PageParameters();
+        params.put("bundleId", exporter.getBundleId());
+
+        Link<SingleBundlePage> link = createLink("exporterLink", exporter);
+        link.add(new Label("exporterLabel", new PropertyModel(new BundleModel(exporter), "symbolicName")));
+        add(link);
+
+        add(new Label("packageDet", exportPkg.getName()));
+
+        add(new ListView<Bundle>("importers", Arrays.asList(importers)) {
+            @Override
+            protected void populateItem(ListItem<Bundle> item) {
+                Bundle model = item.getModel().getObject();
+
+                Link<SingleBundlePage> link = createLink("importerLink", model);
+                link.add(new Label("importerLabel", model.getSymbolicName()));
+                item.add(link);
+            }
+        });
+
+    }
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/WicketClause.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/WicketClause.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/WicketClause.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/WicketClause.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,15 @@
+package org.apache.karaf.webconsole.osgi.core.pkg;
+
+import java.io.Serializable;
+
+import org.apache.felix.utils.manifest.Clause;
+
+public class WicketClause extends Clause implements Serializable {
+
+	private static final long serialVersionUID = 1428726206399185187L;
+
+	public WicketClause(Clause clause) {
+		super(clause.getName(), clause.getDirectives(), clause.getAttributes());
+	}
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesColumn.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesColumn.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesColumn.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesColumn.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,20 @@
+package org.apache.karaf.webconsole.osgi.core.pkg.column;
+
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
+import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.model.IModel;
+
+
+public class AttributesColumn extends PropertyColumnExt<Clause> {
+
+	public AttributesColumn(String property) {
+		super(property);
+	}
+
+	public void populateItem(Item<ICellPopulator<Clause>> cellItem, String componentId, IModel<Clause> rowModel) {
+		cellItem.add(new AttributesPanel(componentId, rowModel));
+	}
+
+}

Added: karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesPanel.java
URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesPanel.java?rev=1242797&view=auto
==============================================================================
--- karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesPanel.java (added)
+++ karaf/webconsole/trunk/osgi/core/src/main/java/org/apache/karaf/webconsole/osgi/core/pkg/column/AttributesPanel.java Fri Feb 10 14:50:38 2012
@@ -0,0 +1,30 @@
+package org.apache.karaf.webconsole.osgi.core.pkg.column;
+
+import java.util.Arrays;
+
+import org.apache.felix.utils.manifest.Attribute;
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.felix.utils.manifest.Directive;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+
+public class AttributesPanel extends Panel {
+
+	public AttributesPanel(String componentId, IModel<Clause> model) {
+		super(componentId, new CompoundPropertyModel<Clause>(model));
+
+		add(new ListView<Attribute>("attributes", Arrays.asList(model.getObject().getAttributes())) {
+			@Override
+			protected void populateItem(ListItem<Attribute> item) {
+				item.setModel(new CompoundPropertyModel<Attribute>(item.getModel()));
+				item.add(new Label("name"));
+				item.add(new Label("value"));
+			}
+		});
+	}
+
+}