package es.tid.topologyModuleBase; import java.net.ServerSocket; import java.util.ArrayList; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.logging.Logger; import es.tid.topologyModuleBase.session.ws.WSOldSession; import es.tid.topologyModuleBase.database.TopologiesDataBase; import es.tid.topologyModuleBase.plugins.TMPlugin; import es.tid.topologyModuleBase.plugins.reader.TopologyReaderBGPLS; import es.tid.topologyModuleBase.plugins.reader.TopologyReaderCOP; import es.tid.topologyModuleBase.plugins.reader.TopologyReaderOSPF; import es.tid.topologyModuleBase.plugins.reader.TopologyReaderXML; import es.tid.topologyModuleBase.plugins.writer.TopologyServerBGPLS; import es.tid.topologyModuleBase.plugins.writer.TopologyServerCOP; import es.tid.topologyModuleBase.plugins.writer.TopologyServerGson; import es.tid.topologyModuleBase.plugins.writer.TopologyServerIETF; import es.tid.topologyModuleBase.plugins.writer.TopologyServerUnify; import es.tid.topologyModuleBase.plugins.readerwriter.TopologyReaderWriterBGPLS; public class TMModuleInitiater { Logger log=Logger.getLogger("TMController"); TopologiesDataBase ted; TopologyModuleParamsArray params; Lock lock; ArrayList<TMPlugin> pluginsList; private ScheduledThreadPoolExecutor executor; public TMModuleInitiater(TopologiesDataBase ted, TopologyModuleParamsArray params, Lock lock, ArrayList<TMPlugin> pluginsList) { this.ted = ted; this.params = params; this.lock = lock; this.pluginsList=pluginsList; } public void intiate() { executor = new ScheduledThreadPoolExecutor(20); ArrayList<TopologyModuleParams> paramList = params.getParamList(); for (int i = 0; i < paramList.size(); i++) { TopologyModuleParams actualLittleParams = paramList.get(i); //IMPORTERS if (actualLittleParams.isCOPReading()) { TMPlugin p = new TopologyReaderCOP(ted, actualLittleParams,lock); executor.scheduleWithFixedDelay(p, 0,20, TimeUnit.SECONDS); pluginsList.add(p); } if (actualLittleParams.isXML()) { TMPlugin p = new TopologyReaderXML(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); //log.info("topology readed from file. State:\n"+ted.printTopology()); } if (actualLittleParams.isOSPF()) { TMPlugin p = new TopologyReaderOSPF(ted, actualLittleParams, lock); executor.execute(p); pluginsList.add(p); } /*if (actualLittleParams.isFloodLight()) { (new TopologyReaderController(ted, actualLittleParams, lock)).readTopology(); } if (actualLittleParams.isRestInfinera()) { (new TopologyReaderInfinera(ted, actualLittleParams,lock)).readTopology(); }*/ if (actualLittleParams.isBGPLSReading()) { TMPlugin p = new TopologyReaderBGPLS(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } //EXPORTERS if (actualLittleParams.isBGPLSWriting()) { log.info("Exporter bgpls. TED State:\n"+ted.printTopology()); TMPlugin p = new TopologyServerBGPLS(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } if (actualLittleParams.isGSON()) { TMPlugin p = new TopologyServerGson(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } if (actualLittleParams.isWSOld()){ try { log.info("WSOld. ParamsSize: "+paramList.size()+" Time: "+i+" Info: "+actualLittleParams.getIpWSOld()+":"+actualLittleParams.getPortWSOld()); ServerSocket s= new ServerSocket(actualLittleParams.getPortWSOld()); while (true){ WSOldSession wssession= new WSOldSession(s.accept() ,ted); wssession.start(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (actualLittleParams.isCOPWriting()) { TMPlugin p = new TopologyServerCOP(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } if (actualLittleParams.isIETFWritting()) { TMPlugin p = new TopologyServerIETF(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } if (actualLittleParams.isUnifyWritting()) { TMPlugin p = new TopologyServerUnify(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } // IMPORTER/EXPORTER if (actualLittleParams.isBGPLSReadingWriting()) { TMPlugin p = new TopologyReaderWriterBGPLS(ted, actualLittleParams,lock); executor.execute(p); pluginsList.add(p); } //BOTH /*NO WS if (actualLittleParams.isWSOld()){ try { log.info("WSOld. ParamsSize: "+paramList.size()+" Time: "+i+" Info: "+actualLittleParams.getIpWSOld()+":"+actualLittleParams.getPortWSOld()); ServerSocket s= new ServerSocket(actualLittleParams.getPortWSOld()); while (true){ WSOldSession wssession= new WSOldSession(s.accept() ,ted); wssession.start(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } */ } } }