Jodd is a generic purpose open-source Java library bundled with few lightweight frameworks and components: bean manipulation tool, Db for easier database access, Madvoc for web works, Proxetta for building proxies, JDateTime for elegant time handling, Pet
Special attention is put into making code simple and fast as possible, and yet, feature rich, by following specific implementation principles. Jodd is free software; use it under the terms of the BSD license.
What's in thejar?
UTILITIES, utilities utilities... Jodd enriches JDK with many utilities and makes easier the usage of some functionality that are, usually, written over and over again every time when needed. Part of the provided utilities are simple functors (static methods). There are many time-saving functors for all kind of string manipulations (forgotten by Sun;), nice reflection and class loading utilities, more arrays utilities (again forgotten by Sun;), tools for hashing, servlets, etc. The other part of utilities contains some encapsulated functionality, such as: nice Printf for java, FindFile for finding files, common Cache implementations, mutable numbers, FileUpload for uploading files, excellent Wildcard matcher, primitive arrays, cool JStopWatch with laps support and so on... Do not reinvent the wheel, let us do it;) At least, we will try to make it run fast.
BEAN manipulation, yet again. This time, it is the fastest bean manipulation tool available, and it comes in several variants, combinations of: silent (no exception is thrown), forced (creates missing properties), declared (includes non-public properties)... It works with properties, but also with the class fields, too. Functionality is internally spread over several logically separated methods so custom extensions are easy for implementation. As usual, good bean utilities depends on good introspection and type conversion tools, which can be used independently.
TIME with JDateTime: elegance and astronomical precision in one. Uses some well-defined and proven astronomical algorithms for date/time manipulation. Still, it is very developer-friendly and easy to use. For the completeness, it provides various conversions, too; extensible conversion to and from a string is maybe the most interesting one. Everyone who has ever experienced frustration working with JDK Calendar, will find this class interesting.
DATABASE support in Java should be more simple. Db gives several layers around plain JDBC, significantly reducing the amount of written code. First, there is a smart statement facade, with some additional options, such as named parameters, user-friendly debug, more methods for execution and for parameters setting. Next layer encapsulates database session and helps with transactions and queries. Finally, DbOrm returns the joy of simple, but efficient objects mapping, simple object relations, object-oriented queries and some query auto-generations.
WEB framework like Madvoc eases MVC usage and web development. It prefers convention over configuration, which significantly reduces amount of code, without loosing functionality.
CONTAINER as Petite requires zer0 configuration. It supports the most used features: component wiring using annotations, component scopes (prototype, singleton, http session, or any custom), circular dependency checker... For those who are tired of big, fat containers.
PROXY creation with Proxetta is fun and easy, using just nothing else than plain java. It is done in runtime by unique bytecode macro-alike manipulation that produces the fastest proxy method implementation, just as you would do it by yourself.
- Added ExtendedURLClassLoader.
- Methods merge removed from ArrayUtil in favor of join.
- Getting generic raw type information significantly improved.
- Another change with FindFile towards unified usage regardless the implementation.
- LagartoDOM introduce renderer for customized HTML output.
- Each node in LagartoDOM has a reference to DOM builder instance.
- Improved and simplified way how LagartoDOM was fixing unclosed tags.
- BeanUtil uses more generic raw types information.
- All introspectors have gone through refactoring and optimization.
- Add new property ignoreMacros to Props.
- Madvoc allows multiple roots to be mapped to different paths.
- Proxetta now uses $$ in class names as a marker.
- Several issues have been fixed with Proxetta
- Added delegating wrapper to Proxetta for dynamically loaded classes.
- Added JRE detection to SystemUtil.
- Fixed issue with flushing streams in ObjectUtil.
- Props was not initialized in certain use cases.
- Migrated to Gradle 1.6. All QuickStart projects ...