JBoss at Devoxx.

Monday, 11 November

Nuts and Bolts of WebSocket

WebSocket provides a rich and powerful communication channel where client and server can communicate with each other in a standard way. JavaScript API in Web browsers is also quite prevalent making it easier to support it.
Would you like to learn how to build WebSocket applications in Java ? How and where do you deploy these applications ? What are the concerns around firewall, DNS and routers ? How do you debug message exchanges ? What to do if WebSocket is not supported in the browser or app server ? Debugging and Production tips ? Learn about phantom WebSockets.
This university session is for you! Here is what we'll cover:

  • Introduction to WebSocket
  • WebSocket using JSR 356
  • WebSocket using Undertow/WildFly
  • WebSocket using Atmosphere
  • Surviving Firewall and Proxy
  • WebSocket Debugging
  • WebSocket Production Tips

Arun Gupta
Time: 09:30 - 12:30
Location: Room 5 

Mastering xPaaS - get down and dirty in the OpenShift Cloud

Join us for three action-packed hours of power where we'll show you how to deploy your existing application written in the language of your choice - Java, Ruby, PHP, Perl or Python, with the project of your choice - jBPM, Ceylon, Switchyard, Drools Planner, Aerogear, GateIn, Drools (Rules / BPM) and more deployed into the OpenShift PaaS in just minutes. All this and without having to rewrite your app to get it to work the way the cloud provider thinks your app should work.

Eric Shabell
Time: 13:30 - 16:30 
Room 4

Devoxx4Kids Workshops Lab

Devoxx4Kids is a global effort to inspire teenagers and kids in computer programming, robotics, and electronics. This is achieved by delivering workshops on Scratch, Minecraft modding, Java programming, Greenfoot, Raspberry Pi, Arduino, NAO robots, and a variety of other topics. This hands-on lab shares the materials used in these workshops and provides guidance on how to use them. The attendees will experience several simulated workshops and learn tips on how to allocate time for different activities to provide a joyful and fun experience. The lab also provides tips on how to open a local Devoxx4Kids chapter. If you are a parent or would like to run these workshops in your local neighborhood, this workshop is for you!

Arun Gupta
Time: 13:30 - 16:30
Location: BOF 2

Productive Java EE and HTML5 development with Eclipse

During this session, we will show how developers can be productive when building Java EE 7 + HTML5 applications in Eclipse. We will see how the tooling in Eclipse helps us scaffolding from an existing database using JPA, then exposing the entities via JAX-RS and integrated Forge tooling. Some advanced features of JAX-RS 2.0 such as filters and support for bean validation that are recently added will also be shown. Finally the content will be shown in the browser using HTML5 + AngularJS. If time (and network) allows, the application will even be deployed on a PaaS, all without leaving the IDE.
As any good, self-respecting 'Tools In Action' session, you should expect no slide, only coding and talking.

Xavier Coulon, Arun Gupta
Time: 16:45 - 17:15
Location: Room 8

OAuth2 for native apps

Do you want to build a cool iOS/Android app to share your photos on Twitter, Facebook or Google+? If so, you will need to authenticate through OAuth2. Instead of using their own authentication schemes, most providers choose to implement OAuth2, the latest revision of the OAuth protocol. It gives users a secure way to talk to their services, but more importantly, allows users to safely authorise access to their data from third-party services without giving them their credentials.
If you think security topic is hard to tackle, join me in this live coding session. We'll delve deep into OAuth2 protocol and see the challenges to overcome from a native app perspective: embedded web view vs external browser, URL schema for callback, local storage for tokens, refresh access tokens transparently...
After this session, OAuth2 will have no secret to you!

Corinne Krych
Time: 17:25 - 17:55
Location: Room 9

Give yourself to the bash side: command line tools for busy developers

A few years ago, I became a command line nuts. It came gradually. I started to add one, two command line tools. Then customise the shell here and there. Next thing you know, I barely used graphical UIs. And it felt good.
I brought back balance to the force now and use the mouse here and there but I kept my useful command line tools and tricks and I am a better developer for it.
Let me recount my journey and come learn useful tools, tips and workflow improvements for busy developers. Want samples: speed up pull request handling, share the same env across computers and servers, edit files and repeat modifications at the speed of light, define terminal tabs per work context...
Some of the tools explored: #bash #rsync #git #tig #tmux #dotfiles #asciidoc #encfs #brew #mutt #weechat

Emmanuel Bernard
Time: 18:05 - 18:35
Location: Room 4

Tuesday, 12 November

Three hours to build a Java EE application

In this hands-on lab, attendees will create a Java EE application that uses most of the Java EE specifications (JPA, Bean Validation, CDI, JSF, JAX-RS...) and test it (JUnit and Arquillian). From a white sheet, JBoss Forge will help you to quick start it and add extra features to, finally, end-up with a fully functional application.

Koen Aers
Time: 09:30 - 12:30
Location: BOF 1

Java EE 8 - lets get concrete!

Java EE 7 has been released more than a year ago now and work on its successor is in progress for a while now. A number of JSR's have been filed. Some parts are almost done, while others are still in a conceptual phase. In this session, you will learn what you can expect from Java EE 8. Some of the Java EE 8 spec leads will explain their JSR, and show you the current state, including code samples and tutorials.

Antoine Sabot-Durand and others 
Time: 09:30 - 12:30
Room 8

Going farther with CDI 1.2

In less than five years of existence, Contexts and Dependency Injection (CDI) has become one of the major specifications in Java EE. CDI 1.1 and 1.2 proved to be the best solutions to naturally extend Java EE 7. In this session, the co-spec lead of CDI covers advanced CDI topics such as metadata injection manipulation, portable extension development, and new context creation. In this university we will explore advanced features in CDI on the theoretical and practical sides. We’ll show how to integrate legacy code, how to extend CDI to integrate an existing framework and how to use CDI to create a new powerful framework.

Antoine Sabot-Durand
Time: 13:30 - 16:30
Location: Room 5

Java Security Manager Reloaded

It has become common practice to build programs by using libraries and make programs extendable by plugins. Applications deployed to application servers are also very popular nowadays. This means a serious issue for the security of the whole system. Luckily, Java has the solution - the Java Security Manager (JSM). The talk gives hints how to start with the JSM and how to write policy files. The talk introduces new Security Managers in pro-grade library - JSM with 'deny' entries, policy file generator & missing permissions debugger. Demo will show how to quickly create a valid policy for a complex application. Java Security is not a myth! The threat is out there. Be suspicious! Don’t trust your code and be paranoid when you use others’ code.

Josef Cacek
Time: 18:05 - 18:35
Room 4


Wednesday, 13 November


For several years we have experienced as consumers how cloud and mobile technologies have changed the way everyday apps are developed and run. But what is the impact on how enterprise apps are developed and run? What does it mean to use a service bus to do integration in/with/for/to the cloud? What is the impact of X as as Service on the way enterprise software is built, deployed, and maintained? In this keynote we take a look at what’s happening today and present some ideas and vision as to what may be the future of enterprise application development.

Mike Piech, Markus Eisele
Time: 13:00 - 13:30 

WildFly 8 Application Server - Community BoF

Come to our annual Devoxx gathering to discuss (over beer) the present and future of the WildFly community project with distinguished members of the WildFly/JBoss Core Development Team!

Dimitris Andreadis
Time: 19:00 - 20:00
Location: BOF 1

The Future of Java in the Enterprise

With Java EE Configuration and CDI 2.0 modularity and flexibility will be one of the key drivers for Java EE 8. Basically these concepts are not breaking new, but a logical consequence resulting from latest evolutions like Cloud Computing and DevOps. In this key note Anatole, Antonio and other experts discuss their personal vision of future Java Enterprise Development.

Antoine-Sabot Durand
Time: 20:00 - 21:00
Location: BOF 1

Thursday, 14 November

Lessons Learned from Real-World Deployments of Java EE 7

Java EE 7, released over a year ago, introduced several new technologies such as WebSocket, Batch, and JSON. There are already three compliant application servers: WildFly, GlassFish, and Tmaxsoft. NetBeans, Eclipse, and IntelliJ provide extensive tooling support for the APIs. What are the best practices for building and deploying Java EE 7 applications? What to do and not to do? This session takes three Java EE 7 applications running in production and shares lessons learned from each one. It attempts to answer questions such as Is WebSocket ready for production? How do we migrate from Spring Batch to JSR 352 batch? Any change in DevOps? Are additional libraries still needed? Which is more prominent, EJB/JSF or REST/JavaScript?

Arun Gupta
Time: 17:50 - 18:50
Location: Room 6

Devoxx4Kids : a State of the Union

Devoxx4Kids is a global effort to inspire teenagers and kids in computer programming, robotics, and electronics. This is achieved by delivering workshops on Scratch, Minecraft modding, Java programming, Greenfoot, Raspberry Pi, Arduino, NAO robots, and a variety of other topics. The BOF will provide you with the latest updates on the Devoxx4Kids initiative, we will share experiences and make sure you get all necessary information in order to start, on your side, organizing programming events for children.

Arun Gupta
Time: 19:00 - 20:00
Location: BOF 1

Practical Advise on IoT and Messaging Protocols

IoT describes the ability to transfer data over the network with messaging without human-to-human or human-to-computer interaction. To transfer the data, protocols such as MQTT (Message Queue Telemetry Transport) and AMQP (Advanced Message Queuing Protocol) can be used. WebSockets can be used as a standardised way to communicate asynchronously between a web page and a server. The IoT protocols can be used to transfer data over WebSockets. The Machine to Machine (M2M) messages would be handled by a messaging and integration patterns server such as ActiveMQ.
This session will provide an overview of messaging protocols like MQTT and AMQP and how these protocols can be used over WebSocket to transmit data. Design patterns and anti-patterns of different messaging protocols and architecture will be discussed in detail. The session will also show how these protocols were used in a real-life application with a Raspberry Pis cluster. Attendees will learn practical advise on how to configure Raspberry Pi and brokers for an optimised setting.

Kenneth Peeples
Time: 21:00 - 22:00
Location: BOF 2



Friday, 15 November

The path to CDI 2.0

With less than five years and three releases under its belt, CDI has proven itself to be a great asset for Java. The many features it provides (dependency injection, contextual lifecycle, configuration, interception, event notification, and more) and the innovative way it provides them (through the use of meta-annotations) explain its rapid adoption. This session reviews the features introduced in CDI 1.1 and 1.2 and discusses improvements planned for CDI 2, such as standard support for Java SE and a light CDI version useful for embedded environments, showing how it will benefit Java.

Antoine Sabot-Durand
Time: 09:30 - 10:30 
Location: Room 5

Mythbusters: ORMs and NoSQL - good or bad ?

Want to understand what persistence to NoSQL means in a Java architecture? Read on. Java is an object oriented kingdom where ORMs have flourished. Do ORMs still provide benefits in a NoSQL and polyglot era? As a side effect we will discuss the why and how of data design in NoSQL. Busted, plausible or confirmed?

Emmanuel Bernard and Gunnar Morling
Time: 15:10 - 16:10
Location: Room 9