Liferay diaries: Serving resources from a portlet with Spring

So there comes the day when you finally have to serve an image, pdf or excel report generated by a portlet or, more elegantly, by a Spring controller backing a portlet. At a first take this may seem impossible since the markup produced by a portlet is embedded in the markup (i.e. HTML) of all … Continue reading Liferay diaries: Serving resources from a portlet with Spring

Spring @PathVariable mapping incomplete path when dots are included

In all my projects this happens at least once, and I'm surprised over and over again: a controller will not map just anything to @PathVariable by default. Contrary to intuition, the annotation's argument is a regular expression which excludes some characters per default. For instance the url http://localhost:8080/myapp/api/user/testuser@example when mapped to a controller: @RequestMapping(value = … Continue reading Spring @PathVariable mapping incomplete path when dots are included

Cache collision and ehcache spring annotations module

If you are looking for a way to implement declarative caching with Spring, there is no way around Ehcache Spring Annotations [1]. This superimposes a transparent aspect on methods of any proxied bean, taking the method arguments as a key. Little known but easy to stumble upon [2] is an implementation (design?) quirk which expects … Continue reading Cache collision and ehcache spring annotations module

Annotations, Java compiler and missing debugging information

So I play with my favorite ant build script and a day later nearly every annotation is broken: java.lang.IllegalStateException: No parameter name specified for argument of type [java.lang.String], and no parameter name information found in class file either. as far as the eye goes. What actually happened is that the new deployment skips debugging information … Continue reading Annotations, Java compiler and missing debugging information

Tomcat, Eclipse, Spring and reloading

As a  webapp gets bigger the time it takes to boot also increases which is a serious factor contributing to decreased focus and productivity when programming. When running Tomcat with Eclipse, the web application may restart even for the most trivial changes incurring long pauses. I found the following settings for Tomcat to minimize restarts … Continue reading Tomcat, Eclipse, Spring and reloading