Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ The project is very much Work In Progress and will be published on maven central

# Release Notes
BOAT is still under development and subject to change.
## 0.15.0
* *Maven Plugin*
* Added new goal `boat:radio`; see the description in the [plugin documentation](boat-maven-plugin/README.md#boatradio).
## 0.14.12
* *Boat Scaffold*
* References to /examples/foo now are also dereferenced
Expand Down
2 changes: 1 addition & 1 deletion boat-engine/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>com.backbase.oss</groupId>
<artifactId>backbase-openapi-tools</artifactId>
<version>0.14.13-SNAPSHOT</version>
<version>0.15.0-SNAPSHOT</version>
</parent>
<artifactId>boat-engine</artifactId>
<packaging>jar</packaging>
Expand Down
99 changes: 99 additions & 0 deletions boat-maven-plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,105 @@ Usage

Or hook up to your build process by adding ```executions``` configuration.

## boat:radio

Upload specs (one of more) to Boat-Bay.

Available parameters:

artifactId (Default: ${project.artifactId})
User property: artifactId
Project ArtifactId in Boat-Bay. Defaults to ${project.artifactId}

boatBayUrl
Required: true
User property: boatBayUrl
Boat-Bay domain. eg. https://boatbay.mycompany.eu

failOnBreakingChange (Default: false)
User property: failOnBreakingChange
Fail the build for breaking changes in specs

failOnLintViolation (Default: false)
User property: failOnLintViolation
Fail the build if the spec has lint violation (Violation with Severity.MUST)


groupId (Default: ${project.groupId})
User property: groupId
Project GroupId in Boat-Bay. Defaults to ${project.groupId}

password
User property: password
Defines the password of the username which can access the Boat-Bay upload
API. Required if boat-bay APIs are protected.

portalKey
Required: true
User property: portalKey
Project portal Identifier in Boat-Bay.

radioOutput (Default:
${project.build.directory}/target/boat-radio-report)
Output directory for boat-radio report.

sourceKey
Required: true
User property: sourceKey
Project source identifier in Boat-Bay.

specs
Required: true
User property: specs
Array of spec to be uploaded. Spec fields:

key : Spec Key in Boat-Bay. Defaults to filename.lastIndexOf('-'). For
example - By default my-service-api-v3.1.4.yaml would be evaluated to
my-service-api

name : Spec Name in Boat-Bay. Defaults to filename.

inputSpec : Location of the OpenAPI spec, as URL or local file glob
pattern. If the input is a local file, the value of this property is
considered a glob pattern that must resolve to a unique file. The glob
pattern allows to express the input specification in a version neutral
way. For instance, if the actual file is my-service-api-v3.1.4.yaml the
expression could be my-service-api-v*.yaml.

username
User property: username
Defines the username which can access Boat-Bay upload API. Required if
boat-bay APIs are protected.

version (Default: ${project.version})
User property: version
Project Version in Boat-Bay. Defaults to ${project.version}


Configuration example:

```$xml
<execution>
<id>upload-specs</id>
<phase>install</phase>
<goals>
<goal>radio</goal>
</goals>
<configuration>
<sourceKey>pet-store-bom</sourceKey>
<portalKey>example</portalKey>
<boatBayUrl>https://boatbay.backbase.eu</boatBayUrl>
<username>admin</username>
<password>admin</password>
<specs>
<spec>
<inputSpec>${project.build.directory}/spec/bundled/pet-store-client-api-*.yaml</inputSpec>
</spec>
</specs>
</configuration>
</execution>
```

## boat:transform

Apply transformers to an existing specification.
Expand Down
112 changes: 111 additions & 1 deletion boat-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>com.backbase.oss</groupId>
<artifactId>backbase-openapi-tools</artifactId>
<version>0.14.13-SNAPSHOT</version>
<version>0.15.0-SNAPSHOT</version>
</parent>
<artifactId>boat-maven-plugin</artifactId>

Expand All @@ -24,6 +24,11 @@
</sonar.coverage.jacoco.xmlReportPaths>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.itReportPath>${project.basedir}/target/jacoco-it.exec</sonar.jacoco.itReportPath>
<feign-version>10.11</feign-version>
<feign-form-version>3.8.0</feign-form-version>
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
<scribejava-version>8.0.0</scribejava-version>
<swagger-annotations-version>1.5.24</swagger-annotations-version>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -140,6 +145,83 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-annotations-version}</version>
</dependency>

<!-- @Nullable annotation -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>

<!-- HTTP client: Netflix Feign -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-core</artifactId>
<version>${feign-version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-jackson</artifactId>
<version>${feign-version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-slf4j</artifactId>
<version>${feign-version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form</artifactId>
<version>${feign-form-version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
<version>${feign-version}</version>
</dependency>

<!-- JSON processing: jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
</dependency>
<dependency>
<groupId>com.github.joschi.jackson</groupId>
<artifactId>jackson-datatype-threetenbp</artifactId>
<version>${jackson-threetenbp-version}</version>
</dependency>
<dependency>
<groupId>com.github.scribejava</groupId>
<artifactId>scribejava-core</artifactId>
<version>${scribejava-version}</version>
</dependency>

<!--MockWebServer-->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
<version>4.9.1</version>
<scope>test</scope>
</dependency>


</dependencies>

<build>
Expand Down Expand Up @@ -254,6 +336,34 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>5.0.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/boat-maven-plugin-api.yaml</inputSpec>
<generatorName>java</generatorName>
<auth>false</auth>
<generateModelTests>false</generateModelTests>
<generateApiTests>false</generateApiTests>
<addTestCompileSourceRoot>false</addTestCompileSourceRoot>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
<modelPackage>com.backbase.oss.boat.bay.client.model</modelPackage>
<apiPackage>com.backbase.oss.boat.bay.client.api</apiPackage>
<library>feign</library>
<dateLibrary>java8-localdatetime</dateLibrary>
<additionalModelTypeAnnotations>@lombok.AllArgsConstructor @lombok.Builder @lombok.NoArgsConstructor</additionalModelTypeAnnotations>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Loading