
es.tid.topologyModuleBase.TMModuleInitiater Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of topology Show documentation
Show all versions of topology Show documentation
Traffic Engineering Database, BGP-LS peer, Topology Module
The newest version!
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 pluginsList;
private ScheduledThreadPoolExecutor executor;
public TMModuleInitiater(TopologiesDataBase ted, TopologyModuleParamsArray params, Lock lock, ArrayList pluginsList)
{
this.ted = ted;
this.params = params;
this.lock = lock;
this.pluginsList=pluginsList;
}
public void intiate()
{
executor = new ScheduledThreadPoolExecutor(20);
ArrayList 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();
}
}
*/
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy