Enterprise grade Java.
You'll read about Conferences, Java User Groups, Java, Integration, Reactive, Microservices and other technologies.

Thursday, April 30, 2015

Continuous Delivery with Docker Containers and Java EE

12:00 Thursday, April 30, 2015 Posted by Test No comments:
, , ,
Organizations need a way to make application delivery fast, predictable and secure and the agility provided by containers, such as docker, help developers realize this goal. For Java EE applications, this enables packaging of applications, the application server, and other dependencies in a container that can be replicated in build, test, and production environments. This takes you one step closer to achieving continuous delivery. At least this was the abstract on the Webinar Thomas and I have been giving a couple of days ago. This is the supporting blog-post with a little more details about the setup including all the links to the source code and the demo. Find a more detailed technical walkthrough in the developer interview also embedded below. A big thank you to my co-author Thomas who helped me doing this blog-post.

What Did we Cover?
First we’re going to talk a bit about why everybody is keen on optimizing application delivery these days.  Increasingly complicated applications are putting even more pressure on infrastructures, Teams and processes. Containers promise to bring a solution by keeping applications and their runtime components together.
But let’s not stop there and look beyond, what seems to be a perfect topic for operations. It leaks more and more into the developer space. And as a developer it is easy to ignore latest hypes by just concentrating on what we can do best: Delivering functioning applications. But honestly, there is more to it. Especially Java EE requires more than just code. So, containers promise to make our lives easier.
Just talking about containers isn't the whole story. They have to be usable and out there in production for developers to finally use them. This is where we’re going to briefly sneak into what is upcoming with OpenShift v3 and how this fits into the bigger picture.
After this brief introduction, Thomas is going to walk you through the details, starting with Docker Containers and how they allow for a complete Continuous delivery Chain which fully supports DevOps.

But why do we need containers? And why now?
Most importantly, the new architecture approaches like micro-services drive us away from large-VMs and physical servers running monolithic applications. Individually bootstrapped services are a natural fit for container based deployment, because everything needed to run them is completely encapsulated. Plus, the urge for optimized operations is driving more and more infrastructures into the cloud model. We will see containers as a service offers, which will be faster to deploy, cheaper to run, and be easier to manage than VMs.  Enterprises will run PaaS products that focus on enterprise-class operations using Containers as a target. Distributing software in containerised-packages instead of virtual machines is far more complete and more standardized with Containers. Easier to adapt to different suppliers and vendors. No matter what language or runtime the product is built for. Enterprises don’t necessarily have to focus on a single platform anymore to achieve optimized operations and costs. The container infrastructure allows a more heterogeneous technology base by holding up standardized operational models and having the potential for future optimizations and add-ons for example around security.Containers and their management systems are the glue between developers and operators and are a technological layer to support the DevOps movement.  To make it short: Containers are ready. 

What do I as a Java EE developer gain from all of that?
Containers are about what’s inside of them, not outside of them. It’s easy to compare this with PaaS offerings. Developers don’t want to care about configuration or hosting. They just want a reliable runtime for their applications. There’s not a lot beside Containers what you need. Standard formats, standard images and even the option to use a company wide hub for them, will make development teams a lot more efficient. And this does also relate to how we will setup local environments and roll them out into our teams. Differently configured instances can be spun up and teared down in seconds. No need to maintain different versions of middleware or databases and messing around with paths or configurations. Preconfigured Containers will reduce team setup times significantly and allow for testing with different configurations more easily. Images can be centrally developed, configured and maintained. According to corporate standards and including specific frameworks or integration libraries. Responsibility and education are the key parts in terms of motivation. Today’s full stack developer want to be responsible for their work of art – End to End. Programming stopped being a tedious job using the same lame APIs day in and day out. As a matter of fact, Containers allow for a complete round-trip from building to packaging and shipping your applications through the different environments into production. And because everything can be versioned and centrally maintained and relies on the same operating system and configuration in any environment the complete software delivery chain is a lot more predictable with Containers.

How OpenShift fits into all of that?
The perfect example how the market is shifting towards containers is OpenShift. It comes in different editions:
  • OpenShift Origin is the Open Source Project for Red Hat’s cloud offering
  • OpenShift Online is Red Hat's public cloud application development and hosting platform that automates the provisioning, management and scaling of applications so that you can focus on writing the code for your business, startup, or next big idea. Try out yourself by signing up on openshift.com
  • OpenShift Enterprise is the an on-premise, private Platform as a Service (PaaS) solution offering that allows you to deliver apps faster and meet your enterprise's growing application demands.

Depending on your needs you’re free to pick the solution that best fits your needs. From building your own PaaS with Origin to running a fully supported on-premise PaaS yourself.
And we’re going big with the next version of OpenShift! With each milestone of Origin comes a new version of OpenShift. And now that the Origin source code repository for OpenShift 3 is available. It is progressing towards a whole new architecture entirely re-engineered from the ground up. This new architecture integrates Docker and the Kubernetes container orchestration and management system, available on an Atomic host optimized for running containerized applications.  On top of all that, OpenShift will incorporate effective and efficient DevOps workflows that play a critical role in platform-as-a-service to accelerate application delivery.

What will OpenShift v3 Look Like?
OpenShift adds developer and operational centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams and applications.
Starting at the bottom of everything, Red Hat has been working with the Docker community to evolve our existing containers technology and drive a new standard for containerization through the libcontainer project. This work lead to announcing Docker support in RHEL 7 and the launch of Project Atomic to develop a new container-optimized Linux host. This new container architecture is at the core of OpenShift v3.
The OpenShift v3 Cartridge format will adopt the Docker packaging model and enable users to leverage any application component packaged as a Docker image. This will enable developers to tap into the Docker Hub community to both access and share container images to use in OpenShift
In OpenShift v3, we will be integrating Kubernetes in the OpenShift Broker to drive container orchestration.
OpenShift v3 will bring new capabilities for provisioning, patching and managing application containers, routing and networking enhancements, and provisioning and managing the OpenShift platform itself.  The goal is to deliver a best of breed user experience for OpenShift developers.
Be excited for the upcoming release!

The Complete Demo
Of you're done with the webcast replay, it's time to get hands on the source-code and grab a #coffee+++ and sit back to relax the demo in 30 instead of just 10 minutes. Thomas is going to cover all the details and I was nice enough to ask some nasty questions in between.
Don't forget, you can always re-watch the original webinar.

And here is an architectural overview as a prezi presentation, which Thomas showed in the webcast.

Links and Further Readings
Some food for thought and homework. The link collection form the webinar plus some more resources for you to dig through.

Tuesday, April 28, 2015

Welcome Google Summer of Code Students 2015 to JBoss

13:30 Tuesday, April 28, 2015 Posted by Test No comments:
, ,
Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. It works with many open source, free software, and technology-related groups to identify and fund projects over a three month period. Since its inception in 2005, the program has brought together over 8,500 successful student participants from 101 countries and over 8,300 mentors from over 109 countries worldwide to produce over 50 million lines of code. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.

This is a big GSoC year for JBoss - 13 students accepted! 
Red Hat JBoss Middleware is contributing since a couple of years already and after beginning with 8 students in 2012 we were hovering around that number. This year we had so much support from various projects in JBoss and so many great proposals by students, that we were able to accept 13 students! Another warm welcome from all of us here at Red Hat! 

If you come across any of the names on the project mailing-lists or IRC channels, please make sure to give them a helping hand and support them with their ambitious plans for the summer.

Find out more about recent developments and stay up to date with GSoC 2015 on the Google Open Source Blog. The students will begin posting status updates to their own blogs which will be aggregated via planet.jboss.org soon.

The List Of Projects
Find all the details for the thirteen accepted projects in the following table. Please welcome all of our students and a very hearty "Thank you!" goes out from me to all the mentors! Good luck and success for the next months!

Implement a Database Migration system as a Forge addon
Student: Wisem Zrellli
Mentor: George Gastaldi
Project: JBoss Forge
Database migration is an essential part of almost every web base application. The project consists in creating a Forge addon to support database migration and ensure that all the schemas are in sync with the code. This goes along with Forge Philosophy which is building Java EE in a fast, productive and joyful way. The addon will wrap several features offered by Liquibase migration tool and supports mainly JPA entities.

Hawkular Android Client
Student: Artur Dryomov
Mentor: Daniel Passos
Project: Hawkular
Mobile phones, especially smartphones, came to our life very quickly. We use them every day and sometimes more often than our computers. At the moment there is no way to use Hawkular comfortably on Android, there is only a web interface. This conclusion assumes that some work should be done to provide a new way of user interaction with Hawkular. My work is to implement this idea in an Android application for Hawkular.

jBPM on Android
Student: Supun Athukorala
Mentor: Kris Verlaenen
Project: jBPM
jBPM is a flexible Business Process Management (BPM) Suite which can be accessed by a web based workbench. But cannot be accessed by mobile users. Therefore the idea of the project is to create a mobile UI of the jBPM-console where mobile users can interact some of the features of the jBPM-console. The jBPM core engine itself is a lightweight workflow engine which can be run on android as well. Therefore apart from the mobile UI, a prototype of jBPM on android will be also created.

Hibernate Search Tools
Student: Bocharov Dmitry
Mentor: Sanne Grinovero
Project: Hibernate
Hibernate Search is a powerful project with a lot of possibilities. However, it is in need of the instruments which allow quick experimentation and provide an easy way of indexes inspections. The aim of this project is to create a number of tools for Hibernate Search.

Docker Addon for JBoss Forge 2
Student: Devanshu Singh
Mentor: George Gastaldi
Project: JBoss Forge
The idea is to create a Docker Addon which will facilitate support for Docker Technologies for Forge users. It aims for provide features like an API to support image and container operations , creation of Docker containers for new projects and a Dockerfile linter all enclosed inside a Forge 2 Addon.

Keycloak Certificate Management System
Student: Giriraj Sharma
Mentor: Stian Thorgersen
Project: Keycloak
Mobile, Internet of Things, Bring Your Own Device in general introduces a bigger demand for Public Key Infrastructure. This idea is to enhance Keycloak with Certificate Authority to issue certificates for users, applications and devices. An interesting extension point to the project will be to add support for automatic certificate management by Automated Certificate Management Environment specification (ACME). If feasible this will also delegate to Let's Encrypt for public domains.

Application for "Make Ceylon scriptable"
Student: Miguel Gordian
Mentor: Stephane Epardaud
Project: Ceylon
Making Ceylon scriptable with a CLI.

Java to Ceylon Code Converter
Student: Rohit Mohan
Mentor: Stephane Epardaud
Project: Ceylon
This project idea aims at converting Java code to Ceylon easily through the Ceylon IDE and also as a standalone utility and as a Ceylon command line plugin. The Java code will be converted to Ceylon by copy pasting in the Ceylon IDE and will also be available as a separate tool that can be used from the command line.

Dynamic visual BPMN2 Diff tool for jBPM Web Designer
Student: Roman Procopenco
Mentor: Tihomir Surdilovic
Project: jBPM 
A visual diff tool created for JBPM Web Designer. The tool will provide Change Tracking Graphs that will give to the users an immediate idea about the changes made on the business process. The tool will have different options to help the users understand the changes made on the process such as a comparison of the whole graph, as well as comparison between two sub parts of the process.

Application Development with jBPM and MGWT
Student: Rodrigo Osmar Garcete
Mentor:Mauricio Salatino
Project: jBPM 
I'll improve the design of the application by doing two things: 1. Migrate existing application to version 2.0 of MGWT. 2. Add new functional features that support the mobile world in a clear and transparent way devices.

Hibernate Search with any JPA implementor
Student: Martin Braun
Mentor: Sanne Grinovero
Project: Hibernate
I've been around the Hibernate-Search project for around 1-1.5 years now, starting with "dumb" questions and now I want to contribute actual source code and pay back for the nice help I got :). Basically, my proposal is to implement support for any JPA provider into Hibernate Search, to remove the neccessity of Hibernate-ORM when using it.

Hawkular - pluggable data processors for metrics
Student: Aakarsh Agarwal
Mentor: Heiko W. Rupp
Project: Hawkular
Hawkular-metrics deals with computation of values and operations on the raw data. This project is aimed to develop interface for plugins that improve the performance of Hawkular-Metrics making it more dependable, dynamic and extending the scope of its usage in operating with data sets.Plugins are needed to apply statistical algorithms to the data and compute those necessary functions. Such plugins may be plugged in at runtime whenever user wants it to.

WebPush support for mobile cloud services
Student: Idel Pivnitskiy
Mentors: Matthias Wessendorf, Sébastien Blanc
Project: AeroGear
AeroGear WebPush is a proof of concept implementation of the WebPush Protocol specification. It allows to maintain a single HTTP/2 connect which can service as many client applications as needed. It also enables the service worker to receive notifications even if the target application of those notifications is not currently active. It would be perfect to add support for mobile cloud services and try it with IoT devices!

Wednesday, April 22, 2015

JavaOne 2015 - Tips And Recommendations For Your Submission.

13:00 Wednesday, April 22, 2015 Posted by Test No comments:
Everybody knows JavaOne. It feels like, it's been there forever. And even if we had our ups and downs and the location isn't exactly what we want it to be and San Francisco is expensive and and and. It is the number one premium conference about all kinds of Java. And being part of the program committee ("Java, DevOps, and the Cloud" and "Java and Server-Side Development") again this year makes me proud. And this is my personal call to action for you: If you haven't considered submitting something to JavaOne yet, time is running out. The CfP will close on April 29th and the different review teams of the individual tracks are eagerly awaiting all your awesome submissions.
We can brag as much as we want but JavaOne would be nothing without all the great speakers. That is why we need your help to make sure that the 2015 edition will be even more awesome than the past ones. Here are some ideas and recommendations for the undecided.

What Do I Want To Hear From You About Cloud?
The evolution of service-related enterprise Java standards has been underway for more than a decade, and in many ways the emergence of cloud computing was almost inevitable. Whether you call your current service-oriented development “cloud” or not, Java offers developers unique value in cloud-related environments such as software as a service (SaaS) and platform as a service (PaaS). The Java Virtual Machine is an ideal deployment environment for new microservice and container application architectures that deploy to cloud infrastructures. And as Java development in the cloud becomes more pervasive, enabling application portability can lead to greater cloud productivity.
As this track covers everything from service oriented development and architecture approaches to continuous delivery and DevOps, I expect a lot of different kinds of proposals to come in here. If you want my eyes to catch your proposal here are some ideas:
  • Microservices are cool. I get that. But there's more to it than just buzzword bingo. What I am looking for are some real world ideas or at least something that you tried out. Don't just try to explain what they are (I dropped the famous Fowler slide from my presentations some time ago already). Try to explain what they solve for you and why you've just not gone down the typical Java EE road. And of course, there's stuff like OSGi and Vert.x which also might be a suitable way to do microservices in Java. Surprise me with your experiences.
  • Containers are cool. And Docker is one of them. There's a lot more. And speaking about Containers isn't exactly Java related. For me it will not be enough if you just Docker-ize everything. Please make sure to link your container proposal to Java. This can be anything about introductory content, or how to make the most out of containers as a Java developer. Even in this particular area, I think it is most important to stress your real experiences. Show me your code; your story.
  • PaaS is cool. Oh yes. And we're going down the cloud road further over the next couple of years. Please don't just pitch a product. Don't just tell me how to use OpenShift, Cloud Foundry, Spring Cloud. That is nothing I want to hear. There are readme's and documentation out there. Show me what you did with the PaaS of your choice. Tell me about your choice and let me know, what worked and what didn't. Found out about something that is extremely rough? Or very easy to do? Got some best practices to share! That's what I am looking for.
  • DevOps is cool. Sort of. Not many of us do it. Enterprises have a hard time with it. What did make you look into this topic. What worked and why? Was technology a key to your success? Tell me more about how you made it work in which context. 
What Makes A Good Server Side Track Submission?
Java Platform, Enterprise Edition (Java EE) is the standard in community-driven enterprise software. Developed using contributions from industry experts, commercial and open source organizations, Java user groups, and countless individuals, Java EE offers developers a rich enterprise software platform. And believe it or not, I've been working with Java EE on different containers for almost 15 years now. So, what can surprise me in terms of a good presentation?
  • Java EE 6 isn't cool anymore. We've been there before. If you want to talk about this or even earlier versions, JavaOne might be to fancy for you. We are years into Java EE 7 already and I think, I heard everything about earlier versions that one can say.
  • Java EE 8 is for spec leads and innovators. And this is pretty true. If you really want to talk about something that is hopefully going to be announced at JavaOne 2016, you better be an expert group member or part of an Adopt-A-JSR initiative or an active committer on an Open Source Project that strives to deliver an early implementation. I might consider other community activities which want to help shape EE 8. But beyond this point, it might be a bit trickier to get a talk about EE 8 into this year with my votes on it.
  • Java EE 7 is where the music plays. This is what we are hopefully using today. And weather you want to talk about an individual specification or full-stack, or if you want to showcase your app/product based on it. Or if you have a migration story to share or some real production war-stories. This is right up my alley. 
  • Deployment War Stories are yesterday. We want success stories. Tell us what did work, what didn't and how you solved it. Surprise me with an entertaining talk about how you made an enterprise release more often than 2 times a year. How you package and deliver your application. How have you been able to implement a DevOps workflow? Crossing the Container bridge here, you might consider adding the Cloud and Container track as a second potion.
  • Security is your wildcard. Because it's my favorite topic. If you solved some complex rights and roles requirement and did that done with a decent performance, or if you came up with a highly secure x-factor authentication solutions, I would love to hear about that.
  • Product pitches are for beginners. We do know better, don't we? Wanna talk about JBoss EAP or WebSphere or WebLogic? I'm sure there's a conference for that. I want to hear people talking about Open Source and community driven projects. How they contributed, how they used them successfully. 
