apache felix web console
play

Apache Felix Web Console Carsten Ziegeler | cziegeler@apache.org - PowerPoint PPT Presentation

Apache Felix Web Console Carsten Ziegeler | cziegeler@apache.org ApacheCon NA 2014 About cziegeler@apache.org @cziegeler RnD Team at Adobe Research Switzerland Member of the Apache So fu ware Foundation Apache Felix and Apache


  1. Apache Felix Web Console Carsten Ziegeler | cziegeler@apache.org ApacheCon NA 2014

  2. About cziegeler@apache.org @cziegeler RnD Team at Adobe Research Switzerland • Member of the Apache So fu ware Foundation • Apache Felix and Apache Sling (PMC and commi tu er) • And other Apache projects • OSGi Core Platform and Enterprise Expert Groups • Member of the OSGi Board • Book / article author, technical reviewer, conference speaker • 2

  3. Problem Description § Manage an OSGi based application § Remotely § Easy of use § Extensibility § O ffl ine support 3

  4. Various Solutions § JMX § Text based § Apache Felix Shell, Apache Felix Gogo Shell § Knop fm er fj sh Shell § Equinox Console § OSGi RFC 147 (Command Line Interface) § GUI based § Knop fm er fj sh Desktop (Swing) § Apache Felix Web Console 4

  5. Apache Felix Web Console § Rich set of core functionality § Bundles § Services § Con fj guration Admin § System Information § JQuery based UI § Extensible § Pluggable authentication § Still light-weight 5

  6. Installation § Dependencies § OSGi H tu p Service § Commons IO 1.4 (*) § Commons File Upload 1.2 (*) § org.json (.e.g. Apache Geronimo Bundles: json-20090211) (*) § Two fm avors: bundle with and without above marked dependencies § Additional optional dependencies § Additional plugins 6

  7. Demo 7

  8. Extension Points § Branding § Translations § Security Provider § Plugins § Inventory Printer (Con fj guration Printer) 8

  9. 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 9

  10. 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 10

  11. Web Console Security § Secure access to the web console! § Consider blocking internet access § Con fj gure authentication 11

  12. Security Provider § Service interface: WebConsoleSecurityProvider § HTTP Basic Authentication Based § Validates Username / Password § Access Control (hook only) § Service Interface: WebConsoleSecurityProvider2 § Extends WebConsoleSecurityProvider § Flexible Authentication (implementing H tu pContext.handleSecurity) 12

  13. Security Provider § Implementations § Default: Single con fj gurable User § Apache Karaf: JAAS based authentication § Apache Sling § Authenticates against JCR Repository § Supports Sling Authentication Setup 13

  14. Security Provider § WebConsoleSecurityProvider, WebConsoleSecurityProvider2 § Web Console uses them for authentication § Methods for authorization not used atm § Authorization is on the road map for next version! 14

  15. Plugins § javax.servlet.Servlet service § Optional extend AbstractWebConsolePlugin or SimpleWebConsolePlugin § Service properties § felix.webconsole.label § felix.webconsole.title § felix.webconsole.category 15

  16. Sample Plugin #1 @Component @Service(value=HttpServlet.class 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 public class class SamplePlugin SamplePlugin extends extends HttpServlet HttpServlet { { @Override public public void void service( service(ServletRequest ServletRequest rq rq, , ServletResponse ServletResponse rs rs) throws throws ServletException ServletException, , IOException IOException { { rs.getWriter().println("Hello World..."); } } 16

  17. Sample Plugin #2 public class Sample2 extends SimpleWebConsolePlugin { public Sample2(BundleContext ctx) { super("sample2", "Sample Plugin #2", null); register (ctx); } @Override protected void renderContent( H tu pServletRequest req, H tu pServletResponse res) throws IOException { res.getWriter().println("Hi Ti ere ...") } } 17

  18. Plugins § Rendering: service(), doGet() or renderContent() § Interaction: service(), doPost() § UI: jQuery § Add own js, css as resources § Simple templating support 18

  19. Apache Felix Inventory § OSGi service providing status information § Bundle list, services, system properties etc. § Di ff erent formats: text, html, json § Optional a tu achments § Direct support in web console 19

  20. Inventory Printer Sample @Component @Service(value={InventoryPrinter.class class}) }) @Properties({ @Property(name=InventoryPrinter. NAME, value="slingjobs"), @Property(name=InventoryPrinter. TITLE, value="Sling Jobs"), @Property(name=InventoryPrinter. FORMAT, value={"TEXT", "JSON"}) }) public public class class InventoryPlugin InventoryPlugin implements implements InventoryPrinter InventoryPrinter { { public public void void print( print(final final PrintWriter PrintWriter pw, pw, final final Format format, Format format, final final boolean boolean isZip isZip) { ) { // print something // print something } } } Attachments: ZipAttachmentProvider 20

  21. O ffl ine Usage § Status zip contains § Output from all inventory printers § Output from special web console plugins § A tu achments § JSON fj les § Automated analysis § Bundle list and status § Con fj gurations § Log fj les 21

  22. Demo 22

  23. REST API § Today: Simple REST API § Bundles § Con fj g Admin § h tu p://felix.apache.org/documentation/subprojects/apache-felix-web-console/web- console-restful-api.html 23

  24. OSGi REST API § RFC 182 - REST Interface for OSGi § De fj nition of REST API for § Framework status § Framework operations § Bundle states § Bundle operations § Service states § Service operations 24

  25. OSGi REST API § RFC 182 - REST Interface for OSGi § Extension mechanism § Con fj g Admin? § Java client § Javascript client 25

  26. Apache Felix Web Console § Flexible and extensible administration console § Web based § Many plugins available § O ffl ine support § Planned major task § Authorization § REST support 26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend