SpringSource Tool Suite 2.8.0.M1 Released

Releases | Martin Lippert | August 11, 2011 | ...

Dear Spring Community,

I'm pleased to announce that we just released the first milestone build for the next release of the SpringSource Tool Suite (STS).

This milestone brings mostly some updates and new features for Groovy&Grails developers, including:

  • update to tc Server Developer Edition 2.5.1
  • update to Maven 3.0.3
  • update to Mylyn 3.6.1
  • runs on JDK 1.7.0, including Spring Roo 1.1.5
  • validation and quick-fixes for constructor-arg
  • support for Grails 2.0.0.M1
  • enhanced DSL support for Grails 2.0.0.M1
  • lot of improvements for Groovy-Eclipse

More details can be found in the New and Noteworthy for 2.8.0.M1 document. Detailed installation instructions are also available, please look at the installation from the milestone update sites.

As always downloads are available from the STS download page, check "Other Downloads".

2.8.0.M2 is planned for the second half of September, followed…

Beyond the FactoryBean

Engineering | Josh Long | August 10, 2011 | ...

I looked at what a basic FactoryBean is in my previous post. While FactoryBeans are important - and knowing what they do can help you navigate the framework more effectively - they're by and large no longer the recommended approach to the task as of Spring 3.0 and the imminent Spring 3.1.

The whole point of a FactoryBean is to hide the construction of an object - either because it's very complex or because it can't simply be instantiated using the typical constructor-centric approach used by the Spring container (maybe it needs to be looked up? Maybe it needs a static registry method?) Spring has also supported the factory-method attribute in the XML format. The Java configuration approach offers a conceptually similar (in practice, the result is the same) alternative, but features a more concise, type-safe alternative.

Spring 3.0 saw the introduction of Java configuration which lets you define beans using Java. For instance, to register a regular javax.sql.DataSource with Spring in XML, you will more than likely delegate to a properties file for the sensitive configuration information (like a database password) and use Spring to instantiate the javax.sql.DataSource, like this:


<beans ...>
	<context:property-placeholder location = "ds.properties" />

	<bean id = "ds" class = "a.b.c.MySqlDataSource">
	  <property name = "user" value = "${ds.user}"/>
	  <property name = "password" value = "${ds.password}"/>
	</bean>
</beans>

This is a simple bean, and translates naturally into Java configuration. It would look like this:

 
import a.b.c.* ;
	
@Configuration 
@PropertySource("ds.properties") 
public class MyConfiguration { 
    @Inject private Environment env ; 
	
    @Bean public MySqlDataSource ds(){ 
        MySqlDataSource ds = new MySqlDataSource () ; 
        ds.setUser( env.getProperty("ds.user") );
        ds.setPassword( env.getProperty("ds.password…

What's a FactoryBean?

Engineering | Josh Long | August 09, 2011 | ...

In this post, I'll look at Spring's org.springframework.beans.factory.FactoryBean<T> interface. The definition of this interface is:


public interface FactoryBean<T> {
  T getObject() throws Exception;
  Class<T> getObjectType();
  boolean isSingleton();
}

A FactoryBean is a pattern to encapsulate interesting object construction logic in a class. It might be used, for example, to encode the construction of a complex object graph in a reusable way. Often this is used to construct complex objects that have many dependencies. It might also be used when the construction logic itself is highly volatile and depends on the configuration. A FactoryBean is also useful to help Spring construct objects that it couldn't easily construct itself. For example, in order to inject a reference to a bean that was obtained from JNDI, the reference must first be obtained. You can use the JndiFactoryBean to obtain this reference in a consistent way. You may inject the result of a FactoryBean's getObject() method into any other property.

Suppose you have a Person class whose definition is thus:


public class Person { 
 private Car car ;
 private void setCar(Car car){ this.car = car;  }	
}

and a FactoryBean whose definition is thus:


public class MyCarFactoryBean implements FactoryBean<Car>{
  private String make; 
  private int year ;

  public void setMake(String m){ this.make =m ; }

  public void setYear(int y){ this.year = y; }

  public Car getObject(){ 
    // wouldn't be a very useful FactoryBean 
    // if we could simply instantiate the object…

Video: Adrian Colyer Discusses Enterprise Apps in 2011 and Beyond

News | Adam Fitzgerald | August 08, 2011 | ...

Adrian Colyer Talks about the Future of Enterprise Development

The What's Next conference in Paris in May was one of the biggest Java events ever organized in France, energizing the vibrant French developer community. It gathered a lot of the most important Java experts from around the world to discuss at a high level the important new and emerging technologies around the Java platform.

SpringSource's Adrian Colyer had the opportunity to present to the audience and he discussed the current trends in cloud computing, covering especially PaaS with a reference at Cloud Foundry, and focusing on how PaaS impacts enterprise application design and development.

Many thanks to InfoQ who were on hand to capture the presentation.

This week in Spring: August 2nd, 2011

Engineering | Josh Long | August 03, 2011 | ...

Welcome to another edition of "This Week in Spring." August is well underway and soon, at the end of August, VMworld 2011 will be upon us. Shortly thereafter, SpringOne will be here. It's going to get hot and heavy very quickly, so get ready! This week's "This Week in Spring" has a lot of interesting content from Gordon Dickens, of Chariot Solutions. Thanks Gordon for all the good reading!

  1. Rod Johnson - Spring's founder and thought leader - did a keynote at TheServerSide earlier this year. This post relays some of the content of that keynote, including his thoughts on cloud computing, SOA, and more. Check it out.
  2. <LI> 
    	The video of the recent webinar, "<A href="http://www.springsource.org/node/3194">What's New in Apache Tomcat 7</a>," is now available on the <a href="http://www.youtube.com/SpringSourceDev">SpringSourceDev YouTube channel</a>.   
    </LI> 
    <LI>Luke Taylor has some great content on how to <a href="http://blog.springsource.com/2011/08/01/spring-security-configuration-with-scala/">configure Spring Security with the Scala DSL</a> he's been developing. Check it out! 
    </LI> 
    <LI> 
    	<a href= "http://www.springsource.org/node/3192">Spring Data JDBC Extensions with Oracle Database Support</a>…

Debugging DSLD Scripts

Engineering | Andrew Eisenberg | August 02, 2011 | ...

Not too long ago, I introduced DSL descriptors (DSLDs) for Groovy-Eclipse. DSLDs are Groovy scripts that provide rich editing support (content assist, navigation, etc.) for Groovy projects in your Eclipse workspace. Since DSLDs can only be executed inside a running Eclipse process, debugging is not as simple as firing up the Eclipse debugger and stepping through a Groovy script. In this post, I'll describe some simple and some more complex techniques that you can use for debugging your DSLDs.

To get all of this working, you will need the latest development builds:

Simple and crude

The simplest and crudest way to debug your DSLDs is by using println. This will print expressions to the standard out of the running Eclipse process, which can be seen if you launched your Eclipse from the command line. However, I recommend using a log statement instead. This will print logging information to the Groovy event console

Spring Security Configuration with Scala

Engineering | Luke Taylor | August 01, 2011 | ...

In a previous article, Behind the Spring Security Namespace, I talked about how the Spring Security namespace has been very successful in providing a simple alternative to plain Spring bean configuration, but how there is still a steep learning curve when you want to start customizing its behaviour. Behind the XML elements and attributes, various filters and helper strategies are created and wired together, but, short of reading the code which handles the XML parsing, there is no easy way of working out which classes are involved or the details of how they interact.

For some time now, we've been trying to come up with an alternative Java-based solution using Spring's @Configuration classes that retains the simplicity of the XML namespace but also makes the underlying behavior more transparent and easier to customize. While theoretically possible, no Java-based solution seemed to meet…

Video: What's New in Apache Tomcat 7

News | Adam Fitzgerald | August 01, 2011 | ...

Mark Thomas discusses all the latest features that are available in Apache Tomcat 7. He talks about the specification changes (Servlet 3.0, JSP 2.2, Expression Language 2.2) some of the new features (JMX enhancements, performance improvements, new parallel deployment) and describes the upcoming plans for later releases. Check out the video or you can download the slides from the S2G Forum 2011 archive.

Be sure to thumbs up the presentation if you find it useful and subscribe to the SpringSourceDev channel to receive updates about all the latest presentation recordings and screencasts.

Spring Data JDBC Extensions with Oracle Database Support 1.0.0.M2 Released

Releases | Thomas Risberg | July 28, 2011 | ...

Dear Spring Community,

We are pleased to announce that the second milestone release (1.0.0.M2) of the Spring Data JDBC Extensions 1.0 project with Oracle Database support is now available!

The new Spring Data JDBC Extensions project was created to provide additional support for vendor specific JDBC extensions as well as new approaches to working with JDBC like QueryDSL. The bulk of the support is made up of code ported from the SpringSource project "Advanced Pack for Oracle Database" that was available for support subscription customers. We are now making this code available to all Spring…

Spring Social 1.0.0.RC2 Released

Releases | Craig Walls | July 27, 2011 | ...

Dear Spring Community,

We are pleased to announce the release of Spring Social 1.0.0.RC2. Spring Social lets you connect your Java applications to Software-as-a-Service (SaaS) providers such as Facebook and Twitter.

This announcement is for the Spring Social core project as well as the Spring Social Facebook and Spring Social Twitter projects which are also seeing their 1.0.0.RC2 releases today.

This release includes fixes for bugs reported since 1.0.0.RC1, as well as a few improvements:

  • The Twitter and Facebook clients now support paging for API operations that can return paged results.
  • ProviderSignInController now handles the scenario where the user denies authorization.
  • The exceptional case where multiple local users are matched during a provider sign in attempt is now handled.
  • The set of sample applications has been updated.

See the change logs for more information on what's new in this release (Core | Facebook | Twitter)

To get the software, download the release distribution (Core | Facebook | Twitter) or simply add the maven artifacts to your project. To see it live, run through the quickstart and spin up the showcase app (updated for 1.0.0.RC2). Supplement as you go with information from the reference manual.

Spring Social requires Spring Framework 3.0.5 or > to run. We recommend Spring 3.1 for new applications to take advantage of the latest advances in the core framework. See the reference manual for a full description of dependencies.

Many thanks to the community for helping us shake out and resolve issues in RC1. As we move toward the GA release, we appreciate the community involvement and are eager to hear your thoughts on this RC2 release. Participate in the forum or, if you have any suggestions or find any bugs, post them in the issue tracker.

We hope you enjoy using Spring Social!

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all