package net.blogracy; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.List; import java.util.TimeZone; import java.util.logging.Logger; import net.blogracy.config.Configurations; import net.blogracy.controller.ActivitiesController; import net.blogracy.controller.ChatController; import net.blogracy.controller.DistributedHashTable; import net.blogracy.controller.FileSharing; import net.blogracy.model.users.User; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; public class WebServer { public static final String LOREM_IPSUM = "Lorem ipsum dolor sit amet, " + "consectetur adipisicing elit, sed do eiusmod tempor " + "incididunt ut labore et dolore magna aliqua."; static final DateFormat ISO_DATE_FORMAT = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss'Z'"); static final int TOTAL_WAIT = 2 * 60 * 1000; // 2 minutes public static void main(String[] args) throws Exception { ISO_DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); int randomWait = (int) (TOTAL_WAIT * Math.random()); Logger log = Logger.getLogger("net.blogracy.webserver"); log.info("Web server: waiting for " + (randomWait / 1000) + " secs before starting"); Thread.currentThread().sleep(randomWait); String webDir = WebServer.class.getClassLoader().getResource("webapp") .toExternalForm(); WebAppContext context = new WebAppContext(); context.setResourceBase(webDir); // context.setDescriptor(webDir + "/WEB-INF/web.xml"); // context.setContextPath("/"); // context.setParentLoaderPriority(true); Server server = new Server(8181); server.setHandler(context); server.start(); // server.join(); List<User> friends = Configurations.getUserConfig().getFriends(); for (User friend : friends) { String hash = friend.getHash().toString(); ChatController.getSingleton().joinChannel(hash); } String id = Configurations.getUserConfig().getUser().getHash() .toString(); ChatController.getSingleton().joinChannel(id); while (true) { ActivitiesController activities = ActivitiesController .getSingleton(); String now = ISO_DATE_FORMAT.format(new java.util.Date()); activities.addFeedEntry(id, now + " " + LOREM_IPSUM, null); // List<User> friends = Configurations.getUserConfig().getFriends(); randomWait = (int) (TOTAL_WAIT * (0.8 + 0.4 * Math.random())); int wait = randomWait / friends.size(); for (User friend : friends) { DistributedHashTable.getSingleton().lookup( friend.getHash().toString()); activities.getFeed(friend.getHash().toString()); Thread.currentThread().sleep(wait); } } } }