Accepted Sessions

Keyword sentence with spaces needs to be in quotes. For example: "keyword 1","keyword 2"

A journey through Bndtools for PDE users

You may know the story: you develop OSGi applications with PDE and you are willing to give Bnd a try, but you can't find access to the different concepts they are using. The reasons to change, can be plenty and the hazards on the way as well. Here you will get a quick view in the world of Bnd with dos and don'ts and an idea on how to migrate your project.

Experience level: 
Intermediate

A New Eclipse Public License

The Eclipse Foundation will be publishing a new version of the Eclipse Public License in 2017. This talk will explore:

  • Why was a new version necessary ?
  • What are the significant differences between the original and new versions?
  • What are the new features of the license that may matter to my project?
  • How can I apply the EPLv2 to my existing EPL-licensed project?

 

Experience level: 
Beginner

A Team Contributing Full-time to Open Source Projects - A Primer on Making It Happen in Your Company

Yes, you know this happens in quite a few cases. Like in companies that open source and contribute a significant part of what they create for their own needs - think Google, Facebook, PayPal and the like. Like in companies with a primary focus on an open source product as Mozilla for example. Like in companies that make heavy use of a specific open source platform or tool - and decide to give back through contributing to its development. Or like in working on academic projects funded by public money where the outcome is open sourced. But...

Experience level: 
Intermediate

About Tycho, Maven, p2 and Target-Platforms: From Pain to Best Practice

This talk shares our experience about setting up Tycho and Maven. Using Tycho and Maven in your build infrastructure can be very beneficial, but first it needs to be set up. In fact, this is the real challenge. Unfortunately, there is no real state-of-the-art or best practice about how to use this technology. Particularly, only little documentation exists. Most likely this is a consequence of everyone’s individual project requirements and thus not allowing for the one ultimate answer.

Experience level: 
Beginner

Advanced Oomph Setup Authoring

Creating good Oomph Setups is not trivial, but from the existing setups in Oomph's default catalogue users can learn much about some advanced features of Oomph. In this session I will show several examples from available Oomph setups that can be used for the definition of own setups. Attendees will learn about multi-project setups, collecting useful workspace preferences, dynamic working sets, launching initial builds after project import, managing modular target platforms and other useful stuff.

Experience level: 
Intermediate

All about UX in Sirius

Your Sirius designer has the ability to leave a lasting impression on your end users, and every detail counts. In this presentation, you will see the new features to improve the user experience of your own Sirius-based designers.

This talk will start by reviewing how to improve Sirius diagrams with a consistent style guide to quickly communicate your intent to your users and tips and tricks to speed up common tasks.

Experience level: 
Intermediate

Avoid disorientation with Ferret, a powerful search tool for the Eclipse IDE

Software developers spend much of their time exploring the source code of their software systems, seeking to understand how it works and to assess the implications of making a change.  But many developers report occasionally becoming disoriented during this exploration, where they become "lost" and are unable to recall what they were doing and why they were looking at some program element. Becoming disoriented is frustrating, and recovering from disorientation is difficult.

Experience level: 
Beginner

Big-Data reactive streams and OSGi

One of the basic requirement to enable big-data analytics is a rational and effective approach to data ingestion. In long running projects the need arises to evolve the domain model and this potentially affects data quality. As a consequence, the concept of versioning is crucial to keep data centric systems consistent: the importance of service dynamicity and good modularity support in a sound data ingestion workflow implementation cannot be easily overestimated.

Experience level: 
Intermediate
Track: 

Blockchain, Ethereum and Business Applications

This session is geared towards an audience interested in blockchain technology that would like learn more with a hands-on approach.

First, some background on basic concepts as peer-to-peer networks, mining and distributed consens is provided. Then, smart contracts and the Solidity language are introduced and demonstrated using a local/private blockchain.

Experience level: 
Beginner

Bndtools and Maven: A brave new world

The Bndtools project is the foremost IDE for OSGi development, with a powerful workspace model and interactive debug sessions. Historically Bndtools has been opinionated (and restrictive) about how you build your workspace, but with the new releases of bnd and Bndtools 3.4.0 things have changed dramatically.

Using the new Maven plugins from the bnd project you can now get all the bnd goodness you know and love when using Maven, and when using Bndtools you still get incremental building and interactive debug! This talk will walk you through the new Maven plugins from bnd, and how to get the most out of your new favourite IDE.

Experience level: 
Beginner
Track: 

Building form-based UIs with EMF Forms - 101

EMF Forms is a framework for developing high-quality, form-based UIs quickly and easily. The forms support general data entry and modification, be it for business applications or development tools. EMF Forms dramatically reduces the effort of UI development while providing a rich feature set that can handle very complex use cases.
EMF Forms is already widely use by a large developer base in various application domains, but we do not want to overlook potential new developers!

Experience level: 
Beginner

CDI and OSGi: So happy together!

CDI is a cornerstone of JavaEE development. The OSGi Alliance's Enterprise Expert Group has undertaken to develop a specification for how CDI should interact with the OSGi framework and service registry. This talk will review the current progress of this specification and try to lightly demonstrate it's utility.

Experience level: 
Intermediate
Track: 

CDT: Where are we? Where do we go from here?

The IDE world is changing rapidly. There are some strong new IDEs that try to support C++, but as much as I like them for other languages and platforms, they just can't compete with CDT at working with native (real native) code. However, at the same time, we realize that our lead won't last forever and we have to consider where we need to go next to remain competative.

Experience level: 
Beginner

Complex Event Processing of An Electric Car In A Simple Way

In this talk we will present a unique dashboard for a prototype electric car that is used for displaying basic information such as motor functionalities, speed, charging visualization, as well as novel real-time data visualization for our embedded data stream processor with complex event processing capabilities.This dashboard is more than a graphical interface because of its strong back-end functionalities with the help of Eclipse plugins.

Experience level: 
Beginner
Track: 

Constructor injection and other new features for Declarative Services 1.4

