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.


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.

Gone Skiing

Steamboat, the Mountain

I'm outta here - for your viewing pleasure, here's a picture of Abbie to make you smile throughout the weekend.

Abbie Smiling

Posted in General at Feb 07 2003, 06:48:39 PM MST Add a Comment

JAAS Security in Action

I haven't read it, but this JAAS Security in Action article at looks like a good intro to JAAS. Hopefully it'll teach me something as soon as I take the 10 minutes to read it.

Posted in Java at Feb 07 2003, 05:45:06 PM MST Add a Comment

Is it possible to lock files with CVS?

I don't think this is possible, but since a co-worker asked - I'm relaying the question to you, the experts. Using CVS, it is possible to "checkout" a file for editing, and to lock it on the CVS server, so no one else can check it in. If this feature exists, I'd love to use it. Also, if anyone knows how to hookup sending e-mails for commits on a barebones CVS install, enlighten me. SourceForge makes it easy using synchmail, but Google doesn't even know about this tool - must be a SF script.

Update: Anthony has given me some good tips in the comments of this post. I've had some success in getting e-mail notification setup, but I'm still having some issues. To configure it, I checked out CVSROOT, and edited the loginfo file, adding the following line:

^project /usr/bin/mailx -c $USER -s "[cvs-commit] %{sVv}" [email protected]

When I get in a file, I get:

Checking in;
/export/home/cvsr/project/,v  <--
new revision: 1.7; previous revision: 1.6
1.6... User unknown
1.7... User unknown User unknown
/export/home/mattra/dead.letter... Saved message in /export/home/mattra/dead.letter

I do receive the e-mail, but it's addressed to 1.6@cvsserver, 1.7@cvsserver, and [email protected]. I'm sure it's an easy fix, comments are appreciated.

Update 2: Our SysAdmin solved the e-mail issue with the following lines in loginfo:

^project /usr/bin/mailx -s '[cvs-commit] %{sVv}' [email protected]
^server_config /usr/bin/mailx -r [email protected] -s '[cvs-commit] %{sVv}' [email protected]

I'm no UNIX expert, so that's why I'm posting this here - that way I can use it the next time I need to set this up. Alternative approaches are welcome and encouraged!

Posted in Java at Feb 07 2003, 07:23:56 AM MST 6 Comments

Deploying to Tomcat using Ant

If you're using Tomcat 4.1.x, did you know you can deploy using an Ant task that ships with Tomcat. You'll need to add $CATALINA_HOME/server/lib/catalina-ant.jar to your classpath, but then you can configure your ant task as follows:

<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>

<deploy url="${manager.url}"
         war="file:/${dist.dir}/${name}.war" />

I haven't tried it, but it looks cool. Right now I use a simple copy task that works pretty well for me, so no need to change at this point.

<target name="deploy" depends="package-web" if="tomcat.home"
    description="unwar into the servlet container's deployment directory">
    <unwar src="${webapp.dist}/${webapp.war}" 

If you know of any advantages to using Tomcat's deploy task, or you'd like to share your experience using it - please post a comment.

Posted in Java at Feb 07 2003, 06:58:04 AM MST 12 Comments