SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
#jahiaXDC 1
Bye bye Felix, Hello Karaf
Serge Huber
Jahia CTO & Co-Founder
shuber@jahia.com
Title of Presentation I Date of Presentation 2
What is this about ?
Bye Bye Felix, Hello Karaf I #jahiaXDC
Chronology
Jahia Digital Experience Manager (DX) 7.0
• Introduces OSGi for modules
• Implemented using the embedded Apache Felix OSGi
framework implementation
Jahia Digital Experience Manager (DX) 7.1
• No major change in the OSGi framework
Jahia Digital Experience Manager (DX) 7.2 (upcoming)
• Replaces the embedded Felix Framework with Apache
Karaf (embedded)
Apache Unomi
• Part of Jahia Marketing Factory
• Built on top of a standalone Apache Karaf runtime
Bye Bye Felix, Hello Karaf I #jahiaXDC 4
- Open Source OSGi Framework implementation
- Implements part of the OSGi Compendium such as :
- HTTP Service
- Shell Service (Gogo Shell)
- Configuration Admin Service
- Event Service
- Provides additional tools such as:
- Web Console
- iPOJO
- uPNP support
Bye Bye Felix, Hello Karaf I #jahiaXDC 5
• “The Tomcat for OSGI”, basically all you will need for a minimal
server OSGi runtime (where Felix is not necessarily focused at
servers)
• Uses Apache Felix or Eclipse Equinox as the OSGi Framework
implementation
• Provides a lot of additional services such as :
- Serious logging (Felix is really basic), backed by Log4J
- Provisioning (Features)
- Advanced remote SSH Shell
- Two-way data binding configuration files
- JMX support
- Diagnostic and developer commands
- JAAS support
Karaf
APACHE
Title of Presentation I Date of Presentation 6
Comparison
Bye Bye Felix, Hello Karaf I #jahiaXDC 7
Quick comparison
Felix Karaf
OSGi Specification Version
supported
R4 R6 (adds enterprise
technologies)
Embedded Felix Framework
Version
4.2.1 5.4.0
Remote Shell technology Telnet (insecure), deactivated
by default
SSH (secure), activated by
default
Shell autocompletion no yes
Shell help no yes
Shell history no yes
Bye Bye Felix, Hello Karaf I #jahiaXDC 8
Quick comparison, continued
Supports regions (OSGi subsystems) no yes
Karaf Cellar (clustering) no yes
Karaf Decanter (monitoring) no yes
Karaf Cave (repository) no yes
Karaf Features (bundle packages) (provisioning) no yes
Two-way OSGi configuration sync (file to memory and back) no yes
Bye Bye Felix, Hello Karaf I #jahiaXDC 9
Quick comparison, continued
Deploy bundle/features directly from Maven repository (or
Karaf Cave)
no yes
Built-in support from JAR wrapping (dynamic generation of
OSGi bundle from non-OSGi jar)
no yes
Built-in features (Spring, Blueprint, Hibernate) no yes
Diagnostic, JMX features no yes
Developer features (bundle:watch) no yes
Bye Bye Felix, Hello Karaf I #jahiaXDC 10
Quick comparison, continued
Paves the way to a standalone
runtime
no yes
Enterprise features (JNDI,
JDBC, JPA, JTA, CDI, ...)
no yes
Security support (encryption,
RBAC, JAAS, …)
no yes
Linux Comparison Similar to Linux Kernel Similar to “Lightweight” Linux
Distribution (Debian)
Title of Presentation I Date of Presentation 11
What’s New
Bye Bye Felix, Hello Karaf I #jahiaXDC 12
Apache Karaf Shell
Bye Bye Felix, Hello Karaf I #jahiaXDC 13
Apache Karaf Provisioning
Features
A feature describes an application as:
• a name
• a version
• a optional description (eventually with a long description)
• a set of bundles
• optionally a set configurations or configuration files
• optionally a set of dependency features
Bye Bye Felix, Hello Karaf I #jahiaXDC 14
Apache Karaf Features, continued
Karaf Shell
- “feature:install feature1” will install all defined bundles for the feature name
“feature1”
<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0">
<feature name="feature1" version="1.0.0">
<bundle>...</bundle>
<bundle>...</bundle>
</feature>
<feature name="feature2" version="1.1.0">
<feature>feature1</feature>
<bundle>...</bundle>
</feature>
</features>
Bye Bye Felix, Hello Karaf I #jahiaXDC 15
Apache Features, continued
Dependent features
means that when you install the “my-project” feature, the “other” feature will
also get installed if it is not already there.
<feature name="my-project" version="1.0.0">
<feature>other</feature>
<bundle start-level="80" start="false">mvn:com.mycompany.myproject/myproject-dao</bundle>
<bundle start-level="85" start="false">mvn:com.mycompany.myproject/myproject-service</bundle>
</feature>
Bye Bye Felix, Hello Karaf I #jahiaXDC 16
Building your own feature
<project xmlns=“http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
…
<packaging>feature</packaging>
<dependencies>
<dependency>
<groupId>org.jahia.modules</groupId>
<artifactId>spam-filtering</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jahia.modules</groupId>
<artifactId>jahia-watcher-backend</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>4.0.3</version>
<extensions>true</extensions>
<configuration>
<includeTransitiveDependency>false</includeTransitiveDependency>
</configuration>
</plugin>
</plugins>
</build>
</project>
Bye Bye Felix, Hello Karaf I #jahiaXDC 17
Building your own feature
mvn clean install
karaf> feature:repo-add mvn:org.jahia.modules/jahia-watcher-backend-karaf-
feature/1.0-SNAPSHOT/xml/features
karaf> feature:install jahia-watcher-backend-karaf-feature
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="jahia-watcher-backend-karaf-feature">
<feature name="jahia-watcher-backend-karaf-feature" description="Jahia Watcher DX module Apache Karaf Feature" version="1.0.0.SNAPSHOT">
<details>This project packages the backend for the Jahia Watcher mobile application as a Karaf Feature to be deployed in Jahia DX</details>
<bundle>mvn:org.jahia.modules/spam-filtering/2.0.1-SNAPSHOT</bundle>
<bundle>mvn:org.jahia.modules/jahia-watcher-backend/1.0-SNAPSHOT</bundle>
</feature>
</features>
Bye Bye Felix, Hello Karaf I #jahiaXDC 18
Apache Features, continued
Features can do a lot more:
- Provide embedded configuration properties
- Provide configuration files directly
- Features repositories (i.e. a <features> XML file) URLs can be added or
removed at any time
- Features may specify requirements (using OSGi capabilities)
- Features may also be controlled through JMX
- Features may be upgraded (by simply installing a new version)
- Features also work with Karaf Cellar, making it possible to install features
over a cluster
Title of Presentation I Date of Presentation 19
Jahia DX Integration
Bye Bye Felix, Hello Karaf I #jahiaXDC 20
Features for Jahia Modules
• Features provide a more powerful way to package collection of bundles than
our existing (<7.2) MegaJAR technology
• Dependency on other features makes it easier to install more complex
applications
• Cluster compatibility (through Karaf Cellar) will also make installation complex
installations on a cluster easier
• At Jahia we will probably deprecate MegaJARs at some point once customer
have shifted to Features
• Jahia’s other applications (Marketing Factory, Form Factory, Commerce
Factory, Workspace Factory), will probably be all delivered as features over
time
Bye Bye Felix, Hello Karaf I #jahiaXDC 21
Jahia DX Integration
Migration
• For most users, should be transparent, no change needed to modules or
configuration
• If you performed modifications to the default felix-framework.properties file
those changes will need to be moved to another file (or removed)
Limitations
• Existing features that depends on “web”, “pax-web” or “spring” features will
not work out of the box (because these technologies are exposed by DX’s
core)
Title of Presentation I Date of Presentation 22
Karaf Sub-Projects
Bye Bye Felix, Hello Karaf I #jahiaXDC 23
Karaf Cellar
• Brings bundle clustering to Karaf
instances
• Karaf itself provides HA (lock)
• Karaf Cellar brings cluster:sync
provisioning between Karaf instances
• Leverages Hazelcast
• Easy to install and use
• No single point of failure
• Provide DOSGi support 

