package com.amazonaws.services.kinesis.app; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.handler.DefaultHandler; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import com.amazonaws.AmazonClientException; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider; import com.amazonaws.auth.EnvironmentVariableCredentialsProvider; import com.amazonaws.auth.InstanceProfileCredentialsProvider; import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory; import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream; import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration; import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker; public class KinesisServer { public static void main(String[] args) throws Exception { java.security.Security.setProperty("networkaddress.cache.ttl" , "60"); Server server = new Server(); ServerConnector connector = new ServerConnector(server); connector.setPort(80); server.addConnector(connector); ResourceHandler resource_handler = new ResourceHandler(); resource_handler.setResourceBase("."); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); ServletHolder holderEvents = new ServletHolder("ws-events", MessageProxyServlet.class); context.addServlet(holderEvents, "/kinesisapp/*"); HandlerList handlers = new HandlerList(); handlers.setHandlers(new Handler[] { resource_handler, context, new DefaultHandler() }); server.setHandler(handlers); server.start(); AWSCredentialsProvider credentialsProvider = new EnvironmentVariableCredentialsProvider(); KinesisClientLibConfiguration kinesisConfig = new KinesisClientLibConfiguration( System.getProperty("kinesisapp.name"), System.getProperty("kinesisapp.stream"), credentialsProvider, Long.toString(System.currentTimeMillis())) .withKinesisEndpoint(System.getProperty("kinesisapp.endpoint")); IRecordProcessorFactory factory = new Factory(); Worker worker = new Worker(factory, kinesisConfig); worker.run(); /* Processor p = new Processor(); p.test(); */ } }