SpringSource at JavaOne 2011

Releases | Adam Fitzgerald | September 19, 2011 | ...

Are you heading to JavaOne 2011? If you are, we invite all Spring, Groovy and Grails community members to stop by the SpringSource booth (number 5402) to chat with the Spring engineers and see the latest innovations in Spring, Grails and Cloud Foundry. The exhibit space is open Monday, Tuesday and Wednesday, roughly 10am-5pm, so there should be plenty of time to get your questions answered.

SpringSource technologists are also presenting a lot of sessions as well so be sure to add the following talks to your session builder and reserve a seat:

  • Java Workloads in the Cloud (24701) - Scott Andrews and Ramnivas Laddad
  • Simplify Your JMS Code With Spring (22585) - Bruce Snyder
  • Caching and Data Grids Patterns and Tips (22500) - Costin Leau
  • Building Cloud-Ready Systems with Modern Open Technologies (17381) - Oleg Zhurakousky
  • Fewer Hoops with Hadoop and Spring (22501) - Costin Leau
  • Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever (22120) - Stefan Schmidt & Gordon Dickens
  • What's New in Groovy 1.8 (23940) - Guillaume Laforge
  • What's New in Grails 1.4 (24262) - Graeme Rocher
  • Polyglot Persistence in the Cloud with Grails and Java EE (24280) - Graeme Rocher

Of course, if you are dedicated member of the Spring community, then SpringOne 2GX 2011 in Chicago is really the event for you. We are just one month away so be sure to register now

SpringSource Tool Suite 2.7.2 Released

News | Martin Lippert | September 14, 2011 | ...

Dear Spring Community,

I'm pleased to announce a minor update 2.7.2 of the SpringSource Tool Suite (STS).

The update provides:

  • support for vFabric tc Server 2.6
  • support for Spring Roo 1.2.0.M1
  • update to Mylyn 3.6.2

More details on new features and bug fixes can be found in the New and Noteworthy document. Detailed installation instructions are also available.

As always downloads are available from the STS download page. Enjoy!

New application layering and persistence choices in Spring Roo 1.2

Engineering | Stefan Schmidt | September 14, 2011 | ...

Java enterprise applications can take many shapes and forms. Depending on their requirements, developers need to decide which specific architectural layers their application needs. Up until now, Spring Roo has taken a pragmatic approach to reduce the often unnecessary complexity introduced by service facade, repository or DAO layers. The newly-released Spring Roo 1.2.0.M1 (see announcement) includes frequently requested support for architectural layers which can be tailored to the needs of the application. This article provides an overview of Roo's new service and repository layer features.

Spring Roo Application Layering Support

Spring Roo 1.2.0.M1 released

Engineering | Alan Stewart | September 14, 2011 | ...

The Spring Roo team is delighted to announce the availability of our first 1.2.0 milestone. The Roo 1.2.0.M1 release continues the Roo vision of making it fast and easy to build Spring-based enterprise Java applications. We’ve listened to the community and included in this release some of the most highly-requested features:

  • Ten times faster (!). We know many people are using Roo for very large projects, so we’ve continued our attention to Roo internals to ensure it operates smoothly and quickly despite this. Through attention to profiling, file monitoring, disk I/O, XML models and round-tripping, we’ve increased Roo’s performance for large benchmark projects by a factor of 10.
  • Now Apache licensed. With Roo 1.0/1.1, we used the GPL license to encourage any improvements made in Roo to be shared with the community. In response to feedback, we’ve shifted to the Apache Software License 2 (ROO-2253) so you have complete flexibility on how you use Roo in commercial and non-commercial projects. This also makes Roo consistent with most of the other Spring projects.
  • Moved to GitHub. Social coding is on the rise, and GitHub has become the de facto site for open source source code management. We’re pleased to have moved Roo’s code base to GitHub so that you can easily fork it, make changes, and submit pull requests. This will greatly simplify the receipt of new contributions from the community. Take a look at ROO-2708 or visit https://github.com/SpringSource/spring-roo for more info.
  • Repository layer flexibility. It’s now possible to define your own repository layer approach, with full awareness of your choices in the Roo-managed web tiers, integration tests and data-on-demand mechanisms. This is a significant step forward for those preferring a more traditional layering approach than the Roo 1.0/1.1 “Active Record”-like model. Of course the philosophy that favoured the earlier approach remains, so Roo still fully supports embedding convenient Active Record-style methods in entities. You can learn more about this new feature in the Pizza-Shop sample (see the /samples directory of the distribution) and ROO-301.
  • Services layers. We also decided to tackle another highly-requested community feature: services layer support. You can now easily add a services layer (via a Roo "service" command) and have this used by the Roo-managed web tiers, integration tests and data-on-demand features. The custom services layers can also be used at the same time as custom repositories, giving you complete flexibility to build whichever application layering you prefer. You can read more in ROO-340 and Stefan Schmidt is publishing a blog shortly giving more details.
  • Flexible GWT support.  Now you can skip the UI and just let Roo manage syncing your RequestFactory classes (EntityProxy, RequestContext, and Locator) with your domain model and service layers. Previously the GWT UI scaffolding was mandatory, but with 1.2.0.M1 you can be more selective on how Roo integrates with your project.
  • MongoDB support. Whether you’re a Cloud Foundry user, or just a Mongo fan, we’ve now added support for storing your entities in MongoDB. Mongo is a fast, shard-aware, schema-less document database that supports map-reduce and is a good fit for those wanting to use noSQL with Roo. Learn more in ROO-2693.
  • Database Reverse Engineering (DBRE) Multi-Schema Support. One of the most popular features in Roo is DBRE support, which allows you to not only scaffold an entity model from your relational schema, but also automatically maintain that entity layer as the schema changes. This takes a schema-first approach to development and we know of users employing DBRE in projects with many hundreds of tables. As part of ROO-1408 we’ve added support for DBRE sourcing its structure from multiple schemas at the same time, and indeed you can even have different schemas manage entities in different Java packages.
  • Shell improvements. Lots of people enjoy Roo's usability and indeed the shell has found its way to many other VMware products. We’re pleased that a number of minor fixes have made its way into JLine 1.0 (ROO-2608) and in turn the Roo shell (such as backspace to a previous line will finally work!). You can also run operating system commands directly from the Roo shell via the “!” operator (ROO-2457) and shell on start up now displays the latest community tweets  (ROO-2677).

As you can see, we’ve made a lot of enhancements to Roo 1.2 and look forward to your feedback. We’ve got many exciting new features still coming in the next Roo 1.2 milestone, including JSF/PrimeFaces (ROO-516) support and multi-module Maven (ROO-120) project support. These two are also highly-requested community features.

Please remember this is a milestone release, so you should keep using Roo 1.1.5 for production projects. However, you might like exploring these new features in Roo 1.2.0.M1 by experimenting with the included sample projects.

We hope you enjoy this new release. Please share your experiences via the community forum, follow @SpringRoo for the latest news, or use #springroo in your tweets

Alan Stewart, Project Lead - Spring Roo

Save over € 350,- on Core Spring Amsterdam Registration

News | Mark Baars | September 14, 2011 | ...

This week you can save € 367,50 on a Core Spring Registration in Amsterdam. Make sure to sign up before Wednesday and save 15% on the official Core Spring training and learn to:

  • Use the Spring Framework to develop Java applications
  • Use dependency injection to set up and configure applications
  • Test Spring-based applications
  • Set up Spring configuration using XML, annotations, and Java configuration
  • Use Hibernate and JDBC with Spring to access relational databases
  • Use Spring support for transactions
  • Use aspect-oriented programming (AOP) to add behavior to objects
  • and much more

Completion of this training also entitles each student to receive a free voucher to schedule an exam at a Pearson VUE Center to become a Spring Certified Professional

Register Now and use the discount code: lastminute15

For a Core Spring Training near you please click here for the schedule

Spring Roo

Releases | Chloe Jackson | September 12, 2011 | ...

Instant Results - Making Java Fun

Spring Roo is a lightweight developer tool that makes it fast and easy to deliver instant results. Best of all, you code 100% in Java and get to reuse all your existing Java knowledge, skills and experience. You'll like it - and have plenty of fun too! Read how TomTom cut development time in half using Spring Roo.

Download the book by Josh Long and Steve Mayzak called Getting Started with Roo. You can also purchase it as a print-on-demand book or in alternative formats from the O'Reilly web site.

Ken Rimple and Srini Penchikala have also written the definitive Roo reference book called Spring Roo in Action available for purchase from Manning Publications.

Exciting Features - GWT. Solr. Cloud. Flex...

MVC applications with JPA are a breeze with Roo, but it also eases your journey into the next generation of technology. We already support cool features like Google Web Toolkit (GWT) for advanced next-generation user interfaces, Solr for search server integration and cloud deployment like Google App Engine. Plus we have incremental database introspection, Flex, Spring Integration and much more actively in development.

SpringSource and Google are working together to combine the speed of development of Spring Roo with the power of the Google Web Toolkit (GWT) to build rich browser apps. Try out the exciting GWT and Google App Engine support now available from Spring Roo 1.1.

Zero Risks - Productivity Without Compromise

With Roo you still program everything in Java. Its innovative approach operates entirely at compile-time and is completely compatible with your IDE. Plus because there's no runtime portion, adoption is also simplified and low risk. All your Java developers will feel comfortable and be productive from day one. Roo really represents productivity without compromise.



Why Spring Roo?

Spring Roo is a next-generation rapid application development tool for Java developers. With Roo you can easily build full Java applications in minutes. It differs from other productivity tools by focusing on:

Technology Integrations

 

Roo gives you easy and immediate access to all of the mainstream Java technologies important to building sophisticated enterprise applications. Here's just some of the technologies that Roo-based projects can instantly leverage (plus there's plenty more supported by third-party add-ons, or you can write your own add-on):

  • Adobe Flex
  • Apache ActiveMQ
  • Apache Maven
  • Apache OpenJPA
  • Apache Tiles
  • Apache Tomcat
  • AspectJ
  • AspectJ Development Tools
  • Cloud computing
  • Dojo Toolkit
  • Eclipse IDE
  • EclipseLink
  • Google Web Toolkit
  • Google App Engine
  • Hibernate
  • Java 5+
  • Java Bean Validation
  • Java Database Connectivity
  • Java Message Service
  • Java Persistence API
  • Java Transaction API
  • Java Server Pages
  • Jetty
  • JUnit
  • Log4J
  • Representational State Transfer (REST)
  • Selenium
  • OSGi add-ons
  • Solr search
  • SpringSource tc Server with Insight
  • SpringSource Tool Suite
  • Spring Integration
  • Spring Framework
  • Spring Security
  • Spring Web Flow
  • URL Rewrite Filter
  • Web application resource (WAR) packaging
  • Write Your Own Add-Ons

Productivity Without Compromise

Roo's innovative approach is free of any compromises:

  • Program in Java!
  • Full IDE support (with features like code assist, refactoring and debugging)
  • No runtime portion, which means easier adoption in enterprise with approval requirements
  • Excellent runtime performance, as there's no runtime memory usage, deployment footprint, control flow invocation time etc
  • Lower risk of bugs impacting your project, as Roo operates entirely at development time (just like your IDE)
  • No lock-in to Roo, as you can remove it from your project in just minutes
  • Easy extensibility to new features thanks to OSGi-based add-on extensibility
  • We could go on, but you get the point: Roo doesn't make you compromise (ever) :-)

How It Works

In a nutshell, Roo is a lightweight console shell that you load up while developing your projects. While the Roo shell can be used to complete time-consuming operations in just one quick command, most of the time you'll just ignore Roo and go off and develop your project in your IDE or text editor.

 

As you go about editing code in your normal way, Roo keeps an eye on your project files and automatically modifies them in response to your actions. Depending on the Roo add-ons you have running, Roo can help you with different types of files. For example, Roo's JPA add-on means you can write an incredibly simple Hello.java file that looks like this:

@RooJpaActiveRecord public class Hello { private String world; }

You might wondering what good is a Java class that only has a single private field. Well, not much. But Roo fixes that by using the compiler's "mixins" feature to add extra goodies into the .class files at compile-time (not runtime). This means the Hello.class actually contains a large number of useful members, none of which you had to go to the trouble of writing - or maintaining, debugging and testing - yourself:

public class Hello { private String world {..} public String getWorld() {..} public void setWorld(String world) {..} public Long getId() {..} public void setId(Long id) {..} public Integer getVersion() {..} public void setVersion(Integer version) {..} public String toString() {..} public void persist() {..} public void remove() {..} public void flush() {..} public static Long countHellos() {..} public static Hello findHello(Long id) {..} public static List findAllHellos() {..} public static List findHelloEntries(int start, int…

Spring Security OAuth

News | Chloe Jackson | September 12, 2011 | ...

Welcome

Welcome to OAuth for Spring Security!

As you can probably deduce from its name, the purpose of this project is to provide an OAuth implementation for Spring Security. Support is provided for the implementation of OAuth providers and OAuth consumers. There is also support for two-legged OAuth (a.k.a. "Signed Fetch") and for OAuth 2.0.

Applying security to an application is not for the faint of heart, and OAuth is no exception. Before you get started, you're going to want to make sure you understand OAuth and the problem it's designed to address. There is good documentation at the OAuth site and a good illustration of how OAuth is applied. You will also want to make sure you understand how Spring and Spring Security work.

With that, you're ready to get started. You'll want to see OAuth for Spring Security in action and read a more detailed explanation in the user guide.

If you run into problems or have other questions, please use the forum.

 

Maven Artifacts

Here is the Spring Milestone Repository:

<repository>
<id>spring-milestone</id>
<name>Spring Maven MILESTONE Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>

Here is the dependency:

<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth</artifactId>
<version>1.0.0.M4</version>
</dependency>

 

Spring Social 1.0.0 Released

Releases | Craig Walls | September 08, 2011 | ...

Dear Spring Community,

We are pleased to announce general availability of Spring Social 1.0!

Spring Social is an extension of the Spring Framework that enables you to connect your Java applications to Software-as-a-Service (SaaS) providers such as Facebook and Twitter.

The big 1.0 release includes fixes for all bugs reported since 1.0.0.RC3. See the change log for all the details (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, try out the quickstart and fire up the samples. 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.

It has been an awesome year leading up to this release. We are thankful for all of the community involvement that has helped make this a useful, quality project. Special thanks go to Matt Wright, Morton Andersen-Gott, Stefan Fussenegger, Bryce Fischer, Gabriel Axel, Marc Schipperheyn, Domingo Suarez, Gordon Dickens, Arjen Poutsma, and Juergen Hoeller for their support. I've taken the opportunity to reflect on our work in the last year at our team blog.

Join me for the webinar that I'll be hosting on September 29th.

We hope you enjoy using Spring Social!

Spring Social 1.0: What a Year Makes

Engineering | Craig Walls | September 08, 2011 | ...

Show of hands: Who’s on Facebook? Any Twitter users reading this?

Almost everyone I know is on Facebook, Twitter, LinkedIn, or some other social network site. In fact, most people I know maintain a presence on multiple social network sites. According to recent numbers thrown about, Facebook has over 750 million users and Twitter has over 200 million users. Even my mom is on Facebook.

Okay, you can put your hands down now.

With such a large audience, it can be easy to find business-led motives for building applications that target those users. From a more personal, individual perspective…

Spring Data JPA 1.0.1 and 1.1.0.M1 released

News | Oliver Drotbohm | September 06, 2011 | ...

Dear Spring Community,

On the heels of the Spring Data MongoDB 1.0.0.M4 release I'd like to announce the availability of Spring Data JPA 1.0.1 and 1.1.0.M1. The point release contains a variety of bugfixes listed in the changelog. The first milestone of the 1.1 train contains these bug fixes as well of course, adds IgnoreCase as keyword for the query parser and allows users to use that version alongside Spring Data MongoDB 1.0.0.M4 as they both refer to the same version of Spring Data Commons.

Beyond that we ship a ton of bug fixes and improvements mostly around the mapping subsystem and performance. For a detailed list of tickets fixed have a look at the changelog

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

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

Learn more

Get support

Tanzu Spring Runtime 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