/** * Created on Mar 11, 2006 * * $Id$ * $Revision$ */ package org.springmodules.javaspaces.blitz; import net.jini.space.JavaSpace; import org.dancres.blitz.config.ConfigurationFactory; import org.dancres.blitz.remote.LocalSpace; import org.springframework.core.io.Resource; import org.springmodules.javaspaces.AbstractJavaSpaceFactoryBean; /** * FactoryBean used for retrieving a Local Blitz Space. The space is created on startup and closed * along with Spring application context. * * @author Costin Leau * */ public class LocalSpaceFactoryBean extends AbstractJavaSpaceFactoryBean { private LocalSpace space; private Resource configuration; /** * @see org.springmodules.javaspaces.AbstractJavaSpaceFactoryBean#afterPropertiesSet() */ public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); if (configuration == null) throw new IllegalArgumentException("configuration is required"); } /** * @see org.springmodules.javaspaces.AbstractJavaSpaceFactoryBean#createSpace() */ protected JavaSpace createSpace() throws Exception { // static hookup of properties ConfigurationFactory.setup(new String[] { configuration.getFile().getAbsolutePath() }); space = new LocalSpace(); return space.getJavaSpaceProxy(); } /** * @see org.springmodules.javaspaces.AbstractJavaSpaceFactoryBean#destroy() */ public void destroy() throws Exception { super.destroy(); space.destroy(); } /** * @return Returns the configuration. */ public Resource getConfiguration() { return configuration; } /** * @param configuration The configuration to set. */ public void setConfiguration(Resource configuration) { this.configuration = configuration; } }