(kind of RMI)
Karaf Node CELLAR
Karaf Node CELLAR
Karaf Node CELLAR
Bye Bye Felix, Hello Karaf I #jahiaXDC 24
Karaf Decanter
• Apache Karaf Decanter, complete
monitoring platform for Karaf and
related (Camel, ActiveMQ, ...)
• Collectors (JMX, log messages, ...)
• Dispatched by OSGi EventAdmin
• Appenders (Elasticsearch, log,
JDBC, ...)
• Dashboards (Kibana) and SLA
Bye Bye Felix, Hello Karaf I #jahiaXDC 25
Other interesting Karaf projects
Karaf Cave
• OSGi Repository implementation
Karaf Boot
• Get started quickly with a Karaf project, similar to Spring Boot but for OSGi
projects
• Very early stages
Karaf Maven Plugin
• Helps built feature or KAR packages
• Generates help for shell commands
• Custom Karaf Distributions (for example Apache Unomi)
Title of Presentation I Date of Presentation 26
Demo
Title of Presentation I Date of Presentation 27
Q & A
Title of Presentation I Date of Presentation 28
Thank you !
Bye Bye Felix, Hello Karaf I #jahiaXDC 29
Resources
Jahia Digital Experience Manager
http://www.jahia.com
Apache Karaf
http://karaf.apache.org
Reach me at :
shuber@jahia.com, @sergehuber

