Carsten Ziegeler
|
|
- Claud Patrick
- 5 years ago
- Views:
Transcription
1 Embrace OSGi Change A Developer's Quickstart Carsten Ziegeler cziegeler@apache.org
2 About Member of the ASF Sling, Felix, Cocoon, Portals, Sanselan, Excalibur, Incubator PMC: Felix, Portals, Cocoon, Incubator, Excalibur (Chair) RnD Team at Day Software Article/Book Author, Technical Reviewer JSR 286 Spec Group (Portlet API 2.0) 2
3 Agenda Motivation 2 And Action... 3 Why OSGi? 4 Apache Felix 5-7 Bundles, Services, Dynamics 8 Famous Final Words 3
4 Application Example Motivation 4
5 Motivation Modularity is key Manage growing complexity Support dynamic extensibility No solution in standard Java OSGi: tried and trusted Embrace change Embrace OSGi Only a few concepts easy to get started 5
6 Application 2 Example And Action... 6
7 Paint Program Swing-based paint program Interface SimpleShape for drawing Different implementations Each shape has name and icon properties Available shapes are displayed in tool bar Select shape and then select location Shapes can be dragged, but not resized Support dynamic deployment of shapes 7
8 Shape Abstraction Conceptual SimpleShape interface public interface SimpleShape { /** * Method to draw the shape of the service. g2 The graphics object used for * painting. p The position to paint the shape. **/ public void draw(graphics2d g2, Point p); } 8
9 Paint Program Mock Up 9
10 High-Level Architecture Shape Tracker Drawing Frame * Default Shape * Shape Component Simple Shape 0
11 High-Level Architecture Shape Tracker Best practice Try to centralize interaction with OSGi API *so that Drawing other componentsdefault Frame Shape remain POJOs...only Shape Tracker will interact with OSGi API. * Shape Component Simple Shape
12 High-Level Architecture Shape Tracker Drawing Frame * Default Shape * Main application window gets Shape dynamically injected Component with available shapes from the Shape Tracker. Simple Shape 2
13 High-Level Architecture Shape Tracker Drawing Frame * Default Shape * Shape Actual shape Component implementation. Simple Shape 3
14 High-Level Architecture Injected proxied shape to implementation hide Shape Drawing aspects of dynamism Tracker Frame and provide a default implementation. * Shape Actual shape Component implementation. * Default Shape Simple Shape 4
15 High-Level Architecture Shape Tracker Component that draws the shape in parent frame; looks shape via Drawing up Drawing Frame* rather thanframe having a direct reference. Default Shape * Shape Component Simple Shape 5
16 LIVE DEMO Example Application 6
17 3 Example Why Application OSGi? 7
18 Class Path Hell Can you spot some potential problems? 8
19 Class Path Hell What libs are used? Versions? Which jar is used? Version? No difference between private and public classes 9
20 Java's Shortcomings Simplistic version handling First class from class path JAR files assume backwards compatibility at best Implicit dependencies Dependencies are implicit in class path ordering JAR files add improvements for extensions, but cannot control visibility 20
21 Java's Shortcomings Split packages by default Class path approach searches until it finds, which leads to shadowing or version mixing Limited scoping mechanisms No module access modifier Impossible to declare all private stuff as private Missing module concept Classes are too fine grained, packages are too simplistic, class loaders are too low level No deployment/lifecycle support 2
22 Java Dynamism Limitations Low-level support for dynamics Class loaders are complicated to use and error prone Support for dynamics is still purely manual Must be completely managed by the programmer Leads to many ad hoc, incompatible solutions Limited deployment support 22
23 OSGi Technology Adds modularity and dynamics Module concept Explicit sharing (importing and exporting) Automatic management of code dependencies Enforces sophisticated consistency rules for class loading Life-cycle management Manages dynamic deployment and configuration Service Registry Publish/find/bind 23
24 Application 4 Example Apache Felix 24
25 OSGi Alliance Industry consortium OSGi Service Platform specification Framework specification for hosting dynamically downloadable services Standard service specifications Several expert groups define the specifications Core Platform Expert Group (CPEG) Mobile Expert Group (MEG) Vehicle Expert Group (VEG) Enterprise Expert Group (EEG) 25
26 Apache Felix Top-level project (March 2007) Healthy and diverse community OSGi R4 (R4.) implementation Framework (frequent releases) Services (continued development) Log, Package Admin, Event Admin, Configuration Admin, Declarative Services, Meta Type, Deployment Admin (and more) Moving towards upcoming R4.2 Tools Maven Plugins, Web Console, ipojo 26
27 Apache Felix Growing community Several code grants and contributions Various (Apache) projects use Felix / have expressed interest in Felix and/or OSGi e.g., ServiceMix, Directory, Sling, Tuscany Roadmap Continue toward R4 and R4. compliance some parts consider pre R4.2 already 27
28 5 Example OSGiApplication Part Bundles 28
29 OSGi Architectural Overview Fr a m ew or k Bundle OSGi Java Operating System Driver Driver Driver Hardware 29
30 OSGi Framework Layering SERVICE MODEL LIFECYCLE MODULE Execution Environment CDC CDC L3 Provides a publish/find/bind service model to decouple bundles L2 - Manages the life cycle of bundle in a bundle repository without requiring the VM be restarted L - Creates the concept of modules (aka. bundles) that use classes from each other in a controlled way according to system and bundle constraints L0 OSGi Minimum Execution Environment CDC/Foundation JavaSE 30
31 OSGi Framework Component-oriented framework Module concept: Bundles Separate class loader -> graph Package sharing and version management Life-cycle management and notification Dynamic! Install, update, and uninstall at runtime Runs multiple applications and services in a single VM 3
32 OSGi Modularity Explicit code boundaries and dependencies Package imports and exports Multi-version support Version ranges for dependencies Class space is managed by OSGi Managed life cycle Dynamic install, update, uninstall 32
33 OSGi Modularity - Example Dynamic module deployment and dependency resolution Provided package existing bundle OSGi framework 33
34 OSGi Modularity - Example Dynamic module deployment and dependency resolution existing bundle install bundle.jar OSGi framework 34
35 OSGi Modularity - Example Dynamic module deployment and dependency resolution existing bundle resolve bundle OSGi framework 35
36 OSGi Modularity - Example Dynamic module deployment and dependency resolution automatic package dependency resolution existing bundle OSGi framework 36
37 Creating a Bundle Plain old JAR with additional metadata in the manifest Bundle identifier, version, exports, imports Tools Text editor (Manifest) Eclipse (PDE) Bundle packaging tools BND from Peter Kriens Apache Felix maven-bundle-plugin based on BND 37
38 Maven is Your Friend Apache Felix Maven Bundle Plugin Creates metadata based on POM Automatically: import packages Manually: export and private packages Analyses classes for consistency Allows to include dependencies Creates final bundle JAR file 38
39 Maven Bundle Plugin Sample <artifactid>org.apache.sling.engine</artifactid> <packaging>bundle</packaging> <version>2.0.3-incubator-snapshot</version> <build> <plugins> <plugin> <groupid>org.apache.felix</groupid> <artifactid>maven-bundle-plugin</artifactid> <extensions>true</extensions> <configuration> <instructions> <Export-Package> org.apache.sling.engine;version=${pom.version} </Export-Package> <Private-Package> org.apache.sling.engine.impl </Private-Package> <Embed-Dependency> commons-fileupload </Embed-Dependency> </instructions> 39
40 Maven Bundle Plugin Sample <artifactid>org.apache.sling.engine</artifactid> <packaging>bundle</packaging> <version>2.0.3-incubator-snapshot</version> <build> <plugins> <plugin> <groupid>org.apache.felix</groupid> <artifactid>maven-bundle-plugin</artifactid> <extensions>true</extensions> <configuration> <instructions> <Export-Package> org.apache.sling.engine;version=${pom.version} </Export-Package> <Private-Package> org.apache.sling.engine.impl </Private-Package> <Embed-Dependency> commons-fileupload </Embed-Dependency> </instructions> 40
41 Maven Bundle Plugin Sample <artifactid>org.apache.sling.engine</artifactid> <packaging>bundle</packaging> <version>2.0.3-incubator-snapshot</version> <build> <plugins> <plugin> <groupid>org.apache.felix</groupid> <artifactid>maven-bundle-plugin</artifactid> <extensions>true</extensions> <configuration> <instructions> <Export-Package> org.apache.sling.engine;version=${pom.version} </Export-Package> <Private-Package> org.apache.sling.engine.impl </Private-Package> <Embed-Dependency> commons-fileupload </Embed-Dependency> </instructions> 4
42 Maven Bundle Plugin Sample <artifactid>org.apache.sling.engine</artifactid> <packaging>bundle</packaging> <version>2.0.3-incubator-snapshot</version> <build> <plugins> <plugin> <groupid>org.apache.felix</groupid> <artifactid>maven-bundle-plugin</artifactid> <extensions>true</extensions> <configuration> <instructions> <Export-Package> org.apache.sling.engine;version=${pom.version} </Export-Package> <Private-Package> org.apache.sling.engine.impl </Private-Package> <Embed-Dependency> commons-fileupload </Embed-Dependency> </instructions> 42
43 Be Modular! Create clean package spaces public vs private Provide Bundles Add manifest information Think about dependencies Additional bundle vs include Optional Version ranges Benefits even without OSGi 43
44 6 Example OSGiApplication Part 2 Services 44
45 OSGi Services (/3) Service-oriented architecture Publish/find/bind Possible to use modules without services Service Registry Find Publish Service Description Service Provider Interact Service Requester 45
46 OSGi Services (2/3) An OSGi application is... A collection of bundles that interact via service interfaces Bundles may be independently developed and deployed Bundles and their associated services may appear or disappear at any time Resulting application follows a ServiceOriented Component Model approach 46
47 OSGi Services (3/3) Dynamic service lookup Provided service Provided package existing bundle component OSGi framework 47
48 OSGi Services (3/3) Dynamic service lookup existing bundle component install bundle.jar OSGi framework 48
49 OSGi Services (3/3) Dynamic service lookup existing bundle component activate bundle OSGi framework 49
50 OSGi Services (3/3) Dynamic service lookup automatic package dependency resolution existing bundle component OSGi framework 50
51 OSGi Services (3/3) Dynamic service lookup manual service dependency resolution existing bundle component OSGi framework 5
52 OSGi Services Advantages Lightweight services Lookup is based on interface name Direct method invocation Good design practice Separates interface from implementation Enables reuse, substitutability, loose coupling, and late binding 52
53 OSGi Services Advantages Dynamic Loose coupling and late binding Application's configuration is simply the set of deployed bundles Deploy only the bundles that you need 53
54 OSGi Services Issues More sophisticated, but more complicated Requires a different way of thinking Things might appear/disappear at any moment Must manually resolve and track services There is help Service Tracker Still somewhat of a manual approach Declarative Services, Spring DM, ipojo Sophisticated service-oriented component frameworks Automated dependency injection and more More modern, POJO-oriented approaches 54
55 7 Example OSGiApplication Part 3 Dynamics 55
56 Everything is a Bundle How to structure bundles? API vs implementation bundle Fine-grained vs coarse-grained No One Size Fits All Simple Rules Stable code vs changing code Optional parts 56
57 Third Party Libraries Use as bundles Project delivers already a bundle Apache Commons, Apache Sling etc. Use special bundle repositories Felix Commons, Spring etc. But check included metadata! Create your own wrapper Easy with the Felix maven bundle plugin Include in your bundle Again: easy with the Felix maven bundle plugin 57
58 Everything is Dynamic Bundles can come and go! Packages Services Services can come and go! Be prepaired! Application code must handle dynamics! 58
59 Dynamic Services OSGi Declarative Services Specification XML Configuration Contained in bundle Manifest entry pointing to config(s) Publishing services Consuming services Policy (static,dynamic), cardinality (0..,.., 0..n) Default configuration Service Lifecycle management Various Implementations Apache Felix SCR 59
60 Dynamic Services Configuration <scr:component enabled="true" name="org.apache.sling.event.impl.distributingeventhandler"> <implementation class="org.apache.sling.event.impl.distributingeventhandler"/> <service servicefactory="false"> <provide interface="org.osgi.service.event.eventhandler"/> </service> <property name="repository.path" value="/var/eventing/distribution"/> <property name="cleanup.period" type="integer" value="5"/> <reference name="threadpool" interface="org.apache.sling.event.threadpool" cardinality=".." policy="static" bind="bindthreadpool" unbind="unbindthreadpool"/> 60
61 Dynamic Services Configuration <scr:component enabled="true" name="org.apache.sling.event.impl.distributingeventhandler"> <implementation class="org.apache.sling.event.impl.distributingeventhandler"/> <service servicefactory="false"> <provide interface="org.osgi.service.event.eventhandler"/> </service> <property name="repository.path" value="/var/eventing/distribution"/> <property name="cleanup.period" type="integer" value="5"/> <reference name="threadpool" interface="org.apache.sling.event.threadpool" cardinality=".." policy="static" bind="bindthreadpool" unbind="unbindthreadpool"/> 6
62 Dynamic Services Configuration <scr:component enabled="true" name="org.apache.sling.event.impl.distributingeventhandler"> <implementation class="org.apache.sling.event.impl.distributingeventhandler"/> <service servicefactory="false"> <provide interface="org.osgi.service.event.eventhandler"/> </service> <property name="repository.path" value="/var/eventing/distribution"/> <property name="cleanup.period" type="integer" value="5"/> <reference name="threadpool" interface="org.apache.sling.event.threadpool" cardinality=".." policy="static" bind="bindthreadpool" unbind="unbindthreadpool"/> 62
63 Dynamic Services Configuration <scr:component enabled="true" name="org.apache.sling.event.impl.distributingeventhandler"> <implementation class="org.apache.sling.event.impl.distributingeventhandler"/> <service servicefactory="false"> <provide interface="org.osgi.service.event.eventhandler"/> </service> <property name="repository.path" value="/var/eventing/distribution"/> <property name="cleanup.period" type="integer" value="5"/> <reference name="threadpool" interface="org.apache.sling.event.threadpool" cardinality=".." policy="static" bind="bindthreadpool" unbind="unbindthreadpool"/> 63
64 Declarative Services Reads XML configs on bundle start Registers services Keeps track of dependencies Starts/stops services Invokes optional activation and deactivation method Provides access to configuration Caution: A service is by default only started if someone else uses it! Immediate flag forces a service start 64
65 Example Service protected ThreadPool threadpool; protected void activate(componentcontext context) throws Exception final Dictionary<String, Object> props = context.getproperties(); this.cleanupperiod = (Integer)props.get("cleanup.period"); super.activate(context); } protected void bindthreadpool(threadpool p) { this.threadpool = p; } protected void unbindthreadpool(threadpool p) { if ( this.threadpool == p ) { this.threadpool = null; } } 65
66 Config Admin and Metatype OSGi Config Admin Configuration Manager Persistence storage API to retrieve/update/remove configs Works with Declarative Services OSGi Metatype Service Description of bundle metadata Description of service configurations Various Implementations Apache Felix 66
67 Maven SCR Plugin Combines everything (DS, ConfigAdmin, Metatype, Maven) Annotation-based (works for.4+) Annotate components Properties with default values Service providers Services references (policy and cardinality) Generates DS XML Generates Metatype config Generates Java code 67
68 SCR Plugin Sample /** name="repository.path" value="/var/eventing/distribution" private="true" interface="eventhandler" */ public class DistributingEventHandler implements EventHandler { protected static final int DEFAULT_CLEANUP_PERIOD = 5; valueref="default_cleanup_period" type="integer" */ protected static final String PROP_CLEANUP_PERIOD = "cleanup.period"; */ protected ThreadPool threadpool; protected void activate(componentcontext context) throws Exception { final Dictionary<String, Object> props = context.getproperties(); this.cleanupperiod = (Integer)props.get(PROP_CLEANUP_PERIOD); } 68
69 Alternatives Manually through bundle activator Apache Felix ipojo Spring Dynamic Modules 69
70 Handling extensibility Two basic implementation strategies Service-based approach Extender model 70
71 Service Whiteboard Pattern Clients register a service interface Service tracker for registered services Simple, more robust, leverages the OSGi service model Service whiteboard pattern It is an Inversion of Control pattern 7
72 Externder Model Bundles contain manifest entries Like available service classes Custom bundle tracker Keeps track of bundles Specifically, STARTED and STOPPED events Checks bundles manifest data Creates/removes services 72
73 Application 8 Example Famous Final Words 73
74 Conclusion Modulary and dynamics are required by todays applications OSGi technology addresses Java's limitations in these areas Available today and growing in importance Development is straightforward and provides immediate benefits Apache Felix is ready when you are! 74
75 Suggestions for Development Think about modularity! Clean package space Think about dynamics! Consider OSGi Check out the spec and other projects Minimize dependencies to OSGi but only if it makes sense 75
76 Suggestions for Using OSGi Think about dynamics Optional bundles Optional services Handle these cases Use your preferred logging library LogManager takes care Use available tooling Be part of the community! 76
77 Check It Out Read the OSGi spec Framework Config Admin, Metatype, Declarative Services Deployment Admin, OBR Download Apache Felix Try tutorials and samples Download Apache Sling :) Explore the web embrace OSGi 77
78 Embrace OSGi Change Questions?
Apache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007
Apache Felix A Standard Plugin Model for Apache Richard S. Hall Atlanta, Georgia U.S.A. November 13th, 2007 Agenda Why OSGi technology? OSGi technology overview Apache Felix status Example application
More informationManaging Installations and Provisioning of OSGi Applications. Carsten Ziegeler
Managing Installations and Provisioning of OSGi Applications Carsten Ziegeler cziegeler@apache.org About Member of the ASF Current PMC Chair of Apache Sling Apache Sling, Felix, ACE, Portals (Incubator,
More informationThe State of Apache Sling
The State of Apache Sling Carsten Ziegeler cziegeler@apache.org adaptto() 2012 Berlin 1 About Member of the ASF Current PMC Chair of Apache Sling Apache Sling, Felix, Portals, Incubator RnD Team at Adobe
More informationIntroduction to OSGi. Marcel Offermans. luminis
Introduction to OSGi Marcel Offermans luminis Introduction Marcel Offermans marcel.offermans@luminis.nl Luminis Arnhem Apeldoorn Enschede IT solutions from idea to implementation with and for customers:
More informationPatterns and Best Practices for dynamic OSGi Applications
Patterns and Best Practices for dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationPatterns and Best Practices for Dynamic OSGi Applications
Patterns and Best Practices for Dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationOSGi on the Server. Martin Lippert (it-agile GmbH)
OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)
More informationModular Java Applications with Spring, dm Server and OSGi
Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction
More informationTuscany: Applying OSGi modularity after the fact
Tuscany: Applying OSGi modularity after the fact Luciano Resende lresende@apache.org http://lresende.blogspot.com Raymond Feng rfeng@apache.org Agenda Introduction and Motivation Status of current Tools
More informationJava Modularity Support in OSGi R4. Richard S. Hall ApacheCon (San Diego) December 14 th, 2005
Java Modularity Support in OSGi R4 Richard S. Hall ApacheCon (San Diego) December 14 th, 2005 Modularity What is it? What is Modularity? (Desirable) property of a system, such that individual components
More informationOSGi. Tales from the Trenches. OSGitales from the trenches
OSGi Tales from the Trenches Bertrand Delacretaz Senior R&D Developer, Day Software, www.day.com Apache Software Foundation Member and Director bdelacretaz@apache.org blog: http://grep.codeconsult.ch twitter:
More informationOSGi in Action. Ada Diaconescu
OSGi in Action Karl Pauls Clement Escoffier karl.pauls@akquinet.de clement.escoffier@akquinet.de INF 346. Ada Diaconescu ada.diaconescu@telecom-paristech.fr 2 OSGi in Action - Clement Escoffier (clement.escoffier@akquinet.de)
More informationJCR in Action. Content-based Applications with Apache Jackrabbit. Carsten Ziegeler.
JCR in Action Content-based Applications with Apache Jackrabbit Carsten Ziegeler cziegeler@apache.org Apache Con US Presentation November 2009 - Oakland About Member of the ASF Sling, Felix, Cocoon, Portals,
More informationJSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity
JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity Richard S. Hall June 28 th, 2006 Agenda Modularity Modularity in Java Modularity in Java + OSGi technology Introduction to OSGi technology Apache
More informationUsing Apache Felix: OSGi best practices. Marcel Offermans luminis
Using Apache Felix: OSGi best practices Marcel Offermans luminis 1 About me Marcel Offermans Software architect at luminis Consultancy & product development Over 4 years of experience with OSGi Committer
More informationBreaking Apart the Monolith with Modularity and Microservices CON3127
Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice
More informationLiberate your components with OSGi services
Liberate your components with OSGi services One products journey through the Modularity Maturity Model Alasdair Nottingham (not@uk.ibm.com) WebSphere Application Server V8.5 Liberty Profile Development
More informationOSGi in Action. RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE CREATING MODULAR APPLICATIONS IN JAVA MANNING. Greenwich (74 w. long.
OSGi in Action CREATING MODULAR APPLICATIONS IN JAVA RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE 11 MANNING Greenwich (74 w. long.) contents foreword xiv preface xvii acknowledgments xix about
More informationEquinox OSGi: Pervasive Componentization
Equinox OSGi: Pervasive Componentization Thomas Watson Equinox Development Lead IBM Lotus Jeff McAffer, Eclipse RCP and Equinox Lead IBM Rational Software 10/3/2006 Why is Eclipse interesting? Extensible
More informationOSGi. Building and Managing Pluggable Applications
OSGi Building and Managing Pluggable Applications What A Mess Billing Service Orders Shipping Accounting Workflow Inventory Application From The View Of... Building monolithic applications is evil nuf
More information1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008
01234567890123456789012345678901234567890123456789012345678901234567890123456789 1. Introduction 1.1. Project/Component Working Name: Modularization of GlassFish using OSGi 1.2. Name(s) and e-mail address
More informationLab 1 Introduction ipojo Component Model
Lab 1 Introduction ipojo Component Model Thomas Leveque A Page 1, January 27, 2011 Service Oriented Computation New computing paradigm Service as fundamental element Reduce dependencies among «software
More informationJava Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3
Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Jerome Dochez Mahesh Kannan Sun Microsystems, Inc. Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service
More informationAgenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.
OSGi Overview freeman.fang@gmail.com ffang@apache.org Apache Servicemix Commiter/PMC member Apache Cxf Commiter/PMC member Apache Karaf Commiter/PMC member Apache Felix Commiter Agenda Why OSGi What is
More informationChristopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011
All About Virgo Christopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011 OSGi Alliance Marketing 2008-2010 Page. 1 All Rights
More informationStandards and the Portals Project
Standards and the Portals Project Carsten Ziegeler cziegeler@apache.org Competence Center Open Source S&N AG, Germany Member of the Apache Software Foundation Committer in some Apache Projects Cocoon,
More informationSoftware Components and Distributed Systems
Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic Design
More informationDemystifying OSGi bundles Excerpted from
Demystifying OSGi bundles Excerpted from Spring Dynamic Modules in Action EARLY ACCESS EDITION Arnaud Cogoluegnes, Thierry Templier, and Andy Piper MEAP Release: June 2009 Softbound print: Summer 2010
More informationDependencies, dependencies, dependencies
Dependencies, dependencies, dependencies Marcel Offermans!"#$%&'&()"* 1 Marcel Offermans Fellow and Software Architect at Luminis Technologies marcel.offermans@luminis.nl Member and Committer at Apache
More informationThe Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*
The Definitive Guide to NetBeans Platform 7 Heiko Bock Apress* Contents About the Author About the Translator About the Technical Reviewers Acknowledgments Introduction xiv xiv xv xvi xvii * Part 1: Basics
More informationModularity for Java and How OSGi Can Help
Modularity for Java and How OSGi Can Help Richard Hall To cite this version: Richard Hall. Modularity for Java and How OSGi Can Help. présentation invitée à DECOR04. 2004. HAL Id: hal-00003299
More informationJigsaw and OSGi: What the Heck Happens Now?
Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi
More informationESB, OSGi, and the Cloud
ESB, OSGi, and the Cloud Making it Rain with ServiceMix 4 Jeff Genender CTO Savoir Technologies Jeff Genender - Who is this Shmoe? Apache CXF JSR 316 - Java EE 6 Rules of Engagement Engage yourself! Agenda
More informationGlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE
YOUR LOGO HERE GlassFish V3 Jerome Dochez Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net Session ID 1 Goal of Your Talk What Your Audience Will Gain Learn how the GlassFish V3 groundbreaking
More informationSpring Dynamic Modules
June 10-11, 2008 Berlin, Germany Spring Dynamic Modules by Example Martin Lippert Gerd Wütherich Agenda Spring Overview of the Spring framework A short example Spring Dynamic Modules Overview of Spring
More informationContent. Development Tools 2(57)
Development Tools Content Project management and build, Maven Unit testing, Arquillian Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools
More informationCreate your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon
Create your own Carbon Component Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon sameera@wso2.com WSO2 Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards
More informationRed Hat JBoss Fuse 6.1
Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications for OSGi containers Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications
More informationEurope on a Disk Geodata Processing with Eclipse and OSGi. Harald Wellmann 10 Nov 2008
Europe on a Disk Geodata Processing with Eclipse and OSGi Harald Wellmann 10 Nov 2008 Overview Past and Present of Navigation Data Processing Anaconda: The Future Our usage of OSGi and Eclipse 2008 Harman
More informationSAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803
SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803 Table of Contents MACHINE LEARNING AND PREDICTIVE ANALYTICS... 3 Model Trained with R and Exported as PMML...
More informationRed Hat Fuse 7.0 Deploying into Apache Karaf
Red Hat Fuse 7.0 Deploying into Apache Karaf Deploying application packages into the Apache Karaf container Last Updated: 2018-08-27 Red Hat Fuse 7.0 Deploying into Apache Karaf Deploying application
More informationThe Actual Real World at EclipseCon/ALM
Tycho The Actual Real World at EclipseCon/ALM Raise your Hand if you are Sure Addressing the Issues Real World: Tycho Issues World Wide Distributed Teams India, China, Europe, Argentina, United States
More informationTattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap
Tattletale What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Problems You are faced with a lot of Java archives and you don't know how they relate You need
More informationMicroservices with Apache Karaf and Apache CXF: practical experience. Andrei Shakirin, Talend
Microservices with Apache Karaf and Apache CXF: practical experience Andrei Shakirin, Talend Agenda Microservices and OSGi Core ideas of OSGi Apache Karaf Design and develop in OSGi: the history of one
More informationComponent Oriented Development in OSGi with Declarative Services, Spring Dynamic Modules and Apache ipojo
Component Oriented Development in OSGi with Declarative Services, Spring Dynamic Modules and Apache ipojo Neil Bartlett 1 Heiko Seeberger 2 1 Weigle Wilczek UK 2 Weigle Wilczek GmbH March 24, 2009 c 2009
More informationSpring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich
Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available
More informationAdobe Experience Manager
Adobe Experience Manager Extend and Customize Adobe Experience Manager v6.x Student Guide: Volume 1 Contents CHAPTER ONE: BASICS OF THE ARCHITECTURAL STACK... 10 What is Adobe Experience Manager?... 10
More informationOSGi. Building LinkedIn's Next Generation Architecture with OSGI
OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Background
More informationBuilding LinkedIn's Next Generation Architecture with OSGI
OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Yan
More informationClass Dependency Analyzer CDA Developer Guide
CDA Developer Guide Version 1.4 Copyright 2007-2017 MDCS Manfred Duchrow Consulting & Software Author: Manfred Duchrow Table of Contents: 1 Introduction 3 2 Extension Mechanism 3 1.1. Prerequisites 3 1.2.
More informationIBM WebSphere Application Server 8. Java EE 6 Feature Packs
IBM WebSphere Application Server 8 EE 6 Feature Packs Thomas Bussière- bussiere@fr.ibm.com IT Architect Business Solution Center La Gaude, France Enabling Developers to Start With Open Source/Community
More informationPeter Kriens OSGi Evangelist/Director. OSGi R4.3 // Next Release Overview
Peter Kriens OSGi Evangelist/Director OSGi R4.3 // Next Release Overview Agenda Framework & ServiceTracker update to Java 5 generics A replacement for Package Admin and Start Level A Shell standard Managing
More informationPerceptive Connect Runtime
Perceptive Connect Runtime Developer's Guide Version: 1.4.x Written by: Product Knowledge, R&D Date: August 2016 2016 Lexmark. All rights reserved. Lexmark is a trademark of Lexmark International, Inc.,
More informationEquinox Project Update
Equinox Project Update Jeff McAffer, Senior Technical Staff Member Eclipse RCP and Equinox Lead 2007 by IBM Corp; made available under the Creative Commons Att. Nc Nd 2.5 license October 2007 What is Equinox?
More informationBeware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2
JUnit Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain Dependencies Debugging Surefire OSGi p2 Mac OS X Update Site Tycho Redistribution and other use of this material requires
More informationMAVEN INTERVIEW QUESTIONS
MAVEN INTERVIEW QUESTIONS http://www.tutorialspoint.com/maven/maven_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Maven Interview Questions have been designed specially to get
More informationHow-to use ipojo factories
How-to use ipojo factories Overview»» Home Why choose ipojo Success stories Features Download Documentation»» Getting Started»» ipojo in 10 minutes Using Annotations Maven tutorial Advanced tutorial Using
More informationTestingofScout Application. Ludwigsburg,
TestingofScout Application Ludwigsburg, 27.10.2014 The Tools approach The Testing Theory approach Unit testing White box testing Black box testing Integration testing Functional testing System testing
More informationUnder the Paul Fremantle, CTO, WSO2
Under the Hood @WSO2 Paul Fremantle, CTO, WSO2 Paul Fremantle CTO and Co-Founder 10 years at IBM STSM in WebSphere Development Infoworld CTO 25 in 2008 VP, Apache Synapse Co-Chair, OASIS WSRX TC Why look
More informationPortlet Standard JSR 168 / JSR 286
Portlet Standard JSR 168 / JSR 286 Version 1.0 Martin Weiss Martin Weiss Informatik AG Agenda JSR 168 2 JSR 168 What Is Missing? 22 JSR 286 25 Portlet Events 28 Public Render Parameters 32 Events vs. Public
More informationwcm.io Context-Aware Configuration
wcm.io Context-Aware Configuration PVTRAIN-167 Technical Training wcm.io Last Updated: November 2017 2017 pro!vision GmbH http://training.wcm.io/caconfig/ What is Context-Aware Configuration Short overview
More informationOSGi & Spring combined
OSGi & Spring combined Using Spring together with Eclipse Equinox Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de Gerd Wütherich gerd@wuetherich.de http://www.wuetherich.de Martin Lippert lippert@acm.org
More informationI Got My Mojo Workin'
I Got My Mojo Workin' Gary Murphy Hilbert Computing, Inc. http://www.hilbertinc.com/ glm@hilbertinc.com Gary Murphy I Got My Mojo Workin' Slide 1 Agenda Quick overview on using Maven 2 Key features and
More informationComponent based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth
Component based Development Web Application Development Zsolt Tóth University of Miskolc 2017 Zsolt Tóth (University of Miskolc) Component based Development 2017 1 / 30 Table of Contents 1 2 3 4 Zsolt
More informationScripting Languages in OSGi. Thursday, November 8, 12
Scripting Languages in OSGi Frank Lyaruu CTO Dexels Project lead Navajo Framework Amsterdam www.dexels.com Twitter: @lyaruu Navajo Framework TSL XML based script language Compiled to Java Recently ported
More informationTutorial ipojo. 2. Preparation
Tutorial ipojo 1. Context This tutorial is based on a pretty simple application. This application simulates a snack bar where products (hotdog, popcorn) are provided by vendors exposed as services. This
More informationOSGi Best Practices. Emily
OSGi Best Practices Emily Jiang @IBM Use OSGi in the correct way... AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 3 Modularization in Java > Jars have no modularization characteristics No
More informationPowered by. These slides are powered by Open Source softwares : Debian GNU Linux Beamer LaTeX mode LaTeX Emacs. Context. Last night OSGi saved my life
Powered by Context These slides are powered by Open Source softwares : Debian GNU Linux Beamer LaTeX mode LaTeX Emacs Course menu... Context 1 Context 2 3 4 5 Summary I Context the application Original
More informationTuesday, April 26, 2011
Modular Class Loading With JBoss Modules David M. Lloyd Senior Software Engineer, Red Hat, Inc. The Class Path is Dead - Mark Reinhold, 2009 What does this mean? The limitations inherent in -classpath
More informationOSGi Subsystems from theory to practice Glyn Normington. Eclipse Virgo Project Lead SpringSource/VMware
from theory to practice Glyn Normington Eclipse Virgo Project Lead SpringSource/VMware 1 Software rots 2 modularity helps 3 but... 4 A clean design 5 without enforcement 6 works fine for a while 7 then
More informationBuilding Secure OSGi Applications. Karl Pauls Marcel Offermans. luminis
Building Secure OSGi Applications Karl Pauls Marcel Offermans luminis Who are we? image 2008 Google Earth luminis Who are we? Karl Pauls Marcel Offermans image 2008 Google Earth luminis Who are we? Arnhem
More informationIndex. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39
Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic
More informationFast Track to Spring 3 and Spring MVC / Web Flow
Duration: 5 days Fast Track to Spring 3 and Spring MVC / Web Flow Description Spring is a lightweight Java framework for building enterprise applications. Its Core module allows you to manage the lifecycle
More informationEnterprise Development
Enterprise Development with What needs to be done to run JEE like applications inside Karaf? @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-author
More informationTapestry. Code less, deliver more. Rayland Jeans
Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to
More informationJava 9 Module System. Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK
Java 9 Module System Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK Problem of Complexity and Programming Language 2 von 41 Early/Modern
More informationSOA-14: Continuous Integration in SOA Projects Andreas Gies
Tooling for Service Mix 4 Principal Architect http://www.fusesource.com http://open-source-adventures.blogspot.com About the Author Principal Architect PROGRESS - Open Source Center of Competence Degree
More informationChapter 9. Inter-Bundle Communication
Chapter 9. Inter-Bundle Communication with the NMR While the OSGi framework provides a model of synchronous communication between bundles (through method invocations on OSGi services), it currently does
More informationServices Oriented Architecture and the Enterprise Services Bus
IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com
More informationRed Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes
Red Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes Keith Babo SwitchYard Project Lead, Red Hat There is Still Time To Leave We will be talking integration and SOA If your
More informationOracle Corporation
1 2012 Oracle Corporation Oracle WebLogic Server 12c: Developing Modern, Lightweight Java EE 6 Applications Will Lyons, Director of WebLogic Server Product Management Pieter Humphrey, Principal Product
More informationThe Cocoon Portal. A portal solution and framework. Carsten Ziegeler Competence Center Open Source S&N AG, Germany
The Cocoon Portal A portal solution and framework Carsten Ziegeler cziegeler@apache.org Competence Center Open Source S&N AG, Germany About Member of the Apache Software Foundation Committer in some Apache
More informationSPRING MOCK TEST SPRING MOCK TEST I
http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at
More informationLearning Karaf Cellar
Learning Karaf Cellar Jean-Baptiste Onofré Chapter No. 1 "Apache Karaf Provisioning and Clusters" In this package, you will find: The author s biography A preview chapter from the book, Chapter no.1 "Apache
More informationLiferay Digital Experience Platform. New Features Summary
Liferay Digital Experience Platform New Features Summary Liferay has redesigned its platform with new functionality in Liferay Digital Experience Platform (DXP). The following is a summary of the key new
More informationLiferay Architecture
Liferay Architecture Understanding the inside of Liferay Jorge Ferrer Vice President Engineering Table of Contents Architecture Overview Services Transactions Indexing Workflow Cache Frameworks Secret
More informationSimplified Build Management with Maven
Simplified Build Management with Maven Trasys Greece Kostis Kapelonis 11/06/2010 Menu Kitchen says hi!(motivation) Starters (Maven sample pom) Soup (Maven philosophy) Main dish (Library management) Side
More informationGAVIN KING RED HAT CEYLON SWARM
GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual
More informationRed Hat JBoss Fuse 6.0
Red Hat JBoss Fuse 6.0 Tutorials Example integration applications Last Updated: 2017-10-13 Red Hat JBoss Fuse 6.0 Tutorials Example integration applications JBoss A-MQ Docs Team Content Services fuse-docs-support@redhat.com
More informationSonatype CLM Enforcement Points - Nexus. Sonatype CLM Enforcement Points - Nexus
Sonatype CLM Enforcement Points - Nexus i Sonatype CLM Enforcement Points - Nexus Sonatype CLM Enforcement Points - Nexus ii Contents 1 Introduction 1 2 Sonatype CLM for Repository Managers 2 3 Nexus Pro
More informationSemantic Versioning A Large Existing Codebase
Case Study Semantic Versioning A Large Existing Codebase EclipseCon 2014 Raymond Augé @rotty3000 #eclipsecon #semver Outline The Goal The Problem
More informationEJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java
EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationDeveloping Java Applications with OSGi Capital District Java Developers Network. Michael P. Redlich March 20, 2008
Developing Java Applications with OSGi Capital District Java Developers Network Michael P. Redlich March 20, My Background (1) Degree B.S. in Computer Science Rutgers University (go Scarlet Knights!) Petrochemical
More informationAdding a Module System to Java
Adding a Module System to Java Rok Strniša Computer Laboratory, University of Cambridge Email: Rok.Strnisa@cl.cam.ac.uk URL: http://www.cl.cam.ac.uk/~rs456/ May 8, 2008 @ The British Computer Society Joint
More informationThe scr goal of the maven-scr-plugin looks for the following JavaDoc tags when building component descriptors:
SCR JavaDoc Tags The scr goal of the maven-scr-plugin looks for the following JavaDoc tags when building component descriptors: scr.component scr.property scr.service scr.reference scr.component The scr.component
More informationJBI based ESB as backbone for SOI applications. Michael Wisler Zühlke Engineering AG Submission ID: 687
JBI based ESB as backbone for SOI applications Michael Wisler Zühlke Engineering AG Submission ID: 687 Goal of this talk 2 This session brings the JBI (Java Business Integration) standard in contex t to
More informationJava Language Modularity With Superpackages
Java Language Modularity With Superpackages Alex Buckley JSR 294 Co-spec lead Sun Microsystems Andreas Sterbenz JSR 294 Co-spec lead Sun Microsystems TS-2401 2007 JavaOne SM Conference Session 2401 Goal
More informationSetting up a Maven Project
Setting up a Maven Project This documentation describes how to set up a Maven project for CaptainCasa. Please use a CaptainCasa version higher than 20180102. There were quite some nice changes which were
More informationTopics covered. Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session. Maven 2
Maven Maven 1 Topics covered Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session Maven 2 Introduction to Maven Maven 3 What is Maven? A Java project management
More information