I'm a JBoss core developer at Red Hat, and the AeroGear project lead. I previously lead the RichFaces project, and have been involved in many other open source projects such as Seam, and JBoss AS. I'm passionate about promoting open source, community, and standards. I server as a W3C representative for Red Hat, and have been part of multiple Java Community Process (JCP) specifications, currently on the JSON API expert group. I have been architecting and developing enterprise applications and projects for over fourteen years, specializing in mobile device integration, web tier frameworks, UI design, and integration.
Which reminds me :-)
Our new project site launched a little while back with a new responsive design, docs, and project information! Check it out for all the details on AeroGear, our plans, and libraries!
As the AeroGear team and project have been expanding, so have our mobile efforts at Red Hat and JBoss! My time has been split between many different things across them all.
That is why, I've asked Qmx to take on the project lead role for AeroGear. He's has been with AeroGear since nearly the beginning and brings a wealth of open source, server and client based experience to the team! As is often the case he's already been doing the job for a while now, and doing great at it!
I'm not going anywhere, and will still be deeply involved in the AeroGear project as well as other mobile related efforts at JBoss!
And finally, as I've said, this isn't your father's JavaEE project, but Aerogear is certainly open source, and we're always looking for people to get involved, ask questions, or provide input! We'd appreciate your feedback! Stop by our IRC channel #email@example.com, or our community site and mailing list and see what we're up to!
It's been a little while since I wrote about AeroGear (and we're still hiring by the way!) so I wanted to take a minute and give a bit of an update and preview some things we are working on.
For those of you that did not get a chance to make it to JBoss World it was a great conference for mobile, and AeroGear was everywhere! It all started at the opening keynote demo showcasing jBPM, mobile, and other JBoss technology. The AeroGear team worked with the rest of the demo team to create a JBoss toy store application, both in mobile web and native versions using Apache Cordova. We also deployed the application using AppBlade, a partner of ours that allows for enterprise provisioning of native mobile applications. You can check out this video by Burr Sutter for a technical run through of the various parts. You can also download the source, and try it all out for yourself here.
There were several other sessions, BOF's and labs related to mobile development and AeroGear. In one of the AeroGear sessions I discussed where the project is, and what our upcoming plans are. I wanted to share these more broadly, and from that this blog was born!
One of the first things I mentioned is that the AeroGear project site needed a revamp! It was authored using a content management system (CMS), and as such could not really showcase some of the advanced functionality that we wanted to use. We also wanted to update our roadmap and wiki pages with the items below, and have them be easier to maintain.
So we're moving our project site to use Awestruct, a great tool for developing project sites that look great and let you have more control. In this we are following the footsteps of TorqueBox, Immutant, Arquillian, and JBoss Developer Framework. This means our site will be developed on github, and hosted on JBoss.org just as before, only better :-)
For our docs and wiki we're going to be moving to AsciiDoc, which is a lot like markdown, but even more powerful and supported by github! This is another great option for open source projects that want their documents to be functional, beautiful and pull request-able.
We'll be getting these updates in place as soon as possible, hopefully in the next week or two!
As I mention in the current
In my presentation I talked about what these libraries would address:
- Persistence (secure content access via REST & Websockets, including bean validation and more)
- Security (authentication, authorization, content encryption, and IDM)
- Messaging & Connectivity (Integrated CDI eventing, JMS, native/non-native push, Websockets)
- Data Sync & Offline support (Auto sync of various content across clients/servers, collision handling, and local cache)
Providing a server-side foundation for some of this functionality is also a new, early stage light-weight MVC that QMX developed called AeroGear Controller. While our client libraries will not depend on this entirely, some of the advanced functionality may require it, a lot of that is still TBD. To join in, check out QMX's blog aerogear controller 1.0.0.Alpha is out!
So keep your eyes open for more from us in the near future, and jump into our IRC channel (#aerogear @ irc.freenode.net), forums, or mailing lists if you are interested in lending a hand or seeing whats going on!
JBoss is looking to expand our mobile team to develop the next generation of mobile enabled technologies around native, hybrid, and web based applications with AeroGear! These are world wide, remote positions working with the best open source company in the world - Red Hat!
Not only will we be working with JBoss's own projects, we'll also be working with and contributing to other 3rd party, open source projects such as PhoneGap/Cordova, jQuery, and other related efforts. We win, when the entire ecosystem is healthy and growing!
Are you a passionate developers? Do you enjoy open source? This is your place! We're hiring multiple positions, and skill-sets around the world:
- Client/Server - Are you comfortable with both the server, and client side of the today's most advanced applications?
- Hybrid Mobile - Have you already created applications with Apache Cordova, Sencha Touch 2, or other related hybrid technologies?
- Native Mobile - Objective-C, and Android Java don't scare you! Are you're looking for a challenge, making it easier to use powerful backend features?
Due to a system change the original links to the positions are no longer working (I've updated them now). Please use this link to find the open positions. You can apply to any of them for any of the positions.
As a JBoss core developer you will be expected to be a community member/leader in our open source projects, and eventually a voice for AeroGear, and JBoss in general. The intangibles are just as important as the right skills. A great attitude, motivation, working effectively in remote groups, and drive are also very desired.
So, you're interested? Submit your resume today using the links above, and we'll get the process started!
If you have any questions about the project, the roles, or the team, contact me, Jay Balunas, or others on the team in the #aerogear channel on irc.freenode.net. We'll be happy to talk with you, or answer any questions you may have!
If you have ever wanted to work on an open source project full time, and be part of a special group of developers, this is your chance!!
We've just released the next milestone of AeroGear, 1.0.0.M4. In this release we've created a Ruby on Rails version of our POH5 kitchensink demo to bring home the full advantage of polyglotism on the JVM with TorqueBox, a Ruby application server built on JBoss AS7 and JRuby, we also finalized our core quickstarts and archetype, as well as, pushed forward on security prototyping with DeltaSpike.
Since our kichensink demo's are Plain Old HTML5 (POH5) based, we're not restricted to one server-side technology or language, sky's the limit! So you can check out our hosted Ruby on Rails kitchensink demo with TorqueBox version, for POH5 + JavaEE take a look at the updated getting started, wiki and we've also updated our Cordova version of the kitchensink as well.
- Ruby on Rails mobile example based on POH5 with TorqueBox
- TorqueBox demo alive and running on OpenShift
- Updated our core POH5 + JavaEE backend demo at http://poh5-aerogear.rhcloud.com
- Arquillian and Java EE specs upgraded for our quickstart and archetype
- DeltaSpike integration and updates on security prototyping
- Updated our 5 minutes to mobile video too!
- Updated our JBoss Tools integration with JBoss Central
- Solved several minor bugs, and other miscellaneous items
In M4 we gave Ruby a try to backup our POH5 example. Now we've got our core POH5+JavaEE, POH5+Ruby, and Cordova+JavaEE examples all in place to show different ways to development mobile applications with JBoss.
A lot of JBoss core developers will also be present at the Mobile/HTML5 BOF discussing the future of mobile development and HTML5, so join us there and register for JUDCon Boston, and/or JBoss World 2012! Stay tuned to further releases!
Aerogear is open source, so feel free to get in touch if you have any questions about mobile development with JBoss technologies. We'd appreciate your feedback! If you've got mobile or HTML5 requirements and you're wondering how to move forward post to our user forums, or stop by #aerogear @ irc.freenode.net.
The getting started wiki is fully updated, and we've also added a repository and wiki page to kickstart your Cordova application with AeroGear. The great thing about Plain Old HTML5 (POH5) and Cordova is that nearly all of the web based functionality is the same, so our Deep Dive wiki gives you all the details you need to build your own.
- More polish on the core quickstart and archetype
- Apache Cordova/PhoneGap example, and wiki page
- Upgraded to jQuery 1.7.1 and jQuery Mobile 1.1
- Ruby/TorqueBox mobile example started
- Began security prototyping and integration with DeltaSpike security
- Developed a proof of concept (PoC) for a light mvc to integrate security
- Updated OpenShift deployment instructions
- Updated our live demo at http://poh5-aerogear.rhcloud.com
- Resolved various bugs, and miscellaneous items
- Switched to a developer mailing list from our developer forums
With M3 we've started development into new mobile technologies, and functionality. For M4 we'll be completing the TorqueBox example, updating the Cordova application, working on a new shopping cart example, and focusing on getting an alpha version of the security/mvc work in place.
The M4 release will likely be a shorter release for various reasons, so we'll get what we can in for it, and plan to have as much as possible ready by the time JUDCon and JBoss World comes around in June!
A few of us will speaking at JBoss World, specifically myself, and Doug Campos a.k.a. Qmx. We'll be discussing AeroGear and much of the work and features above, plus some extras! Also as part of the Mobile/HTML5 BOF several JBoss core engineers and experts will also be discussing the future of mobile development both at Red Hat, and the larger enterprise ecosystem, so join us there! If you want the latest, and I'm sure you do, register for JUDCon Boston, and/or JBoss World 2012!
Aerogear is a new open source project, and like any other new project we would love developers to stop by, check us out, give us some feedback, and join our ranks if you're interested! If you've got mobile or HTML5 requirements and you're wondering how to move forward post to our user forums, or stop by #aerogear @ irc.freenode.net.
We're always looking for new team members, so if you've got server/client side skills, mobile, HTML5, or native/hybrid app experience, and a great attitude let us know! You can also just jump right in by checking out our Contributing to AeroGear page.
The getting started wiki has been fully updated to show you how to build your own mobile/HTML5 based application. This means built, tested, and deployed to JBoss AS 7.1 in just a matter of minutes. Giving you a great base to build your own application from. Then our deep dive wiki gives you all the details you need to need for our HTML5, CSS3, jQuery Mobile, JAX-RS endpoints and more.
- Updates to our responsive design for better client and resolution handling
- Updated look and feel for both desktop, and mobile interfaces.
- Added JSONP support for cross domain access to our endpoints.
- JBoss Tools 3.3 Beta1 integration with JBoss Central
- Integrated with OpenShift's AS 7.1 cartridge with deployment straight from JBoss Tools.
- Lots of updates to comments, and docs for better self explaining source
- Updated our live demo showing this all on OpenShift
- Added our HelloWorld quickstart to the mix
We're still just getting started, and our M3 release is going to dig into more advanced areas. We'll be looking at hybrid application support, application based security for clients and endpoints, and more. We'll also be creating our own advanced example set to showcase different technologies and approaches for mobile development with JBoss.
Stay tuned for 1.0.0.M3 in the next 6-8 weeks, and remember this is open source - so if you've got an itch and an idea stop by our forums, or our IRC channel to share! If you are interested in a more permanent situation - we're hiring!!! We're working on all aspects of mobile development, so if you want to play with some of the hottest technologies on the planet - contact me!
Just as a reminder we’ve got team meetings on IRC at #aerogear @ irc.freenode.net, user, and developer forums, all of our code is up on github for sharing, and we’re always looking for motivated developers to step up and join the team!
Success comes with a strong community, and everyone getting involved however they can! Bring your questions, and opinions, and let's hear from you!!
We’ll be covering all aspects of mobile application development! This includes the latest HTML5 technologies used in the mobile web, and in hybrid application frameworks like the Apache Cordova. All the way to JBoss AS based services, mobile RichFaces/JSF2, tooling, and native application support, and prototyping.
To wet your whistle we’ve put together a 5 minute video to show you how easy it is to get from zero to a mobile web application with cloud hosted services on JBoss.
Just in case you missed it at the end, the link to the live hosted demo on Openshift is at http://poh5-aerogear.rhcloud.com.
Assuming that got your interests up, we go a lot deeper. Our step by step guide on building this HTML5 mobile application yourself, including where to fork it on github is available right on our wiki page. There are also guides detailing the specifics on single page applications, HTML5 updates, CSS3, jQuery Mobile, RESTful endpoints, and more here.
However, at the same time we'll be developing new mobile[native, hybrid, and web] based frameworks for solving real concerns of enterprise developers. The most immediate of these include offline data synchronization, security, container integration, and support across a broad range of devices.
We’re currently designing and discussing some of these solutions, and want your input! Head over to the AeroGear Developer space for more. We plan on moving pretty fast here and hope to have some real world prototypes up and running soon.
Whether you are a long time Java EE developer looking to migrate existing applications to mobile clients, or client developers looking for a powerful back-end for your applications this is where you can learn more about both, and become part of the community building it!!
We’ve got team meetings on IRC at #aerogear @ irc.freenode.net, user, and developer forums, all of our code is up on github for sharing, and we’re always looking for motivated developers to step up and join the team! We’ll be speaking at up coming conferences and JUGs around the world, as well as having regular blogs, webinars, and screencasts! Watch this space and our forums for the latest.
Success comes with a strong community, and everyone getting involved however they can! Bring your questions, and opinions, and let's hear from you!!
In my previous blog about Brian Leathem becoming the RichFaces project lead, I mentioned that the release of RichFaces 4.1 is imminent. It is not longer imminent, but upon us!
I'm very happy to say that today Brian announced the release of RichFaces 4.1.0.Final!! This is a great release for RichFace and JSF, please take a look at Brian's blog for all the details, and keep an eye out for some follow up blogs highlighting the new features!
The release of RichFaces 4.1 is imminent and with it brings some great advancements to the project and JSF! Among the most notable are additional mobile support, push upgrades, new components, and more.
Recently however, I’ve been focusing on more general mobile and HTML5 initiatives. You can see some of what I’ve been up to in the webinar I had Wednesday Dec. 7th on getting started with HTML5/Mobile development with JBoss (recording will be available soon).
This has meant that I’ve not had the time to dedicate to RichFaces that it deserves, and so I’m thrilled that we have an engineer and leader like Brian Leathem who has agreed to lead the project into the future!! He is already the seam-faces project lead, and has been a critical member of the RichFaces for some time!
Brian and the rest of the RichFaces team have not only done a great job on RichFaces 4.1, but also have some great plans for the future of RichFaces. Brian has started to outline these to start the discussions. This is only going to pick up steam once 4.1 is out!!
I’m not just going to disappear though, mobile and HTML5 are certainly an integral part of RichFaces! Keep an eye out in this space for more from me and JBoss about all aspects of mobile application development including mobile web, hybrid, and native techniques.
I wanted to take a moment and thank the RichFaces team and community! I’m could not be more proud of the people that use and develop RichFaces. Through our forums, weekly meetings, and now github we’ve seen a huge increase in contributors, users, and colleagues. To all of you:
We're going to dive down into the rabbit hole, and follow up on Wesley Hales great video on deploying the mobile web optimized RichFaces TweetStream application to Red Hat's new, free PaaS offering OpenShift Express complete with JBoss AS 7 under the hood!
There has already been a lot of coverage on OpenShift, and the mobile web optimized TweetStream app. So I'm not going to cover old ground. Check out these blogs and videos:
- JBoss & OpenShift Launch Page
- Video describing TweetStream presented by Wesley Hales and myself
- My blog explaining TweetStream in more detail
- Lukas's blog on getting tweetstream running on JBoss AS 7
- Wesley's 4 minutes to the cloud video on OpenShift Express, and TweetStream
The RichFaces team is in the process of migrating our RichFaces Showcase application from Google App Engine to OpenShift Express, we'll have it ready soon. OpenShift offers a number of benefits over GAE, it is a real Java EE container, supports RichFaces push and has a much less restrictive API
Like many other free PaaS offerings OpenShift Express does have a few limitations that you need to consider. The most important ones for our application are limited threads, and JMS support. Note that all of these go away when you move up to OpenShift Flex!
When RichFaces 4.0.0.Final was released our push component was tied to JMS. This provides excellent enterprise level messaging capabilities, but unfortunately requires some setup to use. Since JMS is not provided by Express out of the box we needed to make some changes. So for 4.1.0 we are adding in a few options!
Starting with RichFaces 4.1.0.M1 RichFace Push can be decoupled from JMS. All that is needed is to set a context param:
<context-param> <param-name>org.richfaces.push.jms.disable</param-name> <param-value>true</param-value> </context-param>
This will switch push to using an internal message queue. Look for further blogs, and documentation on this in the future. This is also one step closer to our plan to support CDI events as part of RichFaces Push.
Another change that was needed was moving to a snapshot version of Atmosphere. Atmosphere had a bug where it was creating a new thread for each request - ouch! Since OpenShift Express has limited threads available we needed a way around this.
Thankfully this issue was fixed in the Atmosphere 0.8-SNAPSHOT branch. This version of Atmosphere is due to be released in August, and RichFaces will use it by default once it is (likely in the 4.1.0.M2 release).
For now - if you are working on your own RichFaces push application and deploying to Express you'll need to override the Atmosphere version. This is simple enough with Maven, just add the following to your pom:
<dependency> <groupId>org.atmosphere</groupId> <artifactId>atmosphere-runtime</artifactId> <version>0.8-SNAPSHOT</version> </dependency>
As was discussed in some of the linked blogs, the TweetStream application uses Infinispan under the covers to provide caching for the tweet data that we process. Infinispan in cluster mode uses jGroups to provide advanced communication support.
The problem here is the threading that accompanies this. For TweetStream it is important to make sure that you are using Infinispan in LOCAL mode. The latest TweetStream source has been updated to use the LOCAL cache.
Now that we've gone over updates that are needed to take advantage of OpenShift Express I encourage you do give it a shot on your own. The source code is in the TweetStream git repo. Just follow the readme to setup and build it. Then deploy following the instructions in Wesley's video.
There will be more JBoss and OpenShift blogs and videos coming out, so stay tuned and check out JBoss and OpenShift page for the latest news.