Navigation

RSS 2.0 New Entries Syndication Feed Atom 0.3 New Entries Syndication Feed

Show blog menu v

 

General

Use it

Documentation

Support

Sibling projects

RIFE powered

Valid XHTML 1.0 Transitional

Valid CSS!

Blogs : Archives

< Interview with Artima Developer : The Philosophy of RIFE   New 'Press Room' section on rifers.org >
RIFE 1.5.1 released

Below are the highlights:

  • New autolink declaration to simplify datalink and flowlink declarations [ more ]
  • Allow pass-through of unauthenticated users [ more ]
  • Support for multiple config selectors [ more ]
  • Support for format constraint to convert values during injection [ more ]

You can read the full changelog for more details.

This release can be downloaded from the downloads section, as usual.

New autolink declaration to simplify datalink and flowlink declarations

If you have elements that use the same input and output names, and you want to connect these through datalinks, then the autolink declaration makes this very easy by creating them automatically. It will also create an exit with the name you specified, and add a flowlink to the element that has the same ID as the exit name. You can override the destination element ID by explicitly specifying a destid attribute.

For example:

<element id="Source" implementation="AutolinkSource" url="source">
  <output name="value1"/>
  <output name="value2"/>
  <outbean name="bean1" classname="BeanImpl1"/>
  <autolink srcexit="Destination"/>
</element>
<element id="Destination" implementation="AutolinkDestination" url="destination">
  <input name="value1"/>
  <input name="value2"/>
  <inbean name="bean1"/>
</element>

You can of course also use the @Autolink annotation if you use annotations as your declaration method. It supports an additional destClass attribute that can be used instead of the srcExit attribute. This will lookup the ID of the element that is specified by the class and use this to create the exit and the flowlink.

For example:

@Elem(
  autolinks = {
    @Autolink(destClass = AutolinkAnnotationDestination.class)
  }
)
public class AutolinkAnnotationSource extends Element {
  private String value1;
  private String value2;
  private BeanImpl1 bean1;
   
  @OutputProperty public String getValue1() { return value1; }
  @OutputProperty public String getValue2() { return value2; }
  @OutBeanProperty public BeanImpl1 getBean1() { return bean1;}
   
  public void processElement() {
    // ...
  }
}
 
 
@Elem
public class AutolinkAnnotationDestination extends Element {
  private String value1;
  private String value2;
  private BeanImpl1 bean1;
   
  @InputProperty public void setValue1(String v) { this.value1 = v; }
  @InputProperty public void setValue2(String v) { this.value2 = v; }
  @InBeanProperty public void setBean1(BeanImpl1 b) { this.bean1 = b; }
   
  public void processElement() {
    // ...
  }
}

[ top ]

Allow pass-through of unauthenticated users

By default, authentication elements show a login form when someone isn't logged in. However, you might want to display a variant of the page for anonymous users and customize it for authenticated users using the 'user authentication facility'. To do this you can set the 'enforce_authenticated' property to false for an authentication element.

For example:

<element extends="rife/authenticated/memory.xml">
  <property name="enforce_authenticated">false</property>
  <property name="template_name">authentication_memory</property>
 
  <submission name="credentials">
    <param name="login"/>
    <param name="password"/>
  </submission>
 
  <childtrigger name="authid"/>
</element>

[ top ]

Support for multiple config selectors

The configuration framework now supports a list of configuration selectors that are separated by commas. It will walk the list until it finds a match. This allows you to for example use the dynamic configuration selectors and still provide a fallback default configuration file that is used when none of the dynamic ones can be found.

For instance:

<participant param="XmlSelectorHostname,rep/config-default.xml">
  ParticipantConfig
</participant>

[ top ]

Support for format constraint to convert values during injection

You can now specify a format constraint for a bean property. RIFE will detect it when it calls the property's setter and use it to parse the injected value. This can for example be used to allow users to enter an price in the local format and have it stored as a BigDecimal internally.

For example:

