SlideShare una empresa de Scribd logo
1 de 47
Spring Projects Infrastructure
Processes, Source Control, Builds, Community, and more!




                                                          © 2009 VMware Inc. All rights reserved
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
Agenda
   History
   New Tools
   Process
   Differences between projects
   Community and how you can get involved




                                             3
4
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
6
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
github.com/SpringSource
                          8
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
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
Contributing




               11
Sign the Contributor License Agreement




 https://support.springsource.com/spring_committer_signu
 p
                                                           12
Fork the Repository

 Navigate to github.com/SpringSource/<project>
 Select the         button
 Select your local GitHub account as the destination




                                                        13
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
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
Reviewing Code via Pull Requests




                                   16
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
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
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
Code Reviews @ Cloud Foundry




                               20
Code Reviews using Gerrit




                            21
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
23
Gradle Hello World




task hello {
        doLast {
               println 'Hello world!'
        }
}




                                        24
Building Spring




$ git clone git://github.com/SpringSource/spring-framework.git
$ cd spring-framework
$ ./gradlew build




                                                                 25
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
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
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
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
build.springsource.org
                         30
Bamboo Features

   Continuous Integration
   Highly Configurable
   Instant Feedback
   Continuous Deployment
   Release Management
   JIRA Integration
   Plugin Support




                             31
repo.springsource.org
                        32
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
SpringSource Repository




                If you are using…
     maven.springframework.org

           You should update to…
          repo.springsource.org

                                    34
SpringSource Repository


 Local Repositories
 • libs-snapshot-local
 • libs-milestone-local
 • libs-release-local
 Virtual Repositories
 • snapshot
 • milestone
 • release
 Virtual Repositories with Third-Party Support
 • libs-snapshot
 • libs-milestone
 • libs-release


                                                  35
SpringSource Repository


<repository>
   <id>springsource-release</id>
   <name>SpringSource Release Repository</name>
   <url>http://repo.springsource.org/release</url>
</repository>

<repository>
   <id>springsource-milestone</id>
   <name>SpringSource Milestone Repository</name>
   <url>http://repo.springsource.org/milestone</url>
</repository>

<repository>
   <id>springsource-snapshot</id>
   <name>SpringSource Snapshot Repository</name>
   <url>http://repo.springsource.org/snapshot</url>
</repository>


                                                       36
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
sonar.springsource.org
                         38
Collecting Metrics using Sonar




                                 39
jira.springsource.org
                        40
Found a bug or miss features?

   Submit bug reports
   Request features
   Vote for issues
   Provide feedback
   Track status
   Watch issues




                                41
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
Other Pieces in the Toolbox




                              43
News and Announcements


   SpringSource blog: http://blog.springsource.org
   News: http://www.springsource.org
   Twitter: http://twitter.com/springsource
   Twitter: http://twitter.com/springframework




                                                      44
Interact with the Community




 Forum: http://forum.springsource.org
 Stackoverflow: http://www.springsource.org




                                               45
Jürgenization




                46
Questions??



 Thanks!!




              47

Más contenido relacionado

La actualidad más candente

Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadWASdev Community
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearchErhwen Kuo
 
04 integrate entityframework
04 integrate entityframework04 integrate entityframework
04 integrate entityframeworkErhwen Kuo
 
01 startoff angularjs
01 startoff angularjs01 startoff angularjs
01 startoff angularjsErhwen Kuo
 
02 integrate highchart
02 integrate highchart02 integrate highchart
02 integrate highchartErhwen Kuo
 
Using ActiveObjects in Atlassian Plugins
Using ActiveObjects in Atlassian PluginsUsing ActiveObjects in Atlassian Plugins
Using ActiveObjects in Atlassian PluginsAtlassian
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
 
Skillwise - Advanced web application development
Skillwise - Advanced web application developmentSkillwise - Advanced web application development
Skillwise - Advanced web application developmentSkillwise Group
 
05 integrate redis
05 integrate redis05 integrate redis
05 integrate redisErhwen Kuo
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot IntroductionJeevesh Pandey
 
ASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsLukasz Lysik
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with SpringJoshua Long
 
All your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects PluginAll your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects PluginSamuel Le Berrigaud
 
Dropwizard Internals
Dropwizard InternalsDropwizard Internals
Dropwizard Internalscarlo-rtr
 
Inside Azure Diagnostics
Inside Azure DiagnosticsInside Azure Diagnostics
Inside Azure DiagnosticsMichael Collier
 
Spring Batch Workshop (advanced)
Spring Batch Workshop (advanced)Spring Batch Workshop (advanced)
Spring Batch Workshop (advanced)lyonjug
 

La actualidad más candente (19)

Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 Instead
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
04 integrate entityframework
04 integrate entityframework04 integrate entityframework
04 integrate entityframework
 
01 startoff angularjs
01 startoff angularjs01 startoff angularjs
01 startoff angularjs
 
02 integrate highchart
02 integrate highchart02 integrate highchart
02 integrate highchart
 
Using ActiveObjects in Atlassian Plugins
Using ActiveObjects in Atlassian PluginsUsing ActiveObjects in Atlassian Plugins
Using ActiveObjects in Atlassian Plugins
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
 
Skillwise - Advanced web application development
Skillwise - Advanced web application developmentSkillwise - Advanced web application development
Skillwise - Advanced web application development
 
05 integrate redis
05 integrate redis05 integrate redis
05 integrate redis
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
ASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline Internals
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
All your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects PluginAll your data belong to us - The Active Objects Plugin
All your data belong to us - The Active Objects Plugin
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
Dropwizard Internals
Dropwizard InternalsDropwizard Internals
Dropwizard Internals
 
Inside Azure Diagnostics
Inside Azure DiagnosticsInside Azure Diagnostics
Inside Azure Diagnostics
 
Mule 2.2.1-users-guide
Mule 2.2.1-users-guideMule 2.2.1-users-guide
Mule 2.2.1-users-guide
 
Spring Batch Workshop (advanced)
Spring Batch Workshop (advanced)Spring Batch Workshop (advanced)
Spring Batch Workshop (advanced)
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 

Similar a Spring Projects Infrastructure: Processes, Source Control, Builds, Community

Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects InfrastructureRoy Clarkson
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesMassimo Menichinelli
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...OpenCity Community
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedHoward Greenberg
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubScott Graham
 
Assign, Commit, and Review
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and ReviewZhongyue Luo
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHubCuong Ngo
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024Cloud Native NoVA
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Vadym Kazulkin
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentMatthew Farina
 

Similar a Spring Projects Infrastructure: Processes, Source Control, Builds, Community (20)

Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: Files
 
Giddy Up on GitHub
Giddy Up on GitHubGiddy Up on GitHub
Giddy Up on GitHub
 
Git_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdfGit_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdf
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Migrating To GitHub
Migrating To GitHub  Migrating To GitHub
Migrating To GitHub
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Assign, Commit, and Review
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and Review
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
 
GitHub for partners
GitHub for partnersGitHub for partners
GitHub for partners
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 

Más de Gunnar Hillert

High Precision GPS Positioning for Spring Developers
High Precision GPS Positioning for Spring DevelopersHigh Precision GPS Positioning for Spring Developers
High Precision GPS Positioning for Spring DevelopersGunnar Hillert
 
Migrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersGunnar Hillert
 
s2gx2015 who needs batch
s2gx2015 who needs batchs2gx2015 who needs batch
s2gx2015 who needs batchGunnar Hillert
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsGunnar Hillert
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
S2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring IntegrationS2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring IntegrationGunnar Hillert
 
S2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring BatchS2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring BatchGunnar Hillert
 
Cloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersGunnar Hillert
 
jRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServicejRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServiceGunnar Hillert
 

Más de Gunnar Hillert (9)

High Precision GPS Positioning for Spring Developers
High Precision GPS Positioning for Spring DevelopersHigh Precision GPS Positioning for Spring Developers
High Precision GPS Positioning for Spring Developers
 
Migrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring Developers
 
s2gx2015 who needs batch
s2gx2015 who needs batchs2gx2015 who needs batch
s2gx2015 who needs batch
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSockets
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
S2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring IntegrationS2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring Integration
 
S2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring BatchS2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring Batch
 
Cloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring Developers
 
jRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServicejRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting Service
 

Último

QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 

Último (20)

QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 

Spring Projects Infrastructure: Processes, Source Control, Builds, Community

  • 1. Spring Projects Infrastructure Processes, Source Control, Builds, Community, and more! © 2009 VMware Inc. All rights reserved
  • 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
  • 4. 4
  • 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
  • 6. 6
  • 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
  • 16. Reviewing Code via Pull Requests 16
  • 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
  • 20. Code Reviews @ Cloud Foundry 20
  • 21. Code Reviews using Gerrit 21
  • 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
  • 23. 23
  • 24. Gradle Hello World task hello { doLast { println 'Hello world!' } } 24
  • 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
  • 31. Bamboo Features  Continuous Integration  Highly Configurable  Instant Feedback  Continuous Deployment  Release Management  JIRA Integration  Plugin Support 31
  • 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
  • 35. SpringSource Repository  Local Repositories • libs-snapshot-local • libs-milestone-local • libs-release-local  Virtual Repositories • snapshot • milestone • release  Virtual Repositories with Third-Party Support • libs-snapshot • libs-milestone • libs-release 35
  • 36. SpringSource Repository <repository> <id>springsource-release</id> <name>SpringSource Release Repository</name> <url>http://repo.springsource.org/release</url> </repository> <repository> <id>springsource-milestone</id> <name>SpringSource Milestone Repository</name> <url>http://repo.springsource.org/milestone</url> </repository> <repository> <id>springsource-snapshot</id> <name>SpringSource Snapshot Repository</name> <url>http://repo.springsource.org/snapshot</url> </repository> 36
  • 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
  • 43. Other Pieces in the Toolbox 43
  • 44. News and Announcements  SpringSource blog: http://blog.springsource.org  News: http://www.springsource.org  Twitter: http://twitter.com/springsource  Twitter: http://twitter.com/springframework 44
  • 45. Interact with the Community  Forum: http://forum.springsource.org  Stackoverflow: http://www.springsource.org 45

Notas del editor

  1. Mentioning how distributed the teams are US, across Europe, Australia