SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Kürzlich hochgeladen (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

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

Hinweis der Redaktion

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