Contenu connexe

Tendances

MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)Colin Charles
 
Databases in the hosted cloud
Databases in the hosted cloudDatabases in the hosted cloud
Databases in the hosted cloudColin Charles
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Colin Charles
 
Cool MariaDB Plugins
Cool MariaDB Plugins Cool MariaDB Plugins
Cool MariaDB Plugins Colin Charles
 
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetApache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetNormandy JUG
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 WorkflowsRyan Street
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015Colin Charles
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataColin Charles
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerColin Charles
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016Colin Charles
 
High Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningHigh Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningAlbert Chen
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityColin Charles
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafIoan Eugen Stan
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitColin Charles
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Michel Schildmeijer
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB MeetupColin Charles
 

Tendances (20)

MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
 
Databases in the hosted cloud
Databases in the hosted cloudDatabases in the hosted cloud
Databases in the hosted cloud
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015
 
Cool MariaDB Plugins
Cool MariaDB Plugins Cool MariaDB Plugins
Cool MariaDB Plugins
 
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetApache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
 
High Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningHigh Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance Tuning
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
 
MySQL highav Availability
MySQL highav AvailabilityMySQL highav Availability
MySQL highav Availability
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache Karaf
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web Summit
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
 

En vedette

Apache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 SessionApache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 SessionSerge Huber
 
Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionSerge Huber
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL IntroductionSerge Huber
 
JahiaOne - Upgrade to Jahia7 in 10 minutes
JahiaOne - Upgrade to Jahia7 in 10 minutesJahiaOne - Upgrade to Jahia7 in 10 minutes
JahiaOne - Upgrade to Jahia7 in 10 minutesJahia Solutions Group
 
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie AuvrayJahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie AuvrayJahia Solutions Group
 
JahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital FactoryJahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital FactoryJahia Solutions Group
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutesSerge Huber
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerSerge Huber
 
The Zero Bullshit Architecture
The Zero Bullshit ArchitectureThe Zero Bullshit Architecture
The Zero Bullshit ArchitectureLars Trieloff
 
Ang Kasaysayan ng Noli Me Tangere
Ang Kasaysayan ng Noli Me TangereAng Kasaysayan ng Noli Me Tangere
Ang Kasaysayan ng Noli Me TangereEM Barrera
 

En vedette (12)

Apache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 SessionApache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 Session
 
Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 Session
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
JahiaOne - Upgrade to Jahia7 in 10 minutes
JahiaOne - Upgrade to Jahia7 in 10 minutesJahiaOne - Upgrade to Jahia7 in 10 minutes
JahiaOne - Upgrade to Jahia7 in 10 minutes
 
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie AuvrayJahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
 
JahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital FactoryJahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital Factory
 
Apache Unomi Project In-depth
Apache Unomi Project In-depthApache Unomi Project In-depth
Apache Unomi Project In-depth
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log Analyzer
 
The Zero Bullshit Architecture
The Zero Bullshit ArchitectureThe Zero Bullshit Architecture
The Zero Bullshit Architecture
 
Ang Kasaysayan ng Noli Me Tangere
Ang Kasaysayan ng Noli Me TangereAng Kasaysayan ng Noli Me Tangere
Ang Kasaysayan ng Noli Me Tangere
 
Java modularity: life after Java 9
Java modularity: life after Java 9Java modularity: life after Java 9
Java modularity: life after Java 9
 

Similaire à Jahia DX 7.2 : Bye bye felix, hello karaf

Apache Karaf in DX 7.2 - Developers Meetup - March 2017
Apache Karaf in DX 7.2 - Developers Meetup - March 2017Apache Karaf in DX 7.2 - Developers Meetup - March 2017
Apache Karaf in DX 7.2 - Developers Meetup - March 2017Jahia Solutions Group
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Symphony Software Foundation
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaSAppsembler
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi ServerArtur Alves
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
Gert Vanthienen Presentation
Gert Vanthienen PresentationGert Vanthienen Presentation
Gert Vanthienen Presentationguest27deb47
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
Managing an OSGi Framework with Apache Felix Web Console
Managing an OSGi Framework with  Apache Felix Web ConsoleManaging an OSGi Framework with  Apache Felix Web Console
Managing an OSGi Framework with Apache Felix Web ConsoleFelix Meschberger
 
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021StreamNative
 
What’s new in cas 4.2
What’s new in cas 4.2 What’s new in cas 4.2
What’s new in cas 4.2 Misagh Moayyed
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 
CGSpace technical overview
CGSpace technical overviewCGSpace technical overview
CGSpace technical overviewILRI
 
Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09Charles Severance
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitJukka Zitting
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime Luis Marques
 

Similaire à Jahia DX 7.2 : Bye bye felix, hello karaf (20)

Apache Karaf in DX 7.2 - Developers Meetup - March 2017
Apache Karaf in DX 7.2 - Developers Meetup - March 2017Apache Karaf in DX 7.2 - Developers Meetup - March 2017
Apache Karaf in DX 7.2 - Developers Meetup - March 2017
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
Alfresco spk-alfresco-day
Alfresco spk-alfresco-dayAlfresco spk-alfresco-day
Alfresco spk-alfresco-day
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
Gert Vanthienen Presentation
Gert Vanthienen PresentationGert Vanthienen Presentation
Gert Vanthienen Presentation
 
Introduction to-osgi
Introduction to-osgiIntroduction to-osgi
Introduction to-osgi
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
Managing an OSGi Framework with Apache Felix Web Console
Managing an OSGi Framework with  Apache Felix Web ConsoleManaging an OSGi Framework with  Apache Felix Web Console
Managing an OSGi Framework with Apache Felix Web Console
 
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
Simplifying Migration from Kafka to Pulsar - Pulsar Summit NA 2021
 
What’s new in cas 4.2
What’s new in cas 4.2 What’s new in cas 4.2
What’s new in cas 4.2
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
CGSpace technical overview
CGSpace technical overviewCGSpace technical overview
CGSpace technical overview
 
Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
GlassFish Embedded API
GlassFish Embedded APIGlassFish Embedded API
GlassFish Embedded API
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime Ksplice - Keep your Database systems up to date with no downtime
Ksplice - Keep your Database systems up to date with no downtime
 

Plus de Serge Huber

ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...Serge Huber
 
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiSerge Huber
 
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...Serge Huber
 
DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)Serge Huber
 
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...Serge Huber
 
Webinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comWebinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comSerge Huber
 
Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applicationsSerge Huber
 

Plus de Serge Huber (7)

ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
 
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
 
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
 
DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)
 
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
 
Webinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comWebinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.com
 
Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applications
 

Dernier

Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Incrobinwilliams8624
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntelliSource Technologies
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsJaydeep Chhasatia
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageDista
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 

Dernier (20)

Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Inc
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptx
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 

