All Downloads are FREE. Search and download functionalities are using the official Maven repository.

es.tid.topologyModuleBase.TMModuleInitiater Maven / Gradle / Ivy

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