Release Note Ver 2001.1.21 2004/08/19 FIXED BUGS bug id tbs00033 EZServletContext#sendError(int),EZServletContext#sendError(int,String) cause for EZServlet to miss sending cookies. new functions / modified functions com.ngMAT.Common.CoolProperties a new keyword "includedir" enables including all files in a specified directory. com.ngMAT.Common.DSV new constructors : DSV (EZServletContext, String), DSV (EZServletContext, Vector). com.ngMAT.HTML.ByteArrayComponent a new method : loadFile(String). com.ngMAT.HTML.HTMLTemplate a new method : getTableTagAsTemplate(). com.ngMAT.HTML.ezscustomtag.JSessionID When the value is null, the output will be the blank. com.ngMAT.HTML.ezscustomtag.PSessionID When the value is null, the output will be the blank. com.ngMAT.servlet.EZServletConfig a new context handler 2.3b is available. When you set the property EZServlet.TargetServletSpec to 2.3b, EZServlet will call ServletRequest#setCharacterEncoding(String) to enable the servlet container's character conversion mechanism and EZServlet doesn't do conversion process. com.ngMAT.servlet.EZServletContext new methods : setEZSessionValue (String sessionid, String name, Object value), getEZSessionValue (String sessionid, String name), removeEZSessionValue (String sessionid, String name), getSessionValueNames (String sessionid),invalidateEZSession (String sessionid), isSecureRequest(), appendPrivateSessionID(String). The method encodeRedirectUrl(String) is now public. new classes com.ngMAT.Mail.SimpleFileAttachedMailMessage com.ngMAT.servlet.EZSession com.ngMAT.servlet.EZSessionManager ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.20 2004/06/30 FIXED BUGS bug id tbs00032 The properties EZServlet.Request.Charset and EZServlet.Response.Charset for com.ngMAT.servlet.EZServletConfig doesn't work. new functions / modified functions com.ngMAT.Common.CoolProperties When the loader finds any variables which is declared with the line "#Use " but is NOT DEFINED, it will add the warning messages to the message of an exception. com.ngMAT.Common.DSV new methods : setItem(int,String), setItemWithQuotation(int,String), getBooleanItem(int),getBooleanItem(int,boolean), getShortItem(int),getShortItem(int,short),getIntItem(int),getIntItem(int,int), getLongItem(int),getLongItem(int,long). The method reformat() will return the reformated string. com.ngMAT.Common.KeyValuePackage a new method : format(). com.ngMAT.Common.ngmDBObject a new method : getDBTimestampString(java.sql.Timestamp). com.ngMAT.Common.ngmDB2Object a new method : getDBTimestampString(java.sql.Timestamp). com.ngMAT.Common.ngmPGDBObject a new method : getDBTimestampString(java.sql.Timestamp). com.ngMAT.Common.ngmPGDBObject2 a new method : getDBTimestampString(java.sql.Timestamp). com.ngMAT.HTML.HTMLTemplate new methods : setCheckboxChecked(String,boolean),setRadioChecked(String,boolean), setTagValues(java.util.Properties). com.ngMAT.Mail.SimpleMailMessage Now you can specify the smtp port with the property Mail.SMTPHostname in a form ":". com.ngMAT.servlet.EZServletContext a new method : renewSessionID(), sendRedirectorHTML(HTMLTemplate,String), sendRedirectorHTML(HTMLTemplate,String,String,String), getIntCookieValue(String,String), getLongCookieValue(String,String), getBooleanCookieValue(String), getBooleanCookieValue(String,String), invalidateCookie(String), invalidateCookie(String, String), getRequestedTemplate(), getContentType(). com.ngMAT.tools.Bcp Bcp will not use the system user to get the table information. The properties Database.SystemUser and Database.SystemPassword are NOT required now. com.ngMAT.tools.PGBcp PGBcp will not use the property PGDatabase.OwnerID to get the table information. That property is NOT required now. new classes com.ngMAT.net.HttpCommunicator ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.19 2004/05/07 FIXED BUGS new functions / modified functions com.ngMAT.Common.CoolProperties a parameter-type-modified method : load(InputStreamReader isr) ==> load(Reader r). When the loader finds the line "#Use ", it will check the variable is defined or not. The level of check action is defined by the system property "CoolProperties.UseCheckLevel". The default of this value is "none". new classes com.ngMAT.Common.NullCallableStatement com.ngMAT.Common.NullDBConnection com.ngMAT.Common.NullPreparedStatement com.ngMAT.Common.NullResultSet com.ngMAT.Common.NullStatement ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.18 2004/04/05 FIXED BUGS new functions / modified functions com.ngMAT.Common.CoolProperties When the system property "CoolProperties.LoadSystemProperties" is true, CoolProperties will load system properties as preset values. a new method : keysInOrder(). com.ngMAT.servlet.EZServletConfig/EZServletContext When you set the new propery EZServlet.PrivateSession.SessionID.UseCookie to false, the context will read the private session id from the http parameter. Additionally EZServletContext#sendRedirectWithUrlEncoding (String url) will append the private session id to the url as a GET parameter. com.ngMAT.servlet.EZServletConfig a new method : getPrivateSessionIDName(). com.ngMAT.servlet.EZServletContext new methods : getPrivateSessionID(), getAttributeNames(), setAttribute(String,Object), getAttribute(String), redirected(). renewPrivateSessionID() will returna new private session id. com.ngMAT.servlet.EZSPresetProperties a new preset value : "HTMLTemplate.CustomTag.psessionid.Handler". new classes com.ngMAT.HTML.ezscustomtag.PSessionID ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.17 2004/03/09 FIXED BUGS bug id tbs00031 MultiPartContentHandler.Part.nextPart() throws IndexOutOfBoundsException when the next part is empty text. new functions / modified functions com.ngMAT.Common.CoolProperties When the system property "CoolProperties.DEBUG" is true, CoolProperties will print the loaded lines to the standard out one by one. You can also set the encoding type of the properties file with the system property "CoolProperties.EncodingType". a new method : public static void main(String[]) to test the properties file. com.ngMAT.HTML.HTMLTemplate new methods : addTemplateValue (name, value). com.ngMAT.HTML.InsertionTag new methods : addInsertedObject (value). com.ngMAT.servlet.EZServletContext a new method : isMultipartFormDataContent(). com.ngMAT.servlet.EZSPresetProperties a new preset value : "HTMLTemplate.CustomTag.localhost.Handler". new classes com.ngMAT.HTML.customtag.Localhost ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.16 2004/02/26 FIXED BUGS bug id tbs00030 StringConverter#convertZenkakuKatakanaToHankaku() doesn't convert the Japanese prolonged sound marks. new functions / modified functions com.ngMAT.Common.PooledDBConnection new properties PooledDBConnection.HealthCheck.AlertMail.To, PooledDBConnection.Connection.UseWrapper. com.ngMAT.Common.StringConverter convertZenkakuKatakanaToHankaku(),convertHankakuKatakanaToZenkaku() will handle the Japanese prolonged sound mark, the puctuation mark and the Japanese period. com.ngMAT.HTML.CustomTag a new method : getAttributeAsTemplate (name), getInsertionTagInstance(). com.ngMAT.HTML.EZSCustomTag a new method : getAttributeAsTemplate (context, name). com.ngMAT.HTML.HTMLComponent static protected DecimalFormat df is now deprecated. Use protected DecimalFornat getDecimalFormat() in stead. a new method : setParent(parent), getParent(). com.ngMAT.HTML.HTMLComponentVector a new method : size(). com.ngMAT.HTML.HTMLTemplate You can write tag characters in the quated string as attributes of insertion tags. a new method : addEZSTemplateEventListener(listener). com.ngMAT.HTML.InsertionTag new methods : getAttribute (name), getAttribute (name, default_value), getXXXXAttribute (name), getXXXXAttribute (name, default_value), getAttributeNames(), getAttributeAsTemplate (name), getAttributeAsTemplate (context, name). com.ngMAT.HTML.RepeatableElement a new method : getInsertionTagInstance(). com.ngMAT.Mail.SimpleMailMessage Now, the default value of the property Mail.SMTPHostname is "127.0.0.1". com.ngMAT.serlvet.EZServlet EZServlet will not send the content body when the request method is "HEAD". new classes ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.15 2004/02/09 FIXED BUGS bug id tbs00029 When you do NOT set the property "Mail.AdditionalHeaders", NullPointerException will be thrown on sending a message. new functions / modified functions com.ngMAT.Common.CommonRuntimeException a new constructor : CommonRuntimeException (String,Throwable). com.ngMAT.Common.LogFile a new method : setEncodingType(String). You can specify the output encoding type with the system property "com.ngMAT.Common.LogFile.EncodingType". com.ngMAT.Common.LowLevelException a new constructor : LowLevelException (String,Throwable) com.ngMAT.HTML.HTMLComponent new methods : setOmitClosingTag(boolean), getOmitClosingTag(). com.ngMAT.HTML.Input toHTML() will not print the closing tag . com.ngMAT.HTML.Select new methods : setUseAppropriateForm(boolean), getUseAppropriateForm(). While the flag use_appropriate_form is set to true, toHTML() returns a hidden input tag if the number of sub-elements or options is 1. com.ngMAT.HTML.form.Checkbox a new constructor : Checkbox() com.ngMAT.HTML.form.Radio a new constructor : Radio() com.ngMAT.HTML.form.Input This class gets "public". com.ngMAT.servlet.EZServletConfig a new property : "EZServlet.DEBUG_MODE.Log.Stdout"(true/false) to control the stdout output of debug information. com.ngMAT.tools.Bcp a new option value "Truncate" is available for ".PreProcess". new classes com.ngMAT.Common.EZEnum com.ngMAT.Common.ThreadPool com.ngMAT.Common.ThreadPoolWorker com.ngMAT.Common.ThreadPoolWorkerInitializer com.ngMAT.Common.URLParameterHandler com.ngMAT.Common.URLParameterParser com.ngMAT.HTML.Br com.ngMAT.servlet.filter.CRLF2BR a filter to convert new-lines, i.e., CR+LF and LF, into
. com.ngMAT.tools.BcpToBeSkippedException ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.14 2003/12/23 FIXED BUGS new functions / modified functions com.ngMAT.Common.DBConnection a new method : getWrappedConnection(String). if the property "DBConnection.Connection.Use.Wrapper" is set to true, getConnection(String) will return the same kind of instance of getWrappedConnection(String). com.ngMAT.HTML.CustomTag new methods : getAttribute(String,String), getLongAttribute(String), getLongAttribute(String,long),getIntAttribute(String),getIntAttribute(String,int), getShortAttribute(String),getShortAttribute(String,short),getBooleanAttribute(String), getBooleanAttribute(String,boolean). com.ngMAT.HTML.HTMLTemplate When loading template file, if the template file is not found then a TemplateNotFoundException will be thrown or if other errors and the case the child included template is not found then a BadTemplateException will be thrown. Both exceptions are sub-classes of LowLevelException which was thrown in the former versions. new classes com.ngMAT.Common.DBConnectionWrapper com.ngMAT.HTML.TemplateNotFoundException com.ngMAT.HTML.BadTemplateException ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.13 2003/10/29 FIXED BUGS bug id tbs00028 When you set the property EZServlet.TargetServletSpec to "2.3", NullPointerException will be thrown in EZServletConfig#createNullContext(). new functions / modified functions com.ngMAT.Common.StringConstants new constants : ZENKAKU_HIRAGANA, ZENKAKU_KATAKANA, ZENKAKU_VOICED_SOUND_HIRAGANA, ZENKAKU_VOICED_SOUND_KATAKANA, HANKAKU_KATAKANA, HANKAKU_VOICED_SOUND_KATAKANA com.ngMAT.Common.StringConverter new methods : convertZenkaku2Hankaku(String),convertZenkakuKatakana2Hankaku(String), convertHankakuKatakana2Zenkaku(String) com.ngMAT.HTML.CustomTag When the template properties are available, getAttribute(String) will handle the reference to the property {$varname}. com.ngMAT.servlet.EZServlet a new filtering function is available with properties: EZServlet.Filter.HTMLTemplateContent..Class HTMLTemplate content filters will work with String object created by HTMLTemplate#toHTML(). If HTMLTemplate instance is the instance of XMLHandler, the filters will process the String created by XMLHandler#toXMLString(). com.ngMAT.servlet.EZServletContext The reequest URL will be printed to the debug log on debug mode. com.ngMAT.servlet.EZSPresetProperties new preset property : "HTMLTemplate.CustomTag.session.Handler". new classes com.ngMAT.HTML.ezscustomtag.SessionValue com.ngMAT.servlet.filter.Zenkaku2Hankaku ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.12 2003/10/15 FIXED BUGS bug id tbs00027 NullPointerException is thrown if one of the session objects is removed while writing session object values to the debug log with debug mode. new functions / modified functions com.ngMAT.Common.DBConnection com.ngMAT.Common.PooledDBConnection WatchDog locks the status object when it checks the status of pool elements. com.ngMAT.Common.PooledDBConnection In releeaseConnection(Connection), it will return without processing if the parameter is null. com.ngMAT.Common.StandardPostgreSQLHealthChecker It will handle NullPointerException thrown in the postgresql jdbc driver in the case like after the postmaster has been killed. com.ngMAT.tools.HttpFileLoader new method : main new classes ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.11 2003/09/30 FIXED BUGS new functions / modified functions com.ngMAT.Common.CoolProperties new public method : handleVariableReference(String). new methods : clear(), getEmptyInstance(). You can pre-define vm-wide properties with setting the system properties "CoolProperties.define." at the java command line parameter. It will define the preset values for all CoolProperties instances. You can set the system property "CoolProperties.VariableReference" to enable, to enable the variable reference. com.ngMAT.Common.FileWatcher new method : stopWatcher(). com.ngMAT.Common.PooledDBConnection new methods : removeConnection(String propfname,Connection con),removeConnection(Connection con). com.ngMAT.HTML.HTMLTemplate The path string in the #Include tag can refer the property value with the form {$propertyname}. com.ngMAT.HTML.InsertionTag You can specify the default string value for the tag with the parameter "default". com.ngMAT.HTML.LineReaderComponent new methods : getDispositionType(), setDispositionType(String). com.ngMAT.servlet.EZServletConfig new method : getPresetProperties(). You can pre-define vm-wide properties with setting the system properties "EZServlet.Property." at the java command line parameter. You can also use the variable reference to the preset property values, {$...}, in the value of the servlet init parameter "properties". com.ngMAT.servlet.EZServletContext new methods : removeSessionBranchValue(String,String),flushCompleted(),flushFailed(). new classes com.ngMAT.servlet.RFCConstants ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.10 2003/08/22 FIXED BUGS new functions / modified functions com.ngMAT.Common.CoolProperties new constructors : CoolProperties(String filename, CoolProperties init_value), CoolProperties(CoolProperties init_value). getShortProperties(String,short), getIntProperties(String,int), getLongProperties(String,long),getBooleanProperties(String,boolean) will return default value when the property has 0 length value. com.ngMAT.Common.ngmObject Log object which defined in this class is additionally modified by "transient". com.ngMAT.Common.ngmDBObject new method : getDBTimestampString(java.sql.Date). com.ngMAT.Common.ngmDB2Object new method : getDBTimestampString(java.sql.Date). com.ngMAT.Common.ngmPGDBObject new method : getDBTimestampString(java.sql.Date). com.ngMAT.Common.SmallCodeTable a new constructor : SmallCodeTable(CoolProperties code_def). com.ngMAT.HTML.HTMLTemplate new method : removeValueFilters(),getOriginalString(). com.ngMAT.servlet.EZServlet When the output target is an instance of ObjectArrayComponent, the response will be output with ObjectOutputStream. com.ngMAT.servlet.EZServletConfig new methods : getWebApplicationInitParameter(String), getWebApplicationInitParameterNames(). You can pre-define web-application-wide properties with setting the context init parameters "EZServlet.Property." in your web.xml. com.ngMAT.servlet.EZServletConfig com.ngMAT.servlet.EZServletContext When you set the property "EZServlet.Request.Virtual.Header.xxxx" for a virtual request header, you can get the value with calling EZServletContext#getHeader(String). Even when you set EZServlet.DEBUG_MODE=true, parameter list dump will not performed if the http method is not "GET", or NOT - the method is "POST" and the "Content-type" is "application/x-www-form-urlencoded". You can put objects onto the EZServlet "private" session area which is managed by the EZServlet private session ID stored in a cookie valid thru end-of-session. new method : setTagValueWithParametersRaw(...), getPrivateSessionValue(String),setPrivateSessionValue(String, Object), sendRedirectorHTML(String), sendRedirectorHTML(String,String,String). new classes com.ngMAT.HTML.ObjectArrayComponent ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.09 2003/07/28 FIXED BUGS bug id tbs00026 The servlet name is not put out in the servlet log file. new functions / modified functions com.ngMAT.DSV new methods : setColumnDelimiter(String),getColumnDelimiter(), setDontTrim(boolean),getDontTrim(). com.ngMAT.Log new method : clone(). com.ngMAT.ngmObject new methods : getShortProperty (String),getShortProperty (String,short), getIntProperty (String),getIntProperty (String,int),getLongProperty (String), getLongProperty (String,long),getBooleanProperty (String), getBooleanProperty (String,boolean),getProperty (String,String). com.ngMAT.servket.EZSPresetProperties new preset property : "HTMLTemplate.CustomTag.cp_sym.Handler". new classes com.ngMAT.HTML.ezscustomtag.CellPhoneSymbol ELIMINATED FUNCTIONS / CLASSES etc. Ver 2001.1.08 2003/07/15 FIXED BUGS new functions / modified functions com.ngMAT.Common.AttributeParser When the value is quated with double cuatations, a '\' before '"' will escape the '"' but one more '\' before '\' will escape the escape. new method : addSpaceChars (String). com.ngMAT.Common.CommonRuntimeException If the instance is created by the constructor CommonRuntimeException(Throwable), stack trace of the nested exception will be output on stack tracing. com.ngMAT.Common.CoolProperties a new method : getProperty (String,String),remove(String),removeProperty(String). #undefine keyname will cancel the defined property "keyname". com.ngMAT.Common.ngmDBObject a new method : getDBDateStringAsDate(java.sql.Date). com.ngMAT.Common.ngmDB2Object a new method : getDBDateStringAsDate(java.sql.Date). com.ngMAT.Common.ngmPGDBObject a new method : getDBDateStringAsDate(java.sql.Date). com.ngMAT.HTML.CustomTag a new method : getContentAsTemplate(). com.ngMAT.HTML.EZSCustomTag a new method : getContentAsTemplate(EZServletContext). com.ngMAT.HTML.FileResource new methods : setLogicalFilename(String),getLogicalFilename(),getFile(), setSetFilename(). getFilename() will return a logical filename if the logical filename is set and will return a physical filename if the logical filename is NOT set. You can specify the encoding type of the filename with the property "EZServlet.FileResource.Filename.Charset". com.ngMAT.HTML.HTMLComponent a new method : setParameters(CoolProperties),removeAllSubElements(). com.ngMAT.HTML.HTMLElement com.ngMAT.HTML.InsertionTag You can specify a leading string and/or following string of tag using tag attribute, e.g., [[tagname leader="" follower=""/]] will replaced : tag value. If the tag doesn't have any output value, the leader and the follower will not appear. new methods : getContentAsTemplate(),getContentAsTemplate(Properties),(EZServletContext). com.ngMAT.HTML.ParsedTable new methods : addRow(Row),setHeader(HTMLTemplate),setHeader(Row),getHeaderString(),getRowString(). com.ngMAT.HTML.customtag.Empty com.ngMAT.HTML.table.Cell new methods : parse(String),parse(String,ParsePosition),getSubElementAsTemplate(). com.ngMAT.HTML.table.Row new methods : parse(String),parse(String,ParsePosition),addCellAt(Cell,int),addCell(Cell). com.ngMAT.servlet.EZServletContext new methods : setSessionBranchValue(String,String,Object), getSessionBranchValue( String,String),getSessionBranch(String),createSessionBranch(), createMultiPartContentHandler(),createMultiPartContentHandler(int). com.ngMAT.tools.Bcp You can specify the timing of BcpRecordProcessor#doProcess(..) call If you specify the BcpRecordProcessor for bcp in. new classes com.ngMAT.servlet.MultiPartContentHandler com.ngMAT.servlet.Part ELIMINATED FUNCTIONS / CLASSES etc. com.ngMAT.tools javadoc comments are added to classes in "tools" package. Ver 2001.1.07 2003/06/06 FIXED BUGS new functions / modified functions com.ngMAT.Common.StringConverter new methods : removeChars (String,String), replaceCRLF2BR (String), replaceSpace2NBSP (String). com.ngMAT.Common.CoolProperties new methods : getShortProperty (String), getShortProperty (String, short), getIntProperty (String), getIntProperty (String, int), getLongProperty (String), getLongProperty (String, long), getBooleanProperty (String), getBooleanProperty (String, boolean). new classes ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.06 2003/05/16 FIXED BUGS bug id tbs00024 CoolProperties.put(String,String) duplicates data with the same key in its vector image. bug id tbs00025 If the property "EZServlet.Request.Charset" is not set, a NullPointerException will be thrown on calling EZServletContext#urlencode(String). new functions / modified functions com.ngMAT.Common.CoolProperties() new methods : save(), save(String), save (PrintWriter), setProperty(String,String). the inner class FileTreeNode gets java.io.Serializable. com.ngMAT.Common.ngmPGDBObject the value of SYSDATE_STRING was changed from "datetime('now'::abstime)" to "now()". com.servlet.EZServletConfig new methods : getServlet(String). com.servlet.EZServletContext new methods : getInputStream(). com.ngMAT.tools.HttpPing new command line option -c. If -c is given, it will print the response of the target url to standard out. new classes ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.05 2003/04/15 FIXED BUGS bug id tbs00023 template objects of RepeatableElement instance in the HTMLTemplate instance does not inherit filter definition. new functions / modified functions com.servlet.EZServletContext / EZServletConfig You can specify 2.3 as an EZServlet.TargetServletSpec property value. The context handler for 2.3 disables character conversion of the Web application container if you specify the Servlet.Request.Charset property. new classes ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.04 2003/02/25 FIXED BUGS new functions / modified functions com.ngMAT.Bcp new methods : initBcpOut(), doBcpOut(), wrapupBcpOut(), initBcpIn(), doBcpIn(), wrapupBcpIn(). new methods : getAssignedConnection(), setBcpOutResultSet(ResultSet), setBcpOutWriter(PrintWriter), getBcpOutResultSet(), getBcpOutWriter(), setBcpInReader(BufferedReader), getBcpInReader(), createBcpOutSelectSQL(), openBcpOutFile(), closeBcpOutFile(), openBcpInFile(), closeBcpInFile(). new methods : wrapup(), getApplicationName(), getTargetTableName(), getTargetFileName(). com.ngMAT.PGBcp timestamptz type fields will be processed as same as timestamp type fields. com.ngMAT.DSV doubled double quotations will be processed as an escaped double quotation while parsing double-quated items. com.ngMAT.servlet.EZServletContext new methods setTemporaryData (String, Object), getTemporaryData (String). new classes com.ngMAT.HTML.XMLHandler com.ngMAT.HTML.XMLHandlerContainer com.ngMAT.tools.BcpRecordProcessor ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.03 2003/01/28 FIXED BUGS bug id tbs00022 template objects created by HTMLTemplate.createHTMLTemplateFromString(EZServletContext,String) does not inherit filter definition. new functions / modified functions com.ngMAT.Common.ngmObjectFunction new constants S_DOUBLE_QUOTATION, S_SINGLE_QUOTATION, C_DOUBLE_QUOTATION, C_SINGLE_QUOTATION. com.ngMAT.Common.DSV new methods addWithQuotation(String), addWithQuotation(int,String). com.ngMAT.servlet.EZServlet will check if an HttpSession is assigned to the context before session information dump for debug. com.ngMAT.servlet.EZServletConfig The property "EZServlet.PropertiesWatcher.Config" turns on auto-reloading of servlet configuration. com.ngMAT.servlet.EZServletContext new method hasSession(). new methods getTemplateWithoutPathTranslation(), getStringWithoutPathTranslation(). new classes com.ngMAT.Common.FileWatcher com.ngMAT.Common.event.Event com.ngMAT.Common.event.FileModifiedEvent com.ngMAT.Common.listener.FileModifiedEventListener ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.02 2003/01/10 FIXED BUGS bug id tbs00021 EZSCustomTag instance inside the row template of ParsedTable are not processed as exptected. new functions / modified functions com.ngMAT.Common.CoolProperties new constructor CoolProperties(String filename, Properties init_value), CoolProperties(String filename, KeyValuePackage[] init_value), CoolProperties(KeyValuePackage[] init_value). com.ngMAT.Common.Log When the file name is the same, an output file instance will be shared between Log instances. com.ngMAT.HTML.EZSCustomTag new method addHTMLTemplateEventListener (HTMLTemplateEventListener). com.ngMAT.HTML.HTMLTemplate new method getRepeatableElement(String). new method createHTMLTemplateFromString (EZServletContext context, String TemplateString). com.ngMAT.HTML.ParsedTable is now a subclass of RepeatableElement. new method getElementTemplate(). com.ngMAT.servlet.EZServletConfig You can specify the template path handler class with the property "EZServlet.TemplatePathHandler". You can get the servlet instance name from the property "__SERVLET_INSTANCE_NAME__" or the instace variable "instance_name" of EZServletConfig. Will load preset properties values from EZSPresetProperties before loading servlet properties file. new method getDebugLog(). com.ngMAT.servlet.EZServletContext new methods getTemplateRealPath (String name), getTemplateRealPath (String root_path, String name). The methods getTemplate (String) and getString (String) will use getTemplateRealPath (String name) to determin the real path of the file. new method getTemplate (String root_path, String name). new method getString (String root_path, String name). new method sendRedirectWithUrlEncoding (String url).This will call HttpServletResponse#encodeRedirectUrl independently of the property. new method isRequestedSessionIdFromCookie(). new methods getServerName(), getServerPort(), getProtocol(), getScheme(). new methods getCompleteRequestURL(), completeURL (String uri). new classes com.ngMAT.Common.LogFile a log file handler. com.ngMAT.HTML.EZSTemplateEventListener an event listener to listen ezs_loaded or ezs_fix event. com.ngMAT.HTML.RepeatableElement an HTML component to process a repeatable element in the HTML template. com.ngMAT.HTML.ezscustomtag.Cookie a custom tag to create a cookie string. com.ngMAT.HTML.ezscustomtag.Parameter a custom tag to create a http parameter string. com.ngMAT.HTML.ezscustomtag.JSessionID a custom tag to create a jsessionid string. com.ngMAT.HTML.ezscustomtag.Here a custom tag to create a request url string. com.ngMAT.HTML.customtag.Now a custom tag to create a timestamp string with the current time. com.ngMAT.servlet.EZRedirectorServlet, EZRedirectorServletConfig redirector servlet. com.ngMAT.servlet.EZSPresetProperties preset value list of properties for EZServlet with following values: HTMLTemplate.CustomTag.cookie.Handler=com.ngMAT.HTML.ezscustomtag.Cookie HTMLTemplate.CustomTag.param.Handler=com.ngMAT.HTML.ezscustomtag.Parameter HTMLTemplate.CustomTag.jsessionid.Handler=com.ngMAT.HTML.ezscustomtag.JSessionID HTMLTemplate.CustomTag.now.Handler=com.ngMAT.HTML.customtag.Now HTMLTemplate.CustomTag.here.Handler=com.ngMAT.HTML.ezscustomtag.Here com.ngMAT.servlet.TemplatePathHandler template path handler interface. com.ngMAT.servlet.templatepathhandler.DefaultPathHandler default template path handler without any translation. com.ngMAT.servlet.templatepathhandler.AgentSensitivePathHandler template path handler which translates the path depending on UserAgent. ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.01 2002/12/22 FIXED BUGS bug id tbs00020 The header template and the row template of ParsetTable don't inherit the property "Application.Tag.EscapeChar" from its including HTMLTemplate. new functions / modified functions com.ngMAT.Common.DSV new constructors DSV() and DSV(Properties). new methods add(String) and add(int, String). com.ngMAT.Common.StringConverter mew method static String convertText2HTMLStyle (String src). mew method static String replaceStringIgnoreCase (String src, String key, String value). com.ngMAT.servlet.EZServlet will send the Content-Length header for ByteArrayComponent response. com.ngMAT.servlet.EZServletConfig If you specify the property "EZServlet.OrganizeCookie=false", EZServlet will turn its cookie sending mechanism off and will use the function of the servlet container. The default is true and EZServlet create cookie headers by itself. com.ngMAT.servlet.EZServletContext addCookie (...) to specify "secure" flag. com.ngMAT.HTML.ParsedTable a new constructor ParsedTable (String, int , int , Properties). com.ngMAT.HTML.HTMLString a new constructor HTMLString(StringBuffer). com.ngMAT.HTML.HTMLTemplate new methods setTagValue (String name, StringBuffer buffer), convertText2HTMLStyle(). com.ngMAT.Mail.SimpleMailMessage Some of class variables was changed into instance variables. a new constuctor with Properties, EZServletConfig, EZServletContext. property "Mail.AppendRecipients" enables to switch the append mode of setTo, setCc and setBcc. com.ngMAT.servlet.EZServletContext new methods String urlencode (String value) and String urlencode (String value, String enc_type). new classes ELIMINATED FUNCTIONS / CLASSES Ver 2001.1.00 2002/12/02 FIXED BUGS bug id tbs00017 NullPointerException is thrown on loading an HTML template which has custom tags or [[#table]] tags whose names have upper case alphabet characters with EZServletContext#getTemplate(String). bug id tbs00018 com.ngMAT.servlet.EZServlet doesn't throw the suitable exception but throws NullPointerException when it cannot find the properties file for itself and its situation is unclear. bug id tns00019 bcpUpdate(..) and loadDSVFile(..) of class com.ngMAT.Tools.Bcp doesn't support the property Bcp.File.Encoding. new functions / modified functions com.ngMAT.Common.CoolProperties new constructor new CoolProperties (Properties). com.ngMAT.Common.ngmDBObject getBooleanCondition (String column_name, boolean value). com.ngMAT.Common.ngmPGDBObject getBooleanCondition (String column_name, boolean value). com.ngMAT.Common.DBConnection removeConnection (Connection). com.ngMAT.HTMLComponent getLongParameter (String name), getLongParameter (String name, long default_value) getIntParameter (String name), getIntParameter (String name, int default_value) getBooleanParameter (String name), getBooleanParameter (String name, boolean default_value). com.ngMAT.HTML.ParsedTable You can get the tag parameters in [[#table...]] by getParameter (String). com.ngMAT.servlet.EZServletContext filtering function is available with properties: EZServlet.Filter.Parameter..Class EZServlet.Filter.HTMLTemplateStringValue..Class. The parameter filters will work with getParameter(String) and getPrameterValues(String). You can use getRawParameter(String) or getRawParameterValues(String) to get values before filtering. The String value filters for HTMLTemplate will work with setTagValue (String) of HTMLTemplate instances which was created by EZServletContext#getTemplate(String). getString (String filename) loads the specified file as an HTMLString object. com.ngMAT.servlet.EZServletConfig getShortProperty (String name, short default_value) getIntProperty (String name, int default_value) getLongProperty (String name, long default_value) getBooleanProperty (String name) getBooleanProperty (String name, boolean default_value) debug (Object o), _debug (Object o), debugPrintln (Object o). com.ngMAT.tools.Bcp the property "Bcp.ColumnDelimiter" over-rides the property "DSV.ColumnDelimiter". So you will not have to specify the property "DSV.ColumnDelimiter". new classes com.ngMAT.EZCgiServlet EZServlet version of com.ngMAT.CGI. com.ngMAT.servlet.EZServletFilter a filter used in EZServletContext. You can use this as a parameter filter or String value filter which is set in HTMLTemplte at this version. com.ngMAT.servlet.filter.EZSanitizer a filter to escape &<>"' with html encoding method. com.ngMAT.servlet.filter.Text2Html a filter to convert white spaces into  , and new-lines, i.e., CR+LF and LF, into
. ELIMINATED FUNCTIONS / CLASSES com.ngMAT.NullServlet - class eliminated. com.ngMAT.ShowHttpInfo - class eliminated. com.ngMAT.BaseCGIServlet - class eliminated. com.ngMAT.CGI - class eliminated. com.ngMAT.TemplateBasedServlet - class eliminated. com.ngMAT.HTML.HTMLTemplate setInsertionTagValue (String name, class value) - eliminated. com.ngMAT.HTML.HTMLString addHTMLString (String) - eliminated. Ver 2001.0.06 2002/10/25 FIXED BUGS bug id tbs00015 com.ngMAT.tools.Bcp#bcpin never rolls-back even when aborting. bug id tbs00016 HTTP header "Content-Length" will become wrong when you send an HTMLTemplate which has custom tags build with subclasses of com.ngMAT.HTML.EZSCustomTag. new functions / modified functions com.ngMAT.Common.ngmObject / ngmObjectFunction String constants and charactor constants are moved from ngmObject to ngmObjectFunction. com.ngMAT.Common.KeyValuePackage#toString() new. com.ngMAT.Common.CoolProperties#put (KeyValuePackage) new. com.ngMAT.HTML.InsertionTag will parse the tag parameters with com.ngMAT.Common.AttributeParser. The sub-classes ParsedTable and CustomTag use the same manner. com.ngMAT.HTML.form.Input new consntant S_DISABLED. new method setDisabled(). These can be used with its sub-classes Checkbox, Radio and etc. com.ngMAT.HTML.HTMLString new String constant S_HTML_SPACE ( = " "). new constructor HTMLString(String str, int count). com.ngMAT.servlet.EZServletContext wrapup() will be called after EZServlet#processApplication(). EZServletContext#wrapup() is empty method. getContextPath() will return the context path. getRequestPath() will return the value excluding the protocol and the server name portion from the value of getRequestURI(). getRelativeRequestPath() will return the value excluding the context path from the value of getRequestPath(). com.ngMAT.tools.Bcp com.ngMAT.tools.PGBcp will erase characters specified with the property "Bcp.CleanupChars". new classes com.ngMAT.Common.AttributeParser attribute string parser. Values may be surrounded with double quotations. "\" will work as an escape. com.ngMAT.HTML.HTMLSpace a utility class to use S_HTML_SPACE. com.ngMAT.tools.HttpPing test tool to check http connection with the specified URL. Ver 2001.0.05a 2002/09/18 FIXED BUGS none new functions / modified functions com.ngMAT.HTML.HTMLTemplate You can specify the tag-escape character using following property "Application.Tag.EscapeChar". The default is '\'. It must be a SINGLE character. Ver 2001.0.05 2002/09/16 FIXED BUGS none new functions / modified functions com.ngMAT.servlet.EZServlet Even when there happens an exception in EZServlet, EZServlet will report it into log. EZServlet will send the "Content-Length" header when it can get content length except for LineReaderComponent. com.ngMAT.servlet.EZServletConfig You can specify the exception handler for exceptions caught in EZServlet with following property: EZServlet.ExceptionHandelr= The specified class must implemet com.ngMAT.serlvet.ExceptionHandler. com.ngMAT.Common.DBConnection Health checking function will check the status of connections. If Connection#close() throws an exception in removeConnection (int), it will be ignored and only be reported in the debug log. Watch dog will be able to work even if there is no more available connection found in getConnection (String). com.ngMAT.Common.ngmObject getGroupedProperties(String) is available if the Properties is instance of CoolProperties. com.ngMAT.Common.PooledDBConnection Health checking function will check the status of connections. If Connection#close() throws an exception in removeConnection (int), it will be ignored and only be reported in the debug log. Watch dog will be able to work even if there is no more available connection found in getConnection (String). com.ngMAT.HTML.HTMLTemplate getCustomTag(String name) will return the custom tag object parsed in HTMLTemplate '\' right before the tag string will work as an escape. new classes com.ngMAT.servlet.ExceptionHandler exeption handler class to handle the exceptions caught in EZServlet. com.ngMAT.Common.DBConnectionHealthChecker the health checker to check the health status of the connection in DBConnection / PooledDBConnection. com.ngMAT.Common.StandardOracleHealthChecker the standard health checker for PostgreSQL. This uses "select 1 from dual" to check the health of db connection. com.ngMAT.Common.StandardPostgreSQLHealthChecker the standard health checker for PostgreSQL. This uses "select 1" to check the health of db connection. com.ngMAT.HTML.CustomTag the base class of custom tag handler class used in the HTMLTemplate. com.ngMAT.HTML.EZSCustomTag CustomTag to use with EZServlet. com.ngMAT.HTML.InputStreamResource HTMLComponent for InputStream. com.ngMAT.HTML.FileResource HTMLComponent for file resource. Ver 2001.0.04 2002/07/20 FIXED BUGS bug id tbs00011 com.ngMAT.Common.ngmPGDBObject#getDBString(String) escapes "\" from this version. bug id tbs00012 NullPointerException is thrown at com.ngMAT.servlet.EZServletContect#init(..) when HttpServletRequest#getCookies() returns null. bug id tbs00013 com.ngMAT.tools.Bcp, com.ngMAT.tools.PGBcp misses to close Statement/ResultSet. bug id tbs00014 com.ngMAT.servlet.EZServletContext#createCookieTimestamp(..) gives wrong string with the hour field of "24" when it should be "00". new functions / modified functions com.ngMAT.Mail.SimpleMailMessage Multi-byte characters are allowed as recipient email addresses. You can specify the characterset with the property "Mail.Charset". The default is iso-2022-jp. com.ngMAT.Common.Log "HOURLY" is available for switching timing. It specifies switching the file name on every hour 0 minute. The file name extention will be the format "yyyyMMdd.HH". com.ngMAT.Common.CoolProperties getGroupedProperties (String). com.ngMAT.HTML.ParsedTable will output nothing if no contents are available to be output. com.ngMAT.HTML.HTMLTemplate This will give a clear message for the exception on loading included templates. printStackTrace(String tagname, Throwable t). com.ngMAT.servlet.EZServletContext On analyzing cookie value at receiving, if the first character is not "%", cookie value will be converted as it is encoded with the same type of request parameters. This will avoid the problem which may happen after migration from the version before 2001.0.02 although it is not perfect. getCookies() will return the decoded cookie value. getRawCookies() will return the raw cookie value before decoding. getCookiesTable() will. forward() will forward the request to another servlet. setStatus(int status_code). getMethod(). com.ngMAT.servlet.EZServletConfig You can specify the html which EZServletContext#getErrorHTML (Thrownable) will use with one of the following properties: EZServlet.ErrorTemplate : file name of the template file EZServlet.ErrorHTML : template HTML string. You can omit to flush or close the stream after sending response with following properties: EZServlet.ForceStreamFlush=false EZServlet.ForceStreamClose=false defaults for bothe are true and the stream will be flushed and closed after sending response. You can omit url enconding on redirection with the property: EZServlet.ForceUrlEncodingOnRedirection=false default is true and sendRedirect will call HttpServletResponse#encodeRedirectUrl(..). getTemplate(String) will never throw IOException but may throw com.ngMAT.Common.LowLevelException. new classes Ver 2001.0.03 2001/09/14 FIXED BUGS none new functions / modified functions com.ngMAT.servlet.EZServletContext The property EZServlet.TargetServletSpec enables to switch the functions to handle session values setSessionValue(...)/getSessionValue(...)/getSessionValueNames(...)/removeSessionValue(...). EZServlet.TargetServletSpec=2.2 specifies to use HttpSession#xxxAttributexxx(...) and EZServlet.TargetServletSpec=2.0 specifies to use HttpSession#xxxValuexxx(...). Some web application servers like BEA WebLogicServer 6 will fail to handling session objects in the clustred servers environment with HttpSession#xxxValuexxx(...). "2.1" is not allowed for this property item. com.ngMAT.Common.CoolProperties will enable referring other property values. The property #VariableReference=enable indicates starting of this function, referring other values with {$keyname}. The single "{" right before "{$keyname}" works as escape character. But double "{", i.e., "{{", will be an escape of an escape. The property #VariableReference=disable stops this function. com.ngMAT.Common.CoolProperties# will display the dependency of the properties files on loading. public Enumeration getFilenameList() will give the enumeration of file names loaded from. com.ngMAT.Mail.SimpleMailMessage new methods getMessageID(), getTosArray(). new classes Ver 2001.0.02 2001/08/21 FIXED BUGS bug id tbs00009 NullPointerException is thrown in com.ngMAT.EZServlet the properties file doesn't have a Servlet.Request.Charset element. bug id tbs00010 When the pool is in an insufficient state , assignment of connection with the com.ngMAT.Common.DBConnection#getConnection(...) goes wrong. new functions / modified functions com.ngMAT.servlet.EZServletContext will encode cookie values with utf 8 on sending and decode then on receiving. new classes none Ver 2001.0.01 2001/08/15 FIXED BUGS bug id tbs00008 NullPointerException is thrown in constructor of com.ngMAT.Common.CoolProperties with Java 2 SDK 1.3. new functions none new classes none Ver 2001.0 2001/08/07 FIXED BUGS bug id tbs00004 com.ngMAT.servlet.EZServletContext#sendRedirect (String) misses sending cookies. bug id tbs00005 com.ngMAT.HTML.form.Checkbox.setChecked() doesn't work. bug id tbs00006 com.ngMAT.HTML.form.Radio.setChecked() doesn't work. bug id tbs00007 com.ngMAT.Common.DSV has a wrong size 1 when its constructor is called with empty string. new functions com.ngMAT.servlet.EZServlet On sending HTMLTemplate output, varilable tags will be replaced with properties. Extra header sending function with the property Servlet.Header=. com.ngMAT.servlet.EZServletConfig short getShortProperty (String name)ljB com.ngMAT.servlet.EZServletContext addCookie (String name, String value, int max_age). addCookie (String name, String value, String path). addCookie (String name, String value, String path, int max_age). long getLongCookieValue (String name). removeSessionValue (String name). short getShortParameter (String name). short getShortParameter (String name, short default_value). boolean getBooleanParameter (String name). boolean getBooleanParameter (String name, short default_value). int getIntParameter (String name, int default_value). long getLongParameter (String name, long default_value). boolean[] getBooleanParameterValues (String name). short[] getShortParameterValues (String name). int[] getIntParameterValues (String name). long[] getLongParameterValues (String name). String getRequestURI(). String getRequestURL(). void sendError (int status_code). void sendError (int status_code, String message). String getRemoteAddr(). HTMLTemplate getTemplate (String name) will handle "ifdef". setRadioCheckedWithParameter (HTMLTemplate, String). setCheckboxCheckedWithParameter (HTMLTemplate, String). com.ngMAT.Common.SmallCodeTable add (String key, String value). put (String key, String value). add (int index, String key, String value). com.ngMAT.Common.CoolProperties This will hold vector image in its instance. You can get the vector image with getVectorImage(). When the encoding name starts with "#", the property item "#EncodingType" will not included in the item list. Thanx for a comment. com.ngMAT.Common.Log setLineHeader (null) will stop the line header output. com.ngMAT.HTML.HTMLTemplate It will replace all of the tags which has a same name at one time with setTagValue(..)/setInsertionTagValue(..). setTemplateVariables (Properties) will replace the template variable tags [[$.../]] with properties values. This function helps raising the environmental adaptability of a template. EZServlet automatically calls this method while EZServletContext#getTemplate for you. setRadioChecked (String, String), setRadioChecked (String, long), setCheckboxChecked (String, String), setCheckboxChecked (String, long) are available. ifdef will be evaluated after trimming. com.ngMAT.HTML.form.Select It will use the vector image when the Propties parameter is an instance of CoolProperties in the constructor which has Properties parameter. Thanx for a comment. com.ngMAT.tools.Bcp New property Bcp.File.Encoding enables to specify the encoding type for file io. new classes com.ngMAT.HTML.ByteArrayComponent Use this class to return the contents other than HTML like images. com.ngMAT.HTML.LineReaderComponent A memory can be saved if you use this class to return the larger contents per line from DB or a file. com.ngMAT.HTML.GroupedHTMLComponent This group-izes checkboxes or radiobuttons. com.ngMAT.HTML.NullHTMLComponent empty:) com.ngMAT.HTML.ParsedTable This parses a <TABLE> tag in template and creates a template for rows. com.ngMAT.HTML.form.DecoratedCheckbox com.ngMAT.HTML.form.DecoratedRadio com.ngMAT.HTML.form.GroupedCheckbox com.ngMAT.HTML.form.GroupedRadio com.ngMAT.Common.PooledDBConnection Extended DBConnection which support to connect to more than one dbms instance. com.ngMAT.Common.ngmPGDBObject The version of ngmDBObject, which is for Oracle, for PostgreSQL. com.ngMAT.tools.PGBcp The version of Bcp, which is for Oracle, for PostgreSQL. Ver 1.1.02 2000/11/04 FIXED BUGS bug id tbs00003 com.ngMAT.Common.DBConnection#getConnection(...) fails to connet to the dbms if the property DBConnection.Retry.Count doesn't have a value of 1 or greater than 1. Ver 1.1.01 2000/11/02 FIXED BUGS bug id tbs00002 String getParameerValue(...) returns a wrongly transformed characters after com.ngMAT.servlet.TemplateBasedServlet, com.ngMAT.servlet.EZServletContext#getParameterValues(...). new functions com.ngMAT.servlet.EZServlet New property EZServlet.DEBUG_MODE=true to output the debug information is available. com.ngMAT.servlet.EZServletConfig getTemplate(String) is available to load HTMLTemplate while initializing. com.ngMAT.servlet.EZServletContext getParameterNames() is avaialble. setTagValueWithParameters(...) is available to replace all tags whose name are found in parameters with parameter values. It's helpful when you want to display the same value as the user input. com.ngMAT.HTML.HTMLTemplate setInsertionTagValue(..)/setTagValue(..)/getInsertionTag(..) will ignore the case in tag names. com.ngMAT.Common.DBConnection rollback will be forced in releaseConnection(..). New optional properties DBConnection.MaxConnextions, DBConnection.Retry.Interval, DBConnection.Retry.Count are available. The defaults are 32, 1000 msec and 0. com.ngMAT.tools.Bcp update mode is available. Ver 1.1.00 2000/10/12 new functions com.ngMAT.Common.DBConnection Following properties are available. On debug mode, you can get detail log. The default name of your watch dog is Patrasche. You can change its name though it's meaningless:) WatchDog.Name DBConnection.Log DBConnection.DebugMode com.ngMAT.Common.Log Changing output filename for every fixed time, DAYLY. The timestamp will be added after the specified filename. This DAYLY switching is the default and you can use this new function without chaging your program. If you don't want the filename changed, you have to specify "NONE" with the new constuctor. New Release EZServlet EZServlet has come ! EZServlet supplies most common process flow based on TemplateBasedServlet and its parts. It enables easy programming style with config classes which load and manage configurations and a context class to access communication objects between servers and browsers. Ver 1.0.01 2000/06/23 bug fix bug id tbs00001 On constructing HTMLTemplate without specifying tag marks in the properties file, NullPointerException is thrown. Ver 1.0 2000/06/06 First production release