The Spring Blog

Engineering
Releases
News and Events

Building Spring 3

UPDATE - Feb 21 ’12: Spring Framework has moved to GitHub, and for 3.2.x development has moved from Ant to Gradle. Take a look at the building from source section of the README there for (greatly simplified!) instructions.

Introduction

As Juergen announced last week, Spring 3.0 Milestone 2 is now available. In this post, I’ll show you in six steps how to download and build the latest Spring 3 sources and get a development environment up and running in Eclipse.

We’ll wrap up by discussing the best ways to follow Spring 3 development, how to file bugs and improvement requests, and considerations for compiling against locally-built Spring 3 binaries in a Maven environment.

Read more...

Spring Integration on dm Server

Introduction

In this blog post I will show you how to create a loosely coupled and scalable application with Spring Integration and dm Server. The added benefit of using OSGi will allow us to change the behavior of the application at runtime and of course we’re going to have some fun with that too. First I will quickly highlight the reasons for designing an application for concurrent use, then I will describe different strategies of integrating OSGi bundles with Messaging. Along the way you will get a glimpse of our tooling and some of the dm Server features. You should be able to do this yourself, if you have downloaded and installed the latest SpringSource Tool Suite and dm Server. You don’t need the sample code to follow the story, but it will be available in the Spring Integration sandbox if you’re interested.

Read more...

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 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...