Declarative Services is the best way to provide and consume OSGi services when writing bundles. The OSGi Alliance continues to improve this key specification with new features making it better and more simple to use. For the R7 release, Declarative Services (DS) 1.4 will add constructor injection to the existing method and field injection support. Component property types can now be used to annotate components to set component property values in a type-safe manner. Learn about these and other new features in DS 1.4 to see how OSGi services are easy to use!

Experience level: 
Beginner
Track: 

Create a programming language that the whole company can understand

This talk is about the solution that building a domain specific language (DSL) can bring. The problem that many companies are facing right now is not being able to communicate with their system efficiently.
Using the language workbench JetBrains MPS, you can create powerful DSLs. I will show how the development of a software product is done today and examples of DSLs improving the whole process. We will analyze the situations when building a DSL add value and when not.

Introduction:

Experience level: 
Beginner

Data Analytics with OSGi – Experience, Challenges, Solutions

Augmenting connectivity and device management with certain data analytics features helps you to bring your IoT projects to the next level. In principle, there are two major integration paths: (1) Get the data from the devices (i.e. the edges), transfer it to a backend, and run analytics jobs on top. (2) Run simple analytics jobs e.g. on the edges and transfer only the results to (device managing systems in) the backend. In the past months, we have explored these options by integrating some of the Bosch IoT Analytics functionalities with the ProSyst stack.

Experience level: 
Beginner
Track: 

Debug Java code like a Pro

Writing code only comes second when talking about the developer work. The main and first task is reading and debugging. For that purpose, the Eclipse Java development tools are wonderful. Its most powerful tools are often unknown though. This talk will help you unleash this power and help you debug your Java code like a pro. The talk will also cover the new debugging features coming with Eclipse 4.8 (code name Oxygen, released last June). So, even if you're an experienced Java programmer, you will learn some tips and tricks.

Experience level: 
Beginner
Track: 

Developing business web applications with form-based UIs

Many business applications are data-driven and require viewing and entering data in forms… countless forms. Unfortunately, writing HTML5-based web forms manually is still error-prone and tedious, even with the help of modern web application frameworks like Angular. A form may seem simple at first, but you usually need to add live validation and error markers, rule-based visibility, input restrictions, and the like. As you can imagine, it quickly gets out of hand. Finally, when you have many of these forms the code becomes unmaintainable.

Experience level: 
Beginner

Developing e4 application with e(fx)clipse

In this tutorial we'll use components provided by e(fx)clipse to develop an e4 application on top of JavaFX.

Things you'll learn in the tutorial:

  • Get started with with Eclipse 4 on JavaFX
  • What's the difference between Eclipse 4 on SWT and Eclipse 4 on JavaFX
  • Use advanced features like Animation, Real and Fullblown Theming support and much more

But this tutorial is not just for those who want to learn about Eclipse 4 on JavaFX because we'll tackle things generally import to develop professional e4 applications:

Experience level: 
Intermediate

Do Architects Need Soft Skills?

At a certain stage of your technical career journey you usually reach a crossroad with two main options ahead. One leads to engaging more and more with team leadership and project management responsibilities. The other option is the path to the architect's role - and it is broadly regarded as the "pure" technical way forward. I've seen that IT professionals choosing the second path very often underestimate the fact that the Architect role differs a lot from all other technical implementation roles.

Experience level: 
Beginner

Docker Container Build/Run/Debug Support for C/C++ Projects

This talk will discuss the new plug-in support being added to the CDT project to build C/C++ projects in Docker Containers for Linux, MacOS, and Windows.  After building, the user can run the executables in a Docker Container just as if they were built locally.  The new support is completely optional and allows building existing CDT projects either locally or in one or more Docker Containers.  C/C++ indexing of the source code is supported using the Docker Container header files where appropriate.

Experience level: 
Intermediate

Dockerized Java based micro-services on resource-constrained devices: the performance perspective

There is a current trend in the IoT domain to redefine the role of the IoT Gateway - once a simple communication relay with some application specific processing - into a generic purpose edge device supporting diverse device protocols, multiple applications, a variety of cloud connections, and sometimes even multi-tenant situations. In fact, recent low-cost hardware based on multi-core ARM and Intel SoCs (such as the Raspberry Pi 3, the Odroid-C2, or the UP board) seems to have the required capabilities.

Experience level: 
Intermediate
Track: 

Document Generation with M2Doc

Not everyone uses modeling tools and the awesome work one can do with these tools must be conveyed to the outside world, for instance, in the form of documents.

The M2Doc technology enables the generation of Office Open XML documents from Ecore models and Sirius representations.

Experience level: 
Beginner

DSL Editors Support in Eclipse Dirigible

Deploying Domain-Specific Language (DSL) editors on Cloud IDEs opens up new possibilities to make development experience easier and more productive thanks to the abstraction of low-level technical details and the automation of repetitive and error-prone tasks. In this talk, we will demonstrate how easy to integrate DSL editors to Dirigible Web IDE using DSL Forge, a framework for building web-based editors based on ANTLR and Xtext.

Experience level: 
Beginner

Easier Smart Home development with simulators and rule engines

IoT and Smart Home are hot topics today, and their popularity has spawned a lot of nice frameworks for developing applications, such as Eclipse Smart Home. However, real smart homes tend to be complex systems that pose hardware-software and systems integration challenges, which can provide a lot of headache to software developers lacking significant hardware experience.

Experience level: 
Beginner
Track: 

Eclipse and Java™ 9

Last year I showed where we, i.e. JDT, are with Java™ 9. This was well received and got a lot of positive feedback . We added many features since then and Java™ 9 is supposed to go GA on September 21.This session will present the most important new stuff in Java™ 9, especially project Jigsaw, which introduces modules into Java™. I will show how to get started developing Java™ 9 code with Eclipse and demo the new features that are provided by the upcoming Eclipse release for Java™ 9.

Experience level: 
Beginner
Track: 

Eclipse Charting Capabilities

