Skip to content

Category Archives: Seam

JBoss Seam 2.1 Presentation at Java Meetup

Here’s my presentation on JBoss Seam 2.1 from the Boston Java meetup group
Introduction To JBoss Seam 2.1
View more presentations from Priyatam M.

JBoss Seam presentation at the Boston Java meetup group

If you’re around the Boston Metro area, drop in for my presentation on JBoss Seam at the Boston Java Meetup group @MIT EHS office, Cambridge.
Click here for more details.

Generating Excel reports without a single line of java code using Seam

I still cannot reiterate enough, how much Seam is productive in developing rich web mvc apps. Take for example, a very common requirement where a rich datatable is present and users would want a “export to excel” functionality right next to each of these tables. With Seam, this is as simple as one line of [...]

Agile development with JBoss Seam & Oracle 10g XE

Most of us working in corporates, use Oracle mostly. It probably has a uptime of 99%. But sometimes, it does go down and when it does, it’s frustrating for the developer, especially when you’re in the middle of something.
We can’t have a local database instance running and having a hsqldb or mysql database would [...]

Example Interceptor in Seam, EJB3

It’s insanely easy to write an interceptor in EJB3. Here’s a tutorial/example code for an interceptor which collects statistics info around a method invocation.
import java.util.Collection;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import org.apache.commons.lang.time.StopWatch;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class StatisticsInterceptor {
private static final Log log = LogFactory
.getLog(StatisticsInterceptor.class);

@AroundInvoke
@SuppressWarnings("unchecked")
public Object intercept(InvocationContext ctx) throws Exception {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
Object result = ctx.proceed();
log.debug("Statistics for "
+ ctx.getMethod().getDeclaringClass().getSimpleName() [...]