OSGi Best Practices. Emily

Size: px
Start display at page:

Download "OSGi Best Practices. Emily"

Transcription

1 OSGi Best Practices Emily

2 Use OSGi in the correct way...

3 AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 3

4 Modularization in Java > Jars have no modularization characteristics No jar scoped access modifiers. No means for a jar to declare its dependencies. No versioning. Package Jar Package Package emijiang@uk.ibm.com

5 5 Problems with Global Java Path Java VM log4j barcode4j axis batik commons derby fop ezmorph freemarker httpunit jakarta jcl json jdbm jdom jenks jpos18 jython looks lucene mail mx4j naming jetty poi resolver rome serializer servlets tomcat velocity ws-commons xalan wsdl4j xerces xmlgraphics xmlrpc xmlapis.. geronimo bsh bsf guiapp hhfacility manufact. marketing minerva accounting assetmaint base bi catalina common oagis order ebay content datafile ecommerce entity googlebase ofbiz widget minilang party pos. product workeffort workflow sunjce_prov. plugin jsse jce rt dnsns.. Not Found Exception Begin Begin Here Here

6 Problems with EARs/WARs Enterprise Applications have isolated classpaths but > No Sharing Common libraries/frameworks in apps and memory > Version conflicts weba.war weba.war WEB-INF/classes/servletA.class WEB-INF/classes/servletA.class WEB-INF/lib/spring.jar WEB-INF/lib/spring.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/junit.jar WEB-INF/lib/junit.jar webb.war webb.war WEB-INF/classes/servletB.class WEB-INF/classes/servletB.class WEB-INF/lib/spring.jar WEB-INF/lib/spring.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/junit.jar WEB-INF/lib/junit.jar webc.war webc.war WEB-INF/classes/servletC.class WEB-INF/classes/servletC.class WEB-INF/lib/spring.jar WEB-INF/lib/spring.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/junit.jar WEB-INF/lib/junit.jar plankton.v1 plankton.v2

7 AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 7

8 What is OSGi? The dynamic module system for Java > Mature 10-year old technology > Governed by OSGi Alliance: > Used inside just about all Java-based middleware IBM WebSphere, Oracle WebLogic, Red Hat JBoss, Sun GlassFish, Paremus Service Fabric, Eclipse Platform, Apache Geronimo, (non-exhaustive list) Jar Package Package Explicit exports Jar Package Package Explicit dependencies 8

9 OSGi Bundles and Loading OSGi Bundle A jar containing: es and resources. OSGi Bundle manifest. What s in the manifest: Bundle-Version: Multiple versions of bundles can live concurrently. Import-Package: What packages from other bundles does this bundle depend upon? Export-Package: What packages from this bundle are visible and reusable outside of the bundle? Loading Bundle Each bundle has its own loader. No flat or monolithic classpath. sharing and visibility decided by declarative dependencies, not by class loader hierarchies. OSGi framework works out the dependencies including versions. Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: MyService bundle Bundle-SymbolicName: com.sample.myservice Bundle-Version: Bundle-Activator: com.sample.myservice.activator Import-Package: com.something.i.need;version="1.1.2" Export-Package: com.myservice.api;version="1.0.0" emijiang@uk.ibm.com 9

10 OSGi Bundle Bundles have a dynamic lifecycle Bundle Can come and go independently 10

11 OSGi Service Registry Service An object associated with a list of classes (usually interfaces) it provides Dynamic (can come and go), framed by bundle lifecycle Services are the primary means of collaboration between bundles. S

12 AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 12

13 BP1 - Use Import-Package not Require-Bundle Require-Bundle Tightly coupled with a particular bundle with the specified symbolic name and version MANIFEST.MF High coupling between bundles MANIFEST.MF Import all packages Bundle version management Require-Bundle: com.ibm.ws.service;bundle-version=2.0.0 Require-Bundle: com.ibm.ws.service;bundle-version=2.0.0 Import-Package Can wire to any bundles exporting the specified package Loose coupling between bundles Only import the package you need Package version management MANIFEST.MF MANIFEST.MF Import-Package: com.ibm.ws.service.api;version=2.0.0 Import-Package: com.ibm.ws.service.api;version= emijiang@uk.ibm.com 13