What is more comprehensible: a table with tons of values or a chart? The answer depends on the point of view. The computer better "understands" the table. But we humans are very good when it comes to image recognition. Personally, I prefer the image too. Next question: Is a lightweight charting library available in the Eclipse ecosystem? Sure, solutions exist like Eclipse BIRT or the Eclipse Nebula visualization widgets.

Experience level: 
Intermediate

Eclipse MicroProfile Config and OSGi Config Admin

Eclipse MicroProfile Config defines a Java programming model for microservices. It offers the capability of configuring microservices without repacking the microservices; microservices reacting differently based on the deployment environment; dynamic configuration feeding into the microservices without restarting the microservices. OSGi Config Admin exists for many years and offers an efficient configuration model to OSGi applications. MicroPorfile Config can work well in OSGi applications. It doesn't contradict but instead compliments Config Admin.

Experience level: 
Beginner
Track: 

Eclipse RCP with bndtools

This talk is for Eclipse RCP developers who want to learn the OSGi way of developing bundles.

If you are tired of setting targets and debugging PDE or target issues ;-) come and have a look at the alternative - bndtools.

Bndtools offers a great alternative with powerful concepts and opportunities.

We explain how to start developing a Eclipse 4.x application from scratch inside bndtools.
You see how you can deal with your dependencies in target setups on p2, file or maven based repositories.

Experience level: 
Beginner
Track: 

Eclipse Scout in a Nutshell

Eclipse Scout is an open source framwork to build business applications that is hosted at the Eclipse Foundation. This introductionary session is intended for participants that are not yet familiar with the framework. The goal of this talk is to provide an overview of Scout's current state, optimal use cases and limitations of the framework.

The talk covers the following aspects

Experience level: 
Intermediate

Eclipse sensiNact: open platform for smarter cities - applications in European and Japanese cities

