Skip to main content

The Promise of Spring Roo

I've been thinking about a project scaffolding tool for Java for a long time now. Many modern technologies now come with CLIs that can lay down project skeletons and add conventional concerns by simply executing command line actions. This scaffolding, as it has come to be known, jump-starts project work significantly by laying down the typical boilerplate and, in many cases, simplifies the wiring of ancillary technologies.

As a top-tier technology, Java has benefited from the many available IDEs that also provide scaffolding-like functionality. These IDEs, and even Maven archetypes to some extent, provide very powerful tools for project foundations and instrumentation of specialized components. You are even able to produce your own extension, provided you're willing to figure out some of the rather obscure mechanisms to do so.

However, architectural patterns change very rapidly and IDEs fail to keep pace. Plus, the IDE capabilities are usually driven through user interface interaction, so there's no repeat-ability or auditing of the process involved with scaffolding an application. Additionally, any scaffolding system currently available falls short of delivering a complete application. In my opinion, these shortcomings result in a significantly lost opportunity.

Imagine you can define your application's domain model, behaviors, and workflows independently of technology, architecture, and patterns. Now imagine that you can run that definition through an enhanced scaffolding mechanism (ESM) capable of generating your entire application using any technology, following any architecture, and implementing any set of patterns. That would be miraculous!

I believe that Spring Roo is a technology capable of delivering on that proposition. It has the mechanisms to deliver that promise and it's up to us to unlock the potential of decoupling the application domain from its underlying architecture. This is a very tough problem to solve and many have tried.

To me, the most incredible benefit is a system that is capable of generating the entirety of an application merely from a description. Extending an application is a simple matter of adding or changing the description. Refactoring is a simple matter of updating the generation components and then passing the description through the ESM again. When you want to change the entire architecture of the deployment model, select a different ESM model. The build pipeline could just accept the application description and generate the code during the build process.

I will be conducting a series of experiments with Spring Roo and creating some "add-ons" in order to test these theories and I hope you find them interesting.

Comments

Popular posts from this blog

Astronauts?

Something happened today that me disturbed. I didn't notice this "thing" that has been occurring over the past two months, but had I, I'd have spoken out sooner. Today, Blue Origin sent another group of tourists into space for a short time. The headliner was William Shatner, a cultural icon. I'm happy for him and the rest of the group for being able to have the experience. This isn't the thing that's bothering me. On their descent back to earth, the mission control commander dubbed them America's newest astronauts, designating them an incremental astronaut number somewhere in the 500's. Astronauts? If what they did, which was to sit in a seat, qualifies them as astronauts, then everyone flying as passengers on an airliner should be anointed "pilots". Correct me if I'm wrong, but astronauts spend decades learning and practicing science, engineering, or aeronautics before applying to and being accepted into one of the most rigorous prog...

Why Couldn't N7022G Establish on the Localizer?

Why did Dr. Das have trouble establishing on the localizer for 28R? He followed his vector to the localizer but started to veer right of the signal when he neared the field. The localizer signal would have been  Some panels are equiped with a "reverse" switch between the radio navigator and the VOR or HSI instrument. The reverse switch transforms the signal from the VHF navigation receiver so that indicator needles appear as they would in a forward approach and the pilot wouldn't have to translate (or reverse interpret) the needle. So, if equiped with a reverse switch and the switch was inadvertently in the reverse position, veering right on the localizer would look like the correct action for the pilot to make. He also may have been thinking more about circling around to runway 23 and that's why he veered right early. Though he was reminded plenty of times of what he approach was. The controller reported Dr. Das was veering right of the track. The pilot acknowledge i...

The Importance of Television

I have no intention of pontificating on the impact of television on humankind. Before TV, people went to movie theaters to get motion pictures from around the world. Before that, they attended plays and other theatrical productions. Before that, they played with sticks and rocks (known today as golf). Enough on that. Last Sunday, after Dawn and I were fortunate enough to watch Donald Trump speak at CPAC, Life, Liberty, and Levin, and Steve Hilton, our living room TV died. It wasn't necessarily unexpected as it was exhibiting turmoil prior to its final Swan Song. But, still, dissappointing. The TV was purchased six years ago at Costco. Neither Dawn nor I were happy with a TV that only lasted six years. If it made it to ten years, then that would be acceptable. Nonetheless, it's time for another television and defining the television's mission given what's now know. In particular, with regards to mission, the living room TV must not have a screen glare. The windows on the...