14 BP2 - Avoid split packages Split package A package is exported by two bundles at the same version and the set of classes provided by each bundle differs. Why? Leads to the use of Require-Bundle, compromising the extent to which systems using the bundles can be extended and maintained. How? Keep all of the classes from any one package in a single bundle emijiang@uk.ibm.com 14

15 BP2 - Split Package examples API A org.hal.api Implementation C org.hal.a API B org.hal.api Bundle C has to use 'Require-Bundle' to ensure that it has classes from both parts of the API Figure 1. Consumers of split packages need to use the Require-Bundle header emijiang@uk.ibm.com 15

16 BP2 - Split Package examples API A org.hal.api Implementation C org.hal.a Figure 2. A complete package exported from a single bundle maintains high bundle cohesion emijiang@uk.ibm.com 16

17 BP3 - Version bundles and packages What is semantic versioning? Uses a major.minor.micro.qualifier numbering scheme Major - Packages with versions that have different major parts are not compatible both for providers as well as consumers. Minor API enhancement, e.g. adding methods to an API Micro bug fixing Qualifier identifier such as timestamp Example: am, 1.0.0, 2.0 Changes in major: a binary incompatible, minor: enhanced API, micro: no API changes Why? Clients can protect themselves against API changes that might break them emijiang@uk.ibm.com 17

18 BP3 - Version bundles and packages examples API A Implementation A Imports: org.hal.a [1.0, 1.1) org.hal.a API B org.hal.a Client A Imports: org.hal.a [1.0, 2.0) Figure 3: A client and an implementation can use either of two equivalently versioned packages Implementation A Imports: org.hal.a [1.0, 1.1) API A org.hal.a Client A Imports: org.hal.a [1.0, 2.0) Implementation B Imports: org.hal.a [1.1, 1.2) API B org.hal.a Client B Imports: org.hal.a [1.1, 2.0) Figure 4: How a client and implementation are affected differently by a minor API version change emijiang@uk.ibm.com 18

19 BP3 - Version bundles and packages examples Implementation A Imports: org.hal.a [1.0, 1.1) org.hal.a API A Client A Imports: org.hal.a [1.0, 2.0) Implementation B Imports: org.hal.a [2.0, 2.1) API B org.hal.a Client B Imports: org.hal.a [2.0, 3.0) Figure 5. How clients and implementations are similarly affected by a major API version change emijiang@uk.ibm.com 19

20 BP4 - Separate API from Implementations Why? Great flexibility Many implementation bundles enable more services provided Reduce package dependencies reduce circular dependencies How? Put API classes in one bundle Put implementation classes in a separate bundle emijiang@uk.ibm.com 20

21 BP4 - Separate API and implementation examples API + Implementation org.hal.myapi org.hal.a.impl Client org.hal.b.client Both API and implementation packages imported by client Figure 6. Badly designed provider bundle where the API and implementation classes are in the same bundle emijiang@uk.ibm.com 21

22 BP5 - Share services not implementations Use the OSGi service registry to construct instances Why? Able to obtain an instance of an implementation without knowing which one Achieve a loosely coupling of client, API and implementation How? Register an instance of the API interface in the OSGi service registry Register an implementation of the OSGi ServiceFactory interface in the OSGi service registry emijiang@uk.ibm.com 22

23 BP4 & 5 - examples API Client org.hal.myapi org.hal.b.client Implementation org.hal.a.impl API and implementation packages in different bundles but still imported by client Figure 7. Badly designed provider bundles where the API and implementation classes have been separated emijiang@uk.ibm.com 23

24 BP4 & 5 - examples API Client org.hal.myapi org.hal.b.client Implementation org.hal.a.impl Client and implementation in separate bundles, both import API. Client uses implementation through a service defined by the API. Figure 8: Well designed provider bundles where the API and implementation classes have been separated emijiang@uk.ibm.com 24

25 Using services can be hard! private BundleContext ctx; private AtomicReference<LogService> ls = new AtomicReference<LogService>(); private AtomicReference<ServiceReference> lr = new AtomicReference<ServiceReference>(); public void start(bundlecontext ctx) throws InvalidSyntaxException { this.ctx = ctx; ctx.addservicelistener(this, "(object=org.osgi.service.log.logservice)"); ServiceReference ref = ctx.getservicereference(logservice.class.getname()); if (ref!= null) { ls.set((logservice) ctx.getservice(ref)); lr.set(ref); } public void servicechanged(serviceevent event) { ServiceReference ref = event.getservicereference(); if (ls.get() == null && event.gettype() == ServiceEvent.REGISTERED) { ls.set((logservice) ctx.getservice(ref)); } else if (ls.get()!= null && event.gettype() == ServiceEvent.UNREGISTERING && ref == lr.get()) { ref = ctx.getservicereference(logservice.class.getname()); if (ref!= null) { ls.set((logservice) ctx.getservice(ref)); lr.set(ref); } } } emijiang@uk.ibm.com 25

26 publishes service BP6 - Use Blueprint dependencies injected consumes service A static assembly and configuration of components (POJOs) OSGI-INF/blueprint/ blueprint.xml Blueprint bundle Specifies a Dependency Injection container, standardizing established Spring conventions Configuration and dependencies declared in XML module blueprint, which is a standardization of Spring application context XML. Extended for OSGi: publishes and consumes components as OSGi services Simplifies unit test outside either Java EE or OSGi r/t. The Blueprint DI container can be a part of the server runtime (compared to the Spring container which is part of the application.) emijiang@uk.ibm.com 26

27 BP6 - Blueprint service-bundle examples Billing service bundle <blueprint> <service ref= service interface = org.example.bill.billingservice /> <bean id= service scope= prototype class= org.example.bill.impl.billingserviceimpl /> </blueprint> Billing public interface BillingService { void bill(order o); } - prototype scope indicates a new instance is created by the container for each use. - singleton scope is the default emijiang@uk.ibm.com 27

28 e-commerce bundle BP6- Blueprint client-bundle examples <blueprint> <bean id= shop class= org.example.ecomm.shopimpl > <property name= billingservice ref= billingservice /> </bean> <reference id= billingservice interface= org.example.bill.billingservice /> </blueprint> e-commerce public class ShopImpl { private BillingService billingservice; void setbillingservice(billingservice srv) { billingservice = srv; } -injected service reference -service can change over time -can be temporarily absent without the bundle caring -managed by Blueprint container void process(order o) { billingservice.bill(o); } } emijiang@uk.ibm.com 28

29 BP7 Make Bundles Loosely Coupled & Highly Cohesive API org.hal.log.api FileSystemAPI Implementation org.hal.log.impl org.hal.log.impl org.hal.fslog.impl SomeotherAPI TransactionsAPI DBAPI JPAAPI 'Hairball' effect one bundle has many package dependencies Figure 9. Poorly purposed system where a single bundle provides multiple implementations of the same API emijiang@uk.ibm.com 29

30 BP7 Make Bundles Loosely Coupled & Highly Cohesive FileSystemAPI API org.hal.log.api Implementation org.hal.fslog.impl DBAPI DBAPI DBAPI Implementation Implementation Implementation org.hal.dblog.impl org.hal.dblog.impl org.hal.dblog.impl Figure 10. A well purposed system where each implementation of an API is provided by a separate bundle emijiang@uk.ibm.com 30

31 Summary OSGi Best Practices > BP1 - Use Import-Package instead of Require-Bundle > BP2 - Avoid split packages > BP3 - Version bundles and packages > BP4 - Separate API from implementations > BP5 - Share services not implementations > BP6 - Use Blueprint > BP7 - Make bundles loosely coupled & highly cohesive emijiang@uk.ibm.com 31

32 Quiz What best practices are used? blog-api Web application bundle WEB-INF/ web.xml blog-servlet JNDI Blogging Service OSGI-INF/blueprint/ blueprint.xml blog Blog Persistence Service EM META-INF/ persistence.xml OSGI-INF/blueprint/ blueprint.xml blog-persistence 32

33 Questions?

34 Additional References OSGi Best Practices Enterprise OSGi YouTube Channel: Contact: 34

35 Copyright and Trademarks IBM Corporation All Rights Reserved. IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at Copyright and trademark information at 35

Using OSGi in Modular WebSphere Applications

Using OSGi in Modular WebSphere Applications Using OSGi in Modular WebSphere Applications Hannah Ramlee, IBM Software Engineer 2010 IBM Corporation 2 Cutting to the chase What: The WAS V7 Feature Pack for OSGi Applications and JPA 2.0 Why: Common

More information

OSGi & Java Modularity

OSGi & Java Modularity OSGi & Java Modularity Jazoon 2009, Zürich by Peter Kriens Productivity Application Complexity Productivity Assembly Application Complexity Productivity Structured Programming Assembly Application Complexity

More information

Is OSGi Ready for the Enterprise?

Is OSGi Ready for the Enterprise? Is OSGi Ready for the Enterprise? Ian Robinson IBM Distinguished Engineer The Questions Why should we care? Does Enterprise Java need OSGi? Does OSGi need Enterprise Java? March12, 2010 QCon London 2010

More information

Converting (Large) Applications to OSGi

Converting (Large) Applications to OSGi Converting (Large) Applications to OSGi BJ Hargrave, Senior Technical Staff Member at IBM Peter Kriens, Technical Director, OSGi TS-5122 Learn How to Simplify Application Development by Building for the

More information

WebSphere Application Server V7 OSGi, JPA, and Modern Batch Feature Packs

WebSphere Application Server V7 OSGi, JPA, and Modern Batch Feature Packs WebSphere Application Server V7 OSGi, JPA, and Modern Batch Feature Packs David Follis and Don Bagwell IBM Corporation Wednesday, August 4, 2010 Trademarks The following are trademarks of the International

More information

IBM. Java Yet another Language. on the mainframe. Tobias Leicher, Technical Specialist for CICS IBM Corporation

IBM. Java Yet another Language. on the mainframe. Tobias Leicher, Technical Specialist for CICS IBM Corporation Tobias Leicher, Technical Specialist for CICS on the mainframe Big Picture: Where to go with the CICS Development Today (sample scenario) Modernisation Possible Target Szenario Efficient programming model

More information

The CICS JVMServer and The WebSphere Operational Decision Manager Rules Execution Engine (ILOG)

The CICS JVMServer and The WebSphere Operational Decision Manager Rules Execution Engine (ILOG) The CICS JVMServer and The WebSphere Operational Decision Manager Rules Execution Engine (ILOG) Ian J Mitchell, IBM Distinguished Engineer Thursday 15 th March 2012 Session: 10298 Disclaimer IBM's statements

More information

WebSphere Application Server Support for OSGi Applications

WebSphere Application Server Support for OSGi Applications 23/03/2011 WebSphere Application Server Support for OSGi Applications 2009 IBM Corporation Agenda Standards and Open Source WAS v7 OSGi Feature Pack WAS v8 Beta OSGi Applications Support WAS v8 Beta Demo

More information

OSGi in WebSphere : The Story so far

OSGi in WebSphere : The Story so far OSGi in WebSphere : The Story so far, IBM Hursley chris.wilkinson@uk.ibm.com Disclaimer IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at

More information

WebSphere Application Server V8 New Features and a primer on WAS V8.5

WebSphere Application Server V8 New Features and a primer on WAS V8.5 WebSphere Application Server V8 New Features and a primer on WAS V8.5 Lalitha V Pannala, Development Manager, WebSphere India Software Lab, IBM Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION

More information

Modular Java Applications with Spring, dm Server and OSGi

Modular 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 information

Breaking Apart the Monolith with Modularity and Microservices CON3127

Breaking 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 information

OSGi in Action. Ada Diaconescu

OSGi 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 information

OSGi. Building LinkedIn's Next Generation Architecture with OSGI

OSGi. 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 information

Building LinkedIn's Next Generation Architecture with OSGI

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 Yan

More information

OSGi on the Server. Martin Lippert (it-agile GmbH)

OSGi 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 information

Patterns and Best Practices for dynamic OSGi Applications

Patterns 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 information

Liberate your components with OSGi services

Liberate 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 information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

OSGi. Building and Managing Pluggable Applications

OSGi. 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 information

Is OSGi Modularity Always Worth It? Glyn Normington

Is OSGi Modularity Always Worth It? Glyn Normington Is OSGi Modularity Always Worth It? Glyn Normington Agenda Costs and benefits Case studies When is OSGi worth it? OSGi Benefits Encapsulated module internals Easier to understand, maintain, and extend

More information

Agenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.

Agenda. 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 information

Modular Java EE in the cloud

Modular Java EE in the cloud Modular Java EE in the cloud A practical guide to mixing java EE and OSGi Jfokus 2013 Practical Guide to Modularity in the Cloud Age Jfokus 2013 Bert Ertman Fellow at Luminis in the Netherlands JUG Leader

More information

Apache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007

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 information

Equinox OSGi: Pervasive Componentization

Equinox 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 information

WHAT IS EJB. Security. life cycle management.

WHAT IS EJB. Security. life cycle management. EJB WHAT IS EJB EJB is an acronym for enterprise java bean. It is a specification provided by Sun Microsystems to develop secured, robust and scalable distributed applications. To run EJB application,

More information

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource Spring Framework 2.5: New and Notable Ben Alex, Principal Software Engineer, SpringSource GOAL> Learn what s new in Spring 2.5 and why it matters to you springsource.com 2 Agenda Goals of Spring 2.5 Support

More information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB 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 information

Red Hat JBoss Fuse 6.1

Red 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 information

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt Modularity in Java With OSGi Alex Blewitt @alblue Docklands.LJC January 2016 Modularity in Java Modularity is Easy? Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity

More information

Comparing JavaBeans and OSGi

Comparing JavaBeans and OSGi Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02 Who I Am Humberto Cervantes 3d year PhD at Adèle team, LSR, Grenoble

More information

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release WebSphere Application Server IBM IBM WebSphere Application Server Migration Toolkit Version 9.0 Release 18.0.0.3 Contents Chapter 1. Overview......... 1 Chapter 2. What's new........ 5 Chapter 3. Support..........

More information

Seam 3. Pete Muir JBoss, a Division of Red Hat

Seam 3. Pete Muir JBoss, a Division of Red Hat Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building

More information

Oracle Corporation

Oracle 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 information

Patterns and Best Practices for Dynamic OSGi Applications

Patterns 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 information

Java 7, JEE 6, and OSGI IBM Corporation

Java 7, JEE 6, and OSGI IBM Corporation Java 7, JEE 6, and OSGI Agenda The Terminology Java SE 7 Java EE 6 Java Modularization with OSGI 2 Java, a Few Terms Java Platform is both A Java Virtual Machine for a particular hardware and software

More information

Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8

Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8 Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8 Author: Ying Liu cdlliuy@cn.ibm.com Date: June,29 2011 2010 IBM Corporation THE INFORMATION

More information

Introduction to OSGi. Marcel Offermans. luminis

Introduction 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 information

OSGi & Spring combined

OSGi & 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 information

Tuesday, April 26, 2011

Tuesday, 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 information

Spring Dynamic Modules

Spring 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 information

IP Log for soa.swordfish

IP Log for soa.swordfish IP Log for soa.swordfish Helios Release, June 2010 Licenses Eclipse Public License v1.0 Third-Party Code CQ Third-Party Code License Use 2325 spring-aop Version: 2.5.2 2326 spring-beans Version: 2.5.2

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

Using Apache Felix: OSGi best practices. Marcel Offermans luminis

Using 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 information

CS5233 Components Models and Engineering

CS5233 Components Models and Engineering Prof. Dr. Th. Letschert CS5233 Components Models and Engineering (Komponententechnologien) Master of Science (Informatik) OSGI Bundles and Services Slides on OSGi are based on OSGi Alliance: OSGi Service

More information

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

IBM 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 information

Tuscany: Applying OSGi modularity after the fact

Tuscany: 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 information

Java 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 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 information

Java J Course Outline

Java J Course Outline JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The

More information

1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008

1.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 information

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009 First Steps in RCP Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany February 19th, 2009 Agenda» About us» RCP Architecture and Bundles» Extension Points and Views» Bundle Dependencies 2 Jan Blankenhorn»

More information

JVA-163. Enterprise JavaBeans

JVA-163. Enterprise JavaBeans JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional

More information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services

More information

Creating an application with the Virgo Web Server

Creating an application with the Virgo Web Server Creating an application with the Virgo Web Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson Abstract 2.1.0.CI-10 Warning Please note

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

JVA-563. Developing RESTful Services in Java

JVA-563. Developing RESTful Services in Java JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop

More information

Developing 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, 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 information

Creating an application with dm Server

Creating an application with dm Server Creating an application with dm Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson 2.0.0.RC1 Abstract Spring application programmers are

More information

JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity

JSR 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 information

Creating an application with dm Server

Creating an application with dm Server Creating an application with dm Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson 2.0.0.M3 Abstract Spring application programmers are

More information

Sentences Installation Guide. Sentences Version 4.0

Sentences Installation Guide. Sentences Version 4.0 Sentences Installation Guide Sentences Version 4.0 A publication of Lazysoft Ltd. Web: www.sentences.com Lazysoft Support: support@sentences.com Copyright 2000-2012 Lazysoft Ltd. All rights reserved. The

More information

OSGi. Tales from the Trenches. OSGitales from the trenches

OSGi. 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 information

Server for IBM i. Dawn May Presentation created by Tim Rowe, 2008 IBM Corporation

Server for IBM i. Dawn May Presentation created by Tim Rowe, 2008 IBM Corporation Integrated Web Application Server for IBM i Dawn May dmmay@us.ibm.com Presentation created by Tim Rowe, timmr@us.ibm.com IBM i integrated Web application server the on-ramp to the Web 2 Agenda Integrated

More information

David Blevins State of OpenEJB 3.0

David Blevins State of OpenEJB 3.0 David Blevins dblevins@visi.com State of OpenEJB 3.0 OpenEJB 1 History OpenEJB 2 EJB 1.1 Only CMP with Castor JDO Embeddable Tomcat Integration Standalone Capable EJB 2.1 Certified CMP with TranQL IoC

More information

Enterprise Development

Enterprise 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 information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Spring 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 information

ESB, OSGi, and the Cloud

ESB, 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 information

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Webservices In Java Tutorial For Beginners Using Netbeans Pdf Webservices In Java Tutorial For Beginners Using Netbeans Pdf Java (using Annotations, etc.). Part of way) (1/2). 1- Download Netbeans IDE for Java EE from here: 2- Follow the tutorial for creating a web

