What s next for e4. Tom Schindl Website:
|
|
- Kelly Lloyd
- 6 years ago
- Views:
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 Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at About Me CTO BestSolution.at Systemhaus GmbH
More informationeclipse.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 informatione(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 informationYou, 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 informationAbout 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 informationEclipse 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 informationEclipse 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 informationOSGi. Building LinkedIn's Next Generation Architecture with OSGI
OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Background
More informationBuilding LinkedIn's Next Generation Architecture with OSGI
OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Yan
More informationEclipse 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 informationSingle 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 informationEclipse 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 informationKai 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 informationAgenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.
OSGi Overview freeman.fang@gmail.com ffang@apache.org Apache Servicemix Commiter/PMC member Apache Cxf Commiter/PMC member Apache Karaf Commiter/PMC member Apache Felix Commiter Agenda Why OSGi What is
More informationDeveloping Java Applications with OSGi Capital District Java Developers Network. Michael P. Redlich March 20, 2008
Developing Java Applications with OSGi Capital District Java Developers Network Michael P. Redlich March 20, My Background (1) Degree B.S. in Computer Science Rutgers University (go Scarlet Knights!) Petrochemical
More informationThe 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 informationOSGi on the Server. Martin Lippert (it-agile GmbH)
OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)
More informationEclipse + 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 informationTechnical 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 informationPatterns and Best Practices for Dynamic OSGi Applications
Patterns and Best Practices for Dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationDependencies, dependencies, dependencies
Dependencies, dependencies, dependencies Marcel Offermans!"#$%&'&()"* 1 Marcel Offermans Fellow and Software Architect at Luminis Technologies marcel.offermans@luminis.nl Member and Committer at Apache
More informationPatterns and Best Practices for dynamic OSGi Applications
Patterns and Best Practices for dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationScripting Languages in OSGi. Thursday, November 8, 12
Scripting Languages in OSGi Frank Lyaruu CTO Dexels Project lead Navajo Framework Amsterdam www.dexels.com Twitter: @lyaruu Navajo Framework TSL XML based script language Compiled to Java Recently ported
More informationDeveloping 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 informationIntroduction to OSGi. Marcel Offermans. luminis
Introduction to OSGi Marcel Offermans luminis Introduction Marcel Offermans marcel.offermans@luminis.nl Luminis Arnhem Apeldoorn Enschede IT solutions from idea to implementation with and for customers:
More informationEquinox OSGi: Pervasive Componentization
Equinox OSGi: Pervasive Componentization Thomas Watson Equinox Development Lead IBM Lotus Jeff McAffer, Eclipse RCP and Equinox Lead IBM Rational Software 10/3/2006 Why is Eclipse interesting? Extensible
More informationLiberate your components with OSGi services
Liberate your components with OSGi services One products journey through the Modularity Maturity Model Alasdair Nottingham (not@uk.ibm.com) WebSphere Application Server V8.5 Liberty Profile Development
More informationJigsaw and OSGi: What the Heck Happens Now?
Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi
More informationOSGi. Tales from the Trenches. OSGitales from the trenches
OSGi Tales from the Trenches Bertrand Delacretaz Senior R&D Developer, Day Software, www.day.com Apache Software Foundation Member and Director bdelacretaz@apache.org blog: http://grep.codeconsult.ch twitter:
More informationCS5233 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 informationEMF 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 informationOSGi Best Practices. Emily
OSGi Best Practices Emily Jiang @IBM Use OSGi in the correct way... AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 3 Modularization in Java > Jars have no modularization characteristics No
More informationEclipse 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 informationModularity 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 informationOSGi in Action. Ada Diaconescu
OSGi in Action Karl Pauls Clement Escoffier karl.pauls@akquinet.de clement.escoffier@akquinet.de INF 346. Ada Diaconescu ada.diaconescu@telecom-paristech.fr 2 OSGi in Action - Clement Escoffier (clement.escoffier@akquinet.de)
More informationUsing Apache Felix: OSGi best practices. Marcel Offermans luminis
Using Apache Felix: OSGi best practices Marcel Offermans luminis 1 About me Marcel Offermans Software architect at luminis Consultancy & product development Over 4 years of experience with OSGi Committer
More informationModular Java Applications with Spring, dm Server and OSGi
Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction
More informationOSGi. Building and Managing Pluggable Applications
OSGi Building and Managing Pluggable Applications What A Mess Billing Service Orders Shipping Accounting Workflow Inventory Application From The View Of... Building monolithic applications is evil nuf
More informationBeware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2
JUnit Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain Dependencies Debugging Surefire OSGi p2 Mac OS X Update Site Tycho Redistribution and other use of this material requires
More informationAdvanced 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 informationSpring Dynamic Modules
June 10-11, 2008 Berlin, Germany Spring Dynamic Modules by Example Martin Lippert Gerd Wütherich Agenda Spring Overview of the Spring framework A short example Spring Dynamic Modules Overview of Spring
More informationEclipse 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 informationTestingofScout Application. Ludwigsburg,
TestingofScout Application Ludwigsburg, 27.10.2014 The Tools approach The Testing Theory approach Unit testing White box testing Black box testing Integration testing Functional testing System testing
More informationChristopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011
All About Virgo Christopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011 OSGi Alliance Marketing 2008-2010 Page. 1 All Rights
More informationApache 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 informationService 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 informationTesting 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 informationEurope on a Disk Geodata Processing with Eclipse and OSGi. Harald Wellmann 10 Nov 2008
Europe on a Disk Geodata Processing with Eclipse and OSGi Harald Wellmann 10 Nov 2008 Overview Past and Present of Navigation Data Processing Anaconda: The Future Our usage of OSGi and Eclipse 2008 Harman
More information8. 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 informationApache 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 informationModularity 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 informationOSGi 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 informationCS486: 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 informationECF 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 informationFrom 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 informationSpring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich
Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available
More informationIBM 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 informationConstructor 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 informationFirst 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 informationUsing 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 informationJava Modularity Support in OSGi R4. Richard S. Hall ApacheCon (San Diego) December 14 th, 2005
Java Modularity Support in OSGi R4 Richard S. Hall ApacheCon (San Diego) December 14 th, 2005 Modularity What is it? What is Modularity? (Desirable) property of a system, such that individual components
More informationBreaking Apart the Monolith with Modularity and Microservices CON3127
Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice
More informationCopyright 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 informationOSGi Subsystems from theory to practice Glyn Normington. Eclipse Virgo Project Lead SpringSource/VMware
from theory to practice Glyn Normington Eclipse Virgo Project Lead SpringSource/VMware 1 Software rots 2 modularity helps 3 but... 4 A clean design 5 without enforcement 6 works fine for a while 7 then
More informationCO 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 informatione4 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 informationUnder the Paul Fremantle, CTO, WSO2
Under the Hood @WSO2 Paul Fremantle, CTO, WSO2 Paul Fremantle CTO and Co-Founder 10 years at IBM STSM in WebSphere Development Infoworld CTO 25 in 2008 VP, Apache Synapse Co-Chair, OASIS WSRX TC Why look
More informationRed Hat JBoss Fuse 6.1
Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications for OSGi containers Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications
More informationEclipse 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 informationModern 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 informationUsing 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 informationSCA 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 informationLesson 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 informationOSGi 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 informationJavaFX 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 informationESB, OSGi, and the Cloud
ESB, OSGi, and the Cloud Making it Rain with ServiceMix 4 Jeff Genender CTO Savoir Technologies Jeff Genender - Who is this Shmoe? Apache CXF JSR 316 - Java EE 6 Rules of Engagement Engage yourself! Agenda
More informationMigration 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 informationJava 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 informationEnterprise Development
Enterprise Development with What needs to be done to run JEE like applications inside Karaf? @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-author
More informationServices 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 information20. 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 informationLessons 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 informationSoftware 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 informationGlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE
YOUR LOGO HERE GlassFish V3 Jerome Dochez Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net Session ID 1 Goal of Your Talk What Your Audience Will Gain Learn how the GlassFish V3 groundbreaking
More informationTuscany: Applying OSGi modularity after the fact
Tuscany: Applying OSGi modularity after the fact Luciano Resende lresende@apache.org http://lresende.blogspot.com Raymond Feng rfeng@apache.org Agenda Introduction and Motivation Status of current Tools
More informationCQ 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 informationPapyrus 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 informationEclipse (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 informationGetting 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 informationRAP (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 informationExtensibility, 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 informationCS 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 informationOSGi & Spring combined
OSGi & Spring combined Using Spring together with Eclipse Equinox Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de Gerd Wütherich gerd@wuetherich.de http://www.wuetherich.de Martin Lippert lippert@acm.org
More informationMission 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 informationJSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity
JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity Richard S. Hall June 28 th, 2006 Agenda Modularity Modularity in Java Modularity in Java + OSGi technology Introduction to OSGi technology Apache
More informationECF 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 informationThe Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*
The Definitive Guide to NetBeans Platform 7 Heiko Bock Apress* Contents About the Author About the Translator About the Technical Reviewers Acknowledgments Introduction xiv xiv xv xvi xvii * Part 1: Basics
More informationRich 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 informationSemantic Versioning A Large Existing Codebase
Case Study Semantic Versioning A Large Existing Codebase EclipseCon 2014 Raymond Augé @rotty3000 #eclipsecon #semver Outline The Goal The Problem
More informationEMFT 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