I've posted an updated version of struts-xdoclet. I spent most of the day trying to get my build.xml and directory structure in line with Erik Hatcher's. He is planning on releasing a sample app based on his Ant book later this week, so I want to be relatively similar in our approaches. His app is a best-practices app for using Ant, JUnit and Lucene - while mine is more geared for Struts, Security and UI/Persistence Generation. I don't know if I'll commit to saying it's a best-practices app, but it's filled with a number of things I've learned in my Struts projects. I'd like to think of it as a kickstart app - kind of like
struts-blank.war, but with more meat.
One of the things I discussed with Erik today was that I'd like to add the ability to choose Castor, Hibernate, EJB, or DAO with some switches in the build script. Yeah, that'll only take me until March to get done, so don't hold your breath! His response was to take a look http://www.keelframework.org/. The idea of it, supposedly, is being able to take the same business logic and swap out UI and persistence tiers easily. I guess it was started by the Expresso Team. Hmmm, I don't know if that is good or bad. I shied away from Expresso when I saw that they promoted putting a bunch of HTML into your Java classes.
I found some great scripts tonight at dithered.com - hope of the now infamous GetContentSize tool. I'll be using these scripts to detect browser plugins for my current project - i.e. QuickTime and Flash + required versions.
I posted the following message to the tomcat-user group yesterday:
On Tomcat 4/5, I am able to use the following configuration in my
However, I know that there are app servers out there that do not support
this - the form-error-page MUST be a different JSP. So I'm wondering,
is there a value I can grab in my login.jsp that tells me the URL of the
protected resource the user is trying to get to?
<%=request.getRequestURL()%>, but that gives me .../login.jsp -
and I am expecting welcome.do.
I know iPlanet used to set a cookie and I could use that as described
Craig McClanahan responded with the following answer - which was just the information I was looking for:
There is no portable mechanism to acquire the request URL that was
originally requested, nor any guarantee that this is even possible. All
you know is that the container has detected that a protected URL was
requested, and that there was no currently authenticated user.
So the lesson learned is that if you want to make your webapp portable across different app servers, use two separate pages for the login and login-error pages.
Russell says he's heading to Bend, Oregon next weekend. Cool! I went to high school in Salem, Oregon and a bunch of my friends lived in Bend after college. Julie and I have visited Bend a few times, and it's a really nice mountain town. It's kinda like Denver, but a lot smaller (but growing rapidly). They get 300 days of sunshine a year (like Denver) and have a great micro-brewery. Everytime I've been there, I've wanted to move there. It's got great skiing too! But then again, Russ may not like it since he hates the cold and it was 15 degrees (F) this morning!