Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: springdoc/springdoc-openapi-gradle-plugin
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.2.0
Choose a base ref
...
head repository: springdoc/springdoc-openapi-gradle-plugin
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on May 23, 2020

  1. Update build.gradle.kts

    bnasslahsen authored May 23, 2020
    Copy the full SHA
    c7eea78 View commit details
  2. Update README.md

    bnasslahsen authored May 23, 2020
    Copy the full SHA
    6285054 View commit details

Commits on Jun 3, 2020

  1. Create FUNDING.yml

    bnasslahsen authored Jun 3, 2020
    Copy the full SHA
    4eba2f1 View commit details

Commits on Jun 7, 2020

  1. Add ability to set forkProperties on spring boot startup

    Allows for 1 of 2 options
    
    1. A static string of the properties you want to set
    
    openApi {
    	forkProperties = "-Dspring.profiles.active=special"
    }
    
    2. You can simply pass the values from whatever you sent to gradle
    gw clean generateOpenApiDocs -Dspring.profiles.active=special
    
    openApi {
    	forkProperties = System.properties
    }
    zendern committed Jun 7, 2020
    Copy the full SHA
    f9835dd View commit details
  2. Copy the full SHA
    b9ab479 View commit details
  3. Copy the full SHA
    f4c37a2 View commit details

Commits on Jun 8, 2020

  1. Tests FTW

    Wanted to make sure all the properties could be set correctly and
    used so here is a test suite to do so.
    
    So to do so I used gradle test kit to be able to run gradle task and
    inject the current version of the plugin code. And run it with all the
    different options. Validating as it goes.
    
    Some of the tests were not possible without forkProperties so that
    helped.
    
    The strategy for testing is there is a stubbed out spring boot app under
    src/test/resources. For each test case it will copy that to a temp dir,
    execute the gradle tasks for the plugin passing different argument and
    validate the results.
    zendern committed Jun 8, 2020
    Copy the full SHA
    186f442 View commit details

Commits on Jun 9, 2020

  1. Merge pull request #23 from zendern/fork-properties

    Fork properties
    bnasslahsen authored Jun 9, 2020
    Copy the full SHA
    dd19f35 View commit details
  2. project cleanup

    bnasslahsen committed Jun 9, 2020
    Copy the full SHA
    4889f72 View commit details
  3. project update

    bnasslahsen committed Jun 9, 2020
    Copy the full SHA
    17fcd3c View commit details
  4. fix tests for windows

    bnasslahsen committed Jun 9, 2020
    Copy the full SHA
    2d73400 View commit details
  5. Update README.md

    bnasslahsen authored Jun 9, 2020
    Copy the full SHA
    6c443c5 View commit details
  6. Copy the full SHA
    0047a00 View commit details
  7. Copy the full SHA
    ff77958 View commit details
  8. Update README.md

    bnasslahsen authored Jun 9, 2020
    Copy the full SHA
    79026cb View commit details
  9. Update README.md

    bnasslahsen authored Jun 9, 2020
    Copy the full SHA
    3c10bc8 View commit details

Commits on Jun 10, 2020

  1. project update

    bnasslahsen committed Jun 10, 2020
    Copy the full SHA
    519dedb View commit details
  2. project update

    bnasslahsen committed Jun 10, 2020
    Copy the full SHA
    6a01489 View commit details

Commits on Aug 19, 2020

  1. Copy the full SHA
    9214018 View commit details

Commits on Aug 23, 2020

  1. Merge pull request #30 from david-caldwell-idexx/master

    Fix incorrectly spelled parameter name in README
    bnasslahsen authored Aug 23, 2020
    Copy the full SHA
    4a5d90f View commit details

Commits on Oct 1, 2020

  1. Update .travis.yml

    bnasslahsen authored Oct 1, 2020
    Copy the full SHA
    f2a80aa View commit details

