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.

XDoclet and Castor

I found this post on the castor-dev mailing list this afternoon. It seems to indicate that there's a better version of the Castor module for XDoclet.

The "exolab2" module is nearly identical to the original exolab module in that it:

1. generates the mapping.xml file

however, exolab2 differs in that it:

1. works on the fields in a class instead of the methods
-working with field name seems easier and more logical as castor
is for mapping class/db fields, not methods
2. generates the database.xml file
3. generates the create.sql and drop.sql for each class' table
4. doesn't require explicitly declaring the @castor:field-sql type="..." for each class field; it uses a simple look up .xml file to retrieve the appropriate/default sql type for the field's java type
5. doesn't require explicitly declaring the @castor:class table="...";
the class' name will be used as the default table name

so in summary, it generates:

-database.xml
-mapping.xml
-create.sql
-drop.sql

with less "work" than before. basically, these improvements are to help developers quickly and easily generate all the castor-specific and non-castor-specific (sql table defintions) code for new projects.

Too bad this isn't available in XDoclet as of yet. Hmmm, maybe I can use Castor Doclet to generate my DDL.

Posted in General at Nov 24 2002, 09:11:50 AM MST Add a Comment

Writing a Technical Book

Graham Glass offers some great suggestions on how he writes a book (tip of the hat to Matt Croydon). This is extremely valuable information for me, as I will be writing a couple chapters over the next few weeks. If I can follow in his footsteps, I'll be set!

A typical chapter takes me 3 or 4 days to write, including the source code for the examples, which I think is pretty fast. In addition, the high level book structure takes about a day.

The thing I'm struggling with right now is what persistence layer to use on my example Struts application. I'd like to use either Hibernate or Castor, but since I've never implemented either from scratch, I don't want to spend more time learning than implementing. And I'd like to generate the entire persistence layer - which seems possible with both. I'd like to use Middlegen, but then I'll have to use JDO or EJB's for my persistence layer. While JDO might be appropriate, EJBs are probably over-kill for an example app. The nice thing about Middlegen is that it will generate the JSP and Struts classes for me too.

Posted in General at Nov 24 2002, 05:04:23 AM MST 2 Comments