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