Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5a80e66
Cleaned branch
sophiejanssens Feb 18, 2021
63d9c83
Fix: typo in description
sophiejanssens Feb 22, 2021
3658b69
Fix: hard coded /
sophiejanssens Feb 22, 2021
bf65b87
Fix: made comment javadoc
sophiejanssens Mar 11, 2021
5a87ba2
[version bump] new dev version
actions-user Mar 31, 2021
358394b
fix: got rid of client tests causing an issue, these are also already…
sophiejanssens Apr 1, 2021
e1e81d0
Use extension to inject Java code, like custom validations.
pa314159 Apr 3, 2021
a862b73
Merge pull request #183 from Backbase/issues/directory-inputSpec-#179
dhananjay12 Apr 6, 2021
f70b13b
Added TransformMojo to apply a chain of transformers on an existing spec
pa314159 Apr 3, 2021
247d726
Our policies state:
torrespro Feb 19, 2021
542dae3
Fix: add BindingResult param to api interface template for spring mvc
sophiejanssens Apr 1, 2021
8f1c8b0
fix: got rid of space before changes in template and added configuart…
sophiejanssens Apr 8, 2021
ceaffb9
fix: added ; to template
sophiejanssens Apr 12, 2021
28cf475
fix: Fail on warning test in in LintMojoTests now ignores rule MOO12 …
sophiejanssens Apr 12, 2021
fd2b562
fix: Added test for change
sophiejanssens Apr 12, 2021
dd79060
fix: renamed binding result param to avoid naming duplication in methods
sophiejanssens Apr 12, 2021
5f7eb29
fix: renamed binding result param in test
sophiejanssens Apr 12, 2021
56045c0
fix: Hopefully clarified readme description for addBindingResult
sophiejanssens Apr 13, 2021
49b2804
Merge pull request #195 from Backbase/feature/transform-mojo
bartveenstra Apr 22, 2021
8a66c7d
Feature: maven artifact input for generate and lint goals
sophiejanssens Apr 26, 2021
aea6d22
Fix: added tests for artifact input
sophiejanssens Apr 28, 2021
e38f5f6
Fix: added tests for artifact input
sophiejanssens Apr 29, 2021
efec6fd
Fix: added apis for it tests
sophiejanssens Apr 29, 2021
bb51413
Fix: added unit tests for coverage
sophiejanssens Apr 30, 2021
a3050e9
Fix: reduced code smells
sophiejanssens Apr 30, 2021
43ce0d2
Fix: reduced code smells
sophiejanssens May 3, 2021
7d6c72b
Fix: created test for ExportBom's use of artifact resolver
sophiejanssens May 10, 2021
7824ca8
Fix: code smells
sophiejanssens May 10, 2021
5bc3389
Merge pull request #197 from Backbase/feature/input-maven-artifact
bartveenstra May 11, 2021
3d509d8
Added `createApiComponent` configuration.
pa314159 May 3, 2021
5db3ace
Added "useProtectedFields" configuration
pa314159 May 5, 2021
0d66367
Log multiple input specs
pa314159 May 7, 2021
6f00860
Updated tests
pa314159 May 10, 2021
47cbe0a
Merge pull request #199 from Backbase/feature/api-client-bean
bartveenstra May 17, 2021
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
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ 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.14.3

* *Maven Plugin*
* Added new goal `boat:transform`; see the description in the [plugin documentation](boat-maven-plugin/README.md#boattransform).

## 0.14.2
* *Angular Generator*
* Added support for Angular version ranges in peer dependencies
Expand All @@ -39,6 +44,7 @@ BOAT is still under development and subject to change.
* Check prefix for paths should contain version.
* Enabled rules.
* Use Standard HTTP Status Codes.

## 0.12.0
* *General*
* Improved code quality
Expand Down Expand Up @@ -140,13 +146,11 @@ BOAT is still under development and subject to change.
* ability to resolve references like #/components/schemas/myObject/items or #/components/schemas/myObject/properties/embeddedObject
* simple fix to avoid npe in StaticHtml2Generation escaping response message.


## 0.5.0

* Add DereferenceComponentsPropertiesTransformer (that does a bit extra)
* Fix recursive referencing in UnAliasTransformer


## 0.4.0
* Added bundle skip
* Changed numbering scheme
Expand Down Expand Up @@ -626,6 +630,7 @@ For the `spring` generator, the additional configuration options are:
| `useClassLevelBeanValidation` | Adds @Validated annotation to API interfaces (Default: false) |
| `useLombokAnnotations` | Use Lombok annotations to generate properties accessors and `hashCode`/`equals` methods (Default: false) |
| `addServletRequest` | Adds ServletRequest objects to API method definitions (Default: false) |
| `addBindingResult` | Adds BindingResult to Api method definitions' request bodies if UseBeanValidation true, for this to be effective you must configure UseBeanValidation, this is not done automatically (Default: false)|
| `implicitHeaders` | Skip header parameters in the generated API methods using @ApiImplicitParams annotation. (Default: false) |
| `swaggerDocketConfig` | Generate Spring OpenAPI Docket configuration class. (Default: false) |
| `apiFirst` | Generate the API from the OAI spec at server compile time (API first approach) (Default: false) |
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.2-SNAPSHOT</version>
<version>0.14.3-SNAPSHOT</version>
</parent>
<artifactId>boat-engine</artifactId>
<packaging>jar</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.parser.OpenAPIV3Parser;
import io.swagger.v3.parser.core.models.AuthorizationValue;
import io.swagger.v3.parser.core.models.ParseOptions;
import io.swagger.v3.parser.core.models.SwaggerParseResult;
import java.io.File;
import java.util.List;

import lombok.extern.slf4j.Slf4j;

@Slf4j
Expand Down Expand Up @@ -55,6 +58,10 @@ public static OpenAPI load(File file, boolean resolveFully, boolean flatten) thr
}

public static OpenAPI load(String url, boolean resolveFully, boolean flatten) throws OpenAPILoaderException {
return load(url, resolveFully, flatten, null);
}

public static OpenAPI load(String url, boolean resolveFully, boolean flatten, List<AuthorizationValue> auth) throws OpenAPILoaderException {
log.debug("Reading OpenAPI from: {} resolveFully: {}", url, resolveFully);
OpenAPIV3Parser openAPIParser = new OpenAPIV3Parser();
ParseOptions parseOptions = new ParseOptions();
Expand All @@ -64,7 +71,7 @@ public static OpenAPI load(String url, boolean resolveFully, boolean flatten) th
parseOptions.setFlattenComposedSchemas(true);
parseOptions.setResolveCombinators(true);

SwaggerParseResult swaggerParseResult = openAPIParser.readLocation(url, null, parseOptions);
SwaggerParseResult swaggerParseResult = openAPIParser.readLocation(url, auth, parseOptions);
if (swaggerParseResult.getOpenAPI() == null) {
log.error("Could not load OpenAPI from : {} \n{}", url, String.join("\t\n", swaggerParseResult.getMessages()));
throw new OpenAPILoaderException("Could not load open api from :" + url, swaggerParseResult.getMessages());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,51 @@
package com.backbase.oss.boat.transformers;

import static java.util.Optional.ofNullable;
import static java.util.Spliterators.spliteratorUnknownSize;
import static java.util.stream.StreamSupport.stream;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ContainerNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Spliterator;

import io.swagger.v3.core.util.Yaml;
import io.swagger.v3.oas.models.OpenAPI;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import lombok.SneakyThrows;

import static java.util.Collections.emptyList;
import static java.util.Optional.ofNullable;
import static java.util.Spliterators.spliteratorUnknownSize;
import static java.util.stream.Collectors.toSet;
import static java.util.stream.StreamSupport.stream;

@SuppressWarnings("java:S3740")
public class VendorExtensionFilter implements Transformer {
@Getter
@Setter
public class ExtensionFilter implements Transformer {

private List<String> remove = emptyList();

@Override
public @NonNull OpenAPI transform(@NonNull OpenAPI openAPI, @NonNull Map<String, Object> options) {
return ofNullable(options.get("remove"))
.map(remove -> transform(openAPI, (Collection<String>) remove))
.orElse(openAPI);
List<String> extensions = new ArrayList<>(remove);

ofNullable(options.get("remove"))
.map(Collection.class::cast)
.ifPresent(extensions::addAll);

extensions.addAll(
extensions.stream()
.filter(s -> !s.startsWith("x-"))
.map(s -> "x-" + s)
.collect(toSet()));

return extensions.isEmpty() ? openAPI : transform(openAPI, extensions);
}

@SneakyThrows
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,24 @@

import java.util.Map;

import static java.util.Optional.*;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Setter;

@RequiredArgsConstructor
public class SpecVersionTransformer implements Transformer {
import static java.util.Optional.ofNullable;

@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class SetVersion implements Transformer {

@NonNull
private final String version;
private String version;

@Override
public OpenAPI transform(OpenAPI openAPI, Map<String, Object> options) {
Expand All @@ -25,6 +32,12 @@ public OpenAPI transform(OpenAPI openAPI, Map<String, Object> options) {
return openAPI;
}

}
/**
* Default setter, used at creation from POM configuration.
*/
public void set(String version) {
setVersion(version);
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
import org.junit.jupiter.api.Test;

@Slf4j
class VendorExtensionFilterTests {
class ExtensionFilterTests {

@Test
void run() throws Throwable {
Transformer trn = new VendorExtensionFilter();
Transformer trn = new ExtensionFilter();

OpenAPI api1 = OpenAPILoader.load(new File("src/test/resources/openapi/extension-filter/openapi.yaml"));
OpenAPI api2 = trn.transform(api1, singletonMap("remove", singleton("x-remove")));
Expand Down
Loading