This is primarily a bug-fix release. We believe most important bugs have been identified and been resolved, which justifies a new major release.
Below are the highlights of this release.
RoleUsersManager [ more ]Repository support for application-wide properties [ more ]XmlSelectorProperty [ more
]You can also read the full changelog for more details.
The following sections received a number of bugfixes and were improved:
Two new
constraints were added to ConstrainedProperty:
persistent and
saved.
Persistent allows you to indicate
that a bean property shouldn't be stored in a back-end data storage. It
will thus not be automatically persisted through, for example, a database.
This makes it possible to still use a bean as a central data entity and
have informational properties that should only be used to retrieve
information from the user.
Saved allows you to indicate
that a property shouldn't automatically save its value to a data store,
but it will still participate in the definition of the structure of the
data entity. For example, this makes it possible to continue to use one
place to define the table structure and use database triggers to fill in
the values instead.
RoleUsersManagerThe RoleUsersManager
class provides the functionalities to retrieve a
RoleUsersManagers from a particular
Authenticated element in a site.
Since you can have many authentication schemes and backends being
active in a single web application. it's quite verbose to retrieve a
RoleUsersManager when you want to perform some operations on
its stored credentials. This class provides the functionalities to quickly
perform this retrieval through the static getRoleUsersManager(Site
site, String authElementId) method.
You can thus very easily update a user's attributes, for example:
public class BanUser extends Element
{
public void processElement()
{
String login = getInput("login");
RoleUsersManager credentials =
RoleUsersManagerRetriever.getRoleUsersManager(getSite(), ".AUTH_USER");
try
{
RoleUserAttributes attrs = credentials.getAttributes(login);
attrs.getRoles().add("banneduser");
credentials.updateUser(login, attrs);
}
catch (CredentialsManagerException e)
{
// handle the exception
}
}
}Repository support for
application-wide propertiesSince Java allows the configuration of
an application through the use of properties, many other sub-system have
adopted a similar approach (for example servlet init parameters). Most of
the time an application runs through several barriers of configuration
that often function independently. Properties support in the
Repository makes it possible for each sub-system to add their
properties to the same pool. This makes it much more convenient to
retrieve a property value afterwards since they're all available from a
single source. In a RIFE web application these are for example, the system
properties and the servlet init parameters.
The dedicated XML selectors for Config and
Datasources have been merged in the a single
selector package since they provide the same functionalities.
This also made it possible to easily add dynamic XML file selection to the
MemoryScheduler.
So what was before
ConfigSelectorHostname, ConfigSelectorOs,
ConfigSelectorUser, DatasourceSelectorHostname,
DatasourceSelectorOs, DatasourceSelectorUser is
now available as XmlSelectorHostname,
XmlSelectorOs and XmlSelectorUser.
XmlSelectorProperty
A new XML selector has been added to automatically select an XML
file according to the rife.application property that is
looked up from the Repository properties. You can use this
selector for Config, Datasources and
MemoryScheduler. It's typically used to easily store all the
configuration for application variants in the same source repository and
set this property during the installation to indicate which variant to
use.
For example in tomcat's server.xml file by setting a context parameter:
<Host name="test.myhost.com" appBase="/home/tomcat/test_myhost_com">
<Context path="" docBase="ROOT">
<Parameter name="rife.application"
value="test"
override="false"/>
</Context>
</Host>
<Host name="prod.myhost.com" appBase="/home/tomcat/prod_myhost_com">
<Context path="" docBase="ROOT">
<Parameter name="rife.application"
value="production"
override="false"/>
</Context>
</Host>2004-02-22 Geert Bevin <gbevin[remove] at uwyn dot com> * RELEASE 0.7.0 2004-02-21 Geert Bevin <gbevin[remove] at uwyn dot com> * Added support for RoleUsersManagerRetriever. 2004-02-20 Geert Bevin <gbevin[remove] at uwyn dot com> * Add [img] support to StringUtils bbcode transformer. 2004-02-19 Geert Bevin <gbevin[remove] at uwyn dot com> * Fixed issue RIFE-144 : Rep file processing is sensitive to whitespace. 2004-02-18 Geert Bevin <gbevin[remove] at uwyn dot com> * Added support for persistent and saved constraints. * Continuations bugfix and improved control flow analysis. 2004-02-16 Geert Bevin <gbevin[remove] at uwyn dot com> * Engine refactoring and call fixes to restore the element state after an answer. * Made ValidationError cloneable. * Bugfix to Identified element to ensure that users are only recognized if they have a valid session going on. 2004-02-15 Geert Bevin <gbevin[remove] at uwyn dot com> * Added GenericQueryManagerDelegate class for easy creation of customized Generic Query Managers. * Added support for customizable count queries in GQM. * Added support for multi-line OGNL statements. 2004-02-14 Geert Bevin <gbevin[remove] at uwyn dot com> * Embedded input preservation fixes. * Logout element fixes. * Fixed embbedding element problem with preserving embedder's inputs. 2004-02-12 Geert Bevin <gbevin[remove] at uwyn dot com> * Fixed private method continuations bug. * Made each Repository provide properties which should be used to collect application-wide properties in. * ConfigSelector* and DatasourceSelector* are replaced by XmlSelector* * Fix to auto-reload groovy files that are present in the implementations dir. * Added support for xml selectors in Memoryscheduler. * Added mandatory support for properties in the Repository. * Created and integrated a new RifeLifecycle class. * Extracted xml selectors in a common package. 2004-02-11 Geert Bevin <gbevin[remove] at uwyn dot com> * Added XmlSelectorProperty to select an XML file according to the rife.application property. * Purging bugfix for MemorySessions. * Made the BlockingRepository and BlockingParticipant more robust. * Added Rep tests. 2004-02-10 Geert Bevin <gbevin[remove] at uwyn dot com> * Generic Query Manager fixes. * Refactoring according to RIFE-140 : The GQM is dependant on an integer indentifier method * Optimized GQM shortname creation. * Minor example fix. 2004-02-09 JR Boyens <gnu-jrb[remove] at gmx dot net> * Fix for RIFE-141 : The GQM's method for determining table/sequence names doesn't work on inner classes 2004-02-09 Geert Bevin <gbevin[remove] at uwyn dot com> * RELEASE 0.6.59