Changes since 2.0.0.RC2 are listed below [August 27th 2009]
Many things have been improved, fixed and refined. Gracelets now uses SLF4J for its logging facade. Gracelets
will now be downloadable as a maven artifact thanks to Sourceforge.NET's recent FRS changes. Mainly stability
testing has been done so no real new features should be added till the next 2.1 release.
Changes since 2.0.0-beta 3 are listed below
The core and other projects have moved to a Maven 2 setup. If you want to start building the latest code and you use
eclipse this will be a brease. See Get Involved! for more information on the
SVN repository setup.
This is somewhat of an overhaul of internals and clean separation between core functionality and implementation specific
details. The API and implementation are now separated.
There are also significant changes to web.xml configuration. This should pave the way for more flexibility and there should
be very few changes, if any, in the future to Gracelets web.xml configuration. Also there is absolutely no need to specify any
settings in the faces-config.xml for Gracelets. Click here for more information on these
changes.
Also many bugs have been fixed (thanks in many ways to user feed back)
and thus is more stable and getting ever closer to a stable release.
FIX (#2494081): Reloadable Gracelet Component Libraries should now work find in any container.
FIX (#2490073): You should have no more problems with using a custom extension (anything other than .jsf) since all hard-coded
areas have been made to determine the current extension being used for exception reporting and the like.
FIX (#2478989): Closure bindings are now working correctly when the using code needs to know the type of the target field.
FIX (#2470067): Gracelet EL Resolver is now working properly.
Changes since 2.0.0-beta are listed below
This is a major overhaul of the gracelets internals. Conversation management, script binding resolving, variable contexts (scopes) have all been
abstracted. There is no longer any direct dependancy on JBoss Seam. There is however an optional module now available which will cause the Gracelets
system to use the JBoss Seam Scopes (conversation, session, application, etc.,) and components for variable resolution.
One important change is that even when using the optional JBoss Seam extension, all factories defined (see documentation for a clearer explanation)
have nothing absolutely to do with JBoss Seam. Whether you use JBoss Seam or not you now have access to the Factory model, making a closure a scoped
based factory. These factories are now completely managed by an extensible framework inside Gracelets for allowing closures (and even other types) to
be factories.
These changes will make it now possible and relatively easy to integrate with other environments. And Gracelets can actually be used without any other
component framework, although it is obvious that Gracelets does not provide as many solutions as, for example, JBoss Seam, so it will most likely be the
case to use it with one. But it is not absolutely necesary to do so now.
The entire api has been refined to be extensible and easy to integrate with other environments. Also the JPA extension does not ship with gracelets itself,
but is also an optional extension that is available as a separate download. This allows the actual core of Gracelets to be more compact and smaller
and not impose solutions that may not be needed for the different environments in which it is used.
Also the tools (like XHTML2Gracelet, Static Content Generator) and such have also been separated from the gracelets core. These tools are available as a separate
download, although they will continue to ship with gracelets server.
The wicket extension and library and the metawidget library are now separate component libraries downloadable apart from gracelets core system.
The documentation has been updated to reflect these significant changes and also to explain more clearly how to extend the gracelets core system and to integrate
it with another environment.
FEATURE (#2285427): Gracelet Component Libraries can now easily define a renderkit which will automatically be used when using components from the library
in which it is defined.
FEATURE (#2226839): As mentioned above, conversation and variable context/scopes have now been abstracted, and gracelets comes with default implementations
of said scopes and a simple conversation management implementation.
CHANGE: Gracelets scanner will no longer find modules based off the file "seam.properties", rather you must now put a file called "gracelets.properties"
in any jar that you want Gracelets to scan in order to find extensions, libraries, controllers and the like.
Changes since 1.3.0 Milestone 1 are listed below
LICENSE: Gracelets is now offered under the Apache License 2.0 (ASL 2.0) in addition to the LPGL.
You can choose which license you wish to be governed by when using Gracelets.
FEATURE (#2292677): Via a control panel in utility view (/gracelet.util/gracelet/control.[jsf extension]) you
can force a scan for detecting new controllers/libraries you have added after the web application
was deployed.
FEATURE CHANGE (#2226943): The default alias for the Core JSF library will now be the letter "f" instead
of "j". "j" will be back supported by default but will be removed in Gracelets 2.0. See feature ID 2226943 comments
for more details.
FIX (#2294161): When using the sub pages component of the Gracelet Component Library (alias: "g") and using the
link access (subPage=) in the url it will now set the value binding instead of replacing the component value and forcing
the link to stick to that sub page.
FIX (#2291998): When a gracelet controll fails initialization for whatever reason it will no longer
bomb the web application. You can also use the new re-scan feature to fix/reload such a controller if because
of failure it failed full registration.
FIX (#2379089): Gracelet views that are in directories that start with a number will now compile fine.
Changes since 1.3.0 are listed below
LICENSE: Gracelets is now being distributed under the LGPL v3.0.
GENERAL: Many many minor fixes and optimizations have been made.
FIX: The JBoss EJB3 Persistence extension had serious issues with flushing entity
changes to the database. This has been fixed.
CHANGE: The Hibernate extension has been removed, since its sort of redundant having the
JPA extension. Thus if you want to use hibernate, you need to simply use the JPA implementation
of it.
CHANGE: The old debug report page that came up has been replaced by a simplified exception
report page (which is now more cross-browser friendly).
NEW: Class files can be used in place of groovy source files. This means you can have
precompiled views. Gracelet Utilities can use this to precompile themselves and also they can
be placed in their own package that is a sub package of gracelet.util.
CLEANUP: Alot of code has been cleaned up to make it leaner and quicker.
Changes since 1.3.0 RC are listed below
FIX:A bug introduced in 1.2.8 which would cause issues with views having the same filename
even though in different directories inside servers like JBoss has been fixed. It would cause strange
results since it would inter-mix closure expressions for said views.
NEW:For TagHandlers in Gracelet component libraries, you now have an attribute on the
ctx map passed call atthtml, which contains all the attributes that are valid html attributes according
to the W3C spec for HTML 4.1.
NEW:You can now inline media content like never before. No need for costly Servlets or session
storing, you simply do something like the following example and the link that is created/returned can be
used to reference your closure based media content generator:
As long as you return a byte[] array or an InputStream and specify the content type as the first parameter, you can use
this for just about anything (i.e., chart generation, image manipulation, video streaming, etc.,).
UPDATE:The wicket integration is going along well (still no ajax support though), but you can now use
facelets/gracelets directly with wicket, in that a gracelet or facelet page/template can be used as the markup
for a wicket page. See Integration : Wicket for updates.