What's new in LazyJ 1.0.7
May 21, 2013
- 2013-01-16
- lazyj.page.BasePage
- added set() and unset() for having common values across iterations
- 2011-09-22
- lazyj.DBFunctions
- introduce getting of last generated sequence/auto-increment ID
- 2011-09-03
- lazyj.DBFunctions
- remove global synchronization point, now it is serializing requests only for the same
- database endpoint. This prevents one hanging database to bring down everything
- 2011-08-25
- lazyj.Format
- toInterval shows large intervals as years if appropriate
- 2011-05-05
- lazyj.cache.ExpirationCache
- when over size limits and removing an entry, remove it from the delayed queue as well
- lazyj.RequestWrapper
- tune gets to get the max out of -XX:+UseCompressedStrings
- make the rest of get* methods faster by not converting the strings at all
- 2011-03-03
- lazyj.Utils
- more robust handling of http content encoding
- lazyj.ExtendedServlet, RequestWrapper and CachingStructure
- proper caching headers that reflect the in-memory caching times
- 2010-09-14
- lazyj.commands.CommandOutput
- add exit code field
- lazyj.commands.SystemCommand
- populate the exit code of the CommandOutput object with the process exit code
- 2010-09-13
- lazyj.Log
- add log(level, message) that will fill the component with the class name of the caller
- 2010-09-10
- lazyj.DBFunctions
- added composeInsert and composeUpdate
- 2010-09-08
- lazyj.DBFunctions
- add getEquivalentInsert(..) methods
- 2010-06-22
- lazyj.Utils
- add #getFileLines(final String file)
- lazyj.FileLinesIterator
- lazyj.FileLinesIterable
- added
- 2010-06-16
- lazyj.page.BasePage
- avoid NPE when the template file exists but has size 0, thus the parser is null
- 2010-06-14
- lazyj.mail.Sendmail
- correctly send the HTML / plain text parts when there is an attachment
- fix boundaries when only one of plain/html parts was given
- 2010-03-10
- lazyj.mail.FileTypes
- update MIME types to Ubuntu 9.10 ones
- add MIME types for ROOT and JDL
- lazyj.mail.Sendmail
- better splitting on new lines of very long headers without spaces
- 2010-01-13
- lazyj.page.tags.Size
- now supports specifying the measurement unit (defaulting to B)
- lazyj.Format
- size() with double parameters
New in LazyJ 1.0.6 (May 21, 2013)
- 2009-12-12
- lazyj.page.tags.Interval
- added
- 2009-12-01
- lazyj.commands.*
- added this package to help in getting the output from a system command
- 2009-09-16
- lazyj.mail.Sendmail
- refactoring of the code to first build the entire mail in memory then
- send it to the SMTP server
- lazyj.mail.MailUtils
- newly added, provides for now only MX DNS lookups
- lazyj.mail.MailFilter
- new interface that defines how a mail filter should behave
- lazyj.mail.filter.DKIMSigner
- first filter, implements DomainKeys signing of the email
- http://dkim.org/specs/rfc4871-dkimbase.html
- http://www.agitos.de/dkim-for-java-mail-open-source-library-2.html
- 2009-09-02
- lazyj.StringFactory
- improvement: use a WeakHashMap instead of String.intern()
- lazyj.ExtendedServlet
- improvement: properly set HTTP cache expiration and content-length, for both the
- already-cached content and the newly generated one
- lazyj.RequestWrapper
- api: a new method to control the caching expiration (setCacheTimeout(..))
- 2009-07-20
- lazyj.page.TemplateParser
- fix: allow module-like tags to be evaluated as normal tags if a value is set for them
- 2009-07-17
- lazyj.page.BasePage
- add: expose tag set so that clients can consult it to reduce processing time
- 2009-01-20
- lazyj.DBFunctions
- add: a few of methods to help in debugging connection problems
- framework-wide
- cleanup: nls
- 2009-01-19
- lazyj.DBSession
- add: make available the encoding and decoding functions to everybody
- 2009-01-17
- lazyj.DBFunctions
- api: public access to the raw JDBC connection
- api: new constructor for pre-built JDBC URL connection strings
- lazyj.Utils
- add: new parameter for readFile to specify character set
- 2009-01-01
- lazyj.Utils
- improvement: override UTF8->ASCII conversion of a few quotes favored by M$ office
- 2008-12-23
- lazyj.{Format,ExtProperties}
- fix: use StringBuilder instead of StringBuffer
New in LazyJ 1.0.5 (May 21, 2013)
- lazyj.mail.Sendmail:
- fix: sending emails from Windows (PrintWriter.println() adds system-dependent end-of-line)
- add: PrintWriter charset support, defaulting to UTF8
- add setDebug(boolean) to print all traffic with the mail server
- lazyj.cache.ExpirationCache:
- improvement: make use of a single thread that watches a single global expiration queue in order to avoid spawning too many threads
- add: removal and overwriting methods for particular keys
- lazyj.cache.GenericLastValuesCache:
- add: methods to refresh one entry only
- fix: clear the null cache at refresh()
- improvement: remember the keys for which there was a null return from resolve(), don't ask again
- lazyj.DBFunctions
- add: two additional methods to quickly check if we are using a PostgreSQL or a MySQL driver
- lazyj.ExtProperties:
- add: allow building from an InputStream directly
- enhancement: don't bother to remember the extra set values in case we don't have a file backing anyway
- enhancement: notify clients when a value is changed
- lazyj.page.BasePage
- add: support for writing to a Writer, in addition to writing to an OutputStream
- performance: from parsing time determine the exact formatter to use, only for regexp ones keep resolving them at run time
- fix: add "ddot" as an exact tag
- add: "lazyj." prefix to several thread names to easily spot the framework threads in a jstack dump
- lazyj.Utils:
- add: getLazyjConfigFolder() to find out where the configuration files are, trying a few default folders
- lazyj.StringFactory:
- performance: rely on String.intern() to keep a single instance of the strings, apparently it does the job better than WeakHashMap (less memory requirements)
- lazyj.ExtendedServlet:
- fix: correctly determine the context and the servlet in the context of Servlet API 2.1+
- fix: return the thread name back to the original one at exit, so that Tomcat internal threads show up nicely in the jstack dump
- lazyj.LRUMap:
- performance: initial size=32 instead of allocating from the start enough memory to hold max count of elements
- lazyj.mail.FileTypes:
- improvement: updated the MIME types list
- lazyj.Utils:
- add: stringToBool() that attempts to guess the boolean value of a String, in different formats
- enhancement: make download() return the contents of the URL if the target file name is null
- enhancement: change toBaseCharacters() to recognize special HTML characters and convert them as well
- lazyj.mail.Sendmail:
- performance: build the headers using a StringBuilder instead of string concatenation
- fix: a few minor changes suggested by Findbugs
- lazyj.DateFileWatchdog:
- fix: stop watching a file when the watcher is destroyed
- lazyj.LRUMap:
- enhancement: negative sizes = unlimited number of entries
- lazyj.page.BasePage:
- improvement: use the generic caching mechanism to keep pre-compiled TemplateParser objects
- lazyj.page.TemplateParser:
- fix: correctly clear the "db" list when reloading the template from disk
- lazyj.page.BasePage & lazyj.page.TemplateParser:
- performance: using BasePage.comment() will actually remove the commented section, skipping the processing of the included tags as well
- performance: other small optimizations for speed and memory consumption
- lazyj.Utils:
- add: new method to download content from any URL to a local file
- lazyj.DBFunctions:
- API change: signature of encodeArray()
- lazyj.mail.Sendmail:
- add: two new functions to override SMTP protocol strings with arbitrary values: setHELO() and setMAILFROM()
- lazyj.page.BasePage:
- improvement: make modify() use append() to do the dirty work, eliminate duplicate code
- lazyj.page.TemplatePage:
- add: new interface that defines a Page that can be dynamically modified
- lazyj.page.Module:
- fix: change function return types, to Page or TemplatePage, to break the cyclic references to BasePage
- fix: a few other minor changes suggested by FindBugs
- lazyj.Format:
- improvement: display of large file sizes
- add: method that displays sizes starting from an arbitrary measurement unit
- add: method to display double values with a variable number of decimal places, depending on the value that is displayed
- lazyj.jar file:
- fix: remove .svn folders from the archive
- lazyj.mail.Sendmail:
- fix: double Return-Path line problem
- lazyj.Utils:
- add: htmlToText(String) method to help generating the plain text version of an HTML email
New in LazyJ 1.0.4 (Dec 12, 2007)
- lazyj.mail.MailDate:
- fix timezone offset sign
- lazyj.widgets:
- new package for HTML widgets. For now it only offers to build list of options
- for "select" tags, as tree (hierarchical or full path) or as plain list, from DB queries.