\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
* 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
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
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
// 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
// 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
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
// 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
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
}\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
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
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
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
}\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
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
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