1) PAiNDB: Collections could be saved separately from object image.This option should be used if collection is not the only field of dbobject, it has size of 20-40 items and dbobject fields are changed often. Saving collection separately will reduce flushing and object backup time inside transactions.
2) PAiNDB: DbObject.provideSchema() is now static method and required for all non-abstract DBObject impls. This allows to import class schema into db without object instantiation.
3) GUITool: fully rewritten, modules concept added.
4) Codebase: more admin console commands.
5) Tinylyb: roles removed: Reset, ResetGroup. SpaceGroup was renamed to Area.
6) Tinylib: 'more' shell implemented(this shell should be used to show multipage output)
7) Tinylib: online builder bugfixing.
8) PAiNDB: fixed bug with error on objects removal with non-empty StringMap type fields.
9) Tinylib: bugs in @build mode fixed. More complete visualization for array-type fields
10) Tinylib: number of small enhancements.
Version 0.45 (05-June-2004) new features and bugfixes:
1) Codebase classes separated from sample mudlib impl(called Tinyib).
Special properties file is used to configure codebase to work with a custom mudlib.
2) GUITool: searching for primitive fields added: Player.login='Roland'
3) Codebase: Admins console added. This will allow to restore server if critical error with code reloading occurs (codebase admin utils are not reloadable)
4) TinyLib: Move/Go concepts separated.
5) TinyLib: Site and players bans added (granted commands)
6) TinyLib: Mobile role is merged with Creature role, Interative is not forced to be Receptive from now. IndexedSpace merged with Room role.
7) Client properties added to roles (for faster new features prototyping).
8) Minor fixes and improvements.
Version 0.44 (29-Mar-2004) new features and bugfixes:
1) GUI Tool: initial impl for database browser.
2) Affects framework introduced (Only one affect of the specified type could be applied to object at the same time. Affect is a bundle of persistent image (AffectData) and dynamically reloaded affect code (Affect). Affect is assigned to specified object role and will be removed if role removed)
3) Triggers framework change: new, more flexible way to add triggers to object
4) Affects added (Immortality, Immobility(freeze command) - as examples of affects usage)
5) Rom24 converter could be invoked by granted person in runtime (transactional safe).
6) Minor bugfixing in PainDB.
7) Workaround: support for Windows telnet.
8) LogicReloadListener interface introduced. It's now possible to cache logic classes(performance).
9) Script build files replaced with Ant's build.xml
1) Bugfix: fixed bug in network module: data flushing to client from pulse thread.
2) GUI Tool: initial prototype version introduced. Network protocol and some basic commands implemeted (login/logout/change pass/server info)
3) Triggers framework introduced. (Trigger is a bundle of persistent trigger data and dynamically reloaded trigger code. Trigger is assigned to the specified object role and will be removed if this role removed.
4) Snoop command implemented (triggers API is used).
5) Some small errors with logging system fixed.
6) WeakExtentIterator added (allows ignore concurrent class extent modifications)
7) More tests written for PAiN DB engine
8) LifeForm and Equipped were refactored to Creature class, LinkedSpace was renamed to 'Room'
1) Bugfix: critical bugfix in PAiN DB engine.
2) Backup, export to XML, import from XML ability for database engine.
3) Commands added: get, drop, give, inventory, backup.
4) StringMap added to PainDB (could be used to keep cookies of any context
without needs of specialization of it's data structs
5) 'onDelete' method is removed from PainDB interface. DbObject.delete could be overriden.
6) Equipped, Wear object types described. It's initial(experimental) version.
7) Console is now keeps 'id' of Player object but not reference to Player.
This will eliminate error with illegal(unrestored) field value after rollback.
8) MessageOutFn gets new template interface. Old one is also supported.
From now it's allows to have any number( 0-9 :) ) of template params
Example of template: '("$n3 gives $d2 to $n1", target, obj, giver)'
9) Exits description added.
10) Number of tests in testbase increased
Version 0.41 (16-Sep-2003) new features and bugfixes:
1) Bugfix: critical bugfixes in PAiN DB engine .
2) Commands added: grant, ungrant, reject, allow, password, showgrants, showrejects, exists, force
3) Help command enhancements: tips by first command character
4) DbStringSet added to PainDB. Code duplication in PAiN DB maps/sets realization cleared
5) Command accessebility in command interface added (isAccessableCommand)
6) Number of PAiN DB tests triples
7) Bugfix: remove active player
8) Player is now relocated into special place after exit
9) Objects creation mechanism proposed: see GlobalFactory class.
10) A number of minor improvemets
PAiN DB javadoc, examples of usage, some uml diagrams. still too raw but better than nothing:)
Version 0.4 (1-Sep-2003) new features and bugfixes:
1) PAiN DB is now supports transactions and subtransactions (savepoints)
2) Online builder mode added.
3) 'Help' added for any available command and for builder mode.
4) With this release junit tests added into project. Look 'tests' folder.
5) Persistent world structure completely redesigned.
6) Internal logger enhancements: rolling by time or by size. Delayed flushing.
7) Reload code enhanced. Shutdown timer added.
8) Console commands parsing code and command-to-event mapping is now reloadable.
9) More commands added (kill, destroy)
10) StringKeyMap is supported by PAiN DB.
11) Rom24ToPain converter fixups