package org.jboss.seam.flex; import org.jboss.seam.Component; import org.jboss.seam.log.LogProvider; import org.jboss.seam.log.Logging; import flex.messaging.FlexFactory; import flex.messaging.FactoryInstance; import flex.messaging.config.ConfigMap; public class FlexSeamFactory implements FlexFactory { private static final LogProvider log = Logging.getLogProvider(FlexSeamFactory.class); String destinationName; String componentName; public FlexSeamFactory(String destinationName, String componentName) { this.componentName = componentName; this.destinationName = destinationName; } public void initialize(String id, ConfigMap configMap) { log.info("!FSF init " + id + " props=" + configMap); } public FactoryInstance createFactoryInstance(String id, ConfigMap properties) { log.info("!FSF create factory " + id + " props=" + properties); return new FactoryInstance(this, id, properties); } public Object lookup(FactoryInstance factory) { log.info("!FSF lookup " + factory); try { Object instance = Component.getInstance(componentName, true); return instance; } catch (Exception e) { log.error(e); return null; } } }