December 19th, 2009 by Lincoln Baxter III

What a wild ride – My journey through OpenSource / JSF

It was about one year prior to this article that I wrote “JSF2 is in good hands”, in which I spoke about the upcoming release of JavaServer™ Faces 2, and how the community had changed immensely in the few years I’d been using the tool. There were changes I wanted to make, and started making them by publishing an open source extension called PrettyFaces. PrettyFaces lets you map Pretty URLs to any resource within a JSF-based web-application (eg: /example -> /faces/examples/page.xhtml). While this is stuff that other web-frameworks have been doing for years, (WordPress, Rails/Grails, etc) it’s stuff that has traditionally been hard using JavaServer Faces – until around November 2008, when the first release was published. Now, I’m relatively new to this arena – I entered the open source community for the first time about four years ago, working on PHP and Perl modules. I’ve been using it, and appreciating it, for almost my entire life in the industry, but never giving back. I suppose one question that many people ask is, “Will working on open source software get me anywhere in my career?”

Getting involved

My answer is really a simple one, and may not be unique, but for me “it just doesn’t matter.” I do this because I enjoy it. It turns out, however, that working on open source software is not only extremely rewarding for me, but it is also having a big impact on my career. I do what I’m doing because I have a passion for it, and I think good things happen whenever you follow your passion. Prove it? Well… during the first week of December 2009, I attended my first professional conference as a speaker, JSFSummit 2009 by NFJS, and presented PrettyFaces – coming nearly one year ago to the day, when I released version 1.0 (now used on production servers around the world!) I consider that having an impact. In a few months I’ll be presenting again at the Philadelphia Emerging Tech conference (April 8-9, 2010.) These are opportunities I never would have had, if not for my involvement in open source. I can only imagine what begins to happen as ScrumShark(open source agile project management tools) starts to gain footing. PrettyFaces is one small extension for JSF; with something bigger, more powerful, the sky is the limit.

Real Rewards

For JSFSummit, I was flown to Orlando, stayed at the Loews Portofino Bay Hotel across the street from Universal MGM, and met some of not only the most interested developers, but also the most prominent figures in Java web-technology today. I met folks from Red Hat, SUN, Oracle, Scotia Bank, Children’s Hospital at Harvard, and more. Even more interestingly, I met a few people like myself: young, entrepreneurial, full time developers with a passion for creativity, and producing something for the world. Cagatay Civici was someone I closely related to. He’s from Turkey, now living in London, only a year older than myself, and has created one of the simplest, most elegant component libraries – PrimeFaces – for JSF and JSF2. Like me, he works in his spare time to create something not just worthwhile, but something nobody else has done before. He does it well, and because he loves it. The satin hotel greeted me with appeal of a little faux-Italian Portofino, “how did I get here?” I raced, as my black cap-toe shoe swung open the door to a double queen room with a bathroom big enough for a party. “Wow…” I had worked – hard – for this, sometimes working as many as 8 hours a night after coming home from my full time job. I have to admit that part of me felt like pushing those double-queen beds together and jumping up and down on them. (There was no jumping, that would be highly unprofessional) After a night of food and conversation with Dan Allen – the man who really got me involved in JSF2) and his lovely wife Sarah, I was ready to go for the day-one of the conference. This was the first time we’d ever met, and I was pumped!

Day 1: Starting out strong

My first presentation was on the first full day of the conference: “Seam and RestEasy – You haven’t seen REST yet,” and let me tell you, before preparing this presentation, I certainly hadn’t. Seam handles REST in a way that I’d never thought Java would provide. Dynamic, automatic, CRUD. I gave the first half – on REST principles, and Dan finished up with the Seam stuff – making Seam/REST look like a two-piece, tailored suit. I was amazed, actually, that the presentation went so well, given that we had just met and put it together in a few hours the previous night. (We did work on the slides and demos in advance, though.) Talk about a rush – my first professional conference, and I was getting to meet people I’ve been hearing about in the industry for years: Ed Burns, Jim Driscoll, David Geary, Kito Mann, Andy Schwartz, and so many more. I was caught in a summer storm of information, wild, over before I knew it: Holistic testing of JSF applications with Stan Silvert, my first presentation with Dan Allen, Polyglot JavaServer Faces with Kito Mann, Component Framework Primer for JSF with Andy Schwartz, CDI JSR-299/Weld and the future of Seam with Dan Allen. I’ll mention the points that “blew my mind,” and really I have to say that while all the speakers were excellent, the emerging technology that “took my cake” on day one was CDI. This is a place where Java EE is finally competing with Spring, by providing powerful contexts and dependency injection to the core Java container, even J2SE with Weld. I’m telling you, Spring is great, but CDI/Weld is serious competition. I plan on switching ScrumShark over from Spring to CDI. Weld took the best parts of Spring and Guice and put them together with the J2EE platform… wow! Another night of drinks, this time with more of the J2EE community out on the patio of the hotel. Time for bed again.

Day 2: The Main Event

This was my day, and I was up bright at early – still, only six hours of sleep. Let me tell you, Jay Zimmerman, owner of the No Fluff Just Stuff conference tour, truly knows how to put on a conference. All meals were provided, incredibly balanced, and equaled only by some of the best restaurants I’ve been to. I started the day off with an egg and sausage wrap, a bowl of fresh fruit, and a cup of coffee. The first session was David Geary – Killer Web apps with JSF2.0 Ajax. “Wow,” I thought, “this guy knows how to present!” I think every other line was a joke, but I wasn’t sure because he was so clearly explaining all of the topics; I’d hire him to train at my company any day. Andy Schwartz presented JSF2 Component Behaviors Deep Dive, and with a whopping 180 slides, my head was packed with info by the end. Behaviors open up a whole new realm of component development. If you’ve ever played a role-playing game, behaviors are like enhancements that you can add on to any piece of armor or weapon, buffs, blessings, sockets, take your pick: plug-able, reusable behavior. I plan on taking advantage of them myself. Need a reusable javascript confirmation box? Make a behavior, use it on any component.

PrettyFaces makes an appearance

My presentation was the last of the day (read the slides,) and let me tell you, I was prepared. For the last two weeks I had rehearsed (or read through my slides) almost every night, and with the Seam & RestEasy presentation under my belt, any nervousness I thought I might have had was long gone. It was ON NOW. With good questions from Conference Attendees and JSF Expert Group members alike, discussion was not lacking at any point. People were interested, moreso than I had expected, and I was impressed that several attendees had already been using PrettyFaces in their applications! I felt truly rewarded to hear how PrettyFaces had helped solve business problems, and how much people loved using it. I heard, “It’s perfectly simple,” “It does what I expect,” and other great feedback.

Day 3: The Big Goodbye

The last day held only three sessions, and I chose “Rapid RIA Development with PrimeFaces,” presented by Cagatay Civici. This was truly a treat – as I mentioed before, Cagatay has started something amazing. Simple components with poweful functionality. A schedule component (that looks GOOD), an entire mock Mac OSX, and over 70 components: a shell console, charts, sliders, pickers, pluggable Ajax Drag & Drop – all so easy that I felt like I could go write an app in minutes. This was my “wow” of the day; I think everyone was impressed. Overall, I don’t think I’ve had a more exciting week in my career. This conference was almost a total surprise to me. I pushed to get myself in, and I had help, but let me tell you, “I’m glad I did it.” I’ve been struggling with the idea of, “Can I really do what I want, professionally,” and, “How do I get there?” And for me, the answers are simple: “Just do it.” Do what you love and good things will happen; share your ideas; don’t give up; make sure you take time to be human; go outside, meet people, make friends. We don’t have long to make a difference in the world (of ideas, love, music, charity, technology, …) so it’s best not to stop for one single moment. If there’s one sentiment I can leave you, reading this far, it would be – Chase your passion.

The Future Holds…

My plans for the future involve taking Java EE, and turning it into a platform that is simple and intuitive enough to compete with PHP and Ruby for startup businesses. There’s so much power in Java EE, and I want people to know about it. Among my initiatives, since I’m already involved in JSF, was to give the new Java standard web-framework a home on the internet, a place where people can go for any information about JSF2: www.javaserverfaces.org, and the expert group members have really stepped up behind this site to make it successful. Java EE 6 is a revolutionary release of the J2EE platform, and with Bean Validations, JavaServer Faces 2, Contexts and Dependency Injection, and JAX-RS (REST web services,) it’s never been so powerful. It’s time to take another look. We are already using everything but CDI in ScrumShark, but that will be changing soon.

Other articles looking back at JSFSummit 2009:

http://in.relation.to/Bloggers/JSFSummit2009Postback http://andyschwartz.wordpress.com/2009/12/17/jsf-2-on-the-road/ http://in.relation.to/Bloggers/JSFSummitAComponentLibrariesPointOfView

Lincoln Baxter, III

About the author:

Lincoln Baxter, III is the Chief Editor of Red Hat Developers, and has worked extensively on JBoss open-source projects; most notably as creator & project lead of JBoss Forge, author of Errai UI, and Project Lead of JBoss Windup. This content represents his personal opinions, not those of his employer.

He is a founder of OCPsoft, the author of PrettyFaces and Rewrite, the leading URL-rewriting extensions for Servlet, Java EE, and Java web frameworks; he is also the author of PrettyTime, social-style date and timestamp formatting for Java. When he is not swimming, running, or playing competitive Magic: The Gathering, Lincoln is focused on promoting open-source software and making technology more accessible for everyone.

Posted in JSF2, OpenSource

5 Comments

  1. Ed Burns says:

    I’m really glad to welcome you as another open source developer who has found professional rewards by joining and contributing to the JavaServer Faces community.

    I’d have to say the first such developer was Manfred Geiler, in 2003. His contribution was myfaces, and you see where that project went!

    Thanks for sharing your experience.

    Ed

  2. Ed Burns says:

    Also, when you speak at Philadelphia emerging tech, make sure to mention my Philly roots.

    Ed

  3. […] What a wild ride – My journey through OpenSource / JSF […]

  4. Krishnan says:

    Go Lincoln! It’s good to see that all that hard work and effort spent in the ‘green room’ and elsewhere pay off literally, and more importantly, that you are enjoying it!

    Knock ’em out in Philly!

  5. Lincoln says:

    Thanks Krishnan! Let’s hope it continues that way! (And let’s hope we get to go skiing 🙂

Leave a Comment




Please note: In order to submit code or special characters, wrap it in

[code lang="xml"][/code]
(for your language) - or your tags will be eaten.

Please note: Comment moderation is enabled and may delay your comment from appearing. There is no need to resubmit your comment.