Spring at China Scale: Alibaba Group (Alipay, TaoBao, and TMall)

Engineering | Josh Long | March 04, 2013 | ...

So What Does It Take to Operate at China Scale?

Some of the companies of the Alibaba group

The challenges inherent to building enterprise applications that meet China-scale demand are unparalleled. One exemplary Chinese organization using Spring heavily to solve very unique challenges is the Alibaba group. Alibaba is itself an online auction site, like eBay in the west. The Alibaba group in turn owns a few other online service companies, like Alipay (a secure transaction processor, like PayPal in the west), TaoBao (a comparison shopping engine, like Shopzilla in the west), and TMall (an e-tailer, exposing the catalogues of merchants, like Amazon in the west).

From the InfoQ article, "on 11 November, 2012 (the Double Sticks promotion day), Tmall and Taobao witnessed 147 million user visits, purchases of 30 million people and nearly 100 million paid orders. At 0:00, more than 10 million users were concurrently online." The "double sticks promotion day" is celebrated as a sort of day to honor the single people out there. People make blind-dates, attend speed-dating events, and - somewhat like cyber monday shopping in the US - look for good deals from merchants. TaoBao reported USD $3 billion dollars for a single 24 hour period

This Week in Spring - Feb 26th, 2013

Engineering | Josh Long | February 27, 2013 | ...

Welcome to another installment of This Week in Spring! It's been an exciting two weeks for Hadoop content - Hadoop enthusiasts should check last week's post for an HD quality replay of Building Big Data Pipelines with Spring Hadoop from SpringOne 2GX 2012.

  1. Costin Leau has announced that Spring for Apache Hadoop 1.0 has gone GA!
    	This marks the end of a year in development from the time of the first betas.  There's a lot in this release. For  more information, check out  the blog. </LI>
    
    <LI>Did you guys hear about yesterday's announcement from <A href="http://www.greenplum.com/blog/topics/hadoop/introducing-pivotal-hd">about Pivotal HD, a Hadoop distribution which performs better than the competition, provides a true SQL interface, and features extra tools</a> (like an admin console and an installation, configuration and management facility) and is bundled with Spring for Apache Hadoop? 
    

    The release was in the news a lot yesterday. Here's a nice post on GigaOm, another on
    CIO , and yet another on CRN and another still on Silicon Angle

Spring for Apache Hadoop 1.0 Goes GA

Engineering | Costin Leau | February 26, 2013 | ...

We are happy to announce the first GA release (1.0) for Spring for Apache Hadoop, almost one year to the date from the release of its first milestone release. During that time we have incorporated a great deal of your feedback to drive the road-map, so thanks everyone from the community who have helped! While new features have been added over the year, the goal of Spring for Apache Hadoop remains the same, to simplify the development of Hadoop based applications.

Download it now, or view the maven artifacts here.

Simplified Programming Model & Consistency

What we have observed is that using the standard out of the box tools that come with Hadoop, you an easily end up with Hadoop applications that are poorly structured collection of command line utilities, scripts and pieces of code stiched together. The different origins of the various projects in the Hadoop ecosystem, such as Hive and Pig focusing on declarative usage or Cascading and HBase for a programmatic angle, have led to different approaches to configuration and API designs.

 

Spring for Apache Hadoop provides a consistent programming and configuration…

This Week in Spring - Feb 19th, 2013

Engineering | Josh Long | February 19, 2013 | ...

Welcome back to another installment of This Week in Spring! This week I'm in Atlanta, GA with a few other SpringSource colleagues talking to developers at the DevNexus Java conference and - tomorrow - speaking at the Atlanta Spring User Group. This show is bigger and better than ever this year! I love the energy and community here.

If you're in Atlanta, GA, drop by the eHire labs (see the link above for the address) tomorrow night for the Spring User Group and we'll talk about REST, Spring MVC, Spring for Android, Spring Mobile, and more! I look forward to seeing you.

As usual, though, we've got a lot to cover, so let's get to it!

  1. The Spring Data release train "Arora" is now avialable, a synchronized, tested release of all Spring Data sub projects - check it out now!
  2. Craig Walls has announced that Spring Social 1.1.0.M2 has been released ! The new release incorporates tighter integration with Spring Security and a slew of new features.
  3. Jeremy Grelle has announced When.js 1.8.0 which is cujojs's lightweight Promises/A implementation.
  4. <LI>  Gary Russell <a href  = "http://www.springsource.org/node/3813">has announced Spring Integration 3.0.0 M1</a>. 
     There are no major new features in this first milestone, it is mainly refactoring, removing deprecations, etc. Browse the documentation 'what's new' and the release notes for more information.
    
    		 
    
  5. Register now to talk with Sam Brannan and Rossen Stoyanchev on Feb 21st in the Webinar: Testing Web Applications with Spring 3.2
  6. New replays from SpringOne2012 - talks from the Data and Integration track talks starting to hit YouTube. Check out Gary Russell's Monitoring and Managing Spring Integration Part 2, and Hadoop / Big Data enthusiasts shouldn't miss Costin's talk How to build Big Data Pipelines for Hadoop using OSS.
  7. As a bonus session this week, we've also released Spring Data REST: Easily export JPA entities directly to the web.
  8. Krishna's blog has a nice post on using CAS (single signon using Jasig) with Spring Security.
  9. Sergei Sizov has put together a nice post on using Spring Security and HTTP Basic authentication.
  10. The Lucky Ryan blog has a very nice post introducing HDIV - which can be used to prevent cross site request forgery (CSRF), remove the ability to alter non-editable data (hidden fields, params…) and even has options to limit characters globally across form fields - and explaining how to use HDIV with Spring MVC.
  11. Your remoting layer (the layer that's exposed over the network) might simply surface the domain model objects from your services layer. Often, however, the object sent across the wire is a slightly different version of the data used by the service. Perhaps fields are omitted because they contain too much data. Perhaps extra fields are added to communicate metadata about the service itself. Perhaps you simply want to flatten two different types into a single object for ease-of-transport. Whatever the reason, the common pattern (or anti-pattern) to handling this is a DTO (data transfer object). We had these before with EJBs and DCOM and CORBA. Now we have them with REST. If you find you have to have DTOs, the jtransfo library introduced in this post seems like it might be helpful in reducing the tedious adapters from DTO to domain object. The post explains how to use JTransfo to automatically handle adapting domain objects to DTOs.
  12. The Fahd.blog blog has a nice introduction to Spring Batch's RetryTemplate. This is a very powerful component of Spring Batch that doesn't get enough love, so I am glad to see this post!
  13. The Learn and Shine blog has a nice post introducing how to use Spring MVC to render XSLT views.
  14. The Java Ninja Chronicles By Norris Shelton, Jr blog has a very concise post on how he took the first steps in using Spring's Java configuration style to make short work of loading properties from an exotic source.

This Week in Spring - Feb 12th, 2013

Engineering | Josh Long | February 12, 2013 | ...

Welcome back to another installment of This Week in Spring ! As usual, we've got a lot to cover, so let's get to it!

  1. Dave Syer is taking his SpringOne2GX talk to an online audience on Feb 14th, 2013 Webinar - When and Why Would I Use OAuth2?
  2. Dream team Sam Brannen (Swiftmind) & Rossen Stoyanchev (SpringSource) join forces on Feb 21st, 2013 for a Webinar: Testing Web Applications with Spring 3.2
  3. New SpringOne2GX 2012 talks released to YouTube in HD! Ten Great Reasons to Virtualize Your Java Apps, and What's New in CloudFoundry.
  4. Our pal Boris Lam is back, this time with two posts on how to use Spring Data MongoDB and JSF together.
  5. The PluralSight blog has a video introduction to Spring MVC interceptors. This video is an excerpt from a full-fledged video course.
    </LI>
    <LI>  Cool demonstration: <A href="http://www.youtube.com/watch?v=LTxd0PGDaMI&list=UU7yfnfvEUlXUIfm8rGLwZdA&index=1">Spring Insight plugins for Spring Integration and RabbitMQ</a>. 
    
  6. The syntx blog has a nice post on how to add HTTP Basic authentication using Spring Security to Spring MVC-secured resources.
  7. Krishna's Blog has a nice post introducing unit-testing the Spring Security layer with the InMemoryDaoImpl.
  8. <LI>  You know, I was looking for something like this just the other day!  <EM>Mark's Blog </EM> has a nice post on the <A href="http://markchensblog.blogspot.com/2013/02/how-spring-mvc-works.html"> workflow of the various objects in servicing an incoming HTTP request in Spring MVC</a>.  Is this stuff you could easily figure out by sticking a breakpoint in a controller and just looking at the call stack…

This Week in Spring - Feb 5th, 2013

Engineering | Josh Long | February 06, 2013 | ...

Welcome back to another installment of This Week in Spring --

There's some great video content is available online this week, so be sure to check the content out. Also, you asked and we are delivering - we now maintain an single index page for all SpringOne2GX recordings along with the link to the InfoQ page for their recordings of the event. On with the roundup!

  1. Rossen Stoyanchev has announced the 2.4M1 and 2.3.2 releases of Spring Web Flow.
  2. Dream team Sam Brannen (Swiftmind) & Rossen Stoyanchev (SpringSource) join forces on Feb 21st, 2013 for a Webinar: Testing Web Applications with Spring 3.2
  3. Dave Syer is taking his SpringOne2GX talk to an online audience on Feb 14th, 2013 When and Why Would I Use OAuth2?
  4. Jeremy Grelle's talk from SpringOne2GX 2012 introducing practical patterns for asynchronous, push-enabled applications is now available online.
  5. Craig Walls' presentation from SpringOne2GX 2012 Introducing Spring Social is now available on YouTube in HD.
  6. Craig Walls' Javascript - focused talk from SpringOne2GX 2012 Client Side UI Smackdown, is now available on YouTube in HD.
  7. Over on InfoQ China (where the content is in Chinese...), blogger Ding Xuefeng has done a marvelous job shining a light on some of the various Spring sub-projects, including Spring Data, Spring Batch, Spring Integration. Definitely worth a read!
  8. The slides from Spring framework committer Sam Brannen's talk on Spring Framework 3.2 are available, and make for a fascinating read.
  9. This blog explains how to lookup and use a JavaMail Session as configured in Tomcat's JNDI from a Spring application.
  10. The softtech blog has a code-heavy post introducing how to create a one-to-many relationship using Spring Data JPA.
  11. <LI>The <EM>Guident</EM> blog has a nice <a href="http://blog.guident.com/2013/01/spring-into-apache-hadoop/">post introducing  Spring Data Hadoop's support for HBase.</a> </LI>
    
    <LI> The <EM>Dinesh on Java</EM> blog has a nice post on  <A href="http://www.dineshonjava.com/2013/01/spring-data…

This Week in Spring - January 29th, 2013

Engineering | Josh Long | January 29, 2013 | ...

Welcome back to another installation of This Week in Spring ! I've been visiting developers and companies in India, China, and Japan. It's been an exciting time to see what these emerging and powerful countries are doing with open source and with Spring, in particular! Of course, stay tuned to the SpringSource blog in the coming weeks some very cool examples and details!

In the meantime, as usual, we've got quite a bit of news to cover this week, including more news on the Spring 4 roadmap announcement from last week. If you want to get the absolute latest, check out the Spring 3.2 GA webinar replay on YouTube, where Spring Framework 4.0 is covered a bit toward the end. Let's get to it!

  1. Charles Humble at InfoQ's done a nice interview with Juergen Hoeller and write up of the Spring 4 announcement .
  2. The Spring Integration 2.2.1 and 2.1.5 maintenance releases are now generally available.
  3. 		<LI>Spring HATEOAS 0.4 was <a href="http://www.springsource.org/node/3796">released</a>, adding Jackson and HAL support.</LI>
    
  4. Two new SpringOne 2GX 2012 Replays have been released to our YouTube Channel: Tooling for the Javascript Era, An Introduction to Broadleaf Commerce
  5. We've launched a page to centralize all the SpringOne2GX 2012 recordings, check it out!
  6. Chris Beams, Gunnar Hillert, and Rossen Stoyanchev were recorded in well-received presentation Introducing WebSockets at SpringOne2GX 2012, now online on InfoQ!
  7. Blogger Ilias Tsagklis from the Java Code Geeks blog also has a nice post on the Spring 4.0 roadmap announcement.
  8. Chris Beams has announced that Spring 3.1.4 has been released!
  9. Marty Pitt has created a very nice extension - he's calling it BakeHouse- for Spring web applications that preprocesses web artifacts for consumption in your web application at application startup. There are various kinds of pre processing possible: This is a very cool extension, Marty! It's like what I always wanted things like JAWR to be! The thing I most like about it, though? The fluid use of Spring Java @Configuration classes! Really slick and productive!
  10. The Japanese portal Public Key has a nice writeup of the announced roadmap for Spring 4.0
  11. The Just Enough Architecture blog has a nice post on using ActiveMQ, Spring Integration and MongoDB together - cool! I might've used Spring Batch's flat file reading support instead of a custom one out of the box, though, overall, this is an awesome post!
  12. Blogger madhav has a nice look at the code to support table and class inheritance using Spring Data JPA. That said, it's really hard to read as the code is not indented at all!
  13. Noushin Bashir has put together a nice post on how to configure ActiveMQ with SSL and then connect to it from Spring.
  14. 	<LI>  Allard Buijze over at Trifork has announced <a href= "http://blog.trifork.nl/2013/01/22/axon-framework-2-0-released/"> version 2.0 of…

Groovy 2.1 released

Engineering | Guillaume Laforge | January 25, 2013 | ...

The Groovy team is pleased to announce the release of Groovy 2.1.0.

With over 1.7 million downloads in 2012, a strong ecosystem of successful projects like Grails, Gradle, Spock or Griffon built on Groovy, the Groovy programming language continues its development and adoption, refines existing features and evolves new ones.

In this new release, Groovy 2.1:

  • offers full support for the JDK 7 “invoke dynamic” bytecode instruction and API,
  • goes beyond conventional static type checking capabilities with a special annotation to assist with documentation and type safety of Domain-Specific Languages and adds static type checker extensions,
  • provides additional compilation customization options,
  • features a meta-annotation facility for combining annotations elegantly,
  • and provides various other enhancements and minor improvements.

Please read all the details about the new features and improvements in the Groovy 2.1 release notes document.

You can download Groovy 2.1.0 from the Download area, and have a look at the JIRA tickets we worked on.

The Groovy team is looking…

Simple templates for the Scripted Editor

Engineering | Andrew Eisenberg | January 23, 2013 | ...

We recently released 0.3 of the Scripted Editor, and we are making fast progress towards our next release. One of the major goals of Scripted Editor 0.4 is extensibility and part of the extensibility story is a simple, extensible templating mechanism (the other part is a powerful plugin model, which will be described in a future blog post). In this post, I will introduce custom code completions and templates for the Scripted editor.

Sublime Text is an excellent, general purpose editor. It is highly configurable and many users of Scripted also use Sublime. Because of this, we want to make extensions to Sublime compatible with Scripted where it makes sense. One of these areas is sublime-completions files. These files specify lists of completions for a given content type (typically mapped to file…

This week in Spring - 22 January, 2013

Engineering | Josh Long | January 21, 2013 | ...

Welcome to another installment of This Week in Spring! As usual, we've got a lot to cover, so let's get to it!

    		  <LI> The future is now and it has a name and version - <EM>Spring 4.0</EM>. <a href="http://blog.springsource.org/2013/01/16/next-stop-spring-framework-4-0/">Juergen Hoeller outlined the proposed next iteration of Spring, Spring Framework 4.0</a>!  </LI>	
    		
        <li>If you missed the live webinar of the Spring Framework 3.2 GA release, <a href="http://www.youtube.com/watch?v=fb5YG2W1srA">check out the replay</a>, which also has a brief discussion Spring Framework 4.0.</li>
        <li> Costin Leau has announced that <a href="http://www.springsource.org/node/3787">Spring for Apache Hadoop 1.…

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