Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.
You searched this site for "young russian teenboy model pre teen". 788 entries found.

You can also try this same search on Google.

[TSE] The Holy Grails of Web Frameworks with Guillaume LaForge

Under the hood, Grails uses Spring MVC. It has support for "flash scope" between requests.

I find it funny that flash scope is so popular these days, we've had this in AppFuse for four years. However, web frameworks didn't add native support for it until it had a name (provided by Rails). To be fair to Struts Classic, they had support for it before Rails was even invented.

Rather than JSPs, Grails uses Grails Server Pages, which look much like JSPs. Grails uses SiteMesh by default and allows you to easily change the layout used with a meta tag.

<meta name="layout" content="main"/>

Most of the dynamic attributes in a GSP are rendered using the various "g" tags. There's dynamic taglibs for logic (if, else, elseif), iterating, linking, ajax (remoteFunction, remoteLink, formRemote, submitToRemote), form (select, currencySelect, localeSelect, datePicker, checkBox), rendering (render*, layout*, paginate), validation (eachError, hasError, message) and UI (i.e. richtexteditor). [Read More]

Posted in Java at Dec 09 2006, 12:31:25 PM MST 6 Comments

[TSE] Designing Stateful Web Application Control Flow with Erwin Vervaet

Spring Web Flow (SWF) does not fit into an application or a feature where free-flow navigation is required. It works best where you need to lock down and control navigation. SWF is not designed to be a web framework, but rather to solve the specific problem of navigation and state management between many pages.

Erwin is a Senior consultant at Ervacon and has extensive experience using Java SE and Java EE. He is the inventor and co-lead of the Spring Web Flow project.[Read More]

Posted in Java at Dec 08 2006, 03:47:49 PM MST 5 Comments

[TSE] Using Dynamic Languages with Spring with Rod Johnson and Guillaume LaForge

Spring 2.0 has dynamic language support. To make it work, you do need a Java interface as a contract between callers and dynamic beans. There's no special requirements on the interface. It's a "POJI" and doesn't have to extend or implement anything. For example:

public interface Messenger {
    String getMessage();
}

There's 3 ways of configuring Groovy beans:

  1. GroovyScriptFactory <bean> element defining source location and properties
  2. <lang:groovy> element from a <lang> namespace
  3. POBD (Plain old <bean> definition) - this is unique for Groovy since it can be compiled into Java bytecode

[Read More]

Posted in Java at Dec 08 2006, 01:27:43 PM MST 2 Comments

[TSE] Rapid Web Application Development with Rob Harrop

There's a couple of other sessions I should probably go to, namely Juergen's talk on Transactions and Mark Fisher's Message Driven POJOs Rock! However, transactions is generally a pretty boring topic and I don't see myself developing any MDPs in the next two weeks. If you don't use your knowledge in two weeks, you generally lose it, so I'll wait to learn more about MDPs until someone pays me to. I know a fair bit already, so I don't know that there's a whole lot more to learn.

I'm attending Rob Harrop's Rapid Web Application Development Essentials talk. With any luck, I'll learn some new tips that we can use in AppFuse.[Read More]

Posted in Java at Dec 08 2006, 11:42:37 AM MST 7 Comments

[TSE] Domain Driven Design with Eric Evans

I've arrived at The Spring Experience, 45 minutes late for the first talk. I tried to get up early, but decided I'd rather get 6 hours of sleep instead of 4. I'm now sitting in Eric Evans' Introduction to Domain-Driven Design talk and the room is packed. I've never seen Eric talk before, but he seems a bit unprepared. His PowerPoint presentation is not in full-screen mode, so you can see where he hasn't finished slides and such. He's also very soft-spoken and seems to have an interesting way of convincing the audience his ideas are good. I feel like I'm sitting in some sort of NPR Seminar.[Read More]

Posted in Java at Dec 08 2006, 08:37:28 AM MST 1 Comment

How can Nabble be improved?

I recently received the following e-mail from the founders of Nabble:

You are the first person (literally) to recognize the value of Nabble. So far, Nabble has been well received. But it needs more users. There are a lot of open source projects archived on Nabble, but how do we go about letting people know about us? We would like project owners to link to us and skin us like you did with appfuse, but I am not sure how to do it. You know many people in the open source world, so we would really like to hear your thoughts and advice.

For example, should I go and announce Nabble on a project list? If so, should I do it on the dev list or user list? Is this considered OK or spam? Or should I contact the mailing list owner by private email? What nabble feature do you consider most useful to the project owners?

My response to the first paragraph:

I would suggest e-mailing project owners and pointing out projects like AppFuse and Maven that've taken the time to "skin" their forums. I'm guessing you could get some real good traction at Apache because they like to keep everything on mailing lists. People like your forums because they can post (and subscribe to) a single message. AFAIK, you can't do this with any other mailing list archive. Maybe you could write an article for TSS or InfoQ that tells all the features and highlights projects that are using it.

As far as announcing Nabble on a project list, I said:

I would do it on the dev list, but sending private e-mail is probably OK as well. I don't think it will be perceived as spam. Sending it to the dev list might skip a step for the project founder. You could also offer to "skin" forums for folks - so it looks like their project sites. I think the most useful feature for end-users is search and easy browsing. It's *much* better than the archiving/browsing tool that Apache uses.

One thing that might attract for folks is vanity URLs. I don't know if it's possible, but something as simple as appfuse.nabble.com might be attractive to some people, or having some sort of path-based URL, for example archive.nabble.com/java/java.net/appfuse. That way it'd be easier for folks to "guess" the URLs of mailing list archives.

What's your advice? What should Nabble do to get more users? Maybe if folks new about Nabble's RSS feeds, they'd use it more. I'm currently subscribed to Maven, Wicket, Shale and Stripes, just to name a few.

Posted in Java at Nov 18 2006, 12:10:52 AM MST 11 Comments

How do you get open source frameworks past the red tape?

From an e-mail I received earlier this month, with a subject of "Acceptance red tape":

After requesting permission to use the Spring Framework for the business logic and data access layers of an application, how do you fight something like this? Spring is not an approved Framework for the ********** environment. We understand the benefits of the framework. However, we have not certified it in our environment. Additionally, we have concerns that this framework will not gain long standing traction among the J2EE community. We would like to reduce the number of frameworks used in our environment, and do not want to be left with "legacy" frameworks that have little acceptance or support as is the case with the pico container. This is a response from one of our clients after asking about the use of a framework in our development after another vendor had used the PicoContainer without their permission. We have Spring experience and we love it. My responses have been to ask what they have certified that we could use and to ask their business staff to override their tech staff. I'm caught needing to redesign an aging J2EE application with an awfully over-architected original design confined to EJB 2.1, JSP 2.0, Servlet 2.4, and JDK 1.4.X in a very short amount of time. The additional responses were that they have only certified Struts and although both the business staff and the tech staff admit they know the benefits of Spring, neither of them are allowing us to use it.

My response:

Wow - I don't know what to say, especially when they say "Additionally, we have concerns that this framework will not gain long standing traction among the J2EE community." They're probably using Struts and they thinks it's wonderful, eh? ;-)

I could compose a long response with lots of details, but the fact that they prefer EJB over Spring is baffling. Spring is so much easier to program with, it's not even funny. Granted, EJB does have its place, but it's often used as a hammer for a problem that doesn't exist.

Have you experienced similar "Acceptance red tape" in your company? If so, how did you work around or work through it?

Posted in Java at Nov 16 2006, 08:04:24 AM MST 31 Comments

Is XMLC a dead project? Is anyone using it?

From an e-mail I received a while back:

I'm interested in hearing your opinion of XMLC? And when will we see it in AppFuse? ;-) Seems to me that with it's base in xml and all the ajax and SOA hubub that it could be primed for a resurgence. And what about BarracudaMVC as an AppFuse option?

[Read More]

Posted in Java at Nov 15 2006, 10:13:03 PM MST 14 Comments

Happy Birthday Abbie!

Today marks the 4th birthday of Julie and I's daughter, Abigail Grace Raible. It's been a great day of reflecting on what Abbie did to our lives and how it's been so much better with kids involved. Granted, it's no picnic, but it's certainly worth it and we wouldn't change a thing. Abbie's birthday party consisted of a number of friends, a plethora of presents, and enough hard cider and beer to make everyone happy. I love my kids. In a perfect world, every day would be like today.

Abbie and Jack

Posted in General at Nov 05 2006, 09:58:56 PM MST 4 Comments

Continuum, Luntbuild, Pulse and NetBeans

Last night, I did a bit of playing with technologies new to me. First of all, I got AppFuse 2.0 running on Continuum. This was was easy enough, I just had to add <scm> information to each pom.xml. Thanks to those who recommended this approach. I thought it was a silly solution until I realized "mvn site" produced the wrong information when <scm> wasn't present for sub-modules.

Since I was playing with Continuous Integration tools, I decided to give Cerberus, LuntBuild, and Pulse a spin. My goal was to give each server the old "college try" and see if I could get them running with minimal effort. I don't know where I heard about Pulse, but it was somehow included in my tests.

Cerberus didn't work with my Cygwin/Ruby setup, so I was done with it quickly. LuntBuild worked pretty well, but the interface and configuration seemed kinda clunky. I also found it strange that it uses a 4.x version of Jetty - seems kinda old. I was surprised to see that it uses Tapestry for its web framework. Pulse was the nicest one with a kick-ass (ajaxified) user inferface, powered by Acegi, WebWork and Hibernate (according to its JARs). It was definitely the easiest to setup and use. While Pulse isn't free for commercial use, it is free for open source projects, as well as small teams.

Summary: Continuum, LuntBuild and Pulse seem to be the best tools for building Maven 2 projects. While CruiseControl works, and works well, it does require you to customize XML from the command line, whereas these tools allow you to do everything through a web interface.

Toward the end of the night, I downloaded NetBeans 5.5 and installed its Maven 2 Plugin. I was surprised at how full-featured this plugin is. I was able to build, test and run the AppFuse web modules in the embedded Tomcat without issues. It's definitely a cool plugin. As for NetBeans, it seemed pretty sluggish and I couldn't figure out how to get Ctrl+Shift+R functionality, which is a must for me these days. Also, I couldn't get the JSF support working for the AppFuse JSF Module, seemingly caused by the Maven plugin (project properties only has Maven options). Since NetBeans works so well with Maven 2, and it's much more full-featured than Eclipse, it seems natural to recommend it to AppFuse 2 users. Of course, I like IDEA a lot more, but there's no Maven 2 plugin that I know of.

Posted in Java at Nov 03 2006, 10:31:19 AM MST 17 Comments