Archive for the ‘J2EE’ Category

Dynamic Log Location for log4j

Sunday, March 7th, 2010
No Gravatar

I was really surprised that log4j doesn’t have any facility to set the log file location with a relative path. Hard to build a portable application if you need to set the full value of a local path. And don’t talk to me about config files, because that requires reading documentation, which is only read less than it is written.

So, if you use the standard log4j servlet approach to start your logging, you can weave in the following to set your path relative to your app:


org.w3c.dom.NodeList nodes = doc.getElementsByTagName("param");;
org.w3c.dom.Node node = null;//nodes.item(0);
org.w3c.dom.NamedNodeMap nodeMap = null;
for(int i=0; i < nodes.getLength(); i++)
{
    node = nodes.item(i);
    nodeMap = node.getAttributes();
    if(nodeMap.getNamedItem("name")
        .getNodeValue().equals("File"))
    {
        node = nodeMap.getNamedItem("value");
        outputFile = new File(getServletContext().getRealPath(node.getNodeValue()));
        outPutPath = outputFile.getAbsolutePath();
        outPutPath = outPutPath.replace('', '/');
        node.setNodeValue(outPutPath);
    }
}

Then you can set the log location to outPutPath.

Enjoy :)

Suppress Eclipse Warnings Annotation

Tuesday, November 17th, 2009
No Gravatar

When I search for something too many times, I try to remember to post it here.  So, to drop the warnings for type safety when you know all is fine, you can do the following:

@SuppressWarnings(“unchecked”)
List<CustomerBean>    customers    = (List<CustomerBean>)session.getAttribute(CSRD_CONTACT_LIST);

Permission Error on Delete Directory for Java Projects on Windows

Sunday, August 23rd, 2009
No Gravatar

I wish I had take a screen shot of the error to make this easier for folks to say “oh, yeah, I have that problem”. The thing is, when you build some J2EE applications from a project on the Desktop or My Documents (which I am only now starting to use out of convenience for back up programs that think that is where things should be stored) and then are done with them you find you can’t delete them.  You get this annoying warning that you might not have permission to do so, even though your are the administrator in Windows and the owner of the files.

This is because of a bug in Windows meant to annoy those of use who like having the directory structure match the namespace.  The generated name spaces are often too long when combined with all that extra path crud that goes to My Documents or Desktop for the OS to handle. So, the simple solution is take the folder and drag it into the root of the drive and then delete it. Apparently, only delete is crippled by this bug and not move. Go figure.

And, yes, I know that Microsoft bashing is cheap and easy. So am I, which is why I do it. I am fully aware that if it were not for Microsoft I would most likely be living in a trailer wondering why a guy that likes and understands something as complex as programming is ignored by Corporate America and treated like a warehouse worker (the way it was before Bill was a Billionaire).  Thank you Bill, for everything :)

PS: Microsoft bugs still piss me off.

Good Thread on White Space in JSPs

Wednesday, June 10th, 2009
No Gravatar

While it is tempting to quickly skim an blog entry for the information I’m seeking at the time, a recent find on dealing with white space with JSPs reminded me that there is a darn good reason most blogs have a comment feature.

The thread I’m talking about is Trim Spaces in Your JSP at Raible Designs. Fortunately, my paranoia paid off, and I did not try this setting blindly on the project where I was looking for such an answer (and have since rolled off). I almost did, but decided not to because I knew I would not be around to support the change, and that whoever I told about it may forget it. As it is a performance enhancement and the application had some peformance issues (too many cooks in the presentation layer kitchen IMHO), it was not as easy of a call as it may seem.

The con that comes up in the comments on that post is that it wipes all white space between tags. If I were the only person developing on the project, or if was a small team where I knew for certain that only experience JSP developers were working on the JSPs, I’d still feel safe. This is because if a space has to be in a page between two dynamic parameters, the experienced JSP developer will use an entity code rather than just a blank space.

There is also a comment in the thread about how to cut down white space in a build file. That was actually the type of solution I was seeking at the time (and missed at the time).  I would have to experiment with the solution before I suggested it, but it looks like what I wanted.