NumberFormat amount_format = NumberFormat.getNumberInstance(new Locale("nl", "BE"));
amount_format.setMinimumFractionDigits(2);
amount_format.setMaximumFractionDigits(2);
addGroup("donation")
  .addConstraint(new ConstrainedProperty("amount")
    .precision(10)
    .scale(2)
    .rangeBegin(new BigDecimal(0))
    .format(amount_format));

The format constraint above allows people to enter the amount 386,50 in a form's input field and have it stored automatically as the number 386.50 in the bean property.

[ top ]

Full changelog

2006-08-14 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * RELEASE 1.5.1

2006-08-14 Steven Grimm <koreth[remove] at midwinter dot com>

  * RIFE-301 : Allow pass-through of unauthenticated users in Authenticated
  element

2006-08-14 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Replaced "since 1.6" by "since 1.5.1"

  * RIFE-204 : Adapt pretty engine errors to XML content type

  * Fixed bug where JNDI datasources didn't detect the driver name when
  database functionalities are used before an actual connection is made
  through the datasource.

2006-08-12 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * RIFE-269 : New autolink element to simplify datalink definitions

2006-08-10 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Added better auto-recompilation support for annotation elements. It now
  works even if they were initially compiled through the IDE.

  * Class loader fixes to prevent stack overflow errors with class lookups of
  inexistant classes.

  * Added some ensurances to unregister a thread connection at all times
  during cleanup and connection errors

2006-08-09 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Added instant modification check in case an exception was thrown, that
  should prevent the 10 second delay each time you want to check if an
  exception has been resolved

  * OrdinalManager transaction fix

  * RIFE-302 : Element declaration annotations from parent classes are ignored

2006-08-07 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Corrected some problems and sub-optimal code after looking at some of
  IDEA's inspections.

2006-08-04 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Added support for BigDecimal in bean property setting.

  * Added support for the 'format' constraint to bean property injection for
  all numeric types.
  
  * Made ContinuationContext.getElement public.
  
  * Re-activated 'finally' continuations test since JDK 1.5 is pretty baseline
  nowadays

2006-08-02 Steven Grimm <koreth[remove] at midwinter dot com>

  * RIFE-299 : Logout element doesn't work with global rememberid cookie

2006-07-31 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * RIFE-297 : Global cookie can't be used for rememberid

2006-07-29 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Fix for the RifeServlet to be usable at other URL mappings than /*.
  Sadly, RifeFilter can't do this, since no distinction is made by the
  servlet spec between the servlet path and the pathinfo when using filters.

2006-07-21 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Added support to validate array property values in standard validation
  rules.

2006-07-20 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Fixes to element recompilation when using manual site declarations in
  Java.

2006-07-18 Steven Grimm <koreth[remove] at midwinter dot com>

  * RIFE-292 : Document that query objects can be passed to DbQueryManager

2006-07-18 Steven Grimm <koreth[remove] at midwinter dot com>

  * RIFE-293 : Allow multiple config file selectors

2006-07-17 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * Added proper support for submission bean date arrays and serializable
  arrays.

2006-07-13 Geert Bevin  <gbevin[remove] at uwyn dot com>

  * RELEASE 1.5

[ top ]

posted by Geert Bevin in RIFE on Aug 20, 2006 2:24 PM : 2 comments [permalink]
 

Comments

Re: RIFE 1.5.1 released
I'm seriously considering using rife because I'm tired of using bits and pieces from everywhere and I think I am going to use annotations rather than separate configuration files simply because everything would be in one place.

But, on an unrelated note, I think your site have been spammed by this liz23 to get their url some inbound link points. I think their robot knows how to do simple arithmetic. Need to support nofollow attribute on href elements in the comment area, I would say. And possibly a better captcha too.
Re: RIFE 1.5.1 released
Hi Mohamad, yeah I already removed most of them manually and these posts stopped happening. I think it's someone that did it manually, not a bot.

Add a new comment

Comments on this blog entry have been closed.

< Interview with Artima Developer : The Philosophy of RIFE   New 'Press Room' section on rifers.org >
 
 
 
Google
rifers.org web