Wednesday, April 17, 2013

Learning Apache Karaf

One of the most common challenges I encounter when working with the Apache SOA stack is introducing developers to Apache Karaf and its OSGi underpinnings. Many developers are already familiar with Apache Maven based build systems, and Spring for IoC but trip up when learning about Bundles, Blueprint, Pax Exam, JPA/JTA, modularity and the complexity of dynamic life cycles and their dependencies. To conquer these challenges and help promote confidence in development teams' use of these technologies I'll often spend many hours white boarding samples, and walking through demo code.

These routine sessions prompted Johan Edstrom and I to develop our Instant OSGi Starter book to assist developers pick up the required technologies and methodologies. The book however could only cover so much material, so we embarked upon developing a formal training program to help guide teams through the foundation concepts up to best practices for developing and deploying production systems on Apache Karaf.

Our vision for the training was to provide a hands on environment in which we'd present concepts and immediately follow up with targeted laboratory units designed to re-enforce learning, cementing skills. A full details of the training program can be found here, but for the curious here is an outline of the topics we cover:

Day 1

1) Introduction to OSGi.
2) Lab – Install and configure Apache Felix.
3) OSGi Bundles, the base unit of OSGi modularity.
4) Lab – Bundles.
5) OSGi Life Cycle, fine grain control of software life.
6) Lab – Life Cycle.
7) OSGi Services, inter-bundle services sometimes referred to as “SOA in a JVM”.
8) Lab – Services.
9) Core Services Review.
10) Lab – Core Services.

Day 2

1) Compendium Services Review.
2) Lab – Compendium Services.
3) Whiteboard and Extender Patterns.
4) Lab: Extender Pattern.
5) Bundle Host/Fragment.
6) Lab: Build Bundle Host and Fragment.
7) Aries JPA/JTA.
8) Lab: JPA/JTA.
9) Bundle Testing.
10) Lab: Pax Exam.

Day 3

1) Introduction to Apache Karaf.
2) Lab – Install and configure Apache Karaf.
3) Karaf Consoles.
4) Lab – Console familiarity.
5) Application Logging.
6) Lab – Logging.
7) Provisioning Applications.
8) Lab – Karaf Feature based project.
9) Deploying Applications.
10) Lab – Karaf Deployer.

For more details please feel free to contact us, we're happy to share our years of expertise with your team.

No comments: