What s next for e4. Tom Schindl Website:

Size: px
Start display at page:

Download "What s next for e4. Tom Schindl Website:"

Transcription

1 What s next for e4 Tom Schindl <tom.schindl@bestsolution.at> Website:

2 About Tom CTO BestSolution.at Systemhaus GmbH Eclipse Committer e4 Platform EMF Project lead e(fx)clipse Blog: tomsondev.bestsolution.at Corporate: (c) BestSolution.at - Licensed under Creative Commons Attribution-NonCommerical-ShareAlike 3.0

3 Q: Tom can you reflect a bit on the Eclipse 4?

4 The compat layer

5 The combat layer

6 e4 spec ed world The Brain Application Model Nervous system (OSGi) Service Components & DI-Container Sense organ UI (SWT/FX/ )

7 combat world The (split) Brain Application Model $n - Registries Nervous system DI & Service Compat- Layer Sense organ UI (SWT/ FX/ ) Legacy

8 Q:Tom what s your take on e4 core and DI components?

9 How OSGi spec ed the world Service-Impl 1 (requires Equinox, ) Service-Impl $N (requires Felix, ) Service-API (requires NOTHING) Consumer (requires Service-API)

10 How e4 core implemented it Service-Impl 1 Service-API (requires Equinox) Consumer (requires Service-API & transitive Equinox)

11 Wanna see an example Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.e4.core.di Import-Package: javax.annotation, javax.inject;version= 1.0.0"

12 Wanna see an example Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.e4.core.di Import-Package: javax.annotation, javax.inject;version="1.0.0", javax.inject;version= 1.0.0" org.eclipse.osgi.framework.log;version="1.1.0", org.eclipse.osgi.service.debug;version="1.2.0", org.osgi.framework;version="1.8.0", org.osgi.util.tracker;version="1.5.1"

13 Wanna see an example Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.e4.core.di Import-Package: javax.annotation, javax.inject;version="1.0.0", javax.inject;version= 1.0.0" org.eclipse.osgi.framework.log;version="1.1.0", org.eclipse.osgi.service.debug;version="1.2.0", org.osgi.framework;version="1.8.0", org.osgi.util.tracker;version="1.5.1" ONLY NEEDED BY IMPL

14 Q: Tom what s your take on OSGi in e4 APIs?

15 Ideal OSGi App world

16 Ideal OSGi App world A-API-Bundle (requires NOTHING)

17 Ideal OSGi App world A Impl-Bundle (requires NOTHING) A-API-Bundle (requires NOTHING)

18 Ideal OSGi App world A Impl-Bundle (requires NOTHING) A-API-Bundle (requires NOTHING) B Impl-Bundle (requires Comp A-API-Bundle)

19 Ideal OSGi App world A Impl-Bundle (requires NOTHING) A-API-Bundle (requires NOTHING) public interface A { B Impl-Bundle (requires Comp A-API-Bundle)

20 Ideal OSGi App world A Impl-Bundle (requires public class ImplA implements A { A-API-Bundle (requires NOTHING) public interface A { B Impl-Bundle (requires Comp A-API-Bundle)

21 Ideal OSGi App world A Impl-Bundle (requires public class ImplA implements A { A-API-Bundle (requires NOTHING) public interface A { B Impl-Bundle (requires Comp public class ImplB ReferenceCardinality.MANDATORY) public void setcompa(a a) { public void unsetcompa(a a) {

22 e4 OSGi usage A Impl-Bundle (requires NOTHING) A-API-Bundle (requires NOTHING) B Impl-Bundle (requires Comp A-API-Bundle)

23 e4 OSGi usage A Impl-Bundle (requires public class ImplA implements A { A-API-Bundle (requires NOTHING) public interface A { B Impl-Bundle (requires Comp A-API-Bundle)

24 e4 OSGi usage A Impl-Bundle (requires public class ImplA implements A { A-API-Bundle (requires NOTHING) public interface A { B Impl-Bundle (requires Comp A-API-Bundle) public class ImplB public void setcompa(a a) {

25 e4 OSGi usage IEclipseContext servicecontext = B a = ContextInjectionFactory.make(B.class, servicecontext);

26 e4 OSGi usage Bundle bundle = FrameworkUtil.getBundle(BlaBla.class) BundleContext btx = bundle.getbundlecontext(); IEclipseContext servicecontext = EclipseContextFactory.getServiceContext(btx); B a = ContextInjectionFactory.make(B.class, servicecontext);

27 Q: What API does e4 use from OSGi?

28 e4 OSGi API useage

29 e4 OSGi API useage Pattern 1 - Debug/Log import org.eclipse.osgi.framework.log.frameworklog; import org.eclipse.osgi.framework.log.frameworklogentry; FrameworkLog log = FrameworkLogEntry logentry = new FrameworkLogEntry("org.eclipse.core.e4.di", FrameworkLogEntry.ERROR, 0, "I m an error", 0, e, null);

30 e4 OSGi API useage Pattern 1 - Debug/Log import org.eclipse.osgi.framework.log.frameworklog; import org.eclipse.osgi.framework.log.frameworklogentry; FrameworkLog log = FrameworkLogEntry logentry = new FrameworkLogEntry("org.eclipse.core.e4.di", FrameworkLogEntry.ERROR, 0, "I m an error", 0, e, null); Pattern 2 - Accessing OSGi-Service BundleContext bundlecontext = FrameworkUtil.getBundle(BlaBla.class).getBundleContext(); ServiceReference<ComponentA> servicereference = bundlecontext.getservicereference(greetservice.class); if( servicereference!= null ) { bundlecontext.getservice(servicereference).greet("hello Tom");

31 Q: Ok. Got you. But can anything be done against that

32 Logging the efxclipse way Access Patterns

33 Logging the efxclipse way Access Patterns public class ComponentEarly2000 { private static Logger logger = LoggerCreator.createLogger(getClass());

34 Logging the efxclipse way Access Patterns public class ComponentEarly2000 { private static Logger logger = LoggerCreator.createLogger(getClass()); public class OSGiComponent2016 { private Logger public void setloggerfactory(loggerfactory f) { f.createlogger(getclass().getname());

35 Logging the efxclipse way Access Patterns public class ComponentEarly2000 { private static Logger logger = LoggerCreator.createLogger(getClass()); public class OSGiComponent2016 { private Logger public void setloggerfactory(loggerfactory f) { f.createlogger(getclass().getname()); public class private Logger logger;

36 Logging the efxclipse way private void processjparesultlist(list<person> list) {// slf4j/log4j/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); logger.debug("processing " + p.getname() + " - " + p.getaddress().getstreet());

37 Logging the efxclipse way private void processjparesultlist(list<person> list) {// slf4j/log4j/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); logger.debug("processing " + p.getname() + " - " + p.getaddress().getstreet()); BAD IDEA

38 Logging the efxclipse way private void processjparesultlist(list<person> list) {// slf4j/log4j/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); if( logger.isenabled(level.debug) ) { logger.debug("processing " + p.getname() + " - " + p.getaddress().getstreet());

39 Logging the efxclipse way private void processjparesultlist(list<person> list) {// slf4j/log4j/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); if( logger.isenabled(level.debug) ) { logger.debug("processing " + p.getname() + " - " + p.getaddress().getstreet()); private void processjparesultlist(list<person> list) {// log4j-2.x/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); // Logger#debug(Supplier<String>): void logger.debug(() -> "Processing " + p.getname() + " - " + p.getaddress().getstreet());

40 Logging the efxclipse way private void processjparesultlist(list<person> list) {// slf4j/log4j/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); if( logger.isenabled(level.debug) ) { logger.debug("processing " + p.getname() + " - " + p.getaddress().getstreet()); private void processjparesultlist(list<person> list) {// log4j-2.x/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); // Logger#debug(Supplier<String>): void logger.debug(() -> "Processing " + p.getname() + " - " + p.getaddress().getstreet()); private void processjparesultlist(list<person> list) {// efxclipse for( int i = 0; i < list.size(); i++ ) { // Logger#<T>debug(T value Function<T,String>): T logger.debug(list.get(i), (p) -> "Processing " + p.getname() + " - " + p.getaddress().getstreet());

41 Logging the efxclipse way private void processjparesultlist(list<person> list) {// slf4j/log4j/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); if( logger.isenabled(level.debug) ) { logger.debug("processing " + p.getname() + " - " + p.getaddress().getstreet()); private void processjparesultlist(list<person> list) {// log4j-2.x/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); // Logger#debug(Supplier<String>): void logger.debug(() -> "Processing " + p.getname() + " - " + p.getaddress().getstreet()); private void processjparesultlist(list<person> list) {// efxclipse for( int i = 0; i < list.size(); i++ ) { BAD IDEA // Logger#<T>debug(T value Function<T,String>): T logger.debug(list.get(i), (p) -> "Processing " + p.getname() + " - " + p.getaddress().getstreet());

42 Logging the efxclipse way private void processjparesultlist(list<person> list) {// log4j-2.x/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); logger.debug(() -> "Processing " + p.getname() + " - " + p.getaddress().getstreet());

43 Logging the efxclipse way private void processjparesultlist(list<person> list) {// log4j-2.x/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); logger.debug(() -> "Processing " + p.getname() + " - " + p.getaddress().getstreet()); static class Supplier1234 implements Supplier<String> { private Person p; Supplier1234(Person p) { this.p = p; public void String get() { return "Processing " + p.getname() + " - " + p.getaddress().getstreet()); private void processjparesultlist(list<person> list) {// log4j-2.x/efxclipse for( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); logger.debug(new Supplier(p));

44 Logging the efxclipse way private void processjparesultlist(list<person> list) {// efxclipse for( int i = 0; i < list.size(); i++ ) { logger.debug(list.get(i), (p) -> "Processing " + p.getname() + " - " + p.getaddress().getstreet());

45 Logging the efxclipse way private void processjparesultlist(list<person> list) {// efxclipse for( int i = 0; i < list.size(); i++ ) { logger.debug(list.get(i), (p) -> "Processing " + p.getname() + " - " + p.getaddress().getstreet()); static class Function1234 implements Function<Person,String> { public void String apply(person p) { return "Processing " + p.getname() + " - " + p.getaddress().getstreet()); private static Function1234 INSTANCE = new Function1234(); private void processjparesultlist(list<person> list) {// efxclipse for( int i = 0; i < list.size(); i++ ) { logger.debug(list.get(i), INSTANCE); list.stream().map( p -> logger.debug(list.get(i), INSTANCE) ).filter( )

46 Servicelookup the efx way

47 Servicelookup the efx way e4 built-in - single value

48 Servicelookup the efx way e4 built-in - single value public class DiComponent GreetService greetservice;

49 Servicelookup the efx way e4 built-in - single value public class DiComponent GreetService greetservice; NO e4 built-in - multi value

50 Servicelookup the efx way e4 built-in - single value public class DiComponent GreetService greetservice; NO e4 built-in - multi value public class DiComponent List<GreetService> greetservice;

51 Servicelookup the efx way e4 built-in - single value public class DiComponent GreetService greetservice; public class GreetService greetservice; NO e4 built-in - multi value public class DiComponent List<GreetService> greetservice;

52 Servicelookup the efx way e4 built-in - single value public class DiComponent GreetService greetservice; public class GreetService greetservice; NO e4 built-in - multi value public class DiComponent List<GreetService> greetservice; public class List<GreetService> greetservice;

53 Servicelookup the efx way

54 Servicelookup the efx way e4 static lookup single value

55 Servicelookup the efx way e4 static lookup single value public class Component { public void m(ieclipsecontext c) { A g = c.get(a.class);

56 Servicelookup the efx way e4 static lookup single value public class Component { public void m(ieclipsecontext c) { A g = c.get(a.class); NO e4 static lookup multi value

57 Servicelookup the efx way e4 static lookup single value public class Component { public void m(ieclipsecontext c) { A g = c.get(a.class); NO e4 static lookup multi value public class Component { public void m(ieclipsecontext c) { List<A> s = c.get(/*no EXPRESSION*/);

58 Servicelookup the efx way e4 static lookup single value import static o.e.f.c.serviceutils.*; public class Component { public void m(ieclipsecontext c) { A g = c.get(a.class); public class Component { public void m() { Optional<A> g = getservice(a.class); NO e4 static lookup multi value public class Component { public void m(ieclipsecontext c) { List<A> s = c.get(/*no EXPRESSION*/);

59 Servicelookup the efx way e4 static lookup single value import static o.e.f.c.serviceutils.*; public class Component { public void m(ieclipsecontext c) { A g = c.get(a.class); public class Component { public void m() { Optional<A> g = getservice(a.class); NO e4 static lookup multi value import static o.e.f.c.serviceutils.*; public class Component { public void m(ieclipsecontext c) { List<A> s = c.get(/*no EXPRESSION*/); public class Component { public void m() { List<A> g = getservicelist(a.class);

60 Q: Dude. You showed IEclipseContext usage? Really?

61 IEclipseContext retrieving & publishing to information in e4

62 IEclipseContext retrieving & publishing to information in e4

63 IEclipseContext retrieving & publishing to information in e4

64 IEclipseContext retrieving & publishing to information in e4 my.person: MWindow:

65 IEclipseContext retrieving & publishing to information in e4 my.person: MWindow: MPart:

66 IEclipseContext retrieving & publishing to information in e4 my.person: MWindow: public class A Person p; EclipseContext@2 MPart: MPartImpl@1

67 IEclipseContext retrieving & publishing to information in e4 my.person: MWindow: MPart: public class A Person p; public class B private IEclipseContext c; public void m() { c.getparent().set(person.class,p);

68 IEclipseContext retrieving & publishing to information in e4 my.person: MWindow: MPart: public class A Person p; public class B private IEclipseContext c; public void m() { c.getparent().set(person.class,p);

69 IEclipseContext retrieving & publishing to information in e4 my.person: MWindow: MPart: public class A Person p; public class B private IEclipseContext c; public void m() { c.getparent().set(person.class,p);

70 IEclipseContext retrieving & publishing to information in efxclipse my.person: MWindow: MPart: public class A Person p; public class private Consumer<Person> c; public void m() { c.accept(p);

71 Q:So you have your JavaFX renderer is it production ready?

72 Success story forumstar (new) Expected development time: 5 years Number of users: > 100,000 Number of developers: > 100 Total volume: > 100 Million Source:

73

74

75 Q: Let s talk about the future? What s cooking?

76 e4 editor story There is NONE

77 e4 editor story

78 efxclipse-editor story

79 efxclipse-editor story Eclipse 4 Application Platform

80 efxclipse-editor story Eclipse 4 Application Platform Core-API (eg resource-abstraction, auto-complete, )

81 efxclipse-editor story Eclipse 4 Application Platform Core-API (eg resource-abstraction, auto-complete, ) Presentation API

82 efxclipse-editor story Eclipse 4 Application Platform Core-API (eg resource-abstraction, auto-complete, ) Presentation API Core-EFS (use IProject, IFile,..) Core-NIO (use java.nio.file.path, )

83 efxclipse-editor story Eclipse 4 Application Platform Core-API (eg resource-abstraction, auto-complete, ) Presentation API Core-EFS (use IProject, IFile,..) Core-NIO (use java.nio.file.path, ) JavaFX SWT* * does not exist

84

85

86

87 Q: Tom. Do I really need to use OSGi (and the Eclipse IDE) in future?

88 NO!

89 NO! (at least not for e4 on JavaFX)

90 Platform of the future

91 Platform of the future JVM

92 Platform of the future OSGi JVM

93 Platform of the future Eclipse 4 App Platform efx-core OSGi JVM

94 Platform of the future efx-platform Eclipse 4 App Platform efx-core OSGi JVM

95 Platform of the future efx-platform Eclipse 4 App Platform efx-core OSGi JVM

96 Platform of the future efx-platform Eclipse 4 App Platform efx-core JVM

97

98

99

100

101 Q:So you create a fork?

102 Thanks for listening

JavaFX Codeeditors. Tom Schindl

JavaFX Codeeditors. Tom Schindl JavaFX Codeeditors Tom Schindl Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at About Me CTO BestSolution.at Systemhaus GmbH

More information

eclipse.org. Tom Schindl

eclipse.org. Tom Schindl JavaFX @ eclipse.org Tom Schindl Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at About Me CTO BestSolution.at Systemhaus GmbH

More information

e(fx)clipse APIs Tom Schindl Matthew Elliot

e(fx)clipse APIs Tom Schindl Matthew Elliot e(fx)clipse APIs Tom Schindl Matthew Elliot Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at Website:

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

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council State of Eclipse 4.x Tom Schindl - BestSolution Systemhaus GmbH, Eric Moffatt IBM Leuven October 2011 About Tom CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead: UFaceKit,

More information

Eclipse 4 Programming Model and Practices. Jin Mingjian

Eclipse 4 Programming Model and Practices. Jin Mingjian Eclipse 4 Programming Model and Practices Jin Mingjian Agenda Eclipse 4 and Kepler Programming Model Good Practices Random Thoughts Eclipse 4 Modeled UI modeling(mdd): EMF Dependency Injection home made

More information

Eclipse 4 Application Platform

Eclipse 4 Application Platform Eclipse 4 Application Platform Tom Schindl - BestSolution Systemhaus GmbH EclipseCon Nov 2011 About Tom CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead: UFaceKit, Nebula

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

Eclipse Platform Localization. The Luna Updates. Seite 1. codecentric AG

Eclipse Platform Localization. The Luna Updates. Seite 1. codecentric AG Eclipse Platform Localization The Luna Updates Seite 1 SPEAKER Seite 2 LOCALIZATION BASICS Properties File (e.g. bundle.properties) application=translation Service Example (OSGi) label_message=my Label...

More information

Single Sourceing for Eclipse 4.x and 3.x

Single Sourceing for Eclipse 4.x and 3.x Single Sourceing for Eclipse 4.x and 3.x Tom Schindl - BestSolution Systemhaus GmbH EclipseCon 2011 - March 21st 2011 About Me CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead:

More information

Eclipse 4. Brian de Alwis. Abstract

Eclipse 4. Brian de Alwis. Abstract Eclipse 4 Brian de Alwis Abstract This year's Juno release sees the mainstream deployment of Eclipse 4, the new application platform from the Eclipse Foundation. Over four years in the making, Eclipse

More information

Kai Tödter Siemens Corporate Technology

Kai Tödter Siemens Corporate Technology Kai Tödter Siemens Corporate Technology Objectives of e4 e4 Workbench Model Models & Rendering Other UI Models Services CSS Styling Demo Discussion 2 Making it easier to write plug-ins Allowing better

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

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

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék The New Generation of the Eclipse Platform Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Eclipse RCP For developing client applications o Based on the Eclipse

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

Eclipse + Html: A Journey

Eclipse + Html: A Journey Eclipse + Html: A Journey Kris De Volder , Pivotal Software Martin Lippert , Pivotal Software 1 Outline Goal Motivation Case Studies The Journey API Comparison

More information

Technical Debt in Eclipse Development. Eclipse Con France 2018

Technical Debt in Eclipse Development. Eclipse Con France 2018 Technical Debt in Eclipse Development Eclipse Con France 2018 13 June 2018 Table of content I - Technical debt in your RCP application 5, June 2018 3 Technical debt in your RCP application I- I Who?

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

Dependencies, dependencies, dependencies

Dependencies, 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 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

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

Developing Rich Clients with Eclipse 4.x RCP

Developing Rich Clients with Eclipse 4.x RCP Developing Rich Clients with Eclipse 4.x RCP Kai Tödter, Siemens AG Tom Schindl, BestSolution.at 3/20/2011 Kai Tödter and others, Licensed under Creative Commons Attribution-Noncommercial-No Derivative

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

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

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

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

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

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

EMF Databinding. Tom Schindl - BestSolution Systemhaus GmbH. JAX May 2nd 2011

EMF Databinding. Tom Schindl - BestSolution Systemhaus GmbH. JAX May 2nd 2011 EMF Databinding Tom Schindl - BestSolution Systemhaus GmbH JAX 2011 - May 2nd 2011 About Me CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead: UFaceKit, Nebula Member of

More information

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

Eclipse 4.x Compatibility Layer: What's hot? What's not?

Eclipse 4.x Compatibility Layer: What's hot? What's not? Eclipse 4.x Compatibility Layer: What's hot? What's not? Remy Suen, IBM Rational Boris Bokowski, IBM Rational What's in the compatibility layer? A reimplementation of the org.eclipse.ui.workbench bundle

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

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

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

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

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

Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2

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

Advanced User Interface Programming Using the Eclipse Rich Client Platform

Advanced User Interface Programming Using the Eclipse Rich Client Platform Advanced User Interface Programming Using the Eclipse Rich Client Platform Tod Creasey IBM Canada Tod Creasey Advanced User Interface Programming Using the Eclipse Rich Client Platform Page 1 About the

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

Eclipse 4 Eclipse Day Toulouse 24 mai 2012

Eclipse 4 Eclipse Day Toulouse 24 mai 2012 Eclipse 4 Eclipse Day Toulouse 24 mai 2012 OPC 12 ECD PRE E4A 01 A OPCOACH 2012 Table of contents I - Eclipse 4 5 A. Application Model... 10 B. E4 injection and annotations... 14 C. CSS Styling... 17

More information

TestingofScout Application. Ludwigsburg,

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

Christopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011

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

Service Discovery and Remote Services with the Eclipse Communication Framework

Service Discovery and Remote Services with the Eclipse Communication Framework Service Discovery and Remote Services with the Eclipse Communication Framework Jan S. Rellermeyer, ETH Zürich Markus Kuppe, Versant GmbH Scott Lewis, Code 9 2008 by the ECF team; made available under the

More information

Testing Eclipse plug-ins: Tips & Tricks

Testing Eclipse plug-ins: Tips & Tricks Testing Eclipse plug-ins: Tips & Tricks Lorenzo Bettini DISIA University Firenze, Italy Vincenzo Caselli Francesco Guidieri RCP-Vision, Firenze, Italy EclipseCon Europe 2017 Project Quality Day Motivations

More information

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

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

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

OSGi and Equinox. Creating Highly Modular Java. Systems

OSGi and Equinox. Creating Highly Modular Java. Systems OSGi and Equinox Creating Highly Modular Java Systems Part I: Introduction This first part of the book introduces OSGi and Equinox, Eclipse s implementation of the OSGi standard. Chapter 1outlines the

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

ECF 3.0 Release Review

ECF 3.0 Release Review ECF 3.0 Release Review Project Lead: Scott Lewis slewis@eclipsesource.com Mailing List: ecf-dev@eclipse.org Home Page: http://www.eclipse.org/ecf 1 Highlights 3.o new features: Major Enhancements and Additions:

More information

From the RCP Book To Reality. Jean-Michel Lemieux IBM Rational, Ottawa, Canada

From the RCP Book To Reality. Jean-Michel Lemieux IBM Rational, Ottawa, Canada From the RCP Book To Reality Jean-Michel Lemieux IBM Rational, Ottawa, Canada 2008 by Jean-Michel Lemieux made available under the EPL v1.0 March 2008 Past, Present, Future Eclipse committer since it s

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

IBM Rational Software

IBM Rational Software IBM Rational Software Development Conference 2008 Introduction to the Jazz Technology Platform: Architecture Overview and Extensibility Scott Rich Distinguished Engineer, Jazz Architect IBM Rational SDP21

More information

Constructor Injection and other new features in Declarative Services 1.4. BJ Hargrave, IBM

Constructor Injection and other new features in Declarative Services 1.4. BJ Hargrave, IBM Constructor Injection and other new features in Declarative Services 1.4 BJ Hargrave, IBM Declarative Services A declarative model for publishing and consuming OSGi services Introduced in Release 4 in

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

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

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

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

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Copyright 2013, Oracle and/or its affiliates. All rights reserved. 1 JavaFX for Desktop and Embedded Nicolas Lorain Java Client Product Management Nicolas.lorain@oracle.com @javafx4you 2 The preceding is intended to outline our general product direction. It is intended

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

CO Java SE 7: Develop Rich Client Applications

CO Java SE 7: Develop Rich Client Applications CO-67230 Java SE 7: Develop Rich Client Applications Summary Duration 5 Days Audience Application Developers, Java Developer, Java EE Developer Level Professional Technology Java SE 7 Delivery Method Instructor-led

More information

e4 Project 0.9 Release Review

e4 Project 0.9 Release Review e4 Project 0.9 Release Review July 30, 2009 Review communication channel: e4-dev@eclipse.org 1 Highlights 0.9 is a technology preview of interesting work happening in the e4 incubator This is not a commercial

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

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

Eclipse 4.0. Jochen Krause EclipseSource

Eclipse 4.0. Jochen Krause EclipseSource Eclipse 4.0 Jochen Krause jkrause@eclipsesource.com EclipseSource based on EclipseCon 2008 talk by Mike Wilson, Jochen Krause, Jeff McAffer, Steve Northover 2008 EclipseSource December 2008 e4 adapting

More information

Modern Web Applications with Sightly

Modern Web Applications with Sightly APACHE SLING & FRIENDS TECH MEETUP BERLIN, 28-30 SEPTEMBER 2015 Modern Web Applications with Sightly @raducotescu Apache Sling committer Computer Scientist @ Adobe Systems radu@apache.org rev 2.20151005

More information

Using the Bridge Design Pattern for OSGi Service Update

Using the Bridge Design Pattern for OSGi Service Update Using the Bridge Design Pattern for OSGi Service Update Hans Werner Pohl Jens Gerlach {hans,jens@first.fraunhofer.de Fraunhofer Institute for Computer Architecture and Software Technology (FIRST) Berlin

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

Lesson learned from using EMF to build Desktop & Web Applications. Ludwigsburg, Oct

Lesson learned from using EMF to build Desktop & Web Applications. Ludwigsburg, Oct Lesson learned from using EMF to build Desktop & Web Applications Ludwigsburg, Oct 26 2017 About us Lorenzo Bettini Dip. Informatica, Univ. Firenze, Italy bettini@disia.unifi.it @lorenzo_bettini www.lorenzobettini.it

More information

OSGi and Spring Data for simple (Web) Application Development

OSGi and Spring Data for simple (Web) Application Development OSGi and Spring Data for simple (Web) Application Development Christian Baranowski Content of my talk in a sentence Java development with Bndtools and bnd is so much fun! My Talk in three Words - Bndtools

More information

JavaFX on javac: A Case Study

JavaFX on javac: A Case Study JavaFX on javac: A Case Study September 25, 2008 JVM Language Summit Tom Ball Google Overview JavaFX Script Compiler Requirements Why Use javac? javafxc Design Lessons Learned JavaFX Script Compiler Requirements

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

Migration to E4. Eclipse Con France 2016

Migration to E4. Eclipse Con France 2016 Migration to E4 Eclipse Con France 2016 8th June 2016 Table des matières I - Migration to E4 5 A. Presentation... 6 B. Migration to E4... 6 C. Migration tooling... 9 D. Model Fragments and Processors...

More information

Java Technologies. Lecture IV. Valdas Rapševičius

Java Technologies. Lecture IV. Valdas Rapševičius Preparation of the material was supported by the project Increasing Internationality in Study Programs of the Department of Computer Science II, project number VP1 2.2 ŠMM-07-K-02-070, funded by The European

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

Services in Joomla 4. Allon Moritz J and Beyond 13. May 2018

Services in Joomla 4. Allon Moritz J and Beyond 13. May 2018 Services in Joomla 4 Allon Moritz J and Beyond 13. May 2018 About Me Allon Moritz @digitpeak / @laoneo Founder Digital Peak GmbH Doing Joomla extensions since 2007 Joomla 4 Working group Team Lead Media

More information

20. Eclipse and Framework Extension Languages

20. Eclipse and Framework Extension Languages 20. Eclipse and Framework Extension Languages Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie Version 11-1.0, 12/17/11 Design Patterns and Frameworks,

More information

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Lessons learned from building Eclipse-based add-ons for commercial modeling tools Lessons learned from building Eclipse-based add-ons for commercial modeling tools (from a technology perspective) István Ráth Ákos Horváth EclipseCon France June 14 2018 MagicDraw A popular modeling tool

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering Conclusion, Outlook, Discussion Motivation 3 4 1. What did you learn? Objectives of this course: Basic skills in software engineering!

More information

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE

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

CQ Beacon Android SDK V2.0.1

CQ Beacon Android SDK V2.0.1 Copyright 2014 ConnectQuest, LLC 1 CQ Beacon Android SDK V2.0.1 Software Requirements: Android 4.3 or greater SDK Support Page: http://www.connectquest.com/app- developers/android- api/ The CQ SDK package

More information

Papyrus 2.0 Migration Guide

Papyrus 2.0 Migration Guide Papyrus 2.0 Migration Guide Christian W. Damus 12 February, 2016 Contents Papyrus 2.0 API Migration Guide 2 Infra Layer 2 UI Dependencies........................................ 2 APIs Moved out of the

More information

Eclipse (2/3) Deepak Dhungana Institute for System Engineering and Automation

Eclipse (2/3) Deepak Dhungana Institute for System Engineering and Automation Eclipse (2/3) Deepak Dhungana dhungana@ase.jku.at Institute for System Engineering and Automation Thomas Wuerthinger wuerthinger@ssw.jku.at Institute for System Software Johannes Kepler University Linz,

More information

Getting to the Next Level with Eclipse Concierge

Getting to the Next Level with Eclipse Concierge EclipseCon Europe 26 th October 2016 Getting to the Next Level with Eclipse Concierge Jan S. Rellermeyer, IBM Research Tim Verbelen, iminds - Ghent University Jochen Hiller, Deutsche Telekom AG Important

More information

RAP (The Rich Ajax Platform)

RAP (The Rich Ajax Platform) RAP (The Rich Ajax Platform) Eclipse Banking Day New York Jochen Krause RAP Project lead jkrause@eclipsesource.com 2008 EclipseSource December 2008 RAP enables building modular applications for web and

More information

Extensibility, Componentization, and Infrastructure

Extensibility, Componentization, and Infrastructure Extensibility, Componentization, and Infrastructure Ted Slupesky (slupesky@us.ibm.com) Copyright 2006 IBM Corp. Available under terms of the Eclipse Public License http://www.eclipse.org/legal/epl-v10.html

More information

CS 3 Introduction to Software Engineering. 5: Iterators

CS 3 Introduction to Software Engineering. 5: Iterators CS 3 Introduction to Software Engineering 5: Iterators Questions? 2 PS1 Discussion Question You are to choose between two procedures, both of which compute the minimum value in an array of integers. One

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

Mission Possible - Near zero overhead profiling. Klara Ward Principal Software Developer Java Mission Control team, Oracle February 6, 2018

Mission Possible - Near zero overhead profiling. Klara Ward Principal Software Developer Java Mission Control team, Oracle February 6, 2018 Mission Possible - Near zero overhead profiling Klara Ward Principal Software Developer Java Mission Control team, Oracle February 6, 2018 Hummingbird image by Yutaka Seki is licensed under CC BY 2.0 Copyright

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

ECF ECF Release 2014 by Composent, Inc. and others, made available under the EPL v1.0

ECF ECF Release 2014 by Composent, Inc. and others, made available under the EPL v1.0 ECF 3.8.0 Project Lead: Scott Lewis slewis@composent.com Dev Mailing List: ecf-dev@eclipse.org Home Page: http://www.eclipse.org/ecf Wiki: http://wiki.eclipse.org/ecf Project Plan: http://www.eclipse.org/projects/projectplan.php?projectid=rt.ecf

More information

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*

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

Semantic Versioning A Large Existing Codebase

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

EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review

EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review 4 June, 2007 1 Agenda Talking Points Features Non-Code Aspects APIs Architectural Issues Tool Usability End-of-Life Bugzilla UI Usability

More information