Jahia DX 7.2 : Bye bye felix, hello karaf

  • 1. #jahiaXDC 1 Bye bye Felix, Hello Karaf Serge Huber Jahia CTO & Co-Founder shuber@jahia.com
  • 2. Title of Presentation I Date of Presentation 2 What is this about ?
  • 3. Bye Bye Felix, Hello Karaf I #jahiaXDC Chronology Jahia Digital Experience Manager (DX) 7.0 • Introduces OSGi for modules • Implemented using the embedded Apache Felix OSGi framework implementation Jahia Digital Experience Manager (DX) 7.1 • No major change in the OSGi framework Jahia Digital Experience Manager (DX) 7.2 (upcoming) • Replaces the embedded Felix Framework with Apache Karaf (embedded) Apache Unomi • Part of Jahia Marketing Factory • Built on top of a standalone Apache Karaf runtime
  • 4. Bye Bye Felix, Hello Karaf I #jahiaXDC 4 - Open Source OSGi Framework implementation - Implements part of the OSGi Compendium such as : - HTTP Service - Shell Service (Gogo Shell) - Configuration Admin Service - Event Service - Provides additional tools such as: - Web Console - iPOJO - uPNP support
  • 5. Bye Bye Felix, Hello Karaf I #jahiaXDC 5 • “The Tomcat for OSGI”, basically all you will need for a minimal server OSGi runtime (where Felix is not necessarily focused at servers) • Uses Apache Felix or Eclipse Equinox as the OSGi Framework implementation • Provides a lot of additional services such as : - Serious logging (Felix is really basic), backed by Log4J - Provisioning (Features) - Advanced remote SSH Shell - Two-way data binding configuration files - JMX support - Diagnostic and developer commands - JAAS support Karaf APACHE
  • 6. Title of Presentation I Date of Presentation 6 Comparison
  • 7. Bye Bye Felix, Hello Karaf I #jahiaXDC 7 Quick comparison Felix Karaf OSGi Specification Version supported R4 R6 (adds enterprise technologies) Embedded Felix Framework Version 4.2.1 5.4.0 Remote Shell technology Telnet (insecure), deactivated by default SSH (secure), activated by default Shell autocompletion no yes Shell help no yes Shell history no yes
  • 8. Bye Bye Felix, Hello Karaf I #jahiaXDC 8 Quick comparison, continued Supports regions (OSGi subsystems) no yes Karaf Cellar (clustering) no yes Karaf Decanter (monitoring) no yes Karaf Cave (repository) no yes Karaf Features (bundle packages) (provisioning) no yes Two-way OSGi configuration sync (file to memory and back) no yes
  • 9. Bye Bye Felix, Hello Karaf I #jahiaXDC 9 Quick comparison, continued Deploy bundle/features directly from Maven repository (or Karaf Cave) no yes Built-in support from JAR wrapping (dynamic generation of OSGi bundle from non-OSGi jar) no yes Built-in features (Spring, Blueprint, Hibernate) no yes Diagnostic, JMX features no yes Developer features (bundle:watch) no yes
  • 10. Bye Bye Felix, Hello Karaf I #jahiaXDC 10 Quick comparison, continued Paves the way to a standalone runtime no yes Enterprise features (JNDI, JDBC, JPA, JTA, CDI, ...) no yes Security support (encryption, RBAC, JAAS, …) no yes Linux Comparison Similar to Linux Kernel Similar to “Lightweight” Linux Distribution (Debian)
  • 11. Title of Presentation I Date of Presentation 11 What’s New
  • 12. Bye Bye Felix, Hello Karaf I #jahiaXDC 12 Apache Karaf Shell
  • 13. Bye Bye Felix, Hello Karaf I #jahiaXDC 13 Apache Karaf Provisioning Features A feature describes an application as: • a name • a version • a optional description (eventually with a long description) • a set of bundles • optionally a set configurations or configuration files • optionally a set of dependency features
  • 14. Bye Bye Felix, Hello Karaf I #jahiaXDC 14 Apache Karaf Features, continued Karaf Shell - “feature:install feature1” will install all defined bundles for the feature name “feature1” <features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"> <feature name="feature1" version="1.0.0"> <bundle>...</bundle> <bundle>...</bundle> </feature> <feature name="feature2" version="1.1.0"> <feature>feature1</feature> <bundle>...</bundle> </feature> </features>
  • 15. Bye Bye Felix, Hello Karaf I #jahiaXDC 15 Apache Features, continued Dependent features means that when you install the “my-project” feature, the “other” feature will also get installed if it is not already there. <feature name="my-project" version="1.0.0"> <feature>other</feature> <bundle start-level="80" start="false">mvn:com.mycompany.myproject/myproject-dao</bundle> <bundle start-level="85" start="false">mvn:com.mycompany.myproject/myproject-service</bundle> </feature>
  • 16. Bye Bye Felix, Hello Karaf I #jahiaXDC 16 Building your own feature <project xmlns=“http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”> … <packaging>feature</packaging> <dependencies> <dependency> <groupId>org.jahia.modules</groupId> <artifactId>spam-filtering</artifactId> <version>2.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jahia.modules</groupId> <artifactId>jahia-watcher-backend</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.karaf.tooling</groupId> <artifactId>karaf-maven-plugin</artifactId> <version>4.0.3</version> <extensions>true</extensions> <configuration> <includeTransitiveDependency>false</includeTransitiveDependency> </configuration> </plugin> </plugins> </build> </project>
  • 17. Bye Bye Felix, Hello Karaf I #jahiaXDC 17 Building your own feature mvn clean install karaf> feature:repo-add mvn:org.jahia.modules/jahia-watcher-backend-karaf- feature/1.0-SNAPSHOT/xml/features karaf> feature:install jahia-watcher-backend-karaf-feature <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="jahia-watcher-backend-karaf-feature"> <feature name="jahia-watcher-backend-karaf-feature" description="Jahia Watcher DX module Apache Karaf Feature" version="1.0.0.SNAPSHOT"> <details>This project packages the backend for the Jahia Watcher mobile application as a Karaf Feature to be deployed in Jahia DX</details> <bundle>mvn:org.jahia.modules/spam-filtering/2.0.1-SNAPSHOT</bundle> <bundle>mvn:org.jahia.modules/jahia-watcher-backend/1.0-SNAPSHOT</bundle> </feature> </features>
  • 18. Bye Bye Felix, Hello Karaf I #jahiaXDC 18 Apache Features, continued Features can do a lot more: - Provide embedded configuration properties - Provide configuration files directly - Features repositories (i.e. a <features> XML file) URLs can be added or removed at any time - Features may specify requirements (using OSGi capabilities) - Features may also be controlled through JMX - Features may be upgraded (by simply installing a new version) - Features also work with Karaf Cellar, making it possible to install features over a cluster
  • 19. Title of Presentation I Date of Presentation 19 Jahia DX Integration
  • 20. Bye Bye Felix, Hello Karaf I #jahiaXDC 20 Features for Jahia Modules • Features provide a more powerful way to package collection of bundles than our existing (<7.2) MegaJAR technology • Dependency on other features makes it easier to install more complex applications • Cluster compatibility (through Karaf Cellar) will also make installation complex installations on a cluster easier • At Jahia we will probably deprecate MegaJARs at some point once customer have shifted to Features • Jahia’s other applications (Marketing Factory, Form Factory, Commerce Factory, Workspace Factory), will probably be all delivered as features over time
  • 21. Bye Bye Felix, Hello Karaf I #jahiaXDC 21 Jahia DX Integration Migration • For most users, should be transparent, no change needed to modules or configuration • If you performed modifications to the default felix-framework.properties file those changes will need to be moved to another file (or removed) Limitations • Existing features that depends on “web”, “pax-web” or “spring” features will not work out of the box (because these technologies are exposed by DX’s core)
  • 22. Title of Presentation I Date of Presentation 22 Karaf Sub-Projects
  • 23. Bye Bye Felix, Hello Karaf I #jahiaXDC 23 Karaf Cellar • Brings bundle clustering to Karaf instances • Karaf itself provides HA (lock) • Karaf Cellar brings cluster:sync provisioning between Karaf instances • Leverages Hazelcast • Easy to install and use • No single point of failure • Provide DOSGi support 
 (kind of RMI) Karaf Node CELLAR Karaf Node CELLAR Karaf Node CELLAR
  • 24. Bye Bye Felix, Hello Karaf I #jahiaXDC 24 Karaf Decanter • Apache Karaf Decanter, complete monitoring platform for Karaf and related (Camel, ActiveMQ, ...) • Collectors (JMX, log messages, ...) • Dispatched by OSGi EventAdmin • Appenders (Elasticsearch, log, JDBC, ...) • Dashboards (Kibana) and SLA
  • 25. Bye Bye Felix, Hello Karaf I #jahiaXDC 25 Other interesting Karaf projects Karaf Cave • OSGi Repository implementation Karaf Boot • Get started quickly with a Karaf project, similar to Spring Boot but for OSGi projects • Very early stages Karaf Maven Plugin • Helps built feature or KAR packages • Generates help for shell commands • Custom Karaf Distributions (for example Apache Unomi)
  • 26. Title of Presentation I Date of Presentation 26 Demo
  • 27. Title of Presentation I Date of Presentation 27 Q & A
  • 28. Title of Presentation I Date of Presentation 28 Thank you !
  • 29. Bye Bye Felix, Hello Karaf I #jahiaXDC 29 Resources Jahia Digital Experience Manager http://www.jahia.com Apache Karaf http://karaf.apache.org Reach me at : shuber@jahia.com, @sergehuber