You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
This pattern is similar to the managed component pattern. But instead of creating and closing a resource it borrows from and returns to a pool. Pooling is provided by commons-pool.
@Name("saxParser") @Scope(ScopeType.EVENT) @AutoCreate public class PooledSaxParser { private SAXParser parser; @In private ObjectPool saxParserPool; @Create public void create() throws Exception { parser = (SAXParser) saxParserPool.borrowObject(); } @Destroy public void destroy() throws Exception { saxParserPool.returnObject(parser); } @Unwrap public SAXParser getParser() { return parser; } } @Name("saxParserPool") @Scope(ScopeType.APPLICATION) @AutoCreate public class SaxParserPool { private GenericObjectPool pool; @Create public void create() { pool = new GenericObjectPool(new SaxParserPoolFactory()); } @Unwrap public ObjectPool getPool() { return pool; } public class SaxParserPoolFactory extends BasePoolableObjectFactory { private SAXParserFactory saxParserFactory; public SaxParserPoolFactory() { saxParserFactory = SAXParserFactory.newInstance(); } public Object makeObject() throws Exception { return saxParserFactory.newSAXParser(); } } }