In more general, there are some good write-ups about how your submission should look like. Arun did a great summary and I think some basic tips are also included on the JavaOne website. Please, keep in mind, that the program committee members might not know you. And we all invest double digit hours into reviewing all the amazing submissions. So, please make it as easy as possible for us and try to walk in our shoes a bit before submitting.

Good Luck! We're nothing without you! Keep trying and give us your best! I can't wait to see what you come up with. Submit your proposals today. Time is running out!

Tuesday, April 21, 2015

Time to toss out Java SE 7 - JBoss EAP 6.4 is here!

12:00 Tuesday, April 21, 2015 Posted by Test No comments:
What a great end to the week. JBoss EAP 6.4 was released and among a ton of technical enhancements and new features, the biggest is: Java 8 has been added to the list of supported configurations. And this includes the Oracle JDK and IBM JDK.

Java SE 7 End of Public Updates Notice
After April 2015, Oracle will no longer post updates of Java SE 7 to its public download sites. Existing Java SE 7 downloads already posted as of April 2015 will remain accessible in the Java Archive on the Oracle Technology Network. Developers and end-users are encouraged to update to more recent Java SE versions that remain available for public download in order to continue receiving public updates and security enhancements. This means, that Java 7u79 and 7u80 are the last public releases of Java 7. So, I guess, that we're just in time with Java 8 support.
And please keep in mind, that this is a supported update of the Java SE version. The Java EE implementation version still sticks with Java EE 6!

WildFly vs. EAP - A Symbiotic Relationship
The so called upstream community project WildFly is the basis for the commercial (yet open source) JBoss Enterprise Application Platform product. While WildFly continuous to embark on the Java EE journey implementing the latest and greatest iteration of the spec, introduce a host of great new features or strive for even better performance. The mission for EAP is long term, strategic and JBoss EAP follows up with a clear focus on enterprise level performance and stability, long term maintenance and first class professional support.

To download JBoss EAP as a developer you must have a JBoss.org account. You also need to accept the terms and conditions of the JBoss Developer Program which provides $0 subscriptions for development use only. Read more about the JBoss Developer Program.

For further information and details refer to the full JBoss EAP 6.4.0 documentation suite.

Monday, April 20, 2015

The Java Council: First vJUG Podcast. Microservices, Events and all Java.

09:00 Monday, April 20, 2015 Posted by Test No comments:
, ,
I was invited to join the vJUG and give a talk about Large Enterprise Java Architecture and as a follow-up I also had the chance to be among the first guests of the newly created Virtual JUG Podcast.

Recording the Podcast with Hangouts, Audacity, Skype and Google Docs.
Featuring regulars Simon Maple, Trisha Gee and Martijn Verburg with guests Markus Eisele and, Daniel Fullarton. The team did a great job guiding the guests through the show. We talked about all kinds of things, like past events and happenings, looked at the most recent developments in and around Java and also reviewed the latest community news. I think, it's been a very funny hour and we covered a lot.
Thanks again for inviting me, it's been my pleasure. Get the podcast from the Virtual JUG page and have something to listen during your commute or lunch-hour. Don't forget to get a #coffee+++! ;)

TIMINGS: (Show Notes)
Community News: 18:55
Events/New Product Releases: 38:10
In the News: 1:01:10
Rant/Inspiration of the month: 1:11:17
Total Length: 1:16:58

Friday, April 17, 2015

How To Use The Docker 1.6 Windows Client

15:00 Friday, April 17, 2015 Posted by Test No comments:
, ,
Newest Docker 1.6 release was pushed yesterday. Normally, no reason to go crazy, but this time I think, it's worth a blog. Because, it finally contains the first Docker Client for Windows. If you hated having to ssh into your instance and having to do everything via boot2docker: This is over now.
You can download official distribution of Docker Client for Windows by either installing it from the Chocolatey package manager (which I never tried before) or installing Boot2Docker, which provides a Docker-ready development environment inside a local virtual machine (VirtualBox). You can also simply upgrade your Docker VM with boot2docker (stop || download || start).

Installing Boot2Docker And The Windows Client
I went down the road I did before and re-installed boot2docker completely. A very simple and clear experience. Please refer to the complete Windows installation instructions, if you run into any errors.
The Boot2Docker start shortcut initializes and starts your docker VM. Although you will be using Windows Docker client, the docker engine hosting the containers will still be running on Linux. Until the Docker engine for Windows is developed, you can launch only Linux containers from your Windows machine. If the VM is up and running, just open another command prompt and try the new Docker Windows client. Make sure you have initialized some environment variables first:

set DOCKER_HOST=tcp://<IP_ADDRESS>:2376
set DOCKER_CERT_PATH='C:\Users\%USERPROFILE%\.boot2docker\certs\boot2docker-vm'
Now just enter "docker" and you have successfully launched the client.

This is it. If you want to make sure, everything is working, just try to run the hello-world example:

docker run hello-world
And it's done. So, now you have the full user experience of the windows command prompt without having to go through boot2docker ever again. Just start your docker VM via VirtualBox and use the new windows client tooling. All this was mainly done with help from Microsoft. Ahmet Alp Balkan (@ahmetalpbalkan) was the main committer and he also blogged about the client yesterday.

Tuesday, April 14, 2015

How to contribute to JBoss WildFly? Hacking on the next Java EE Version!

13:00 Tuesday, April 14, 2015 Posted by Test No comments:
, ,
Paul and I are running the Virtual JBoss User Group and we aim for delivering interesting and high profile talks around all kinds of JBoss projects and technologies. I normally don't blog about every upcoming meeting, but let me highlight some, which I find very interesting and I am very happy to have them on our channel.

How to contribute to JBoss WildFly? Hacking on the next Java EE Version - Tuesday, April 21, 2015, 5 PM UTC
Speaker Kabir Khan (@kabirkhan, GitHub) will explain how you can contribute to the WildFly project at many different levels, from properly reporting bugs in the forums and issue tracker, to actually being able to submit a pull request.

Kabir Khan joined JBoss in 2004 and lead the JBoss AOP project. During this time he helped write the first EJB 3 implementation, and helped on integrating JBoss AOP with other projects such as JBoss Messaging, and the JBoss Microcontainer. He joined the JBoss Microcontainer team in 2009, and spent a lot of time optimising its performance for JBoss AS 6. In 2010 he joined the WildFly team very early in the JBoss AS 7 cycle, and has been a member of the core WildFly team since. He is based in London.

During this interactive event you will have a chance to play with WildFly 9 and try some of the following:
  • Find a JIRA you want to work on.
  • See how to check-out the code and setup your IDE.
  • Build WildFly
  • Code walkthrough - code organisation, jboss-modules etc.
  • Debug something from a stack trace in a JIRA issue to nail down the problem.
  • Try the testsuite
  • And more!
There are Lots of new features in @WildFlyAS v9.0 Beta1! Get it now!. Make sure to check out the release notes. If you want to learn more about the Red Hat JBoss offerings around Enterprise Java and how to get started, checkout the convenient one-stop-page.

Make sure to join the vJBUG on Meetup and register for Hacking on WildFly 9.

Monday, April 13, 2015

