Matt RaibleMatt Raible is a Web Developer and Java Champion. 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 "appfuse". 771 entries found.

You can also try this same search on Google.

Eclipse Plugins Updated for 3.0

I finally got around to updating my Eclipse Plugins package for Eclipse 3.0 → Download or read the Release Notes. Below is a list of plugins included in this download. I dropped Lomboz and JSEditor b/c they didn't work at all with 3.0 on Windows - which I expect is the largest user base. Additions include CSS Editor and Doclipse.

Colorer and Jalopy don't work on OS X, so I wouldn't even bother installing them. Colorer has issues on Linux too. For OS X, I'd recommend buying a subscription to My Eclipse. It's only $30 and if you can afford a Mac, what's another $30? ;-) For a source code formatter on OS X, I recommend buying IDEA - it's only $200 - same cost principle applies. I tend to use IDEA a lot more on the Mac simply b/c it's faster and you don't need to install all these plugins. However, I've been stuck a lot in Eclipse-land lately because of it's multiple-project-in-one-pane support - as well as it copies and pastes code nicely into Word.

In addition to these plugins, I recommend installing the Spring IDE Plugin if you're using Spring [HowTo] - and Spindle if you're using Tapestry. Hopefully, distributions like this will become unnecessary with the introduction of the Web Tools project.

Posted in Java at Jul 23 2004, 03:31:57 PM MDT 13 Comments

AppFuse discovers MySQL bug (on Windows)

As I mentioned in this article, AppFuse sometimes helps me find bugs in other open source projects. Yesterday, it helped me find one in MySQL 4.1.3b (on Windows). Thanks to Mark for his quick response - he says it'll be fixed in 4.1.4.

Posted in Java at Jul 23 2004, 07:36:24 AM MDT 1 Comment

My WebWork Experience

Yesterday I began converting a small application from Spring MVC to WebWork. By the end of the day I was pretty much finished, but shot an e-mail off the the user's list to figure out a few more things. Today was spent incorporating that knowledge and making the app follow more WW "best-practices". Below is a list of things I discovered:

  • WebWork's documentation is actually quite good. I was able to figure out most things just by reading it. I'm still surprised that most web app frameworks don't describe a simple CRUD operation as their first example. In my experience, CRUD is 80% of a webapp's job.
  • WebWork integrates with Spring quite nicely. It's interesting to see that Spring has most of its MVC Framework support as part of the core, but WW has its own. I wonder why? Who cares, it works!
  • WebWork is a bit better than Spring MVC in that they have a mechanism for saving/displaying success messages. However, it doesn't live past a redirect, so you're still stuck putting messages in the session. Struts (as of 1.2.1) allows you to use a saveMessages(session, messages) call - and subsequent JSP tag to display (and automagically remove). Like it or not, Struts seems like the easiest solution for developers to use.
  • There's no clean mechanism for cancelling validation when a user clicks on a "cancel" or "delete" button. Struts supports cancelling using it's <html:cancel> button and it's pretty easy to detect "delete" and cancel validation in a form's validate() method. I ended up using an onclick handler for my cancel button and not worrying about validation on delete. This is the way I did it with Struts for years. Spring is cool in that it has a processFormSubmission() method that you can override before validation kicks in.
  • With Commons Validator, I'm used to specifying generic validation messages like "errors.required={0} is required.". This is possible with WW by using "errors.required=${getText(fieldName)} is required.". However, WW is a bit unique in that validation rules and ResourceBundles are defined on a per-action basis. I like having a central location for all my messages - like Spring and Struts have. I know it's possible with WW, but I'm trying to develop a "best-practices" sample app.
  • I really dig that fact that you can use one JSP tag to render an entire <tr> in a table. This <tr> ends up having a label and an input field - which is very cool IMO. I did find some issues with the XHTML output, but found it very easy to submit patches. Good stuff.
  • The config files (xwork.xml and validators.xml) must be in WEB-INF/classes. This is because they're XWork configuration files, and XWork is a non-web framework. It would be nice if I could put these in WEB-INF - where the rest of my config files (Spring, SiteMesh, etc.) reside.
  • Many of the JSP tags require you to use "'literal value'" - where you put single and double quotes back-to-back. IMO, this is just ugly and I'd much rather put some sort of indicator that it's a dynamic value - i.e. ${...} or #.
  • I couldn't get client-side validation to work. Seems cool though.

My experience with WebWork has been quite pleasant. I received excellent support from the mailing list - even though it took me a while to subscribe. The mailing list archives are woefully out-of-date, but this is a general java.net problem - not a WW issue. Maybe they should create a forum until the mailing lists get back on track?

Hopefully this last day and a 1/2 will make it much easier to implement WebWork in AppFuse. Thanks for the support gents - now I'm off to learn Tapestry!

Posted in Java at Jul 21 2004, 03:41:58 PM MDT 8 Comments

Want to learn more about AppFuse?

AppFuse Home A couple of weeks ago, I wrote an article on AppFuse for java.net. I'm proud to say it was published today: AppFuse: Start Your J2EE Web Apps. This is my first "published" article - so it's pretty cool to see it up there.

One thing that's strange is the TOC links on the top right don't seem to work in any browser other than IE. Wierd. Now I just hope this site stays up since there's a lot of links that point here. It's a sort of weblog timeline about the birth of AppFuse - hope you enjoy!

Posted in Java at Jul 15 2004, 07:17:59 AM MDT 6 Comments

[ANN] Struts 1.2.1 Beta Released

Read the Release Notes or Download. AppFuse has been running a nightly build of Struts from December 2003 - so most of the upgrading has already been done. I haven't upgraded to a recent version because of this functionality change. It probably still exists, but it's about time I upgraded. All tests pass in AppFuse - although I did have to change the core taglib URIs from http://jakarta.apache.org/struts/* to http://struts.apache.org/*. The EL Tag URIs still use http://jakarta.apache.org/struts. Unfortunately, it looks like XDoclet may need to be modified to support the new DTD. Tip o' the hat to Nick.

Posted in Java at Jul 11 2004, 10:29:38 PM MDT 2 Comments

[ANN] Display Tag 1.0 RC1 Released

Read the Release Notes or Download. This release is consists of mainly bug fixes and cleanup. Thanks to Fabrizio Giustina for all his work on this project. Fabrizio did the initial refactoring of this tag (to be an iterator + XHTML) and he also does almost all the work on it. This release has been tested and verified with AppFuse.

Posted in Java at Jul 11 2004, 08:15:29 PM MDT Add a Comment

[ANN] AppFuse Light 1.0 - a.k.a. Equinox

For those of you looking for an AppFuse Light, I have good news for you. I've actually been sitting on it for several months now, but now I'm prepared to release it. It's name is Equinox and it's much, much simpler than AppFuse. Equinox has only one build-time dependency (CATALINA_HOME being set for the servlet-api.jar). There's no code generation and no features - not even security. However, it supports building, testing and deploying from Ant, and even has support for managing Tomcat out-of-the-box.

To get started with Equinox, you can download the QuickStart Chapter from Spring Live. This chapter shows you how to develop a simple webapp using Struts, Spring and Hibernate - which talks to an HSQL database. Struts and Spring are integrated using the ContextLoaderPlugin and all tests are designed to be run out-of-container using JUnit and StrutsTestCase. Equinox ships with project files for both Eclipse and IDEA so you can develop and run the tests in either of these top-notch IDEs. There's also a demo available. Thanks to Boér Attila for the kick-ass CSS.

If you like what you see in the QuickStart Chapter, there's much more in the other ERP chapters of Spring Live - now available for download. Too see what's in the other chapters, checkout the Chapter Summaries.

This is a nice milestone - feels good to have made it this far. Have a good weekend!

Posted in Java at Jul 09 2004, 04:38:01 PM MDT 34 Comments

AppFuse on JBoss and an interesting perspective

Way back in January, Rick Hightower sent me instructions on how to run AppFuse on JBoss. I finally got around to digging through my inbox and putting them on the wiki. Here's how to run AppFuse on JBoss. If anyone is using JBoss, please feel free to edit these instructions.

Also, I noticed that Lee Grey has started an AppFuse Line-by-Line Category on this his blog. Very cool! Lee has a perspective that I never thought of:

AppFuse makes it possible for you to be productive, to take advantage of some of the most powerful and widely used open source development tools, before you really understand what you're doing. As a beautiful side-effect of this, you become familiar with Ant, Hibernate, Spring, Struts, Tiles, XDoclet, JUnit, Cactus, Canoo, DBUnit, and on and on -- all in the process of developing your application!

Good stuff Lee - keep it up! While this is a good perspective - I dread to think of supporting all those folks that don't "really understand what they're doing." wink

Posted in Java at Jul 09 2004, 08:10:12 AM MDT Add a Comment

Working too much - what about office hours?

I currently work too much. I can feel it in my shoulders and I know it because I hardly ever exercise. Even worse, I know it because Julie tells me so and Abbie doesn't get to see enough of her Daddy. In addition to working all week, I work early mornings on the weekends, but that tends to spill into late mornings. I also try to cram in a couple hours during Abbie's nap - which usually spills over past when she gets up. During the week, I'll start at 4 or 5, and I'll need to get something done, so I'll work until 7. After Abbie goes to bed, I often hop on the computer again and work until midnight or later. It's easy getting 8 hours in a day or 40 hours in a week for a client. It's hard doing AppFuse support and writing Spring Live on the side. I virtually ignore all the e-mail on the other open source projects I'm on - it's the only way to keep my sanity.

This madness is likely to continue. The only way to reasonably handle my e-mail (> 1000 day - after spam filters) is to check it every couple of hours. That can't continue, so I'm going to have to change my e-mail address. Sorry folks, it's the easiest solution. I'll decide my new one after the holiday weekend, but matt AT raibledesigns.com will start going to /dev/null.

Julie and I've been talking today and we're trying to come up with more solutions to me working so much - especially since a fair amount of it doesn't pay. We're thinking the best solution is Office Hours. When I work from home, I work too much. When I go into a client's office, I tend to end my day when I get home. So, from now on, I'm going to try and only work from 8 to 5 MDT (-7 GMT). Actually, Julie says she doesn't care if I work before 8, I just need to be done at 5 to play with Abbie and join Julie when she goes to bed.

To help accomplish this, I'm going to start closing the door to my office and using the backdoor to leave and come back during the day. Hopefully it'll be like an office away from home. I'll likely be working on Spring Live in the mornings from 4-8 and doing some AppFuse support as well. My best bet is probably e-mail/blogging from 4-5:30 and writing from 5:30-8 (at the local bagel shop). I'll let you know how it goes. I'd also like to hear other ideas from you "I work too much" guys/gals out there - I know there's lots of you.

Posted in General at Jul 02 2004, 03:57:09 PM MDT 8 Comments

[JavaOne] What's new and cool in the J2ME Wireless ToolKit

I'm continuing my theme to only attend sessions I know little about. I'm sitting in a session on the J2ME Wireless ToolKit. So far it's fairly boring. This guy's been rambling on for a while about all the JSRs that the toolkit implements. Now he's doing a demo and using the Network Monitor to demonstrate looking at the HTTP requests when making soap calls.

This is only my 4th session of JavaOne, and I haven't been to any BOFs. I don't feel like I'm missing anything. Most of my time in Moscone is spent sitting in the main lobby, hacking away at my e-mail and talking with folks. I never imagined I'd meet so many people. It's pretty damn cool to meet all the bloggers.

The tools and demo that this guy is showing look like good monitoring and emulating tools. The WTK doesn't appear to have an IDE, just a way to run midlets and see the results. It doesn't appear to have an IDE. If I was to compare this to the web world, I'd say that the WTK is really just a web browser. Of course, it's much more than that since it can emulate HTTP requests, and well as bluetooth. From what I can tell, a midlet is really just a Java application that can run on a mobile device. After googling a bit, it looks like I was right. How easy is it to unit test midlets? Do you have to constantly use an emulator to test stuff? I'd like to write an AppFuse client for my phone, but I also want to use TDD to do it.

I missed the rest of the presentation b/c I got lost in reading blogs. Attending these sessions with an open laptop is not a good idea. I hope I can make one more session today - my goal was 5 for the week. As Dion said, this conference is all about networking.

Posted in JavaOne at Jun 30 2004, 03:57:53 PM MDT 2 Comments