Logging the efxclipse way private void processJPAResultList(List<Person> list) {// slf4j/log4j/efxclipse private void processJPAResultList(List<Person> list) {// slf4j/log4j/efxclipse for ( int i = 0; i < list.size(); i++ ) { for ( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); Person p = list.get(i); if ( logger.isEnabled(Level.DEBUG) ) { logger.debug("Processing " + p.getName() + " - " + p.getAddress().getStreet()); 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()); } }
Logging the efxclipse way private void processJPAResultList(List<Person> list) {// slf4j/log4j/efxclipse private void processJPAResultList(List<Person> list) {// slf4j/log4j/efxclipse for ( int i = 0; i < list.size(); i++ ) { for ( int i = 0; i < list.size(); i++ ) { Person p = list.get(i); Person p = list.get(i); if ( logger.isEnabled(Level.DEBUG) ) { logger.debug("Processing " + p.getName() + " - " + p.getAddress().getStreet()); 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 BAD IDEA 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()); } }
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()); } }
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)); } }
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()); } }
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(…) }
Servicelookup the efx way
Servicelookup the efx way e4 built-in - single value
Servicelookup the efx way e4 built-in - single value public class DiComponent { @Inject GreetService greetService; }
Servicelookup the efx way e4 built-in - single value public class DiComponent { @Inject GreetService greetService; } NO e4 built-in - multi value
Servicelookup the efx way e4 built-in - single value public class DiComponent { @Inject GreetService greetService; } NO e4 built-in - multi value public class DiComponent { @Inject List<GreetService> greetService; }
Servicelookup the efx way e4 built-in - single value public class DiComponent { public class DiComponent { @Inject @Inject @Service GreetService greetService; GreetService greetService; } } NO e4 built-in - multi value public class DiComponent { @Inject List<GreetService> greetService; }
Servicelookup the efx way e4 built-in - single value public class DiComponent { public class DiComponent { @Inject @Inject @Service GreetService greetService; GreetService greetService; } } NO e4 built-in - multi value public class DiComponent { public class DiComponent { @Inject @Inject @Service List<GreetService> greetService; List<GreetService> greetService; } }
Servicelookup the efx way
Servicelookup the efx way e4 static lookup single value
Servicelookup the efx way e4 static lookup single value public class Component { public void m(IEclipseContext c) { A g = c.get(A. class ); } }
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
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*/); } }
Servicelookup the efx way e4 static lookup single value import static o.e.f.c.ServiceUtils.*; public class Component { public class Component { public void m(IEclipseContext c) { public void m() { A g = c.get(A. class ); 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*/); } }
Servicelookup the efx way e4 static lookup single value import static o.e.f.c.ServiceUtils.*; public class Component { public class Component { public void m(IEclipseContext c) { public void m() { A g = c.get(A. class ); Optional<A> g = getService (A. class ); } } } } NO e4 static lookup multi value import static o.e.f.c.ServiceUtils.*; public class Component { public class Component { public void m(IEclipseContext c) { public void m() { List<A> s = List<A> g = c.get(/*NO EXPRESSION*/); getServiceList (A. class ); } } } }
Q: Dude. You showed IEclipseContext usage? Really?
IEclipseContext retrieving & publishing to information in e4
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 EclipseContext@2
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 my.Person: Person@1 MWindow: MWindowImpl@1 … EclipseContext@2
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 my.Person: Person@1 MWindow: MWindowImpl@1 … EclipseContext@2 MPart: MPartImpl@1 …
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 public class A { @Inject Person p; my.Person: Person@1 } MWindow: MWindowImpl@1 … EclipseContext@2 MPart: MPartImpl@1 …
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 public class A { @Inject Person p; my.Person: Person@1 } MWindow: MWindowImpl@1 … EclipseContext@2 public class B { @Inject MPart: MPartImpl@1 private IEclipseContext c; … public void m() { c.getParent().set(Person. class ,p); } }
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 public class A { @Inject Person p; my.Person: Person@1 } MWindow: MWindowImpl@1 … EclipseContext@2 public class B { @Inject MPart: MPartImpl@1 private IEclipseContext c; … public void m() { c.getParent().set(Person. class ,p); } }
IEclipseContext retrieving & publishing to information in e4 EclipseContext@1 public class A { @Inject Person p; my.Person: Person@1 } MWindow: MWindowImpl@1 … EclipseContext@2 public class B { @Inject MPart: MPartImpl@1 private IEclipseContext c; … public void m() { c.getParent().set(Person. class ,p); } }
IEclipseContext retrieving & publishing to information in efxclipse EclipseContext@1 public class A { @Inject Person p; my.Person: Person@1 } MWindow: MWindowImpl@1 … EclipseContext@2 public class B { @Inject MPart: MPartImpl@1 @ContextValue( "my.Person" ) … private Consumer<Person> c; public void m() { c.accept(p); } }
Q:So you have your JavaFX renderer is it production ready?
Success story ‣ forumSTAR (new) ‣ Expected development time: 5 years ‣ Number of users: > 100,000 ‣ Number of developers: > 100 ‣ Total volume: > 100 Million € Source: http://modernisierung.site/summary/
Q: Let’s talk about the future? What’s cooking?
e4 editor story There is NONE
e4 editor story
efxclipse-editor story
efxclipse-editor story Eclipse 4 Application Platform
efxclipse-editor story Eclipse 4 Application Platform Core-API (eg resource-abstraction, auto-complete,…)
efxclipse-editor story Eclipse 4 Application Platform Core-API Presentation API (eg resource-abstraction, auto-complete,…)
efxclipse-editor story Eclipse 4 Application Platform Core-API Presentation API (eg resource-abstraction, auto-complete,…) Core-EFS Core-NIO (use IProject, IFile,..) (use java.nio.file.Path, …)
efxclipse-editor story Eclipse 4 Application Platform Core-API Presentation API (eg resource-abstraction, auto-complete,…) Core-EFS Core-NIO JavaFX SWT* (use IProject, IFile,..) (use java.nio.file.Path, …) * does not exist
Q: Tom. Do I really need to use OSGi (and the Eclipse IDE) in future?
NO!
NO! (at least not for e4 on JavaFX)
Platform of the future
Platform of the future JVM
Platform of the future OSGi JVM
Platform of the future Eclipse 4 efx-core App Platform OSGi JVM
Platform of the future efx-platform Eclipse 4 efx-core App Platform OSGi JVM
Platform of the future efx-platform Eclipse 4 efx-core App Platform OSGi JVM
Platform of the future efx-platform Eclipse 4 efx-core App Platform JVM
Recommend
More recommend