Developer Interview (#DI17) with Alex Soto (@alexsotob) Arquillian, Docker and Testing In Containers

08:06 Monday, April 13, 2015 Posted by Test No comments:
, , ,
Developer Interview time again. Not a Friday, but it was recorded on one. And because it is so awesome, I decided to push it out as soon as I can. Fellow Arquillian contributor Alex Soto (@alexsotob) found some time to briefly walk us through what Arquillian is, and how it works and deep dives into the new extension called Cube which is an extension that can be used to manager Docker containers from Arquillian. With this extension you can start a Docker container with a server installed, deploy the required deployable file within it and execute Arquillian tests. The key point here is that if Docker is used as deployable platform in production, your tests are executed in a the same container as it will be in production, so your tests are even more real than before.

Alex is a software engineer architect in Scytl Secure Electronic Voting and he is focused in enterprise technologies based on the Java platform. He has over a decade of experience in the Java world, yet continually renews his skill set by learning new aptitudes and technologies every day.
He is a passionate of Java world and he believes in the open source software model, free software, and open standards and how they can help companies to delivery software faster and safer. Alex is the creator of NoSQLUnit project and team member of Arquillian and Asciidoctor. Currently he is a member of JSR374 (Java API for JSON Processing) Expert Group, coordinator at Barcelona JUG and organizer of JBcnConf. Moreover he collaborates with Tomitribe, the company behind Apache TomEE.
Alex has contributed to DZone site, TheServerSide web, Methods and Tools magazine and RebelLabs blog and currently he is writing a book for Manning about Arquillian. Moreover he is an international speaker, presenting his talks at software conferences like Devoxx, LinuxTag, Codemotion, Guatemala JavaDays, JavaLand or GeeCon.
Alex is also the curator of lordofthejars.com blog, a place to talk about Java world, testing automation and continuous delivery in a practical way. In his free time, he spends time with his wife and daughters.

Time to sit back, relax and learn. Warning: This is a little longer, than just a #coffee+++ break!

Friday, April 10, 2015

What Do Assistant Dogs And Java Have In Common?

11:11 Friday, April 10, 2015 Posted by Test No comments:
, ,
You already know, that the RebelLabs team generates awesome content and you might have come across one of their surveys in the past. I occasionally tweet about them, but just recently they launched something which directly went down to my heart.

What do Assistant Dogs And Java Have in Common?
Actually, RebelLabs started to donate money to charities for each completed survey. And this time the survey is all about Java performance, profilers and tooling. It takes three minutes to complete and you can be sure to get an awesome looking, kick-ass report in return. Just compare the 2014 "Java Tools And Technologies Landscape".
And where do the dogs come in? This time its all about "dogs for the disabled". Dogs for the Disabled is working to provide solutions to help people with a wide variety of different disabilities and conditions; from assistance dogs helping children and adults with physical disabilities and families affected by autism, to pet dog autism workshops, and innovative new projects working in schools and residential care settings.

Stop reading right here and go directly to the survey. Help Disabled Children by Contributing to the RebelLabs' Java Performance Survey!

Thursday, April 2, 2015

JavaLand4Kids Celebrates Successful Premiere and Thrills Tomorrow's Little Programmers

13:24 Thursday, April 2, 2015 Posted by Test No comments:
All of my readers should know, that I am part of the organizing team behind JavaLand. We celebrated JavaLand just a short week ago and it was amazing to catch up with all of my peers from around the world and bring such an amazing event to Germany.
One part, which I am very proud about is the JavaLand4Kids initiative that was launched this year. Modeled and inspired by Devoxx4Kids this was one of the many exciting new parts that we decided to introduce after last years inaugural version.

14 boys and girls of the 3rd and 4th grade of elementary school were able to convince themselves that programming is easy at the first JavaLand4Kids. In three exciting workshops, the children learned with great enthusiasm and fascination about creative ways to handle a computer and were given playful insights into current technologies.

In the workshop, the girls and boys learned the programming language "Scratch", which is based on graphic elements. Instead of a traditional programming language, this language uses colored blocks that can be moved by drag & drop and so determines the use of sounds, images and movements. This allowed the young talents after a short time to learn the basics of programming and to take the first steps in game programming.

The "QuadroCopter" workshop was exciting, too: Here, the children had the opportunity to control a drone that was programmed specifically for this event. After they learned the basic commands, the newly minted pilots were able to complete many maneuvers. The girls and boys also showed great interest in the electronics kit "TinkerForge". The electronic components can be combined like Lego blocks. This way, the students learned how to handle sensors and their programming.

The accompanying teacher, Jörn Diercks, was thrilled by the concept of JavaLand4Kids as well: "For the children it was really a great experience and it was great to see how much fun they had exploring." He will be happy to attend again next year and to intensify the cooperation.

From now on, JavaLand4Kids is going to be an integral part of the JavaLand Conference. So, this is a call to arms for my friends and speakers. If you want to contribute for next years edition, if you have ideas and want to help shape the next edition, ping me!
I'm personally most interested in adding some more intercultural and speech competencies into all this. But with this new initiative, we will have a great chance to help shape the future of our industry.

Next years edition will take place March 8–10, 2016 and you can already signup to our notification system to be the first to know when registration opens.
Most of the slides are already available for download. Go, checkout the website.
If you had a chance to attend JavaLand, please make sure to send in your feedback. We want to improve and this is your chance to make your voice heard.

Architecting Large Enterprise Java Projects - My Virtual JUG Session

07:46 Thursday, April 2, 2015 Posted by Test No comments:
, , ,
I had the pleasure to be invited to the virtual JUG yesterday. It is a big honor for many reasons: First of all, I am part of the vJUG board and second because it was my second time presenting to this great group of Java interested people. It is always a pleasure to be invited back.

Architecting Large Enterprise Java Projects
In the past I’ve been building component oriented applications with what I had at hand. Mostly driven by the features available in the Java EE standard to be “portable” and easy to use. Looking back this has been a perfect fit for many customers and applications. With an increasing demand for highly integrated applications which use already available services and processes from all over the place (departmental, central or even cloud services) this approach starts to feel more and more outdated. And this feel does not come from a technology perspective but from all the requirements around it. Having this in mind this presentation is the starting point of a series of how-to’s and short tutorials which aim to showcase some more diverse ways of building (Java EE) applications that fit better into today’s requirements and landscapes.

The slides have been published to slideshare. Feel free to provide feedback and comments on this post or reach out to me on Twitter (@myfear).

Make sure to join the vJUG and follow the awesome sessions live.

Wednesday, April 1, 2015

Review: "WildFly Configuration, Deployment, and Administration - Second Edition" by Christopher Ritchie

13:04 Wednesday, April 1, 2015 Posted by Test No comments:
, , ,
Travelling has downsides. Especially when coming back to the office to catch up with all the tasks being actively postponed. One of them has been sitting here for too long: It took me a while to get this latest review for Packt Publishing out the door. But this is the good side of traveling, you have plenty of time to read and educate yourself on topics.

WildFly 8 is a modular, lightweight, Java EE-compliant application server. Application deployment and management is simplified with WildFly's centralized and easy-to-use administration interface. It supports high availability and latest web technologies, such as web sockets and a non-blocking API. There was previously a lack of a system-administration-free platform that allowed the scaling of Java EE applications, but WildFly 8 in combination with OpenShift fills that gap.
The book starts with an explanation of the installation of WildFly and application server configuration. Then, it moves on to the configuration of enterprise services and also explores the new web container Undertow. It then covers domain configuration, application deployment, and application server management. By the end of the book, you will have a firm grasp of all the important aspects of clustering, load balancing, and WildFly security. This guide is invaluable for anyone who works with or is planning to switch to WildFly.

Book: WildFly Configuration, Deployment, and Administration - Second Edition 
Language : English
Paperback : 402 pages [ 7.5 x 0.9 x 9.2 inches ]
Release Date : November 25, 2014
ISBN-10: 1783286237
ISBN-13: 978-1783286232

About the Author
Christopher Ritchie (@ChrisRitchie123|blog) is a Sun Certified Programmer with over 10 years of software experience. Having worked in both the UK and South Africa markets, he has worked on a variety of software applications, ranging from online gaming to telecoms and Internet banking. He has a keen interest in the WildFly application server and is an advocate of Java EE technologies. He currently works as a technical lead at the company he confounded, Sports Science Medicine Software, in South Africa. The company's core product is a research-based application that allows the profiling of soccer players through injury and exposure assessment.

The Content
353 net pages without intro and appendix is a good deal for this book. Eleven chapters cover nearly every aspect of WildFly. This includes basics, like installation and goes all the way to cloud computing with WildFly on OpenShift. The separate chapter on securing WildFly is my personal highlight here. The book was build on top of WildFly version 8.x which fully supports Java EE 7 development on top of Java SE 7.

Chapter 1: Installing WildFly
Chapter 2: Configuring the Core WildFly Subsystems
Chapter 3: Configuring Enterprise Services
Chapter 4: The Undertow Web Server
Chapter 5: Configuring a WildFly Domain
Chapter 6: Application Structure and Deployment
Chapter 7: Using the Management Interfaces
Chapter 8: Clustering
Chapter 9: Load-balancing Web Applications
Chapter 10: Securing WildFly
Chapter 11: WildFly, OpenShift, and Cloud Computing

Writing and Style
Generally the instructions are clear and the many screen-shots are helpful. The overall level of detail and mixed in complexity is appropriate and in case you need it you can download the source code from Packt. I like the clear English writing which identifies the author as a native speaker. I would have wished for more command line examples and a little less XML snippets. The conceptual pictures in the book could be a bit clearer and bigger. But this is pretty much everything I have to criticize. 

Conclusion and recommendation
If you are looking for a most complete introduction and you're tired about trying to find the bits and pieces in the online documentation, this book is for you. Also, if you are the kind of person which needs examples and screenshots this book is for you. The very appealing writing style helps in getting all the points across. The unique selling point obviously is the end-to-end coverage of all related topics in a detailed enough way to let you experience WildFly installed locally and on OpenShift.