1 25 26 package org.snipsnap.feeder; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.radeox.api.engine.context.InitialRenderContext; 31 import org.radeox.macro.PluginRepository; 32 33 import java.util.*; 34 35 41 42 public class BasicFeederRepository extends PluginRepository implements FeederRepository { 43 private static Log log = LogFactory.getLog(FeederRepository.class); 44 45 private InitialRenderContext context; 46 47 protected List loaders; 48 49 public BasicFeederRepository() { 50 super(); 51 init(); 52 loaders = new ArrayList(); 53 loaders.add(new GroovyFeederLoader()); 54 loaders.add(new FeederLoader()); 55 load(); 56 } 57 58 private void init() { 59 Map newPlugins = new HashMap(); 60 61 Iterator iterator = list.iterator(); 62 while (iterator.hasNext()) { 63 Feeder feeder = (Feeder) iterator.next(); 64 newPlugins.put(feeder.getName(), feeder); 65 } 66 plugins = newPlugins; 67 } 68 69 72 private void load() { 73 Iterator iterator = loaders.iterator(); 74 while (iterator.hasNext()) { 75 FeederLoader loader = (FeederLoader) iterator.next(); 76 loader.setRepository(this); 77 log.debug("Loading from: " + loader.getClass()); 78 loader.loadPlugins(this); 79 } 80 } 81 82 public void addLoader(FeederLoader loader) { 83 loader.setRepository(this); 84 loaders.add(loader); 85 plugins = new HashMap(); 86 list = new ArrayList(); 87 load(); 88 } 89 } 90 | Popular Tags |