Struts2 Static Content

November 6, 2009

In the Apache Struts2 Documentation Performance Tuning page one of the recommended tips for improving the performance of the framework is to avoid Struts serving the static content.

Struts tags and themes include a set of static resources – javascript libraries, CSS, Freemarker templates – which are included inside the Struts jar file. The framework, via a filter (org.apache.struts2.dispatcher.FilterDispatcher which then delegates to a “staticLoader” class), retrieves those resources from the jar files (unjar them on the fly) and serves them on request.

Although this works quite neatly – nice to have all classes and resources contained together – it adds an unnecessary overhead upon serving the http request.

Read the rest of this entry »


Customising Struts2 JSP tags

March 13, 2009

Here is a possible way to customise the JSP taglib provided by the Struts2 framework.

The topics covered in this post are:

  • add a custom attribute to a given tag (e.g. TextField)
  • customise the Freemarker template to modify the generated HTML code
  • define new themes and templates
  • generate the new TLD for the customised version of the taglib
  • deploy it in a web application (WAR file)

The sample I have created implements a read-only version of the Struts2 JSP taglib: if a given attribute (i.e. viewMode) is set to true then a simple label (plain text) is rendered, instead of the html code for the input type, making the information on the form not editable.

This, in principle, achieves the same purpose as the disabled attribute but it looks much nicer on the web form.

Read the rest of this entry »


XWiki – User Authentication with Oracle SSO

October 15, 2008

XWiki is a popular Java-based wiki software offering a good variety of features and plugins. It is pretty advanced, therefore ideal for any enterprise requiring a content management tool which is flexible, professional and free :-)

Installation and configuration come in different flavors, starting with the standalone distribution (Jetty container on HSQLDB db), by far the easiest option. Alternatively the XWiki WAR file can be deployed on any servlet container and any database of your choice (Oracle 10.1.2 RDBMS and OC4J 10.1.3 in my case).

Read the rest of this entry »


Spring in Action

August 27, 2008

For anybody who is looking to start with the Spring Framework I definitely recommend the “Spring in Action” book. While you find loads of resources on the Web (aka lots of time to be invested) the book has indeed the approach you need if you are a beginner.

The reader is accompanied through the different chapters where the concepts are introduced incrementally and supported by good code samples. Also to be appreciated is the occasional use of UML diagrams to explain the interaction between classes.
It is available on Manning, and definitely worth the 30 bucks.

Part1 Core Spring is by far the most interesting as it covers IoC, bean wiring and AOP. Other chapters present the Enterprise features of Spring, from database access (JDBC and Hibernate) to security, messaging and Web Services. The book has also an introduction to Spring MVC and some words about the integration with other frameworks.

Key features: Easy to read, step-by-step approach, clear code samples.

Make sure it is the 2nd edition (Aug 2007) which is based on Spring 2.


JUnit JNDI DataSource helper package

July 6, 2008

“jrunittesthelper” is a library offered by JavaRanch Codebarn which can be used to simulate a JNDI lookup for database connections. It comes really handy for Junit test cases written to test production code which would typically require a JNDI lookup in order to instantiate the JDBC datasource.

Installation and Configuration

Download the zip file from JavaRanch Codebarn

Include the jrunittesthelper.jar in the classpath (ant or maven) of your test packages

Create a jndi_unit_test_helper.properties

Read the rest of this entry »