More information

Spring Framework 5.0 on JDK 8 & 9

Spring Framework 5.0 on JDK 8 & 9 Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as

More information

7. Component Models. Distributed Systems Prof. Dr. Alexander Schill

7. Component Models. Distributed Systems Prof. Dr. Alexander Schill 7. Component Models Distributed Systems http://www.rn.inf.tu-dresden.de Outline Motivation for Component Approach Software Components - Definition Component Platforms EJB (Enterprise JavaBeans) Spring

More information

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

Java 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 information

Introduction. Key Features and Benefits

Introduction. Key Features and Benefits Introduction Stabilix Underwriting Framework is a highly adaptable XML based J2EE com-pliant software platform built on the Stabilix s business process automation (BPA) suite, code named CloudEx. CloudEx

More information

Peter Kriens OSGi Evangelist/Director. OSGi R4.3 // Next Release Overview

Peter 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 information

Understanding ClassLoaders WebSphere 5.1, 6.0 and 6.1

Understanding ClassLoaders WebSphere 5.1, 6.0 and 6.1 IBM Software Group Understanding ClassLoaders WebSphere 5.1, 6.0 and 6.1 Speaker: Paul Van Norman WebSphere Support Technical Exchange Agenda Classloader overview Classloader delegation mode & policies

More information

