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 "java". 1,588 entries found.

You can also try this same search on Google.

Struts Resume 0.5 Released!

I was up until 7:00 a.m. this morning finishing the struts-resume example application for my Struts chapter. I finally did it - I'm done. At least for now. I'd love to set a demo up on this server, but it requires a MySQL database, and I don't want to pay Keith the $20 to setup another database instance for me. I know, I know - Why don't I use HSQL? Because I just finished the damn application, and I need to convince myself to not touch it for at least a few days, or I'll never get anything else done (like cleaning my desk and hitting the gym).

Short-term (next 2-3 week) goals for this project are:

  • Abstract the good stuff out of struts-resume for AppFuse. They're really the same thing right now, and I'll need to trim it down a bit so there's only CRUD on a user or something like that.
  • Get it into the Struts Project's CVS at SourceForge.net. Ted Husted made me a committer, now I just have to do it. I'd rather check in appfuse than struts-resume, so the previous step is a must.
  • Change Struts to use path-mapping (/do/*) rather than extension-mapping (*.do). The tricky part is making this work with modules.
  • Code cleanup and Javadocs. Use checkstyle to make everything peachy-keen.

I don't believe it's important to fully flush out the features in the application at this point - that might overwhelm users in the end - maybe in a couple months I'll get around to doing that. You can bet I'll get super motivated right around the time I'm looking for a new gig! I'm expecting this in June, so might be awhile.

Posted in Java at Jan 05 2003, 01:05:05 PM MST Add a Comment

PMD and Checkstyle

I knew about Checkstyle, but PMD is new to me. The Struts Development Team has recently added these tasks to its build.xml file if you're interested in an example. Erik Hatcher has the Checkstyle task in his JavaDevWithAnt project, and I'm using his build.xml file as a model, but I've never used the Task. I've also had the Checkstyle Plug-In for Eclipse installed at one point, but it gave me so many errors - I disabled it. It'd be nice to use these from the beginning on a project.

Posted in Java at Jan 05 2003, 12:52:38 PM MST 2 Comments

[ANNOUNCE] StrutsTestCase v1.9.5 Released!

StrutsTestCase v1.9.5 improves support for Struts 1.1b3 (including support for testing Tiles and sub-applications), provides several requested enhancements, and fixes many reported defects.

For your clicking pleasure, check out the project's homepage or view the release notes.

Posted in Java at Jan 05 2003, 11:48:59 AM MST Add a Comment

Upgrading Roller and Happiness

I've been meaning to upgrade this site to use the latest Roller CVS source for quite some time (about a month), but haven't got around to it. However, Dave and Lance have been checking in enhancements like mad lately, so I don't know if it's such a good idea. It would be nice to push out a 0.9.7 release in order to add comments to freeroller.net. Things I would like to see in the comments feature are: 1) remembering a user's information, 2) the ability for the site owner to receive comments as e-mails (I currently have this hacked into this site), and 3) the ability for commenters to receive comment replies (if they entered an e-mail address). A super slick feature would be to allow sending of e-mails to an address (i.e. [email protected]) with something that indicates the post - and whalla, it shows up as a comment! That would be cool (so would posting via e-mail eh?). This will be wanted as users start replying to e-mails, rather than posting comments. Of course, this feature might just be too much work. BTW - what do we need to do to push out a 1.0 Release?

Secondly, I'd like to discuss how I intend on fulfilling my New Years Resolution (To Be Happy). I plan on doing some of the following things:

  • Spending more time with my family - both immediate (Julie and Abbie) and distant (my parents, Julie's parents, aunts/uncles, grandparents). These people are the most important in my life, and why wouldn't you spend more time with folks that love you?
  • Learn more about Java so I feel more confident in my job. This happens no matter what I do - it comes from working with the technology.
  • Being a good Dad - both in Julie's eyes and Abbie's. I'm doing good so far - but I know I can do better. The rewards are endless from doing this.
  • Getting a new laptop. I have a business philosophy that fast machines == fast development. Of course, it depends on the developer, but it certainly can't hurt. I hope to get a new PowerBook, and I really hope they put out a 2 GHz version so I can quit bitching about how slow Macs are. I'll compliment this with a 23" Apple Cinema Display just for kicks - if my checkbook can rationalize the purchase. This is sure to keep me happy for a week or two.
  • Smiling more - this does wonders for your mood. Having a cheerful attitude and a positive perspective on the world makes things much better.
  • Hitting the gym. I haven't been to the gym in months, and I really do need to go as my pants are getting painful to wear. I used to go 4-5 times a week, so I need to get back in the groove. I prefer competition-related exercise such as basketball and raquetball - so I'll definitely try to play those more. It's much more fun to go to the gym and kick a friend's ass at raquetball than to just go and lift weights. Hopefully, I'll begin this next week.
  • Worrying less. Not that I do it much right now - that's Julie's job and she does it well ;-). I do worry about work-related stuff a lot though, and do have trouble sleeping some nights because I'm debugging code in my head.
  • Get off the computer and get outside more. It's amazing how much more I enjoy the days that I never touch the computer. Also, camping and hiking can do wonders for the soul.

Posted in Java at Jan 04 2003, 08:10:07 PM MST Add a Comment

JPublish in JavaPro

I just got my latest issue of JavaPro Magazine. In this issue (February 2003 issue), there's an article on Anthony Eden's JPublish application. Congrats Anthony, that's pretty cool! You can also read the article online.

Posted in Java at Jan 04 2003, 06:24:33 PM MST Add a Comment

RE: Where Good (Java) Stuff Is

I don't know if I agree with Greg that this site is where the good Java stuff is. I certainly do appreciate the compliment though! And Greg, I do have to agree with Russ, it's time to start blogging again, more frequently == more interesting... ;-)

Posted in Java at Jan 03 2003, 11:14:16 PM MST Add a Comment

Subversion - CVS Replacement?

I heard of Subversion this morning from Erik Hatcher's publisher. It looks to be a CVS replacement, but as I'm happy with CVS (and satisfied that I've learned it), I don't think I'll be using it any time soon. It comes from the folks at Tigris.org, who have also provided us with Scarab. I am using Scarab, or I've at least installed it at work and intend to use it on our project. Scarab is a bug tracking application that is cheaper than JIRA and supposedly better than Bugzilla. I wish I could use JIRA b/c I really like the product, but as with most things - clients just want you to do something with free tools, rather than shelling out some extra cash to get things like IDEA and JIRA.

BTW, I'm sure you've heard that IDEA is on sale now. Will I buy it? Nope, I'm in love with Eclipse. Would I buy it if I'd used it for more than 2 days? Probably, but everything is working as I like it in Eclipse, and I'm such an IDE-minimalist, it just makes no sense.

You might be wondering why I was speaking with Erik Hatcher's publisher this morning? Heck if I know?! He sent me an e-mail saying that Erik had recommended me as a source for the newest and coolest Java Tools. Thanks Erik - but I don't know that I'm much of a source. I told him I thought that Maven, XDoclet and Hibernate would probably get a lot of attention in the coming months. He was interested in seeing if they deserved books. I don't think XDoclet does, as it's got so many different modules, it would be difficult to cover them all. It would be VERY cool to see a book written that develops an application using these tools.

This is why Erik's book is popular - people can take stuff from it and learn. Sure, they learn initially by copy/paste, but it's still learning. Hibernate probably deserves a book as I can't seem to grok it - although I did delete approx. 100 lines of code today after I learned some good tricks. I don't know if Erik's publisher was serious, but he did ask me if I'd be interested in writing a book. I told him "thanks, but no thanks" - Julie has asked that I never write a book again. I can't blame her, it's too much stress and computer time in my opinion. Especially considering that I killed my weekly Virus Scan (Friday nights) for the 10th time since I'm working (again) on a Friday night. It hasn't run in over two months!

I'd definitely like to speak about this stuff, maybe at conferences or such. Of course, I'd have to learn a helluva lot more before I could make that happen.

Posted in Java at Jan 03 2003, 11:09:25 PM MST 2 Comments

Using Both Ant and Maven

Erik Hatcher makes a request to get his JavaDevWithAnt project converted from using Ant to Maven:

Ok, a challenge to the Maven or Centipede experts tuning into my blog: make my JavaDevWithAnt project build with either. But the trick is that it has to be simpler than the current Ant build.xml. Believe it or not, I've not (seriously) used either of these tools. I hear the buzz about these and want to become a "believer".

I'm all for this as I've created my AppFuse project using his directory structure/build file as a template. I did go down this path to Mavenism already, but gave up before I finished. My problem is I have 15 different 3rd party JARs I use in my project - many testing frameworks and jakarta stuff. And a lot of these are nightly (or personal) builds because there's been some bug fixed, or enhancement added. What I really want is to continue using Ant b/c I think it rocks and it gives me more control over little tasks, but also to use Maven to generate a project site.

The problem with Erik's request is that I'm guessing no one will jump at the opportunity. Maybe, but in reality, no one looks at each others code unless there's a bug, or they need a sample to get started. Too bad - we could really do wonders for the Java Community if we started reviewing each others code. Erik, maybe you could post little snippets of your build file, and we could convert small parts of it. By posting a measly 10 lines, some other coders might be so inclined to help mavenize it. I know this is not how Maven works, but it sure would be nice if using Maven didn't require abandoning Ant.

Tonight I'll be staying up late trying to finish up AppFuse and Struts-Resume. Since the security-example download seems to be getting a lot of traffic (and it's a 15MB download), I should probably try to get these projects into SourceForge and save myself some bandwidth. Who knows if I'll get it done, I'm pretty tired, and it's already 10:00. But what choice do I have - Saturdays are family days, I promised my client that I pump a bunch of new features out on Sunday, and I get to work an 80 hour-week next week to get our first version out at my new job. Ugh, I need a vacation.

Posted in Java at Jan 03 2003, 09:47:25 PM MST Add a Comment

JUnit Tests - Naming Conventions

I am using Interfaces in my persistence layer, as well as for my Business Delegates. These interfaces are named things like UserDAO and UserManager. Their implementations are UserDAOHibernate and UserManagerImpl. First off, I don't know that I need interfaces for my business delegates, but they're already in place, so I'm going with it.

What I'm wonder is if my JUnit TestCases should reflect the Interface name, or the implementation name? UserDAOTest.java or UserDAOHibernateTest.java. I like the first one better, but I tend to hard-code information in it so I can call UserDAOHibernate.java - like the daoType to use. I started out using UserDAOTest because I thought it made more sense - and then it could be used to test all implementations.

Lately, I've been using JUnitDoclet to generate my TestCase skeletons, and it only generates TestCases for concrete classes, not interfaces. Therefore, I've changed to using UserDAOHibernateTest, which can be a helluva lot to type (and remember) when running TestCases! Here's the Ant command I use to run this test:

ant test-ejb -Dtestcase=UserDAOHibernateTest

And User is a short word! Can you imagine what these suckers will look like when I have an object such as ChangeRequest. Ughh. What do you gents think - I'm all ears.

Posted in Java at Jan 03 2003, 04:02:14 PM MST 3 Comments

Fighting Technology and Fatherhood

Today was one of those days I hate. I've been struggling with Hibernate for what seems like weeks now. Today was a day that almost convinced me to quit trying. I seem to be fighting with XDoclet and Hibernate all day, every day. I don't seem to be getting anything done on my AppFuse project, nor at my new on-site project.

I am getting things done, but if I'd just done JDBC, I'd probably much further ahead than I am right now. Such is the life of someone that tries to learn the latest technologies. I remember doing this with Struts and now I'm grateful that I did. Hopefully, using/learning/struggling with XDoclet and Hibernate will soon get better. The Hibernate and XDoclet developers have been great in dealing with my learning curve - thanks guys.

I predict my learning curve will be similar as that with Struts. This means that I will write all kinds of code as workarounds for problems I'm having - since I have ridiculous deadlines and I need to get it working. The sad part is that I'm willing to bet that I'll delete a whole bunch of this code when I finally figure out how to work with Hibernate, rather than against it. I think it's a great framework, but I'm trying to do too much from examples, rather than digging in and actually learning the framework. This is the hard way, but alas - I will learn it well - through my own mistakes.

I got a nice break from Technology tonight as Julie and I went to pick up our new car. We drove the long way home - through Red Rocks. We enjoyed the smooth ride, bright lights, and nice stereo. The bug had all of this, but the Accord is newer, and therefore, more fun. We stopped and bought a bottle of wine at one of my favorite liquor stores in Morrison and had a nice little celebration. I was planning on finishing up my struts-resume sample application tonight, but instead decided to play with Abbie. We gurgled and had some "tummy time" - and I definitely feel like I did the right thing.

I think I really need to stop working so much, and start being a Dad more. I've worked every weekend since she was born, and I feel like an Ass for it. Hopefully, the Wrox gig will be over soon, and I'll be able to catch up on my work for OnPoint and relax a little more. All this extra work is wearing me thin, especially when it's been dumping in the mountains lately - I don't know how many more "8 inches at Vail" e-mails I can take!!

The encouraging news (for you, the reader) is that I (with the help of Keith) upgraded this site to use a 100MB connection tonight. Hopefully the site will be a bit faster, but you know how bandwidth works - you pay for more and never seem to get it.

Posted in Java at Jan 02 2003, 10:21:16 PM MST 2 Comments