Skip navigation

http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Vasnetsov_Nesmeyana.jpg/427px-Vasnetsov_Nesmeyana.jpg

I was asked recently by one of my friends in the finance sector, "Why can't I just pick and choose all of the features I want out of a menu? We have all these things that everyone needs, and they're all the same, so why can't we all use the same components and just put them together? Why can't you agree on some level of unity between technologies?"

 

You've probably heard it all before, but recently I find myself pondering the state of our industry, utterly astonished at the amount of change we have seen even over that last two years; however, despite the myriad of new advancements, announcements, and achievements (the AAA), I find myself to a large extent unexcited about the past few years of technology, even though they were vastly productive. What makes me excited about our industry, and why haven't we yet achieved what my friend wants?

 

We've seen several new programming languages enter the scene: Ceylon, Kotlin, Go, Dart, and others. Of these, I think that Ceylon is most suitable to advance the state of enterprise software, particularly as it pertains to the JVM, but I'm also noticing a new trend toward client-server programming again. Browsers are becoming more and more powerful, and there has been a big move toward JavaScript on both the client and server. Even databases have been moving to the browser with systems like Node.js and MongoDB - translation? Lots of fragmentation.

 

But it seems like we still have all of the same problems we had before. Programming is hard, finding good programmers is hard, and making things work the way we expect or demand is frequently even harder - why hasn't this changed? Have we been so absorbed in solving new and individual problems that we've lost track of solving the only problems that remain constant over the years? Somehow we seem to have lost track of the fact that as we introduce new technologies, we introduce new problems; integration remains the most difficult thing we do to date, and with such a wealth of the AAA, we are still spending much of our time integrating, not implementing. That's figured out, we can get down to business, but it's still something everyone needs to do.

 

Is this a problem we will ever address? Can it be addressed? I'm not sure, but I think we'll find out sooner than we think; people are finding this more and more important - even my friend in finance has noticed.

 

This is really one of the ideas behind JBoss Forge - a plugin-driven, command line tool designed to simplify technology integration - technologists write plugins to perform installations and integrations of technologies, greatly reducing the startup and integration pain for those attempting to get started "now." Why are tools such as Forge becoming increasingly popular? Because few people have the time or patience to follow a tutorial or guide on how to get started. We want instant gratification, and every barrier to entry causes us a great deal of grief.

 

It's a similar reason why people are moving more web-applications to the client browser via JavaScript, and why they are also using JavaScript on the server. It's too frustrating to handle the technology integration to bring a client language into congruence with a server-side language, particularly when you have to deal with impedence between the data-structures of each; we just don't want to spend the time - nor should we have to. We should be able to use a unified programming model, just as we should be able to have a unified method of technology/component integration.

 

This is where the Errai project comes into play, moving on the same premise of client-server programming model unification. Using Java and Java EE as the core programming model, you write for and share code between the client and server. The same java classes work in both places, and since the client-side java code is compiled down to JavaScript, you get all the benefits of running in the client (direct DOM manipulation, events, and async), but you never lose the familiarity of the tools and languages you are familiar with. Errai is revolutionizing simultaneous programming on the server and client.

 

So I ask myself the question, is this something I am excited about? And I think, "Yes, absolutely," and in fact, "This is one of the only things I am truly excited about." We have thousands of solutions for thousands of increasingly similar yes distinct problems, so whenever we can take steps to bring unity between parts of the vast web of tech, I think it's a good thing. Java EE has discovered this and begun to address it with CDI and extendable APIs. Spring has pretty good about this, and tools like Rewrite, from OCPsoft (for URL-rewriting and HTTP manipulation,) are also taking this new more fluent and extendable approach. Design for integration up front, and you'll make everyone's life easier later. There are new extensions for Rewrite being written every day: markup rendering, runtime and cached compilation of LESS resources into CSS and JS, security integration, you name it, it's there, and if not, you can write an extension for it. This is the philosophy that I am excited about.

 

Want to extend Forge and get your technology into your users hands more easily? Write a plugin. Want to build on Errai? Write an extension. It's becoming easier and easier: Apache DeltaSpike; RichFaces; the new Application Server from JBoss; Arquillian in the field of testing, OpenShift on the cloud. - everyone is doing it.

 

The combination of these things - easier extension/focus on extensibility, tools for integration, and unification of programming models - is going to be what really changes and advances our industry in the future. We're going to see more and more focus on ease of installation and use, more and more focus on integration and compatability, and more and more interoperability between frameworks; we're already seeing it. With more focus on extensability and compatability, extension and integration are getting easier, and I'm excited about it. Are you?

 

---

 

Thanks for reading. If you're interested in other useful or perhaps entertaining articles, here are a few links for general fun: Guide to Java Regular Expressions. Another good one is PrettyTime - date and timestamp formatting in Java, and a budding new project for social-style agile project management, called SocialPM. These are all open articles or projects, and would love feedback, contribution, and general love.

lincolnthree

JBoss World Tour