Copyright Oracle Corporation and VMware Inc, Enterprise Modules Project (Gemini) Proposal

Copyright Oracle Corporation and VMware Inc, Enterprise Modules Project (Gemini) Proposal Enterprise Modules Project (Gemini) Proposal The Enterprise Modules Project is a proposed open source project under the Eclipse Runtime Project. This project is in the Project Proposal Phase (as defined

More information

Equinox Framework: How to get Hooked

Equinox Framework: How to get Hooked Equinox Framework: How to get Hooked Thomas Watson, IBM Lotus Equinox Project co-lead Equinox Framework lead developer 2008 by IBM Corp; made available under the EPL v1.0 March 2008 Tutorial Agenda Equinox

More information

JBoss World 2009 Aaron Darcy

JBoss World 2009 Aaron Darcy 1 Java Application Platforms for Lightweight Workloads Insight into Red Hat's Application Platform Strategy Aaron Darcy JBoss Product Line Director Red Hat September 2009 2 About Me JBoss Product Line

More information

BEAWebLogic. Event Server. WebLogic Event Server Reference

BEAWebLogic. Event Server. WebLogic Event Server Reference BEAWebLogic Event Server WebLogic Event Server Reference Version 2.0 July 2007 Contents 1. Introduction and Roadmap Document Scope and Audience............................................. 1-1 WebLogic

More information

Hands-on Development of Web Applications with Java EE 6

Hands-on Development of Web Applications with Java EE 6 Hands-on Development of Web Applications with Java EE 6 Vítor E. Silva Souza JUG Trento Member & DISI/Unitn PhD Candidate http://disi.unitn.it/~vitorsouza/ Java Created by Sun Microsystems in 1995 Sun

More information

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.

More information

EclipseLink. Solutions Guide for EclipseLink Release 2.6. June Beta Draft

EclipseLink. Solutions Guide for EclipseLink Release 2.6. June Beta Draft EclipseLink Solutions Guide for EclipseLink Release 2.6 June 2014 Beta Draft Solutions Guide for EclipseLink Copyright 2014 by The Eclipse Foundation under the Eclipse Public License (EPL) http://www.eclipse.org/org/documents/epl-v10.php

More information

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not

More information

OSGi Application Development using GlassFish Server. Version 1.0

OSGi Application Development using GlassFish Server. Version 1.0 OSGi Application Development using GlassFish Server Table of Contents Version 1.0 1 Introduction:...3 1.1 New to OSGi?...3 1.2 Relationship between GlassFish Server & OSGi...4 2 OSGi Applications in GlassFish

More information

Modularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr

Modularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr Modularity in Java 9 Balázs Lájer Software Architect, GE HealthCare HOUG Oracle Java conference, 04. Apr. 2016. Modularity in Java before Java 9 Source: https://www.osgi.org/developer/architecture/ 2 MANIFEST.MF

More information

JBI 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 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 information

Java EE 7: Back-End Server Application Development

Java EE 7: Back-End Server Application Development Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application

More information

Techniques for Building J2EE Applications

Techniques for Building J2EE Applications Techniques for Building J2EE Applications Dave Landers BEA Systems, Inc. dave.landers@4dv.net dave.landers@bea.com Why are we Here? Discuss issues encountered with J2EE Application deployment Based on

More information

G l a r I m y Presentation on

G l a r I m y Presentation on G l a r I m y Presentation on OSGi with Apache Karaf Krishna Mohan Koyya Proprietor & Principle Consultant Glarimy Technology Services Benguluru Bharat http://www.glarimy.com krishna@glarimy.com . The

More information

A Gentle Introduction to Java Server Pages

A Gentle Introduction to Java Server Pages A Gentle Introduction to Java Server Pages John Selmys Seneca College July 2010 What is JSP? Tool for developing dynamic web pages developed by SUN (now Oracle) High-level abstraction of Java Servlets

More information

Deploying Applications to Oracle WebLogic Server g Release 1 (10.3.6)

Deploying Applications to Oracle WebLogic Server g Release 1 (10.3.6) [1]Oracle Fusion Middleware Deploying Applications to Oracle WebLogic Server 10.3.6 11g Release 1 (10.3.6) E13702-08 July 2015 This document describes deploying Java EE applications or application modules

More information

8. Component Software

8. Component Software 8. Component Software Overview 8.1 Component Frameworks: An Introduction 8.2 OSGi Component Framework 8.2.1 Component Model and Bundles 8.2.2 OSGi Container and Framework 8.2.3 Further Features of the

More information

Software Components and Distributed Systems

Software 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 information

JVA-117E. Developing RESTful Services with Spring

JVA-117E. Developing RESTful Services with Spring JVA-117E. Developing RESTful Services with Spring Version 4.1 This course enables the experienced Java developer to use the Spring MVC framework to create RESTful web services. We begin by developing fluency

More information

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8 Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8 Author: Ying Liu cdlliuy@cn.ibm.com Date: June 24, 2011 2011 IBM Corporation THE

More information

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use

More information

Services Oriented Architecture and the Enterprise Services Bus

Services 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 information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Spring Interview Questions

Spring Interview Questions Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About

More information