|
From: <rod...@in...> - 2003-08-01 08:33:24
|
Here's a list of the changes I've made between 0.9 and 0.9.1. I hope I've remembered everything. I think it would be good if we all add to this to form a release note. Juergen, could you summarize the significant changes you've made (I know you've posted many of them to the list, so compiling those into a single doc would be a good start). I've distinguished between backward-compatible changes and changes that will break user code (marked with *). CHANGES * indicates not backward compatible -------------------------- * Updated to current AOP Alliance interfaces. org.aopalliance -> org.aopalliance.intercept. MethodInvocation.invokeNext() -> proceed(). -------------------------- - Created distinction between static and dynamic method pointcuts. Static pointcuts depend only on invoked method, and possibly attributes; dynamic pointcuts are also aware of arguments. This will permit performance optimizations in AOP framework if required in the future. -------------------------- - Added regular expression method pointcut. This matches method FQNs, such as .*get.*, which will match com.mycom.Foo.getValue() org.somewhere.Someclass.getSomething() OR com.mycom.*get*, which will match only the first example. (OK, I'm being lazy, the . is a wildchar not a literal ., but it looks good.) Syntax is Perl 5 regular expressions. If you want to use this, remember to include Jakarta ORO in your classpath. -------------------------- * com.interface21.ejb.support package once again provides a BeanFactory to subclasses. It differs from the original version in that the default BeanFactory is now an XML bean factory, loaded from the classpath with the environment variable ejb/BeanFactoryPath specifying the location. You'll need an environment variable like this in ejb-jar.xml: <env-entry> <description> Path to the bean factory. Note that this is on the classpath and the XML file should be included in the EJB Jar file. </description> <env-entry-name>ejb/BeanFactoryPath</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry- value>/com/mycompany/myapplication/myName.xml</env-entry- value> </env-entry> You'll also need to implement a protected abstract onEjbCreate () method, rather than implement ejbCreate(). This is consistent across SLSBs and MDBs. Stateful session beans should extend the new AbstractStatefulSessionBean class. AbstractEnterpriseBean and AbstractSessionBean are now package-visible, as they shouldn't be subclassed directly. -------------------------- - Spring bean factory DTD has been extended to allow map entries to be lists, as well as values or references -------------------------- - Added an optional "init-method" attribute to XML bean definitions. This specifies the name of a no-arg method that should be invoked after all property values have been set. This method provides an alternative to implementing the InitializingBean, so that application classes aren't forced into dependency on Spring APIs. The init method may throw any exception: if it does the framework will catch it, treat it as fatal, and log it. -------------------------- - Fixed bug where NoSuchMethodError could be thrown if a Spring XML beans definition file was invalid. -------------------------- - Improved support for bean factory inheritance. Added methods in BeanFactoryUtils to look at _all_ beans (or beans of a particular type) including ancestor definitions, rather than just definitions in the leaf factory. Updated framework classes such as ProxyFactoryBean to pick up beans of the relevant type from ancestor factories. -------------------------- - Added getUnderlyingResultSet() method to ReadOnlyResultSet. Allows use of proprietary methods on ResultSets if necessary, while preserving the default prohibition of navigation methods. -------------------------- - Further improvement to test suite. Unit test coverage now 74%. |