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.

DJUG Tonight: Portals, MyFaces and Dojo

Tonight's Denver JUG meeting should be a good one. Scott Ryan is going to do a presentation on Portals, followed by Bill Dudney on integrating MyFaces and Dojo. Both presentations look interesting, but I really like what's in Scott's description:

The real questions is what really makes up a portal and what makes it different from just a normal AJAX enabled website. In this basic concepts presentation we will look at the components that make up a modern portal framework. We will look at the common architecture of this framework and what pieces and parts you should expect to find inside a portal framework. We will examine several commercial and Open Source portal frameworks including PHP and Java based portal framework. We will look at some of the tools that enable you to develop and configure a portal and if we have time we will look at installing and developing with a common open source portal framework.

With any luck, I'll be able to blog both talks.

In case you weren't aware, Scott has also done a fair amount of work migrating AppFuse to Maven 2, along with Brian Topping. Scott has put together an appfuse-maven-plugin and Brian has converted an existing AppFuse project to Maven 2. Read more about the move to Maven 2 in this mailing list thread.

Don't forget the best part of DJUG - networking at the Rock Bottom Brewery!

Posted in Java at Jun 14 2006, 09:34:02 AM MDT Add a Comment

Seam 1.0

I've posted my thoughts on Seam 1.0 to my Virtuas blog. What are your thoughts?

It's great to see the release of Seam 1.0. Seam is similar to many full-stack frameworks like Rails, Rife and AppFuse in that it gives you all the pieces you'll need to build a kick-ass web application.

I've blogged my thoughts on Seam before, so there's no need to do that again. I like the idea, especially the lack of interfaces and the 3-files-for-each page idea. However, I don't know that this concept will fly with Java developers. I agree there's a need to simplify, but many of us are mesmerized by the de-coupling that Spring gives us. So now we're programming to interfaces, and every-so-often swapping implementations. I don't know that we can switch to this simpler model. And then there's the "EJB" thing. I think there will be a fair amount of developers that don't use EJB3 simply because it has the "EJB" name. The best thing the EJB Expert Group could have done for EJB3 would be to give it a new name.

The other thing I worry about with Seam is that it wasn't developed from an existing application. AFAIK, it didn't get extracted from a real-world application that had all the problems that Seam solves. I know that Gavin is a smart guy, and he's probably seen these problems in the real world, but there's nothing like developing a real-world application with a technology - and then extracting the framework from that.

In reality, I'm probably jealous. Seam has some really cool features, JBoss has done a great job of marketing it, and it seems to be a really cool way to develop applications. If I'm going to make AppFuse a direct competitor to Seam, it's gonna be quite the uphill battle.

Posted in Java at Jun 13 2006, 04:45:48 PM MDT 5 Comments

Integrating JCaptcha with Acegi and AppFuse

Jason Thrasher has put together a nice howto for integrating JCAPTCHA with AppFuse via Struts. If you're interested in making your application more secure for signup or authentication, check it out!

Posted in Java at Jun 13 2006, 01:43:29 PM MDT 2 Comments

Join the AppFuse Frappr Group

If you're an AppFuse user, please join our AppFuse Frappr Group. GlassFish may be winning in java.net stats, but I think we can beat them at the Frappr stuff. ;-)

Posted in Java at Jun 08 2006, 04:16:43 PM MDT 1 Comment

[ANN] AppFuse 1.9.2 Released

This release includes CSS Framework integration, EMMA code-coverage support and AppGen sub-package support. Thanks to the CSS Framework Design Contest Winners, Doug Hays and Mika Göckel for their help with this release.

To install and configure AppFuse for development, see the QuickStart Guide. Thanks to all the sponsors who have contributed products and free hosting to the AppFuse project.

To see how AppFuse works, please see the following demos (username: mraible, password: tomcat):

TIP: If you login as an administrator, you can change the theme by appending ?theme=themename to the URL. The default theme can be set in web/WEB-INF/web.xml.

Comments and issues can be sent to the mailing list or posted to JIRA.

NOTE: This release contains Acegi Security 1.0 RC2 rather than the recently released 1.0. This is because a couple issues were found with the 1.0 release. When Acegi Security 1.0.1 (or 1.1) is released, all AppFuse users are encouraged to upgrade.

This (hopefully) marks the last release from AppFuse 1.x. AppFuse 2.0 development should start shortly. See the roadmap for more details. I'd like to say it'll be done in the fall, but I already said it'd be done two months ago. ;-)

P.S. For those of you that won the CSS Framework Design Contest, I'll be contacting you within the week to get you your prizes.

Update: If you're building AppFuse on Linux, you should be aware of some non-English encoding issues. The solution is to add something like the following to your ~/.bashrc file.

export LC_CENGINE=en_US
export LANG=en_US
export LANGUAGE=en_US

Posted in Java at Jun 06 2006, 03:24:59 PM MDT 15 Comments

It's all about finding people and stickiness

From Malcom Gladwell's "The Tipping Point":

The Law of the Few says that there are a few exceptional people out there who are capable of starting epidemics. All you have to do is find them. The lesson of stickiness is the same. There is a simple way to package information that, under the right circumstances, can make it irresistible. All you have to do is find it.

Posted in Java at Jun 05 2006, 08:45:13 AM MDT 4 Comments

[ANN] AppFuse 1.9.2 RC1 Released

AppFuse The primary reason for this release is to integrate Mike Stenhouse's CSS Framework. Since this involves many UI changes, we're publishing a release candidate that uses Herryanto Siatono's "simplicity" theme. For the final 1.9.2 release, we hope to offer themes from all the CSS Framework Design Contest Winners.

To install and configure AppFuse for development, see the QuickStart Guide. Thanks to all the sponsors who have contributed products and free hosting to the AppFuse project.

To see how AppFuse in action, please see the following demos (username: mraible, password: tomcat):

Comments and issues can be sent to the mailing list or posted to JIRA (please use version 1.9.2). Hopefully we can release 1.9.2 final in the next week or so.

Update: I've finished a first stab at integrating the puzzlewithstyle and andreas01 themes. I've only tested these in Firefox so far, but you can see them in action on the demo site using the webwork and jsf flavors.

Update 2: 1.9.2 Final has been released.

Posted in Java at Jun 02 2006, 03:54:17 PM MDT 8 Comments

Knowledge of AppFuse and an appreciation of fine wine

It's not everyday you see a job that lists "Knowledge of AppFuse and an appreciation of fine wine" as optional skills. I asked Julie if she wanted to move to Napa Valley, but no dice. Too bad - sounds like a job I'd really enjoy. ;-) Thanks to Solomon for the tip.

Unfortunately, I'm still working on AppFuse 1.9.2 and I've given up on estimating when I'll be done. I'm having a hard time finding time to work on it between client meeting and being a good dad. The biggest frustrations so far are the good ol' component based frameworks: JSF and Tapestry. JSF sucks because of JSP and Tapestry is giving me fits because I can't seem to stuff a <span> inside a @FieldLabel. I'd like to think that component-based frameworks are more flexible than their action-based counterparts, but I'm finding quite the opposite so far.

Posted in Java at May 30 2006, 10:10:35 PM MDT 3 Comments

Is there a component like panelGrid that uses ul instead of table?

JSF 1.1 has a problem with JSP in that it can't bind components together when a page first loads. This is well documented in Improving JSF by Dumping JSP by Hans Bergsten.

The easy example of this problem is when you have <h:outputLabel> tags before <h:inputText> tags. The average JSF user might not notice the problem, but if you customize <h:outputLabel> to display "required field" indicators based on the "required" attribute of <h:inputText> - the issue slaps you in the face. The easy solution is to use <h:panelGrid> to layout your form data, and everything magically works. However, table-based forms are ugly and I'd much rather do pretty forms like this one.

In order to create pretty forms and get around the JSF sucks with JSP problem, I'm looking for a component similar to panelGrid - but it spits out <ul> and <li> instead of <table> and <tr>/<td>. Does anyone know of such a component? I asked this question on the MyFaces list this morning, but haven't had much luck.

I'm fully aware that Facelets (or Clay) will solve this problem. However, I'm merely trying to get AppFuse 1.9.2 released without making major changes. I suppose I could always go with ugly table-based forms, but I'd rather not.

Posted in Java at May 23 2006, 12:55:44 PM MDT 13 Comments

RE: Thoughts on the future direction of AppFuse

Sanjiv has some interesting thoughts on the future direction of AppFuse. To summarize: take on Seam head-to-head, but use Spring instead. Get rid of all the other frameworks except for JSF, Spring and Hibernate. Furthermore, focus on making Web 2.0 applications easy to create and use.

I like Sanjiv's ideas, but I'm not so hot on ditching all the other web frameworks in favor of JSF. I'm still not convinced it's the best solution for Java web development. The idea behind JSF is great, but the implementation has warts. Maybe that'll be fixed with JSF 1.2, but it will likely be quite a few months before MyFaces supports it. Yeah, I know there's the RI, but it is an RI and you remember the 1.1 version don't you? ;-)

I'd hate to give up WebWork support because I've used it on a couple of projects and really like it. Ditching Spring MVC would likely be a mistake as well since it's the most popular web framework among AppFuse users today. While I love what Tapestry brings to the table, it is harder (for the newbie) than JSF. Also, it seems to be the least-used web framework in AppFuse, which means I'm doing a lot of maintenance for no reason. AppFuse 2.0 will definitely make things simpler (JDK 5, Maven 2, standard directory layout, better IDE integration), but it will still be difficult to support 5 web frameworks and 2 persistence frameworks.

What do you think about Sanjiv's proposal? It sounds good to me. However, I'd rather see different lead developers for each framework and continue to support them all - except for Struts of course.

Posted in Java at May 22 2006, 08:16:53 PM MDT 28 Comments