Sunday, August 31, 2014

Start your xPaaS Journey with OpenShift.

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

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

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

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

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!