* open-postings to the newswire
*
* @author mir-coders group
- * @version $Id: ServletModuleOpenIndy.java,v 1.46 2002/11/29 13:43:42 zapata Exp $
+ * @version $Id: ServletModuleOpenIndy.java,v 1.47 2002/11/29 14:22:30 john Exp $
*
*/
if (aid!=null && !aid.equals(""))
{
- SimpleHash mergeData = new SimpleHash();
-
- // 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);
- }
-
- if (language!=null) {
- HttpSession session = req.getSession(false);
- session.setAttribute("Locale", new Locale(language, ""));
- session.setAttribute("passwd",language);
- }
-
- mergeData.put("aid", aid);
- deliver(req, res, mergeData, commentFormTemplate);
+ SimpleHash mergeData = new SimpleHash();
+
+ // 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);
+ }
+
+ if (language!=null) {
+ HttpSession session = req.getSession(false);
+ session.setAttribute("Locale", new Locale(language, ""));
+ session.setAttribute("passwd",language);
+ }
+
+ mergeData.put("aid", aid);
+ deliver(req, res, mergeData, commentFormTemplate);
}
else throw new ServletModuleException("aid not set!");
}
String aid = req.getParameter("to_media"); // the article id the comment will belong to
if (aid!=null && !aid.equals(""))
{
- // ok, collecting data from form
- try {
- HashMap withValues = getIntersectingValues(req, DatabaseComment.getInstance());
+ // ok, collecting data from form
+ try {
+ HashMap withValues = getIntersectingValues(req, DatabaseComment.getInstance());
- //no html in comments(for now)
- for (Iterator i=withValues.keySet().iterator(); i.hasNext(); ){
+ //no html in comments(for now)
+ for (Iterator i=withValues.keySet().iterator(); i.hasNext(); ){
String k=(String)i.next();
String v=(String)withValues.get(k);
withValues.put(k,StringUtil.removeHTMLTags(v));
- }
- withValues.put("is_published","1");
-
- //checking the onetimepasswd
- if(passwdProtection.equals("yes")){
- HttpSession session = req.getSession(false);
- String sessionPasswd = (String)session.getAttribute("passwd");
- if ( sessionPasswd == null){
- throw new ServletModuleUserException("Lost password");
- }
- String passwd = req.getParameter("passwd");
- if ( passwd == null || (!sessionPasswd.equals(passwd))) {
- throw new ServletModuleUserException("Missing password");
- }
- session.invalidate();
- }
-
- // inserting into database
- String id = mainModule.add(withValues);
- logger.debug("inscomment: id = "+id);
- //insert was not successfull
- if(id==null){
- deliver(req, res, new SimpleHash(), commentFormDupeTemplate);
- } else {
- DatabaseContent.getInstance().setUnproduced("id="+aid);
-
- try {
- EntityComment comment = (EntityComment) DatabaseComment.getInstance().selectById(id);
- MirGlobal.localizer().openPostings().afterCommentPosting(comment);
- }
- catch (Throwable t) {
- throw new ServletModuleException(t.getMessage());
- }
-
-
-
- }
-
- // redirecting to url
- // should implement back to article
- SimpleHash mergeData = new SimpleHash();
- deliver(req, res, mergeData, commentFormDoneTemplate);
- }
- catch (StorageObjectException e) { throw new ServletModuleException(e.toString());}
- catch (ModuleException e) { throw new ServletModuleException(e.toString());}
+ }
+ withValues.put("is_published","1");
+
+ //checking the onetimepasswd
+ if(passwdProtection.equals("yes")){
+ HttpSession session = req.getSession(false);
+ String sessionPasswd = (String)session.getAttribute("passwd");
+ if ( sessionPasswd == null){
+ throw new ServletModuleUserException("Lost password");
+ }
+ String passwd = req.getParameter("passwd");
+ if ( passwd == null || (!sessionPasswd.equals(passwd))) {
+ throw new ServletModuleUserException("Missing password");
+ }
+ session.invalidate();
+ }
+
+ // inserting into database
+ String id = mainModule.add(withValues);
+ logger.debug("id: "+id);
+ //insert was not successfull
+ if(id==null){
+ deliver(req, res, new SimpleHash(), commentFormDupeTemplate);
+ } else {
+ DatabaseContent.getInstance().setUnproduced("id="+aid);
+
+ try {
+ EntityComment comment = (EntityComment) DatabaseComment.getInstance().selectById(id);
+ MirGlobal.localizer().openPostings().afterCommentPosting(comment);
+ }
+ catch (Throwable t) {
+ throw new ServletModuleException(t.getMessage());
+ }
+
+
+
+ }
+
+ // redirecting to url
+ // should implement back to article
+ SimpleHash mergeData = new SimpleHash();
+ deliver(req, res, mergeData, commentFormDoneTemplate);
+ }
+ catch (StorageObjectException e) { throw new ServletModuleException(e.toString());}
+ catch (ModuleException e) { throw new ServletModuleException(e.toString());}
}
else throw new ServletModuleException("aid not set!");
extraInfo.put("topics", themenModule.getTopicsList());
- }
+ }
catch (Exception e) {
- logger.error("languagePopUpData or getTopicslist failed " + e.toString());
+ logger.error("languagePopUpData or getTopicslist failed "+e.toString());
throw new ServletModuleException("OpenIndy -- failed getting language or topics: "+e.toString());
}
} catch (FileHandlerUserException e) {
throw new ServletModuleUserException(e.getMsg());
}
-
+
HashMap withValues = mp.getParameters();
//checking the onetimepasswd
if ((((String)withValues.get("title")).length() == 0) ||
(((String)withValues.get("description")).length() == 0) ||
(((String)withValues.get("content_data")).length() == 0))
- throw new ServletModuleUserException("Missing field");
+ throw new ServletModuleUserException("Missing field");
// call the routines that escape html
// inserting content into database
String cid = contentModule.add(withValues);
- logger.debug("insposting: id = "+cid);
+ logger.debug("id: "+cid);
//insert was not successfull
if(cid==null){
//How do we know that it was not succesful cause of a
try{
DatabaseContentToTopics.getInstance().setTopics(cid,to_topicsArr);
setTopic = true;
- }
- catch (Exception e) {
+ }
+ catch (Exception e) {
logger.error("setting content_x_topic failed");
contentModule.deleteById(cid);
throw new ServletModuleException("smod - openindy :: insposting: setting content_x_topic failed: "+e.toString());
} //end try
} //end if
-
+
//if we're here all is ok... associate the media to the article
for(int i=0;i<mediaList.size();i++) {
Entity mediaEnt = (Entity)mediaList.elementAt(i);
try {
MirGlobal.localizer().openPostings().afterContentPosting(
- (EntityContent)contentModule.getById(cid));
+ (EntityContent)contentModule.getById(cid));
}
catch (Throwable t) {
throw new ServletModuleException(t.getMessage());
*/
public void search(HttpServletRequest req, HttpServletResponse res)
throws ServletModuleException, ServletModuleUserException {
+ try {
+ int increment=10;
- String queryString="";
-
- SimpleHash mergeData = new SimpleHash();
-
- //make the query available to subsequent iterations
+ HttpSession session = req.getSession(false);
- for (Enumeration theParams = req.getParameterNames(); theParams.hasMoreElements() ;) {
- String pName=(String)theParams.nextElement();
- if (pName.startsWith("search_")){
- mergeData.put(pName,new SimpleScalar(req.getParameter(pName)));
+ String queryString="";
+
+ SimpleHash mergeData = new SimpleHash();
+
+ KeywordSearchTerm dateTerm = new KeywordSearchTerm("date_formatted","search_date","webdb_create_formatted","webdb_create_formatted","webdb_create_formatted");
+ UnIndexedSearchTerm whereTerm = new UnIndexedSearchTerm("","","","where","where");
+ TextSearchTerm creatorTerm = new TextSearchTerm("creator","search_creator","creator","creator","creator");
+ TextSearchTerm titleTerm = new TextSearchTerm("title","search_content","title","title","title");
+ TextSearchTerm descriptionTerm = new TextSearchTerm("description","search_content","description","description","description");
+ ContentSearchTerm contentTerm = new ContentSearchTerm("content_data","search_content","content","","");
+ TopicSearchTerm topicTerm = new TopicSearchTerm();
+ ImagesSearchTerm imagesTerm = new ImagesSearchTerm();
+ AudioSearchTerm audioTerm = new AudioSearchTerm();
+ VideoSearchTerm videoTerm = new VideoSearchTerm();
+
+ //make the query available to subsequent iterations
+
+ for (Enumeration theParams = req.getParameterNames(); theParams.hasMoreElements() ;) {
+ String pName=(String)theParams.nextElement();
+ if (pName.startsWith("search_")){
+ mergeData.put(pName,new SimpleScalar(req.getParameter(pName)));
+ }
}
- }
-
- try{
- mergeData.put("topics", themenModule.getTopicsAsSimpleList());
- }
- catch(ModuleException e) {
- logger.debug("search: Can't get topics: " + e.toString());
- }
-
- String indexPath=MirConfig.getProp("IndexPath");
-
-
- KeywordSearchTerm dateTerm = new KeywordSearchTerm("date_formatted","search_date","webdb_create_formatted","webdbcreate_formatted","webdb_create_formatted");
-
- UnIndexedSearchTerm whereTerm = new UnIndexedSearchTerm("","","","where","where");
-
- TextSearchTerm creatorTerm = new TextSearchTerm("creator","search_creator","creator","creator","creator");
- TextSearchTerm titleTerm = new TextSearchTerm("title","search_content","title","title","title");
- TextSearchTerm descriptionTerm = new TextSearchTerm("description","search_content","description","description","description");
-
- ContentSearchTerm contentTerm = new ContentSearchTerm("content_data","search_content","content","","");
-
- TopicSearchTerm topicTerm = new TopicSearchTerm();
-
- ImagesSearchTerm imagesTerm = new ImagesSearchTerm();
-
- AudioSearchTerm audioTerm = new AudioSearchTerm();
-
- VideoSearchTerm videoTerm = new VideoSearchTerm();
-
- String creatorFragment = creatorTerm.makeTerm(req);
- if (creatorFragment != null){
- queryString = queryString + " +" + creatorFragment;
- }
-
- // search title, description, and content for something
- // the contentTerm uses "search_boolean" to combine its terms
- String contentFragment = contentTerm.makeTerm(req);
- if (contentFragment != null){
- logger.debug("search: contentFragment: " + contentFragment);
- queryString = queryString + " +" + contentFragment;
- }
-
- String topicFragment = topicTerm.makeTerm(req);
- if (topicFragment != null){
- queryString = queryString + " +" + topicFragment;
- }
-
- String imagesFragment = imagesTerm.makeTerm(req);
- if (imagesFragment != null){
- queryString = queryString + " +" + imagesFragment;
- }
-
- String audioFragment = audioTerm.makeTerm(req);
- if (audioFragment != null){
- queryString = queryString + " +" + audioFragment;
- }
-
- String videoFragment = videoTerm.makeTerm(req);
- if (videoFragment != null){
- queryString = queryString + " +" + videoFragment;
- }
-
- if (queryString == null || queryString == ""){
- queryString = "";
- }
- else{
-
+
try{
- Searcher searcher = null;
- try {
- searcher = new IndexSearcher(indexPath);
- }
- catch(IOException e) {
- logger.error("search: Can't open indexPath: " + indexPath + ": " + e.getMessage());
- throw new ServletModuleUserException("Problem with Search Index!");
- }
-
- // parse the query String.
- Query query = null;
- try {
- query = QueryParser.parse(queryString, "content", new StandardAnalyzer());
- }
- catch(Exception e) {
- searcher.close();
- logger.error("search: Query don't parse: " + queryString + ": " + e.getMessage());
- throw new ServletModuleUserException("Problem with Query String! (was '"+queryString+"')");
- }
-
- Hits hits = null;
- try {
- hits = searcher.search(query);
- } catch(IOException e) {
- searcher.close();
- logger.error("search: Can't get hits: " + e.getMessage());
- throw new ServletModuleUserException("Problem getting hits!");
- }
-
-
- // this is what needs to change in order to get sorting by date
- // iterate over the results
- // the results are an array of document
- // associate this with session so we don't need to reduplicate searches
- // make a map from date to position
- // make an list of dates
- // sort list by date
- // grab low+n entries from the list of dates,
- // iterate over these, using hash to get hit position,
- // and hit position to get hit
- // shove hit into SimpleList of SimpleHashes
-
-
-
- try {
- int start = 0;
- int end = hits.length();
- mergeData.put("numberOfHits", (new Integer(end)).toString());
- SimpleList theHits = new SimpleList();
- for(int i = start; i < end; i++) {
- SimpleHash h = new SimpleHash();
- Document theHit = hits.doc(i);
- whereTerm.returnMeta(h,theHit);
- creatorTerm.returnMeta(h,theHit);
- titleTerm.returnMeta(h,theHit);
- descriptionTerm.returnMeta(h,theHit);
- dateTerm.returnMeta(h,theHit);
- imagesTerm.returnMeta(h,theHit);
- audioTerm.returnMeta(h,theHit);
- videoTerm.returnMeta(h,theHit);
- theHits.add(h);
- }
- mergeData.put("hits",theHits);
- }
- catch (Exception e) {
- searcher.close();
- logger.error("search: Can't iterate over hits: " + e.getMessage());
- throw new ServletModuleUserException("Problem getting hits!");
- }
- searcher.close();
+ mergeData.put("topics", themenModule.getTopicsAsSimpleList());
+ }
+ catch(ModuleException e) {
+ logger.debug("Can't get topics: " + e.toString());
+ }
+
+ String searchSubmitValue = req.getParameter("search_submit");
+
+ if (searchSubmitValue != null && searchSubmitValue.equals("Back")){
+ int totalHits = ((Integer) session.getAttribute("numberOfHits")).intValue();
+ int newPosition=((Integer)session.getAttribute("positionInResults")).intValue()-increment;
+ if (newPosition < 0 || newPosition >= totalHits){
+ throw new ServletModuleUserException("newPosition: index out bounds, value was:"+(new Integer(newPosition)).toString());
+ }
+ session.setAttribute("positionInResults",new Integer(newPosition));
+
}
- catch (IOException e){
- logger.error("search: Can't close searcher: " + e.toString());
- throw new ServletModuleUserException("Problem closing searcher!");
+ else {
+ if (searchSubmitValue != null && searchSubmitValue.equals("Forward")){
+ int totalHits = ((Integer) session.getAttribute("numberOfHits")).intValue();
+ int newPosition=((Integer)session.getAttribute("positionInResults")).intValue()+increment;
+ if (newPosition < 0 || newPosition >= totalHits){
+ throw new ServletModuleUserException("newPosition: index out bounds, value was:"+(new Integer(newPosition)).toString());
+ }
+ session.setAttribute("positionInResults",new Integer(newPosition));
+
+ }
+ else {
+ String indexPath=MirConfig.getProp("IndexPath");
+
+
+ String creatorFragment = creatorTerm.makeTerm(req);
+ if (creatorFragment != null){
+ queryString = queryString + " +" + creatorFragment;
+ }
+
+ // search title, description, and content for something
+ // the contentTerm uses param "search_boolean" to combine its terms
+ String contentFragment = contentTerm.makeTerm(req);
+ if (contentFragment != null){
+ logger.debug("contentFragment: " + contentFragment);
+ queryString = queryString + " +" + contentFragment;
+ }
+
+ String topicFragment = topicTerm.makeTerm(req);
+ if (topicFragment != null){
+ queryString = queryString + " +" + topicFragment;
+ }
+
+ String imagesFragment = imagesTerm.makeTerm(req);
+ if (imagesFragment != null){
+ queryString = queryString + " +" + imagesFragment;
+ }
+
+ String audioFragment = audioTerm.makeTerm(req);
+ if (audioFragment != null){
+ queryString = queryString + " +" + audioFragment;
+ }
+
+ String videoFragment = videoTerm.makeTerm(req);
+ if (videoFragment != null){
+ queryString = queryString + " +" + videoFragment;
+ }
+
+ if (queryString == null || queryString == ""){
+ queryString = "";
+ }
+ else{
+ try{
+ Searcher searcher = null;
+ try {
+ searcher = new IndexSearcher(indexPath);
+ }
+ catch(IOException e) {
+ logger.debug("Can't open indexPath: " + indexPath);
+ throw new ServletModuleUserException("Problem with Search Index! : "+ e.toString());
+ }
+
+ Query query = null;
+ try {
+ query = QueryParser.parse(queryString, "content", new StandardAnalyzer());
+ }
+ catch(Exception e) {
+ searcher.close();
+ logger.debug("Query don't parse: " + queryString);
+ throw new ServletModuleUserException("Problem with Query String! (was '"+queryString+"')");
+ }
+
+ Hits hits = null;
+ try {
+ hits = searcher.search(query);
+ }
+ catch(IOException e) {
+ searcher.close();
+ logger.debug("Can't get hits: " + e.toString());
+ throw new ServletModuleUserException("Problem getting hits!");
+ }
+
+ int start = 0;
+ int end = hits.length();
+
+ String sortBy=req.getParameter("search_sort");
+ if (sortBy == null || sortBy.equals("")){
+ throw new ServletModuleUserException("Please let me sort by something!(missing search_sort)");
+ }
+
+ // here is where the documents will go for storage across sessions
+ ArrayList theDocumentsSorted = new ArrayList();
+
+ if (sortBy.equals("score")){
+ for(int i = start; i < end; i++) {
+ theDocumentsSorted.add(hits.doc(i));
+ }
+ }
+ else{
+ // then we'll sort by date!
+ HashMap 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!
+ if (dateToPosition.containsKey(creationDate)){
+ ((ArrayList) (dateToPosition.get(creationDate))).add(new Integer(i));
+ }
+ else{
+ ArrayList thePositions = new ArrayList();
+ thePositions.add(new Integer(i));
+ dateToPosition.put(creationDate,thePositions);
+ }
+ }
+ Set keys = dateToPosition.keySet();
+ ArrayList keyList= new ArrayList(keys);
+ Collections.sort(keyList);
+ if (sortBy.equals("date_desc")){
+ Collections.reverse(keyList);
+ }
+ else{
+ if (!sortBy.equals("date_asc")){
+ throw new ServletModuleUserException("don't know how to sort by: "+ sortBy);
+ }
+ }
+ ListIterator keyTraverser = keyList.listIterator();
+ while (keyTraverser.hasNext()){
+ ArrayList positions = (ArrayList)dateToPosition.get((keyTraverser.next()));
+ ListIterator positionsTraverser=positions.listIterator();
+ while (positionsTraverser.hasNext()){
+ theDocumentsSorted.add(hits.doc(((Integer)(positionsTraverser.next())).intValue()));
+ }
+ }
+ }
+
+ try{
+ searcher.close();
+ }
+ catch (IOException e){
+ logger.debug("Can't close searcher: " + e.toString());
+ throw new ServletModuleUserException("Problem closing searcher(normal)!");
+ }
+
+
+ session.removeAttribute("numberOfHits");
+ session.removeAttribute("theDocumentsSorted");
+ session.removeAttribute("positionInResults");
+
+ session.setAttribute("numberOfHits",new Integer(end));
+ session.setAttribute("theDocumentsSorted",theDocumentsSorted);
+ session.setAttribute("positionInResults",new Integer(0));
+
+ }
+ catch (IOException e){
+ logger.debug("Can't close searcher: " + e.toString());
+ throw new ServletModuleUserException("Problem closing searcher!");
+ }
+ }
+ }
}
+
+ try {
+ ArrayList theDocs = (ArrayList)session.getAttribute("theDocumentsSorted");
+ if (theDocs != null){
+
+ mergeData.put("numberOfHits", ((Integer)session.getAttribute("numberOfHits")).toString());
+ SimpleList theHits = new SimpleList();
+ int pIR=((Integer)session.getAttribute("positionInResults")).intValue();
+ int terminus;
+ int numHits=((Integer)session.getAttribute("numberOfHits")).intValue();
+
+ if (!(pIR+increment>=numHits)){
+ mergeData.put("hasNext","y");
+ }
+ if (pIR-increment>=0){
+ mergeData.put("hasPrevious","y");
+ }
+
+ if ((pIR+increment)>numHits){
+ terminus=numHits;
+ }
+ else {
+ terminus=pIR+increment;
+ }
+ for(int i = pIR; i < terminus; i++) {
+ SimpleHash h = new SimpleHash();
+ Document theHit = (Document)theDocs.get(i);
+ whereTerm.returnMeta(h,theHit);
+ creatorTerm.returnMeta(h,theHit);
+ titleTerm.returnMeta(h,theHit);
+ descriptionTerm.returnMeta(h,theHit);
+ dateTerm.returnMeta(h,theHit);
+ imagesTerm.returnMeta(h,theHit);
+ audioTerm.returnMeta(h,theHit);
+ videoTerm.returnMeta(h,theHit);
+ theHits.add(h);
+ }
+ mergeData.put("hits",theHits);
+ }
+ }
+ catch (Exception e) {
+ logger.debug("Can't iterate over hits: " + e.toString());
+ throw new ServletModuleUserException("Problem getting hits!");
+ }
+
+ mergeData.put("queryString",queryString);
+ deliver(req,res,mergeData,searchResultsTemplate);
+ }
+ catch (NullPointerException n){
+ n.printStackTrace();
+ throw new ServletModuleUserException("Null Pointer"+n.toString());
}
- mergeData.put("queryString",queryString);
- deliver(req,res,mergeData,searchResultsTemplate);
}
/*
public void getpdf(HttpServletRequest req, HttpServletResponse res)
throws ServletModuleException, ServletModuleUserException {
String ID_REQUEST_PARAM = "id";
-
+
String generateFO=MirConfig.getProp("GenerateFO");
String generatePDF=MirConfig.getProp("GeneratePDF");
Hierarchy hierarchy = Hierarchy.getDefaultHierarchy();
log = hierarchy.getLoggerFor("fop");
log.setPriority(Priority.WARN);
-
+
String producerStorageRoot=MirConfig.getProp("Producer.StorageRoot");
String producerDocRoot=MirConfig.getProp("Producer.DocRoot");
String templateDir=MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir");
- String xslSheet=templateDir + "/"
+ String xslSheet=templateDir + "/"
+ MirConfig.getProp("Producer.PrintableContent.html2foStyleSheetName");
try {
String idParam = req.getParameter(ID_REQUEST_PARAM);
EntityContent contentEnt =
(EntityContent)contentModule.getById(idParam);
String publishPath = contentEnt.getValue("publish_path");
- String foFile = producerStorageRoot + producerDocRoot + "/"
- + publishPath + "/" + idParam + ".fo";
- XSLTInputHandler input = new XSLTInputHandler(new File(foFile),
- new File(xslSheet));
-
+ String foFile = producerStorageRoot + producerDocRoot + "/"
+ + publishPath + "/" + idParam + ".fo";
+ XSLTInputHandler input = new XSLTInputHandler(new File(foFile),
+ new File(xslSheet));
+
ByteArrayOutputStream out = new ByteArrayOutputStream();
res.setContentType("application/pdf");
throw new ServletModuleUserException("Missing id parameter.");
}
} catch (Exception ex) {
- throw new ServletModuleException(ex.toString());
+ throw new ServletModuleException(ex.toString());
}
} else {
throw new ServletModuleUserException("Can't generate a PDF because the config tells me not to.");
}
}
-
+
private void _throwBadContentType (String fileName, String contentType)
throws ServletModuleUserException {
- logger.error("Wrong file type uploaded!: " + fileName + " (" + contentType + ")");
- throw new ServletModuleUserException("A file you uploaded is of the "
- +"following mime-type: " + contentType + ". Unfortunately we do not support this type. ");
+ logger.error("Wrong file type uploaded!: " + fileName+" "
+ +contentType);
+ throw new ServletModuleUserException("The file you uploaded is of the "
+ +"following mime-type: "+contentType
+ +", we do not support this mime-type. "
+ +"Error One or more files of unrecognized type. Sorry");
}
protected String createOneTimePasswd(){
/* this is an overwritten method of ServletModule in order
to use different bundles for open and admin */
public void deliver(HttpServletRequest req, HttpServletResponse res,
- TemplateModelRoot rtm, TemplateModelRoot popups,
- String templateFilename)
+ TemplateModelRoot rtm, TemplateModelRoot popups,
+ String templateFilename)
throws ServletModuleException {
if (rtm == null) rtm = new SimpleHash();
try {
PrintWriter out = res.getWriter();
HTMLTemplateProcessor.process(res, templateFilename, rtm, popups, out,
- getLocale(req), "bundles.open");
+ getLocale(req), "bundles.open");
out.close();
} catch (HTMLParseException e) {
throw new ServletModuleException(e.toString());