ONess 0.5 + Tomcat 5.0.30 bundle released

I’ve released a new ONess 0.5 version that comes bundled with Tomcat 5.0.30 so it’s ready to run in less than a minute. Uses hsqldb to avoid the need of setting up a database.

Just download from Sourceforge, uncompress, go to the “bin” dir and run startup.bat or startup.sh.
Note that the first time the pages are accesed it may be slow because they get compiled. After that it will run faster.

Spring Framework 1.1.3 released

A new version of the Spring Framework, the 1.1.3 has just been released ant it’s available to maven users from the ibiblio repository.

I'm pleased to announce that Spring 1.1.3 has just been released.
This is a bugfix and minor enhancement release in the 1.1 series;
most importantly, JDK 1.3 compatibility is fully restored.
Among the new features in this release are:

* added "setResourceLoader" method to GenericApplicationContext, for overriding the default resource loading strategy
* added FileSystemResourceLoader, resolving paths as file system resources rather than as class path resources
* BeanWrapperImpl automatically registers a default ResourceArrayPropertyEditor
* added CustomCollectionEditor, by default registered to convert between Set, SortedSet and List (when necessary)
* added "fileEncoding" and "propertiesPersister" properties to PropertyResourceConfigurer
* reworked DefaultListableBeanFactory's "getBeansOfType" to return FactoryBean instances when passed a FactoryBean type
* DefaultXmlBeanDefinitionParser resolves "set" tag as LinkedHashSet on JDK 1.4, falling back to HashSet on JDK 1.3
* factored out AbstractRefreshableApplicationContext as base class of AbstractXmlApplicationContext
* added "setIgnoreUnknownFields" method to DataBinder, enforcing request parameters to match fields when turned "false"

* added "execute(ConnectionCallback)" method to JdbcTemplate, allowing any kind of operation on a given Connection
* added DB2SequenceMaxValueIncrementer, implementing the DataFieldMaxValueIncrementer interface for a DB2 sequence
* fixed Hibernate/JTA synchronization to also work with EJB remote transaction propagation (with >1 thread involved)
* added "transactionConfigClass" and "transactionConfigProperties" customization properties to SqlMapClientFactoryBean

* added optional "proxyInterface" property to JndiObjectFactoryBean, for exposing a proxy rather than the plain object
* added "lookupOnStartup" and "cache" properties to JndiObjectFactoryBean, allowing for lazy lookup on first access etc
* added "codebaseUrl" property to HttpInvokerClientInterceptor, specifying a URL for dynamic class download
* added support for dynamic class downloading to AbstractHttpInvokerRequestExecutor and its subclasses

* DispatcherServlet by default cleans up request attributes after include request (configurable via "cleanupOnInclude")
* UrlBasedViewResolver supports a "forward:" prefix too, for forwards to other controllers through special view names
* added "attributes" (Properties) and "attributesMap" (Map) properties to UrlBasedViewResolver, for static attributes
* InternalResourceView performs an include if the response has already been committed (-> forward not possible anymore)
* JstlView and TilesJstlView respect a JSTL "localizationContext" config in web.xml, checking those messages first
* added overloaded "createVelocityContext" and "exposeHelpers" methods to VelocityView, with passed-in servlet response
* added "toolAttributes" property to VelocityView, taking attribute name / tool class name pairs for tools to expose
* added JasperReportsXxxView to allow for convenient rendering of CSV/HTML/PDF/XLS web views with Jasper Reports
* added MappingDispatchActionSupport class, as convenience subclass of Struts 1.2's MappingDispatchAction

Congreso Javahispano 2004

I’m doing a presentation at Congreso JavaHispano 2004 in Madrid, december 15, 16, about Acegi Security System for Spring. If you’re interested registration is free.

Maven Blogs

If you want to get the latest news from the Maven project you can try Maven Blogs, where the blogs of some maven developers are aggregated.

A good new is that Maven 1.0.2 is in the way in less than 24 hours. Thank to all those guys developing this great tool. And of course thanks to all the contributors and users that help improving it.

Maven AspectJ plugin 3.2 released

The maven team is pleased to announce the Maven AspectJ Plugin 3.2 release!

The main change is the ability of weaving only a subset of aspects.

The maven team is pleased to announce the Maven AspectJ Plugin 3.2 release!
http://maven.apache.org/reference/plugins/aspectj/

Changes in this version include:

  New Features:
o Added maven.aspectj.argfiles and maven.aspectj.weaveAspectSources properties.
  Issue: MPASPECTJ-12. Thanks to Mark Proctor.
o Added maven.aspectj.noweave and maven.aspectj.lint properties. Issue:
  MPASPECTJ-13.

  Fixed bugs:
o Added maven.aspectj.source and maven.aspectj.time properties that where
  incorrectly removed.

To automatically install the plugin, type the following on a single line:

maven plugin:download -DgroupId=maven -DartifactId=maven-aspectj-plugin -Dversion=3.2

For a manual installation, you can download the plugin here:
http://www.apache.org/dyn/closer.cgi/java-repository/maven/plugins/maven-aspectj-plugin-3.2.jar

Have fun!
-The maven team

Maven 1.0.1 Released

After a long time from 1.0, the 1.0.1 release is out!.

The maven team is pleased to announce the Maven 1.0.1 release!

Download

This release contains bugfixes since the Maven 1.0 release. In addition, all of
the latest stable plugin releases are included, which include both bugfixes and
some new features.

We recommend that all users upgrade to this release, in particular those using
pre-1.0 betas or release candidates.

Maven is a project management and project comprehension tool. Maven is based
on the concept of a project object model: builds, documentation creation, site
publication, and distribution publication are all controlled from the project
object model. Maven also provides tools to create source metrics, change logs
based directly on source repository, and source cross-references.



Changes in this version can be found here:
Changes

Please note that each plugin has its own changes report - please refer to the plugins
site to see the plugin you are interested in.

Have fun!
-The Apache Maven Team

Another Maven success story: Acegi Security System for Spring

Another project I have just migrated to Maven is the Acegi Security System for Spring. The folder layout was changed (retaining CVS history) to use Maven suggestions, although it’s not needed. The core, subprojects, samples and docs (including docbook generation) were migrated from ant.

Maven multiproject: sharing common files between subprojects

Are you using multiproject and want to use common files in all your subprojects?

Then you can define a variable “rootdir” pointing to the dir where common files are stored, so they can be refered as ${rootdir}/filename, both in your properties (project.properties, build.properties) and project.xml files.

To do so you just need to create a maven.xml in the top level project (supposing you have a LICENSE.txt in the top level dir, you can use any other file). This var will point to the same dir from every subproject.

<project
   xmlns:j="jelly:core"
   xmlns:ant="jelly:ant"
   xmlns:util="jelly:util"
   xmlns:maven="jelly:maven">

    <!-- =========== Set root dir =========== -->

    <j:set var="rootdir">${basedir}</j:set>

    <j:while test="${true}">
        <util:available file="${rootdir}/LICENSE.txt">
            <j:break/>
        </util:available>
        <j:set var="rootdir">${rootdir}/..</j:set>
    </j:while>

    <ant:dirname property="rootdirname" file="${rootdir}/project.xml"/>
    <j:set var="rootdir">${rootdirname}</j:set>
    <echo>Using root dir: ${rootdir}</echo>

</project>

You’d like to set some properties using this new var

# License plugin settings
maven.license.licenseFile=${rootdir}/LICENSE.txt

# multiproject
maven.multiproject.basedir=${rootdir}

Understanding Portlets and Portals

A good introduction to the JSR-168 Portlet standard:
Understanding Portals and Portlets by Kenneth Ramirez

Spring Framework 1.1.2

Spring Framework 1.1.2 has just been released. As before it will be available to Maven users in the ibiblio central repository in a few hours.

Unfortunately this release has a bug and is not compatible with Java 1.3.

Check the announcement:

ANNOUNCEMENT: We are pleased to announce that Spring Framework 1.1.2 has just been released. This is a bugfix and minor enhancement release.
 
Among the new features in this release are:
 

  • added support for multi-dimensional collections to BeanWrapperImpl (e.g. “map[myKey][0]” or “map[myKey][0].name”)
  • added “getType(name)” method to BeanFactory interface, checking the type of object that “getBean” would return
  • added “getBeansOfType(type)” convenience method to ListableBeanFactory interface, without explicit filters
  • added PropertyPathFactoryBean, allowing to evaluate the property path of a target bean and expose the result
  • allow “bean*” rather than “bean+” in XML bean definitions, i.e. no bean definitions in a file (just imports)
  • AbstractApplicationContext automatically registers a context-aware ResourceArrayPropertyEditor for Resource arrays
  • added GenericApplicationContext class, allowing for arbitrary definition formats (via a single internal BeanFactory)
  • improved ResourceBundleMessageSource and ReloadableResourceBundleMessageSource implementations
  • added “setText(plainText, htmlText)” method to MimeMessageHelper, for alternative texts in the same mail
  • added “objectResult(collection,type)” and “intResult”/”longResult(collection)” convenience methods to DataAccessUtils
  • added support for pre-bound Sessions (e.g. OpenSessionInViewFilter/Interceptor) with JTA and TransactionManagerLookup
  • added “load(entity, id)” method to HibernateOperations and HibernateTemplate
  • added “initialize” and “closeIterator” methods to HibernateOperations/Template, following “Hibernate.initialize/close”
  • added “queryCacheRegion” property to HibernateTemplate, specifying the cache region used for queries
  • added ServletContextResourcePatternResolver, to find matching resources within a web app even in an unexpanded WAR
  • added “defaultStatusCode” property to SimpleMappingExceptionResolver, specifying the HTTP status code for error views
  • UrlBasedViewResolver supports a “redirect:” prefix now, for convenient redirects through special view names
  • added “springMessage”/”springMessageText” macros for Velocity and “message”/”messageText” macros for FreeMarker

As always, have a look at the changelog for details.
Downloads are available through the SourceForge project page [2004-11-14]

Note that this Spring distribution comes with an updated HSQLDB version, namely 1.7.2.7. Unfortunately, the HSQLDB 1.7.2 branch is incompatible with 1.7.1 in some areas. While all Spring sample apps have been adapted accordingly, please be aware that if you do decide to update your own applications with the new hsqldb.jar, you must also update your server instance (i.e. both need to run version 1.7.2), and any existing db data files may need to be upgraded. Furthermore, be aware that JBoss <= 3.2.5 shipped with HSQLDB 1.7.1 in the server classpath, while 3.2.6+ include HSQLDB 1.7.2.