
es.tid.topologyModuleBase.plugins.writer.TopologyServerCOP 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.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 TopologyServerCOP extends TopologyServer
{
public static TopologiesDataBase actualTed;
private boolean isRunning=false;
public TopologyServerCOP(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("Acting as BGP Peer");
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
log.info("Service-Topology Port: "+params.getExportCOPPort());
Server jettyServer = new Server(params.getExportCOPPort());
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.COPServiceTopology.server.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 "COP 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.getExportCOPPort();
return str;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy