OSGi & Java Modularity

Size: px
Start display at page:

Download "OSGi & Java Modularity"

Transcription

1 OSGi & Java Modularity Jazoon 2009, Zürich by Peter Kriens

2

3

4

5 Productivity Application Complexity

6 Productivity Assembly Application Complexity

7 Productivity Structured Programming Assembly Application Complexity

8 Productivity Structured Programming Object Oriented Programming Assembly Application Complexity

9 Productivity Service Oriented Programming? Structured Programming Object Oriented Programming Assembly Application Complexity

10

11 Application

12 Extensions Application Application Convenience Foundation Basic Something Core Java VM

13 minilang party pos. product workeffort workflow accounting assetmaint content Extensions bi ebay ecommerce googlebase guiapp hhfacility manufact. marketing minerva oagis order common catalina base Application layer Application datafile entity widget Application mail mx4j naming jetty poi resolver rome serializer servlets tomcat jenks jpos18 jython looks lucene Foundation Basic jakarta jcl json jdbm jdom xalan Convenience wsdl4j xerces Something xmlapis bsf bsh velocity ws-commons log4j barcode4j axis batik commons httpunit freemarker ezmorph fop derby Core xmlrpc xmlgraphics geronimo Libs.. Java VM Java VM rt jce jsse plugin sunjce_prov. dnsns..

14 minilang party pos. product workeffort workflow accounting assetmaint content Extensions bi ebay ecommerce googlebase guiapp hhfacility manufact. marketing minerva oagis order common catalina base Application layer Application datafile entity widget Application mail mx4j naming jetty poi resolver rome serializer servlets tomcat jenks jpos18 jython looks lucene Foundation Basic jakarta jcl json jdbm jdom xalan Convenience wsdl4j xerces Something xmlapis bsf bsh velocity ws-commons log4j barcode4j axis batik commons httpunit freemarker ezmorph fop derby Core xmlrpc xmlgraphics geronimo Libs.. Java VM Java VM rt jce jsse plugin sunjce_prov. dnsns..

15 by Damoiselle de Pique

16 Was Pollock an Early OO Programmer? by Damoiselle de Pique

17

18 modularity

19

20

21

22

23

24 low coupling,

25 low coupling, high cohesion &

26 low coupling, high cohesion & encapsulation

27

28 How Do We Handle This Complexity in Java?

29

30 Visibility vs Accessibility

31 Visibility Class S Class T

32 Visibility Class S Class T

33 Visibility Class S Class T

34 Visibility Class S Class T

35 Visibility Class S Module System Class T

36 Hierarchical Class Loaders boot ext app app cust

37 Hierarchical Class Loaders boot ext app app visibility cust

38 Context Class Loaders boot X {} ext app app Y {} cust

39 Context Class Loaders boot X {} ext Thread -> Context ClassLoader app app Y {} cust

40 Context Class Loaders boot X {} ext Thread -> Context ClassLoader app app Y {} cust

41 Accessibility public module package private

42 Accessibility Class V module Class W Class S Class T class Class U package

43 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.. Begin Here

44 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.. Class Not Found Exception Begin Here

45 Split Packages JARs A 2 B C import private export

46 Split Packages JARs A package com.foo: X, Y 2 B package com.foo: X, Y, Z C package com.foo: X, Y, Z import private export

47 Split Packages JARs A package com.foo: X, Y 2 B package com.foo: X, Y, Z C package com.foo: X, Y, Z import private export

48 Split Packages JARs A package com.foo: X, Y 2 B package com.foo: X, Y, Z C package com.foo: X, Y, Z import private export

49 Versioning JARs A package com.foo: X, Y 2 B package com.foo: X, Z C package com.foo: X, Y, Z import private export

50 Versioning JARs A package com.foo: X, Y package com.bar: A,B,C;1.0 2 B package com.foo: X, Z package com.bar: A;2.0 C package com.foo: X, Y, Z package com.bar: A,B,C;2.0 import private export

51 Versioning JARs A package com.foo: X, Y package com.bar: A,B,C;1.0 2 B package com.foo: X, Z package com.bar: A;2.0 C package com.foo: X, Y, Z package com.bar: A,B,C;2.0 import private export

52 Private Packages JARs A package com.foo: X, Y package com.bar: A,B,C;1.0 2 B package com.foo: X, Z package com.bar: A;2.0 C package com.foo: X, Y, Z package com.bar: A,B,C;2.0 import private export

53 Private Packages JARs A package com.foo: X, Y package com.bar: A,B,C;1.0 2 B package com.foo: X, Z package com.bar: A;2.0 package com.private: G C package com.foo: X, Y, Z package com.bar: A,B,C;2.0 package com.private: G,H,I import private export

54 Private Packages JARs A package com.foo: X, Y package com.bar: A,B,C;1.0 2 B package com.foo: X, Z package com.bar: A;2.0 package com.private: G C package com.foo: X, Y, Z package com.bar: A,B,C;2.0 package com.private: G,H,I import private export

55 How Do We Handle This Complexity in Java?

56 We Don t...

57

58

59 Applications (bundles) Service Life Cycle Module S E C U R I T Y Execution Environment OS + Hardware

60 Execution Environment

61

62 CLDC/ MIDP OSGi Min. CDC/FP J2SE 1.3, 1.4, 5, 6,...

63 Kim Scarborough

64 Module Layer

65 Import, Export, Private Bundle A Bundle B p q-1.4 Bundle A r p q-[1.2,1.8) r. import private export

66 Import, Export, Private Bundle A Bundle B p q-1.4 Bundle A r imports p q-[1.2,1.8) r. import private export

67 Import, Export, Private Bundle A Bundle B p q-1.4 Bundle A r imports exports p q-[1.2,1.8) r. import private export

68

69

70 Uses Constraints Bundle A Bundle B r;1.0 p q-1.4 r;2.0 p q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export

71 Uses Constraints Bundle A Bundle B r;1.0 p q-1.4 imports r;2.0 p q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export

72 Uses Constraints Bundle A Bundle B r;1.0 p q-1.4 imports exports r;2.0 p q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export

73 Uses Constraints Bundle A Bundle B r;1.0 p q-1.4 imports exports r;2.0 p q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export

74 System Loader Extension Loader Application B Loader Custom Loader

75 System Loader Extension Loader Application B Loader OSGi Custom Loader

76 System Loader Bundle A Extension Loader Bundle G Bundle B Application B Loader Framework Loader OSGi Bundle C Custom Loader Bundle F Bundle E Bundle D

77

78 Life Cycle Layer

79 INSTALLED STARTING RESOLVED ACTIVE UNINSTALLED STOPPING

80 System bundle MANAGE- MENT BUNDLE Bundle X-v2 X Bundle A Bundle B

81 Service Layer

82

83

84

85

86 Services defined in interface/class Bundle A register get Bundle B notify

87 Services void foo() { } interface Foo { void foo(); } s.foo()

88

89

90

91

92

93 Services Solve Class Loader Problems!

94

95 Security

96

97 Real Code!

98

99 package com.acme; import org.osgi.framework.*; public class HelloWorld extends BundleActivator { public void start(bundlecontext context) { System.out.println( Hello World ); } public void stop(bundlecontext context) { System.out.println( Goodbye World ); } } Manifest: 1.0 Bundle-Activator: com.acme.helloworld Import-Package: org.osgi.framework;version=1.3

100 Bundles are active entities in runtime

101

102 294

103 294 7

104

105

106 Is JSR 294 a Meta Module System? (Implemented by OSGi, Jigsaw, Guice, )

107 Is JSR 294 a Meta Module System? (Implemented by OSGi, Jigsaw, Guice, ) No Java Standard for Modules!

108

109

110

111 Legacy

112 Class.forName

113 Class.forName

114

115 Bloat?

116 Accidental Complexity

117

118

119

120

121 bundle A-1.2 b c bundle B-4.1 a bundle C-1.0

122

123

124 The Component Framework

125

126 Q&A

127 Thanks!

OSGi Best Practices. Emily

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

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

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

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

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

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

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

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

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

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

Open source software libraries used in ConnectAll

Open source software libraries used in ConnectAll Open source software libraries used in ConnectAll Category Tools Version Ant ant 1.7.0 Ant ant-launcher 1.7.0 Apache commons-beanutils 1.8.0 Apache commons-cli 1.2 Apache commons-codec 1.3 Apache commons-collections

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

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

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

Wednesday, June 23, JBoss Users & Developers Conference. Boston:2010

Wednesday, June 23, JBoss Users & Developers Conference. Boston:2010 JBoss Users & Developers Conference Boston:2010 Zen of Class Loading Jason T. Greene EAP Architect, Red Hat June 2010 What is the Class class? Represents a class, enum, interface, annotation, or primitive

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

Jigsaw and OSGi: What the Heck Happens Now?

Jigsaw 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 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

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

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

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

Expeditor Client for Desktop. Web Container and Web Applications

Expeditor Client for Desktop. Web Container and Web Applications Expeditor Client for Desktop and Applications Expeditor Client for Desktop Contents This presentation covers these topics: Application capabilities application infrastructure Plug-in descriptions applications

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

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

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

<Insert Picture Here> Hudson Web Architecture. Winston Prakash. Click to edit Master subtitle style

<Insert Picture Here> Hudson Web Architecture. Winston Prakash. Click to edit Master subtitle style Hudson Web Architecture Click to edit Master subtitle style Winston Prakash Hudson Plugin Architecture Hudson is an extendable Web Application. The basic platform is extended via

More information

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39

Index. 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 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

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

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

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

Apache Geronimo 3.0 Deep Dive

Apache Geronimo 3.0 Deep Dive Apache Geronimo 3.0 Deep Dive Kevan Miller, IBM kevan@apache.org Nov. 9, 2011 Who Am I Kevan Miller Employer: IBM Ac@ve at the ASF since 2005: Geronimo (PMC Chair) OpenEJB, Aries, OpenWebBeans Mentoring

More information

You, me and jigsaw. Tom Schindl

You, me and jigsaw. Tom Schindl You, me and jigsaw Tom Schindl Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at About Tom CTO BestSolution.at Systemhaus GmbH

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

OSGi in Action. RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE CREATING MODULAR APPLICATIONS IN JAVA MANNING. Greenwich (74 w. long.

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

Appendix for Large-scale, AST-based API-usage analysis of open-source Java projects

Appendix for Large-scale, AST-based API-usage analysis of open-source Java projects Appendix for Large-scale, AST-based API-usage analysis of open-source Java projects Ralf Lämmel 1,2 and Ekaterina Pek 2 and Jürgen Starek 1 1 Software Languages Team, Universität Koblenz-Landau, Germany

More information

Scripting Languages in OSGi. Thursday, November 8, 12

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

OSGi Subsystems from theory to practice Glyn Normington. Eclipse Virgo Project Lead SpringSource/VMware

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

J2EE Development with Apache Geronimo. Aaron Mulder Chariot Solutions

J2EE Development with Apache Geronimo. Aaron Mulder Chariot Solutions J2EE Development with Apache Geronimo Aaron Mulder Chariot Solutions Speaker Aaron Mulder Geronimo Developer Works on deployment, management, console, kernel,... Online Geronimo book at http:// chariotsolutions.com/geronimo/

More information

Richard S. Hall Karl Pauls Stuart McCulloch David Savage

Richard S. Hall Karl Pauls Stuart McCulloch David Savage Creating modular applications in Java Richard S. Hall Karl Pauls Stuart McCulloch David Savage FOREWORD BY PETER KRIENS SAMPLE CHAPTER MANNING OSGi in Action by Richard S. Hall, Karl Pauls, Stuart McCulloch,

More information

CHAPTER 20. Integrating Code Libraries Plug-ins as JARs

CHAPTER 20. Integrating Code Libraries Plug-ins as JARs CHAPTER 20 Integrating Code Libraries Even the most Eclipse-biased developer would concede that the majority of Java libraries out there are not shipped as plug-ins. This chapter discusses the integration

More information

Talend Open Studio for Data Integration. Release Notes 5.6.2

Talend Open Studio for Data Integration. Release Notes 5.6.2 Talend Open Studio for Data Integration Release Notes 5.6.2 Talend Open Studio for Data Integration Publication date May 12, 2015 Copyleft This documentation is provided under the terms of the Creative

More information

CHAPTER 6. Java Project Configuration

CHAPTER 6. Java Project Configuration CHAPTER 6 Java Project Configuration Eclipse includes features such as Content Assist and code templates that enhance rapid development and others that accelerate your navigation and learning of unfamiliar

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

Liferay Architecture

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

Developing Mobile Applications

Developing Mobile Applications Developing Mobile Applications J2ME Java 2 Micro Edition 1 Virtual machines portable apps virtual machine native apps operating system hardware 2 Java - important issues Symbolic language not a random

More information

Monitoring and Managing Computer Resource Usage on OSGi Frameworks

Monitoring and Managing Computer Resource Usage on OSGi Frameworks Monitoring and Managing Computer Resource Usage on OSGi Frameworks Ikuo YAMASAKI Research Engineer NTT Cyber Solution Laboratories Background: Service Aggregation Platform Operation Center and Home Service

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

Richard S. Hall Karl Pauls Stuart McCulloch David Savage

Richard S. Hall Karl Pauls Stuart McCulloch David Savage Creating modular applications in Java Richard S. Hall Karl Pauls Stuart McCulloch David Savage FOREWORD BY PETER KRIENS SAMPLE CHAPTER MANNING OSGi in Action by Richard S. Hall, Karl Pauls, Stuart McCulloch,

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

FREE DOWNLOAD COMPONENTS/ THIRD PARTY TERMS AND CONDITIONS

FREE DOWNLOAD COMPONENTS/ THIRD PARTY TERMS AND CONDITIONS FREE DOWNLOAD COMPONENTS/ THIRD PARTY TERMS AND CONDITIONS A. FREE DOWNLOAD COMPONENTS LIST The Sybase Program/ Software you have licensed may contain open source and/or other types of free download components.

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

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

Talend Open Studio for Big Data. Release Notes 6.2.0

Talend Open Studio for Big Data. Release Notes 6.2.0 Talend Open Studio for Big Data Release Notes 6.2.0 Talend Open Studio for Big Data Adapted for v6.2.0. Supersedes previous releases. Publication date May 12, 2016 Copyleft This documentation is provided

More information

Modularity for Java and How OSGi Can Help

Modularity 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 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

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

Carsten Ziegeler

Carsten Ziegeler Embrace OSGi Change A Developer's Quickstart Carsten Ziegeler cziegeler@apache.org About Member of the ASF Sling, Felix, Cocoon, Portals, Sanselan, Excalibur, Incubator PMC: Felix, Portals, Cocoon, Incubator,

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

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

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

CS486: Tutorial on SOC, OSGi, and Knopflerfish. Ryan Babbitt (props to Dr. Hen-I Yang, CS415X) Feb. 3, 2011

CS486: Tutorial on SOC, OSGi, and Knopflerfish. Ryan Babbitt (props to Dr. Hen-I Yang, CS415X) Feb. 3, 2011 CS486: Tutorial on SOC, OSGi, and Knopflerfish Ryan Babbitt (rbabbitt@iastate.edu) (props to Dr. Hen-I Yang, CS415X) Feb. 3, 2011 Basic Concepts Service-oriented computing (SOC) Service-oriented architectures

More information

Environments for Devices Based on Embedded Systems

Environments for Devices Based on Embedded Systems APOGEE SOFTWARE, INC. APHELION Java Deployment and Development Environments for Devices Based on Embedded Systems Aphelion JREs Reliable high performance Java Runtime Environments for deploying Java applications

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

Working with Geronimo Plugins

Working with Geronimo Plugins 17 Working with Geronimo Plugins With the release of Geronimo 1.1, the ability to easily add incremental system and application features to a Geronimo server becomes a reality. Geronimo plugins enable

More information

Fat / Uber jars - Using the Shade Plugin

Fat / Uber jars - Using the Shade Plugin Fat / Uber jars - Using the Shade Plugin Shading the container and the application has some challenges like merging correctly resources (META-INF/services/ typically). Here is a maven shade plugin configuration

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

Designing for Modularity with Java 9

Designing for Modularity with Java 9 Designing for Modularity with Java 9 Paul Bakker @pbakker Sander Mak @Sander_Mak Today's journey Module primer Services & DI Modular design Layers & loading Designing for Modularity with Java 9 What if

More information

SCA Java Runtime Overview

SCA Java Runtime Overview SCA Java Runtime Overview Software Organization Source Code Locations If you take a Tuscany SCA Java source distribution or look in the Tuscany subversion repository (http://svn.apache.org/repos/asf/tuscany/java/sc

More information

Talend Open Studio for Big Data. Release Notes 6.3.1

Talend Open Studio for Big Data. Release Notes 6.3.1 Talend Open Studio for Big Data Release Notes 6.3.1 Talend Open Studio for Big Data Adapted for v6.3.1. Supersedes previous releases. Publication date January 19, 2017 Copyleft This documentation is provided

More information

Adding a Module System to Java

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

Managing Installations and Provisioning of OSGi Applications. Carsten Ziegeler

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

Equinox Project Update

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

Talend Open Studio for Big Data. Release Notes 6.1.2

Talend Open Studio for Big Data. Release Notes 6.1.2 Talend Open Studio for Big Data Release Notes 6.1.2 Talend Open Studio for Big Data Adapted for v6.1.2. Supersedes previous releases. Publication date September 13, 2016 Copyleft This documentation is

More information

Creating the Sakai EAR File for WebSphere Community Edition

Creating the Sakai EAR File for WebSphere Community Edition Creating the Sakai 2.1.2 EAR File for WebSphere Community Edition Overview The WebSphere Community Edition (WASCE) is a FREE J2EE container and web application server based on Apache Geronimo and Tomcat.

More information

Java Language Modularity With Superpackages

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

Project Jigsaw: Modular services

Project Jigsaw: Modular services Project Jigsaw: Modular services Jigsaw team 12 June 2012 Copyright 2012 Oracle and/or its affiliates All rights reserved 1 Terms Service interface: An interface or class Service interface module: A module

More information

INF 212 ANALYSIS OF PROG. LANGS PLUGINS. Instructors: Crista Lopes Copyright Instructors.

INF 212 ANALYSIS OF PROG. LANGS PLUGINS. Instructors: Crista Lopes Copyright Instructors. INF 212 ANALYSIS OF PROG. LANGS PLUGINS Instructors: Crista Lopes Copyright Instructors. Modules as conceptual units Modules as physical components Software modules as physical components Source components

More information

Rich Client GUI's with RCP & RAP

Rich Client GUI's with RCP & RAP Rich Client GUI's with RCP & RAP Alexey Aristov WeigleWilczek GmbH aristov@weiglewilczek.com What is Rich Client? A fat client or rich client is a computer (client) in client-server architecture networks

More information

Apache Felix Shell. Apache Felix Shell. Overview. How the Shell Service Works. package org.apache.felix.shell;

Apache Felix Shell. Apache Felix Shell. Overview. How the Shell Service Works. package org.apache.felix.shell; Apache Felix Shell Apache Felix Shell Overview How the Shell Service Works How Commands Work Creating a Command Security and the Shell Service Feedback Overview In order to interact with Felix it is necessary

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

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

Advanced Enterprise Debugging

Advanced Enterprise Debugging ThoughtWorks Neal Ford TS-4588 Advanced Enterprise Debugging ThoughtWorker/Meme Wrangler ThoughtWorks www.thoughtworks.com 2007 JavaOne SM Conference TS-4588 What This Session Covers Forensic debugging

More information

WFCE - Build and deployment. WFCE - Deployment to Installed Polarion. WFCE - Execution from Workspace. WFCE - Configuration.

WFCE - Build and deployment. WFCE - Deployment to Installed Polarion. WFCE - Execution from Workspace. WFCE - Configuration. Workflow function and condition Example WFCE - Introduction 1 WFCE - Java API Workspace preparation 1 WFCE - Creating project plugin 1 WFCE - Build and deployment 2 WFCE - Deployment to Installed Polarion

More information

Under the Paul Fremantle, CTO, WSO2

Under 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 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

AppDev StudioTM 3.2 SAS. Migration Guide

AppDev StudioTM 3.2 SAS. Migration Guide SAS Migration Guide AppDev StudioTM 3.2 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2006. SAS AppDev TM Studio 3.2: Migration Guide. Cary, NC: SAS Institute Inc.

More information

J2EE Interview Questions

J2EE Interview Questions 1) What is J2EE? J2EE Interview Questions J2EE is an environment for developing and deploying enterprise applications. The J2EE platform consists of a set of services, application programming interfaces

More information

The Interceptor Architectural Pattern

The Interceptor Architectural Pattern Dr.-Ing. Michael Eichberg eichberg@informatik.tu-darmstadt.de The Interceptor Architectural Pattern Pattern-oriented Software Architecture Volume 2 Patterns for Concurrent and Networked Objects; Douglas

More information

Large-Scale API Protocol Mining for Automated Bug Detection

Large-Scale API Protocol Mining for Automated Bug Detection Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();

More information

FREE DOWNLOAD COMPONENTS/ THIRD PARTY TERMS AND CONDITIONS

FREE DOWNLOAD COMPONENTS/ THIRD PARTY TERMS AND CONDITIONS FREE DOWNLOAD COMPONENTS/ THIRD PARTY TERMS AND CONDITIONS A. FREE DOWNLOAD COMPONENTS LIST The Program/Software identified on the attached contains open source and/or other types of free download components.

More information

Talend Open Studio for Big Data. Release Notes 6.2.1

Talend Open Studio for Big Data. Release Notes 6.2.1 Talend Open Studio for Big Data Release Notes 6.2.1 Talend Open Studio for Big Data Adapted for v6.2.1. Supersedes previous releases. Publication date July 7, 2016 Copyleft This documentation is provided

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

Elementary Concepts of Object Class

Elementary Concepts of Object Class Elementary Concepts of Object Class Modeling entities and their behaviour by objects. A class as a specification of objects and as an object factory, computation as message passing/function call between

More information

JAVA Modules Java, summer semester 2018

JAVA Modules Java, summer semester 2018 JAVA Modules Modules a module explicitely defines what is provided but also what is required why? the classpath concept is fragile no encapsulation 2 Modules a module explicitely defines what is provided

More information

Apache Geronimo: A Peek Under the Hood

Apache Geronimo: A Peek Under the Hood Apache Geronimo: A Peek Under the Hood Bruce Snyder Jailey Solutions, LLC Bruce Snyder Apache Geronimo: A Peek Under the Hood Page 1 What Is Apache Geronimo? It is Not Yet another lightweight container

More information