Skip to content

Commit

Permalink
Inititate documentation split with wildfly-galleon-feature-packs repo
Browse files Browse the repository at this point in the history
  • Loading branch information
jfdenise committed Nov 29, 2023
1 parent 3e5cb2a commit 696abbd
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 49 deletions.
10 changes: 6 additions & 4 deletions core/src/main/java/org/wildfly/glow/FeaturePacks.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ public class FeaturePacks {
private static final String PROVISIONING_FILE_RADICAL = "/provisioning-";
private static final String TECH_PREVIEW = "/tech-preview/";

public static final String URL_PROPERTY = "wildfly-glow-galleon-feature-packs-url";

public static Path getFeaturePacks(String version, String context, boolean techPreview) throws Exception {
try {
String rootURL = getFeaturePacksURL();
Expand All @@ -61,11 +63,11 @@ public static Path getFeaturePacks(String version, String context, boolean techP
}

public static String getFeaturePacksURL() throws Exception {
String rootURL = Utils.getConfigEntry("wildfly-glow-galleon-feature-packs-url");
if(rootURL == null) {
throw new Exception("No wildfly-glow-galleon-feature-packs-url entry found");
String rootURL = Utils.getConfigEntry(URL_PROPERTY);
if (rootURL == null) {
throw new Exception("No " + URL_PROPERTY + " entry found");
}
if(!rootURL.endsWith("/")) {
if (!rootURL.endsWith("/")) {
rootURL = rootURL + "/";
}
return rootURL;
Expand Down
112 changes: 69 additions & 43 deletions doc-plugin/src/main/java/org/wildfly/glow/plugin/doc/ScanDocMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,61 +76,87 @@ public class ScanDocMojo extends AbstractMojo {
@Parameter(defaultValue = "${project.remoteProjectRepositories}", readonly = true, required = true)
List<RemoteRepository> repositories;

@Parameter(defaultValue = "${project.build.directory}/rules.adoc")
@Parameter(defaultValue = "rules.adoc")
String generatedFile;

@Parameter(required = true)
@Parameter(defaultValue = "${project.build.directory}")
String targetDir;

@Parameter(required = false)
String rulesPropertiesFile;

@Parameter(required = false, defaultValue = "true")
boolean generateRuleDescriptions;

@Parameter(required = false, defaultValue = "true")
boolean generateKnownFeaturePacks;

@Parameter(required = false)
String repoPath;

@Override
public void execute() throws MojoExecutionException, MojoFailureException {
try {

//Typically under target
Path outputFolder = Paths.get(project.getBuild().getDirectory());
MavenRepoManager artifactResolver = new MavenArtifactRepositoryManager(repoSystem, repoSession, repositories);
UniverseResolver universeResolver = UniverseResolver.builder().addArtifactResolver(artifactResolver).build();
Map<Layer, Map<String, String>> rules = new TreeMap<>();
StringBuilder rulesBuilder = new StringBuilder();
Properties properties = new Properties();
try (FileInputStream in = new FileInputStream(Paths.get(rulesPropertiesFile).toFile())) {
properties.load(in);
}

getRules("bare-metal", universeResolver, rules);
Map<Layer, Map<String, String>> cloudRules = new TreeMap<>();
getRules("cloud", universeResolver, cloudRules);

rulesBuilder.append("== [[glow.table.rules]]Rules descriptions\n");
rulesBuilder.append("[cols=\"1,2,1\"]\n");
rulesBuilder.append("|===\n");
rulesBuilder.append("|Rule |Description |Value\n");
for (String k : LayerMetadata.getAllRules()) {
rulesBuilder.append("|[[glow." + k + "]]" + k + "\n");
String desc = properties.getProperty(k);
String val = properties.getProperty(k + ".value");
if (desc == null) {
throw new Exception("Missing rule description for " + k + " in " + rulesPropertiesFile);
if (generateRuleDescriptions) {
Properties properties = new Properties();
try (FileInputStream in = new FileInputStream(Paths.get(rulesPropertiesFile).toFile())) {
properties.load(in);
}
if (val == null) {
throw new Exception("Missing rule example value for " + k + " in " + rulesPropertiesFile);

rulesBuilder.append("== [[glow.table.rules]]Rules descriptions\n");
rulesBuilder.append("[cols=\"1,2,1\"]\n");
rulesBuilder.append("|===\n");
rulesBuilder.append("|Rule |Description |Value\n");
for (String k : LayerMetadata.getAllRules()) {
rulesBuilder.append("|[[glow." + k + "]]" + k + "\n");
String desc = properties.getProperty(k);
String val = properties.getProperty(k + ".value");
if (desc == null) {
throw new Exception("Missing rule description for " + k + " in " + rulesPropertiesFile);
}
if (val == null) {
throw new Exception("Missing rule example value for " + k + " in " + rulesPropertiesFile);
}
rulesBuilder.append("|" + desc + "\n");
rulesBuilder.append("|" + val + "\n");
}
rulesBuilder.append("|" + desc + "\n");
rulesBuilder.append("|" + val + "\n");
rulesBuilder.append("|===\n");
}
rulesBuilder.append("|===\n");

rulesBuilder.append("## Support for WildFly " + FeaturePacks.getLatestVersion() + "\n\n");

rulesBuilder.append(buildTable("bare-metal", rules, false));
rulesBuilder.append(buildTable("cloud", cloudRules, false));

rulesBuilder.append("## Support for WildFly Preview " + FeaturePacks.getLatestVersion() + "\n\n");

rulesBuilder.append(buildTable("bare-metal", rules, true));
rulesBuilder.append(buildTable("cloud", cloudRules, true));

Files.writeString(Paths.get(generatedFile), rulesBuilder.toString());
if (generateKnownFeaturePacks) {
if (repoPath != null) {
Path p = Paths.get(repoPath);
String repoUrl = "file://" + p.toAbsolutePath();
System.out.println("Using repo url " + repoUrl);
System.setProperty(FeaturePacks.URL_PROPERTY, repoUrl);
}
try {
//Typically under target
Path outputFolder = Paths.get(project.getBuild().getDirectory());
MavenRepoManager artifactResolver = new MavenArtifactRepositoryManager(repoSystem, repoSession, repositories);
UniverseResolver universeResolver = UniverseResolver.builder().addArtifactResolver(artifactResolver).build();
Map<Layer, Map<String, String>> rules = new TreeMap<>();

getRules("bare-metal", universeResolver, rules);
Map<Layer, Map<String, String>> cloudRules = new TreeMap<>();
getRules("cloud", universeResolver, cloudRules);
rulesBuilder.append("## Support for WildFly " + FeaturePacks.getLatestVersion() + "\n\n");

rulesBuilder.append(buildTable("bare-metal", rules, false));
rulesBuilder.append(buildTable("cloud", cloudRules, false));

rulesBuilder.append("## Support for WildFly Preview " + FeaturePacks.getLatestVersion() + "\n\n");

rulesBuilder.append(buildTable("bare-metal", rules, true));
rulesBuilder.append(buildTable("cloud", cloudRules, true));
} finally {
System.clearProperty(FeaturePacks.URL_PROPERTY);
}
}
Path dir = Paths.get(targetDir);
Files.createDirectories(dir);
Files.writeString(dir.resolve(generatedFile), rulesBuilder.toString());
} catch (Exception ex) {
throw new MojoExecutionException(ex);
}
Expand Down
3 changes: 2 additions & 1 deletion docs/guide/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ Jean-Francois Denise
include::intro/index.adoc[]
include::cli/index.adoc[]
include::test-maven-plugin/index.adoc[]
include::rules.adoc[]
include::rules.adoc[]
include::server/index.adoc[]
8 changes: 8 additions & 0 deletions docs/guide/server/index.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[[glow_server]]
## Support for latest WildFly

The following documentation is defined by the link:https://github.com/wildfly/wildfly-galleon-feature-packs[WildFly Galleon feature-packs repository].
It contains the known WildFly (and WildFly Preview) feature-packs and layers for the various execution contexts (`cloud` and `bare-metal`).

* link:wildfly-galleon-feature-packs[Known feature-packs and layers]
5 changes: 4 additions & 1 deletion docs/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,11 @@
<artifactId>wildfly-glow-doc-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<generatedFile>${basedir}/target/resources/rules.adoc</generatedFile>
<targetDir>${basedir}/target/resources</targetDir>
<generatedFile>rules.adoc</generatedFile>
<rulesPropertiesFile>${basedir}/rules.properties</rulesPropertiesFile>
<generateRuleDescriptions>true</generateRuleDescriptions>
<generateKnownFeaturePacks>false</generateKnownFeaturePacks>
</configuration>
<executions>
<execution>
Expand Down

0 comments on commit 696abbd

Please sign in to comment.