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

JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJoe Kutner
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleKnoldus Inc.
 
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Edureka!
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsKnoldus Inc.
 
Angular 8
Angular 8 Angular 8
Angular 8 Sunil OS
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull RequestKasper Nissen
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker, Inc.
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesClaus Ibsen
 
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...Edureka!
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewJames Falkner
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교JungWoon Lee
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introductionJason Vance
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation ToolIzzet Mustafaiev
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and ImplementationVarun Talwar
 
Building your First gRPC Service
Building your First gRPC ServiceBuilding your First gRPC Service
Building your First gRPC ServiceJessie Barnett
 

What's hot (20)

JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor App
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Angular 8
Angular 8 Angular 8
Angular 8
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Azure Pipelines
Azure PipelinesAzure Pipelines
Azure Pipelines
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation Tool
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
 
Building your First gRPC Service
Building your First gRPC ServiceBuilding your First gRPC Service
Building your First gRPC Service
 

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
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache CamelClaus Ibsen
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGiCarsten Ziegeler
 

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
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
Introducing Akka
Introducing AkkaIntroducing Akka
Introducing Akka
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGi
 

Similar to Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik

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 Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik (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

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik

  • 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