Browse Source

Exclude some WS from code generation

tags/7.0-RC1
Simon Brandhof 6 years ago
parent
commit
435dd4e81a

+ 32
- 45
sonar-ws-generator/pom.xml View File

@@ -52,50 +52,37 @@
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources/results</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assemble-all</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>org.sonarqube.wsgenerator.Generator</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>run-ws-generator</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assemble-all</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>org.sonarqube.wsgenerator.Generator</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

</project>

+ 12
- 1
sonar-ws-generator/src/main/java/org/sonarqube/wsgenerator/CodeFormatter.java View File

@@ -30,7 +30,10 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import org.apache.commons.io.FileUtils;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
@@ -39,6 +42,10 @@ import static java.nio.charset.StandardCharsets.UTF_8;

public class CodeFormatter {

private static final Set<String> PATH_EXCLUSIONS = new HashSet<>(Arrays.asList(
"api/components", "api/issues", "api/measures", "api/organizations", "api/permissions", "api/projects",
"api/project_analyses", "api/qualityprofiles", "api/rules", "api/settings", "api/users", "api/user_groups"));

public static void format(String json) {
JsonObject jsonElement = new Gson().fromJson(json, JsonObject.class);
JsonArray webServices = (JsonArray) jsonElement.get("webServices");
@@ -47,13 +54,17 @@ public class CodeFormatter {

for (JsonElement webServiceElement : webServices) {
JsonObject webService = (JsonObject) webServiceElement;
String webServicePath = webService.get("path").getAsString();

if (PATH_EXCLUSIONS.contains(webServicePath)) {
continue;
}

VelocityContext webServiceContext = new VelocityContext();
webServiceContext.put("webService", webServiceElement);
webServiceContext.put("helper", helper);

String webServiceCode = applyTemplate("webService.vm", webServiceContext);
String webServicePath = webService.get("path").getAsString();
writeSourceFile(helper.file(webServicePath), webServiceCode);
writeSourceFile(helper.packageInfoFile(webServicePath), applyTemplate("package-info.vm", webServiceContext));


Loading…
Cancel
Save