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

es.tid.topologyModuleBase.plugins.writer.TopologyServerIETF Maven / Gradle / Ivy

The newest version!
package es.tid.topologyModuleBase.plugins.writer;

import java.util.concurrent.locks.Lock;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

import es.tid.bgp.bgp4Peer.peer.BGPPeer;
import es.tid.tedb.SimpleTEDB;
import es.tid.topologyModuleBase.TopologyModuleParams;
import es.tid.topologyModuleBase.database.TopologiesDataBase;

//import javax.servlet.Servlet;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;


public class TopologyServerIETF extends TopologyServer
{
	
	
	public static TopologiesDataBase actualTed;
	private boolean isRunning=false;
	

	public TopologyServerIETF(TopologiesDataBase ted, TopologyModuleParams params,
			Lock lock) 
	{
		super(ted, params, lock);
		actualTed = ted;
	}
	
	
	public static TopologiesDataBase getActualTed(){
		return actualTed;
	}

	@Override
	public void serveTopology() 
	{
		this.run();
	}
	@Override
	public void run() 
	{
		log.info("IETF Topology Server");
		
		ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        log.info("Service-Topology Port: "+params.getExportIETFPort());
        Server jettyServer = new Server(params.getExportIETFPort());
        jettyServer.setHandler(context);
        ServletHolder jerseyServlet =  
        		context.addServlet( com.sun.jersey.spi.container.servlet.ServletContainer.class, "/*");


        jerseyServlet.setInitParameter(
                "com.sun.jersey.config.property.packages",
                "io.swagger.jaxrs.json;io.swagger.jaxrs.listing;es.tid.topologyModuleBase.IETFTopoModel.api");
        
        jerseyServlet.setInitParameter(
                "com.sun.jersey.spi.container.ContainerRequestFilters",
                "com.sun.jersey.api.container.filter.PostReplaceFilter");
        
        jerseyServlet.setInitParameter(
                "com.sun.jersey.api.json.POJOMappingFeatures",
                "true");
        
        jerseyServlet.setInitOrder(1);
		
        
        try {
        	isRunning=true;
            jettyServer.start();
            //jettyServer.dumpStdErr();
            jettyServer.join();
        } catch(Exception e){
        	log.severe(e.getStackTrace().toString());
        }finally {     
            jettyServer.destroy();
        }
		
	}
	
	@Override
	public boolean isRunning() {
		// TODO Auto-generated method stub
		return isRunning;
	}

	@Override
	public String getPluginName() {
		// TODO Auto-generated method stub
		return "IETF server-exporter";
	}

	@Override
	public String displayInfo() {
		// TODO Auto-generated method stub
		String str=getPluginName()+"\n";
		str+="Status: ";
		if(isRunning())str+="running";
		else str+="stop";
		str+="\nPort:"+params.getExportIETFPort();
		return str;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy