The Spring Blog

Engineering
Releases
News and Events

Spring Framework 3.0 M2 released

We are pleased to announce that the second Spring 3.0 milestone is finally available (download page).
This release comes with a wealth of revisions and new features:

Further Java 5 style API updates: consistent use of generic Collections and Maps, consistent use of generified FactoryBeans, and also consistent resolution of bridge methods in the Spring AOP API. Generified ApplicationListeners automatically receive specific event types only. All callback interfaces such as TransactionCallback and HibernateCallback declare a generic result value now. Overall, the Spring core codebase is now freshly revised and optimized for Java 5.

Read more...

Next Amsterdam Java Meetup - March 13th

Due to the extensive travel schedule of yours truly, we haven’t had a meet up since last September. It’s been almost half a year, so it’s about time for another one.

But, before we move on, I’d like to make point out a new Google Group that we have set up, to keep you posted about this. I received a lot of requests to set up a mailing list over the past few years, so from now on, the main place to keep an eye on, for new Java Meetup dates, is the Java Meetup Google Group. Sign up there to get the dates delivered right to your inbox.

Read more...

Programming Language Popularity

My 13 year old son has been programming in Lua, TI Basic and Assembler, ActionScript, JavaScript, and he’s into C++/Dark GDK these days. While I’ve mostly focused on Java for the past few years, I’ve programmed in a wide range of statically typed and dynamically typed languages.

Since my son is just starting his programming journey, I naturally wondered:

What are the most popular programming languages these days?

I used tiobe.com and langpop.com to answer this question. Both sites provide programming language popularity statistics and rankings, and I was happy to see that Java, C, and C++ rank in the top three on both sites.

Read more...

Spring Integration in 10 minutes

The Spring Integration 1.0 GA release was announced 2 months ago at SpringOne Americas, and ever since I’ve been meaning to write a new, up-to-date “getting started” blog post. Well, the beginning of the year is always a busy time, so my goal is to provide a hands-on example with 10 steps. Each step should take roughly one minute… unless you stop to think ;). So, without further ado, here we go!

Step 1: Download the Spring Integration distribution

You can grab the latest version (1.0.1 at the time I’m writing this) here:
http://www.springsource.com/download/community?project=Spring%20Integration

Read more...

Spring LDAP 1.3.0.RELEASE

Dear Spring Community,

We are delighted to announce the availability of Spring LDAP 1.3.0.RELEASE. This is a major release, containing more than 50 fixes compared to the 1.2.1 version; modifications varying in importance from internal modifications and minor fixes to important bug fixes and and significant functionality additions.

Most importantly we now provide a means to perform simple LDAP authentication directly in LdapTemplate. Other useful improvements include TLS connection support, referral handling improvements, as well as a couple of important fixes working around problems in the underlying Java JNDI API. As always, refer to the Change Log for a complete list of the changes included in this version.

Read more...

Spring Expert Day Munich March 10th

On March 10th we will do the first Spring Expert Day in Germany!

Subjects and Speakers include:


  • Spring 3.0 - Jürgen Höller (VP & Distinguished Engineer, Spring Framework Project Lead)

  • SpringSource dm Server - Next Generation Application Server (Eberhard Wolff, Principal Consultant, Regional Director)

  • Web Applications and more with Spring (Agim Emruli, Senior Consultant)

  • Spring Security Advanced (Mike Wiesner, Senior Consultant)

  • Development tools for Spring and OSGi (Christian Dupuis, Principal Software Engineer, Spring IDE & SpringSource Tool Suite Lead)

  • Management of Spring Applications with SpringSource AMS (Agim Emruli, Senior Consultant)

  • Question and Answer

Read more...

Exposing the boot classpath in OSGi

A fairly common question that I get from time to time is how to go about using JDK specific classes inside an OSGi environment. To some degree, this is equivalent to getting access to the bootstrapping classpath from OSGi, without bundling it. To express package dependencies, bundles use the OSGi directive inside their manifests - mainly Export-Package and Import-Package for providing and demanding, a respectively, a class package dependency. Defining a bundle wiring is a crucial step for creating a modular application; however there are cases, as the issue above, where the needed package is not available from a bundle.

Read more...

Spring Security customization (Part 2 - Adjusting secured session in real time)

Imagine you are in the secured session (you are logged on and are authorized to access a particular resource), but your security infrastructure team has updated your rights and privileges. Perhaps you were given more rights and privileges or perhaps your rights were completely revoked… The problem is that your secured session is registered in session registry and until you log-off/log-on the Principal which represents you in this secured session will not be recreated. And what if the situation is even more dramatic (after all we are talking security here)… You are a disgruntled employe and your immediate management found out about your “wrong doings”, but it takes your company 5 meetings and 10 approval forms to get something done, and until that happens you are free to cause even more harm???

Read more...

Spring Security customization (Part 1 - Customizing UserDetails or extending GrantedAuthority)

This is the first part of what I hope will become a multipart series of small posts showing practical examples around Spring Security customization. The requirements for these customizations are not imaginary and all came from the field…

Assume you have the following requirement. You have a list of roles where each role contains  list of business functions applicable to this role (see below):

ROLE_ADMIN
    BF_QUOTE_CREATE
    BF_POLICY_CREATE
    BF_POLICY_DELETE

ROLE_AGENT
    BF_QUOTE_CREATE
    BF_POLICY_CREATE

Read more...

Deploying GWT Applications in SpringSource dm Server - Part 3

Introduction

This is the final blog in a series of three describing a step-by-step approach to building and deploying GWT applications in the SpringSource dm Server™. The first blog looked at the process of creating a simple WAR file from a sample GWT application and the second blog turned the GWT dependencies into an OSGi bundle which can be shared across multiple applications. This final blog will further modularize our GWT sample into OSGi services using Spring Dynamic Modules. This should clearly demonstrate the benefits of OSGi modularity: The ability to remove and replace services at runtime, seamlessly managing multiple versions of bundles and how straightforward it is to deploy and manage using dm Server.

Read more...