Proposed Sessions

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

Java EE 8 is final... Now what?

Java Enterprise Edition (Java EE) is a rich, mature and widely used open platform for developing and deploying server-side applications. Java EE 8, the latest version of the platform was recently finalized. Multiple open source implantations of the Java EE specifications already co-exist today: GlassFish, Red Hat WildFly and Apache TomEE.

Oracle has also announced its intention to move the Java EE development to the Eclipse Foundation; a bold move welcomed by the community and supported by multiple companies such as Red Hat, IBM, etc.

Experience level: 
Beginner

Top ways to deliver your Java code to the cloud with Eclipse (sponsored by Microsoft)

In this session, I’ll highlight the easiest ways for Java developers to deliver their code to the cloud using Eclipse plugins and tools, and the best ways to reliably make updates and maintain production cloud code. The focus will be on real-world examples using Linux command line tools, open source plugins from the Eclipse marketplace, and other free SDKs and tools available on GitHub. The examples, tools and demos that I show will be applicable to any cloud platform, and all are available on GitHub.

Experience level: 
Intermediate

Creating an open source information architecture for the IoT (sponsored by Red Hat)

The IoT arena is exploding with a diverse set of technologies, features, standards, and architectures, each of which promises to be the panacea and the path forward for future enterprise adoption. However, given the speed of change, innovation, and the wide variety of use cases that IoT enables, it would be highly unlikely for any single proprietary IoT solution maintained by any one vendor to keep up with all the new standards, requirements, and technologies to be incorporated.

Experience level: 
Intermediate
Track: 

Introducing OpenJ9 - Eclipse's new Java VM (sponsored by IBM)

For years IBM has developed an independent implementation of the Java Virtual Machine which fostered rapid improvements in the Java ecosystem. IBM has open sourced language agnostic components such as JIT and GC technologies as part of the Eclipse OMR project. The next step in this evolution is open sourcing the rest of the J9 Java VM in the newly created Eclipse OpenJ9 project.  Come to this session to learn about Eclipse OpenJ9, what it can do for your Java application's performance, how to try it out, and even how to build it yourself!

Experience level: 
Beginner
Track: 

Inner Loop Development: Live in Public (sponsored by IBM)

Are you tired of just "Getting Started"?  Inner Loop Development describes a developer's work flow as they write code but before they commit to version control.  Although programming environments and languages have changed, not much else has.  We all just want to "Write some code and see it run in the right place." This talk explores one possible approach to some of these classic problems when developing for the cloud.

Experience level: 
Beginner

What every developer should know about EMF (sponsored by EclipseSource)

Modeling in general and the Eclipse Modeling Framework in particular are purely academic and overcomplicated. They provide no value except generating some kind of Java Beans!?
Is this really true?
Absolutely not! EMF is a very pragmatic and very efficient approach for creating data entities for tools or  applications. Even more importantly, it enables you to apply a huge variety of additional frameworks. This can massively save time and effort compared to manual custom implementation.

Experience level: 
Beginner

Live Collaboration on Graphical Models: Sirius Integrated With CDO (sponsored by Obeo)

In this talk we will explain how to collaborate with other team members by storing your models and diagrams in a shared repository.

This approach will be compared to traditional file-based collaborative mechanism.

By using a repository managed with CDO our solution provides a fine-grained locking mechanism that allows you to simultaneously work on visual representations for the same data, without losing time managing conflicts and without any technical skills.

Experience level: 
Intermediate

Marketing your project to great success! (sponsored by Eclipse Che)

Everything begins with a great project, but to really succeed and grow it's not enough. This session will share the approach and some specific tactics that were used by the Eclipse Che project to grow to >4000 GitHub stars and >12M hours of usage in one year.

You'll leave the session with advice on

- Setting up your repo to foster and grow a community

- Define your project's value and get your voice heard in the market

- Encourage users to experiment with your project...and encourage users to contribute

Experience level: 
Beginner

A new system-level programming language for the IoT (sponsored by Bosch)

Motivation

The Internet of Things (IoT) revolves around the development, mass-production and deployment of wireless embedded sensor devices. A plethora of prototyping platforms for exploring and developing those sensor nodes exists. However many of those toolkits do not scale beyond prototyping or offer an inferior development experience compared to other domains, e.g. mobile-apps or the web.

Experience level: 
Intermediate
Track: 

CHOReVOLUTION Studio, an Eclipse environment for composing Internet of Everything Applications (sponsored by OW2)

The CHOReVOLUTION Studio is an Eclipse-based environment providing automated support to business users, DevOps teams and service providers. It helps them composing new dynamic applications out of existing services and things. The first use cases are related to Urban Traffic Control and Smart Tourism. CHOReVOLUTION has received funding from the European Union’s Horizon 2020 research and innovation programme.

Experience level: 
Intermediate

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

Meet & Greet the Eclipse Research Project Community

We run this presentation at EclipseCon France 2017 and it was pretty successful. At least the room was full! ;-)

So we would like to renew the experience with all the European community by presenting some other EU research projects where the Eclipse Foundation is directly or indirectly involved.

Today, we are directly involved in 7 EU projects and we are in touch with few others who are interested in joining our dynamic community. Each of these projects has or will have an Eclipse project created in our forge.

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: 

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

Deep dive into Xtext scoping - local and global scopes explained

In Xtext's grammar language syntax and structure of models are defined at a single location in a very concise way. The nesting structure and the references between objects are expressed which goes beyond plain abstract syntax trees. By just pointing to a type of an object, we describe the shape of a syntax graph. But the grammar alone has no meaning to describe the visibility rules inside of a resource or across resource boundaries. Therefore Xtext has a concept of scopes that are modeled as a chain of responsibility.

Experience level: 
Intermediate

The Joy of OSGi and Vaadin for UX

Vaadin is single-page web framework for Java developers. The server code, written in Java, communicates with Javascript in the browser.

This arrangement is capable of producing browser pages indistinguishable from desktop applications with the added advantage of using CSS to provide beautiful user interfaces.

Vaadin has not been used with OSGi extensively in the past, but recent work by Vaadin to incorporate OSGi into their framework has the potential to change this situation and provide OSGi with an excellent technology for user interfaces.

Experience level: 
Beginner
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: 

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

MicroProfile Working Group

The Eclipse MicroProfile Working Group doesn't exist yet, but we're thinking this is the next logical step for our project.  We have several vendors contributing to the MicroProfile project's technologies, along with several user groups and individuals.  We're thinking it's time to separate the business interests from the technology interests, and maybe that's where Working Groups come into play?  It would be great to share our experiences and have the audience help us determine the best next steps.

Experience level: 
Intermediate

Eclipse Release Process Experiences

The Eclispe MicroProfile project recently completed it's first releases under the Eclipse Foundation governance.  The MicroProfile project consists of several components and we've followed the Eclipse processes for both component releases (ie. MicroProfile Config 1.0) and the top-level project (ie. MicroProfile 1.1).  Come to this session to share in our experiences with the process -- what worked well and what we could have prepared for a bit better.

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

Cargo Tracker 4.0

So far the main focus of Industry 4.0 is on smart factories, but what about Logistics and the Supply chain?
While today’s supply chains are provided with mere status reports of an entire container ship or train, Logistics 4.0 offers a transparent view of every container and its content through different sensors, especially for goods that are easily perishable.

Experience level: 
Beginner
Track: 

Accelerating Industry Adoption of Open Source and Open Standards with the Eclipse IoT Open Testbeds

For more than five years, over 30 open source projects have been calling Eclipse IoT home. Yet, it doesn’t necessarily make it easy for people to understand how to put all the pieces together, from integration with sensors and hardware, to networking and connectivity, to cloud computing and enterprise integration. The Eclipse IoT Open Testbeds is an initiative that aims at providing a framework for companies and individuals to collaborate on reference architectures for IoT, and do so in open source so that to help foster cross-industry collaboration on solving real industry problems.

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: 

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

EMF Parsley: a code generation approach for your applications

EMF Parsley is a GUI renderer built on top of EMF that allows developers to quickly develop User Interfaces. The main goal of the Project is to provide an easy way to build complex applications, hiding some boring details, with simple and powerful APIs. EMF Parsley in fact provides some built-in components like Trees, Tables and Forms that can be easily mashed up and customized.

Experience level: 
Intermediate

E-Camera

Invitation background

A prototype of "E-Camera" was presented the "Adaptation" exhibition in Berlin in July 2017; "Adaptation" is part of an EU-funded Agile-IOT project, which is developing a gateway for Bluetooth communication of IOT devices and sensors with a Raspberry Pi. The exhibition of the Adaptation project was executed as a satellite event of TOA conference in Berlin and hosted in the event space crclr. In this circumstance we were invited to present "E-Camera" at the Eclipsecon Europe 2017.

The project

Experience level: 
Beginner
Track: 

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: 

Build smart city applications with Eclipse sensiNact platform and sensiNact Studio

sensiNact consists of a software platform enabling the collection, processing and redistribution of any data relevant for improving the quality of life of urban citizens, programming interfaces allowing different modes of access to data (on-demand, periodic, historic, etc.) and application development and deployment tools to easily and rapidly build innovative applications on top of the platform.

Experience level: 
Intermediate

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

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

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

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: 

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

Building IoT products from scratch using Eclipse IoT Technologies for constrained devices

In this session, MicroEJ discusses how the Eclipse IoT technologies are involved in the creation of the software stacks used in IoT products based on constrained devices.
Products like connected weather stations, heating systems, alarm systems, light management consoles,etc, typically use micro controllers that qualifies them as "constrained" devices as per the classification introduced in the Eclipse IoT whitepaper "The Three Software Stacks Required for IoT Architectures".

Experience level: 
Beginner
Track: 

What about a Common Debug Protocol?

The language server protocol is a terrific way for any IDE to provide and consume language support such as code analysis and completions. In a short space of time it has gained momentum and has support for >30 languages. But what about when it comes to debugging those languages?

Is there an equivalent, common framework that would work in any IDE such as Eclipse IDE or Eclipse Che to provide a common debug experience? Is such a common protocol even feasible for different languages such as Java, C/C++ or Javascript?

Experience level: 
Intermediate

Easy OSGi based application development with Everit OpenSource solutions

The audience of this talk can get a quick overview of the 200+ OpenSource OSGi bundles, the Maven plugins and the Eclipse plugin that are released by Everit as OpenSource projects with the same goal: Make OSGi application development easy and fun!

While some of the modules integrate third party technologies, others provide a complete solution to solve a problem. Even though the modules build up a full stack of server-side application development from persistence to web development, they can also be used separately in custom projects.

Experience level: 
Intermediate
Track: 

Top ways to deliver your Java code to the cloud

In this session, I’ll highlight the easiest ways for Java developers to deliver their code to the cloud and the best ways to reliably make updates and maintain production cloud code.  The focus will be on real-world examples using Linux command line tools, open source tools such as Jenkins, and other free SDKs and tools available on GitHub.

Experience level: 
Intermediate

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: 

The Rise of Open Source in the Manufacturing Industry

In the past 20 years, software has become increasingly important for industrial manufacturers. This trend is expected to continue in the future. At the same time, the share of open source technologies in the software business has increased rapidly. While closed software development can be considered “daily business”, the active participation in open source communities is still a fairly new approach for industrial manufacturers. Bosch has recognized the relevance of open source for its future business.

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

Add Compliance Management to your Build Pipeline: Eclipse SW360's REST API

We have introduced Eclipse SW360, a component management hub that allows organizations to manage Open Source, commercial as well as custom software components throughout their entire life cycle. Using SW360 as a one-stop shop for component information, organizations can track the components used in projects or products to:

Experience level: 
Beginner

Xtext’s Formatter2 by Example

Xtext provides an API to easily implement formatters for your language, which is used both when a user presses CTRL+SHIFT+F in the editor and when Xtext serializes EMF models.

For users, a good formatter is not only a convenience while typing, it also simplifies having a consistent formatting across all files of the project and  avoid whitespace-changes in code reviews.

Experience level: 
Intermediate

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: 

Starting an Eclipse Open Source Project

Starting an open source project with the Eclipse Foundation is a little more involved than, say, creating a repository on GitHub. The Eclipse Development Process provides a model for successful product development in commercial open source: Eclipse projects value good governance, robust provenance tracking, and professional intellectual property management. The Eclipse Foundation provides services in all of these areas, but leveraging those services requires engagement the development team and the Eclipse Foundation staff.

Experience level: 
Beginner

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

Experience report on retrofitting nullness annotations in large code bases

JDT introduced support for @Nullable and @NonNull.  Applying these annotations to an existing codebase, like the Eclipse Platform, would seem to be straightforward mechanical work.  In this session, I report on lessons learned from a first attempt at applying nullness annotations to Platform/UI, and describe the process I've followed since.  These lessons will be helpful for others attempting to retrofit nullness annotations to existing codebases.

(Note to PC: this is based on on-going work.  It's a bit risky in that I'm just re-starting this process again.)

Experience level: 
Intermediate
Track: 

Manage Everything as a Service on clouds with Eclipse Modeling tools

Cloud computing is gaining more and more attention with the ubiquity of on-demand Internet-based services and resources, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS) and more generally Everything as a Service (XaaS). However, the public cloud offers (Amazon, Google, Microsoft, IBM, etc.) and the cloud software stacks (VMware, OpenStack, Docker, etc.) are extremely heterogeneous in terms of provided services, resources, and API.

Experience level: 
Beginner

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

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

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: 

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: 

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

Why and how to leverage Apache Camel Integration Framework in your IoT architecture

Apache Camel framework is one of the most used Integration framework in middleware field. What about reusing it in your IoT infrastructure?

During the talk, I will explain the benefits of Apache Camel and how to leverage them in your IoT infrastructure, from gateways in Eclipse Kura to cloud in Eclipse Kapua.

A demo will show how to use existing Eclipse tooling (mainly Docker, Java debugger and Fuse Tooling) to develop your own Camel integration project and deploy/test them on Eclipse Kura.

 

Experience level: 
Intermediate
Track: 

“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: 

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

The EMF model time machine

A novel approach to efficiently store EMF model changes while its metamodel evolves over time. We'll show how the state of the model can be restored to the way it looked at any point in time even if breaking changes were introduced to the metamodel. The described approach allows us to keep complete history of our models and at the same time evolve the metamodel to fit our new requirements.

The frameworks we'll be using are EMF, EMF Compare, Edapt and emfjson.

Experience level: 
Intermediate

From Eclipse to MagicDraw – an old/new commercial platform for Eclipse Modelling

MagicDraw by No Magic is one of the most widely used and commercially successful systems engineering tools. It provides its own plug-in mechanism, a customizable and component-oriented UI, and an Eclipse Modeling Framework compliant data representation API. This platform has already attracted a limited number of third-party developers in the past, however, recently MagicDraw has started to use OSGi as its core extensibility mechanism.

Experience level: 
Beginner

A serial problem

Everybody is doing IoT now, but on the low level - a lot of the devices we actually talk to - have a serial interface. But which library to choose as a Java based open source project? There are a couple of open source libraries out there, be it PureJavaComm, RxTx, the new DIO library and a few more. But, either the library is seriously out of date, not OSGi compatible, buggy or - unfortunately in most cases - not compatible with the EPL.

This talk will try to illuminate the most important aspects for coosing one of the available libraries for Java:

Experience level: 
Beginner
Track: 

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

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

Big Data in a DevOps Fashion in Eclipse: Why, How... and Why should you care!

Eclipse is a powerful solution for software development, a reference in the field. Why not enrich its Model-Driven facilities to architect and analyse Big Data applications with quality metrics? What is more, why not adding to the Eclipse foundation instruments for software Operation as well, as opposed to software development?

 

Experience level: 
Beginner

Expanding Eclipse's Scientific Visualization Beyond SWT

The Eclipse Advanced Visualization Project has brought a variety of scientific visualization technologies to the Eclipse workbench, ranging from 2D plotting to 3D imaging through embedded JavaFX to integration with well known third party visualization programs like VisIt and ParaView. However, use cases for visualization outside of Eclipse RCP apps require the ability to render graphics in windowing systems outside of SWT. This requires a redesign of the project's API to handle a diverse set of windowing systems' data types.

Experience level: 
Beginner

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

Integrating Legacy Systems with Teneo – The Enterprise Architect Bridge

The problem about legacy systems is that we cannot simply rebuild and replace them. Usually, they are quite complex and there is a need for stepwise migration to new systems. This involves exchanging data between the systems and keep the contained data consistent. In our use case, we want to replace Enterprise Architect, which is a commercial UML modeling tool, with Papyrus. A toolchain based on database mappings and model transformations helps us solving this issue.

Experience level: 
Intermediate

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

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

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

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: 

News from Git in Eclipse

JGit and EGit 4.8 shipped with Oxygen and publish new releases every 3 months.
Curious what's new and what will come next ?

Many improvements were done in EGit's workbench integration to improve usability and performance. Developers using submodules will be happy to use enhanced support for submodules. EGit now supports branch normalization, a new find widget helps to search in the history view and many other views and wizards were improved. New events in JGit speed up workspace refresh after git actions changing the working tree of a repository,

Experience level: 
Intermediate

A Java editor that eliminates local variables

Eclipse has a nice shortcut to extract a local variable. Can coding be more direct and faster? Instead of pressing SHIFT+ALT+L: Could the editor introduce a local variable when I refer to a certain expression? I demonstrate a JDT-based Java editor that does so to make coding and code reading more productive.

Experience level: 
Beginner
Track: 

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: 

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

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: 

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

Cloud application development made easy

This talk presents Eclipse Winery, which offers modeling the architecture of cloud applications. It makes heavily use of the OASIS standard TOSCA. What makes Winery and TOSCA special is that it supports heterogenous application stacks out of the box. This talk will introduce the concepts of TOSCA and demonstrate how Winery supports it. It will aso show how the application can be deployed and instantiated. One will learn about the ideas of application portability and about resuing application components in different settings.

Experience level: 
Intermediate

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

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

elogbook@openK: Continuous Deployment of an SPA with Angular/Java

Continuous Deployment makes high demands on the project team and requires a large number of tools. In mixed-technology projects, the tooling is even more extensive. For the successful realization, it is essential to define clear and unique processes in advance. We show how we have done the implementation of the continuous deployment in the project elogbook@openK.

Experience level: 
Intermediate

The importance of Open Source Tooling for ADAS and Automated Driving

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.

This requires a broad spectrum of flexible, programmable cores and highly optimized hardware accelerators delivering the highest performance at lowest power consumption, specifically architected for algorithms performing object detection, classification and deep neural networks.

Experience level: 
Beginner

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

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

Leverage the Eclipse IoT Marketplace for Your Smart Home

Smart home setups are as heterogenous as their users, whose desires, expectations and habits are highly individual. Eclipse SmartHome addresses this situation at various levels. It is a very flexible framework to build tailored smart home solutions that are easily extensible and customizable. End users of such solutions have the possibility to set up personal automation logic to cover their specific use cases.

Experience level: 
Beginner
Track: 

Understand complex EMF models like an expert

Understanding complex meta models and models is a challenging part in the current age of SW development.  As most of the projects are driven by Model based SW development it is very important to have a tool to help end users/developers to understand the meta model structure and model elements usage on the fly in a intuitive manner.

Experience level: 
Intermediate

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

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

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

Eclipse APP4MC - embedded multicore optimization

Eclipse APP4MC provides an open source tool platform for optimization of embedded multi- and many-core systems. During two years as an Eclipse project we extended the project scope, set up a structure for supporting tools and established a process with quarterly releases.

The talk will describe the current status of the APP4MC tool platform, the application in the automotive industry and also our activities to promote the platform.

Experience level: 
Beginner

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: 

XtextResource Ultra Slim Diet

Sometimes forgotten, often underestimated and rarely used to its full potential: Key to Xtext’s success as a language development framework is its deep integration with the Eclipse Modeling Framework EMF. EMF is the foundation for Xtext’s abstract syntax graph - the heart and core model for each language, the runtime representation of each Xtext grammar is an EMF model and even the persistent Xtext index data is modelled with EMF. Every single language file is an EMF resource.

Experience level: 
Intermediate

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: 

Eclipse Dirigible 3.0 Preview

This talk will give an early preview of the planned version 3.0 of Eclipse Dirigible development platform – what’s new, directions and decisions. We will share the learnings based on customers feedback, as well as our own experience of developing business applications and running Dirigible in production. What "In-System Programming" in WebIDE means with regards to the already established CI/CD processes in a given company. We will talk about portability and standardization of JavaScript APIs and engines, e.g. integration of V8 next to Rhino and Nashorn.

Experience level: 
Advanced

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

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

Plus Size GEF #curvyisthenewstraight

This talk is all about curves! We will go into details about all the cool connection-related stuff offered by GEF for the pleasure of our users: curve interpolation, connection routing, curve manipulation, snap-to functionality, etc.

For the various features, we will discuss the underlying concepts, as well as the implementation. Therefore, this talk is addressed to intermediate and advanced users, but everyone will be able to follow at high altitude, no worries.

 

Experience level: 
Advanced

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

Eclipse Duttile: Agile meets IoT

Eclipse Duttile produces a shared Agile/Lean methodology that links the tools and utilities available in the Eclipse IoT ecosystem.
People that use Eclipse Duttile form a full delivery team that follow the AgileIoT manifesto philosophy, principles and practices, working in Agile and Lean manners to improve the efficacy and efficiency of their daily actions.

Experience level: 
Intermediate
Track: 

Packaging your Eclipse IoT project for easy distribution and adoption

In this session, we aim to cover the fundamentals of the snap packaging on an IOT application, making it easy to deploy, rollback and keep it safe.

We would describe the anatomy of a snap and the developer tools to package it. We will delve on how to architect your application, how to deploy it and what are the mechanisms and technologies to improve the security of the software stack of your solution.

We will illustrate these topics with a few examples using Eclipse projects such as Mosquitto, Kura or Eclipse SmartHome.

Experience level: 
Intermediate
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: 

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

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

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: 

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: 

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: 

Supercharged Business Apps Development In The Cloud For Mere Mortals

How many apps can you develop from scratch and bring online… per hour? And per minute?

This may sound ridiculous at first. But if you study the majority of the software supporting business operations, and take away the boilerplate code, it really comes down to just a few simple things. And most of them are in the hands of the domain expert.
Then if you have the means to reduce the app production really down to this essence, these are not so ridiculous questions anymore.

Experience level: 
Beginner

Generate Your Process Studio and Run Your Processes Like a [non-technical] Boss

So, you need an application development environment that fits your domain perfectly, like a glove. You want to be able to build various application scenarios without coding, in a matter of minutes. You want to deploy and run them, update and improve them and constantly monitor them, while keeping your hands clean, protected by those perfectly fitting gloves.

Experience level: 
Beginner

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

Customizing E4 Dependency Injection – Let's Give it a Shot

One of the central aspects in Eclipse 4 is Dependency Injection, and for many cases it works like a charm. This talk is motivated by two cases in which the magic fades a bit, because some effort is required to make it work:

1. Injecting legacy components which are not instantiated by the application model

This is an issue if you are not developing E4 RCP applications, but want to enhance the Eclipse IDE using E4 technologies.

2. Performing Dual Injection with E4DI and Guice

Experience level: 
Intermediate

Experiences from Building a New SmartHome

In 2015 I have built a new house for my family. And since I am both a tech and an Eclipse enthusiast, I wanted to build it around Eclipse SmartHome. I have learned a lot along the way about planning and implementing SmartHome and made experiences (positive and negative). With this talk I want interested people and future home-builders to benefit from my experiences and to maybe avoid some of the caveats I faced.

During the talk and experience report I will highlight the topics

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

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

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

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: 

Eclipse MicroProfile 1.1 - by Example

When the Microprofile initiative was started last year, it only took about three months
before version 1.0 was launched. From day one, there were four different implementations
from four different vendors available.

One year later, Eclipse Microprofile 1.1 is here!

Whereas version 1.0 was a subset of Java EE specifications, version 1.1 brings something
new to the table. Four topics central to microservices are included in the profile, namely:

* Configuration
* Fault Tolerance

Experience level: 
Intermediate

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: 

Automated GUI testing of Eclipse RCP applications with StoryText

The GUI is usually the most volatile part of an application, so if your automated tests rely on it, they are often fragile. It can be important to make sure the GUI works though, and particularly in the case of a rich user interface using a technology like Eclipse RCP, you will want to have some tests at this level. In this talk I'd like to introduce you to Approval testing combined with use-case recording. I'll have a short demo of the techniques, using the open-source tool StoryText.

Experience level: 
Intermediate

The Eclipse Collections Framework

Eclipse Collections is a framework that provides a rich set of useful collection implementations complementary to Java's collection API. Originated at Goldman Sachs, Eclipse Collections adds efficient data structures used in large scale applications where memory consumption and maintainable code is crucial.

In this talk I give an introduction to the types and the fluent API offered by Eclipse Collections and compare it to Apache Commons Collections and Google Guava.

Experience level: 
Beginner

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

Systematic reuse of Capella assets with pure::variants

Compared to single product development, developing and maintaining a portfolio of related products comes with additional challenges. A systematic approach is needed to realize a high reuse rate that minimizes the maintenance effort and maximizes the productivity.
Robert Hellebrand will present how these challenges can be tackled for all assets of the development lifecycle using pure::variants, focusing on its integration with Capella.

Experience level: 
Beginner

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: 

Easy container oriented development with Docker and OpenShift tooling

Container oriented developement is a new way to adopt for today's developers. Although base tooling allow easy and simple deployment to be adopted, developers needs more accurate tools to deal with their day to day operations.

Based on the Eclipse Docker and OpenShift tooling, we will discover how developer tasks can be easily managed from the Eclipse IDE:

Experience level: 
Intermediate

Cloud Native Java - Getting Started!

Recently Spring Boot became the most famous JVM-Framework for efficient microservice development. A reason for this – among others – is the strict usage of the convention-over-configuration paradigm which eases development drastically.
With the Spring Tool Suite comes a ready-to-use Eclipse based distribution for building applications utilizing the Spring Framework.

Experience level: 
Beginner

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: 

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

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

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

Jump Start your Industrial IoT Projects

Do you want to find out what you need to tackle Industrial IoT and Industry 4.0 challenges? Are you interested in quickly building an IoT application leveraging leading open source projects? Do you want to experiment with sensors, fans, buzzers, LEDs? Join this Industrial IoT tutorial to experience the capabilities of open source projects such as Eclipse Kura and Eclipse Kapua for creating efficient and easy-to-maintain IoT solutions.

Experience level: 
Intermediate
Track: 

Constrained Software Parallelization with APP4MC

Distributing software effectively to multi core, many core, and distributed real time systems has been studied for decades but still advances successively driven by domain specific constraints. Programming vehicle ECUs, for instance, is one of the most constrained domains that recently approached the need for concurrency due to advanced driver assistant systems or autonomous driving approaches.

Experience level: 
Intermediate

How to Get Rid of Ambiguities in Your Xtext Grammar

Did you ever stumble across a red line with a cryptic error message in the log when running the Xtext generator? Then it is most likely your grammar is ambiguous. This is bad as some paths through your grammar will never be reachable.

In this session we will explain what ambiguity means, how it emerges and how to fight it without sacrificing the performance of the parser entirely.

Experience level: 
Intermediate

TypeScript for Java Developers

As a Java developer, you feel safe scaling and refactoring in large code bases, and you know how to write readable code. These days, JavaScript is getting more important for building applications, not only for the web and the backend but also cross-platform desktop applications. And if untyped languages and lack of tool support scare you, try TypeScript.

Experience level: 
Beginner

Connecting and Twinning IoT Field Devices with Eclipse Kura

This session uses real-world examples to introduce a new feature of Eclipse Kura 3.0 to simplify the communication with the field devices attached to an IoT Gateway: Drivers, which encapsulate the field communication protocol and its configuration parameters, and Assets, which model the information data channels towards the device. When an Asset is created, a twin of the device is automatically available for on-demand read and writes via Java APIs or via Cloud though remote messages.

Experience level: 
Intermediate
Track: 

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: 

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: 

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

CHOReVOLUTION Studio, an Eclipse environment for composing Internet of Everything Applications

The CHOReVOLUTION Studio is an Eclipse-based environment providing automated support to business users, DevOps teams and service providers. It helps them composing new dynamic applications out of existing services and things. The first use cases are related to Urban Traffic Control and Smart Tourism. CHOReVOLUTION has received funding from the European Union’s Horizon 2020 research and innovation programme.

Experience level: 
Intermediate

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

Monitoring the development process

When you're doing Continuous Integration, your build server gets pretty busy. If developers are committing changes daily, and every commit triggers a build and automated tests, you'll be producing new versions of your software at frequent intervals. What if things aren't going quite that smoothly though, and you'd like to encourage develpers to commit more often, and for new versions to appear more frequently. One way to help with that is just to make it visible to the developers.

Experience level: 
Intermediate

Lessons From JDK 9 Quality Outreach

Over the last couple of years, the OpenJDK Quality Outreach effort has become a good source of high quality feedback from many popular FOSS projects starting with JDK 7 Updates, JDK 8 and JDK 8 Updates. It now plays the same role for JDK 9.

With a number of large changes being planned for JDK 9 that are developed through the OpenJDK community, reaching out to popular FOSS projects well ahead of a release and keeping them informed of upcoming changes, collecting as well as acting on their feedback and bug reports created a great feedback loop.

Experience level: 
Intermediate

Onward to new shores with Project Jigsaw and JDK 9

New possibilities are opening up for developers with the many innovations of the highly anticipated JDK 9. The module system, in particular, is a driving force for change. The session demonstrates how JDK 9 developers can improve and accelerate their work in a variety of environments, including the cloud.

Experience level: 
Beginner
Track: 

Only the Good Die Young - Developing for OS/2 with Eclipse

OS/2 Warp was an operating system for PCs developed mainly by IBM in the 90s. It was partially successful in some industries and is still used today. IBM withdraw support for OS/2 in 2005.

That is when it died. But - unlike Elvis - it is still alive.

This year a company called Arca Noae released an updated version of OS/2 called ArcaOS. This version of OS/2 runs on modern hardware and executes legacy OS/2, Windows 3.1 and DOS applications just fine.

Experience level: 
Beginner

Packaging The Eclipse IDE For Linux Distributions

The Eclipse Project provides Eclipse package(s) to be used across different Linux distributions. However, the standard way of getting software packages on most Linux distributions is through the packaging management system (eg. apt + dpkg, yum/dnf + rpm).

This talk will discuss the many considerations and obstacles to getting the Eclipse IDE built and packaged for a Linux distribution. In particular this will focus heavily on examples from the experiences of packaging and distributing Eclipse IDE and various plugins in the Fedora Operating System.

Topics will include :

Experience level: 
Intermediate

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: 

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

Compatibility and API evolution in Eclipse using PDE ( Plug-in Development Environment)

In this talk, I will discuss the various types of incompatibilities encountered during software development. I will talk about source and binary compatibility and their limitations and if achieving both the binary and source compatibility is sufficient. I will show some examples to support the claims made. The talk will also cover rules of evolving java APIs while maintaining compatibility with existing client code and what are the best practices if a breaking change has to be made.

Experience level: 
Intermediate

Eclipse Dirigible v3 - Powered by V8?

This talk will show how Eclipse Dirigible leverages the capabilities of V8 in its new version.

First a short overview of the available JavaScript execution engines will be made and it will be explained why V8 fits best for Eclipse Dirigible even on JVM environment.
Next a deep dive in the integration of the V8 engine will be demonstrated using J2V8. It will be shown how JavaScript modularization is supported (e.g. require), Java API callbacks approach, debugging, etc.

Experience level: 
Beginner

.NET Core with Eclipse IDE, a New Home for C# Development

In this talk, we are introduced to aCute, a plugin that brings support for C# edition in Eclipse IDE. This plugin is a great example of how recent developments make the support of different languages simpler in Eclipse. aCute is entering the process of becoming an Eclipse.org project shortly with the goal of being shipped with Eclipse Photon.

This talk will include:

  • A demo of C# development from scratch to publishing an executable in Eclipse IDE with aCute

Experience level: 
Beginner

Developing a plugin for automatic code improvements in the Eclipse ecosystem

We are a little company in Austria that specializes in maintaining and modernizing legacy systems.
Time and time again we saw a common pattern: daily business leaves no time for software maintenance, even when that would save costs in the future. As a result, tools like SonarQube show tremendous amounts of technical debt.

Our motivation to develop jSparrow was to implement a tool that helps fixing as many code smells as possible automatically. And Eclipse offers an excellent platform for such endeavours!

Experience level: 
Intermediate

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

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: 

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: 

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: 

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: 

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: 

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: 

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

When Kubernetes meets Zeus [hands-on]

Kubernetes is the hot topic of the year in the area of cloud & cluster management.
Definitely it has the power to revolutionize the whole DevOps lifecycle in a new and unpredictable way.

But how Zeus fits in the picture?
Isn’t it just a mythical Greek god that throws lightning bolts around?
What it has to do with software development and even more with cloud?

For the average application developer, the term “cluster management” sounds like a big and very complex thing and maybe a mythical Greek god is needed to prove that wrong.

Experience level: 
Beginner

When Kubernetes meets Zeus

Kubernetes is the hot topic of the year in the area of cloud & cluster management.
Definitely it has the power to revolutionize the whole DevOps lifecycle in a new and unpredictable way.

But how Zeus fits in the picture?
Isn’t it just a mythical Greek god that throws lightning bolts around?
What it has to do with software development and even more with cloud?

For the average application developer, the term “cluster management” sounds like a big and very complex thing and maybe a mythical Greek god is needed to prove that wrong.

Experience level: 
Beginner

Adding a full-text search to your persistent java web application with JBoss Tools (Hibernate & Openshift)

Full-text search is a technique for searching relevant information by analyzing natural language documents. These documents can be stored online and then it means that your search engine some kind of the Google. Or you can have some database for your java project managed through Hibernate. Many websites and application programs provide full-text-search capabilities. Almost every website has a search box, which actually searches for a relevant document under the hood.

Experience level: 
Beginner

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

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: 

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: 

Lean and Easy IoT Applications with OSGi and Eclipse Concierge

Modularization of software is key to handling the inherent complexity of distributed applications like for the Internet of Things (IoT) and provide a flexible environment to evolve applications and manage their deployment effectively. OSGi is a popular framework for dynamic modules for the Java language. Eclipse Concierge provides a clean, small and lightweight implementation of the OSGi core framework specification, specifically tailored to embedded systems and IoT.

Experience level: 
Intermediate
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

Building data-centric UIs with Eclipse and EMF

The Eclipse Modeling Framework (EMF) provides extensive support for the implementation of data-centric UIs, whether for tools or for general purpose applications. This support includes generated classes, such as label and content providers, to support for implementing trees or tables, databinding, and additional UI frameworks for various purposes, such as EMF Forms.

This tutorial starts from a given example data model. We will introduce how to create a UI allowing you to create, modify, and delete instances of this data model.

Experience level: 
Beginner

Next Generation Web Components with Java - Vaadin Flow

Web Components together with Polymer 2.0 have lifted the web application development to new heights while on the Server Side Java 8 has changed development style to much more functional direction.

What Polymer and Java 8 are to developers usually on the different sides of the REST API, the new Vaadin Flow is for the whole web developer community. Vaadin Flow is the new way to bridge and unify web development experience manifesting the best parts from both worlds, the Web Components and the Server Side Java.

Experience level: 
Beginner

Building RPMs with Maven on all platforms

RPM is a package format for deploying software on Linux based systems. It supports dependencies, integrety checks, rollbacks and much more. It is the de-facto standard for deploying software inside CentOS, RHEL, OpenSuse and a few others in a sane way.

Creating RPMs is a simple task, but only when you are used to writing "spec" files and have your build on Linux. But if you want to create RPMs during a Maven build, which may be running on Windows, Mac OS or Ubunut, things look differently.

