organizing imports
[mir.git] / source / mircoders / servlet / ServletModuleOpenIndy.java
index 93fe4d5..55def12 100755 (executable)
 \r
 package mircoders.servlet;\r
 \r
-import java.io.*;\r
-import java.lang.*;\r
-import java.sql.*;\r
-import java.util.*;\r
-import java.net.*;\r
-import java.lang.reflect.*;\r
-import javax.servlet.*;\r
-import javax.servlet.http.*;\r
-\r
-import freemarker.template.*;\r
-import com.oreilly.servlet.multipart.*;\r
-import com.oreilly.servlet.*;\r
-\r
-import org.apache.commons.net.smtp.*;\r
-\r
-import org.xml.sax.InputSource;\r
-import org.xml.sax.XMLReader;\r
-\r
+import java.io.ByteArrayOutputStream;\r
+import java.io.File;\r
+import java.io.FileNotFoundException;\r
+import java.io.FileReader;\r
+import java.io.IOException;\r
+import java.io.PrintWriter;\r
+import java.io.StringWriter;\r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.Enumeration;\r
+import java.util.GregorianCalendar;\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.ListIterator;\r
+import java.util.Locale;\r
+import java.util.Map;\r
+import java.util.Random;\r
+import java.util.Set;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+import javax.servlet.http.HttpSession;\r
+\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
+import mir.entity.Entity;\r
+import mir.entity.EntityList;\r
+import mir.log.LoggerWrapper;\r
+import mir.misc.FileHandler;\r
+import mir.misc.FileHandlerException;\r
+import mir.misc.FileHandlerUserException;\r
+import mir.misc.HTMLParseException;\r
+import mir.misc.HTMLTemplateProcessor;\r
+import mir.misc.StringUtil;\r
+import mir.misc.WebdbMultipartRequest;\r
+import mir.module.ModuleException;\r
+import mir.servlet.ServletModule;\r
+import mir.servlet.ServletModuleException;\r
+import mir.servlet.ServletModuleUserException;\r
+import mir.storage.StorageObjectFailure;\r
+import mir.util.StringRoutines;\r
+import mircoders.entity.EntityComment;\r
+import mircoders.entity.EntityContent;\r
+import mircoders.global.MirGlobal;\r
+import mircoders.media.MediaRequest;\r
+import mircoders.module.ModuleComment;\r
+import mircoders.module.ModuleContent;\r
+import mircoders.module.ModuleImages;\r
+import mircoders.module.ModuleTopics;\r
+import mircoders.search.AudioSearchTerm;\r
+import mircoders.search.ContentSearchTerm;\r
+import mircoders.search.ImagesSearchTerm;\r
+import mircoders.search.KeywordSearchTerm;\r
+import mircoders.search.TextSearchTerm;\r
+import mircoders.search.TopicSearchTerm;\r
+import mircoders.search.UnIndexedSearchTerm;\r
+import mircoders.search.VideoSearchTerm;\r
+import mircoders.storage.DatabaseComment;\r
+import mircoders.storage.DatabaseContent;\r
+import mircoders.storage.DatabaseContentToMedia;\r
+import mircoders.storage.DatabaseContentToTopics;\r
+import mircoders.storage.DatabaseImages;\r
+import mircoders.storage.DatabaseLanguage;\r
+import mircoders.storage.DatabaseTopics;\r
+\r
+import org.apache.commons.net.smtp.SMTPClient;\r
+import org.apache.commons.net.smtp.SMTPReply;\r
 import org.apache.fop.apps.Driver;\r
-import org.apache.fop.apps.Version;\r
 import org.apache.fop.apps.XSLTInputHandler;\r
-\r
+import org.apache.log.Hierarchy;\r
+import org.apache.log.Priority;\r
 import org.apache.lucene.analysis.standard.StandardAnalyzer;\r
-import org.apache.lucene.search.*;\r
 import org.apache.lucene.document.Document;\r
-import org.apache.lucene.document.Field;\r
-import org.apache.lucene.analysis.standard.*;\r
-import org.apache.lucene.queryParser.*;\r
-\r
-import org.apache.log.*;\r
-\r
-import mir.servlet.*;\r
-import mir.module.*;\r
-import mir.misc.*;\r
-import mir.entity.*;\r
-import mir.storage.*;\r
-import mir.media.*;\r
-import mir.log.*;\r
-import mir.util.StringRoutines;\r
+import org.apache.lucene.queryParser.QueryParser;\r
+import org.apache.lucene.search.Hits;\r
+import org.apache.lucene.search.IndexSearcher;\r
+import org.apache.lucene.search.Query;\r
+import org.apache.lucene.search.Searcher;\r
 \r
-import mircoders.entity.*;\r
-import mircoders.storage.*;\r
-import mircoders.module.*;\r
-import mircoders.producer.*;\r
-import mircoders.media.MediaRequest;\r
-import mircoders.global.*;\r
-import mircoders.localizer.*;\r
-import mircoders.search.*;\r
+import freemarker.template.SimpleHash;\r
+import freemarker.template.SimpleList;\r
+import freemarker.template.SimpleScalar;\r
+import freemarker.template.TemplateModelRoot;\r
 \r
 /*\r
  *  ServletModuleOpenIndy -\r
@@ -87,7 +121,7 @@ import mircoders.search.*;
  *    open-postings to the newswire\r
  *\r
  * @author mir-coders group\r
- * @version $Id: ServletModuleOpenIndy.java,v 1.57 2003/01/21 18:32:03 zapata Exp $\r
+ * @version $Id: ServletModuleOpenIndy.java,v 1.62 2003/03/05 19:23:16 idfx Exp $\r
  *\r
  */\r
 \r
@@ -111,20 +145,21 @@ public class ServletModuleOpenIndy extends ServletModule
   public static ServletModule getInstance() { return instance; }\r
 \r
   private ServletModuleOpenIndy() {\r
+    super();\r
     try {\r
       logger = new LoggerWrapper("ServletModule.OpenIndy");\r
 \r
-      commentFormTemplate = MirConfig.getProp("ServletModule.OpenIndy.CommentTemplate");\r
-      commentFormDoneTemplate = MirConfig.getProp("ServletModule.OpenIndy.CommentDoneTemplate");\r
-      commentFormDupeTemplate = MirConfig.getProp("ServletModule.OpenIndy.CommentDupeTemplate");\r
-      postingFormTemplate = MirConfig.getProp("ServletModule.OpenIndy.PostingTemplate");\r
-      postingFormDoneTemplate = MirConfig.getProp("ServletModule.OpenIndy.PostingDoneTemplate");\r
-      postingFormDupeTemplate = MirConfig.getProp("ServletModule.OpenIndy.PostingDupeTemplate");\r
-      searchResultsTemplate = MirConfig.getProp("ServletModule.OpenIndy.SearchResultsTemplate");\r
-      prepareMailTemplate = MirConfig.getProp("ServletModule.OpenIndy.PrepareMailTemplate");\r
-      sentMailTemplate = MirConfig.getProp("ServletModule.OpenIndy.SentMailTemplate");\r
-      directOp = MirConfig.getProp("DirectOpenposting").toLowerCase();\r
-      passwdProtection = MirConfig.getProp("PasswdProtection").toLowerCase();\r
+      commentFormTemplate = configuration.getString("ServletModule.OpenIndy.CommentTemplate");\r
+      commentFormDoneTemplate = configuration.getString("ServletModule.OpenIndy.CommentDoneTemplate");\r
+      commentFormDupeTemplate = configuration.getString("ServletModule.OpenIndy.CommentDupeTemplate");\r
+      postingFormTemplate = configuration.getString("ServletModule.OpenIndy.PostingTemplate");\r
+      postingFormDoneTemplate = configuration.getString("ServletModule.OpenIndy.PostingDoneTemplate");\r
+      postingFormDupeTemplate = configuration.getString("ServletModule.OpenIndy.PostingDupeTemplate");\r
+      searchResultsTemplate = configuration.getString("ServletModule.OpenIndy.SearchResultsTemplate");\r
+      prepareMailTemplate = configuration.getString("ServletModule.OpenIndy.PrepareMailTemplate");\r
+      sentMailTemplate = configuration.getString("ServletModule.OpenIndy.SentMailTemplate");\r
+      directOp = configuration.getString("DirectOpenposting").toLowerCase();\r
+      passwdProtection = configuration.getString("PasswdProtection").toLowerCase();\r
       mainModule = new ModuleComment(DatabaseComment.getInstance());\r
       contentModule = new ModuleContent(DatabaseContent.getInstance());\r
       themenModule = new ModuleTopics(DatabaseTopics.getInstance());\r
@@ -132,7 +167,7 @@ public class ServletModuleOpenIndy extends ServletModule
       defaultAction="addposting";\r
 \r
     }\r
-    catch (StorageObjectException e) {\r
+    catch (StorageObjectFailure e) {\r
       logger.error("servletmoduleopenindy could not be initialized: " + e.getMessage());\r
     }\r
   }\r
@@ -154,7 +189,6 @@ public class ServletModuleOpenIndy extends ServletModule
         // onetimepasswd\r
         if (passwdProtection.equals("yes")) {\r
           String passwd = this.createOneTimePasswd();\r
-          System.out.println(passwd);\r
           HttpSession session = req.getSession(false);\r
           session.setAttribute("passwd", passwd);\r
           mergeData.put("passwd", passwd);\r
@@ -193,7 +227,7 @@ public class ServletModuleOpenIndy extends ServletModule
       {\r
         // ok, collecting data from form\r
         try {\r
-          HashMap withValues = getIntersectingValues(req, DatabaseComment.getInstance());\r
+          Map withValues = getIntersectingValues(req, DatabaseComment.getInstance());\r
 \r
           //no html in comments(for now)\r
           for (Iterator i=withValues.keySet().iterator(); i.hasNext(); ){\r
@@ -242,7 +276,7 @@ public class ServletModuleOpenIndy extends ServletModule
           SimpleHash mergeData = new SimpleHash();\r
           deliver(req, res, mergeData, commentFormDoneTemplate);\r
         }\r
-        catch (StorageObjectException e) { throw new ServletModuleException(e.toString());}\r
+        catch (StorageObjectFailure e) { throw new ServletModuleException(e.toString());}\r
         catch (ModuleException e) { throw new ServletModuleException(e.toString());}\r
 \r
       }\r
@@ -261,14 +295,13 @@ public class ServletModuleOpenIndy extends ServletModule
     // onetimepasswd\r
     if(passwdProtection.equals("yes")){\r
       String passwd = this.createOneTimePasswd();\r
-      System.out.println(passwd);\r
       HttpSession session = req.getSession(false);\r
       session.setAttribute("passwd",passwd);\r
       mergeData.put("passwd", passwd);\r
     }\r
 \r
-    String maxMedia = MirConfig.getProp("ServletModule.OpenIndy.MaxMediaUploadItems");\r
-    String defaultMedia = MirConfig.getProp("ServletModule.OpenIndy.DefaultMediaUploadItems");\r
+    String maxMedia = configuration.getString("ServletModule.OpenIndy.MaxMediaUploadItems");\r
+    String defaultMedia = configuration.getString("ServletModule.OpenIndy.DefaultMediaUploadItems");\r
     String numOfMedia = req.getParameter("medianum");\r
 \r
     if(numOfMedia==null||numOfMedia.equals("")){\r
@@ -324,15 +357,17 @@ public class ServletModuleOpenIndy extends ServletModule
       EntityList mediaList = null;\r
       try {\r
         // new MediaRequest, "1" is the id for the openPosting user\r
-        MediaRequest mediaReq = new MediaRequest("1", true, true);\r
+        MediaRequest mediaReq = new MediaRequest("1", true);\r
         mp = new WebdbMultipartRequest(req, (FileHandler)mediaReq);\r
         mediaList = mediaReq.getEntityList();\r
       }\r
       catch (FileHandlerUserException e) {\r
         throw new ServletModuleUserException(e.getMessage());\r
+      } catch (PropertiesConfigExc e) {\r
+        throw new ServletModuleUserException(e.getMessage());\r
       }\r
 \r
-      HashMap withValues = mp.getParameters();\r
+      Map withValues = mp.getParameters();\r
 \r
       //checking the onetimepasswd\r
       if(passwdProtection.equals("yes")){\r
@@ -431,11 +466,11 @@ public class ServletModuleOpenIndy extends ServletModule
       }\r
     }\r
     catch (FileHandlerException e) {\r
-      e.printStackTrace(System.out);\r
+      e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));\r
       throw new ServletModuleException("MediaException: "+ e.getMessage());\r
     }\r
     catch (IOException e) { throw new ServletModuleException("IOException: "+ e.getMessage());}\r
-    catch (StorageObjectException e) { throw new ServletModuleException("StorageObjectException" + e.getMessage());}\r
+    catch (StorageObjectFailure e) { throw new ServletModuleException("StorageObjectException" + e.getMessage());}\r
     catch (ModuleException e) { throw new ServletModuleException("ModuleException"+e.getMessage());}\r
 \r
     deliver(req, res, mergeData, postingFormDoneTemplate);\r
@@ -490,11 +525,11 @@ public class ServletModuleOpenIndy extends ServletModule
       catch (ModuleException e){\r
         throw new ServletModuleUserException("Couldn't get content for article "+aid);\r
       }\r
-      String producerStorageRoot=MirConfig.getProp("Producer.StorageRoot");\r
-      String producerDocRoot=MirConfig.getProp("Producer.DocRoot");\r
-      String publishPath = StringUtil.webdbDate2path(contentEnt.getValue("date"));\r
+      String producerStorageRoot=configuration.getString("Producer.StorageRoot");\r
+      String producerDocRoot=configuration.getString("Producer.DocRoot");\r
+      String publishPath = contentEnt.getValue("publish_path");\r
       String txtFilePath = producerStorageRoot + producerDocRoot + "/" + mail_language +\r
-         publishPath + "/" + aid + ".txt";\r
+                                                                                                         publishPath + "/" + aid + ".txt";\r
 \r
 \r
       File inputFile = new File(txtFilePath);\r
@@ -539,23 +574,22 @@ public class ServletModuleOpenIndy extends ServletModule
       SMTPClient client=new SMTPClient();\r
       try {\r
         int reply;\r
-        client.connect(MirConfig.getProp("ServletModule.OpenIndy.SMTPServer"));\r
-        System.out.print(client.getReplyString());\r
+        client.connect(configuration.getString("ServletModule.OpenIndy.SMTPServer"));\r
 \r
         reply = client.getReplyCode();\r
 \r
-        if(!SMTPReply.isPositiveCompletion(reply)) {\r
+        if (!SMTPReply.isPositiveCompletion(reply)) {\r
           client.disconnect();\r
           throw new ServletModuleUserException("SMTP server refused connection.");\r
         }\r
 \r
-        client.sendSimpleMessage(MirConfig.getProp("ServletModule.OpenIndy.EmailIsFrom"),to,content);\r
+        client.sendSimpleMessage(configuration.getString("ServletModule.OpenIndy.EmailIsFrom"), to, content);\r
 \r
         client.disconnect();\r
         //mission accomplished\r
-        deliver(req,res,mergeData,sentMailTemplate);\r
-\r
-      catch(IOException e) {\r
+        deliver(req, res, mergeData, sentMailTemplate);\r
+      }\r
+      catch(IOException e) {\r
         if(client.isConnected()) {\r
           try {\r
             client.disconnect();\r
@@ -634,7 +668,7 @@ public class ServletModuleOpenIndy extends ServletModule
           session.setAttribute("positionInResults",new Integer(newPosition));\r
         }\r
         else {\r
-          String indexPath=MirConfig.getProp("IndexPath");\r
+          String indexPath=configuration.getString("IndexPath");\r
 \r
 \r
           String creatorFragment = creatorTerm.makeTerm(req);\r
@@ -722,7 +756,7 @@ public class ServletModuleOpenIndy extends ServletModule
               }\r
               else{\r
                 // then we'll sort by date!\r
-                HashMap dateToPosition = new HashMap(end,1.0F); //we know how big it will be\r
+                Map dateToPosition = new HashMap(end,1.0F); //we know how big it will be\r
                 for(int i = start; i < end; i++) {\r
                   String creationDate=(hits.doc(i)).get("creationDate");\r
                   // do a little dance in case two contents created at the same second!\r
@@ -842,9 +876,9 @@ public class ServletModuleOpenIndy extends ServletModule
     throws ServletModuleException, ServletModuleUserException {\r
     String ID_REQUEST_PARAM = "id";\r
     String language = req.getParameter("language");\r
+    String generateFO=configuration.getString("GenerateFO");\r
+    String generatePDF=configuration.getString("GeneratePDF");\r
 \r
-    String generateFO=MirConfig.getProp("GenerateFO");\r
-    String generatePDF=MirConfig.getProp("GeneratePDF");\r
 \r
     //don't do anything if we are not making FO files, or if we are\r
     //pregenerating PDF's\r
@@ -855,10 +889,10 @@ public class ServletModuleOpenIndy extends ServletModule
       log = hierarchy.getLoggerFor("fop");\r
       log.setPriority(Priority.WARN);\r
 \r
-      String producerStorageRoot=MirConfig.getProp("Producer.StorageRoot");\r
-      String producerDocRoot=MirConfig.getProp("Producer.DocRoot");\r
+      String producerStorageRoot=configuration.getString("Producer.StorageRoot");\r
+      String producerDocRoot=configuration.getString("Producer.DocRoot");\r
       //      String templateDir=MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir");\r
-      String xslSheet=MirConfig.getProp("Producer.HTML2FOStyleSheet");\r
+      String xslSheet=configuration.getString("Producer.HTML2FOStyleSheet");\r
       try {\r
         String idParam = req.getParameter(ID_REQUEST_PARAM);\r
         if (idParam != null) {\r