JSP and JSF Early Review Drafts Available
The Early Draft Reviews are now available for the new JSP and JSF specifications. Read More ».
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 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.
The Early Draft Reviews are now available for the new JSP and JSF specifications. Read More ».
Looks like I'll be speaking at the MySQL User Conference in April 2005. This conference is at the Santa Clara Convention center, where SD West was last year.
Congratulations! You have been accepted as a presenter for the MySQL Users Conference 2005 at the Westin Santa Clara, Santa Clara, California, April 18, 2005 - April 21, 2005. The following has been accepted as a 3 hour tutorial class for the event: "Developing Test-Driven Web Applications With Spring and Hibernate" The tutorial classes are scheduled for Monday, April 18, and we will send the exact time schedule shortly.
They wanted a fancier title than all the AppFuse ones I had cooked up - that's why it's titled Developing Test-Driven Web Applications With Spring and Hibernate. Now I just need to figure out what kind of app to develop in 3 hours. With AppGen and AppFuse Generator, it takes a lot of fun out of the development process. Or maybe it puts the fun back in?
If there's a JUG nearby that'd like to know a bit more about AppFuse or Spring, let me know.
Tonight's DJUG should be a fun one. First, I hope to learn some JMS tips and tricks from Chris Huston then I'm doing a presentation on Spring. I asked the group what they wanted to know about Spring last week and I got a wide range of answers. There should be a good mix of newbies and experienced Spring users. I'll give you a link to my presentation, but I have to warn you that there's not much there. I tend to show a lot of code in and do demos when I present, so my presentations tend to be kinda thin. My two goals for tonight are 1) keep it under an hour so we can all get to the bar and 2) inspire Spring-mania among the crowd.
This release adds support for JSF/MyFaces and Tapestry
as web framework options. AppGen
has been updated to work with both of these frameworks and I added
new tutorials as well. You can read about my integration experience in a previous post
.
After I released AppFuse 1.6.1, I knew the only way I was going to get Tapestry and JSF support done was if I stayed close to the code and started the next release. I never envisioned developing the Tapestry and JSF versions of AppFuse at the same time, but it turned out to be very efficient. If you want a comparison of all the different web frameworks in AppFuse (and AppFuse Light) - you can checkout my Comparing Web Frameworks presentation. If you want more in-depth coverage - it'll be in the next Chapter of Spring Live
.
If you find any issues, let us know.
Well it looks like I accomplished my goal for the year: integrate Spring MVC, WebWork, Tapestry and JSF into AppFuse. I decided to integrate JSF and Tapestry at the same time so I could get a good feel for their differences. Also, I figured there would be a lot of similarities I could re-use between the two. I found this to be a great idea. Often I'd use the first framework as a template and the second would go much quicker. It turned out to be a good strategy because I often found bugs in the first while working on the second. I really enjoyed developing with both JSF and Tapestry - here's my notes from my development marathon over the last week:
Tapestry
JSF/MyFaces
So after all of this, which is my favorite? Unfortunately, there is no clear winner. They're both pretty cool, but not that much better than Struts, Spring or WebWork. In reality, I like them all, that's why they're all integrated into AppFuse!
Update: I forgot to mention that I was very pleased with the latest version of Canoo's WebTest. It now uses HtmlUnit at its core and its JavaScript support has vastly improved. I wouldn't have been able to do integration testing on the JSF version without this (updated) library. Not only did it work great, but it found XHTML issues in my code - that rocks! The JSF and Tapestry versions of AppFuse are the only ones that run Canoo tests with JavaScript turned on. This is mainly because the old tests worked fine w/o JavaScript and I didn't want to break them.
There's a chat in a few hours on the future of the J2EE Web Tier. I'll be sitting in and hoping to learn something. The alignment of the JSP EL and JSF EL will be nice - but we really want HTML Templating for JSF - like Tapestry. After developing Tag Soup JSPs for JSF and HTML-editor-friendly pages for Tapestry, I can say there's definitely a big difference. Tapestry templates are much easier to read. However, if you have an existing JSP app, you can migrate to JSF easier.
I've finished the coding part of adding JSF (MyFaces) and Tapestry support to AppFuse. This weekend was spent knee-deep in XDoclet templates - updating AppGen for these two frameworks. I still need to write up a couple of blog posts about integration and update the tutorials, but the hard part is done.
If you're an early-adopter, feel free to check it out. The QuickStart Guide should help you get the source from CVS. I hope to release version 1.7 later this week.
It's been a rough one this week. Mainly due to AppFuse. This is the 4th (or maybe 5th) night this week I'm up late working on it. Tonight will be an average night, turning in at 5:30 a.m.. Last night was 6:00 a.m. Abbie likes to wake me up at 8.
The good news is that I have the JSF and Tapestry integration done. I just finished up writing all the programmer tests for the beans/pages and tomorrow (today?) I'll work on Canoo WebTests and installation/appgen/documentation. With any luck I'll finish up and release this weekend.
Next week, I get to write a chapter for Spring Live on MVC Framework integration. I'm also talking about Spring at the local Denver JUG on Wednesday night.
I can't wait for Christmas - 2 weeks in Sunny Southern Florida.
For the most part, both GMail and Firefox rock. However, when you're typing a long e-mail in GMail and you hit Ctrl+R instead of Ctrl+T, it really sucks. Rather than opening a new tab, I lost my whole e-mail message. Damn. Maybe it's time to go back to the desktop client. I've lost a few e-mails with GMail, but I don't think I've ever lost one with Outlook or Thunderbird. I guess it's time to setup GMail's POP3 access.
Anthony has a good post on using this minmax script to fix a CSS bug in IE. If you're using the Sunsets theme (like I am) with Roller - you might want to add this to your page templates. I've patched this site - thanks Anthony!
To patch your theme, create a page with name "_minmax.js" and link "minmax.js", populate it with the script contents and then add the following in your theme's <head>:
<script type="text/javascript" src="$ctxPath/page/$userName/minmax.js"></script>
You can also create CSS pages for your site using a similar technique. While we're talking about IE bugs, you might want to know that <script/> doesn't work in IE, that's why you always have to add the closing </script> element.