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

Sunday, August 31, 2014

Start your xPaaS Journey with OpenShift.

14:00 Sunday, August 31, 2014 Posted by Unknown No comments:
, ,
After you've hopefully read the short little introduction to xPaaS you're excited to try out all the new features and just want to get started without further reading? That is easy. The only true prerequisite for everything you do around xPaaS is an OpenShift account. And believe it or not, it is free. Like in free. If you don't believe me, follow a few simple steps to get yours today.


First and Only Step
is to visit http://www.openshift.com. You're presented with three choices. "Online", "Enterprise" and "Origin". Feel free to look around, what OpenShift has to offer, but what you are looking for is the "Online" version, which is Red Hat's public cloud application development and hosting platform.

Click the red "Signup for Free" button and simply enter your email-address, a 6 character password including the validation of it and the number/word from the captcha. When you're done, click "Signup".

What's next?
Check your inbox for an email confirming your account. You must click the link in the email to complete the registration process. If you do not receive an email within a few minutes, check your Spam folder to ensure it was not incorrectly moved. If you still run into problems you might consult the FaQ, send an email to the openshift team or see them on IRC (freenode/#openshift).
The link in the email sends you to a website, where you have to validate and accept the terms and conditions. Now you're all set. No credit-card, no mailing-address, no nothing. You have your own Openshift account ready.


Getting Started with OpenShift Online
You basically have three ways to continue your journey. Via the web-based console, via the command-line tools or via Eclipse/JBoss Developer Studio. Whatever way you decide to go, the Quickstarts are a very good thing to start with. You will be overwhelmed with the polyglot nature and the variety you can find there.

As next steps you might want to find out about:

Saturday, August 30, 2014

Bootstrapping Apache Camel in Java EE7 with WildFly 8

13:30 Saturday, August 30, 2014 Posted by Unknown No comments:
, ,
Since Camel version 2.10 there is support for CDI (JSR-299) and DI (JSR-330). This offers new opportunities to develop and deploy Apache Camel projects in Java EE  containers but also in standalone Java SE or CDI containers. Time to try it out and get familiar with it.

What exactly is Camel?
Camel is an integration framework. Some like to call it ESB-lite. But in the end, it is a very developer and component focused way of being successful at integration projects. You have more than 80 pre-build components to pick from and with that it basically contains a complete coverage of the Enterprise Integration Pattern which are well known and state of the art to use. With all that in mind, it is not easy to come up with a single answer. If you need one, it could be something like this: It is messaging technology glue with routing. It joins together messaging start and end points allowing the transference of messages from different sources to different destinations.

Why Do I Care?
I'm obviously excited about enterprise grade software. But always been a fan of more pragmatic solutions. There's been some good blog posts, about when to use Apache Camel and with the growing need to integrate different systems over very heterogeneous platforms it is always handy to have a mature solutions at hand. Most of the samples out there start with bootstrapping the complete Camel magic, including the XML based Spring DSL and with it the mandatory dependencies. That blows everything up to a extend I don't want to accept. Knowing that there has to be a lightweight way of doing it (Camel-Core is 2.5 MB at Version 12.13.2) I was looking into how to bootstrap it myself. And use some of it's CDI magic.

The Place to Look for Ideas first
Is obviously the Java EE samples project on GitHub. Some restless community members collected an awesome amount of examples for you to get started with. The ultimate goal here is to be a reference for how to use the different specifications within the Java EE umbrella. But even some first extra bits have been included and showcase an example from different areas like NoSQL, Twitter, Quartz Scheduling and last but not least Camel integration. If you run it as it is in latest WildFly 8.1 it is not working. The cdi extension of Camel makes it a bit tricky to do it, but as mentioned in the corresponding issue, there is a way to get rid of the ambiguous CDI dependency by just creating a custom veto extension. The issue is filed with Camel and I heard, that they are looking into improving the situation. If you want to to try out the example, go to my GitHub repository and look for the CamelEE7 project.

How Did I Do It?
The Bootstrap.java is a @Singleton EJB which is loaded on application startup (remember, there are different ways to start up things in Java EE) and by @Inject ing an org.apache.camel.cdi.CdiCamelContext you get access to Camel. The tiny example uses another HelloCamel bean to show how to work with payload in the CDI integration.
Make sure to look at the CamelCdiVetoExtension.java and how it is configured in the META-INF folder. Now you're ready to go. Happy Coding.

And The Best For Last
Camel 12.14 is on the horizon already, scheduled to be released in September. If you have issues or wishes you want to see in it, now is the time to speak up!
Excerpt of the awesome new features, that are upcoming:


Time to get excited!

Friday, August 29, 2014

Everything Developers Need To Know About xPaaS

11:53 Friday, August 29, 2014 Posted by Unknown No comments:
, ,
I've been reading a lot about Red Hat products lately and being interested in cloud and such since some years now, it's pretty obvious for me to look into the cloud offerings from Red Hat in more detail. Arun did a great overview about JBoss xPaaS back in April this year and I thought it might be time to not only give you an overview but also point you to all the relevant information that interested developers need to know about. If I missed something, or your stuck somewhere, don't forget to reach out to me and let me know!

xPaaS= aPaaS, iPaaS, bpmPaaS, dvPaaS, mPaaS + OpenShift
A very tiny little overview to get you up to speed. To make it simple, JBoss xPaaS services is another name for having all the powerful capabilities of JBoss Middleware available as a cloud based services, ready for use on OpenShift. A main differentiator to others is, that it is not just a bunch of services with little to know integration. It is a complete set of pre-build and ready to use integrated services.


For those interested why it is called xPaaS: Gartner uses the term xPaaS to describe the whole spectrum of specialized middleware services that can be offered as PaaS. Red Hat has the complete implementation.

More basic information:
Time to dig deeper into the individual pieces. The idea here is to just breakup the streamlined names a bit and break them down to the individual products and upstream projects used in it. 

Note: Some features on OpenShift are in Alpha release state. Designed and provided for developers to experiment with and explore. And for the i and bpm-PaaS offerings which can be deployed in the free OpenShift Online gears, it is recommend to use medium or large gears for optimum performance.

aPaaS = JBoss Application Hosting + OpenShift
The app-container services of OpenShift for Java EE 6 with Red Hat JBoss EAP/JBoss AS and Java EE 7 with WildFly is there for more than 2 years already. This is the foundation of everything in the xPaaS familiy. To keep it DRY, I put everything which is OpenShift related in this section. 

More basic information:
The integration services consist of two separate offerings at the moment. One is The JBoss Fuse enterprise service bus and the other is JBoss Data Virtualization. 

More basic information:
OpenShift Quickstarts and Cartridges:
Blogs to follow:

bpmPaaS = JBoss BPM Suite + OpenShift
Business Process Management (BPM) and Business Rules Management (BRM) are the most important parts of this 

More basic information:
OpenShift Quickstarts and Cartridges:
Blogs to follow:
Various Developer Links:
The AeroGear UnifiedPush Server allows for sending native push messages to different mobile operation systems. This initial community version of the server supports Apple’s Push Notification Service (APNs), Google Cloud Messaging (GCM) and Mozilla’s SimplePush.

More basic information:
OpenShift Quickstarts and Cartridges:
Blogs to follow:
Various Developer Links:

That's it for a first overview. Let me know if you're missing something. I am committed to close the gap and make working and developing with xPaaS a fun and productive experience.

Monday, August 25, 2014

Developer Interviews (#DI 3) Christian Posta (@christianposta) on fabric8

12:00 Monday, August 25, 2014 Posted by Unknown No comments:
,
Time flies and here is the third edition of the new podcast/screencast cross-over series "Developer Interviews". I had the chance to talk to Christian Posta (@christianposta) last week. He is a Principal Middleware Specialist/Architect at Red Hat and well known for being an open-source enthusiast and committer on Apache ActiveMQ and Apache Camel. But he is actually interested in all kinds of middleware technologies and has a comparably extensible coverage on his own blog.

We've been talking about his job, his history and interests and his latest favorite project which is fabric8. So, go and grep a coffee and watch the interview.

Tuesday, August 19, 2014

Developer Interviews (#DI 2) Claus Ibsen (@davsclaus) About All Things Camel

13:11 Tuesday, August 19, 2014 Posted by Unknown No comments:
, ,
In the second edition of my developer interview series I had a chance to talk to Claus Ibsen (@davsclaus). He works for Red Hat on open source integration software such as JBoss Fuse and is Apache Camel committer. You may also know him for his book "Camel in Action".
We talked about his history in integration technologies and looked at the latest developments which are upcoming for the Camel 2.14 release which might get released in the September time-frame. Beside that he also showcased how to quickly run a demo with Maven and Eclipse and introduced us to the Camel module in hawtio.
40 minutes is just about right for a coffee and your lunch break! Go, watch it!

Thursday, August 14, 2014

All the RedHat Engineers at JavaOne

16:46 Thursday, August 14, 2014 Posted by Unknown No comments:
,
With only a few more weeks until JavaOne, I am still on the hunt for some good content recommendations. After I've looked at all the sessions from the Java Champions it is time to see what Red Hat is going to offer this year.  Beside the fact, that it is going to be a ton of interesting content you will also get a chance to meet all of them there and interact. If possible, I added a link to both the twitter profile and the blog of the speaker to make it easy for you to follow them. I hope, I haven't forgotten anybody.
And as usual at conferences; Come up to us and speak with us. We want to know what you think about the technologies we're talking about!

Lincoln Baxter III (@lincolnthree ocpsoft.org/)
Fast-Developing CRUD-like Applications with Java EE 7 [BOF2695]
Tools worth sharing: Take back your IDE with Forge [CON2675]

Emmanuel Bernard (@emmanuelbernard , emmanuelbernard.com)
MythBusters: ORMs and NoSQL—Good or Bad? [CON5186]

Sébastien Blanc (@sebi2706sblanc.org)
The Rise of Mobile Enterprise Software  [BOF7164]
How to Build Enterprise Mobile Apps That Integrate with Your Java EE Back End [TUT6006]

Markus Eisele (@myfear, blog.eisele.net)
JavaScript in the Enterprise [CON1747]
Free Java Tools for Maven and Java EE [UGF8872]

Thomas Enebo (@tom_eneboblog.enebo.com)
Modding Minecraft with a Dash of Ruby [BOF6279]

Stephane Epardaud (@UnFroMageceylon-lang.org/blog/)
The Emerging Languages Bowl: The Big League Challenge [CON4388]
Ceylon from Here to Infinity: The Big Picture and What’s Coming [CON3078]

Christine Flood
Shenandoah: An Open Source Garbage Collector (JEP 189) with an Ultralow Pause Time [CON5216]

Tim Fox (@timfoxvertxproject.wordpress.com/)
Writing Highly Concurrent Polyglot Applications with Vert.x [CON7902]

Jonathan Fuerth (@jfuerthjonathan.fuerth.ca/)
The Large-Scale Web Application Development BOF [BOF2260]
Rich HTML5 Web Apps: Typesafe Edition 2 [CON2188]

George Gastaldi (@gegastaldigastaldi.wordpress.com/)
Tools worth sharing: Take back your IDE with Forge [CON2675]
Fast-Developing CRUD-like Applications with Java EE 7 [BOF2695]

Shekhar Gulati (@shekhargulatiwhyjava.wordpress.com/)
So Many Mapping Choices—So Much Fun! [BOF1693]

Arun Gupta (@ArunGupta, blog.arungupta.me)
Lessons Learned from Real-World Deployments of Java EE 7 [CON2450]
Java EE 7 Soup to Nuts [TUT1952]
Devoxx4Kids for Parents [TUT1878]

Mark Little (@nmcl, community.jboss.org/blogs/mark.little)
Java EE 8 Community Update and Panel [CON2131]
Transactions Returning to NoSQL [CON2129]

Omair Majid
Diagnosing Performance Issues with Thermostat [CON2662]

Charles Nutter (@headiusblog.headius.com)
Going Native: Bringing FFI to the JVM [CON3979]
The Emerging Languages Bowl: The Big League Challenge [CON4388]
Script Bowl 2014: The Battle Rages On [CON2939]

Bruno Oliveira (@abstractjblog.abstractj.org)
Mobile Security B-Sides, or the Pitfalls of Application Development [BOF4495]

Steven Pousty (@TheSteve0thesteve0.wordpress.com)
Vert.x + WebSocket + Cloud = Awesome Map Tracking [CON1695]
So Many Mapping Choices—So Much Fun! [BOF1693]

Antoine Sabot-Durand (@antoine_sdwww.next-presso.com)
The Path to CDI 2.0 [CON4294]
Introducing Contexts and Dependency Injection  [CON5004]
CDI 2.0 BOF [BOF5639]
Going Farther with CDI 1.2 [CON5585]

Christian Sadilek (@csadilekerrai-blog.blogspot.de)
The Large-Scale Web Application Development BOF [BOF2260]
Rich HTML5 Web Apps: Typesafe Edition 2 [CON2188]

William Siqueira (@william_antonio, fxapps.blogspot.com)
Using Java 8 to Process Government Open Data [BOF6697]

Mario Torre (@neugensjroller.com/neugens)
OpenJDK Adoption: Learn How You and Your JUG Can Contribute to Java’s Future [BOF4884]
Diagnosing Performance Issues with Thermostat [CON2662]

Wednesday, August 13, 2014

Developer Interviews (#DI 1) @ehsavoie about #WildFly and #NetBeans

17:38 Wednesday, August 13, 2014 Posted by Unknown No comments:
I'm proud to introduce a new series on my blog. Today I'm going to publish the first interview I did with one of the amazing community members out there. I want to know more about the many amazing people that work on all kinds of JBoss and Middleware related stuff.

Emmanuel Hugonnet (@ehsavoie) is the maintainer of the WildFly Plugin for NetBeans. It's not a big secret, that I like that IDE very much and not having an official plugin available made my heart bleed. With the upcoming NetBeans 8.0.1 which is already available as a nightly build, you finally get it included right away. But let's look at the interview and hear from Emmanuel first hand what it took to make it happen and how it can be used.


Tuesday, August 12, 2014

Java Champions at JavaOne 2014

15:44 Tuesday, August 12, 2014 Posted by Unknown No comments:
,
Isn't it that time of the year again? Booking hotels and travels. Most of my fellow Java Champions (and former ACE Director fellows) are doing some kind of preparation for JavaOne and Oracle OpenWorld these days. Only a few more weeks to go and the content catalog is published. So I thought I might also spend an hour to look at good content. Let's start with talks given by Java Champions.

The Java Champions are an exclusive group of passionate Java technology and community leaders who are community-nominated and selected under a project sponsored by Oracle. Java Champions get the opportunity to provide feedback, ideas, and direction that will help Oracle grow the Java Platform. This interchange may be in the form of technical discussions and/or community-building activities with Oracle's Java Development and Developer Program teams.

Adam Bien
Enterprise Nashorn [CON2266]
Productive JavaFX 8 [CON2265]
Unorthodox Enterprise Practices [CON2301]
Java EE 8 Community Update and Panel [CON2131]
Free Java Tools for Maven and Java EE [UGF8872]
 
Anton  Epple
DukeScript: How to Put the Java into JavaScript [CON6091]
How to Program JavaScript in Java [TUT4890]
Smart UIs for Mobile and Embedded in JavaFX [BOF3453]
Get Productive with Free Java Tools [UGF8846]

Ben Evans
Understanding JIT Compilation with JITWatch [TUT3419]
Java Performance Is a Social Activity [CON3420]
Lightning Talks: Even More Productivity with Free Java Tools [UGF8906]

Trisha Gee
HTML5/AngularJS/Groovy/Java and MongoDB Together: What Could Possibly Go Wrong? [CON1703]

Simon Maple
How to Make Your JUG and Java More Awesome [BOF4004]
Community First: Bringing Java to the Community  [BOF1704]
Do You Really Get Class Loaders? [CON1700]
Development Horror Stories [BOF4223]

Andres Almiray
Functional Programmning the Groovy Way [CON3538]
Gradle: Harder, Better, Stronger, Faster [CON3531]
Build, Test, and Deploy JavaFX Applications with Ease [CON3553]
RIA Technologies and Frameworks Panel [CON2600]

Geert Bevin
Programmers Are Way Cooler Than Musicians [CON1706]
Ten Reasons Why Java Now Rocks More Than Ever [CON1725]

Regina ten Bruggencate
Duchess Meet and Greet [BOF2604]

Markus Eisele
JavaScript in the Enterprise [CON1747]
Free Java Tools for Maven and Java EE [UGF8872]

Bert Ertman
What’s Up with Modularity? [TUT1816]

Fabrizio Gianneschi
Controlling Robots with Java and ROS [UGF9651]

Frank Greco
Lambdas and Laughs [UGF9672]

Gerrit Grunwald 
Sensor Networks with Java SE Embedded and Java(FX) [CON1690]
From a Certain Point of View: Eye Tracking with Java(FX) [CON1753]
JavaFX Everywhere [BOF1578]
Catch Me If You Can: Java on Wearables [CON1835]
RIA Technologies and Frameworks Panel [CON2600]
Smart UIs for Mobile and Embedded in JavaFX [BOF3453]
Pi on Wheels: DIY Robot for Teaching Java in the Context of the Internet of Things [CON5199]
JavaFX Coding Playground (JavaFX-Based Live Editor Tool) [BOF2730]

Arun Gupta
Lessons Learned from Real-World Deployments of Java EE 7 [CON2450]
Java EE 7 Soup to Nuts [TUT1952]
Devoxx4Kids for Parents [TUT1878]

Jason Hunter
What You Need to No About NoSQL in the Cloud [BOF5296]

Michael Hüttermann
Mastering Continuous Delivery and DevOps [CON1844]

Stephan Janssen
When Basketball Meets Raspberry Pi and Android Devices and TomEE [CON1814]
Devoxx4Kids for Parents [TUT1878]

Mattias Karlsson
Java Champions and JUG Leaders Meet Oracle Executives [CON5898]
Create an Agile Learning Organization for Developers [CON5889]

Werner Keil
Java and Digital Currencies, Friend or Foe? [BOF6297]

Michael Kölling
Teaching Java with New Greenfoot Language Interactions [BOF6825]

Jessica Man
Banking on OpenJDK: How Goldman Sachs Is Using and Contributing to OpenJDK [CON5177]

Fabiane Nardon
Big Data and Java: Ask the Experts [UGF9650]

Kevin Nilson
RIA Technologies and Frameworks Panel [CON2600]

Kirk Pepperdine
Do Your GC Logs Speak to You? The G1GC Edition [CON1874]
Toward Low-Latency Java Applications [CON1873]
Lightning Talks: Even More Productivity with Free Java Tools [UGF8906]

JP Petines
JEDI and JEDI4KiDS: Planting the Seeds for the Future [BOF1687]
JEDI + Devoxx4Kids = JEDI4KiDS: A Partnership That’s Changing Lives, One Child at a Time [BOF1773]

Peter Pilgrim
Developing Java EE 7 Applications with Scala [BOF2644]

Chris Richardson 
Map, Flatmap, and Reduce Are Your New Best Friends [CON1914]

Zoran Sevarac
JavaFX 3D: Advanced Application Development [CON1993]
Creating Smart Raspberry PI Applications with Neural Networks [BOF2817]
Teaching Java with Free Java Tools  [UGF8873]
Meet the NetBeans Community, with Boeing, Jelastic, JRebel, Vaadin, and More [UGF8871]

Venkat Subramaniam
Programming with Streams in Java 8 [CON1771]
Programming with Lambda Expressions in Java [CON1770]
Applying Groovy Closures for Fun and Productivity [CON1769]
Exploring Groovy Metaprogramming [CON1768]
Transforming Code to Java 8 [CON1772]
Thinking in Functional Style [CON1767]

Martijn Verburg
Adopting Java: Create Java’s Future. Now. [UGF9754]
Habits of Highly Effective Technical Teams  [CON3409]
Free Java Tools for Maven and Java EE [UGF8872]
OpenJDK Adoption: Learn How You and Your JUG Can Contribute to Java’s Future [BOF4884]

Johan Vos
DataFX: From External Data to a UI Flow and Back [CON3640]
Running JavaFX Applications on Android [CON1804]

NetBeans Nightly Now Includes The WildFly Plugin

10:13 Tuesday, August 12, 2014 Posted by Unknown No comments:
,
Good news out there. The recent nightly builds of NetBeans (apparently upcoming 8.0.1) already contain the latest WildFly Plugin. So you don't need to add it manually and can start working with your favorite application server right away.
Try it out and grep the latest nightly build. Please keep in mind, that the nightly builds are developer builds and shouldn't be expected to be stable.

Some first steps to get started:
  • Download WildFly 8.1.0.Final
  • Install by simply unzipping into your favorite location
  • Download NetBeans Nightly for your platform
  • Install into a location of your choice
  • File > New Project > [Java Web | Maven] > Web Application
  • Give it a Name and Location and finally
  • Add a Server and select "WildFly Application Server"



If you find something make sure to file a bug.Don't forget to follow Emmanuel Hugonnet (@ehsavoie, G+, blog) who is the creator of the plugin.

Monday, August 11, 2014

Java EE, WildFly and JBoss at Upcoming Conferences

09:28 Monday, August 11, 2014 Posted by Unknown No comments:
, ,
I'm very honored to be among the great speakers with great topics that get a chance to present at the following upcoming conferences. Come and meet me to talk about all things middleware, Java EE and integration technologies.

  • JDayLviv 2014 -  Sep 6 - 7, 2014
    A one day conference powered by the Java User Group of Lviv. 12 h of content around everything Java.
  • JavaOne 2014 - Sep 26 - Oct 2, 2014
    The Java event of the year. I am going to moderate a panel at the User Group Sunday and will talk about Enterprise JavaScript. Find more details in a separate blog post.
  • OpenSlava - Oct 17, 2014
    OpenSlava 2014 is the annual follow up of the successful pilot OpenSlava 2013. A conference for emerging technologies and open-source. Red Hat is a general partner here.
  • GeeCON Prague - Oct 23 - 24, 2014
    Java-based technologies, dynamic languages, RIA, enterprise architectures, patterns, distributed computing, software craftsmanship and much more...
  • JMaghreb 3.0 - Nov 4 - 8, 2014
    JMaghreb is an annual Java and related technologies conference created in 2012 and organized by MoroccoJUG
  • DOAG Conference and Exhibition - Nov 18 - 21, 2014
    The annual conference of the German Oracle User Group. The iJUG Board Meeting will be there.

I'm looking forward to the talks and hope that you get a chance to catch me and chat if you have questions or ideas. You can follow my activities on Twitter @myfear and I will eventually post pictures to my gplus photos.

Tuesday, August 5, 2014

Review: "WildFly Performance Tuning" by Arnold Johansson and Anders Welén

10:49 Tuesday, August 5, 2014 Posted by Unknown No comments:
, , ,
I've had the pleasure to review another book for Packt. This time it is the performance tuning guide for WildFly. Arnold Johansson and Anders Welén took a deeper look into what it takes to develop and run high performance applications on WildFly and collected a bunch of tips and tricks everybody should know.

Abstract
The hugely successful JBoss Application Server has been updated and is now called WildFly. This cutting edge technology provides a free JEE-certified platform for the software of today and tomorrow. Learning to tune such a platform for optimal performance is vital for a healthy business organization, efficient development, and the smooth running of operations.

This practical book explores how to tune one of the leading open source application servers in its latest reincarnation. In this book, you will learn what performance tuning is and how it can be performed on WildFly and the JVM using solely free and open source tools and utilities.

Learn about various free tools for performance monitoring and tuning, all focused on making them work with WildFly. The tuning journey ventures through the landscape of the major JEE technologies, EJB, Servlets, JPA, JSF, and JMS. Discover best practices for the internal high-performing web container Undertow, WebServices, and REST services so that you end your journey feeling confident in tuning WildFly for optimal performance.

Book: "WildFly Performance Tuning"
Language : English
Paperback: 311 pages
Release Date: June 25, 2014
ISBN-10: 1783980567
ISBN-13: 978-1783980567

The Authors
Arnold Johansson (@swesource) is a versatile information technologist with a true passion for improving people, businesses, and organizations using "good tech". As an early adapter of the Java language and its growing ecosystem, he is an outspoken proponent of secure Java Enterprise solutions and real Open Source software. After nearly two decades as an IT consultant in many levels and verticals, Arnold now focuses on leading organizations on an architectural stable and efficient path of excellence.
Anders Welén embraced the object-oriented techniques of the Java language early in life, and later evolved to Java Enterprise specifications. As a true believer and evangelist of Open Source, he naturally discovered the JBoss Application Server, which led to years of providing expert consultation, training, and support for the JBoss and Java EE infrastructures. As a result, Anders has seen a lot of both good and bad architectures, software solutions, and projects, most of which were a struggle from time to time due to performance problems. Whenever Anders, through presentations, consultation, training, and (in this case) a book, sees that what he's trying to explain is getting through and the audience is picking up on it and adopting it for their own challenges, it gives him a warm feeling inside.

The Content
Beside the title, the book is a more general resource for performance tuning around Java EE applications. Most of the chapters do not really rely on WildFly but give general hints about performance tuning essentials, approaches and methodologies used for optimization, like the first chapter. The second chapter covers tools for monitoring and tuning of various Java EE subsystems.Chapter three gives a introductory overview about general JVM tuning principles and applies to any JVM development. Beginning with chapter four it is going to be a bit closer to WildFly. EJBs are covered in chapter 5, JMS in chapter 9 and a general pattern here is to refer to Java EE concepts and apply the WildFly specific examples and extensions.

Writing and Style
The language is clear and precise. Additional illustrations, tables, and screenshots make it an easy and understandable read. Occasional basic information about Java EE components and concepts make it easy to follow for  beginners, too.

Conclusion and recommendation
Beside the title who implies a very narrow focus, this is a book which can be a useful read for almost any Java EE developer out there. The explanations are good and helpful. If you ever had to deal with performance tuning you probably know most of those concepts but having them all in one place also makes this a perfect reference for the experienced developers.