SlideShare a Scribd company logo
1 of 33
Download to read offline
Apache Karaf 
Develop OSGi Applications with Apache Karaf
2 
Today‘s speakers 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
TorstenFrank 
CEO & Founder 
Physician 
15+ years experience in business and product development 
Healthcare IT expert 
Qualified medical device consultant 
Alexander Grzesik 
Head of software development, 
Chief Software Architect 
Java Expert 
15+ years experience in software development 
Validator for computer validation (GAMP 5)
3 
medisite & Cloudyle 
• Specialized for over 10 years in the development of software focused on the 
healthcare market. 
• Our products m.life® and m.care® are comprehensive healthcare solutions. 
• Expanded to the cloud with the spin-off Cloudyle, with offices in 
Berlin, Hannover, Germany and soon in the US. 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
4 
Agenda 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Run 
•Files & Folders 
•Start andStop 
•Command Line 
Develop 
•Configuration 
•Logging 
•Web 
Deploy 
•Maven 
•Features 
•Kar Archives 
Test 
•Debug 
•Integration Testing 
Production 
•Clustering 
•Cloud
5 
Apache KarafHighlights 
Flexible ProvisioningandDeployment 
Applicationprovisioningby„Features“ 
Lightweight andmodular 
AdvancedLogging 
Dynamic Configuration 
Command Line 
Remote Management 
Supports different OSGi Frameworks 
Lots ofavailablefeatures 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
6 
Apache KarafOverview 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
7 
ImportantFiles andFolders 
+---bin: Startup scriptsandcommands 
+---data: Karafworkdirectory 
| +---cache: Installedbundles 
| +---log: Default log directory 
| +---tmp: Temporaryfiles 
+---deploy: Directory forfilesystemdeployment 
+---etc: Configurationfiles 
+---instances: Instance management 
+---lib: Core libraries 
+---system: System bundlerepository 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
8 
KarafSpecificEnvironment Variables 
KARAF_HOME: thelocationofyourApache Karafinstallation(defaultisfounddependingwhereyoulaunchthestartupscript). 
KARAF_BASE: thelocationofyourApache Karafbase(defaultisKARAF_HOME). 
KARAF_DATA: thelocationofyourApache Karafdatafolder(defaultisKARAF_BASE/data). 
KARAF_ETC: thelocationofyourApache Karafetcfolder(defaultisKARAF_BASE/etc). 
KARAF_OPTS: extra argumentspassedtotheJava commandline(defaultisnull). 
KARAF_DEBUG: if'true', enablethedebugmode(defaultisnull). 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
9 
Commandline 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
10 
Command Groups (Karaf3.x) 
bundle:* -Install and control bundles 
dev:* -Development support 
feature:* -Manage features 
instance:* -Control of multiple instances 
jaas:* -JAAS role and rights management 
log:* -log display 
obr:* -Interaction with OSGi Bundle Repositories 
scr:* -Declarative Services management 
service:* -Manage OSGi Services 
shell:* -useful helper functions (i.e. grep, more, java info) 
ssh:* -SSH connections 
system:* -OSGi framework management 
web:* -WAR bundle management 
wrapper:* -OS service installation 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
11 
Remote Management 
Usecommandlinevia SSH: 
Configurationvia: org.apache.karaf.shell.cfg 
User andRolemanagementvia JAAS 
Configurevia users.properties 
org.apache.karaf.command.acl.* forcommandspecificpermissions 
Default roles: viewer, manager, admin 
Connect tootherKarafusingsshcommand 
Connect tolocalrunningKarafusingtheclientscript 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
ssh-p 38031karaf@karaf-mydomain.paasplus.com
12 
Webconsole 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
13 
Scripting 
Scripting allowscustomizingconsole 
Variable assignment: msg= “Welcome toPaaS+“ 
Lists, Mapsmap= [Jan=1 Feb=2 Mar=3] 
Pipe commands($.contextbundles) | grep-i PaaS+ 
Flow controlshell:if, shell:each 
Startup scriptsconfiguredin shell.init.script 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
paasplus:refresh={ feature:repo-remove-u mvn:com.cloudyle.paasplus/$args/LATEST/xml/features; feature:repo-addmvn:com.cloudyle.paasplus/$args/LATEST/xml/features; feature:install$args} ;
14 
Custom Commands 
Add customcommandsfromyourbundles 
Extendorg.apache.karaf.shell.console.OsgiCommandSupport 
Add @org.apache.karaf.shell.commands.CommandAnnotation 
Register commandvia Blueprint 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
publicclassStartInstanceCommandextendsOsgiCommandSupport{ 
@Argument(index=0,name="key",description="Processdefinitionkey", 
required=true,multiValued=false) 
String key; 
@Override 
protectedObjectdoExecute()throwsException{ 
finalProcessInstanceinstance=startProcessInstance(this.key); 
System.out.println("Instance id: "+instance.getProcessInstanceId()); 
returnnull; 
} 
… 
<shell:command-bundle> 
<shell:command> 
<shell:actionclass="com.cloudyle.paasplus.commands.StartInstanceCommand"> 
<shell:propertyname="runtimeService"ref="runtimeBean"/> 
</shell:action> 
</shell:command> 
</shell:command-bundle>
15 
Developer Commands 
dev:dump-create 
Createsa systemdumpofKaraf 
bundle:diag 
Givesdetailswhybundledidnot start 
bundle:dynamic-import 
enable or disable the dynamic import of a given bundle 
log:exception-display 
Displays the last occurred exception from the log 
log:tail 
Continuouslydisplaylog entries 
bundle:tree-show 
Show bundledependencytree 
bundle:watch 
Automaticupdate frommavenrepo 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
16 
PetClinic 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
PetClinic 
Persistence 
ClinicService 
API 
Provider 
GUI 
Feature 
https://github.com/Cloudyle/petclinic 
JPA-Bundle 
Configuration, 
Logging 
Web App Bundle 
Feature generation
17 
Persistence 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
https://github.com/Cloudyle/aries/tree/cloudyle 
JPA API 
JPA Container 
Container 
Context 
Container 
Blueprint 
Aries JPA 
Hibernate 
OpenJPA 
EclipseLink 
PersistenceBundle 
•Entities 
•Persistence.xml 
•Meta-Persistenceflag 
<Meta-Persistence> 
META-INF/persistence.xml 
</Meta-Persistence> 
<beanid="persistenceUnit" 
class=„... " init-method="init"> <jpa:unitproperty="entityManagerFactory" unitname="persistence-petclinic-nosql" /> </bean>
18 
Database Connection 
Configurationvia Blueprint 
Simplydeployblueprint.xml intoKaraf 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
<beanid="dataSource"class="org.postgresql.ds.PGPoolingDataSource" 
destroy-method="close"> 
<propertyname="serverName"value="${host}:${port}/${database}"/> 
<propertyname="user"value="${user}"/> 
<propertyname="password"value="${password}"/> 
<propertyname="dataSourceName"value="defaultConnectionPool"/> 
<propertyname="initialConnections"value="${initialConnections}"/> 
<propertyname="maxConnections"value="${maxConnections}"/> 
</bean> 
<serviceinterface="javax.sql.DataSource"ref="dataSource"> 
<service-properties> 
<entrykey="osgi.jndi.service.name"value="jdbc/default"/> 
<entrykey="datasource.name"value="postgres"/> 
</service-properties> 
</service>
19 
Logging 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
log4j 
slf4j 
commonslogging 
Java utillogging 
logback 
OSGi LoggingService 
log4j 
Pax logging 
etc/org.ops4j.pax.logging.cfg 
Commands: 
log:display 
log:tail 
log:set 
log:get 
log:log 
Import-package: org.slf4j;provider=paxlogging
20 
Configuration 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Bundle 
ConfigAdmin 
Bundle Config 
Global Config 
Pid.cfg 
config.properties 
custom.properties 
System Config 
system.properties 
Java -D 
Commands: 
config:list 
config:edit 
config:property-list 
config:property-set
21 
UsagewithBlueprint 
Import configurationin blueprint: 
Property Placeholders: 
ManagedProperties 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
<cm:property-placeholderid="property-placeholder"persistent- id="com.cloudyle.paasplus.petclinic"update-strategy="reload"> <cm:default-properties> 
<cm:propertyname="dataDir"value="data"/> 
<cm:propertyname="createSampleData"value="true"/> 
</cm:default-properties> 
</cm:property-placeholder> 
<beanid="reportHelper"class="com.cloudyle.paasplus.petclinic.impl.ReportHelper"> 
<propertyname="dataDir"value="${dataDir}"/> 
</bean> 
<beanid="clinicS"class="com.cloudyle.paasplus.petclinic.impl.ClinicServiceImpl"> 
<cm:managed-propertiespersistent-id=clinicServiceConfig" 
update-strategy="container-managed"/> 
</bean>
22 
Web Applications 
Webappsupportvia Pax Web feature 
Integrated Jetty 
etc/jetty.xml 
OSGi http Service (Whiteboard pattern) 
Register Web applicationresourcesasOSGi services 
FullWebapp 
Deploywar orwab 
CDI support 
Commands 
web:list, stop, start(Webapps) 
http:list (Servlets) 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
23 
Web ApplicationBundle 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Web App Bundle 
META-INF 
MANIFEST 
WEB-INF 
classes 
web.xml 
<Web-ContextPath>/petclinic 
</Web-ContextPath> <_wab>src/main/resources</_wab> 
<groupId>org.apache.felix</groupId> 
<artifactId>maven-bundle-plugin</artifactId> 
<extensions>true</extensions> 
<configuration> 
<supportedProjectTypes> 
<supportedProjectType>jar</supportedProjectType> 
<supportedProjectType>bundle</supportedProjectType> 
<supportedProjectType>war</supportedProjectType> 
</supportedProjectTypes>
24 
Deployment 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Deploymentof: 
Bundles 
Blueprint files(xml) 
Features 
Kar Archives 
„plain“ jarfiles
25 
Features 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Bundle A 
Bundle C 
Bundle B 
ConfigA 
Feature Dependency 
Feature XML 
<featurename="com.cloudyle.paasplus.samples.petclinic.feature"version="0.9.0" description="PaaS+ Sample -PetClinic-Deploymentfeature"resolver="(obr)" install="auto"> 
<details>PetClinicFeature.</details> 
<configfilefinalname="/etc/com.cloudyle.paasplus.petclinic.cfg"> mvn:com.cloudyle.paasplus.samples/com.cloudyle.paasplus.samples.petclinic.provider/0.9.0/cfg</configfile> 
<feature>paasplus-persistence-service</feature> 
<bundlestart-level="75">mvn:com.cloudyle.paasplus.samples/ com.cloudyle.paasplus.samples.petclinic.persistence/0.9.0</bundle> 
<bundlestart-level="75">mvn:com.cloudyle.paasplus.samples/ com.cloudyle.paasplus.samples.petclinic.api/0.9.0</bundle> 
</feature>
26 
MavenDeployment 
Deployvia anyMavenrepository 
Bundles 
Features 
Configurations 
Add additional repostoorg.ops4j.pax.url.mvn.cfg 
Installfeaturesorbundles 
UsefulCommands 
bundle:install, update, list 
feature:install, list 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
org.ops4j.pax.url.mvn.repositories=  
http://nexus.paasplus.com:8081/nexus/content/groups/public/,  
http://repo1.maven.org/maven2@id=central,  
repo-add mvn:com.cloudyle.paasplus/com.cloudyle.paasplus.karaf.deployment.services/ 
LATEST/xml/features; 
feature:installpaasplus-persistence-service; 
bundle:installmvn:com.cloudyle.paasplus.samples/ 
com.cloudyle.paasplus.samples.petclinic.api;
27 
KarafMavenPlugin 
Generatefeature.xml withprojectdependencies 
Generatecommanddocumentation 
Kar packaging 
Custom Karafdistribution 
Kar andfeaturepackaging 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
<plugin> 
<groupId>org.apache.karaf.tooling</groupId> 
<artifactId>karaf-maven-plugin</artifactId> 
<version>3.0.2</version> 
<extensions>true</extensions> 
</plugin>
28 
Integrated Development Process 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Develop 
Debug, 
Integration Tests mvn install 
bundle:install, update 
Manage 
Feature 
XML 
mvn:…/.. 
repo-add
29 
JMX 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
30 
Integration Testing 
AutomatedTestingvia PaxExam 
JUnittestsrunningin Apache Karafinstance 
Configureandmanage Karafvia JUnittest 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
@RunWith(PaxExam.class) 
publicclassServiceProviderITextendsAbstractBaseTest{ 
@Configuration 
publicOption[]config(){ 
returncombine(super.config(),newOption[]{ 
editConfigurationFileExtend("etc/org.apache.karaf.features.cfg","featuresRepositories", ",mvn:com.cloudyle.paasplus:com.cloudyle.paasplus.karaf.deployment.services:xml:features"), 
newKarafDistributionConfigurationFileReplacementOption("etc/org.elasticsearch.connection.cfg", 
newFile("src/test/resources/etc/org.elasticsearch.connection.cfg")), 
features("mvn:com.cloudyle.paasplus/com.cloudyle.paasplus.karaf.deployment.services/LATEST/xml/features","paasplus-report-service"), 
vmOption("-Djava.net.preferIPv4Stack=true"),vmOption("-XX:MaxPermSize=256M")});} 
@Test 
publicvoiddoTest(){ 
…
31 
CellarClustering 
Cluster solution for Apache Karaf 
Based on Hazelcast 
Support for different topologies 
Synchronization of deployments and configurations 
Cross-Node Event publishing 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf 
Node 
Node 
Node 
Node 
Node 
Node 
Cluster Manager
32 
PaaS+withKarafsupport 
CloudylePaaS+allows easy creation of Karafapplications 
Try out PetClinichttp://devcenter.cloudyle.com/display/public/PAAS/Pet+Clinic+ Tutorial 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
33 
See youtomorrow: 
Build bundles in the cloud -How CloudylePaaS+helps creating OSGi applications in the cloud 
Wednesday, October29, 2014 
14:30 to15:05 
Seminarräume 1 -3 
Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf

More Related Content

What's hot

Maven Basics - Explained
Maven Basics - ExplainedMaven Basics - Explained
Maven Basics - ExplainedSmita Prasad
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideTim Burks
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelClaus Ibsen
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewKris Rice
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsRob O'Doherty
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym Lotar
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptWojciech Dzikowski
 
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with ThymeleafSpring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with ThymeleafThymeleaf
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelClaus Ibsen
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel IntroductionClaus Ibsen
 
Intro to Asynchronous Javascript
Intro to Asynchronous JavascriptIntro to Asynchronous Javascript
Intro to Asynchronous JavascriptGarrett Welson
 

What's hot (20)

Maven Basics - Explained
Maven Basics - ExplainedMaven Basics - Explained
Maven Basics - Explained
 
Apache Airflow
Apache AirflowApache Airflow
Apache Airflow
 
Introduction to gradle
Introduction to gradleIntroduction to gradle
Introduction to gradle
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
RESTful API - Best Practices
RESTful API - Best PracticesRESTful API - Best Practices
RESTful API - Best Practices
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
 
Spring boot
Spring bootSpring boot
Spring boot
 
Introducing Akka
Introducing AkkaIntroducing Akka
Introducing Akka
 
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with ThymeleafSpring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
 
Intro to Asynchronous Javascript
Intro to Asynchronous JavascriptIntro to Asynchronous Javascript
Intro to Asynchronous Javascript
 

Viewers also liked

OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneidermfrancis
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafJerry Preissler
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlettmfrancis
 
Modular Web Applications with OSGi
Modular Web Applications with OSGiModular Web Applications with OSGi
Modular Web Applications with OSGiSam Brannen
 
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixDynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixMarcel Offermans
 
Pax – Tools für den OSGi Alltag
Pax – Tools für den OSGi AlltagPax – Tools für den OSGi Alltag
Pax – Tools für den OSGi AlltagPatrick Baumgartner
 
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)Kai Wähner
 
Activiti in Action for BeJUG Part II
Activiti in Action for BeJUG Part IIActiviti in Action for BeJUG Part II
Activiti in Action for BeJUG Part IITom Baeyens
 
Introduction to Activiti BPM
Introduction to Activiti BPMIntroduction to Activiti BPM
Introduction to Activiti BPMAlfresco Software
 
Establish The Core of Cloud Computing Application by Using Hazelcast (Chinese)
Establish The Core of  Cloud Computing Application  by Using Hazelcast (Chinese)Establish The Core of  Cloud Computing Application  by Using Hazelcast (Chinese)
Establish The Core of Cloud Computing Application by Using Hazelcast (Chinese)Joseph Kuo
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGiCarsten Ziegeler
 
Erweiterbare Webanwendungen mit OSGi
Erweiterbare Webanwendungen mit OSGiErweiterbare Webanwendungen mit OSGi
Erweiterbare Webanwendungen mit OSGiJan Ehrhardt
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleHenryk Konsek
 

Viewers also liked (20)

OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneider
 
Introduction to-osgi
Introduction to-osgiIntroduction to-osgi
Introduction to-osgi
 
OSGi Blueprint Services
OSGi Blueprint ServicesOSGi Blueprint Services
OSGi Blueprint Services
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache Karaf
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
 
OSGi Presentation
OSGi PresentationOSGi Presentation
OSGi Presentation
 
Object Role Modeling
Object Role ModelingObject Role Modeling
Object Role Modeling
 
Apache Felix Web Console
Apache Felix Web ConsoleApache Felix Web Console
Apache Felix Web Console
 
Modular Web Applications with OSGi
Modular Web Applications with OSGiModular Web Applications with OSGi
Modular Web Applications with OSGi
 
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixDynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
 
Pax – Tools für den OSGi Alltag
Pax – Tools für den OSGi AlltagPax – Tools für den OSGi Alltag
Pax – Tools für den OSGi Alltag
 
OSGi & Blueprint
OSGi & BlueprintOSGi & Blueprint
OSGi & Blueprint
 
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
 
Activiti in Action for BeJUG Part II
Activiti in Action for BeJUG Part IIActiviti in Action for BeJUG Part II
Activiti in Action for BeJUG Part II
 
Introduction to Activiti BPM
Introduction to Activiti BPMIntroduction to Activiti BPM
Introduction to Activiti BPM
 
Establish The Core of Cloud Computing Application by Using Hazelcast (Chinese)
Establish The Core of  Cloud Computing Application  by Using Hazelcast (Chinese)Establish The Core of  Cloud Computing Application  by Using Hazelcast (Chinese)
Establish The Core of Cloud Computing Application by Using Hazelcast (Chinese)
 
Fuse overview
Fuse overviewFuse overview
Fuse overview
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGi
 
Erweiterbare Webanwendungen mit OSGi
Erweiterbare Webanwendungen mit OSGiErweiterbare Webanwendungen mit OSGi
Erweiterbare Webanwendungen mit OSGi
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whale
 

Similar to Develop OSGi Applications with Apache Karaf

ApacheCon NA '19 - Apache karaf on cloud, the kloud initiative
ApacheCon NA '19 - Apache karaf on cloud, the kloud initiativeApacheCon NA '19 - Apache karaf on cloud, the kloud initiative
ApacheCon NA '19 - Apache karaf on cloud, the kloud initiativeJean-Baptiste Onofré
 
Gert Vanthienen Presentation
Gert Vanthienen PresentationGert Vanthienen Presentation
Gert Vanthienen Presentationguest27deb47
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfLuca Mattia Ferrari
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0Eugenio Romano
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesChris Bailey
 
Web Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC ProjectWeb Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC ProjectSaltlux Inc.
 
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaSAppsembler
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Pavel Kaminsky
 
(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...
(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...
(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...Amazon Web Services
 
(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...
(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...
(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...Amazon Web Services
 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesPavol Pitoňák
 
DistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOpsDistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOpsPaul Worrall
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)Jooho Lee
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersJavan Rasokat
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 
Introduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud RunIntroduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud RunSaiyam Pathak
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 

Similar to Develop OSGi Applications with Apache Karaf (20)

ApacheCon NA '19 - Apache karaf on cloud, the kloud initiative
ApacheCon NA '19 - Apache karaf on cloud, the kloud initiativeApacheCon NA '19 - Apache karaf on cloud, the kloud initiative
ApacheCon NA '19 - Apache karaf on cloud, the kloud initiative
 
Gert Vanthienen Presentation
Gert Vanthienen PresentationGert Vanthienen Presentation
Gert Vanthienen Presentation
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
 
AppengineJS
AppengineJSAppengineJS
AppengineJS
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
Web Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC ProjectWeb Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC Project
 
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
Oracle APEX & PhoneGap
Oracle APEX & PhoneGapOracle APEX & PhoneGap
Oracle APEX & PhoneGap
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments
 
(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...
(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...
(APP202) Deploy, Manage, and Scale Your Apps with AWS OpsWorks and AWS Elasti...
 
(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...
(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...
(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk |...
 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile Devices
 
DistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOpsDistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOps
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Introduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud RunIntroduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud Run
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 

More from mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Develop OSGi Applications with Apache Karaf

  • 1. Apache Karaf Develop OSGi Applications with Apache Karaf
  • 2. 2 Today‘s speakers Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf TorstenFrank CEO & Founder Physician 15+ years experience in business and product development Healthcare IT expert Qualified medical device consultant Alexander Grzesik Head of software development, Chief Software Architect Java Expert 15+ years experience in software development Validator for computer validation (GAMP 5)
  • 3. 3 medisite & Cloudyle • Specialized for over 10 years in the development of software focused on the healthcare market. • Our products m.life® and m.care® are comprehensive healthcare solutions. • Expanded to the cloud with the spin-off Cloudyle, with offices in Berlin, Hannover, Germany and soon in the US. Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 4. 4 Agenda Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Run •Files & Folders •Start andStop •Command Line Develop •Configuration •Logging •Web Deploy •Maven •Features •Kar Archives Test •Debug •Integration Testing Production •Clustering •Cloud
  • 5. 5 Apache KarafHighlights Flexible ProvisioningandDeployment Applicationprovisioningby„Features“ Lightweight andmodular AdvancedLogging Dynamic Configuration Command Line Remote Management Supports different OSGi Frameworks Lots ofavailablefeatures Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 6. 6 Apache KarafOverview Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 7. 7 ImportantFiles andFolders +---bin: Startup scriptsandcommands +---data: Karafworkdirectory | +---cache: Installedbundles | +---log: Default log directory | +---tmp: Temporaryfiles +---deploy: Directory forfilesystemdeployment +---etc: Configurationfiles +---instances: Instance management +---lib: Core libraries +---system: System bundlerepository Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 8. 8 KarafSpecificEnvironment Variables KARAF_HOME: thelocationofyourApache Karafinstallation(defaultisfounddependingwhereyoulaunchthestartupscript). KARAF_BASE: thelocationofyourApache Karafbase(defaultisKARAF_HOME). KARAF_DATA: thelocationofyourApache Karafdatafolder(defaultisKARAF_BASE/data). KARAF_ETC: thelocationofyourApache Karafetcfolder(defaultisKARAF_BASE/etc). KARAF_OPTS: extra argumentspassedtotheJava commandline(defaultisnull). KARAF_DEBUG: if'true', enablethedebugmode(defaultisnull). Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 9. 9 Commandline Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 10. 10 Command Groups (Karaf3.x) bundle:* -Install and control bundles dev:* -Development support feature:* -Manage features instance:* -Control of multiple instances jaas:* -JAAS role and rights management log:* -log display obr:* -Interaction with OSGi Bundle Repositories scr:* -Declarative Services management service:* -Manage OSGi Services shell:* -useful helper functions (i.e. grep, more, java info) ssh:* -SSH connections system:* -OSGi framework management web:* -WAR bundle management wrapper:* -OS service installation Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 11. 11 Remote Management Usecommandlinevia SSH: Configurationvia: org.apache.karaf.shell.cfg User andRolemanagementvia JAAS Configurevia users.properties org.apache.karaf.command.acl.* forcommandspecificpermissions Default roles: viewer, manager, admin Connect tootherKarafusingsshcommand Connect tolocalrunningKarafusingtheclientscript Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf ssh-p 38031karaf@karaf-mydomain.paasplus.com
  • 12. 12 Webconsole Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 13. 13 Scripting Scripting allowscustomizingconsole Variable assignment: msg= “Welcome toPaaS+“ Lists, Mapsmap= [Jan=1 Feb=2 Mar=3] Pipe commands($.contextbundles) | grep-i PaaS+ Flow controlshell:if, shell:each Startup scriptsconfiguredin shell.init.script Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf paasplus:refresh={ feature:repo-remove-u mvn:com.cloudyle.paasplus/$args/LATEST/xml/features; feature:repo-addmvn:com.cloudyle.paasplus/$args/LATEST/xml/features; feature:install$args} ;
  • 14. 14 Custom Commands Add customcommandsfromyourbundles Extendorg.apache.karaf.shell.console.OsgiCommandSupport Add @org.apache.karaf.shell.commands.CommandAnnotation Register commandvia Blueprint Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf publicclassStartInstanceCommandextendsOsgiCommandSupport{ @Argument(index=0,name="key",description="Processdefinitionkey", required=true,multiValued=false) String key; @Override protectedObjectdoExecute()throwsException{ finalProcessInstanceinstance=startProcessInstance(this.key); System.out.println("Instance id: "+instance.getProcessInstanceId()); returnnull; } … <shell:command-bundle> <shell:command> <shell:actionclass="com.cloudyle.paasplus.commands.StartInstanceCommand"> <shell:propertyname="runtimeService"ref="runtimeBean"/> </shell:action> </shell:command> </shell:command-bundle>
  • 15. 15 Developer Commands dev:dump-create Createsa systemdumpofKaraf bundle:diag Givesdetailswhybundledidnot start bundle:dynamic-import enable or disable the dynamic import of a given bundle log:exception-display Displays the last occurred exception from the log log:tail Continuouslydisplaylog entries bundle:tree-show Show bundledependencytree bundle:watch Automaticupdate frommavenrepo Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 16. 16 PetClinic Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf PetClinic Persistence ClinicService API Provider GUI Feature https://github.com/Cloudyle/petclinic JPA-Bundle Configuration, Logging Web App Bundle Feature generation
  • 17. 17 Persistence Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf https://github.com/Cloudyle/aries/tree/cloudyle JPA API JPA Container Container Context Container Blueprint Aries JPA Hibernate OpenJPA EclipseLink PersistenceBundle •Entities •Persistence.xml •Meta-Persistenceflag <Meta-Persistence> META-INF/persistence.xml </Meta-Persistence> <beanid="persistenceUnit" class=„... " init-method="init"> <jpa:unitproperty="entityManagerFactory" unitname="persistence-petclinic-nosql" /> </bean>
  • 18. 18 Database Connection Configurationvia Blueprint Simplydeployblueprint.xml intoKaraf Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf <beanid="dataSource"class="org.postgresql.ds.PGPoolingDataSource" destroy-method="close"> <propertyname="serverName"value="${host}:${port}/${database}"/> <propertyname="user"value="${user}"/> <propertyname="password"value="${password}"/> <propertyname="dataSourceName"value="defaultConnectionPool"/> <propertyname="initialConnections"value="${initialConnections}"/> <propertyname="maxConnections"value="${maxConnections}"/> </bean> <serviceinterface="javax.sql.DataSource"ref="dataSource"> <service-properties> <entrykey="osgi.jndi.service.name"value="jdbc/default"/> <entrykey="datasource.name"value="postgres"/> </service-properties> </service>
  • 19. 19 Logging Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf log4j slf4j commonslogging Java utillogging logback OSGi LoggingService log4j Pax logging etc/org.ops4j.pax.logging.cfg Commands: log:display log:tail log:set log:get log:log Import-package: org.slf4j;provider=paxlogging
  • 20. 20 Configuration Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Bundle ConfigAdmin Bundle Config Global Config Pid.cfg config.properties custom.properties System Config system.properties Java -D Commands: config:list config:edit config:property-list config:property-set
  • 21. 21 UsagewithBlueprint Import configurationin blueprint: Property Placeholders: ManagedProperties Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf <cm:property-placeholderid="property-placeholder"persistent- id="com.cloudyle.paasplus.petclinic"update-strategy="reload"> <cm:default-properties> <cm:propertyname="dataDir"value="data"/> <cm:propertyname="createSampleData"value="true"/> </cm:default-properties> </cm:property-placeholder> <beanid="reportHelper"class="com.cloudyle.paasplus.petclinic.impl.ReportHelper"> <propertyname="dataDir"value="${dataDir}"/> </bean> <beanid="clinicS"class="com.cloudyle.paasplus.petclinic.impl.ClinicServiceImpl"> <cm:managed-propertiespersistent-id=clinicServiceConfig" update-strategy="container-managed"/> </bean>
  • 22. 22 Web Applications Webappsupportvia Pax Web feature Integrated Jetty etc/jetty.xml OSGi http Service (Whiteboard pattern) Register Web applicationresourcesasOSGi services FullWebapp Deploywar orwab CDI support Commands web:list, stop, start(Webapps) http:list (Servlets) Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 23. 23 Web ApplicationBundle Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Web App Bundle META-INF MANIFEST WEB-INF classes web.xml <Web-ContextPath>/petclinic </Web-ContextPath> <_wab>src/main/resources</_wab> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <supportedProjectTypes> <supportedProjectType>jar</supportedProjectType> <supportedProjectType>bundle</supportedProjectType> <supportedProjectType>war</supportedProjectType> </supportedProjectTypes>
  • 24. 24 Deployment Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Deploymentof: Bundles Blueprint files(xml) Features Kar Archives „plain“ jarfiles
  • 25. 25 Features Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Bundle A Bundle C Bundle B ConfigA Feature Dependency Feature XML <featurename="com.cloudyle.paasplus.samples.petclinic.feature"version="0.9.0" description="PaaS+ Sample -PetClinic-Deploymentfeature"resolver="(obr)" install="auto"> <details>PetClinicFeature.</details> <configfilefinalname="/etc/com.cloudyle.paasplus.petclinic.cfg"> mvn:com.cloudyle.paasplus.samples/com.cloudyle.paasplus.samples.petclinic.provider/0.9.0/cfg</configfile> <feature>paasplus-persistence-service</feature> <bundlestart-level="75">mvn:com.cloudyle.paasplus.samples/ com.cloudyle.paasplus.samples.petclinic.persistence/0.9.0</bundle> <bundlestart-level="75">mvn:com.cloudyle.paasplus.samples/ com.cloudyle.paasplus.samples.petclinic.api/0.9.0</bundle> </feature>
  • 26. 26 MavenDeployment Deployvia anyMavenrepository Bundles Features Configurations Add additional repostoorg.ops4j.pax.url.mvn.cfg Installfeaturesorbundles UsefulCommands bundle:install, update, list feature:install, list Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf org.ops4j.pax.url.mvn.repositories= http://nexus.paasplus.com:8081/nexus/content/groups/public/, http://repo1.maven.org/maven2@id=central, repo-add mvn:com.cloudyle.paasplus/com.cloudyle.paasplus.karaf.deployment.services/ LATEST/xml/features; feature:installpaasplus-persistence-service; bundle:installmvn:com.cloudyle.paasplus.samples/ com.cloudyle.paasplus.samples.petclinic.api;
  • 27. 27 KarafMavenPlugin Generatefeature.xml withprojectdependencies Generatecommanddocumentation Kar packaging Custom Karafdistribution Kar andfeaturepackaging Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf <plugin> <groupId>org.apache.karaf.tooling</groupId> <artifactId>karaf-maven-plugin</artifactId> <version>3.0.2</version> <extensions>true</extensions> </plugin>
  • 28. 28 Integrated Development Process Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Develop Debug, Integration Tests mvn install bundle:install, update Manage Feature XML mvn:…/.. repo-add
  • 29. 29 JMX Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 30. 30 Integration Testing AutomatedTestingvia PaxExam JUnittestsrunningin Apache Karafinstance Configureandmanage Karafvia JUnittest Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf @RunWith(PaxExam.class) publicclassServiceProviderITextendsAbstractBaseTest{ @Configuration publicOption[]config(){ returncombine(super.config(),newOption[]{ editConfigurationFileExtend("etc/org.apache.karaf.features.cfg","featuresRepositories", ",mvn:com.cloudyle.paasplus:com.cloudyle.paasplus.karaf.deployment.services:xml:features"), newKarafDistributionConfigurationFileReplacementOption("etc/org.elasticsearch.connection.cfg", newFile("src/test/resources/etc/org.elasticsearch.connection.cfg")), features("mvn:com.cloudyle.paasplus/com.cloudyle.paasplus.karaf.deployment.services/LATEST/xml/features","paasplus-report-service"), vmOption("-Djava.net.preferIPv4Stack=true"),vmOption("-XX:MaxPermSize=256M")});} @Test publicvoiddoTest(){ …
  • 31. 31 CellarClustering Cluster solution for Apache Karaf Based on Hazelcast Support for different topologies Synchronization of deployments and configurations Cross-Node Event publishing Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf Node Node Node Node Node Node Cluster Manager
  • 32. 32 PaaS+withKarafsupport CloudylePaaS+allows easy creation of Karafapplications Try out PetClinichttp://devcenter.cloudyle.com/display/public/PAAS/Pet+Clinic+ Tutorial Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf
  • 33. 33 See youtomorrow: Build bundles in the cloud -How CloudylePaaS+helps creating OSGi applications in the cloud Wednesday, October29, 2014 14:30 to15:05 Seminarräume 1 -3 Eclipsecon Europe 2014 Develop OSGi Applications with Apache Karaf