Skip to content

Commit b294bd9

Browse files
committed
Add config
1 parent bf8e54c commit b294bd9

File tree

4 files changed

+182
-22
lines changed

4 files changed

+182
-22
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>de.ybroeker</groupId>
77
<artifactId>mp-openapi-maven-plugin</artifactId>
88
<packaging>maven-plugin</packaging>
9-
<version>1.1.1-SNAPSHOT</version>
9+
<version>1.2.0-SNAPSHOT</version>
1010

1111
<scm>
1212
<developerConnection>scm:git:https://github.com/ybroeker/mp-openapi-maven-plugin.git</developerConnection>

src/main/java/de/ybroeker/mp/openapi/maven/GenerateOpenApiMojo.java

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ boolean isYaml() {
7676
@Parameter(defaultValue = "${project}")
7777
private MavenProject mavenProject;
7878

79+
@Parameter(property = "config")
80+
private MavenConfig config;
81+
82+
7983

8084
/**
8185
* Compiled classes of the project.
@@ -149,27 +153,7 @@ private void indexClass(Indexer indexer, Path path) throws IOException {
149153
}
150154

151155
private OpenAPI generateSchema(IndexView index) {
152-
return OpenApiProcessor.modelFromAnnotations(new OpenApiConfigImpl(new Config() {
153-
@Override
154-
public <T> T getValue(String propertyName, Class<T> propertyType) {
155-
return null;
156-
}
157-
158-
@Override
159-
public <T> Optional<T> getOptionalValue(String propertyName, Class<T> propertyType) {
160-
return Optional.empty();
161-
}
162-
163-
@Override
164-
public Iterable<String> getPropertyNames() {
165-
return Collections.emptyList();
166-
}
167-
168-
@Override
169-
public Iterable<ConfigSource> getConfigSources() {
170-
return Collections.emptyList();
171-
}
172-
}), index);
156+
return OpenApiProcessor.modelFromAnnotations(config, index);
173157
}
174158

175159
private void write(OpenAPI openApi) throws MojoExecutionException {
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
package de.ybroeker.mp.openapi.maven;
2+
3+
import java.util.Collections;
4+
import java.util.Map;
5+
import java.util.Set;
6+
import java.util.regex.Pattern;
7+
8+
import io.smallrye.openapi.api.OpenApiConfig;
9+
import org.apache.maven.plugins.annotations.Parameter;
10+
11+
public class MavenConfig implements OpenApiConfig {
12+
13+
@Parameter(property = "modelReader")
14+
String modelReader;
15+
16+
@Parameter(property = "filter")
17+
String filter;
18+
19+
@Parameter(property = "scanDisable")
20+
boolean scanDisable;
21+
22+
@Parameter(property = "scanDependenciesDisable")
23+
boolean scanDependenciesDisable;
24+
25+
@Parameter(property = "schemaReferencesEnable")
26+
boolean schemaReferencesEnable;
27+
28+
@Parameter(property = "customSchemaRegistryClass")
29+
String customSchemaRegistryClass;
30+
31+
@Parameter(property = "applicationPathDisable")
32+
boolean applicationPathDisable;
33+
34+
@Parameter(property = "servers")
35+
Set<String> servers;
36+
37+
@Parameter(property = "pathServers")
38+
Map<String, Servers> pathServers;
39+
40+
@Parameter(property = "operationServers")
41+
Map<String, Servers> operationServers;
42+
43+
@Parameter(property = "scanDependenciesJars")
44+
Set<String> scanDependenciesJars;
45+
46+
@Parameter(property = "schemas")
47+
Map<String, String> schemas;
48+
49+
@Parameter(property = "scanPackages")
50+
Set<String> scanPackages;
51+
@Parameter(property = "scanClasses")
52+
Set<String> scanClasses;
53+
@Parameter(property = "scanExcludePackages")
54+
Set<String> scanExcludePackages;
55+
@Parameter(property = "scanExcludeClasses")
56+
Set<String> scanExcludeClasses;
57+
58+
59+
@Override
60+
public String modelReader() {
61+
return modelReader;
62+
}
63+
64+
@Override
65+
public String filter() {
66+
return filter;
67+
}
68+
69+
@Override
70+
public boolean scanDisable() {
71+
return scanDisable;
72+
}
73+
74+
@Override
75+
public Set<String> scanPackages() {
76+
if (scanPackages == null) {
77+
return Collections.emptySet();
78+
}
79+
return scanPackages;
80+
}
81+
82+
@Override
83+
public Set<String> scanClasses() {
84+
if (scanClasses == null) {
85+
return Collections.emptySet();
86+
}
87+
return scanClasses;
88+
}
89+
90+
@Override
91+
public Set<String> scanExcludePackages() {
92+
if (scanExcludePackages == null) {
93+
return Collections.emptySet();
94+
}
95+
return scanExcludePackages;
96+
}
97+
98+
@Override
99+
public Set<String> scanExcludeClasses() {
100+
if (scanExcludeClasses == null) {
101+
return Collections.emptySet();
102+
}
103+
return scanExcludeClasses;
104+
}
105+
106+
@Override
107+
public Set<String> servers() {
108+
if (servers == null) {
109+
return Collections.emptySet();
110+
}
111+
return servers;
112+
}
113+
114+
@Override
115+
public Set<String> pathServers(final String path) {
116+
if (pathServers == null) {
117+
return Collections.emptySet();
118+
}
119+
Servers servers = pathServers.get(path);
120+
if (servers != null) {
121+
return servers.getServers();
122+
}
123+
return Collections.emptySet();
124+
}
125+
126+
@Override
127+
public Set<String> operationServers(final String operationId) {
128+
if (operationServers == null) {
129+
return Collections.emptySet();
130+
}
131+
Servers servers = operationServers.get(operationId);
132+
if (servers != null) {
133+
return servers.getServers();
134+
}
135+
return Collections.emptySet();
136+
}
137+
138+
@Override
139+
public boolean scanDependenciesDisable() {
140+
return scanDependenciesDisable;
141+
}
142+
143+
@Override
144+
public Set<String> scanDependenciesJars() {
145+
if (scanDependenciesJars == null) {
146+
return Collections.emptySet();
147+
}
148+
return scanDependenciesJars;
149+
}
150+
151+
@Override
152+
public boolean schemaReferencesEnable() {
153+
return schemaReferencesEnable;
154+
}
155+
156+
@Override
157+
public String customSchemaRegistryClass() {
158+
return customSchemaRegistryClass;
159+
}
160+
161+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package de.ybroeker.mp.openapi.maven;
2+
3+
import java.util.Set;
4+
5+
import org.apache.maven.plugins.annotations.Parameter;
6+
7+
public class Servers {
8+
9+
@Parameter(name = "servers")
10+
Set<String> servers;
11+
12+
public Set<String> getServers() {
13+
return servers;
14+
}
15+
}

0 commit comments

Comments
 (0)