This presentation will give an overview about the Eclipse sensiNact platform and present how it has been used in development of smart city applications in several collaborative projects involving in particular European and Japanese cities, such as Santander, Genova, Grenoble, Fujisawa, Mitaka and Tsukuba. Particular focus will be given to outcomes from two ongoing projects: BigClouT (http://bigclout.eu) and FESTIVAL (http://www.festival-project.eu/).

 

Experience level: 
Beginner
Track: 

Eclipse TEA

Eclipse TEA is a new Eclipse project, just recently approved and incubated. This talk gives a quick overview of what it is all about, and what to expect in the next few months from the project, as well as hands on demo-ing the strengths with real life examples.

Eclipse TEA is a project that has been developed for the past years at SSI Schaefer in Austria. It has been open sourced now as a result of discussions with the community after presenting what we are doing with this technology at the past EclipseCons.

Experience level: 
Intermediate

Eclipse Xpect: Easy Specification, Review, and Testing of Xtext Languages

In this talk I give an introduction to a new Project at Eclipse (1):  Xpect, a framework that allows to embed test expectations into comments inside your Xtext language. The approach is non-intrusive to your code, integrates with JUnit and has a smart editor for the Xpect-specific syntax.

Since Xpect separates DSL-Documents from Java-Test implementations, it becomes incredibly easy to add real-world code snippets to your test suite. You even can use your languages’s Xtext-Editor to edit your test cases.

Experience level: 
Beginner

Embracing JUnit 5 with Eclipse

Writing good tests is as important as writing good code for mastering high-quality software development. The JUnit framework is one of the most valuable skills a developer can learn to achieve that. JUnit 4.0 was first released over a decade ago after the introduction of annotations in Java 5. The world of Java and testing has evolved a lot since then. To take advantage of the new features like lambda expressions in Java 8 and to support the advanced testing needs, JUnit 5 is emerging as the next generation test framework and is expected to be released during Q3 2017.

Experience level: 
Beginner
Track: 

Ethics in Software

Software is impacting every area of our lives, and will be even more omnipresent in the future. We have seen during the last few years on many occasions how a small glitch can have unprecendented consequences, from data leaks to people being harmed. As software developers and members of a community, we have responsibilities towards our users, our fellow developers, and the world. In this talk we will consider the ethical implications of software development and production, why it is important, and how we can do it better for the world and for ourselves while still being pragmatic.

Experience level: 
Intermediate

Formatting for the Masses

Code formatting is an opinionated beast. It always has been a matter of taste, and it always will be a matter of taste. This is the reason, why professional formatting tools, such as Eclipse JDT, offer a gazillion number of options. Which is still not sufficient enough. After all, you can override them inline with tag-comments to make the formatter shut up. Can't we do better than that? What if we could use machine learning techniques to detect the preferred code style that was use in a codebase so far? Turns out, we can.

Experience level: 
Beginner

From a lot of Boxes to a lot of Words - Migrating to Xtext

We at Fiducia & GAD IT AG have been using Code Generation as a tool to develop our Banking Software "agree BAP" for about 15 years. As the codebase grew up to about 80 Mio. LOC the modeling tools that were used changed over time: from proprietary XML-based formats to UML models with MID Innovator and IBM RSA. On top of that, in-house developed Xtext DSLs are used for several purposes.

Experience level: 
Intermediate

From logging to monitoring to reactive insights

In a highly distributed world it is crucial to have the best possible insights into your application.
In the old days we achieved this using plain logging and jmx. This does not scale well to highly distributed processing like in microservices though.

Experience level: 
Intermediate
Track: 

Functional Testing with RedDeer

The Eclipse RedDeer project is an extensible framework used for development of automated SWT/Eclipse tests which interacts with application’s user interface.  It is completely written in Java language and uses a purely programmatic approach like SWTBot. The RedDeer project has been developed for 5 years and in recent years it is used as a main testing framework for testing Red Hat JBoss Developer Studio.

Experience level: 
Beginner

GEF 5.0.0 - From a User's Perspective

Since the first graduation of the next generation code base (a.k.a. GEF4) in June 2016, we have worked intensively on making GEF even more robust and concise. And we have added some nice end-user features that make GEF applications fun to use. In this talk I will give an overview from an end-users perspective, especially pointing out what has been added during the 5.0.0 (Oxygen) release timeframe. I will also give a short outlook about our plans for Eclipse Photon.

Experience level: 
Beginner

How deep is your learning?

Nowadays, most recent advances in artificial intelligence are powered by neural networks, also coined "deep learning". But what exactly is a neural network, how does it work, and where can you use it for? We will give you the answers in this talk, and demo a number of examples using DIANNE, a deep learning framework built on OSGi. We will cover a number of key use cases where neural networks really shine, such as image classification, text generation and reinforcement learning.

Experience level: 
Beginner

How to make your Eclipse application HiDPI ready!

In today’s world, HiDPI monitors are becoming increasingly popular and they are here to stay. With more and more users moving to higher resolution displays, it’s important to ensure that your application renders nicely on these displays. Eclipse provides the required support to make your application ready for the HiDPI displays.

Experience level: 
Beginner

How to provide a portable developer workspace with Eclipse Che?

Developers are facing big changes in the way they are working since the raise of Docker. It’s terribly trendy and popular. Containers are heavily used to build, ship and run softwares.But what are the biggest impacts and values for the Developers?

Developers can benefit from portable developer environments leveraging the Docker containers technologies. It’s the main purpose of Eclipse Che. During this session we will discuss the various changes containers have provided to the developers, why dockerizing your projects and what are the best tactics to achieve that with Eclipse Che?

Experience level: 
Beginner

Implementing Language Servers - the Good, the Bad, the Ugly

This talk summarizes our experiences from building language servers and integrating and using them across Eclipse, VS Code, and Atom. We talk about the good parts, e.g.:

  • building lightweight tooling
  • the freedom of starting fresh
  • building the tooling once and reusing it across various environments
  • isolated testing

The bad parts, e.g.:

  • no communication among language servers
  • do the work twice or more, ship libraries twice or more

And the really ugly parts, e.g.:

Experience level: 
Intermediate

Introduction to expression languages in Xtext

Embedding support for expressions into Xtext based languages has become easy when Xbase is chosen as base language. However, deriving a language from Xbase implies the usage of a Java based type system with dependencies on JDT. For language implementations that need to be independent from Java or that should have a different type system it is required to embed an own expression language.

Experience level: 
Intermediate

Introduction to Yasson

Eclipse Yasson is a Json Binding framework, reference implementation of new Json Binding API in Java EE 8. This session provides a deep dive into Yasson, JSON-B and JSON-P APIs, explains how they are connected and can be used together and compare it similar features of other popular frameworks. Hereby I will demonstrate how Yasson can be used for simple use cases as well as its more advanced features such as customized mapping, adapters and serializers.

Experience level: 
Intermediate

Java Code Coverage Mechanics

Internals of Java Virtual Machine based on challenges and experience in implementation of one of the most popular code coverage tools for Java - JaCoCo ( http://www.jacoco.org/jacoco/index.html ) that is backbone of award-winning Eclipse EclEmma Plugin ( https://www.eclipse.org/eclemma ).

In this presentation we will dive into bosom of JVM (bytecode, restrictions, classloaders) answering on following questions:

Experience level: 
Advanced
Track: 

Java SE 9 and the Application Server

Java SE 9 is just around the corner with it's major feature of modularity, also known as Jigsaw. If you listen to Oracle, you would think that moving to this totally different JDK and JRE is as simple as writing your first "Hello World!" program. Depending on your application's needs, it may turn out to be this straight-forward. But, as we continue to experiment with this new Java SE 9 paradigm, we are discovering several hiccups, hurdles, and surprises.

Experience level: 
Beginner
Track: 

Java SE: Current Status

The core underlying technology driving most of the Eclipse Ecosystem is Java SE.  Yet Java SE is often misunderstood, even by the most savy and experienced of developers.  This talk will start by disambiguating the various JVM, JRE and JDK implementations available, and outline how OpenJDK plays a key part in Java SE evolution.  We'll review some common packaging, technical and licensing FAQs for the various builds available. Finally, we'll overview the history and evolution that got us to where we are now -- Java SE: Current Status. 

Experience level: 
Intermediate
Track: 

JDT embraces Java™ 9 - An insiders' view

The JDT team is dedicated to delivering full support for Java™ 9 right when the new version is released, just as we did for every version. In this session we will share some of the things we learned while working from an evolving specification. We will also discuss the impact of this new version specifically on tool-smithing for Java.

Topics include:

Experience level: 
Advanced
Track: 

Jigsaw: What the Heck Happens Now?

By the time you see this talk, Java 9 should have been released with its flagship feature: the Java Platform Module System (JPMS), also known as Jigsaw.

It goes without saying that Jigsaw will have a big impact on the entire Java ecosystem, and particularly on OSGi developers who have an 18 year head start on modularising Java applications. However, while OSGi and Jigsaw ostensibly solve similar problems, they do so in very different ways. In this talk I will address questions such as...

Experience level: 
Beginner
Track: 

Journey from project proposal to inclusion into Eclipse Oxygen Packages in one year

How to contribute to existing Eclipse project? How do I move my project to the Eclipse Foundation? Why? What do I do after the move? What is Simultaneous Release and how to join release train? etc... Even being a mature open-source contributor / developer / project lead , you might feel like a newbie, lost and scared. I know how it feels. But you should not be scared! Existing members of Eclipse Foundation are here to help you. On the example of Eclipse EclEmma project, let's have a look on a journey from project proposal to inclusion into Eclipse Oxygen Packages.

Experience level: 
Beginner

Language Edition Support in Eclipse IDE with best of breed: Generic Editor, Language Servers and TextMate

The Oxygen release train has introduced new approaches to more efficiently support editing of textual languages in the Eclipse IDE: a Generic and Extensible Text Editor was introduced in Platform to minimize boilerplate, Language Server Protocol for Eclipse (LSP4E) which allows to quickly hook into the IDE the power of Language Servers and TextMate for Eclipse (TM4E) allows to as easily delegate the syntax highlighting in the IDE to a TextMate grammar.

Experience level: 
Intermediate

Large Scale Model Transformations with Xtend

In several projects, we have been building automotive toolchains based on EMF models and model transformations with Xtend. In this talk, we will introduce our "lessons learned" from projects, in which we integrate automotive engineering data from different sources (relational databases, specific configuration files, EMF) into a consolidated model for product lines of electronic control units (ECUs) for cars and then transforming it to AUTOSAR. These models easily exceed a size of 1mio elements.

Topics include:

Experience level: 
Beginner

Lesson learned from using Eclipse and EMF for building desktop & web Applications

As a company, we’ve been working on Eclipse Technologies for the past 10 years and we have built a lot of application on top of them.  We recently faced a big challenge by migrating one of our biggest application from Client-Server to a Web architecture.  We developed this app by adopting some EMF technologies (such as EMF Edit, Parsley, CDO, etc..) and some good practices like Inversion of Control (with Google Guice) and MVP pattern. And we were really surprised how easily we realized this porting, since we replaced both UI and persistence layers in a matter of a few days.

Experience level: 
Intermediate

Leveraging Open Source Projects for Open Source Management

Correct handling of Open Source in a commercial context is a challenge. Every company needs to build up and maintain their own IP process to face this challenge. A sophisticated tooling seems to be inevitable. While managing Open Source every day it seems reasonable to also collaborate with the Open Source Community on the Open Source Management System itself.

Experience level: 
Beginner

Leveraging the latest OSGi R7 Specifications

Whether you're building large enterprise applications or writing code for IoT devices, the new R7 release has a lot to offer for you. Learn in this session about the various new and updated specifications and how they will make your developer life easier. Starting with new features in Declarative Services for component development, dealing with configurations, using JAX-RS with OSGi and finishing with useful libraries for object conversion and event streaming, this session is packed with information for OSGi development.

Experience level: 
Intermediate
Track: 

Location Matters: How to make sense of your Big Data.

Most data have a location component that, once enabled, opens previously unseen avenues of analysis and understanding. This is especially relevant for Big Data management purposes.
Looking at data from a geographical perspective often suggests new insights and explanations often unrecognized without a spatial eye, but vital to understanding and managing activities and resources: to see the unseen.

Experience level: 
Intermediate

MicroProfile, Java EE, and the Application Server -- Oh My!

The MicroProfile community and project was created to complement Java EE and the application server. This session will touch on the brief history of MicroProfile and how it is helping to define the next generation of Enterprise Java applications focused on the microservices architecture. We will explore the programming models defined by the first releases of MicroProfile and how they work with existing Java EE features. Finally, I will offer insights on several application server projects that are actively developing and supporting the MicroProfile initiative.

Experience level: 
Beginner

Microservices with OSGi

OSGi declarative services exist for a long time and are used to implement a modular service-oriented architecture. Because of the supported dynamics, the easy way to define, register and consume services, declarative services can be found in various scenarios. Using several of the long time existing specifications like Declarative Service, ConfigurationAdmin, EventAdmin and Remote Service Admin, it is also easy to setup the currently hyped micro services by using OSGi declarative services.

Experience level: 
Intermediate
Track: 

Modeling Symposium

The modeling community is among the most active and diverse in Eclipse's ecosystem. The modeling symposium aims to provide a forum for community members to present a brief overview of their work. We will encourage 10-minute lightning talks to facilitate a broad range of speakers. The primary goal is to introduce new and interesting technology features. We will open up an informal call for submissions from the community. Depending on the number, we will select submissions that will create a diverse slate of talks.

Experience level: 
Beginner

Modeling the OSGi way

In an ideal world, business code would be decoupled from implementation details. It would be domain driven and self-contained; it would live in a single location, and that would make it easier to maintain.

Experience level: 
Intermediate
Track: 

Mutate and Test your Tests

DevOps puts a huge emphasis on test quality: while it promises to drastically reduce delivery cycles, hasty deployment entails the hazard of propagating a regression bug into production due to lack of sufficient testing. Statement coverage is the most popular metric to determine the adequacy of a test suite. Yet, this metric is known to be a poor indicator of a test suite's capacity to detect bugs.

Experience level: 
Intermediate

Null type annotations in practice

We’ve been successfully using annotation based null analysis for more than 5 years on a code base that is now more than 15 years old. In this talk I’d like to share our experiences and give some details on how we use them in practice.

Experience level: 
Beginner
Track: 

On the road: UI Test automation with Jubula in practice for a BMW map update service

This session shows how UI test automation can work in practice using a tool based on Eclipse. The speaker presents a practical implementation of UI test automation with the Saas-platform TestChameleon™ by Testbirds and the Eclipse component Jubula by Bredex. Jubula is a tool for automated functional GUI tests for various types of applications. TestChameleon™ is a Cloud based Saas-platform that offers testing with emulators and in virtualized environments to cover a multitude of device types, browser and OS versions.

Experience level: 
Beginner

Origins of @EclipseJavaIDE and developer-oriented marketing

The https://twitter.com/EclipseJavaIDE account has become a source of daily tips on the Eclipse IDE used by thousands of developers every day. Every month we get between 300'000-350'000 impressions through Twitter alone. That's progress from our days with 4 followers some months ago and shows this was missing.

Sopot Cela is the one taking care of its strategy and will take us into a journey of how it came to be, how it is managed every day and what its plans are.

Experience level: 
Beginner

OSGi and EEBus: Use cases for electric vehicle charging stations, heating systems and home appliances

This talk will introduce some use cases of real world solutions that Bosch Software Innovations customers have implemented for electric vehicle charging stations,heating systems and home appliances using OSGi and EEBus.

EEBus is a German initiative that aims to standardize a global language for devices communicating with each other about energy. Bosch Software Innovations implemented the EEBus SHIP and SPINE specifications for its OSGi based ProSyst Gateway Stack.

The talk will conclude with a review of the benefits that are achieved with a joint OSGi and EEBus solution.

Experience level: 
Beginner
Track: 

OSGi meets Lambdas

Functional programming has arrived in Java language and it has plans to stay. In this talk I will introduce Apache Aries Component DSL, a proof of concept functional library that aims to ease the way in which we can interact with OSGi in a composable and safe way.

Experience level: 
Intermediate
Track: 

OSGi R7 – microservices never looked simpler.

REST microservices are a powerful tool for composing large-scale systems, and now, with the new features of OSGi R7, it has never been simpler to create a modular microservice. Combining the new features in Declarative Services, the JAX-RS Whiteboard, Transaction Control and PushStreams we can create a simple, transactional, persistent, streaming microservice with a minimum of code and a maximum of function.

This talk will use practical code examples to show how new OSGi R7 features can save you time and effort when building microservices, letting you focus on business logic, not boilerplate.

Experience level: 
Beginner
Track: 

OSGi to boost open innovation for smarter cities

Smart cities need open platforms and tools to help their local ecosystem to exploit available data from various sources such as IoT devices, legacy devices, social networks, mobile applications, etc. and build innovative applications improving the quality of life and security of their citizens.

OSGi, with its modular and service-oriented approach, is an excellent opportunity to boost open innovation for tomorrow's smart cities.

Experience level: 
Beginner
Track: 

Pipelining quality - best practices, lessons learned and tools for continuous delivery processes

In this talk Markus will share hands-on project experience for building and maintaining CI processes applicable in small and large enterprises projects.

After a short introduction to the project context Markus will focus on best practices, lessons learned and tools used within automated deployment chains based on state-of-the-art Jenkins pipelines.

Experience level: 
Intermediate

Pluggable Typesystems for Java

Are you tired of null pointer exceptions, unwanted side effects, SQL injections, broken regular expressions, concurrency errors, mistaken equality tests, and other runtime errors that appear during testing or in the field? Do you wonder why every production code base needs its own implementation of money and currency types, physical units, or string processing? Aren’t all these simply indicators for missing features in Java’s typesystem? Turns out they are. And even better: Annotation processing to the rescue - there is a standardized way to fix it!

Experience level: 
Beginner
Track: 

Productive debugging with Eclipse Photon

Writing good code is the most important task of software development and this does not complete without debugging and fixing bugs. The Eclipse Java IDE provides many debugging tools and views for users to debug effectively and efficiently. Eclipse users spend a lot of time in debugging code and every new debugging feature in Eclipse helps the users to be productive in fixing bugs. Debugging in Eclipse Platform and JDT is continuously evolving to provide tooling which can help users debug complex scenarios and spend less time in routine tasks.

Experience level: 
Beginner
Track: 

Pull Request, Mattermost and Bugzilla connectors, Tracker Query Language - the latest Tuleap big features

In the latest versions, Tuleap confirms its ALM strategy: providing tooling for all the software teams members: for developers, here are Git Pull Requests, for Project Leads, the Advanced Tracker Query Language, for Agile people, Mattermost Scrum reports.
This talk will explain you how to use these valuable features now available on the tuleap.eclipse.org platform put at all Eclipse projects' disposal.

Experience level: 
Intermediate

Reactive OSGi meets Reactive Java – Don’t cross the streams?

Data collection, filtering and processing is a growing concern for all sorts of applications. A variety of different libraries have been created, all looking to solve the same sorts of problems. The OSGi Alliance has defined the PushStream with a simple streaming API, but Reactive Streams and Java 9’s Flow API use a the Observable model. Which is better? Do I have to use OSGi if I choose Push Streams? Do I have to choose one library or can I use both?

This talk will describe the basic design differences between Push Streams and Observable streams,  showing side-by-side examples using both APIs. It will also show how one stream type can be converted into the other, and back meaning that you can always choose the appropriate tool for the job.

Experience level: 
Beginner
Track: 

Reactive streams and components on OSGi

Reactive frameworks allow to implement non blocking asynchronous processing in a convenient way. This talk explores how to apply reactive patterns to typical use cases on OSGi like REST services, MQTT Message processing, computations over sliding windows.

We combine messaging and reactor.io streams like also used in Spring 5 to create services that are highly scalable while not tying the user to the technologies being used.

Experience level: 
Intermediate
Track: 

Real Steel - Using GEF in an Industrial Application

In this talk we will demonstrate how ThyssenKrupp Steel’s Manufacturing Execution System, which targets the production planning and control of steel plants, incorporates GEF-based views in its Eclipse-based development environment. We will start with a short introduction to the application domain, then demonstrate the relevant parts of the development environment’s user interface, focussing on the diagrammatic views that integrate automatic layout, image export, as well as JSON-based persistence.

Experience level: 
Beginner

Run OSGi on your robot and teach it new tricks

Recent and upcoming OSGi specifications such as Promises and PushStreams provide great tools for asynchronous programming in Java. This is particulary useful for programming robots, where issuing a command is inherintly aync from observing the effect. In this talk we will present an asynchronous OSGi service for controlling a Kuka robot. Moreover, OSGi modularity allows us to easily integrate our robot with other systems.

Experience level: 
Intermediate
Track: 

Running Theia in Eclipse Che

Theia is a new open-source project providing a foundation for implementing integrated development environments (IDEs) not only for software developers but all kind of engineers. Based around a flexible layout engine and by leveraging industry standards such as the “Language Server Protocol” clients shall be able to design rich software tools for engineers that run both as a desktop app and in the browser connected to a remote backend (e.g. in Eclipse Che using containers).

Experience level: 
Beginner

Scaling out Eclipse Hono

Device connectivity is one of the most common issues IoT developers need to solve. Having an open source solution based on the standardized protocols that solves recurring connectivity problems is a very useful tool to have. Meet Eclipse Hono, a cloud-based IoT connectivity platform which provides remote interfaces for device connectivity and mechanisms for uniform interaction with devices regardless of the communication protocol.

Experience level: 
Intermediate
Track: 

Scaling up development of a modular code base

OSGi offers developers excellent tools for creating modular applications. We have come to have a good understanding of the runtime impact of modularity, but less have been spoken of the impact of modularity on the development process.

This talk will discuss the details of moving a large OSGi project from a single monolithic codebase to multiple repositories in terms of the development process. We will present the impact of modularisation on source control, continuous integration, code reviews, IDEs and public discussion on chat/email.

Experience level: 
Beginner
Track: 

Science @ Eclipse

This talk gives an overview of the activities and projects of the Eclipse Science Working Group. The Science Working Group is now three years old and this talk gives a summary of the internation group's efforts to build scientific software at scale together.

This talk describes some of the key projects in these areas. In particular we look at the common data structures project Eclipse January, the 'numpy for Java'. We go into why there is a need for scientific computing in Java, how this project works and how to get involved.

Experience level: 
Beginner

Service Blueprint and Deployment for an IoT Cloud Integration Platform

Eclipse Kapua is modular micro service-based IoT cloud platform that provides management for Internet of Things (IoT) gateways and smart edge devices. Kapua bridges the gap between Operation Technology with Information Technology, between the complex and fragmented world of the IoT devices with the enterprise IT infrastructure. This session introduces the Eclipse Kapua project focusing on its architecture, service model and blueprint, modularity, and deployment options.

Experience level: 
Intermediate
Track: 

Seven Recipes for CDO

With CDO you can turn any file-based single-user model application into a repository-based multi-user application by changing just a few lines of bootstrap code. In order to get the best performance out of your system and to avoid some common misconceptions that are inherent to multi-user scenarios you should not miss this talk. You'll be guided through the seven most important CDO recipes.

Experience level: 
Intermediate

Simulating Autonomous Vehicles and Future Mobility Concepts in Urban Areas

SUMO (Simulation of Urban Mobility) is a microscopic traffic simulator. It has been developed by the German Aerospace Center since 2003 and published as Open Source (see http://sumo.dlr.de). In this talk, SUMO and its capabilities for the realistic simulation of cars, busses, bikes, pedestrians, trains and even ships in cities, such as Berlin, are presented in an overview. A short and hands-on tutorial for the live creation of a simulation scenario is provided.

Experience level: 
Beginner

Smart IoT on OSGi with Apache OpenWhisk

IoT solutions are becoming more and more common in the market and new devices and gadgets are showing up on a daily basis. Additionally, the networks and protocols used by the devices can be highly specialized for use cases such as minimal energy consumption or for long range connectivity. If you want your IoT system to be future proof while being able to take advantage of new technologies without having to change your system every time, then the OSGi Device Abstraction Layer can help. It provides IoT APIs independent of the underlying technology.

Experience level: 
Beginner
Track: 

Software is made out of people

There are many technical aspects to keep in mind when developing and testing software: Functional correctness of the features, technical excellence of the code, robustness, performance, maintainability, ...
However there's also the "people" aspect of software development: People use the software and people create it as well.
In this talk I'll show why empathy is an important skill for testers to deal with both kinds of people.
In the first part of the talk you'll learn why usability matters and how personas can help to build features that match your users needs.

Experience level: 
Beginner

Standard Open Source Cloud APIs for the Smart Home

T-Labs and Orange Labs are showcasing with some of their respective partners a community prototype around standard cloud APIs. In the Smart Home domain, the oneM2M standard restful interfaces are emerging as a unique service layer API standard at the cloud level backed by a worldwide organization and open source communities. Showcased partner applications use standard APIs implemented by Deutsche Telekom and Orange. T-Labs and Orange Labs have implemented identical oneM2M cloud interfaces on their respective platform prototype. Each of the two implementations integrates part of their respective industrial product – Qivicon, Orange Datavenue - and part of Eclipse OM2M open source artefacts.

Experience level: 
Beginner
Track: 

Test as you run - production like integration tests with Docker

Executing automated tests of every reasonable scope as a fixed step of every build job is mandatory. Some testworthy situations can’t be simulated with a mocked environment. Therefore integration tests have to be part of the buildstep as well. In this talk I will demonstrate how to use Docker and Gradle to integrate integration tests and the necessary setups into the build process and how to use this setups for debugging and publishing of buildresults.

Experience level: 
Intermediate

Testing Eclipse plug-ins: Tips & Tricks

In this talk we want to share some tips and tricks on how to test Eclipse plug-ins at several stages during the development. In particular, we will show how to do without a running workbench (i.e., without “Plug-in tests”) and without functional testing frameworks (e.g., SWTBot) as much as possible, relying only on plain JUnit tests.

Experience level: 
Intermediate

The Importance of Open Source Tooling for ADAS and Automated Driving (sponsored by Renesas)

Presentation will cover: • Overview of why Eclipse and Open Source tools makes sense for Renesas for ADAS In particular we will explain: • Using CDT to build open source tooling for ADAS • Using GDB and CDT to provide heterogeneous multicore debugging using Eclipse • Using Trace Compass to build advanced tracing tools for ADAS • Using TCF and CDT for Linux application debugging ADAS and Automated Drive applications need the high-end computing power of the SoCs to analyse the car’s surroundings and for cognitive computing processing.

Experience level: 
Beginner

The Monitoring aspects of Eclipse MicroProfile

Eclipse MicroProfile (MP) aims at bringing Microservices to Enterprise Java by developing common standards that MP-compliant vendors then implement. The more classical specifications have often left out many details as vendor-specific - especially in the area of set up and running of the applications and servers. MicroProfile has decided that aspects of running the applications like telemetry and health checks should not be vendor specific but be part of the base specifications.

Experience level: 
Intermediate

The Open IoT Stack: Architecture and Use Cases

Whether you are developing smart products, enabling new connected services, or instrumenting factory production lines you face the challenges of designing, building, and deploying an IoT solution. This session will first summarize the leading reference architectures and blue prints for Industrial IoT and then, it will map those architectural components onto the activities of the Eclipse IoT community.

Experience level: 
Intermediate
Track: 

Ticket to Ride - Bus Fleet Operated and Managed with OSGi

This talk will explain how OSGi is used in a large bus fleet
system. Every bus has one or more on-board computers running an
embedded OSGi platform (Knopflerfish) performing services such as
ticketing, driver console, and passenger information. The system is
remotely managed by Makewave's Ubicore system, responsible for
provisioning new or updated services to the embedded OSGi
platforms. The talk will present an overview of the overall software
architecture, some of the challenges we faced and the benefits gained
by using OSGi.

Experience level: 
Beginner
Track: 

Tools and Methodology of Continuous Testing (with a focus on subcontracting contexts)

As a leader in the field of software qualification, we are facing new challenges in controlling the quality of software projects whose development is being externalized. More and more often, large business-critical and organization-specific projects are being developed and maintained by contractors. In the worst-case scenario, organizations are left with few means of controlling the quality:

• of the tests being made and of the quality process as a whole,
• of the software under construction itself.

Experience level: 
Beginner

UI test automation using the Jubula API: the why, the how and the what

Join Markus and Alex in this tutorial to learn how to use the Jubula Client API to write good UI test cases for your application. UI tests aren’t often a favourite pastime for developers, but they do provide useful feedback from the user perspective: they let us know whether the desired workflows are possible via the UI. They are a great addition to other test levels for a well-designed test strategy.

Experience level: 
Beginner

Update Remotely Embedded Devices using Eclipse hawkBit and SWUpdate.

Connecting embedded devices to the Internet is not trivial. But an even harder-to-solve problem follows, once the devices are deployed.
The issue is how to manage remotely updating IoT devices with solid tools to minimize deployment failures.
Updating remotely an IoT device condenses solid knowledge of server-side applications, DevOps and expertise with different embedded operating systems: it requires knowledge of a full IoT pipeline from embedded devices to back end applications.

Experience level: 
Intermediate
Track: 

Urban Technology Alliance: Working Group for promoting Eclipse tools and platforms for the service of smarter cities

This talk will introduce the Urban Technology Alliance which is under construction as a new Working Group within the Eclipse Foundation. It is a global initiative including partners from Europe, Japan and Korea.

Even if each city has its own specific concerns and needs, many of their current economic, social and environmental challenges are related, thus should be addressed globally. This is particularly important to mutualize resources in order to cooperate and exchange lessons learnt and best experiences among different stakeholders and ecosystems.

Experience level: 
Beginner

Web-based Modeling Tools

Slowly but steadily, selected developer tools are being migrated to web technology using emerging technologies such as Atom, Eclipse Che, Monaco, Thea, or LSP. Those technologies are mainly dealing with textual editing (source code, DSLs), but what about non-textual modeling? Many existing tools are essentially modeling tools. They allow you to create models that can be manipulated in tree- and form-based editors as well as in graphical editors.

Experience level: 
Beginner

What every Eclipse developer should know about Angular

Many business applications nowadays have at least some web UI parts using server-side rendered, static HTML. With the latest dynamic HTML Javascript frameworks like React, Vue.js, or Ember.js, there is a continuous trend to implement those web front-ends as “single page” applications. While there is a lot of diversity in the JavaScript world, one framework has become especially popular for business applications, that is Angular. It allows you to extend HTML through dynamic behaviour and provides essential concepts for developing single page web applications.

Experience level: 
Beginner

What every Eclipse developer should know about Eclipse 4 (e4)

This tutorial will give you a jumpstart on the concepts of the Eclipse 4 Application Platform. If you have previous experience developing with RCP 3.x but limited or no experience with e4, this tutorial is designed for you. Using a sample application, we introduce the most important features of the Eclipse 4 platform, such as the Application Model, Dependency Injection and the Programming Model based on Annotations. We complete the introduction with an overview of the most important services available. All topics include hands-on examples that we’ll work through together.

Experience level: 
Beginner

What is an Eclipse Project?

When the first Eclipse projects were created, in-house IT services had to be provided for everything. The Eclipse Foundation provided CVS servers (then SVN, then Git) for managing source code; a Bugzilla instance for tracking issues; mailing lists, news server, and a webserver for reaching out to the community; and a download server for disseminating the results of a project team's hard work. Over the years, these services have expanded to include build and static analysis tools, metadata tracking, and more.

Experience level: 
Intermediate

When whiteboards play together. JAX-RS and Servlets the OSGi way

OSGi provides specifications for HTTP whiteboards as well as JAX-RS whiteboards. This talk will give you an real world insight of how these specifications can work together.

Are you familiar with the the problem when you quickly need a site setup consisting of whiteboard services such as static web resources, servlets and REST services for integration testing or a customer review?

So we got Jetty and Jersey in the team, they provide sample implementations for both of the specifications.

Experience level: 
Intermediate
Track: 

Xtext Conquering the Unknown World of JavaScript

While creating languages and IDEs with Xtext is a breeze, it may become a little bumpy when you want to provide headless tools. Even though there exists decent support to generate and compile Java code from DSLs with Gradle or Maven, build systems for other target languages are still uncharted waters. Navigating through them depends a lot on your own technological decisions and of course on the target language of your choice.

Experience level: 
Beginner

“the Future is async” or Java Concurrency in the change of time

Java concurrency has evolved a lot from Java 1 to Java 9. Very sophisticated tools became part of the JDK providing developers with various design opportunities.
Still many of these tools and the underlying concepts are unknown to many of us.
In this talk I’m gonna show a brief overview about the evolution of concurrency tools and concepts findable in the JDK, explain some scenarios for the tools I recommend and show the new Reactive Streams concept coming up with Java 9.

Experience level: 
Intermediate
Track: 

Our Sponsors

For information about becoming a sponsor, please visit the EclipseCon Europe 2017 sponsor prospectus page.

Elite Dual ECE/OSGi CE

Premium

Basic

IoT Theme Day

Project Quality Day

Media

EclipseCon Support Other Events

Our Other Events

Eclipse events are hosted all over the world!

  • Eclipse Summit India 2017
  • Eclipsecon Europe 2017