The Unbearable Lightness of Java

Icon legend

new feature
changed or upgraded
bug fixed

History

Recent history, release notes and previous releases.
And if you hate boring release list, you will appreciate this one:)

[2013-05-17] Release v3.4.4

Wow, and we thought this is gonna be an easy release. There are plenty of new changes under the hub, so keep an eye on this release!

NEWDbOom introduces 'entity aware' mode, with even better entity handling (read soon about it)
CHANGEDDbOom removed all *One methods from DbOomQuery! They are obsolete and can be simply replaced with regular methods.
FIXEDFixed issue with parseCCEnd method in Lagarto.
FIXEDFixed provided dependency for servlet api in generated POM files.
FIXEDFixed encoding problem with TextResult in Madvoc.
FIXEDFixed encoding problem with TextResult in Madvoc.
CHANGEDLagarto lexer performances boosted! Significantly!

[2013-04-17] Release v3.4.3

After some time, we bring you one awesome release packed with many small, but powerful and exciting new features! Most important improvements are in Petite container and HTTP tool. Enjoy!

NEWPetite introduces @PetiteProvier! See more...
CHANGEDPetite manual registration is now more fluent!
CHANGEDPetite init methods now can be invoked in 3 lifecycle points! See more...
NEWDbOom now supports cache and a-to-many relationships! See more...
CHANGED ZipUtil refactored to fluent and more convenient interface.
CHANGED AnnotationDataReader enhanced to support annotated annotations.
NEWMadvoc configurator is now one of its components (in internal container).
NEWLagarto introduced new Node method appendTextContent for reducing the garbage while building nodes text content.
CHANGED Added better support for Madvoc action path macros.
NEW Added better support in HTTP for encodings and charsets.

[2013-02-23] Release v3.4.2

In this sweet, little release, the biggest change is totally new HTTP client. Other then that, we have the usual amount of improvements and bug fixes; some classes have been cleaned. Jodd has finally moved to Gradle!

NEWASM 4.1 source is now bundled with Jodd.
NEWBeanCopy tool added.
CHANGEDHTTP client rewritten! See more...
CHANGEDRemoved compiler package as obsolete.
FIXEDIssue with decoding paths with Chinese letters and AutomagicPetiteConfigurator.
NEWMadvoc ActionInterceptorStack is now configurable.
CHANGEDMigrated from Maven to Gradle.
NEWAdded Period class for JDateTime.
CHANGEDMadvoc action path macros now uses wildcard match by default
NEWMadvoc now offers custom path macros.
FIXEDFixed issue with Madvoc action path macros for REST urls. // david weber
NEWEnhanced DbOom column chunk. // zqq90

[2013-01-07] Release v3.4.1

Relese 3.4.1. is polished version of our big previous release. Some things have been fixed, some upgraded and there are few new features!

Enjoy!

NEWAdded filter method to Jerry. // marcin erdmann
NEWMore ways how to define hints in $C Template-SQL macro.
FIXEDFixed issue with Google App Engine and ReflectUtil. // nick okunew
CHANGEDDbSessionProvider now requires DbSession to be created and controlled outside of the class.
CHANGEDMigrated to ASM 4.1
CHANGEDAttaching Mail attachments is different (better) now.
FIXEDEmbedded attachments now works with ThunderBird and GMail. // george pligor
NEWMore array type-conversions added.
NEWAdded OSGI information in all jars.
NEWMadvoc @Action annotation now has result property.
NEWJerry is now iterrable (Groovy! :). // rob fletcher
FIXEDCSSelly now supports escaped characters. // doosik kim

[2012-10-25] Release v3.4.0

Release 3.4.0. is very special in many ways. Not only that some new and exciting features have been added (as always:), but the whole project has been re-organized! We migrated to Maven multi-module structure, making everything easier for you. We have also moved to the GitHub, so fork the repo :)

Enjoy!