Commits on Oct 27, 2020

  1. Update .travis.yml

    bnasslahsen authored Oct 27, 2020
    Copy the full SHA
    eab0d93 View commit details
  2. Update .travis.yml

    bnasslahsen authored Oct 27, 2020
    Copy the full SHA
    1fee884 View commit details
  3. Update .travis.yml

    bnasslahsen authored Oct 27, 2020
    Copy the full SHA
    0307d6d View commit details
  4. update conf

    bnasslahsen committed Oct 27, 2020
    Copy the full SHA
    b25ccce View commit details
  5. Update .travis.yml

    bnasslahsen authored Oct 27, 2020
    Copy the full SHA
    e1ff7de View commit details

Commits on Oct 31, 2020

  1. Update README.md

    bnasslahsen authored Oct 31, 2020
    Copy the full SHA
    6af220f View commit details

Commits on Jan 11, 2021

  1. Copy the full SHA
    b3fd20c View commit details

Commits on Feb 12, 2021

  1. Merge pull request #38 from jeff-lauterbach-by/fix-37

    Support yaml urls when using GroupedOpenApi
    bnasslahsen authored Feb 12, 2021
    Copy the full SHA
    e23d952 View commit details
  2. Update .travis.yml

    bnasslahsen authored Feb 12, 2021
    Copy the full SHA
    5427bbb View commit details

Commits on Feb 15, 2021

  1. FIX: Cannot use multiple forkProperties

    Eduard Tomek committed Feb 15, 2021
    Copy the full SHA
    c57f3ed View commit details

Commits on Feb 24, 2021

  1. Merge pull request #39 from edee111/fix/multiple-fork-properties

    FIX: Cannot use multiple forkProperties
    bnasslahsen authored Feb 24, 2021
    Copy the full SHA
    79ac348 View commit details
  2. Update build.gradle.kts

    bnasslahsen authored Feb 24, 2021
    Copy the full SHA
    8f2c429 View commit details
  3. Update build.gradle.kts

    bnasslahsen authored Feb 24, 2021
    Copy the full SHA
    5e1782a View commit details

Commits on Feb 26, 2021

  1. Add ability to generate multiple OpenAPI docs

    This commit adds a new extension property `groupedApiMappings` allowing
    a user of this plugin to specify multiple mappings of api url to file
    name. This is intended for use in projects utilising the springdoc
    GroupedOpenApi feature.
    
    When the `groupedApiMappings` property is specified the single api
    properties `apiDocsUrl` and `outputFileName` are ignored. The plugin
    attempts to download each mapping in turn.
    
    Fixes #40
    jrmcdonald committed Feb 26, 2021
    Copy the full SHA
    2986e64 View commit details

Commits on Mar 21, 2021

  1. Update CONTRIBUTING.adoc

    bnasslahsen authored Mar 21, 2021
    Copy the full SHA
    82a59b6 View commit details

Commits on Mar 26, 2021

  1. Merge pull request #41 from jrmcdonald/feat/issue-40-multiple-grouped…

    …-apis
    
    Add ability to generate multiple OpenAPI docs
    bnasslahsen authored Mar 26, 2021
    Copy the full SHA
    3c3e275 View commit details
  2. Copy the full SHA
    d9b211e View commit details
  3. Update README.md

    bnasslahsen authored Mar 26, 2021
    Copy the full SHA
    22f8f46 View commit details

Commits on Apr 10, 2021

  1. Make plugin work under Gradle 7

    Gradle 7 requires that task properties be annotated to indicate how they should be
    treated when calculating what artifacts need to be rebuilt. One of the methods in
    the gradle-processes plugin was missing an annotation, which caused the plugin to
    bomb out under Gradle 7.
    
    Fix it by subclassing the task in question and annotating the method.
    sgrimm committed Apr 10, 2021
    Copy the full SHA
    f15ebd6 View commit details

Commits on Apr 12, 2021

  1. upgraded kotlin & gradle versions

    Nayan Hajratwala committed Apr 12, 2021
    Copy the full SHA
    095aa6e View commit details
  2. upgraded unit & cleaned up tests

    Nayan Hajratwala committed Apr 12, 2021
    Copy the full SHA
    7cf1334 View commit details
  3. extracted more methods to simplify tests

    Nayan Hajratwala committed Apr 12, 2021
    Copy the full SHA
    97962d5 View commit details
  4. got rid of warnings & made more idomatic

    Nayan Hajratwala committed Apr 12, 2021
    Copy the full SHA
    12ebc1b View commit details

Commits on Apr 13, 2021

  1. Merge pull request #46 from sgrimm/gradle7

    Make plugin work under Gradle 7
    bnasslahsen authored Apr 13, 2021
    Copy the full SHA
    49ea922 View commit details
  2. Merge pull request #48 from nhajratw/upgrade-gradle-kotlin

    upgraded kotlin & gradle versions
    bnasslahsen authored Apr 13, 2021
    Copy the full SHA
    4be5249 View commit details
  3. Merge pull request #49 from nhajratw/upgrade-junit

    Upgrade junit
    bnasslahsen authored Apr 13, 2021
    Copy the full SHA
    5aea7b9 View commit details
  4. code review

    bnasslahsen committed Apr 13, 2021
    Copy the full SHA
    7b3eb5c View commit details
  5. Copy the full SHA
    0c25ee6 View commit details
  6. upgraded gradle

    Nayan Hajratwala committed Apr 13, 2021
    Copy the full SHA
    c613c6c View commit details
Showing with 2,197 additions and 357 deletions.
  1. +1 −0 .github/FUNDING.yml
  2. +33 −0 .github/workflows/master.yml
  3. +7 −2 .gitignore
  4. +34 −0 .run/TEST.run.xml
  5. +0 −27 .travis.yml
  6. +2 −0 CHANGELOG.md
  7. +7 −21 CODE_OF_CONDUCT.adoc
  8. +60 −70 CONTRIBUTING.adoc
  9. +149 −37 README.md
  10. +90 −48 build.gradle.kts
  11. +732 −0 config/detekt/detekt.yml
  12. +4 −1 gradle.properties
  13. BIN gradle/wrapper/gradle-wrapper.jar
  14. +3 −1 gradle/wrapper/gradle-wrapper.properties
  15. +33 −20 gradlew
  16. +24 −19 gradlew.bat
  17. BIN libs/gradle-processes-0.5.0.jar
  18. +33 −0 main.yml
  19. +10 −0 settings.gradle.kts
  20. +7 −4 src/main/kotlin/org/springdoc/openapi/gradle/plugin/Constants.kt
  21. +50 −7 src/main/kotlin/org/springdoc/openapi/gradle/plugin/OpenApiExtension.kt
  22. +151 −59 src/main/kotlin/org/springdoc/openapi/gradle/plugin/OpenApiGeneratorTask.kt
  23. +112 −41 src/main/kotlin/org/springdoc/openapi/gradle/plugin/OpenApiGradlePlugin.kt
  24. +477 −0 src/test/kotlin/org/springdoc/openapi/gradle/plugin/OpenApiGradlePluginTest.kt
  25. +32 −0 src/test/resources/acceptance-project/.gitignore
  26. +1 −0 src/test/resources/acceptance-project/settings.gradle
  27. +31 −0 src/test/resources/acceptance-project/src/main/java/com/example/demo/DemoApplication.java
  28. +28 −0 ...test/resources/acceptance-project/src/main/java/com/example/demo/config/GroupedConfiguration.java
  29. +15 −0 .../resources/acceptance-project/src/main/java/com/example/demo/endpoints/ConditionalController.java
  30. +25 −0 ...test/resources/acceptance-project/src/main/java/com/example/demo/endpoints/GroupedController.java
  31. +17 −0 ...t/resources/acceptance-project/src/main/java/com/example/demo/endpoints/HelloWorldController.java
  32. +19 −0 ...test/resources/acceptance-project/src/main/java/com/example/demo/endpoints/ProfileController.java
  33. +1 −0 src/test/resources/acceptance-project/src/main/resources/application-different-url.properties
  34. +1 −0 src/test/resources/acceptance-project/src/main/resources/application-multiple-endpoints.properties
  35. +1 −0 ...test/resources/acceptance-project/src/main/resources/application-multiple-grouped-apis.properties
  36. +1 −0 src/test/resources/acceptance-project/src/main/resources/application-slower.properties
  37. +6 −0 src/test/resources/acceptance-project/src/main/resources/application-ssl.properties
  38. 0 src/test/resources/acceptance-project/src/main/resources/application.properties
  39. BIN src/test/resources/acceptance-project/src/main/resources/keystore.p12
  40. BIN src/test/resources/acceptance-project/truststore.p12
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
open_collective: springdoc-openapi
33 changes: 33 additions & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Test CI
on: [ push, fork ]

jobs:
TEST_ALL:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '11', '17' ]
steps:
- name: Checkout
uses: actions/checkout@v3

- uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: 🪜 Setup java ${{ matrix.java }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: temurin

- name: 🦞 chmod /gradlew
run: chmod +x ./gradlew

- name: 🔦 Test
run: ./gradlew test --info
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -76,8 +76,12 @@ out/
######################
# Gradle
######################
.gradle/
/build/
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**
!**/src/test/**

######################
# Package Files
@@ -126,6 +130,7 @@ Desktop.ini
*.*~
*~
.merge_file*
.java-version

######################
# Gradle Wrapper
34 changes: 34 additions & 0 deletions .run/TEST.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TEST" type="JUnit" factoryName="JUnit">
<module name="springdoc-openapi-gradle-plugin.test"/>
<shortenClasspath name="ARGS_FILE"/>
<useClassPathOnly/>
<extension name="coverage">
<pattern>
<option name="PATTERN" value="org.springdoc.openapi.gradle.plugin.*"/>
<option name="ENABLED" value="true"/>
</pattern>
</extension>
<extension name="net.ashald.envfile">
<option name="IS_ENABLED" value="false"/>
<option name="IS_SUBST" value="false"/>
<option name="IS_PATH_MACRO_SUPPORTED" value="false"/>
<option name="IS_IGNORE_MISSING_FILES" value="false"/>
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false"/>
<ENTRIES>
<ENTRY IS_ENABLED="true" PARSER="runconfig"/>
</ENTRIES>
</extension>
<option name="ALTERNATIVE_JRE_PATH" value="corretto-19"/>
<option name="PACKAGE_NAME" value="org.springdoc.openapi.gradle.plugin"/>
<option name="MAIN_CLASS_NAME"
value="org.springdoc.openapi.gradle.plugin.OpenApiGradlePluginTest"/>
<option name="METHOD_NAME" value=""/>
<option name="TEST_OBJECT" value="class"/>
<option name="PARAMETERS" value=""/>
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%"/>
<method v="2">
<option name="Make" enabled="true"/>
</method>
</configuration>
</component>
27 changes: 0 additions & 27 deletions .travis.yml

This file was deleted.

2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [UnReleased] -

## Added
28 changes: 7 additions & 21 deletions CODE_OF_CONDUCT.adoc
Original file line number Diff line number Diff line change
@@ -1,38 +1,24 @@
= Contributor Code of Conduct

As contributors and maintainers of this project, and in the interest of fostering an open
and welcoming community, we pledge to respect all people who contribute through reporting
issues, posting feature requests, updating documentation, submitting pull requests or
patches, and other activities.
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

We are committed to making participation in this project a harassment-free experience for
everyone, regardless of level of experience, gender, gender identity and expression,
sexual orientation, disability, personal appearance, body size, race, ethnicity, age,
religion, or nationality.
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information, such as physical or electronic addresses,
without explicit permission
* Publishing other's private information, such as physical or electronic addresses, without explicit permission
* Other unethical or unprofessional conduct
Project maintainers have the right and responsibility to remove, edit, or reject comments,
commits, code, wiki edits, issues, and other contributions that are not aligned to this
Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors
that they deem inappropriate, threatening, offensive, or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

By adopting this Code of Conduct, project maintainers commit themselves to fairly and
consistently applying these principles to every aspect of managing this project. Project
maintainers who do not follow or enforce the Code of Conduct may be permanently removed
from the project team.

This Code of Conduct applies both within project spaces and in public spaces when an
individual is representing the project or its community.
By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project.
Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.

This Code of Conduct is adapted from the
https://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at
130 changes: 60 additions & 70 deletions CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
@@ -1,110 +1,100 @@
= Contributing to springdoc-openapi

springdoc-openapi is released under the Apache 2.0 license. If you would like to contribute
something, or simply want to hack on the code this document should help you get started.


springdoc-openapi is released under the Apache 2.0 license.
If you would like to contribute something, or simply want to hack on the code this document should help you get started.

== Code of Conduct
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of
conduct]. By participating, you are expected to uphold this code.

This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of
conduct].
By participating, you are expected to uphold this code.

== Using GitHub Issues
We use GitHub issues to track bugs and enhancements. If you have a general usage question
please ask on https://stackoverflow.com[Stack Overflow]. The springdoc-openapi team and the
broader community monitor the https://stackoverflow.com/tags/springdoc[`springdoc`]

We use GitHub issues to track bugs and enhancements.
If you have a general usage question please ask on https://stackoverflow.com[Stack Overflow].
The springdoc-openapi team and the broader community monitor the https://stackoverflow.com/tags/springdoc[`springdoc`]
tag.

These are some basic guidelines before opening an issue. First of all you need to make sure, you don't create duplicate issues, and there no question already answred on https://stackoverflow.com/tags/springdoc.
These are some basic guidelines before opening an issue.
First of all you need to make sure, you don't create duplicate issues, and there no question already answred on https://stackoverflow.com/tags/springdoc.

If you are starting using springdoc-openapi, we advise you to use the last available release.

Then refer to the relevant documentation:

1. For OpenAPI specification 3:
- https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md
- https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md
2. For swagger2-annotations:
- https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations
- https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations
3. For swagger-ui configuration:
- https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md
- https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md
4. For springdoc-openapi:
- https://springdoc.github.io/springdoc-openapi-demos/
- https://springdoc.github.io/springdoc-openapi-demos/faq.html
- https://springdoc.github.io/springdoc-openapi-demos/migrating-from-springfox.html

- https://springdoc.github.io/springdoc-openapi-demos/
- https://springdoc.github.io/springdoc-openapi-demos/faq.html
- https://springdoc.github.io/springdoc-openapi-demos/migrating-from-springfox.html

If you are reporting a bug, please help to speed up problem diagnosis by providing as
much information as possible:

- You need to describe your context (the title of an issue is not enough)
- What version of spring-boot you are using?
- What modules and versions of springdoc-openapi are you using?
- What are the actual and the expected result using OpenAPI Description (yml or json)?
- Provide with a sample code (HelloController) or Test that reproduces the problem
If you are reporting a bug, please help to speed up problem diagnosis by providing as much information as possible:

- You need to describe your context (the title of an issue is not enough)
- What version of spring-boot you are using?
- What modules and versions of springdoc-openapi are you using?
- What are the actual and the expected result using OpenAPI Description (yml or json)?
- Provide with a sample code (HelloController) or Test that reproduces the problem

== Reporting Security Vulnerabilities
If you think you have found a security vulnerability in Spring Boot please *DO NOT*
disclose it publicly until we've had a chance to fix it. Please don't report security
vulnerabilities using GitHub issues, instead head over to springdoc99@gmail.com and
learn how to disclose them responsibly.

If you think you have found a security vulnerability in Spring Boot please *DO NOT*
disclose it publicly until we've had a chance to fix it.
Please don't report security vulnerabilities using GitHub issues, instead head over to support@springdoc.org and learn how to disclose them responsibly.

== Code Conventions and Housekeeping
None of these is essential for a pull request, but they will all help. They can also be
added after the original pull request but before a merge.

* We use the https://github.com/spring-io/spring-javaformat/[Spring JavaFormat] project
to apply code formatting conventions. If you use Eclipse and you follow the '`Importing
into eclipse`' instructions below you should get project specific formatting
automatically. You can also install the
https://github.com/spring-io/spring-javaformat/#intellij-idea[Spring JavaFormat IntelliJ
Plugin]

None of these is essential for a pull request, but they will all help.
They can also be added after the original pull request but before a merge.

* We use the https://github.com/spring-io/spring-javaformat/[Spring JavaFormat] project to apply code formatting conventions.
If you use Eclipse and you follow the '`Importing into eclipse`' instructions below you should get project specific formatting automatically.
You can also install the
https://github.com/spring-io/spring-javaformat/#intellij-idea[Spring JavaFormat IntelliJ
Plugin]
* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
`@author` tag identifying you, and preferably at least a paragraph on what the class is
for.
* Add the ASF license header comment to all new `.java` files (copy from existing files
in the project)
* Add yourself as an `@author` to the `.java` files that you modify substantially (more
than cosmetic changes).
`@author` tag identifying you, and preferably at least a paragraph on what the class is for.
* Add the ASF license header comment to all new `.java` files (copy from existing files in the project)
* Add yourself as an `@author` to the `.java` files that you modify substantially (more than cosmetic changes).
* Add some Javadocs.
* A few unit tests would help a lot as well -- someone has to do it.
* If no-one else is using your branch, please rebase it against the current master (or
other target branch in the main project).
* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
if you are fixing an existing issue please add `Fixes #XXXX` at the end of the commit
message (where `XXXX` is the issue number).


* If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project).
* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions], if you are fixing an existing issue please add `Fixes #XXXX` at the end of the commit message (where `XXXX` is the issue number).

== Working with the Code

If you don't have an IDE preference we would recommend that you use IntellIJ.

=== Importing into IntelliJ IDEA
If you have performed a checkout of this repository already, use "`File`" -> "`Open`" and
then select the root `build.gradle` file to import the code.

Alternatively, you can let IntellIJ IDEA checkout the code for you. Use "`File`" ->
"`New`" -> "`Project from Version Control`" and
`https://github.com/spring-projects/spring-boot` for the URL. Once the checkout has
completed, a pop-up will suggest to open the project.
If you have performed a checkout of this repository already, use "`File`" -> "`Open`" and then select the root `build.gradle` file to import the code.

Alternatively, you can let IntellIJ IDEA checkout the code for you.
Use "`File`" ->
"`New`" -> "`Project from Version Control`" and
`https://github.com/spring-projects/spring-boot` for the URL.
Once the checkout has completed, a pop-up will suggest to open the project.

==== Install the Spring Formatter plugin
If you haven't done so, install the formatter plugin so that proper formatting rules are
applied automatically when you reformat code in the IDE.

If you haven't done so, install the formatter plugin so that proper formatting rules are applied automatically when you reformat code in the IDE.

* Download the latest https://search.maven.org/search?q=g:io.spring.javaformat%20AND%20a:spring-javaformat-intellij-plugin[IntelliJ IDEA plugin].
* Select "`IntelliJ IDEA`" -> "`Preferences`".
* Select "`Plugins`".
* Select the wheel and "`Install Plugin from Disk...`".
* Select the jar file you've downloaded.


==== Import additional code style
The formatter does not cover all rules (such as order of imports) and an additional file
needs to be added.

The formatter does not cover all rules (such as order of imports) and an additional file needs to be added.

* Select "`IntelliJ IDEA`" -> "`Preferences`".
* Select "`Editor`" -> "`Code Style`".
@@ -115,18 +105,18 @@ needs to be added.

You can use Spring Boot project specific source formatting settings.


===== Install the Spring Formatter plugin

* Select "`Help`" -> "`Install New Software`".
* Add `https://dl.bintray.com/spring/javaformat-eclipse/` as a site.
* Add `https://repo.spring.io/javaformat-eclipse-update-site/` as a site.
* Install "Spring Java Format".

NOTE: The plugin is optional. Projects can be imported without the plugins, your code
changes just won't be automatically formatted.
NOTE: The plugin is optional.
Projects can be imported without the plugins, your code changes just won't be automatically formatted.

=== Building from Source
springdoc-openapi source can be built from the command line using https://maven.apache.org/[Maven] on
JDK 1.8 or above.

springdoc-openapi source can be built from the command line using https://maven.apache.org/[Maven] on JDK 1.8 or above.

The project can be built from the root directory using the standard maven command:

@@ -135,10 +125,10 @@ The project can be built from the root directory using the standard maven comman
$ ./mvn install
----


== Cloning the git repository on Windows
Some files in the git repository may exceed the Windows maximum file path (260
characters), depending on where you clone the repository. If you get `Filename too long`

Some files in the git repository may exceed the Windows maximum file path (260 characters), depending on where you clone the repository.
If you get `Filename too long`
errors, set the `core.longPaths=true` git option:

```
Loading