2. About Us
Gunnar Hillert, SpringSource, VMware
Spring Integration
@ghillert
blog.springsource.org/author/ghillert/
Roy Clarkson, SpringSource, VMware
Spring for Android, Spring Mobile
@royclarkson
blog.springsource.org/author/rclarkson/
2
3. Agenda
History
New Tools
Process
Differences between projects
Community and how you can get involved
3
5. What is Spring?
Spring AMQP Spring Shell
Spring for Android Spring Social
Spring Batch Spring Web Flow
Spring Data Spring Web Services
Spring Framework And more …
Spring Gemfire
Spring Hadoop
Spring Integration
Spring Mobile
Spring .NET
Spring Roo
Spring Security
5
7. History
Spring Framework
• Subversion Repository
• Remember http://src.springframework.org/svn/spring-framework ?
• Ant based build
Some projects on internal Git repository (e.g. Spring Integraton)
• http://git.springsource.org
• Maven
7
9. SpringSource on GitHub
Spring Integration moved August 2011
Spring Framework moved December 2011
Spring Web Flow recently moved
All major projects now on GitHub
9
10. Benefits of GitHub
Accessible UI built around Git
Well known open source code repository
Code browsing
View history of changes, commits, and comments
Community contributions are encouraged through Pull Requests
Issue tracking
Wiki pages
10
12. Sign the Contributor License Agreement
https://support.springsource.com/spring_committer_signu
p
12
13. Fork the Repository
Navigate to github.com/SpringSource/<project>
Select the button
Select your local GitHub account as the destination
13
14. Local Development Environment
$ git clone git@github.com:<username>/<project>.git
$ cd <project>
$ git remote add upstream git@github.com:SpringSource/<project>.git
$ git fetch --all
$ git remote show
$ git branch -a
14
15. Submitting a Pull Request
Create a new topic branch based on issue number
• $ git checkout -b <project>-123
Complete your changes
Push your branch to origin
• $ git push origin <project>-123
Select when you are ready to submit your code to the
project lead for review
Please note that all pull requests must be able to be cleanly merged
with the upstream master’s current state
Recommended: Rebase with Master
15
17. Reviewing Code via Pull Requests
Comment on each commit or on individual lines
Markdown supported
Comments trigger notifications (Can address individual users)
Pull Requests can be comprised of multiple commits
Compare code between commits or branches
GitHub Pull Request = Code + Issue + Code Comments
Contributors and Committers follow same process!
17
18. More Information
Spring Framework Contributor Guidelines
https://github.com/SpringSource/spring-framework/wiki/Contributor-guidelines
Spring Integration Contributor Guidelines
https://github.com/SpringSource/spring-integration/wiki/Contributor-Guidelines
GitHub Help: Fork a Repo
https://help.github.com/articles/fork-a-repo
GitHub Help: Using Pull Requests
https://help.github.com/articles/using-pull-requests
18
19. More Information
Pro Git: Contributing to a Project
http://git-scm.com/book/ch5-2.html
Pro Git: Rebasing
http://git-scm.com/book/ch3-6.html
McCullough and Berglund on Mastering Git
http://shop.oreilly.com/product/0636920017462.do
19
22. Code Reviews using Gerrit
Originally developed at Google
http://code.google.com/p/gerrit/
Authorized Gerrit users can trigger merges
Good for larger teams
Recommendation: Try GitHub first, use Gerrit if needed
22
25. Building Spring
$ git clone git://github.com/SpringSource/spring-framework.git
$ cd spring-framework
$ ./gradlew build
25
26. Projects using Gradle
Spring Framework (since Jan 2012)
Spring Integration (since Oct 2010)
Spring AMQP (since Jun 2012)
Spring for Android (since May 2011)
Spring Mobile (since Nov 2010)
Spring Social (since Oct 2010)
And more …
26
27. Gradle Details
Version 1.0 released 12-June-2012
Version 1.1-rc-1 released 24-July-2012
Gradle Wrapper
Maven-like defaults
More concise than Maven
Scripting capabilities like Ant
Supports multi-project builds
Dependency management based on Apache Ivy
Build scripts written in Groovy
27
28. Common Gradle Tasks for Spring Projects
clean – Deletes the build directory
build – Assembles and tests this project
dist – Creates Zip with Jars, Reference + Api Doc, Schema Files
api – Generates aggregated Javadoc API documentation
reference – Generates HTML and PDF reference documentation
install – Install archives artifacts into local .m2 cache
sonarAnalyze – Gather Sonar Metrics
eclipse – Generates all Eclipse files
idea – Generates IDEA project files
28
29. Gradle IDE Support
IntelliJ IDEA 11
http://www.jetbrains.com/idea/webhelp/gradle-2.html
http://confluence.jetbrains.com/display/IDEADEV/News
SpringSource Tool Suite
Support since 2.7.0
Using 2.9.x works great
Import Gradle projects directly into STS
http://static.springsource.org/sts/docs/latest/reference/html/gradle
29
33. SpringSource Artifactory
Replaces previous Maven
repositories
GA releases still available in
Maven Central
Unified search
Put a watch on anything
License information
Transitive resolution
Release process
33
34. SpringSource Repository
If you are using…
maven.springframework.org
You should update to…
repo.springsource.org
34
37. More Information
Spring Repository FAQ
https://github.com/SpringSource/spring-framework/wiki/SpringSource-repository-
FAQ
Downloading Spring Artifacts
https://github.com/SpringSource/spring-framework/wiki/Downloading-Spring-
artifacts
37
41. Found a bug or miss features?
Submit bug reports
Request features
Vote for issues
Provide feedback
Track status
Watch issues
41
42. The Lifecycle of an Issue
Lifecycle Phases
Unassigned
Waiting For Triage
Triaged
In Progress
Resolved
Closed
More information:
https://github.com/SpringSource/spring-framework/wiki/The-Lifecycle-of-an-Issue
42