This forum is now a read-only archive. All commenting, posting, registration services have been turned off. Those needing community support and/or wanting to ask questions should refer to the Tag/Forum map, and to http://spring.io/questions for a curated list of stackoverflow tags that Pivotal engineers, and the community, monitor.

AnnouncementAnnouncement Module

Collapse

No announcement yet.

Why port spring-framework, instead of including the pre-existing jars?Page Title Module

Why port spring-framework, instead of including the pre-existing jars?

May 15th, 2012, 04:51 PM

I understand this seems like very obvious a question. Still, I don't get it right now, so sorry ...

What I wonder is: why make the effort and port some functionality that is existing in spring-framework already?
Are there certain calls / methods which are simply not supported on Android?
Apparently, the same thing works for spring-social, so why not for 'core' as well?

In an attempt of finding out myself, I just included spring-framework into one of my Android apps, which seems to work seamlessly, but confuses me even more.

It's possible things will work, depending on which version of android on which you are running. However, Spring Framework was obviously not designed with that in mind. There are a number of classes and methods that are not available in Android, particularly older versions. The javax.xml package specifically comes to mind. Spring OXM isn't compatible, so we introduced support for the Simple XML library. The Http Components client was not available in Spring Framework when Spring Android was first released. Spring Framework now has support for the 4.1 client, but Android is still running on a version of 4.0, and there are some differences in the API. The Android team is progressing the standard J2SE facilities, but there are some features/bugs in Android that had to be addressed. Spring Framework does not support gzip encoding, which Spring for Android does. Lastly the dependency tree for Spring Framework can be quite large, and we wanted to eliminate as much of that as possible for use on Android, because many Android developers are not using Maven. This is just what I'm recalling quickly, so this list is not exhaustive. Hope that helps.

Comment

To speak to Spring Social directly, since you mentioned that. Craig Walls (Spring Social project lead) and I spent a lot of time testing and addressing compatibility on Android. This was by design, because we saw the value in supporting spring social on Android.