Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Upcoming SlideShare
Loading in...5
×
 

Monitoring OSGi Applications with the Web Console - Carsten Ziegeler

on

  • 1,089 views

OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule) ...

OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule)

ABSTRACT
This session introduces the latest version of the famous Apache Felix web console which allows to monitor and inspect OSGi web applications through the browser. The web console is based on a flexible plugin mechanism to add custom information and functionality. Learn how to write your own extensions and how to leverage the available functionality for monitoring and troubleshooting OSGi installations.

SPEAKER BIO
Carsten Ziegeler is senior developer at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities including Sling, Felix and ACE. He is a frequent speaker on technology and open source conferences and participates in the OSGi Core Platform and Enterprise expert groups.

Statistics

Views

Total Views
1,089
Views on SlideShare
1,089
Embed Views
0

Actions

Likes
0
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Monitoring OSGi Applications with the Web Console - Carsten Ziegeler Monitoring OSGi Applications with the Web Console - Carsten Ziegeler Presentation Transcript

  • Monitoring OSGi Applications with the Web Console Carsten Ziegeler| Adobe Research Switzerland
  • About cziegeler@apache.org @cziegeler §  Rnd Team at Adobe Research Switzerland §  OSGi Core Platform and Enterprise Expert Groups §  Member of the ASF §  Most active in Apache Sling, Felix, Ace §  Conference Speaker §  Technical Reviewer §  Article/Book Author 2
  • Problem Description §  Manage an OSGi based application §  Remotely §  Easy of use §  Extensibility §  Offline support 3
  • Various Solutions §  JMX §  Text based §  §  Knopflerfish Shell §  Equinox Console §  §  Apache Felix Shell, Apache Felix Gogo Shell OSGi RFC 147 (Command Line Interface) GUI based §  Knopflerfish Desktop (Swing) §  Apache Felix Web Console 4
  • Apache Felix Web Console §  Rich set of core functionality §  Bundles §  Services §  Configuration Admin §  System Information §  JQuery based UI §  Extensible §  Pluggable authentication §  Still light-weight 5
  • Installation §  Dependencies §  OSGi Http Service §  Commons IO 1.4 (*) §  Commons File Upload 1.2 (*) §  org.json (.e.g. Apache Geronimo Bundles: json-20090211) (*) §  Two flavors: bundle with and without above marked dependencies §  Additional optional dependencies §  Additional plugins 6
  • Extension Points §  Plugins §  Inventory Printer (Configuration Printer) §  Security Provider §  Branding §  Translations 7
  • Plugins §  javax.servlet.Servlet service §  Optional extend AbstractWebConsolePlugin §  Service properties §  felix.webconsole.label §  felix.webconsole.title §  felix.webconsole.category 8
  • Sample Plugin #1 @Component @Service(value=HttpServlet.class) @Properties({ @Property(name="felix.webconsole.label", value="sample"), @Property(name="felix.webconsole.title", value="Sample Plugin"), @Property(name="felix.webconsole.category", value="My App") }) public class SamplePlugin extends HttpServlet { @Override public void service(ServletRequest rq, ServletResponse rs) throws ServletException, IOException { rs.getWriter().println("Hello World..."); } } 9
  • Sample Plugin #2 public class Sample2 extends SimpleWebConsolePlugin { public Sample2(BundleContext ctx) { super("sample2", "Sample Plugin #2", null); register(ctx); } @Override protected void renderContent( HttpServletRequest req, HttpServletResponse res) throws IOException { res.getWriter().println("Hi There ...") } } 10
  • Apache Felix Inventory §  OSGi service providing status information §  Bundle list, services, system properties etc. §  Different formats: text, html, json §  Optional attachments §  Directly support in web console 11
  • Inventory Printer Sample @Component @Service(value={InventoryPrinter.class}) @Properties({ @Property(name=InventoryPrinter.NAME, value="slingjobs"), @Property(name=InventoryPrinter.TITLE, value="Sling Jobs"), @Property(name=InventoryPrinter.FORMAT, value={"TEXT", "JSON"}) }) public class InventoryPlugin implements InventoryPrinter { public void print(final PrintWriter pw, final Format format, final boolean isZip) { // print something } } Attachments: ZipAttachmentProvider 12
  • Branding §  Service Interface: BrandingPlugin §  Default Branding: DefaultBrandingPlugin §  Branding Fragment §  §  /META-INF/webconsole.properties webconsole.brand.name = Apache Sling Web Console webconsole.product.name = Apache Sling webconsole.product.url = http://sling.apache.org webconsole.product.image = /res/sling/logo.png webconsole.favicon = /res/sling/favicon.ico Sample §  Sling Web Console Branding Plugin 13
  • Security Provider §  Service interface: WebConsoleSecurityProvider §  §  Validates Username / Password §  §  HTTP Basic Authentication Based Access Control (hook only) Service Interface: WebConsoleSecurityProvider2 §  §  §  Extends WebConsoleSecurityProvider Flexible Authentication (implementing HttpContext.handleSecurity) Implementations §  Default: Single configurable User §  Karaf: JAAS based authentication §  Sling §  Authenticates against JCR Repository §  Supports Sling Authentication Setup 14
  • Security Provider §  WebConsoleSecurityProvider, WebConsoleSecurityProvider2 §  Web Console uses them for authentication §  Methods for authorization not used atm §  On the road map for next version! 15
  • Translations §  Out-of-the-box §  §  Bulgarian, English, German, Russian Extensible §  Fragment to the Web Console §  Based on Standard Bundle Localization §  OSGI-INF/l10n/bundle*.properties 16