[ANN] Wonder 4.0 Release
[ANN] Wonder 4.0 Release
- Subject: [ANN] Wonder 4.0 Release
- From: Anjo Krank <email@hidden>
- Date: Thu, 12 Jul 2007 23:08:06 +0200
All,
after over a year in the making, it is my pleasure to present a new
release of Project Wonder, the largest open-source project for
WebObjects. You can grab your copy at the SourceForge download page:
http://sourceforge.net/project/showfiles.php?group_id=45176
We got great contributions and added some pretty active new members.
Most known is probably Chuck Hill, but there's also Stephane
Corthesy, Timo Hoepfner, Ulrich Koester, Guido Neitzer and our newest
members: Ray Kiddy, Denis Forlov and Michael Bushkov.
In case you don't know, Mike Schrag has set up the nightly build
server at
http://webobjects.mdimension.com/wonder/
which made the need of a real downloadable release not so pressing.
To give you some impression about the amount of changes and new
functionality: Wonder 4.0 had about a third of all CVS commits in the
entire history of Project Wonder. So while we originally thought we'd
label it 3.5, I think a 4.0 is more adequate.
For much of the old and new functionality, you can investigate at the
BugTracker app and see how things are supposed to work. It includes a
lot the frameworks and - thanks to ERSelenium - provides tests.
Going forward, this will be the last release for JDK 1.4. In
particular, we will make use of vargars and generics. We will also
split up ERX into ERComponents and ERExtensions, so the clutter of
app-level-only stuff should be greatly reduced. And we will probably
introduce packages in ERX but this still has to be worked out. The
current release can - with a bit of tweaking - build for the version
for WO that ships on Leopard, but while WO 5.4 support is present in
ERX, we do not support preliminary release builds.
I hope you will enjoy this release and find it full of lots of
interesting functionality. Thank you for your patience and enjoy.
Regards, The Wonder Dev Team
(Due to the sheer number of changes this is nowhere near an
exhaustive list that have been made since the 3.0 release)
CHANGES FROM 3.0
================
Overview
--------
- JDK 1.5 friendly, template support for collection classes
- whole bunch of frameworks added
- FrontBasePlugin now part of Wonder
- BugTracker now showcase app
- RuleModeler fleshed out with cool features
- totally revamped build process, easy to add new projects
- Adaptors now build Intel and 64 bit
- maven builds are now supported for the frameworks
- ERX and ERD2W are now (partially) more CSS friendly
- D2WComponentTour example added, simple display of usable D2W
components
- ERMailer added, an app that can batch-process mails from
ERCoreBusinessLogic
- Norwegian support added. Right now only English, German and
Norwegian are complete, support for Italian, Japanese, Spanish is
partial. We need localizers!!
- most components now have valid HTML
- preliminary 5.4 compatibility
BugTracker
----------
- showcase app, links about every framework (no serious ajax, though)
- dummy data creation
- cool D2W pattern for factory
- plist based reporting
- charting reporting
- workflow and delegate patterns
- clazz pattern examples
- selenium tests
- tons and tons more stuff
Ajax
----
- updated to Prototype 1.5 and Scriptaculous 1.7
- substantial performance improvements
- beginnings of Ajax D2W look
- AjaxBehaviour added, easy CSS-like way to hook up JS without
polluting the HTML
- AjaxTextHinter added, hints input and textarea fields with ghosted
text
- AjaxGrid and AjaxGridNavBar added, provides tabular display of data
with drag and drop column re-ordering, complex sorting, and the
ability to embed components in cells
- AjaxResetButton added, allows for client side clearing of form
contents
- AjaxTabbedPanel and AjaxTabbedPanelTab added, implements tabbed
panel display with panel contents loaded on demand
- AjaxObserveField added, supports actions based on inputs changing
- AjaxTree added, lazy loading component-based tree
- Lots of new Ajax Examples
- AjaxInPlace added, in-place editors on steroids
- AjaxUpdateTrigger added, allows refreshing a series of components
- Some DirectAction support added
- FocusTextField/FocusText added, allows autofocus grabbing
- ERXApplication/ERXSession split into ERXAjaxApplication/
ERXAjaxSession to ease integration
- AjaxGMap added, Google Maps component
- AjaxHighlight added, provides object-based method of yellow-
flashing (or other effects) changes
- AjaxProgressBar added, Ajax updating progress bar
- AjaxFileUpload added, provides slick Ajax-based file uploading with
live progress and status
- *Lots* of hooks for animations and effects
- AjaxPing added, supports very small refreshes that can trigger a
larger refresh based on a server state change
- AjaxDragResize added, floating and resizable elements - see example
in AjaxExamples
- AjaxIBoxComponentContent, don't use. Use AjaxModalContainer
instead, which is basically the same
- AjaxModalContainer, shows a link and wraps an area that is later
presented as a modal window.
- AjaxBusyIndicator, globally observes Ajax activity - see example in
AjaxExamples
- YUI framework added
RuleModeler
-----------
- lots of new features, too many to mention
ERIndexing
----------
- Wraps lucene
- indexes your EOs when they change
- multi-language support
ERRest
------
- provides RESTful access to models with built-in support for
security filtering, etc
ERJavaMail
----------
- *Lots* of fixes
- unknown hosts now kill the send thread
- SMTPS support
- upgraded to JavaMail 1.4
- support for plain-text alternative components
ERCaptcha
---------
- CAPTCHA component ("identify the image to prove you're a human")
- based on JCaptcha library
EROpenID
--------
- OpenID client library on top of WebObjects
- based on the OpenRXI library
ERIMAdaptor
-----------
- lots of fixes
- added non-blocking message queue
- JOscar library support added (now the preferred)
- IMBuddyStatus added, iChat-style icons based on IM status
- Support for multiple connections
JavaFSAdaptor
------------
- exposes the file system as EOs
- with qualifiers and stuff
ERSelenium
------------
- use case testing
- easy to set up
- totally cool
ERJars
------
- updated log4j
ERExtensions - Core
-------------------
- you can now link without ERX taking over, at the price of servlet
deployment
- ERXAsyncQueue added, simple thread queue implemention
- NSArray, NSSet, NSDictionary and subclasses now support JDK 1.5
with templates
- NSArray now a actual, working list
- NSMutableArray with tons of bugfixes
- ERXMainRunner added, easy way to do execute code inside of in an
app context from the commandline
- automatic classpath reordering putting WO last, ERX first
- ERXProperties can now be custom EOF types
- ERXProperties supports per-user Properties files
- localization cleanup
- ERXFrameworkPrincipal now with dependency tracking of framework
load order
- localization now US-ASCII files, not UTF-16
- ERX(Batching)DisplayGroup now preserves selection in most cases
- ERXBatchingDisplayGroup now supports restricting qualifiers
- ERXFileRepository added: a simple GUUID store for files or folders
- ERXExpiringCache added, a cache with a timeout. Used by
ERXStyleSheet and friends
- ERXComparisonSupport: locale-savvy sorting added
- ERXLoremIpsumGenerator added, a super-cool way to generate dummy
text data
- ERXResourceManager added, works with DirectConnect, nested
resources, IE friendly, and supports relative URLs in CSS
- ERXWOContext userInfo now moved to thread storage
- ERXKeyValueSetter added, can push a value based on a binding.
Useful in repetitions
- ERXLogger: now has default config, so no need to set it up in
Properties
- ERXMulticastingDelegate added, allows WO's single object delegates
to handle multiple delegate objects
- ERXDictionaryUtilities added keysSortedByValueAscending to return
keys sorted by value
ERExtensions - Components
-------------------------
- ERXNavigation now localizable, changed from <table> to <ul>
- ERXTabPanel changed from <table> to <ul>
- ERXStyleSheet added, creates a DA link from included content.
Allows for dynamic stylesheets with caching
- ERXJavaScript fleshed out, creates a DA link from included content.
Allows for dynamic script with caching
- ERXActiveImage added, replacement for WOActiveImage with tooltip
- ERXSubmitButton added, <button> tag that works on IE, can be
patched into the runtime as the default WOSubmitButton
- ERXLocalizationEditor added, easy localization editing
- ERXWOPasswordField added, doesn't show the password in the HTML
- ERXClickableContainer added, WOGenericContainer with onClick
- ERXBatchNavigationBar/InForm: CSS style rewrite
- ERXFavIcon added
- ERXWOForm: optional invisible default submit button
- ERXWOXMLCoder, bugfix class that supports stable, ordered output
- ERXLayoutTable added, a table with settable row and colspans. Used
by ERD2W
- ERXResponseComponent added, simple wrapper around a response when a
component is needed as a result
- ERXStyledContainer added, can hanlde bindings like "font-face = Arial"
- ERXUniquingWrapper added, helper component for state issues when
backtracking or reloading tab panels and the like
- ERXNestedList added, better HTML output than WXNestedList
- ERXSingleButtton fixed, a button that leaves the page without
submitting (useful for cancels)
- ERXNavigationManager now allows for a subclass of ERXNavigationItem
- ERXWOComponentContent now can have dynamic names, useful for D2W
- ERXOptGroupPopupButton, ERXOptGroupBrowser added, extends WO
components to use HTML 4 optgroups
- ERXInlineTemplate added, provides support for dynamic component
templates via inline bindings syntax
- ERXWOConditional/ERXElse added, provides if/else components rather
than the standard if x, if not x pattern in WO
- ERXInlineTemplate added, allows to specify a component's template
dynamically. Useful, if you want to store dynamic content in the
database....
ERExtensions - EOF
------------------
- ERXConstant added, brings enum-type classes to EOF
- added means to auto-update inverse relationships on setFoo()
- way better prototype handling
- SQL generation via main runner
- EOEnterpriseObjectClazz now works as a static var (provided)
- stacked prototypes (EOMyModelMyPluginPrototypes,
EOMyPlugInPrototypes etc)
- ERXEnterpriseObjectCache added, caches GIDs for a key
- ERXEOControlUtilities: qualifier utils added
- ERXEC: optional tolerant saving, deadlock tracing, coalescing
autolocks, includes Chuck Hill's connection analyzer and LockScreamer
- ERXRegExQualifier now handles in memory RegEx
- ERXMigrator added, provides support for versioned database
migrations with cross-framework dependencies
- ERXEnterpriseObject and subclasses:
- localized attributes (title->title_de, title_en) with generation
support
- automatic application of restricting qualifiers
- canUpdate() hook added
- mightDelete() now does what willDelete() did before the removal
of the delegate
- ERXDummyRecord added, Pojo's in EOF
- ERXFetchSpecificationBatchIterator now actually implements
Iterator, Enumerator
- ERXDatabaseContextMulticastingDelegate added, extends
ERXMulticastingDelegate for EODatabaseContext.Delegate
- ERXEntityOrder, ERXEntityFKConstraintOrder added, provide ordering
of entities and comparators to sort them
- ERXEntityDependencyOrderingDelegate added, uses
ERXEntityFKConstraintOrder to order database operations to avoid
foreign key constraint violations
- ERXSQLHelper added, provides extensions to EO PlugIns along with
with implementations for several databases
- ERXInOrQualifier added, automatically converts large strings of
OR's into a more optimal IN SQL query
- ERX(Simple/JGroups)MulticastSynchronizer added, provides a safer,
reliable, and easy-to-use implementation of multicast EOF change
notification across multiple instances
- ERXModelGroup, support for explicit model ordering
ERExcelLook
-----------
- export for generic pick and list pages (with a button)
WOOGNL
------
- new parser
- support for helper functions, inspired by Rails helper
functions, addresses issue of "this isn't really model, but it's used
in multiple views"
- inline bindings: <wo:WOString value = "$person.name"/>,
<wo:WOConditional condition = "$true">..</wo:WOConditional>, etc.
- custom tag shortcuts: wo:str = WOString, wo:if = WOConditional, etc
- tag processors: <wo:not> = <wo:if> with negate = true injected
into it
- inline bindings in normal HTML: <div id = "$someID">.../div>
ERDirectToWeb
-------------
- way better templates: buttons on top and buttons, repetitions, css
tagging, most buttons labels are setable via the d2wContext, all
localizable
- easier and better localization
- cool new layout options: multi-row with colspan etc
- message page rewrite
- ERDLinkToEditObject, ERDLinkToViewList added. Guess what they do...
- ERD2WDisplayImage can now display directly from DB
- mass change in editable list views
- ERD2WHead added, sets <title> from rules
- ERD2WQueryOperator localized
- ERDAnyField added, query multiple text fields
- ERD2WCheatSheet added, displays the real components for a given
property type/task combo
- ERD2WMultiItemCustomComponent added, can now display a bunch of
items in one line
- ERD2WQueryToOne/ManyRelationship can now handle multiple
selections, resulting in an OR query
- ERD2WDebugFlags now added test, css check and SQL links
- ERDQuickSearch added, standalone query field with a shadowed
default value that shows a D2W list page
- ERD2WCompactXXTemplate now doesn't have buttons, as it should only
used embedded.
- ERDDisplayLargeString added, displays a readonly text field
- ERDPrinterButton now uses CSS
- ERD2WPageRunner added, creates a bunch of pages for a set of page
configurations and renders them. USeful for tracking errors or unit
tests.
- ERDBranchDelegate now optionally localizes button labels
- ERDEditFile added, a rich-text TinyMCE-based editor
ERPrototypes
-------------
- now has a framework principal
- comes first in model load order
- added currencyAmount prototype
- flag/intBoolean now valueType c with MySQL
- EOJDBCPostgresPrototypes renamed to EOJDBCPostgresqlPrototypes so
discovery can pick it up
PostgresqlPlugIn
----------------
- drop table now CASDADES
- supports number constants
FrontBasePlugIn
---------------
- donated from FrontBase
- support for integer boolean types fixed
- support for tinyint columns
- fixes for BigDecimal and other integer types
ERNeutralLook
-------------
- some fixes from Apple
ERCoreBusinessLogic
-------------------
- help text added (localizable dynamic text you can drop on a page)
- usings ERXConstants where appropriate
- attachment support added
- EOGenerator templates now in a recommended way
Updating from 3.0
-----------------
- WO < 5.3 support now must be set explicitely from the command line
- the startup process has radically changed, if you encounter
problems, post to the lists. But so much:
- you *must* subclass ERXApp if you want Wonder installed correctly
- you can link safely and only pick some components or utilities,
but you must init them yourself (if needed)
- ERCoreBusinessLogic has changed quite a bit, see how you can handle
it...
- the normal WO elements are now no longer auto-localized. If you
relied on this, you need to switch to session.localizer
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden