package werti.server; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import java.io.OutputStreamWriter; import java.net.URL; import java.util.Arrays; import java.util.Enumeration; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.Locale; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringEscapeUtils; import org.apache.log4j.Logger; import org.apache.uima.jcas.JCas; import org.jsoup.Jsoup; import org.jsoup.nodes.Node; import org.jsoup.nodes.Document; import org.openid4java.OpenIDException; import org.openid4java.consumer.ConsumerException; import org.openid4java.consumer.ConsumerManager; import org.openid4java.discovery.DiscoveryException; import org.openid4java.discovery.DiscoveryInformation; import org.openid4java.discovery.Identifier; import org.openid4java.message.AuthRequest; import org.openid4java.message.MessageException; import werti.WERTiContext; import werti.WERTiContext.WERTiContextException; import werti.util.ActivitiesSessionLoader; import werti.util.HTMLEnhancer; import werti.util.HTMLUtils; import werti.util.JSONEnhancer; import werti.util.PageHandler; import werti.util.PostRequest; import werti.util.PracticeHandler; import com.google.gson.Gson; import weka.core.Instances; import weka.filters.Filter; /** * The server side implementation of the WERTi service. * * This is where the work is coordinated. The rough outline of the procedure is as follows: * *