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 "appfuse". 771 entries found.

You can also try this same search on Google.

[ANNOUNCE] Struts Resume 0.8 Released!

The highlights of this release include rendering a resume with Velocity (demo), a password hint feature, self-registration feature, and a gzip compression filter. See the release notes below for a full list of changes. If you're looking to create a new application based on this architecture, you're best off using AppFuse.

Thanks to Russell Beattie for the Resume's XHTML template and to Mathias Bogaert for the Velocity RTF Templating idea.

Posted in Java at Sep 14 2003, 09:18:52 PM MDT

My tips o' the day

I found an easy way to update a MySQL database with new columns this morning. The traditional way is to create an ALTER_TABLE script and run it. However, I had added more than 30 columns, and creating this script sounded like a pain in the ass. Keep in mind that I use Hibernate to create my database from scratch - tables, and all. If you're familiar with appfuse, you might be able to use this stuff.

  • Dump the existing (production) database using "mysqldump -c database > database.sql". Edit this file, replacing CREATE TABLE with CREATE TABLE IF NOT EXISTS. The "-c" option includes column names in the insert statement.
  • Create an empty database (appfuse: ant db-init) and export (mysqldump database > create-tables.sql) it.
  • Drop all the tables in the production database (backup first!), mysql < create-tables.sql followed by mysql < database.sql.

Of course, other suggestions are welcome - I'd love to see a mysql diff tool that generates the ALTER script for me!

My other tip is how to start/stop Windows services from the command line - don't know why I haven't used this sooner.

net start "$serviceName"

Where $serviceName is something like "Apache Tomcat 4.1" - use "net start" to see all currently started services.

Posted in General at Sep 09 2003, 02:07:31 PM MDT 2 Comments

[ANNOUNCE] Hibernate 2.1 beta 3 Released

View the Release Notes, or Download. I won't be upgrading struts-resume or appfuse until 2.1 is released. Not much reason for me to upgrade, since I probably won't use any new features in these projects, but what the hell - upgrading is fun (and unit tests make it a breeze).

Update on Sunday: Beta 3b Released. Here's why:

  • removed Hibernate built-in PreparedStatement cache
  • made Hibernate.close() static

Posted in Java at Sep 06 2003, 11:51:29 AM MDT Add a Comment

Maven vs. Ant

I presented my views on why we should use Maven over Ant today in a meeting. My basic reasons are simple: 1) the ability to download jars (and have a central repository for all projects) and 2) to have a standard directory structure and build/test/deploy mechanism. It's going over like a fart in a crowded room so far. The major pushback is because supposedly you can convert JBuilder's .jqx files to Ant build files. Has anyone does this? How does it work? They mentioned that if there is a converter for .jqx -> maven build files, then they'd be happy to try it.

If we do use Ant (high probability), now begins the arduous task of standardizing across projects, as well as creating a "lib" module in CVS to store all the jars for the different projects. Good thing I'm on vacation next week! ;-)

Posted in Java at Aug 22 2003, 04:13:54 PM MDT 9 Comments

Loving Java all over again

This past week has been hectic. I'be been pumping out what seemed to be a relatively small and simple application for a client. What was a simple 3-table 3-page application is now 14 tables and even more pages. But it's going awesome. It's the most productive I've ever been on a project - thanks to AppFuse, which is further backed up by the powerful Ant, XDoclet, JUnit, Struts and Hibernate.

The reason I've fell in love with Java all over again is I've re-discovered the power of reflection and inheritance. 8 of the 14 tables are child tables of a main "project table." As I noticed I was doing a lot of copy/paste in my DAOs, Services and Actions - I decided to reflection for all these child tables and now I have 3 methods on my DAOs (get/save/deleteProjectChild). Same goes for my Services and my Actions all share the same delete/edit/save methods in a BaseAction.

The only reason I even have child Actions is for URL beauty and to xdoclet-generate the action-mappings. Backed up by tons of JUnit, StrutsTestCase and WebTest test cases - it's been a breeze to refactor and enhance. I'm in love all over again.

Posted in Java at Aug 16 2003, 11:23:04 AM MDT 1 Comment

AppFuse 0.9.1 Released

AppFuse 0.9.1 is a small bug-fixing release. I introduced some errors in the upload module by using <fmt:message> in my baseLayout.jsp, rather than <bean:message>. Not a big deal if you're not using sub-modules. I've never used them in the real-world, only in my example projects.

Posted in Java at Aug 14 2003, 01:49:35 PM MDT 2 Comments

Tomcat 5.0.7 Alpha

Since java.blogs has already seen an announcement for Tomcat 5.0.7, there's no reason for me to do it as well. But, there is a very cool enhancement added to this release. From the changelog:

~ Allow putting a /META-INF/context.xml inside any WAR file

This allows much easier deployment IMO. Now you only need to deploy/upload one file, instead of the WAR file and a config (context.xml) file. However, this isn't part of the J2EE 1.4 spec, and other appservers have their own means of configuring - so this is not a portable solution. It would be very cool if there was a common way of doing this for Resin, Orion and Tomcat. I don't know how it would work, but maybe something like META-INF/tomcat-config.xml, META-INF/orion-config.xml, etc.

Posted in Java at Aug 11 2003, 09:11:12 AM MDT 6 Comments

AppFuse 0.9 Released!

This release contains all kinds of goodies - including a new password hint feature, a compression filter, and a JSP 2.0-syntax option (when deploying). It also fixes a bug in persisting roles and includes many upgrades of dependent packages (Hibernate, PMD, Checkstyle, DBUnit and WebTest).

Enjoy!

Posted in Java at Aug 10 2003, 11:01:19 PM MDT 1 Comment

It figures - SourceForge still sucks!

I finally find some time to release the next version of [AppFuse] and SourceForge fucks me once again.

We're Sorry.
The SourceForge.net Website is currently down for maintenance.
We will be back shortly

Posted in Java at Aug 10 2003, 03:54:15 PM MDT 2 Comments

What a 3 GHz Processor will do for you

I finally got around to installing Java, Ant and Tomcat today, so here's some compilation numbers for you (from the new laptop):

  • Running "ant clean package-web" on AppFuse: 12 seconds (vs. 2GHz/512MB Desktop: 18 seconds)
  • Running "ant rebuild" on Roller: 24 seconds (vs. 2GHz/512MB Desktop: 36 seconds)

Now those are numbers I like to see! Does that mean that you get a 33% performance increase for every GHz of CPU you add to your machine? The annoying thing I'm experiencing today is that the fan comes on about a minute after it shuts off, and then it stays on. Not a big deal if I've got headphones on, but in cube land (where you can hear each other typing) it's kinda loud. I'm also growing to loath the mouse (same as PowerBook, but two buttons - yeah!) - just b/c it's a laptop mouse (solution: KVM)

In other news, tomorrow is my last day at Comcast. It's been great working here - awesome folks to work with, cool company, very cool project. I'm leaving a week early b/c I got a small contract to write a webapp for a company in Florida. It should only take me a week or so, and I'll be doing it out of Raible Designs' HQ, so it'll be nice to see the fam a bit more. After that - who knows? I have a few irons in the fire (as Russ would say), but nothing is final yet.

Posted in General at Aug 07 2003, 02:41:06 PM MDT 6 Comments