Posted by lincolnthree Dec 9, 2011

November was an exciting month for technology, with JUDcon London, Java2Days in Sofia, WJAX in Munich, and Devoxx in Antwerp. I don't think I've been to more conferences in a row in my life. It's time for a break! Holidays, here I come.

 

First up: Java2Dayyyyys!!!

 

I had originally declined the Java2Days conference, but I'm glad I changed my mind! This was truly an exciting, well planned, and interesting conference. I hope to be able to return next year. How could I pass up a welcome like this?

 

IMG_1301.jpgYoana (Conference Organizer)

 

Java2Days was an incredibly balanced conference, with a strong showing on Java EE, and also many other mobile and HTML5 oriented tools/frameworks. I was actually very pleased with how interested people were to hear Andrew Rubinger's "AS7 - Death of the Slow," "Arquillian: Real Life Enterprise Testing" talks, and my talks on "Beautiful Java EE: URL-rewriting for the next-generation web-user," and "Forging new ground in Enterprise Application Development."

 

IMG_1319.jpgIMG_1324.jpg

 

The hospitality in Bulgaria was out of this world, and it seemed that every large meal turned into a dance. No complaints! We also met up with Ivan St. Ivanov who we'd originally met at Devoxx the year prior (2010.) Consequently, we also met up with him again at Devoxx 2011 a few weeks later!

 

Next stop - Paris!

Andrew and I stayed with Seam Contributor Antoine Sabot-Durand (Seam Social Module Lead) over the weekend between events, and got a first-class tour of the pantheon and other historic Parisean destinations. After a stop at the Eiffel Tower with Emmanuel Bernard and Antonio Goncalvez, (Antoine had to put the kids to bed,) we went out to a little restaurant near Notre Dame to finish off the evening.

 

IMG_9825.jpgIMG_9829.jpg

Next up: Stuttgart JUG

 

Andrew and I said farewell to our counterparts in Paris, but met up with the usual crew in Stuttgart. Dan Allen and our host Heiko Rupp. We had actually missed our train in the morning, and had to book a new train a few hours later. This didn't stop us from making it to the JUG just in time to see Dan finishing up the first presentation of the evening - perfect timing.

 

IMG_1399.jpg

 

It was a triple threat at the JUG monday night, with Arquillian, Forge, and AS7 performing one after another after another. Notice the Red Hat mug on the table - we didn't ask him to bring that. To quote: "I just like it; It's a good mug." See? Red Hat means quality everywhere.

 

Die Autobahn

I don't think I really need to explain this too much...

 

W-JAX Munich

After surviving the Autobahn in our rented BMW convertible, we pulled up to the Westin Grand Arabella and checked in to a week of tech with JAX. First, I attended a talk by Christian Kaltepoth on "PrettyFaces: Restful URLs für JSF", which was in German, but since we both work on PrettyFaces together, I was able to understand most of his talk, particularly my favorite phrase of the session: "Nobody likes a mile-long URL."

 

This was my first time meeting Christian, but I must say I was even more impressed than I already was from working with him online. His talk went off without a hitch, and his demo went flawlessly. With great tools and great minds come great talks!

 

Next on the Agenda was our own session, with Dan, Andrew, and Myself all up on stage presenting the killer trio again:

Arquillian, Forge, and AS7. Forge was the star of this show, driving project creation, testing, and deployment to the best app-server you can buy (and it doens't cost anything.) This was our first time presenting all three of these projects together, but I must say that it went better than we could have expected. I'm very happy with the flow and content of this talk; I think we delivered more information than we've ever packed into an hour long session before, and in a way that is easy to understand and follow. I call this "The Forge Effect." (Our talk should be published on the JAX website at some point in the future, but we don't have it yet.)

 

I also attended Gavin King's Ceylon JVM Languge talk, which was very informative. He gave an overview of the complex steps it takes to create even the most basic language primitives, and additionally, how decisions made in that process have lasting and reaching rammifications for future of the language. Something as simple as "is Void an Object and how is that different from null?" Very interesting.

 

Last but not least, we attended Mark Struberg's CDI and Java EE tutorial, which was also in German, but he occasionally picked on us while we were sitting at the back of the room with Adam Bien. After this, a trip to the spa, and some food, we walked around Munich before it was time to catch our train to Antwerp.

 

Devoxx: Welcome to Paradise

While I don't necessarily think that the ratio of men to women at this conference would equate to paradise, I do thoroughly enjoy this conference every year! The layout is simply superb.

 

Hosted in a multi-plex movie theater, "the Metropolis" in Antwerp, there is plenty of space for the nearly 3500 attendees at this conference. Divided through 8 individual screens/auditoriums, each session generally attracts well over 400 people, which is an intense turnout for any Java speaker! Some talks max out at the room capacity of about 800.

 

We got to do a JBoss Asylum Podcast on JBoss Forge, and also got to include Paul Bakker, who has been very active on Forge, and an amazing contributor for both Forge core and also the Arquillian plugins.

 

I presented JBoss Forge with Dan Allen who ran the keyboard, Aslak presented Arquillian, again with Dan at the keyboard, and Andrew presented AS7 with Dan at the keyboard.

IMG_1458.jpg

 

Emmanuel Bernard also presented Hibernate OGM, and unveiled the Ceylon website http://ceylon-lang.org on the last day of the conference, which was a real treat.

 

IMG_1472.jpg

 

Overall, this was a great conference, and always a Belgian treat (so much good beer!) With Max Andersen, Sanne, Kabir Khan, Pete Muir, Manik Surtani, Koen Aers, and more! It was a great time as always, even had a little down time to embarass ourselves:

 

 

As always, thanks for reading, and we'll catch you at the next conferences, JBoss World is coming up soon! Don't hesitate to reach out with us and share your ideas! Please follow me on twitter @lincolnthree - and until then, see you next time!

Hi again! You awesome blog reader, you!

 

You may have already read my super exciting pre-JavaOne blog, but if not, that's OK because we only gave over twenty (20) talks... Only one of every nine talks was given by a JBoss/RedHat speaker (1/9), and if you count our mini-theater talks, we presented a total of fourty-one (41) sessions all-together during the four days (4 days) at Java One - talk about a busy week! If you want personal updates from me, Lincoln, you can find me on Twitter (@lincolnthree.)

 

Projects like JBoss AS7 - Mobile, Drools, Seam, Arquillian (Enterprise Testing), Forge (Rapid Application Generation), Infinispan (Distributed Data Grids) were all represented, in addition to my own talk about URL-rewriting in Java EE - also, make sure to check out the official JBoss JavaOne "Lightning in the Cloud" page if you want to see full descriptions of any of our sessions.

 

If you were at JavaOne and you didn't get to catch up with any of the JBossians or Arquillians, I'm very sorry. There were over six-thousand (6,000) attendees, and it was hard even to find each other. That being said, I was probably the tallest person there, so if you ever found yourself looking up at a skinny awkward looking (super attractive) guy wearing jeans and a t-shirt, then "hi." Sorry my colleagues and I missed you

 

Day Zero (Saturday):

Our typical way to avoid stress overload, and to give ourselves time to prep. We show up a day early, get settled, have a few beers, and put the finishing touches on our talks. I think this year we really got things together nicely. Almost all of our talks showcased the best of breed, upcoming JBoss Projects like Arquillian, Forge, and of course JBoss AS7.

 

http://a2.sphotos.ak.fbcdn.net/hphotos-ak-ash4/298612_10101625940164764_9320703_86672807_1484340504_n.jpg

 

We got to see the JavaOne tent as it was erected, and also played some real-life Tony Hawk in front of our flat while we waited for the entry codes to arrive. Once inside, after discovering the boiling hot water in the shower, relaxed to work on our talks.

 

Day 2 (Sunday):

More presentation prep - we discovered that our flat had a CD player and stereo speakers, to which we played the provided classical Jazz CD. A nice hip mood for making creative presentations and software. I spent some time working on my live demos (1, 2, 3) for my URL-rewriting talk, and got the clever idea to put them up on OpenShift so that the audience could see them on their mobile devices. Worked out pretty well, but I don't think many people had QR code scanners, so I'm not sure if putting them into my slides actually made much difference.

 

After working on our talks, all the JBoss folks got together for a warm and fuzzy dinner with Mark Little, our double boss - JBoss... cheezy, I know.

 

Day 3 (Monday):

This was the first day of the actual conference, and though I wish I could say I made it to the keynote, sleep prevailed, and we ended up wandering down to catch the first sessions around 11am. My first talk was Paul Bakker's session on Migrating from Spring to Java EE 6, which as opposed to my blog entry that focuses on the technical differences, Spring to Java EE - A Migration Experience, actually showcased some strategies for why you might want to migrate, and how you could do so following a few clearly outlined steps. I have to say, I really like the way they put together their slides. I think they used Keynote - I need to get on that.

 

I managed to get my photo taken with Duke - "what is that thing anyway?"

http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash4/321169_10101625941212664_9320703_86672822_1563869978_n.jpg

 

Had dinner with Westley Hales (crazy,) Pete Muir (also crazy,) and a few of the JBoss Solutions Architects, Jamie and Ray - awesome guys. I don't know how they do it. I think they must have caffiene IVs.

 

Day 4 (Tuesday):

This was pretty much a blur. I don't remember where I was or what happened - I was too busy practicing my talk to remember any conversations, my physical state, or even who I was at times - all for the talk, which actually went very well, I'm pleased to say. I had 68 attendees in a 6:30 PM session. I'm very happy with the folks who came, because they were a fun crowd. Definitely a group of interested and interesting people, some of whom had used Rewrite and PrettyFaces before, but I wish I had gotten to talk with them more because there were a lot of good questions. Thanks guys!

 

http://ocpsoft.com/wp-content/uploads/2011/08/rewrite-reflect-url3-signal-beta-501.png

Here I am looking silly before my talk:

http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash4/300006_10101625942410264_9320703_86672837_2022472387_n.jpg

And during, the audience cracks up at John Travolta reference:

http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash4/301904_10101625943847384_9320703_86672856_1822511183_n.jpg

 

Once my talk was over, it was time to kick back and enjoy the JBoss Party with our crew. We had a few beers, then went out for a late dinner where I met Jon Vassbo (a PrettyFaces user.) We chatted for a while, finished our plates, and called it a night. Sleep is crucial! Still catching up a week later.

 

Day 5 (Wednesday):

Slow morning; we stayed up too late. Aslak Knutsen and I walked down to the coffee shop (Nook), which was some of the best coffee we'd ever had, got refreshed, then walked down to do the Java Spotlight Podcast, where the Duke's Choice award winners (including Arquillian) said a few words about their projects. Also apparently, we took part in some kind of running joke that I had never heard of, but you can hear it at the very beginning of the cast.

 

Arquillian guys receiving the Duke's Choice award - Aslak Knutsen (project lead,) Dan Allen, and Andrew Rubinger:

http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash4/299078_10101625941706674_9320703_86672829_1239260263_n.jpg

 

Afterwards, I zoned out for a while, but not long enough to miss Pete Muir's booth talk about creating applications and deploying them to OpenShift using JBoss Forge, of which I also made a screencast. Pete's talk will be up on JBoss' website once it has been processed.

 

Following that, I went to watch Dan Allen give his "Unkeynote" in the huge grand auditorium. He described how to create useful CDI extensions to do things like integrate with other bean containers, reduce programming complexity, and bake in logging to existing applications. After the talk, I had a chance to catch up with Adam Bien, who had a few questions around Forge. I was happy to explain to him why Forge was more than just a replacement for Maven Archetypes, and how it could be used to provide tooling for all facets of Java projects.

 

Subsequently, Wednesday night was the Sting / Tom Petty concert on Treasure Island.

http://a1.sphotos.ak.fbcdn.net/hphotos-ak-ash4/308101_10101625946402264_9320703_86672883_59732_n.jpg

 

Day 6 (Thursday):

Last day of the conference. I went to Andrew Rubinger's talk on AS7, "Death of the Slow," where I watched him deliver an incredibly well put together talk on how JBoss AS 7 has changed the development experience for Java EE 6. I couldn't believe the number of people who rushed the podium after he'd finished speaking. Well done! Another win for JBoss.

 

Afterwards we were introduced to David Blevins who has been working on the Apache TomEE project. We all went out to lunch, made plans to meet up for dinner and drinks later, and went back to the pad to relax.

 

As if the week couldn't get any more exciting, however, while we walked home from the conference, we heard air ripping above our heads as none other but the US Navy Blue Angels tore across the sky. I can't imagine a more action packed week!

 

Days 7 and 8 (Friday, Saturday):

This was our cooldown time, as we spent a good deal of it sitting around the flat, working on ideas that we'd come up with throughout the week. Saturday we went to see the Fleet Week airshow, and watched the Blue Angels up close and personal (video).

 

Another video:

BlueAngels.png

 

I'd like to thank everyone who made this week excellent, all of the JBoss guys, and all of the people we met. This was my first JavaOne, and it was surely an exciting one. It's set the bar for conferences, but with Devoxx, WJAX, and Java2Days coming up in a few weeks, the bar may be high, but the action is sure to continue.

 

Come find me on twitter @lincolnthree, and thanks for listening!

 

Sincerely,

Lincoln (@lincolnthree)

 

PS. You can also follow many of us on twitter: (http://twitter.com/#!/mojavelinux/jboss-colleagues/members) if you want to get in touch with us or keep an eye on our projects

Want to get started hosting web-applications on the cloud? Don't want to pay any money or spend any time on it? Use Forge and OpenShift Express!

 

In order to follow this tutorial, please take the following steps in advance:

 

  1. Install Forge ( jboss.org/forge
  2. Install Git ( git-scm.com
  3. Sign up for a 100% free forever cloud account at ( openshift.com ), and making sure that your SSH keys are configured correctly via the OpenShift express quick-start guide. You do not need to install the OpenShift command line tools.

 

Then watch, follow along, and get started!

 

Follow me at: twitter.com/lincolnthree

 

 

If you had difficulty following along in the video, or just want to type stuff in without listening to me explain things, just follow the steps below.

 

Steps to Set up our OpenShift Project

  1. new-project --named forge-openshift-demo --topLevelPackage org.jboss.forge.openshift
  2. forge install-plugin openshift-express
  3. rhc-express setup --app forge
  4. servlet setup
  5. git add pom.xml src/
  6. rhc-express deploy

 

Add JPA and the Scaffold

  1. persistence setup --provider HIBERNATE --container JBOSS_AS7
  2. scaffold setup
  3. entity --named User
  4. field string --named name
  5. field int --named rating
  6. scaffold from-entity
  7. rest setup
  8. rest endpoint-from-entity
  9. git add pom.xml src/
  10. rhc-express deploy

Hi there! You awesome blog reader, you!

 

It's that time of the year again, when JavaHolics gather in force for the largest Java Technology conference in North America. Over 3,000 attendees will pour into down-town San Francisco in hopes of finding inspiration or useful information.


Well, at JBoss, we are doing our best to make that happen, with over twenty (20) talks in total, and more than 30 mini-theater presentations at our booth, it's sure to be a strong showing. And we're $#@%'ing excited to be there!

 

Projects like JBoss AS7 - Mobile, Drools, Seam, Arquillian (Enterprise Testing), Forge (Rapid Application Generation), Infinispan (Distributed Data Grids) will all be represented - also, make sure to check out the official JBoss JavaOne "Lightning in the Cloud" page.

 

Come enjoy! We area looking forward to meeting you, so stop by after our talks, or stop by at the booth and hang out! I like to say that at JBoss, when you are having a problem, we don't tell you to "RTFM", we ask "WTF?" We want you to succeed!

 

Looking forward to seeing you there:

 

Sincerely,

~$#@%'ing Lincoln (@lincolnthree)

 

PS. You can also follow many of us on twitter: (http://twitter.com/#!/mojavelinux/jboss-colleagues/members) if you want to get in touch with us or keep an eye on our projects

 

2011 JavaOne Conference - Red Hat Content
IDTitleContent
Type
Assigned
Track
Speaker(s)DateHotelRoomTime slot
19080Going Mobile with Java-Based Technologies TodayConference SessionThe Java FrontierWesley Hales , Senior Developer, Red Hat 10/05/11Parc 55Cyril Magnin I/II/III8:30AM-9:30AM
19941CDI Today and TomorrowPanel SessionJava EE Web Profile and Platform Technologies

Arun Gupta , Java EE & GlassFish Evangelist, Oracle


Sivakumar Thyagarajan ,  Senior Staff Engineer, Oracle India


David Blevins ,Member, Apache Software Foundation


Peter Muir ,Principal Software Engineer, Red Hat, Inc.


Reza Rahman, Senior Software Engineer/Community Outreach Activist, Caucho Technology

10/06/11Hilton San FranciscoImperial Ballroom A12:30PM-1:30PM
21540IcedTea and IcedTea-WebBOFThe Java FrontierDeepak Bhole ,Principal Software Engineer, Red Hat Canada Ltd. 10/04/11Parc 55Divisidero5:30PM-6:15PM
21685JPA on NoSQL: An Approach with Hibernate OGMConference SessionJava EE Web Profile and Platform TechnologiesEmmanuel Bernard , Platform Architect, JBoss by Red Hat 10/05/11Hilton San San FranciscoImperial Ballroom A3:00PM-4:00PM
22480Introducing Contexts and Dependency Injection 1.1Conference SessionJava EE Web Profile and Platform TechnologiesPeter Muir ,  Principal Software Engineer, Red Hat, Inc. 10/04/11Hilton San FranciscoImperial Ballroom A10:30AM-11:30AM
23380Making Java EE Cloud-Friendly: JSR 347, Data Grids for the Java PlatformBOFJava EE Web Profile and Platform TechnologiesPeter Muir ,  Principal Software Engineer, Red Hat, Inc.
Manik Surtani, Senior Principal Software Engineer, Red Hat Inc.
10/03/11Hilton San FranciscoPlaza A/B9:00PM-9:45PM
23382A Tale About Caching (JSR 107) and Data Grids (JSR 347) in Enterprise JavaConference SessionJava EE Web Profile and Platform TechnologiesManik Surtani , Senior Principal Software Engineer, Red Hat Inc. 10/05/11Hilton San FranciscoGolden Gate 3/4/510:00AM-11:00AM
23423The Road to Java EE 7: Is It All About the Cloud?Panel SessionJava EE Web Profile and Platform Technologies

Alexis Moussine-Pouckine , Java EE developer advocate, Oracle France


Emmanuel Bernard, Platform Architect, JBoss by Red Hat


Adam Bien ,Consultant, Adam-Bien.com
David Blevins , Member, Apache Software Foundation


Reza Rahman , Senior Software Engineer/Community Outreach Activist, Caucho Technology


Krasimir Semerdzhiev, Development Achitect, SAP

10/05/11Hilton San FranciscoImperial Ballroom A11:30AM-12:30PM
23805Hacking Java EE: CDI Extension Writing n00b to l33tConference SessionJava EE Web Profile and Platform TechnologiesDan Allen, Principal Software Engineer, Red Hat, Inc. 10/05/11Hilton San FranciscoGrand Ballroom B4:30PM-5:30PM
23813Real Java Enterprise TestingConference SessionEmerging Languages, Tools and Techniques

Dan Allen, Principal Software Engineer, Red Hat, Inc.


Aslak Knutsen, Senior Software Engineer, Red Hat

10/04/11Parc 55Market Street12:00PM-1:00PM
23941Is Java EE Relevant to the Cloud?Conference SessionEnterprise Service Architectures and the CloudMark Little, Senior Engineering Manager, RedHat 10/04/11Hilton San FranciscoImperial Ballroom B1:30PM-2:30PM
24121Arquillian: The Extendable Enterprise Test Platform Conference SessionJava EE Web Profile and Platform Technologies

Dan Allen, Principal Software Engineer, Red Hat, Inc.


Aslak Knutsen, Senior Software Engineer, Red Hat

10/03/11Hotel NikkoMonterey I/II11:00AM-12:00PM
24346Java EE on Google App Engine: CDI to the RescueConference SessionEnterprise Service Architectures and the CloudAles Justin , Software Developer, Red Hat inc. 10/04/11Hilton San FranciscoPlaza A/B1:30PM-2:30PM
24507Beautiful Java EE: URL Rewriting for the Next-Generation Web UserConference BOFJava EE Web Profile and Platform TechnologiesLincoln Baxter III, Senior Software Engineer, Red Hat 10/04/11Hilton San FranciscoGolden Gate 3/4/56:30PM-7:15PM
24580JSR 343: What's Coming in Java Message Service 2.0BOFJava EE Web Profile and Platform Technologies

Nigel Deakin, Principal Member of Technical Staff, Oracle United Kingdom


Reza Rahman, Senior Software Engineer/Community Outreach Activist, Caucho Technology

 

Clebert Suconic, Principal Developer and HornetQ project lead, Red Hat

10/04/11Hilton San FranciscoPlaza A/B4:30PM-5:15PM
24621Cloudy SOAConference SessionEnterprise Service Architectures and the CloudMark Little, Senior Engineering Manager, RedHat 10/06/11Hilton San FranciscoGrand Ballroom B2:00PM-3:00PM
24988DRY UIs: Let the Metadata Do the WorkConference SessionEmerging Languages, Tools and TechniquesDan Allen, Principal Software Engineer, Red Hat, Inc. 10/05/11Parc 55Market Street1:00PM-2:00PM
25288Death of the Slow: JBoss AS7Conference SessionJava EE Web Profile and Platform TechnologiesAndrew Rubinger, Senior Software Engineer, JBoss by Red Hat 10/06/11Hilton San FranciscoImperial Ballroom A11:00AM-12:00PM
26120Experiences with Java EE-Enabled PaaSConference SessionEnterprise Service Architectures and the Cloud

Anil Saldhanda , Lead Middleware Security Architect, Red Hat Inc

 

Scott Stark , Vice President - Technology, Red Hat Inc

10/05/11Hilton San FranciscoImperial Ballroom B4:30PM-5:30PM

It's that time of year again. The birds are singing and JBoss developers are hard at work to make your lives easier! Join us today in celebrating this very special release of Seam Forge - "Birthday!" Once you have installed Forge, there's a silly little surprise for someone special (thanks to Aslak Knutsen;) just follow the instructions here. (If you are not doing this on June, 9th, you might have to do some fiddling with your system clock.)

 

Download Forge 1.0.0.Alpha4 - Read the Reference Guide - Watch a Forge Screencast

Get involved by joining Users or Dev mailing lists.

Introduction

 

How many times have you wanted to start a new project in Java EE, but struggled to put all the pieces together? Has the Maven archetype syntax left you scratching your head? Everyone else is talking about cool new tools in other languages or frameworks, and you're left thinking, "I wish it were that easy for me." Well, there's good news: You don't have to leave Java EE just to find a developer tool that makes starting out simple. Seam Forge is heating up Java EE, and is ready to work it into a full-fledged project.

 

In addition to being a rapid-application generation tool, Forge is also an incremental enhancement tool that lets you to take an existing Java EE projects and safely work-in new functionality. Forge comprehends your entire project, including the abstract structure of the files, and can make intelligent decisions of how and what to change.

 

Whether you want to get your startup off the ground today, or make your big customers happy tomorrow, Forge is a tool you should be looking at.

 

What's new in Forge Alpha4?

There's too much to list here, take a look at the release notes. However, some of the more major improvements are:

 

  • [SEAMFORGE-1] - Forge Shell should have an online/offline mode option.
  • [SEAMFORGE-46] - Reverse engineering of database tables into JPA entities * by Max Andersen (to install, run forge and type: `forge git-plugin git://github.com/forge/plugin-hibernate-tools.git` without quotes)
  • [SEAMFORGE-162] - Scaffold should support paging * by Liu Jianhong
  • [SEAMFORGE-165] - Provide a plugin for Bean Validation (JSR 303) * by Kevin Pollet
  • [SEAMFORGE-199] - Forge should use embedded Maven if it is not detected in the underlying system (maven no longer required to use many Forge features.)
  • And many many API changes, meaning if your plugin targets the Alpha3 API, it will need to be updated to function in Alpha4

 

Note: If you have problems starting Forge after the update, make sure that you've emptied your installed plugins directory: (Usually '~/.forge/plugins', where '~/' is your home directory.)

What can Forge do for me?

If you're wondering what Forge actually "does," then keep reading, because it's hard to fit everything in to one blog post.

 

  • Create Java web applications from scratch in a matter of seconds.
  • Setup Java Persistence (JPA) for Hibernate, EclipseLink, and OpenJPA on JBoss AS 6, JBoss AS7 and GlassFish
  • Setup Java Server Faces (JSF)
  • Setup Contexts and Dependency Injection for Java (CDI)
  • Create JPA @Entities in just a few commands, including adding new fields, relationships, and collections.
  • Generate barebones UI from @Entity classes for adding, removing, editing, and deleting rows from the database.
  • Manage project dependencies and repositories.

 

But more than all this, which is really just scratching the surface of what's possible already, Forge is an extendable platform for Plugin development. It's more than just a tool for creating Java or Java EE applications, and in fact has been designed to be technology agnostic; Forge is not limited to Java EE. Plugins can be written for any variety of technologies.

 

Some plugins you might enjoy:

  • URL-rewriting: forge git-plugin git://github.com/ocpsoft/prettyfaces-forge-plugin.git
  • Unit & Integration testing with Arquillian: forge git-plugin git://github.com/forge/plugin-arquillian.git
  • Database reverse engineering: forge git-plugin git://github.com/forge/plugin-hibernate-tools.git
  • And more...

 

But I like my IDE...

Good news! That's coming, too: watch the video, or try it yourself!

Great, Forge looks awesome. Now what?

We hope you enjoy the latest release of Seam Forge, and would like to solicit involvement. The project is advancing quickly, picking up new community members all the time, and if you are an application developer and just can't wait to try it out, if you are interested in writing plugins, if you are interested in contributing to the Project, or if you just want to give some feedback, the following links are for you:

 

It's been a few months since our last release, but we have a lot of goodies for you this time, and for those of you who haven't taken a look, or seen it at all, Seam Forge is really starting to pick up steam. Since this is the third release of "Angry Kitten," we decided it was time to let out a whole pack of excited, ill tempered little furballs.

 

Download Forge 1.0.0.Alpha3 - Read the Reference Guide - Learn about Forge at JBoss World.

Get involved by joining Users or Dev mailing lists.

Introduction

 

How many times have you wanted to start a new project in Java EE, but struggled to put all the pieces together? Has the Maven archetype syntax left you scratching your head? Everyone else is talking about cool new tools in other languages or frameworks, and you're left thinking, "I wish it were that easy for me." Well, there's good news: You don't have to leave Java EE just to find a developer tool that makes starting out simple. Seam Forge is heating up Java EE, and is ready to work it into a full-fledged project.

 

In addition to being a rapid-application generation tool, Forge is also an incremental enhancement tool that lets you to take an existing Java EE projects and safely work-in new functionality. Forge comprehends your entire project, including the abstract structure of the files, and can make intelligent decisions of how and what to change.

 

Whether you want to get your startup off the ground today, or make your big customers happy tomorrow, Forge is a tool you should be looking at.

 

What can Seam Forge do for me?

If you're wondering what Forge actually "does," then keep reading, because it's hard to fit everything in to one blog post.

 

  • Create Java web applications from scratch in a matter of seconds.
  • Setup Java Persistence (JPA) for Hibernate, EclipseLink, and OpenJPA on JBoss AS 6, JBoss AS7 and GlassFish
  • Setup Java Server Faces (JSF)
  • Setup Contexts and Dependency Injection for Java (CDI)
  • Create JPA @Entities in just a few commands, including adding new fields, relationships, and collections.
  • Generate barebones UI from @Entity classes for adding, removing, editing, and deleting rows from the database.
  • Manage project dependencies and repositories.

 

But more than all this, which is really just scratching the surface of what's possible already, Forge is an extendable platform for Plugin development. It's more than just a tool for creating Java or Java EE applications, and in fact has been designed to be technology agnostic; Forge is not limited to Java EE. Plugins can be written for any variety of technologies.

 

For instance: Let's take the case where I want to add PrettyFaces to my new or existing web application in order to support URL-rewriting and "pretty URLs:" putting parameters in URL's: e.g: http://example.com/store/product/24/ (Normally  in Java Web Applications, accessing values in URLs can be difficult,  meaning you'd have to parse out any values by hand, or use a tool like  this one.)

 

Forge doesn't bundle a plugin for PrettyFaces, but because such a plugin exists, I can go out to the web and tell Forge to install it. Not only that, but I can also install the plugin through a number of different methods:

 

Plugins can be installed via any of the following sources:

 


Install a plugin from a local JAR file.
$ forge jar-plugin ~/Desktop/prettyfaces-plugin.jar

Install a plugin from a remote JAR file.

$ forge url-plugin http://example.com/download/prettyfaces-plugin.jar

Install a plugin from Maven

$ forge mvn-plugin com.ocpsoft.forge:prettyfaces-plugin

Prototype, example only: Search the cental Forge plugin index for plugins to install.

$ forge find-plugin prettyfaces
$ forge install-plugin prettyfaces

Compiles and installs plugins from a local project.

$ forge source-plugin ~/projects/prettyfaces-plugin/

Checkout, compile, and install plugin from a Git version control repository

$ forge git-plugin git://github.com/ocpsoft/prettyfaces-forge-plugin.git

 

Let's take a closer look at installing plugins from Git; for example, this is Forge installing the PrettyFaces URL-rewriting plugin. Notice that Forge knows how to check-out, build, and install the plugin all in one step. This is a convenient method of plugin distribution because it means that the deliverable JAR need not be hosted in any kind of artifact repository; simply write a plugin, put it in a public git repository like GitHub, share the Git repository URL and you can now distribute the plugin. If you want to distribute specific versions, then use the "--ref {version}" argument for the "git-plugin" command, like so:

 

{code}$ forge git-plugin {repo-url} --ref {tag/branch}{code}

 

What is the big deal about Plugins? Why is this important?

At this point, some of you might be thinking one of two things: either, "Wow, cool! That looks easy!" or "Why should I care? It's already easy enough to do everything," and undoubtedly one of the most important answers to this question is, "because it's incredibly easy to write Plugins." Just take a look at the plugin writing guide and see how easy it is to get started.

 

If you take a look at the sources of the PrettyFaces plugin itself, you can see that it doesn't take much to write a Forge plugin that actually does something, and the reason this plugin requires more than one class is because it is taking advantage of some of the more advanced features like custom <TAB> auto-completion, and the concept of being installed into a project, which has considerable benefits when you have features depending on other features.

 

Let's also consider the situation where you've written a really cool piece of software, and you just can't wait to get people to try it out. The problem is, though, that your software takes a little bit of setup, and users/developers don't really know how to get started with it; that's where Forge comes in with its distributed plugin system. By writing a plugin to streamline the installation and configuration of your software,  you can greatly reduce the barrier to entry for new users, and make the life of existing users easier by providing features that they can use every day.

 

Going back to our example, to install URL-rewriting into a new or existing app, simply run the following two commands (as needed.)

{code}$ prettyfaces setup

$ prettyfaces mapping --pattern /login --viewId /pages/login.xhtml{code}

Now that seems a whole lot easier than adding dependencies to a Maven POM, going out and finding an example config file, copying and pasting it, and so on. This just one simplification that Forge enables.

Great, Forge looks awesome. Now what?

We hope you enjoy the latest release of Seam Forge, and would like to solicit involvement. The project is advancing quickly, picking up new community members all the time, and if you are an application developer and just can't wait to try it out, if you are interested in writing plugins, if you are interested in contributing to the Project, or if you just want to give some feedback, the following links are for you:

 

To start, a little background information on Forge for those who are not yet familiar with it.

 

  • Forge is a next-generation project generation and enhancement tool designed to facilitate both rapid application development, and also plug-in/tool development for all developers. If Forge doesn't do something you want, write a plug-in and quickly share your new ideas.
  • You can find the project homepage here, at http://bit.ly/seamforge

 

 

To get started quickly, follow these simple steps:

 

  1. Download and Un-zip Forge into a folder on your hard-disk, this folder will be your FORGE_HOME
  2. Add '$FORGE_HOME/bin' to your path (windows, linux/mac)
  3. Open a command prompt and run 'forge'

 

* Note: You will also need a Java 6 JRE and Apache Maven to run Forge projects.

 

That's it, you've now got Forge installed, but what to do next?

 

There are a few things you should probably check-out. If you are confused at any time, try pressing <TAB>. For instance, if you have not yet seen the Forge built-in commands, you may either press <TAB> to see a list of the currently available commands, or get a more descriptive list by using:

 

  1. list-commands --all

 

To build a barebones scaffolding project, you can follow these steps:

 

 

  1. new-project --named {projectname} --topLevelPackage {com.yourpackage}
  2. install forge.scaffold
  3. new-entity --named Person
  4. new-field string --fieldName firstName
  5. new-field string --fieldName lastName
  6. cd ..
  7. scaffold generate-metawidget-jsf *.java

 

 

Now refresh or redeploy your application on JBoss Application Server and visit:

 

 

  1. http://localhost:8080/{projectname}/faces/scaffold/person/view.xhtml

 

 

Forge is *not* feature-complete, and in fact, many features are still under heavy development; with that said, comments, feedback, and tinkering are more than welcome!

Get involved

If you would like to get involved in this project, please visit the Forge homepage or visit the #seam-dev IRC channel: freenode.net#seam-dev and ask about "Forge" If you have an idea for a plugin or improvement, and would like to do some "forgestorming", submit it here.

 

Take a look at the source code to see how simple it is to develop a quick little plugin!