Experience level: 
Beginner

Running Eclipse Kapua on OpenShift

Deploying, running and monitoring a complex application like the IoT cloud platform Eclipse Kapua can be tricky. This talk will show how Eclipse Kapua can be run inside the container platform OpenShift.

We will have a look at the project default OpenShift setup and will use the Kura Simulation framework to create load on the system. Grafana will be used to visualize container, standard and custom JMX metrics coming from OpenShift while spinning up and down simulated Kura instances.

The talk should give you an impression on how OpenShift can be leveraged for IoT scenarios.

Experience level: 
Intermediate
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

Eclipse 3 and 4 modularity. State of the art.

Do you know how to make your Eclipse  applications modular using the 4.X runtime and mixing 3.X or 4.X plugins?

Do you know that you can use the E4 concepts like injection or application model for most of your new plugins using the E4 Model Editor and model fragments?

And, do you know how to extend your Eclipse RCP application using an E4 model fragment.e4xmi?

E4 model fragments are one of the new mechanisms to extend your Eclipse RCP applications.

Experience level: 
Intermediate

Building Meaningful Applications in SWT for Beginners

SWT is a cross platform UI toolkit written in Java and is the backbone of the Eclipse platform. This tutorial will offer beginners to SWT a chance to use their Java skills in order to build a meaningful SWT application.

The tutorial will be run by two full-time SWT contributors and will offer:

Experience level: 
Beginner

Downloads and p2 updates in the age of the centralized World Wide Wait

At the end of the day, your project's installation packages, OSGi bundles, Eclipse plug-ins and features have to be delivered to your users as plain old files. In Eclipse universe, we achieve this with

  • Eclipse Downloads and Eclipse Archives sites for clean and fresh installations
  • p2 repositories for updating existing and building new applications with Tycho, PDE Build and alike

The way they work now critically depends on the servers storing these files and fast, stable and unrestricted Internet connection between the user and these servers. But…

Experience level: 
Intermediate

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

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

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

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: 

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

SPC5Studio: Leveraging Eclipse to configure, run and test embedded applications

SPC5Studio is a configuration tool developed by STMicroelectronics to help users to start using microcontrollers of the SPC5 family. The primary goal of the tool is to offer customers an all-in-one tool to configure, compile, run and test their embedded applications.

SPC5Studio is delivered for free under STMicroelectronics limited license agreement.

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: 

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

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

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

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

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: 

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

News from CBI land

CBI can mean different things. Not only "Common Build Infrastructure", but also "Continuous Build Improvement". So whether you just joined the Eclipse community or have been around for a long time, this talk will give you an update what's new with CBI and how you can make use of it for your own project.

Experience level: 
Beginner

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 MicroProfile FaultTolerance: how to build a resilient microservice

One of the advantages of microservices over monolithic applications is the ability of the system as a whole to withstand the faults and unexpected failures of systems and resources etc. However, simply doing microservices does not make your applications resilient. Fault Tolerance programming model must be applied to the microservice architecture. However, lack of Fault Tolerance standard makes it difficult to build a portable resilient microservices. The recent effort in Eclipse MicroProfile Fault Tolerance fills in the gap.

Experience level: 
Beginner

Eclipse MicroProfile Config: configuring microservices easy

Being listed under 12-factor app, Configuration is one of the very important factors for developing powerful microservices. How to make microservices react differently according to the different deployment environments? How to configure microservices without repacking them? Recently, Eclipse MicroProfile project 'MicroProfile Config' defines a programming model to fulfill the requirements. Come to this session to find out how the API works, my experience on leading this effort, followed by a demo of writing a configurable microservice application.

Experience level: 
Beginner

Testing fast by testing right

Continuous integration and continuous testing provide fast feedback on the state of our software.
As the software grows the time between a commit and the feedback being available tends to extend more and more.
In this talk I'll share how we managed to get from a feedback cycle that takes 3 hours to a feedback cycle that takes 35 minutes on average.
The tools we used range from nagging people to using mocks in unit tests to exploiting the dependency graph to pick the right tests to execute.

Experience level: 
Beginner

Creating applications for IEC 60870 with NeoSCADA

The most recent version of Eclipse NeoSCADA contains an EPL licensed IEC 60870-5-105 client & server stack and SDK. This talk will show how you can leverage those libraries outside of NeoSCADA to create your own applications based on IEC 60870. We will go through a very short introduction of NeoSCADA and IEC 60870 in general and then focus on some code examples how to access data through IEC 60870 and how to provide data using IEC 60870.

Experience level: 
Intermediate
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

Succeed with Eclipse: Large Scale

At our company we are scaling Eclipse technologies to the large. Not only do we have a whole lot of developers around the globe working with the Eclipse IDE that need to be synchronized and updated, but we also develop really huge applications based on Eclipse RCP (700+ plugins).

In this talk, I want to present to you which problems (and of course which solutions to those problems) lie on the road to successfully leverage the power of the Eclipse IDE and the Eclipse RCP platform (both on client and server side) in such environments - a summary of nearly 10 years of experience.

Experience level: 
Intermediate

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: 

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

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

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

Smart Home Day

Media

EclipseCon Support Other Events

Our Other Events

Eclipse events are hosted all over the world!

  • Eclipsecon Europe 2017