SlideShare a Scribd company logo
1 of 14
Apache Felix Web Console
     Felix Meschberger, Principal Scientist, Adobe




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   1
Problem

   Manage an OSGi Framework
   Remote Access
   Ease of Use
   Extensibility
   Offline Support




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   2
Solutions

   Text based
       Apache Felix Shell
       Apache Felix Gogo
       Knopflerfish Shell
       Equinox Console (built-in)
       OSGi RFC 147 (Command Line Interface)
   GUI based
       Apache Felix Web Console
       Knopflerfish Desktop (Swing)




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   3
Features

   Rich Set of Core Functionality
   JQuery UI based GUI
   REST API
   Pluggable Authentication
   Extensible
   Light-weight
   Manage Bundles
   List Services
   Configuration
   System Information
   Configuration Status




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   4
Installations

   Dependencies:
       OSGi Http Service
       Commons IO 1.4
       Commons File Upload 1.2
       org.json (e.g. Apache Geronimo Bundles: json-20090211)




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   5
Extension Points

   Plugins
   Configuration Printer
   Branding
   Security Provider
   Translations




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   6
Plugins

   javax.servlet.Servlet services
   Extend AbstractWebConsolePlugin (optional)
   Service Properties
       felix.webconsole.label
       felix.webconsole.title




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   7
Sample Plugin #1

    @Component
    @Service(Servlet.class)
    @Properties({
       @Property(name="felix.webconsole.label",
                 value="sample"),
       @Property(name="felix.webconsole.title",
                 value="Sample Plugin #1")
    })
    public class Sample extends HttpServlet {
         public void service(HttpServletRequest req,
                 HttpServletResponse res)
                 throws IOException {
             res.getWriter().println("Hi There...");
         }
    }




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   8
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 ...")
                  }
    }




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   9
Configuration Printer

   Information Dump for Offline Use
   Selective Destination: implements
    ModeAwareConfigurationPrinter
       Screen Only
       All-in-one Text
       ZIP File
   Optional Attachements: implements AttachmentProvider




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   10
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




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   11
Security Provider

   Service interface: WebConsoleSecurityProvider
       HTTP Basic Authentication Based
       Validates Username / Password
       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




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   12
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




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   13
Maven Sling Plugin

   install
       Install a Bundle after a build
       Similar to deploy:deploy
   install-file
       Install a Bundle independent of a build
       Similar to deploy:deploy-file
   uninstall
       Uninstall a Bundle


   See: http://sling.apache.org/site/sling.html




© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.   14

More Related Content

What's hot

Groovy Component With Mule ESB
Groovy Component With Mule ESBGroovy Component With Mule ESB
Groovy Component With Mule ESBJitendra Bafna
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with ociDonghuKIM2
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정Arawn Park
 
플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포흥래 김
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegelermfrancis
 
.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQ.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQAvijit Shaw
 
Unpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesUnpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesEastBanc Tachnologies
 
OWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIISOWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIISBilal Haidar
 
Introduction in the play framework
Introduction in the play frameworkIntroduction in the play framework
Introduction in the play frameworkAlexander Reelsen
 
Owin from spec to application
Owin from spec to applicationOwin from spec to application
Owin from spec to applicationdamian-h
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)Folio3 Software
 

What's hot (20)

Groovy Component With Mule ESB
Groovy Component With Mule ESBGroovy Component With Mule ESB
Groovy Component With Mule ESB
 
This is how we REST
This is how we RESTThis is how we REST
This is how we REST
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with oci
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정
 
플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
IIS7 For Non IIS PFEs
IIS7 For Non IIS PFEsIIS7 For Non IIS PFEs
IIS7 For Non IIS PFEs
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
 
.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQ.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQ
 
ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013
 
Introduction to OWIN
Introduction to OWINIntroduction to OWIN
Introduction to OWIN
 
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
 
Os Mcmahan
Os McmahanOs Mcmahan
Os Mcmahan
 
Ready! Steady! SpringBoot!
Ready! Steady! SpringBoot! Ready! Steady! SpringBoot!
Ready! Steady! SpringBoot!
 
Unpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesUnpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc Technologies
 
Spring Boot Update
Spring Boot UpdateSpring Boot Update
Spring Boot Update
 
OWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIISOWIN and Katana Project - Not Only IIS - NoIIS
OWIN and Katana Project - Not Only IIS - NoIIS
 
Introduction in the play framework
Introduction in the play frameworkIntroduction in the play framework
Introduction in the play framework
 
Owin from spec to application
Owin from spec to applicationOwin from spec to application
Owin from spec to application
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)
 

Similar to Apache Felix Web Console

Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleMonitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleCarsten Ziegeler
 
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleMonitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleAdobe
 
Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011Rupesh Kumar
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedToru Wonyoung Choi
 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkAmazon Web Services
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineAlexander Zamkovyi
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Amazon Web Services
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsMichael Chaize
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devsguest0a62e8
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gMarcelo Ochoa
 
IBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIIC_Barcelona
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
Deeper into Windows 10 Development
Deeper into Windows 10 DevelopmentDeeper into Windows 10 Development
Deeper into Windows 10 DevelopmentShahed Chowdhuri
 
How do I securely deploy Internet websites in PHP on my IBMi?
How do I securely deploy Internet websites in PHP on my IBMi?How do I securely deploy Internet websites in PHP on my IBMi?
How do I securely deploy Internet websites in PHP on my IBMi?Zend by Rogue Wave Software
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In ActionHazem Saleh
 
J2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net WorkshopJ2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net Workshopdanglvh
 

Similar to Apache Felix Web Console (20)

Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleMonitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
 
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleMonitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
 
Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011
 
DIY Flex
DIY FlexDIY Flex
DIY Flex
 
DIY Flex
DIY FlexDIY Flex
DIY Flex
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex apps
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11g
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
IBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIBM Worklight - Technical Overview
IBM Worklight - Technical Overview
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Deeper into Windows 10 Development
Deeper into Windows 10 DevelopmentDeeper into Windows 10 Development
Deeper into Windows 10 Development
 
How do I securely deploy Internet websites in PHP on my IBMi?
How do I securely deploy Internet websites in PHP on my IBMi?How do I securely deploy Internet websites in PHP on my IBMi?
How do I securely deploy Internet websites in PHP on my IBMi?
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
 
J2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net WorkshopJ2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net Workshop
 

More from Felix Meschberger

Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleFelix Meschberger
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Felix Meschberger
 
Apache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiApache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiFelix Meschberger
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingFelix Meschberger
 
Declarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi styleDeclarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi styleFelix Meschberger
 

More from Felix Meschberger (6)

Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
 
Declarative Services
Declarative ServicesDeclarative Services
Declarative Services
 
Apache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiApache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGi
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
 
Declarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi styleDeclarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi style
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Apache Felix Web Console

  • 1. Apache Felix Web Console Felix Meschberger, Principal Scientist, Adobe © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 1
  • 2. Problem  Manage an OSGi Framework  Remote Access  Ease of Use  Extensibility  Offline Support © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 2
  • 3. Solutions  Text based  Apache Felix Shell  Apache Felix Gogo  Knopflerfish Shell  Equinox Console (built-in)  OSGi RFC 147 (Command Line Interface)  GUI based  Apache Felix Web Console  Knopflerfish Desktop (Swing) © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 3
  • 4. Features  Rich Set of Core Functionality  JQuery UI based GUI  REST API  Pluggable Authentication  Extensible  Light-weight  Manage Bundles  List Services  Configuration  System Information  Configuration Status © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
  • 5. Installations  Dependencies:  OSGi Http Service  Commons IO 1.4  Commons File Upload 1.2  org.json (e.g. Apache Geronimo Bundles: json-20090211) © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 5
  • 6. Extension Points  Plugins  Configuration Printer  Branding  Security Provider  Translations © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6
  • 7. Plugins  javax.servlet.Servlet services  Extend AbstractWebConsolePlugin (optional)  Service Properties  felix.webconsole.label  felix.webconsole.title © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7
  • 8. Sample Plugin #1 @Component @Service(Servlet.class) @Properties({ @Property(name="felix.webconsole.label", value="sample"), @Property(name="felix.webconsole.title", value="Sample Plugin #1") }) public class Sample extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { res.getWriter().println("Hi There..."); } } © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 8
  • 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 ...") } } © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 9
  • 10. Configuration Printer  Information Dump for Offline Use  Selective Destination: implements ModeAwareConfigurationPrinter  Screen Only  All-in-one Text  ZIP File  Optional Attachements: implements AttachmentProvider © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 10
  • 11. 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 © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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 HttpContext.handleSecurity)  Implementations  Default: Single configurable User  Karaf: JAAS based authentication  Sling  Authenticates against JCR Repository  Supports Sling Authentication Setup © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12
  • 13. 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 © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 13
  • 14. Maven Sling Plugin  install  Install a Bundle after a build  Similar to deploy:deploy  install-file  Install a Bundle independent of a build  Similar to deploy:deploy-file  uninstall  Uninstall a Bundle  See: http://sling.apache.org/site/sling.html © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 14

Editor's Notes

  1. \n
  2. Day (before being acquired by Adobe) started using OSGi in 2007. Except for a handful of people actively working on this, OSGi was still a new technology and there was fear, that we will not be able to manage and administer the frameworks. Providing text based consoles was not an option. Because our application is a Web application based on a framework today known as Apache Sling it is reasonable to use the same mechanism for administration\n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n