CHANGEDJDateTime now do the equals of timestamp up to millisecond.
NEW Petite supports Scoped Proxy for mixing scopes.
CHANGED Added better handling for return values in Proxetta.
FIXEDJDateTime now can parse patterns w/o separators // jerry scott
NEW Added StringUtil.decapitalize() and ReflectUtil.getCallerClass() to remove dependency on java.beans and sun packages.
CHANGEDLagarto now treats invalid tags as text. // Wang JunWei
FIXED ZipUtil.zip now adds folder entries for non-empty folders, too. // wjw465150
CHANGED Jodd log wrapper removed.
NEW PropsUtil.convert() added. // patrick van dissel
CHANGED Some packages were moved!!!
CHANGED Resolving path from manifest files improved.
FIXED Fixed includeFiles issue FindFile. // rui rosado
FIXED Fixed NPE in FindFile. // andtaotao

[2012-09-05] Release v3.3.8

NEW Added LoggablePreparedStatementFactory.
NEW Added wrapper-type of Proxetta.
CHANGED Removed JDK-dependent LoggablePreparedStatement.
NEW Triple-quoted multiline values for Props added.
FIXED Fixed Props values with profile chars; comments are not allowed in values any more. // Patrick van Dissel
NEW Implicit self-reference for BeanUtil.
CHANGEDJspResolved simplified. Jsp functions cleaned.
CHANGEDParamo now offers signature for non-generic types, too.
CHANGEDProps extract methods works with target map now.
CHANGEDFileUtil methods for reading file content now detects BOM characters for Unicode encodings.
CHANGEDUnicodeInputStream now may work in two modes: detect mode and read mode.
CHANGED Added FastSort (with new sorting implementation) in favor of FastMergeSort.
NEW Added natural-order sorting Comparator.
NEW Added rules for implicit end tags in Lagarto Dom.
CHANGED Lagarto Dom now fixes unclosed tags more pragmatic. Major speed improvement.
FIXED Fixed slow processing of unclosed tags in Lagarto DOM. (#jodd-23) // wjw465150
FIXED Stapler files were not deleted on reset().
NEW FindFile enhanced: better walking, varoius sorting added. Read more...
CHANGED FindFile internal logic optimized. FileScanner removed.
CHANGED ClassFinder system jars property is now static.
NEW Caches now uses ReentrantReadWriteLock for synchronization.

[2012-07-27] Release v3.3.7

NEW Added DbOom reference option to render just a column name.
CHANGED DbDefaults moved to DbManager bean.
NEW Added DbOom naming strategies for tables and columns.
CHANGED Path-style wilcard matching added where path is searched.
CHANGED Mime types uses now only most recent Apache configuration.
FIXED Fixed bug with entites update and Postgres databases. (#jodd-21) // Ron Romero
NEW More properties for Lagarto added.
NEW LagartoParserEngine added.
FIXED Lagarto handles IE conditional comments in a better way. // Nicolas Rémond
NEW LagartoDOMBuilder allows usage of custom tag visitor.
NEW Lagarto allows usage of custom DOM builder.
FIXED Null upload issue fixed. (#jodd-22) // Jasmine Ottis
FIXED Email issue fixed with reply-to fields. (#jodd-20) // vlqhai
NEW HtmlStapler filter added. Read more... (#jodd-19). // vlqhai
CHANGED HtmlStapler servlet removed!
NEW SwingSpy is back to Jodd.
FIXED Fixed some expections in Jerry when used on empty sets. (reported by Melvin Quintos)
CHANGED All bean loaders now uses the same abstract class.

[2012-06-12] Release v3.3.4

Another maintaince release. Mostly bug fixes. Only few changes, but might be important ones.

Added RemoveSessionFromUrlFilter added. // thanx to Jasmine Ottis
JDateTime.isInDayLightTime() added.
MimeTypes upgraded.
HtmlStapler servlet now returns content-type for bundles [#jodd-16]. // reported by Jasmine Ottis
Fixed FCQN names for logger wrapper.
Madvoc interceptors now can be enabled/disabled in properties file.
Fixed issue in Petite with setting params for long bean names.
Added injection of Madvoc params in injectors and results.
Fixed issue in Decora with empty buffers.
Madvoc aliases are now defined by < >.
Madvoc configuration for attributes simplified.

[2012-05-07] Release v3.3.3

Killing the bugs, is what we do in this release. We would like to thank Bandino Jurumai for helping us with this release! And hey, it's only two days after Jodds birthday :)

jodd 3.3.3
Improved GzipFilter.
Added gziped HTML Stapler bundles [#jodd-15] // suggested by Bandino Jurumai
Fixed Jerry issue with different modes [#jodd-14] // reported by Gregor Petrin
Fixed HTML Stapler context issue [#jodd-13] // reported by Bandino Jurumai
Added StringTemplateParser.
Fixed an issue with empty properties in PropertyUtil
Fixed FileNameUtil.getPathNoEndSeparator() issue [#jodd-12] // reported by Bandino Jurumai
Fixed HTML Stapler issue with relative paths to JS and CSS files [#jodd-11] // reported by Bandino Jurumai
Fixed HTML Stapler CSS Problem [#jodd-10] // reported by Bandino Jurumai
Fixed Madvoc and Lagarto issue under Jetty [#jodd-9] // reported by Bandino Jurumai
Added generic ServletResponse wrapper.

[2012-02-21] Release v3.3.2

This release contains mainly bug fixes and minor enhacements. Still, upgrade as it is an important release.

Lagarto is now more relaxed on invalid tags
Added raw Http tools.
Added BeanUtil.populate() methods
Type converters and Convert refactored and improved!
Refactor BeanUtil loaders and allow setting custom TypeConverterManagerBean [#jodd-8] // idea by Alison
Added ConvertBean.
Added BeanUtilBean.
Added TypeConverterManagerBean.
Jerry can provide it's builder for optional configuration.
LagartoDOMBuilder enahnced with many coniguration properties. Read more...
fixed Lagarto DOM issue when end of document is reached and tags are not closed. // reported by Peter McNeil
SLF4J library upgraded to version 1.6.4.
Added MadvocContextListener that also can run web app.
Added class FastBuffer for buffering objects. // contribution by Jeff G
Fast*Buffer classes moved to jodd.util.buffer package.
Added ZipUtil.gzip() and ZipUtil.zlib() methods.
ZipUtil.addToZip() replaces previous methods.
Added url result for Madvoc.
Props now can load environment variables.

[2011-12-27] Release v3.3.1

Some important bugfixes and minor changes.

Optimized Fast*Buffer added for all primitives.
Lagarto Text dom node now decodes HTML.
CSSelly now parses pseudo fn expression on creation.
CSSelly accepts classes with uppercase chars
Jerry enhanced with is() method and :contains selector [#jodd-6].
Added LoggablePreparedStatement6 for JDK6.
Swing utils removed as not being maintained for months.

[2011-12-17] Release v3.3

So many great enhancements and news... do not know where to start;) Too many to list here. Enjoy!

jodd 3.3
ClassLoaderUtil now loads array classes, too.
Hello Jerry! See more...
Hello CSSelly! See more...
New TypeConverter converters for time/date classes.
JDateTime converters are removed in favor of TypeConverter.
Base32 encodings added.
FileLFUcache added.
Paramo now returns MethodParameter array instead of String array.
Hello HtmlStapler! See more...
Hello Lagarto! See more...
Hello Decora! See more...
Petite is now able to inject bean sets. See more...
Madvoc raw results are optimized and more convenient.
Fixed BeanUtil properties naming to match JavaBeans spec (special cases).
ProxettaAwarePetiteContainer added.
FileUtil.readBytes optimized.
FileUtil.readChars added.
BeanTemplate renamed to BeanTemplateParser and changed from static utility to a bean.
ConsoleLog added.
NetUtil#downloadFile added.

[2011-08-29] Release v3.2.7

After unusually long time, we released another significant update! As Jodd is used in few live web projects there were some issues and we wanted to wait as much as possible to clean the most of them:) Moreover, we added some significant updates and bug fixes, so please update your projects. The most important change is the new name of the DbOom framework. Sorry for all inconveniences - and enjoy the release!

DbOom now supports mapping non-table columns to beans.
Fixed text attachment bug with Email. // reported by Tijana Milovanovic
Email attachments are now received as EmailAttachment list.
FindFile#iterator() added.
Email seding byte areas and input stream fixed. // reported by Zeljko Gavrilovic
Added ignoreInvalidUploadFiles parameter for ignoring bad file uploads in Madvoc.
java.util.Date type converter added.
JDateTimeSqlType fixed for null checkings.
FileEx removed as FileUtil is enough.
Package and classes renamed: DbOrm to DbOom! Way better:)
Template SQL macro $T now does NOT define default alias name when one is not specified.
Email sending to CC and BCC addresses fixed.// reported by Essoussi Jamel
Log package added, a wrapper over external logging utility
ClasspathScanner now scans using File
ClasspathScanner now examines jars linked in Manifest file
Fixed #jodd-4: ConcurrentModificationException in LFUCache.prune()
BeanTool.copy now supports maps
Added variants for JSP functions that do not requir page context
Fixed dispatchig to URL without context path
KeyValue class added
Added java compiler
Added + profiles for VTor
Fixed setRollback() in autocommit mode, for JTX

[2011-04-05] Release v3.2.6

Besides bug fixing and minor updates, this release brings major enhancement in Petite IOC container. We put a lot of heart into this release!

VTor EqualToDeclaredField constraint added.
Petite: added support for multiple default references when no explicit reference specified.
Petite: bean names now can be full class names.
Fixed potential MPE issue in MultipartRequest.
Some new StringUtil and ServletUtil.
Paramo bug fixed so some arrays of certain type were not resolved.
Converters enhanced and become more user friendly by trimming strings.
Madvoc move attribute name changed.
Madvoc: strictExtensionStripForResultPath added
FileNameUtils enhanced
Fixed #jodd-3: findfile classes are now OS independent
Madvoc Action.IGNORE renamed to Action.NONE
Props plugin for IntelliJ IDEA.
Fixed Madvoc expanding of default interceptors classes and stacks

[2011-02-20] Release v3.2.5 »

This release is all about new Madvoc features!

Duplicate Props now can be appended.
Custom annotations for JTX.
Fixed JTX issue with SUPPORTS propagation.
Madvoc support for REST urls (read more...).
Madvoc custom annotations (read more...).
Madvoc default aliases (read more...).
Madvoc @Action notInPath removed.
Madvoc @Action#IGNORE added instead of NO_EXTENSION.
ArraysUtil.inser added for single element.
SortedArrayList added.
BinarySearch wrapper added.
StringUtil.findCommonPrefix added.

It was very bright and sunny day, perfect for releasing!;)

[2011-01-10] Release v3.2 »

A new year and a new release, with some great new features!

Props - super Properties replacement tool added (read more...).
Convert tool added for one-liner type conversion.
Wildcard#matchPath - Ant alike path matching added (read more...).
Invocation Replacement Proxy added to Proxetta (read more...).
Some minor bug are fixed.
Some enhacements.

[2010-10-03] Release v3.1.1 »

First autumn release brings some nice refinements making Jodd more beautiful. Some important bugs were fixed too. Enjoy!

StringBand added.
Some minor and less frequent, but important type conversions bugs are fixed.
Method moved: BeanTool#parseTemplate to BeanTemplate#parse.
Method renamed, StringUtil#toSafeString from #toNonNullString.
StringUtil methods for (un)escaping strings in Java manner added.
ServletUtil.isGetParameter method added.
CollectionUtil methods added for filling a set or a list from iterator.
Cache#iterator() method added for all caches.
SendMailSession bug fixed (jodd-2).
MapBeanLoader bug fixed (jodd-1).
StreamUtil now flushes outputs on close.
TextResult added for Madvoc.
ZipUtil works better now for creating zips.
BeanUtil now handles boolean properties with both isXxx() and getXxx() methods.

[2010-06-18] Release v3.1.0 »

Some new tools, utils and Maven support (finally:) Also, since Jodd is currently being used in couple of live projects, we decided it is a time for new major release.

Maven support - finally, Jodd is (or will be soon) available via Sonatype.
New download bundle available: distribution, sources and javadoc jars.
CoreConnectionPool is now able to validate connections when appropriate.
ClipboardUtil added.
More StringUtil utilities added.
BeanTool#copyProperties() added.

[2010-05-10] Release v3.0.9 »

Mainly bugfixes.

jodd 3.0.9
replyTo property added for Email.
CONTEXT scope is now only for Madvoc, new SERVLET scope added and injectors changed.
New jfn:prepareCsrfToken().
CsrfShield#maxTokensPerSession added.
Generated DB table and column names may now be uppercase or lowercase.
iterator tag enahnced with count attribute
CharacterSqlType: bug fixed with string to char conversion
JDateTime isAfter(), isBefore() added
StringUtil#insert() added

Few days after Jodds 3.x first birthday... a new release! Can't imagine a better present;) Moreover, Jodd has been used in couple of projects meanwhile, and it is fast, stable and good-looking:) And soon, we will give YOU a present for our bithday... just stay tuned;)

[2010-03-12] Release v3.0.8 »

This is one of the most important releases, since all Jodd frameworks have been used in production together. As a result, we have several bug fixed, some important changes and more power inside the framework. Voila!

HtmlEncoder now uses <br/> instead of <br>.
CsvUtil CRLF bug fixed.
NullAware sql types added. Primitives support added.
ReflectUtil.castType() now handles enums better - allows to have typeconverter for enums too!
ArrayUtils toString() and contains() added.
ListAllMadvocActions does not register actions anymore.
ReflectUtil#readAnnotationValue() added.
jfn:printf added.
Added limited methods for lists set in DbOrmQuery.
delete bug fixed - no table aliases allowed
Little bug fixed for findRelated() in DB fwk.
SMTP email support enhanced.
POP email support added.
SimpleSmtpAuthenticator renamed to SimpleAutheniticator.
IdRequestInjectorInterceptor added - a efficient joint of Prepare and IdRequestInjector.
DbQuery.setObjects(String[] names, Object[] values) added.
AnnotationTxAdvice now works for overloaded methods too.
JSP function fmtDate added.
Database schema name added as DB settings.
Proxetta had some minor bugs with class loading.
Database schema name added as DB settings.
SqlType receives native sql type information when reading and saving data.
ColumnValue sql chunk added in response to fix db mappin bug with values.
Methref - strongly typed method names references - added.

Starting from this release, we will post some photos and stories related to the release;) So... today, we have a lot of snow, althought it is March. Cold, white Friday is perfect for releasing a new version, with hot cup of green tea.jodd 3.0.8

[2009-11-19] Release v3.0.7 »

Since previous version was released before scheduled time, this one contains many small and some important news. First, there is a new tool 'Paramo' for reading methods parameter names from debug bytecode info. Next, Madvoc has been enhaced in an good way;) All-in-all, we are going towards the next big release.

Paramo added - little tool to read methods parameters names using debug bytecode info.
Madvoc recognizes super action classes.
Madvoc may optionally decode GET parameters.
ClassDescriptor now is public and can examine supported or accessible methods/fields.
Petite InitMethodResolver now checks all supported init methods.
FileUpload has been enhanced with max file size property. Internal stream processing has been refactored.
Caches prune() implementations now returns correct number of deleted items. // reported by Tomasz Bartczak
PrettyStringBuilder visualization bug fixed (and enhanced). // reported and fixed by Tomasz Bartczak
DbQuery#setObjects() index bug fixed. // reported and fixed by Sven Lindow
Method ActionResult#execute() renamed to render(). It really sounds better;)
Added MadvocConfig flag for caching prevention.
All FileUploadFactory implementations are now aware of maxFileSize.
FileUpload now contains maxFileSize as attribute.
MultipartRequest now handle uploaded files better. Internal modification.

[2009-09-23] Release v3.0.6 »

Another small update, made mainly to fix distribution archive.

Distribution archives fixed. // reported by Tomasz Bartczak
ServletUtil.preventCaching() added.
Madvoc ResultMapper now can use full action path (with the extension) for building result path. Read more here.
SystemUtil isAtLeastJdk15() and isAtLeastJdk16() added.
StringUtil.cutLastWord() removed.

[2009-09-10] Release v3.0.5 »

Small update, but we have fixed something that bothered us from long time: sql mappings. Now everything seems to be on the right track;). Besides, some more utilities have been added.

Database mappings. Read more here.
More utilities in ZipUtil added.
Bits added.
ArrayEnumeration fixed.
RandomStringUtil added.
CsrfShield has been enhanced.
ValueHolder added.

[2009-08-06] Release v3.0.4 »

This update fixes one important issue with Proxetta and enhance it in a way so it is now possible to apply proxy on JDK classes. Moreover, several little utilities have been added. It is recommended to upgrade to this version.

Petite parameters now uses '${}' for reference.
Proxetta now ignores final methods - for the sake of simplicity.
Proxetta is now able to create proxy with different package and class name from target. // reported by swagl05
Proxetta had a serious bug with proxyfing overridden methods declared in some super class.
UncheckedException may produce bug when printing the stack trace.
Double escaping added for StringUtil.indexOfRegion().
PropertiesUtil.resolveProperty() and PropertiesUtil.resolveAllVariables() added.
ZipUtil.createSingleEntryOutputStream() added.
ZipUtil.createFirstEntryInputStream() added.
Simple JmxClient added.
StringUtil.isNotBlank() added.
Minor visual changes in SwingSpy.
PetiteManager.registreScope() added.
Madvoc changed internally to allow logging configuration before web application starts.
WebApplicationStarter added to encapsulate code from MadvocServletFilter.
WebApplication.initWebApplication() replaced createInternalContainer().
XmlUtil removed as not valuable.
WebApplication.resolveBaseComponentName() now finds last component class: middle abstract classes in hiearachy are ignored.
Some tests made independent. // contribution by S. Slavnić
db.jtx.* moved to jtx.db.* to remove dependencies from Db. // reported by S. Slavnić
FileUtil.readLines added.
FilepathScanner added.
ClassLoaderUtil.getResourceFile() added.

[2009-06-29] Release v3.0.3 »

This is important upgrade. Some bugs regarding reading annotations in Proxetta have been fixed, while Proxetta was refactored. Next, this is the first version that starts to use external logger. Petite container now can be configured with parameters (from properties files, for example). Documentation has been extended by an example of building web applications using Jodd.

TextUtil added.
Logging added. Read more here.
More tests added and code coverage increased.
Proxetta MethodInfo instead MethodSingature.
Proxetta now has ClassInfo data for target classes.
Proxetta failed to read and copy all annotations.
Proxetta failed to define proxy when target class has static block.
ClassArrayConverter (for converting something into Class[]) added.
Madvoc can be configured using properties files.
@PetiteInitMethods may be fired first off, before parameters injection.
Madvoc InjectorsManager instead of just ContextInjector.
table prefix and suffix are always stored uppercased.
Transaction context added.
ThreadDbSessionProvider may optionally create missing db sessions and assign them to thread.
CoreConnectionPool now returns stat class for connections count.
Provider<T> interface added.
ClasspathScanner added. Read more here.
FindClass refactored for good.
Petite methods add() performs all wiring and initialization.
Petite container parameters. Read more here.

[2009-06-06] Release v3.0.1 »

Minor upgrades and additions. Documentation fixed and more added.

DbSquery.setMap() bug fixed. // reported by Sven
Madvoc components can be registered as instances and, optionally, with explicit name.
PetiteMadvocComponent removed (internall stuff).
WebApplication.createInternalContainer() renamed from createMadvocPetiteContainer().
switch and case tags now uses string comparison.
ServletConfigInterceptor.trimParams option added.
PetiteContainer.getBean(Class) added.
Some StreamUtil.copy() methods were not using provided encoding.
JoddDefault added and implemented.
SystemUtil methods for setting http proxy.
FileUtil methods for appending string and bytes to existing file.
ClassConverter and URLConverter added.
Invalid and non-existing test values for IfElseTag and IfTag behave as 'false'.

[2009-05-05] Release v3.0 »

Jodd started new life on new web address: http://jodd.org