├── .github ├── dependabot.yml └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE.txt ├── README.md ├── docs ├── checkstyle.html ├── css │ ├── apache-maven-fluido-1.8.min.css │ ├── maven-base.css │ ├── maven-theme.css │ ├── print.css │ └── site.css ├── dependencies.html ├── dependency-info.html ├── dependency-management.html ├── examples │ └── generate-site-example.html ├── faq.html ├── favicon.ico ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── generate-site-mojo.html ├── help-mojo.html ├── images │ ├── accessories-text-editor.png │ ├── add.gif │ ├── apache-maven-project-2.png │ ├── application-certificate.png │ ├── close.gif │ ├── collapsed.gif │ ├── community-logo.png │ ├── contact-new.png │ ├── document-properties.png │ ├── drive-harddisk.png │ ├── expanded.gif │ ├── external.png │ ├── fix.gif │ ├── icon_error_sml.gif │ ├── icon_help_sml.gif │ ├── icon_info_sml.gif │ ├── icon_success_sml.gif │ ├── icon_warning_sml.gif │ ├── image-x-generic.png │ ├── internet-web-browser.png │ ├── logos │ │ ├── build-by-maven-black.png │ │ ├── build-by-maven-white.png │ │ └── maven-feather.png │ ├── network-server.png │ ├── newwindow.png │ ├── package-x-generic.png │ ├── profiles │ │ ├── pre-release.png │ │ ├── retired.png │ │ └── sandbox.png │ ├── remove.gif │ ├── rss.png │ ├── update.gif │ └── window-new.png ├── img │ ├── glyphicons-halflings-white.png │ └── glyphicons-halflings.png ├── index.html ├── issue-management.html ├── js │ └── apache-maven-fluido-1.8.min.js ├── licenses.html ├── mailing-lists.html ├── plugin-info.html ├── plugin-management.html ├── plugins.html ├── project-info.html ├── project-reports.html ├── scm.html ├── summary.html ├── team.html └── usage.html ├── message-dumper ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── wildscribe │ └── logs │ ├── Main.java │ └── MessageExporter.java ├── model-dumper ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── jboss │ │ └── wildscribe │ │ └── modeldumper │ │ ├── Configuration.java │ │ ├── Main.java │ │ └── ModelExporter.java │ └── test │ └── java │ └── org │ └── jboss │ └── wildscribe │ └── modeldumper │ ├── ChildFirstClassLoader.java │ └── RequiredExtensionsUnitTestCase.java ├── models ├── README.md └── standalone │ ├── JBoss-AS7-7.1.1.Final.dmr │ ├── JBoss-EAP-6.0.0.GA.dmr │ ├── JBoss-EAP-6.1.0.GA.dmr │ ├── JBoss-EAP-6.2.0.GA.dmr │ ├── JBoss-EAP-6.3.0.GA.dmr │ ├── JBoss-EAP-6.4.7.GA.dmr │ ├── JBoss-EAP-6.4.7.GA.messages │ ├── JBoss-EAP-7.0.0.GA.dmr │ ├── JBoss-EAP-7.0.0.GA.messages │ ├── JBoss-EAP-7.1.0.GA.dmr │ ├── JBoss-EAP-7.1.0.GA.messages │ ├── JBoss-EAP-7.2.0.GA.dmr │ ├── JBoss-EAP-7.2.0.GA.messages │ ├── JBoss-EAP-7.3.0.CD16.dmr │ ├── JBoss-EAP-7.3.0.CD16.messages │ ├── WildFly-15.0.0.Final.dmr │ ├── WildFly-15.0.0.Final.messages │ ├── WildFly-16.0.0.Final.dmr │ ├── WildFly-16.0.0.Final.messages │ ├── WildFly-17.0.0.Final.dmr │ ├── WildFly-17.0.0.Final.messages │ ├── WildFly-18.0.0.Final.dmr │ ├── WildFly-18.0.0.Final.messages │ ├── Wildfly-10.0.0.Final.dmr │ ├── Wildfly-10.1.0.Final.dmr │ ├── Wildfly-11.0.0.Final.dmr │ ├── Wildfly-11.0.0.Final.messages │ ├── Wildfly-12.0.0.Final.dmr │ ├── Wildfly-12.0.0.Final.messages │ ├── Wildfly-13.0.0.Final.dmr │ ├── Wildfly-13.0.0.Final.messages │ ├── Wildfly-14.0.0.Final.dmr │ ├── Wildfly-14.0.0.Final.messages │ ├── Wildfly-8.0.0.Final.dmr │ ├── Wildfly-8.1.0.Final.dmr │ ├── Wildfly-8.2.1.Final.dmr │ ├── Wildfly-9.0.2.Final.dmr │ └── versions.txt ├── pom.xml ├── site-generator ├── README.md ├── pom.xml └── src │ ├── it │ └── generate-single-version │ │ ├── invoker.properties │ │ ├── pom.xml │ │ └── postbuild.groovy │ └── main │ ├── java │ └── org │ │ └── jboss │ │ └── wildscribe │ │ └── site │ │ ├── AlertMessage.java │ │ ├── Attribute.java │ │ ├── Breadcrumb.java │ │ ├── Capability.java │ │ ├── Child.java │ │ ├── Deprecated.java │ │ ├── FileUtils.java │ │ ├── Generator.java │ │ ├── Main.java │ │ ├── Operation.java │ │ ├── PathAddress.java │ │ ├── PathElement.java │ │ ├── ResourceDescription.java │ │ ├── SingleVersionGenerator.java │ │ ├── SiteGenerator.java │ │ └── Version.java │ └── resources │ ├── staticresources │ ├── css │ │ └── main.css │ ├── favicon.ico │ └── js │ │ ├── main.js │ │ └── vendor │ │ └── ie10-viewport-bug-workaround.js │ └── templates │ ├── about.html │ ├── index.html │ ├── layout.html │ ├── logs.html │ ├── resource.html │ └── single-layout.html └── wildscribe-maven-plugin ├── pom.xml └── src ├── main └── java │ └── org │ └── jboss │ └── wildscribe │ └── plugins │ └── GenerateSiteMojo.java └── site ├── apt ├── examples │ └── generate-site-example.apt.vm ├── index.apt.vm └── usage.apt.vm ├── fml └── faq.fml.vm ├── resources ├── favicon.ico └── images │ └── community-logo.png └── site.xml /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "maven" 9 | directory: "/" 10 | schedule: 11 | interval: "daily" 12 | - package-ecosystem: "github-actions" 13 | # Workflow files stored in the 14 | # default location of `.github/workflows` 15 | directory: "/" 16 | schedule: 17 | interval: "daily" 18 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Maven 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven 3 | 4 | name: WildFly Maven Plugin - CI 5 | 6 | on: 7 | push: 8 | branches-ignore: 9 | - 'dependabot/**' 10 | paths: 11 | - '.github/workflows/ci.yml' 12 | - 'message-dumper/**' 13 | - 'model-dumper/**' 14 | - 'site-generator/**' 15 | - 'wildscribe-maven-plugin/**' 16 | - '**/pom.xml' 17 | pull_request: 18 | paths: 19 | - '.github/workflows/ci.yml' 20 | - 'message-dumper/**' 21 | - 'model-dumper/**' 22 | - 'site-generator/**' 23 | - 'wildscribe-maven-plugin/**' 24 | - '**/pom.xml' 25 | 26 | # Only run the latest job 27 | concurrency: 28 | group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' 29 | cancel-in-progress: true 30 | 31 | 32 | jobs: 33 | 34 | build: 35 | name: ${{ matrix.os }}-jdk${{ matrix.java }}-${{ matrix.wildfly-version }} 36 | runs-on: ${{ matrix.os }} 37 | strategy: 38 | fail-fast: false 39 | matrix: 40 | os: [ubuntu-latest, windows-latest ] 41 | java: ['11', '17', '21'] 42 | 43 | steps: 44 | - uses: actions/checkout@v4 45 | - name: Set up JDK ${{ matrix.java }} 46 | uses: actions/setup-java@v4 47 | with: 48 | java-version: ${{ matrix.java }} 49 | cache: 'maven' 50 | distribution: 'temurin' 51 | - name: Build and Test on ${{ matrix.java }} - ${{ matrix.wildfly-version }} 52 | run: mvn clean install '-Dorg.jboss.logmanager.nocolor=true' 53 | - name: Upload surefire logs for failed run 54 | uses: actions/upload-artifact@v4 55 | if: failure() 56 | with: 57 | name: surefire-reports-${{ matrix.os }}-${{ matrix.java }} 58 | path: '**/surefire-reports/' 59 | - name: Upload failsafe logs for failed run 60 | uses: actions/upload-artifact@v4 61 | if: failure() 62 | with: 63 | name: failsafe-reports-${{ matrix.os }}-${{ matrix.java }} 64 | path: '**/failsafe-reports/' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | *.iml 3 | .idea 4 | .settings 5 | .project 6 | .classpath 7 | *~ 8 | local-test 9 | out 10 | lib 11 | bin 12 | dependency-reduced-pom.xml 13 | hotspot.log 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Wildscribe Documentation Generator 2 | ================================== 3 | 4 | This project is a documentation generator for Wildfly/JBoss EAP. Basically takes the self describing management model 5 | and turns it into HTML. It consists of two parts, the model dumper and the site generator. 6 | 7 | See models/README.md for details on dumping models. 8 | 9 | To generate the site: 10 | 11 | Add any new model versions to models/standalone/versions.txt 12 | 13 | Then run (for example): 14 | 15 | $ java -Durl=https://wildscribe.github.io -jar site-generator/target/site-generator.jar models/standalone/ ../wildscribe.github.io/ 16 | -------------------------------------------------------------------------------- /docs/checkstyle.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | wildscribe-maven-plugin – Checkstyle Results 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 34 |
35 | 40 |
41 |
42 |
43 |
44 |

Checkstyle Results

45 |

The following document contains the results of Checkstyle 10.17.0 with wildfly-checkstyle/checkstyle.xml ruleset.

46 |

Summary

47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |
Files Info Warnings Errors
0000
58 |

Files

59 | 60 | 61 | 62 | 63 | 64 |
File I W E
65 |

Rules

66 | 67 | 68 | 69 | 70 | 71 |
CategoryRuleViolationsSeverity
72 |

Details

73 |
74 |
75 |
76 |
77 |
78 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /docs/css/maven-base.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | body { 21 | margin: 0px; 22 | padding: 0px; 23 | } 24 | table { 25 | padding:0px; 26 | width: 100%; 27 | margin-left: -2px; 28 | margin-right: -2px; 29 | } 30 | acronym { 31 | cursor: help; 32 | border-bottom: 1px dotted #feb; 33 | } 34 | table.bodyTable th, table.bodyTable td { 35 | padding: 2px 4px 2px 4px; 36 | vertical-align: top; 37 | } 38 | div.clear { 39 | clear:both; 40 | visibility: hidden; 41 | } 42 | div.clear hr { 43 | display: none; 44 | } 45 | #bannerLeft, #bannerRight { 46 | font-size: xx-large; 47 | font-weight: bold; 48 | } 49 | #bannerLeft img, #bannerRight img { 50 | margin: 0px; 51 | } 52 | .xleft, #bannerLeft img { 53 | float:left; 54 | } 55 | .xright, #bannerRight { 56 | float:right; 57 | } 58 | #banner { 59 | padding: 0px; 60 | } 61 | #breadcrumbs { 62 | padding: 3px 10px 3px 10px; 63 | } 64 | #leftColumn { 65 | width: 170px; 66 | float:left; 67 | overflow: auto; 68 | } 69 | #bodyColumn { 70 | margin-right: 1.5em; 71 | margin-left: 197px; 72 | } 73 | #legend { 74 | padding: 8px 0 8px 0; 75 | } 76 | #navcolumn { 77 | padding: 8px 4px 0 8px; 78 | } 79 | #navcolumn h5 { 80 | margin: 0; 81 | padding: 0; 82 | font-size: small; 83 | } 84 | #navcolumn ul { 85 | margin: 0; 86 | padding: 0; 87 | font-size: small; 88 | } 89 | #navcolumn li { 90 | list-style-type: none; 91 | background-image: none; 92 | background-repeat: no-repeat; 93 | background-position: 0 0.4em; 94 | padding-left: 16px; 95 | list-style-position: outside; 96 | line-height: 1.2em; 97 | font-size: smaller; 98 | } 99 | #navcolumn li.expanded { 100 | background-image: url(../images/expanded.gif); 101 | } 102 | #navcolumn li.collapsed { 103 | background-image: url(../images/collapsed.gif); 104 | } 105 | #navcolumn li.none { 106 | text-indent: -1em; 107 | margin-left: 1em; 108 | } 109 | #poweredBy { 110 | text-align: center; 111 | } 112 | #navcolumn img { 113 | margin-top: 10px; 114 | margin-bottom: 3px; 115 | } 116 | #poweredBy img { 117 | display:block; 118 | margin: 20px 0 20px 17px; 119 | } 120 | #search img { 121 | margin: 0px; 122 | display: block; 123 | } 124 | #search #q, #search #btnG { 125 | border: 1px solid #999; 126 | margin-bottom:10px; 127 | } 128 | #search form { 129 | margin: 0px; 130 | } 131 | #lastPublished { 132 | font-size: x-small; 133 | } 134 | .navSection { 135 | margin-bottom: 2px; 136 | padding: 8px; 137 | } 138 | .navSectionHead { 139 | font-weight: bold; 140 | font-size: x-small; 141 | } 142 | .section { 143 | padding: 4px; 144 | } 145 | #footer { 146 | padding: 3px 10px 3px 10px; 147 | font-size: x-small; 148 | } 149 | #breadcrumbs { 150 | font-size: x-small; 151 | margin: 0pt; 152 | } 153 | .source { 154 | padding: 12px; 155 | margin: 1em 7px 1em 7px; 156 | } 157 | .source pre { 158 | margin: 0px; 159 | padding: 0px; 160 | } 161 | #navcolumn img.imageLink, .imageLink { 162 | padding-left: 0px; 163 | padding-bottom: 0px; 164 | padding-top: 0px; 165 | padding-right: 2px; 166 | border: 0px; 167 | margin: 0px; 168 | } 169 | -------------------------------------------------------------------------------- /docs/css/maven-theme.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | body { 21 | padding: 0px 0px 10px 0px; 22 | } 23 | body, td, select, input, li{ 24 | font-family: Verdana, Helvetica, Arial, sans-serif; 25 | font-size: 13px; 26 | } 27 | code{ 28 | font-family: Courier, monospace; 29 | font-size: 13px; 30 | } 31 | a { 32 | text-decoration: none; 33 | } 34 | a:link { 35 | color:#36a; 36 | } 37 | a:visited { 38 | color:#47a; 39 | } 40 | a:active, a:hover { 41 | color:#69c; 42 | } 43 | #legend li.externalLink { 44 | background: url(../images/external.png) left top no-repeat; 45 | padding-left: 18px; 46 | } 47 | a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { 48 | background: url(../images/external.png) right center no-repeat; 49 | padding-right: 18px; 50 | } 51 | #legend li.newWindow { 52 | background: url(../images/newwindow.png) left top no-repeat; 53 | padding-left: 18px; 54 | } 55 | a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover { 56 | background: url(../images/newwindow.png) right center no-repeat; 57 | padding-right: 18px; 58 | } 59 | h2 { 60 | padding: 4px 4px 4px 6px; 61 | border: 1px solid #999; 62 | color: #900; 63 | background-color: #ddd; 64 | font-weight:900; 65 | font-size: x-large; 66 | } 67 | h3 { 68 | padding: 4px 4px 4px 6px; 69 | border: 1px solid #aaa; 70 | color: #900; 71 | background-color: #eee; 72 | font-weight: normal; 73 | font-size: large; 74 | } 75 | h4 { 76 | padding: 4px 4px 4px 6px; 77 | border: 1px solid #bbb; 78 | color: #900; 79 | background-color: #fff; 80 | font-weight: normal; 81 | font-size: large; 82 | } 83 | h5 { 84 | padding: 4px 4px 4px 6px; 85 | color: #900; 86 | font-size: medium; 87 | } 88 | p { 89 | line-height: 1.3em; 90 | font-size: small; 91 | } 92 | #breadcrumbs { 93 | border-top: 1px solid #aaa; 94 | border-bottom: 1px solid #aaa; 95 | background-color: #ccc; 96 | } 97 | #leftColumn { 98 | margin: 10px 0 0 5px; 99 | border: 1px solid #999; 100 | background-color: #eee; 101 | padding-bottom: 3px; /* IE-9 scrollbar-fix */ 102 | } 103 | #navcolumn h5 { 104 | font-size: smaller; 105 | border-bottom: 1px solid #aaaaaa; 106 | padding-top: 2px; 107 | color: #000; 108 | } 109 | 110 | table.bodyTable th { 111 | color: white; 112 | background-color: #bbb; 113 | text-align: left; 114 | font-weight: bold; 115 | } 116 | 117 | table.bodyTable th, table.bodyTable td { 118 | font-size: 1em; 119 | } 120 | 121 | table.bodyTable tr.a { 122 | background-color: #ddd; 123 | } 124 | 125 | table.bodyTable tr.b { 126 | background-color: #eee; 127 | } 128 | 129 | .source { 130 | border: 1px solid #999; 131 | } 132 | dl { 133 | padding: 4px 4px 4px 6px; 134 | border: 1px solid #aaa; 135 | background-color: #ffc; 136 | } 137 | dt { 138 | color: #900; 139 | } 140 | #organizationLogo img, #projectLogo img, #projectLogo span{ 141 | margin: 8px; 142 | } 143 | #banner { 144 | border-bottom: 1px solid #fff; 145 | } 146 | .errormark, .warningmark, .donemark, .infomark { 147 | background: url(../images/icon_error_sml.gif) no-repeat; 148 | } 149 | 150 | .warningmark { 151 | background-image: url(../images/icon_warning_sml.gif); 152 | } 153 | 154 | .donemark { 155 | background-image: url(../images/icon_success_sml.gif); 156 | } 157 | 158 | .infomark { 159 | background-image: url(../images/icon_info_sml.gif); 160 | } 161 | 162 | -------------------------------------------------------------------------------- /docs/css/print.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn { 21 | display: none !important; 22 | } 23 | #bodyColumn, body.docs div.docs { 24 | margin: 0 !important; 25 | border: none !important 26 | } 27 | -------------------------------------------------------------------------------- /docs/css/site.css: -------------------------------------------------------------------------------- 1 | /* You can override this file with your own styles */ -------------------------------------------------------------------------------- /docs/dependency-info.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Dependency Information 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 64 | 73 |
74 |
75 |
76 |

Dependency Information

77 |

Apache Maven

78 |
<dependency>
 79 |   <groupId>org.jboss.wildscribe</groupId>
 80 |   <artifactId>wildscribe-maven-plugin</artifactId>
 81 |   <version>3.1.0.Final</version>
 82 |   <type>maven-plugin</type>
 83 | </dependency>
84 |

Apache Buildr

85 |
'org.jboss.wildscribe:wildscribe-maven-plugin:maven-plugin:3.1.0.Final'
86 |

Apache Ivy

87 |
<dependency org="org.jboss.wildscribe" name="wildscribe-maven-plugin" rev="3.1.0.Final">
 88 |   <artifact name="wildscribe-maven-plugin" type="maven-plugin" />
 89 | </dependency>
90 |

Groovy Grape

91 |
@Grapes(
 92 | @Grab(group='org.jboss.wildscribe', module='wildscribe-maven-plugin', version='3.1.0.Final')
 93 | )
94 |

Gradle/Grails

95 |
compile 'org.jboss.wildscribe:wildscribe-maven-plugin:3.1.0.Final'
96 |

Scala SBT

97 |
libraryDependencies += "org.jboss.wildscribe" % "wildscribe-maven-plugin" % "3.1.0.Final"
98 |

Leiningen

99 |
[org.jboss.wildscribe/wildscribe-maven-plugin "3.1.0.Final"]
100 |
101 |
102 |
103 |
104 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /docs/examples/generate-site-example.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | WildFly Maven Plugin – Generate Site Example 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 27 | 28 | 35 |
36 |
37 |
38 | 52 | 61 |
62 |
63 |
64 |

Generate Site Examples

65 |

Generates Wildscribe site for a WildFly server.

66 |

Generate Site Example

67 |

The example below shows how to generate a Wildscribe site:

68 |
69 |
<project>
 70 |     ...
 71 |     <build>
 72 |         ...
 73 |         <plugins>
 74 |             ...
 75 |             <plugin>
 76 |                 <groupId>org.jboss.wildscribe</groupId>
 77 |                 <artifactId>wildscribe-maven-plugin</artifactId>
 78 |                 <version>3.1.0.Final</version>
 79 |                 <configuration>
 80 |                     <jboss-home>target/WildFly</jboss-home>
 81 |                     <site-dir>target/generated-docs/wildscribe</site-dir>
 82 |                 </configuration>
 83 |             </plugin>
 84 |             ...
 85 |         </plugins>
 86 |         ...
 87 |     </build>
 88 | ...
 89 | </project>
90 |
91 |
92 |
93 |
94 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /docs/faq.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Frequently Asked Questions 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 50 | 59 |
60 |
61 |
62 |

Frequently Asked Questions

63 |
    64 |
  1. What versions of maven will the plugin work with?
65 |
66 |
What versions of maven will the plugin work with?
67 |
68 | 69 |

The plugin requires maven 3.6.2 or higher.

70 | 71 |

[top]

72 |
73 |
74 |
75 |
76 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/favicon.ico -------------------------------------------------------------------------------- /docs/help-mojo.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – wildscribe:help 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 50 | 59 |
60 |
61 |
62 |

wildscribe:help

63 |

Full name:

64 |

org.jboss.wildscribe:wildscribe-maven-plugin:3.1.0.Final:help

65 |

Description:

66 |

Display help information on wildscribe-maven-plugin. 67 |
68 | Call mvn wildscribe:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.

69 |

Attributes:

70 |
    71 |
  • The goal is thread-safe and supports parallel builds.
72 |

Optional Parameters

73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 |
NameTypeSinceDescription
<detail>boolean-If true, display all settable properties for each goal.
Default: false
User Property: detail
<goal>String-The name of the goal for which to show help. If unspecified, all goals will be displayed.
User Property: goal
<indentSize>int-The number of spaces per indentation level, should be positive.
Default: 2
User Property: indentSize
<lineLength>int-The maximum length of a display line, should be positive.
Default: 80
User Property: lineLength
99 |

Parameter Details

100 |

<detail>

101 |
If true, display all settable properties for each goal.
102 |
    103 |
  • Type: boolean
  • 104 |
  • Required: No
  • 105 |
  • User Property: detail
  • 106 |
  • Default: false

107 |

<goal>

108 |
The name of the goal for which to show help. If unspecified, all goals will be displayed.
109 |
    110 |
  • Type: java.lang.String
  • 111 |
  • Required: No
  • 112 |
  • User Property: goal

113 |

<indentSize>

114 |
The number of spaces per indentation level, should be positive.
115 |
    116 |
  • Type: int
  • 117 |
  • Required: No
  • 118 |
  • User Property: indentSize
  • 119 |
  • Default: 2

120 |

<lineLength>

121 |
The maximum length of a display line, should be positive.
122 |
    123 |
  • Type: int
  • 124 |
  • Required: No
  • 125 |
  • User Property: lineLength
  • 126 |
  • Default: 80
127 |
128 |
129 |
130 |
131 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /docs/images/accessories-text-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/accessories-text-editor.png -------------------------------------------------------------------------------- /docs/images/add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/add.gif -------------------------------------------------------------------------------- /docs/images/apache-maven-project-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/apache-maven-project-2.png -------------------------------------------------------------------------------- /docs/images/application-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/application-certificate.png -------------------------------------------------------------------------------- /docs/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/close.gif -------------------------------------------------------------------------------- /docs/images/collapsed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/collapsed.gif -------------------------------------------------------------------------------- /docs/images/community-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/community-logo.png -------------------------------------------------------------------------------- /docs/images/contact-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/contact-new.png -------------------------------------------------------------------------------- /docs/images/document-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/document-properties.png -------------------------------------------------------------------------------- /docs/images/drive-harddisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/drive-harddisk.png -------------------------------------------------------------------------------- /docs/images/expanded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/expanded.gif -------------------------------------------------------------------------------- /docs/images/external.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/external.png -------------------------------------------------------------------------------- /docs/images/fix.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/fix.gif -------------------------------------------------------------------------------- /docs/images/icon_error_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/icon_error_sml.gif -------------------------------------------------------------------------------- /docs/images/icon_help_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/icon_help_sml.gif -------------------------------------------------------------------------------- /docs/images/icon_info_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/icon_info_sml.gif -------------------------------------------------------------------------------- /docs/images/icon_success_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/icon_success_sml.gif -------------------------------------------------------------------------------- /docs/images/icon_warning_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/icon_warning_sml.gif -------------------------------------------------------------------------------- /docs/images/image-x-generic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/image-x-generic.png -------------------------------------------------------------------------------- /docs/images/internet-web-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/internet-web-browser.png -------------------------------------------------------------------------------- /docs/images/logos/build-by-maven-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/logos/build-by-maven-black.png -------------------------------------------------------------------------------- /docs/images/logos/build-by-maven-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/logos/build-by-maven-white.png -------------------------------------------------------------------------------- /docs/images/logos/maven-feather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/logos/maven-feather.png -------------------------------------------------------------------------------- /docs/images/network-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/network-server.png -------------------------------------------------------------------------------- /docs/images/newwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/newwindow.png -------------------------------------------------------------------------------- /docs/images/package-x-generic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/package-x-generic.png -------------------------------------------------------------------------------- /docs/images/profiles/pre-release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/profiles/pre-release.png -------------------------------------------------------------------------------- /docs/images/profiles/retired.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/profiles/retired.png -------------------------------------------------------------------------------- /docs/images/profiles/sandbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/profiles/sandbox.png -------------------------------------------------------------------------------- /docs/images/remove.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/remove.gif -------------------------------------------------------------------------------- /docs/images/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/rss.png -------------------------------------------------------------------------------- /docs/images/update.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/update.gif -------------------------------------------------------------------------------- /docs/images/window-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/images/window-new.png -------------------------------------------------------------------------------- /docs/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /docs/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/docs/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | WildFly Maven Plugin – Introduction 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 27 | 28 | 35 |
36 |
37 |
38 | 66 | 75 |
76 |
77 |
78 |

wildscribe-maven-plugin (wildscribe-maven-plugin)

79 |

The wildscribe-maven-plugin is used to generate a model description web site for an instance of WildFly. The plugin will start the server, dump the model description, create a file for messages, stop the server and generate the Wildscribe site.

80 |

Goals Overview

81 |

General information about the goals.

82 |
84 |

Usage

85 |

General instructions on how to use the wildscribe-maven-plugin can be found on the usage page. Some more specific use cases are described in the examples given below. Last but not least, users occasionally contribute additional examples, tips or errata to the WildFly wiki page.

86 |

In case you still have questions regarding the plugin's usage, please have a look at the FAQ and feel free to contact the user mailing list. The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching the mail archive.

87 |

If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our issue tracker. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our source repository and will find supplementary information in the guide to helping with Maven.

88 |

Examples

89 |

To provide you with better understanding of some usages of the wildscribe-maven-plugin, you can take a look into the following example:

90 |
92 |
93 |
94 |
95 |
96 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /docs/issue-management.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Issue Management 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 64 | 73 |
74 |
75 |
76 |

Overview

77 |

This project uses GitHub Issues to manage its issues.

78 |

Issue Management

79 |

Issues, bugs, and feature requests should be submitted to the following issue management system for this project.

80 |
81 |
82 |
83 |
84 |
85 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /docs/mailing-lists.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Project Mailing Lists 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 64 | 73 |
74 |
75 |
76 |

Project Mailing Lists

77 |

These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.

78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
NameSubscribeUnsubscribePostArchive
JBoss User ListSubscribeUnsubscribe-lists.jboss.org
WildFly Developer ListSubscribeUnsubscribe-lists.jboss.org
97 |
98 |
99 |
100 |
101 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /docs/plugin-info.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Plugin Documentation 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 53 | 62 |
63 |
64 |
65 |

Plugin Documentation

66 |

This report describes goals, parameters details, requirements and sample usage of this plugin.

67 |

Goals

68 |

Goals available for this plugin:

69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 |
GoalDescription
wildscribe:generate-siteA simple plugin used to generate a Wildscribe site.
wildscribe:helpDisplay help information on wildscribe-maven-plugin. 79 |
80 | Call mvn wildscribe:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
81 |

System Requirements

82 |

The following specifies the minimum requirements to run this Maven plugin:

83 | 84 | 85 | 86 | 87 | 88 | 89 |
Maven3.6.2
JDK16
90 |

System Requirements History

91 |

The following specifies the minimum requirements to run this Maven plugin for historical versions:

92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 |
Plugin VersionMavenJDK
3.1.0.Final3.6.211
3.0.0.Final3.9.411
from 2.0.0.Beta2 to 2.1.0.Final3.5.28
109 |

Usage

110 |

You should specify the version in your project's plugin configuration:

111 |
<project>
112 |   ...
113 |   <build>
114 |     <!-- To define the plugin version in your parent POM -->
115 |     <pluginManagement>
116 |       <plugins>
117 |         <plugin>
118 |           <groupId>org.jboss.wildscribe</groupId>
119 |           <artifactId>wildscribe-maven-plugin</artifactId>
120 |           <version>3.1.0.Final</version>
121 |         </plugin>
122 |         ...
123 |       </plugins>
124 |     </pluginManagement>
125 |     <!-- To use the plugin goals in your POM or parent POM -->
126 |     <plugins>
127 |       <plugin>
128 |         <groupId>org.jboss.wildscribe</groupId>
129 |         <artifactId>wildscribe-maven-plugin</artifactId>
130 |       </plugin>
131 |       ...
132 |     </plugins>
133 |   </build>
134 |   ...
135 | </project>
136 |

For more information, see "Guide to Configuring Plug-ins"

137 |
138 |
139 |
140 |
141 | 148 | 149 | 150 | -------------------------------------------------------------------------------- /docs/project-reports.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Generated Reports 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 53 | 62 |
63 |
64 |
65 |

Generated Reports

66 |

This document provides an overview of the various reports that are automatically generated by Maven . Each report is briefly described below.

67 |

Overview

68 | 69 | 70 | 71 | 72 | 73 | 74 |
DocumentDescription
Plugin DocumentationThis report describes goals, parameters details, requirements and sample usage of this plugin.
75 |
76 |
77 |
78 |
79 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /docs/scm.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Source Code Management 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 64 | 73 |
74 |
75 |
76 |

Overview

77 |

This project uses Git to manage its source code. Instructions on Git use can be found at https://git-scm.com/documentation.

78 |

Web Browser Access

79 |

The following is a link to a browsable version of the source repository:

80 |
81 |

Anonymous Access

82 |

The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

83 |
$ git clone //github.com/wildscribe/wildscribe.git
84 |

Developer Access

85 |

Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

86 |
$ git clone //github.com/wildscribe/wildscribe.git
87 |

Access from Behind a Firewall

88 |

Refer to the documentation of the SCM used for more information about access behind a firewall.

89 |
90 |
91 |
92 |
93 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /docs/summary.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Project Summary 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 64 | 73 |
74 |
75 |
76 |

Project Summary

77 |

Project Information

78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 89 | 90 | 91 |
FieldValue
Namewildscribe-maven-plugin
DescriptionDocumentation generator for all Application servers based 88 | on Wildfly, including AS 7.x, Wildfly 8.x, JBoss EAP 6.x and JBoss EAP 7.x
Homepagehttps://wildscribe.github.io
92 |

Project Organization

93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 |
FieldValue
NameJBoss by Red Hat
URLhttp://www.jboss.org
103 |

Build Information

104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 |
FieldValue
GroupIdorg.jboss.wildscribe
ArtifactIdwildscribe-maven-plugin
Version3.1.0.Final
Typemaven-plugin
Java Version11
123 |
124 |
125 |
126 |
127 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /docs/team.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | WildFly Maven Plugin – Project Team 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 25 | 26 | 33 |
34 |
35 |
36 | 64 | 73 |
74 |
75 |
76 |

Project Team

77 |

A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

78 |

The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

79 |

Members

80 |

The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 |
IdNameOrganizationOrganization URL
jboss.orgJBoss.org CommunityJBoss.orghttp://www.jboss.org
92 |

Contributors

93 |

There are no contributors listed for this project. Please check back again later.

94 |
95 |
96 |
97 |
98 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /docs/usage.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | WildFly Maven Plugin – Usage 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 27 | 28 | 35 |
36 |
37 |
38 | 52 | 61 |
62 |
63 |
64 |

Usage

65 |

The wildscribe-maven-plugin is used to generate a Wildscribe site for a WildFly server. The jboss-home parameter is used to start the server and generate a site based on that server.

66 |

The wildscribe:generate-site Goal

67 |

The wildscribe:generate-site goal generates a Wildscribe site for the WildFly defined by the jboss-home configuration parameter.

68 |

For example to add a resource you type the following on the command line:

69 |
mvn wildscribe:generate-site
70 |
71 |
72 |
73 |
74 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /message-dumper/README.md: -------------------------------------------------------------------------------- 1 | = Message Dumper 2 | 3 | ```java -jar message-dumper/target/message-dumper.jar /Users/rhusar/STATIC/wf/wildfly-13.0.0.Final/modules/ models/standalone/Wildfly-13.0.0.Final.messages``` 4 | or 5 | ```mvn -pl message-dumper exec:java -Dexec.args="/Users/rhusar/STATIC/wf/wildfly-13.0.0.Final/modules/ models/standalone/Wildfly-13.0.0.Final.messages``` 6 | 7 | 8 | -------------------------------------------------------------------------------- /message-dumper/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | org.jboss.wildscribe 9 | wildscribe-parent 10 | 3.1.1.Final-SNAPSHOT 11 | ../pom.xml 12 | 13 | message-dumper 14 | 15 | 16 | 17 | org.apache.maven.plugins 18 | maven-jar-plugin 19 | 20 | 21 | 22 | org.wildscribe.logs.Main 23 | 24 | 25 | 26 | 27 | 28 | maven-shade-plugin 29 | 30 | 31 | package 32 | 33 | shade 34 | 35 | 36 | 37 | 38 | 39 | org.codehaus.mojo 40 | exec-maven-plugin 41 | 42 | java 43 | org.wildscribe.logs.Main 44 | 45 | -jar 46 | target/${project.build.finalName}.jar 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.javassist 57 | javassist 58 | 59 | 60 | org.jboss.logging 61 | jboss-logging 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /message-dumper/src/main/java/org/wildscribe/logs/Main.java: -------------------------------------------------------------------------------- 1 | package org.wildscribe.logs; 2 | 3 | import java.nio.file.Path; 4 | import java.nio.file.Paths; 5 | 6 | public class Main { 7 | 8 | public static void main(String[] params) throws Exception { 9 | if (params.length != 2) { 10 | System.out.println("Usage: dumper.jar path-to-modules output-file"); 11 | System.exit(1); 12 | } 13 | Path moduleDir = Paths.get(params[0]); 14 | final Path target = Paths.get(params[1]); 15 | MessageExporter.export(moduleDir, target); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /model-dumper/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 23 | 4.0.0 24 | 25 | 26 | org.jboss.wildscribe 27 | wildscribe-parent 28 | 3.1.1.Final-SNAPSHOT 29 | ../pom.xml 30 | 31 | 32 | wildscribe-model-dumper 33 | 34 | Wildscribe Model Dumper 35 | 36 | 37 | 38 | 39 | org.wildfly.core 40 | wildfly-controller-client 41 | 42 | 43 | 44 | 45 | 46 | junit 47 | junit 48 | test 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | src/main/resources 57 | true 58 | 59 | 60 | 61 | 62 | src/test/resources 63 | 64 | 65 | src/test/java 66 | 67 | **/*.java 68 | 69 | 70 | 71 | 72 | 73 | 74 | org.apache.maven.plugins 75 | maven-surefire-plugin 76 | 77 | true 78 | reversealphabetical 79 | 80 | 81 | 82 | 83 | org.apache.maven.plugins 84 | maven-shade-plugin 85 | 86 | 87 | package 88 | 89 | shade 90 | 91 | 92 | 93 | 94 | 95 | org.apache.maven.plugins 96 | maven-jar-plugin 97 | 98 | 99 | 100 | org.jboss.wildscribe.modeldumper.Main 101 | 102 | 103 | 104 | 105 | 106 | org.codehaus.mojo 107 | exec-maven-plugin 108 | 109 | java 110 | org.jboss.wildscribe.modeldumper.Main 111 | 112 | -jar 113 | target/${project.build.finalName}.jar 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /model-dumper/src/main/java/org/jboss/wildscribe/modeldumper/Configuration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.jboss.wildscribe.modeldumper; 18 | 19 | import java.nio.file.Path; 20 | import java.util.Collection; 21 | import java.util.Collections; 22 | import java.util.LinkedHashSet; 23 | import java.util.Set; 24 | 25 | import org.jboss.dmr.ModelNode; 26 | 27 | /** 28 | * The configuration used to export the model of a running server to a DMR file. 29 | * 30 | * @author James R. Perkins 31 | */ 32 | @SuppressWarnings({"WeakerAccess", "PublicMethodNotExposedInInterface", "UnusedReturnValue"}) 33 | public class Configuration { 34 | 35 | private final Path targetFile; 36 | private final Set requiredExtensions; 37 | private String protocol; 38 | private String hostName; 39 | private int port; 40 | private ModelNode address; 41 | 42 | @SuppressWarnings("MagicNumber") 43 | private Configuration(final Path targetFile) { 44 | this.targetFile = targetFile; 45 | this.requiredExtensions = new LinkedHashSet<>(); 46 | this.protocol = null; 47 | this.hostName = "localhost"; 48 | this.port = 9990; 49 | this.address = new ModelNode().setEmptyList(); 50 | } 51 | 52 | /** 53 | * Creates a new configuration for the {@linkplain ModelExporter model exporter}. 54 | * 55 | * @param targetFile the file to write the model to 56 | * 57 | * @return a new configuration 58 | */ 59 | public static Configuration of(final Path targetFile) { 60 | return new Configuration(targetFile); 61 | } 62 | 63 | /** 64 | * The address where the model should be dumped from. The default is {@code null}. 65 | * 66 | * @return the model where the model should be dumped from or {@code null} 67 | */ 68 | public ModelNode getAddress() { 69 | return address; 70 | } 71 | 72 | /** 73 | * Sets the address where the model should be dumped from. 74 | * 75 | * @param address the address where the model should be dumped from or {@code null} for the root resource 76 | * 77 | * @return this configuration 78 | */ 79 | public Configuration setAddress(final ModelNode address) { 80 | this.address = address; 81 | return this; 82 | } 83 | 84 | /** 85 | * Returns the host name used for the management connection. The default is {@code localhost}. 86 | * 87 | * @return the management host name 88 | */ 89 | public String getHostName() { 90 | return hostName; 91 | } 92 | 93 | /** 94 | * Sets the host name used for the management connection. 95 | * 96 | * @param hostName the host name 97 | * 98 | * @return this configuration 99 | */ 100 | public Configuration setHostName(final String hostName) { 101 | this.hostName = hostName == null ? "localhost" : hostName; 102 | return this; 103 | } 104 | 105 | /** 106 | * Returns the management port fot the client to connect to. The default is {@code 9990}. 107 | * 108 | * @return the management port 109 | */ 110 | public int getPort() { 111 | return port; 112 | } 113 | 114 | /** 115 | * Sets the management port for the client to connect to. 116 | * 117 | * @param port the management port 118 | * 119 | * @return this configuration 120 | */ 121 | public Configuration setPort(final int port) { 122 | this.port = port; 123 | return this; 124 | } 125 | 126 | /** 127 | * Returns the protocol used for the management connection. The default is {@code null}. 128 | * 129 | * @return the management protocol 130 | */ 131 | public String getProtocol() { 132 | return protocol; 133 | } 134 | 135 | /** 136 | * Sets the protocol used for the management connection. 137 | * 138 | * @param protocol the protocol or {@code null} to use a default value 139 | * 140 | * @return this configuration 141 | */ 142 | public Configuration setProtocol(final String protocol) { 143 | this.protocol = protocol; 144 | return this; 145 | } 146 | 147 | /** 148 | * Adds a required extension to validate the extension has been added to the running server. 149 | * 150 | * @param name the extension name 151 | * 152 | * @return this configuration 153 | */ 154 | public Configuration addRequiredExtension(final String name) { 155 | requiredExtensions.add(name); 156 | return this; 157 | } 158 | 159 | /** 160 | * Adds the required extensiosn to validate the extensions have been added to the running server. 161 | * 162 | * @param names the extension names 163 | * 164 | * @return this configuration 165 | */ 166 | public Configuration addRequiredExtensions(final String... names) { 167 | Collections.addAll(requiredExtensions, names); 168 | return this; 169 | } 170 | 171 | /** 172 | * Adds the required extensions to validate the extensions have been added to the running server. 173 | * 174 | * @param names the extension names 175 | * 176 | * @return this configuration 177 | */ 178 | public Configuration addRequiredExtensions(final Collection names) { 179 | requiredExtensions.addAll(names); 180 | return this; 181 | } 182 | 183 | /** 184 | * Returns the required extensions to validate they have been added to the running server. 185 | * 186 | * @return the extensions 187 | */ 188 | public Set getRequiredExtensions() { 189 | return new LinkedHashSet<>(requiredExtensions); 190 | } 191 | 192 | /** 193 | * Returns the target file to write the model to. 194 | * 195 | * @return the target file 196 | */ 197 | public Path getTargetFile() { 198 | return targetFile; 199 | } 200 | } 201 | -------------------------------------------------------------------------------- /model-dumper/src/main/java/org/jboss/wildscribe/modeldumper/Main.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.modeldumper; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Path; 5 | import java.nio.file.Paths; 6 | import java.util.ArrayList; 7 | import java.util.Collections; 8 | import java.util.List; 9 | 10 | import org.jboss.dmr.ModelNode; 11 | 12 | public class Main { 13 | 14 | // Constants are package protected for unit testing 15 | static final String REQUIRED_EXTENSIONS_PROPERTY = "org.jboss.wildscribe.moduledumper.required-extensions"; 16 | static final List REQUIRED_EXTENSIONS; 17 | 18 | static { 19 | String required = System.getProperty(REQUIRED_EXTENSIONS_PROPERTY); 20 | if (required != null && !required.isEmpty()) { 21 | List requiredList = new ArrayList<>(); 22 | for (String s : required.split(",")) { 23 | requiredList.add(s.trim()); 24 | } 25 | REQUIRED_EXTENSIONS = Collections.unmodifiableList(requiredList); 26 | } else { 27 | REQUIRED_EXTENSIONS = Collections.emptyList(); 28 | } 29 | } 30 | 31 | public static void main(final String[] args) throws IOException { 32 | 33 | if (args.length != 1) { 34 | System.out.println("USAGE: java [-Dpath=dump-path-in-cli-format] -jar model-dumper.jar target-file"); 35 | System.exit(1); 36 | } 37 | 38 | final Path target = Paths.get(args[0]); 39 | final Configuration configuration = Configuration.of(target) 40 | .addRequiredExtensions(REQUIRED_EXTENSIONS); 41 | 42 | final ModelNode addr = new ModelNode().setEmptyList(); 43 | final String address = System.getProperty("path"); 44 | if (address != null) { 45 | String[] parts = address.split("/"); 46 | for (String p : parts) { 47 | String[] kv = p.split("="); 48 | if (kv.length != 2) { 49 | throw new RuntimeException("invalid address " + address); 50 | } 51 | addr.add(kv[0], kv[1]); 52 | } 53 | } 54 | configuration.setAddress(addr); 55 | ModelExporter.toDmr(configuration); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /model-dumper/src/main/java/org/jboss/wildscribe/modeldumper/ModelExporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.jboss.wildscribe.modeldumper; 18 | 19 | import java.io.DataOutputStream; 20 | import java.io.IOException; 21 | import java.io.OutputStream; 22 | import java.nio.file.Files; 23 | import java.nio.file.Path; 24 | import java.util.Set; 25 | import java.util.stream.Collectors; 26 | 27 | import org.jboss.as.controller.client.ModelControllerClient; 28 | import org.jboss.as.controller.client.helpers.Operations; 29 | import org.jboss.dmr.ModelNode; 30 | 31 | /** 32 | * A utility which dumps the model of a running container to a file. 33 | * 34 | * @author James R. Perkins 35 | */ 36 | public class ModelExporter { 37 | private static final ModelNode EMPTY_ADDRESS = new ModelNode().setEmptyList(); 38 | 39 | /** 40 | * Exports the model from a running server to a DMR file. 41 | * 42 | * @param configuration the configuration to use 43 | * 44 | * @return the path to the DMR file 45 | * 46 | * @throws IOException if an error occurs writing the model 47 | */ 48 | public static Path toDmr(final Configuration configuration) throws IOException { 49 | final Path target = configuration.getTargetFile(); 50 | try ( 51 | ModelControllerClient client = ModelControllerClient.Factory.create(configuration.getProtocol(), configuration.getHostName(), configuration.getPort()); 52 | OutputStream out = Files.newOutputStream(configuration.getTargetFile()) 53 | ) { 54 | 55 | final ModelNode address = configuration.getAddress(); 56 | 57 | final Set requiredExtensions = configuration.getRequiredExtensions(); 58 | if (!requiredExtensions.isEmpty()) { 59 | final Set present = getExtensions(client); 60 | for (String ext : present) { 61 | requiredExtensions.remove(ext); 62 | } 63 | } 64 | if (!requiredExtensions.isEmpty()) { 65 | throw new RuntimeException(String.format("Running configuration is missing the following required extensions: %s", requiredExtensions)); 66 | } 67 | 68 | final ModelNode operation = Operations.createOperation("read-resource-description", address); 69 | operation.get("operations").set(true); 70 | operation.get("inherited").set(false); 71 | operation.get("recursive").set(true); 72 | try { 73 | final ModelNode result = executeForResult(client, operation); 74 | result.get("possible-capabilities").set(getPossibleCapabilities(client)); 75 | result.get("version-info").set(getVersionInfo(client)); 76 | result.writeExternal(new DataOutputStream(out)); 77 | } catch (IOException e) { 78 | throw new RuntimeException(e); 79 | } 80 | } 81 | return target; 82 | } 83 | 84 | /*Path export(); 85 | 86 | Path export(Path target);*/ 87 | 88 | private static Set getExtensions(final ModelControllerClient client) throws IOException { 89 | final ModelNode operation = Operations.createOperation("read-children-names"); 90 | operation.get("child-type").set("extension"); 91 | final ModelNode result = executeForResult(client, operation); 92 | return result.asList().stream().map(ModelNode::asString).collect(Collectors.toSet()); 93 | } 94 | 95 | 96 | private static ModelNode executeForResult(final ModelControllerClient client, final ModelNode operation) throws IOException { 97 | final ModelNode result = client.execute(operation); 98 | if (Operations.isSuccessfulOutcome(result)) { 99 | return Operations.readResult(result); 100 | } 101 | throw new RuntimeException(String.format("Failed to execute the operation %s:%n%s", operation, Operations.getFailureDescription(result))); 102 | } 103 | 104 | private static ModelNode getPossibleCapabilities(final ModelControllerClient client) { 105 | final ModelNode address = Operations.createAddress("core-service", "capability-registry"); 106 | try { 107 | return executeForResult(client, Operations.createReadAttributeOperation(address, "possible-capabilities")); 108 | } catch (Exception e) { 109 | return new ModelNode().setEmptyList(); 110 | } 111 | } 112 | 113 | private static ModelNode getVersionInfo(final ModelControllerClient client) { 114 | final ModelNode operation = Operations.createReadResourceOperation(EMPTY_ADDRESS); 115 | operation.get("attributes-only").set(true); 116 | try { 117 | return executeForResult(client, operation); 118 | } catch (IOException e) { 119 | return new ModelNode().setEmptyObject(); 120 | } 121 | } 122 | 123 | } 124 | -------------------------------------------------------------------------------- /model-dumper/src/test/java/org/jboss/wildscribe/modeldumper/ChildFirstClassLoader.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.modeldumper; 2 | 3 | import java.io.IOException; 4 | import java.net.URL; 5 | import java.net.URLClassLoader; 6 | import java.util.ArrayList; 7 | import java.util.Enumeration; 8 | import java.util.List; 9 | import java.util.regex.Pattern; 10 | 11 | /** 12 | * Internal use only. 13 | * 14 | * @author Kabir Khan 15 | */ 16 | public class ChildFirstClassLoader extends URLClassLoader { 17 | 18 | private final ClassLoader parent; 19 | private final Pattern childFirst; 20 | 21 | ChildFirstClassLoader(ClassLoader parent) throws IOException { 22 | this(parent, Pattern.compile("org.jboss.wildscribe.modeldumper.Main*")); 23 | } 24 | 25 | ChildFirstClassLoader(ClassLoader parent, Pattern childFirst) throws IOException { 26 | super(getParentURLs(parent), parent); 27 | assert childFirst != null : "Null child first"; 28 | this.parent = parent; 29 | this.childFirst = childFirst; 30 | registerAsParallelCapable(); 31 | } 32 | 33 | private static URL[] getParentURLs(ClassLoader parent) throws IOException { 34 | Enumeration urls = parent.getResources(""); 35 | List urlList = new ArrayList<>(); 36 | while (urls.hasMoreElements()) { 37 | urlList.add(urls.nextElement()); 38 | } 39 | return urlList.toArray(new URL[0]); 40 | } 41 | 42 | protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { 43 | 44 | // First, check if the class has already been loaded 45 | Class c = findLoadedClass(name); 46 | if (c == null) { 47 | try { 48 | c = findClass(name); 49 | } catch (ClassNotFoundException e) { 50 | if (childFirst.matcher(name).matches()) { 51 | throw e; 52 | } 53 | } 54 | if (c == null) { 55 | c = parent.loadClass(name); 56 | } 57 | if (c == null) { 58 | findClass(name); 59 | } 60 | } 61 | if (resolve) { 62 | resolveClass(c); 63 | } 64 | return c; 65 | } 66 | 67 | @Override 68 | protected Class findClass(String name) throws ClassNotFoundException { 69 | if (childFirst.matcher(name).matches()) { 70 | return super.findClass(name); 71 | } else { 72 | throw new ClassNotFoundException(name); 73 | } 74 | } 75 | 76 | @Override 77 | public URL findResource(String name) { 78 | assert name != null; 79 | String toPath = name.replace('.', ','); 80 | return childFirst.matcher(toPath).matches() ? super.findResource(name) : null; 81 | } 82 | 83 | @Override 84 | public Enumeration findResources(String name) throws IOException { 85 | assert name != null; 86 | String toPath = name.replace('.', ','); 87 | return childFirst.matcher(toPath).matches() ? super.findResources(name) : new Enumeration() { 88 | @Override 89 | public boolean hasMoreElements() { 90 | return false; 91 | } 92 | 93 | @Override 94 | public URL nextElement() { 95 | return null; 96 | } 97 | }; 98 | } 99 | } 100 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /model-dumper/src/test/java/org/jboss/wildscribe/modeldumper/RequiredExtensionsUnitTestCase.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.modeldumper; 2 | 3 | import static org.jboss.wildscribe.modeldumper.Main.REQUIRED_EXTENSIONS_PROPERTY; 4 | import static org.junit.Assert.assertEquals; 5 | import static org.junit.Assert.assertNotNull; 6 | import static org.junit.Assert.assertTrue; 7 | 8 | 9 | import java.io.IOException; 10 | import java.lang.reflect.Field; 11 | import java.util.List; 12 | 13 | import org.junit.Test; 14 | 15 | public class RequiredExtensionsUnitTestCase { 16 | 17 | private static final String ONE = "one"; 18 | private static final String TWO = "two"; 19 | 20 | @Test 21 | public void testDefault() { 22 | List required = getRequiredExtensions(); 23 | assertNotNull(required); 24 | assertEquals(required.toString(), 0, required.size()); 25 | } 26 | 27 | @Test 28 | public void testEmpty() { 29 | System.setProperty(REQUIRED_EXTENSIONS_PROPERTY, ""); 30 | try { 31 | List required = getRequiredExtensions(); 32 | assertNotNull(required); 33 | assertEquals(required.toString(), 0, required.size()); 34 | } finally { 35 | System.clearProperty(REQUIRED_EXTENSIONS_PROPERTY); 36 | } 37 | } 38 | 39 | @Test 40 | public void testOne() { 41 | System.setProperty(REQUIRED_EXTENSIONS_PROPERTY, ONE); 42 | try { 43 | List required = getRequiredExtensions(); 44 | assertNotNull(required); 45 | assertEquals(required.toString(), 1, required.size()); 46 | assertTrue(required.toString(), required.contains(ONE)); 47 | } finally { 48 | System.clearProperty(REQUIRED_EXTENSIONS_PROPERTY); 49 | } 50 | } 51 | 52 | @Test 53 | public void testTwo() { 54 | System.setProperty(REQUIRED_EXTENSIONS_PROPERTY, ONE + "," + TWO); 55 | try { 56 | List required = getRequiredExtensions(); 57 | assertNotNull(required); 58 | assertEquals(required.toString(), 2, required.size()); 59 | assertTrue(required.toString(), required.contains(ONE)); 60 | assertTrue(required.toString(), required.contains(TWO)); 61 | } finally { 62 | System.clearProperty(REQUIRED_EXTENSIONS_PROPERTY); 63 | } 64 | } 65 | 66 | @Test 67 | public void testTrim() { 68 | System.setProperty(REQUIRED_EXTENSIONS_PROPERTY, ONE + " , " + TWO); 69 | try { 70 | List required = getRequiredExtensions(); 71 | assertNotNull(required); 72 | assertEquals(required.toString(), 2, required.size()); 73 | assertTrue(required.toString(), required.contains(ONE)); 74 | assertTrue(required.toString(), required.contains(TWO)); 75 | } finally { 76 | System.clearProperty(REQUIRED_EXTENSIONS_PROPERTY); 77 | } 78 | } 79 | 80 | private static List getRequiredExtensions() { 81 | 82 | try { 83 | ChildFirstClassLoader cfcl = new ChildFirstClassLoader(RequiredExtensionsUnitTestCase.class.getClassLoader()); 84 | Class clazz = cfcl.loadClass("org.jboss.wildscribe.modeldumper.Main", true); 85 | assertEquals(cfcl, clazz.getClassLoader()); 86 | Field field = clazz.getDeclaredField("REQUIRED_EXTENSIONS"); 87 | field.setAccessible(true); 88 | //noinspection unchecked 89 | return (List) field.get(null); 90 | } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException | IOException e) { 91 | throw new AssertionError(e.toString()); 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /models/README.md: -------------------------------------------------------------------------------- 1 | Models Data Directory 2 | ===================== 3 | 4 | This directory contains a representation of the model of various versions of the Wildfly, JBoss EAP and JBoss AS7 application 5 | servers. These diffs are generated against the standalone-full-ha.xml profile, with the RTS, XTS and Agroal subsystems added to the profile 6 | (note that some of the older models were generated against standalone-full.xml, and as such are missing some subsystems). 7 | 8 | This data allows the Wildscribe pages to be generated offline, without a running server instance. It also means that at some 9 | stage it should be possible to generate diff's of the models. 10 | 11 | Add additional subsystems 12 | ===================== 13 | 14 | $JBOSS_HOME/bin/jboss-cli.sh -c --commands=/extension=org.wildfly.extension.rts:add,/extension=org.jboss.as.xts:add,/extension=org.wildfly.extension.datasources-agroal:add,/extension=org.jboss.as.clustering.jgroups:add 15 | 16 | Dumping models 17 | ======================= 18 | To dump models: 19 | 20 | - Start the version of the server from which you wish to dump models. 21 | - Execute the model-dumper: 22 | $ java -jar model-dumper/target/model-dumper.jar models/standalone/Wildfly-XYZ.Final.dmr 23 | 24 | Where XYZ is the version of the running server (for example 10.0.0-Final for Wildfly-10.0.0-Final). Output will be in models/standalone/ with the specified filename (Wildfly-XYZ.Final.dmr). 25 | 26 | Note: Generation of the model may result in out-of-memory. Edit $WILDFLY_HOME/bin/standalone.conf, and increase the max heap (-Xmx) in JAVA_OPTS, and restart the server. 27 | -------------------------------------------------------------------------------- /models/standalone/JBoss-AS7-7.1.1.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-AS7-7.1.1.Final.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-6.0.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-6.0.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-6.1.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-6.1.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-6.2.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-6.2.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-6.3.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-6.3.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-6.4.7.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-6.4.7.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-6.4.7.GA.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-6.4.7.GA.messages -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.0.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.0.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.0.0.GA.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.0.0.GA.messages -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.1.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.1.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.1.0.GA.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.1.0.GA.messages -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.2.0.GA.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.2.0.GA.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.2.0.GA.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.2.0.GA.messages -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.3.0.CD16.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.3.0.CD16.dmr -------------------------------------------------------------------------------- /models/standalone/JBoss-EAP-7.3.0.CD16.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/JBoss-EAP-7.3.0.CD16.messages -------------------------------------------------------------------------------- /models/standalone/WildFly-15.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-15.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/WildFly-15.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-15.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/WildFly-16.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-16.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/WildFly-16.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-16.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/WildFly-17.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-17.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/WildFly-17.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-17.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/WildFly-18.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-18.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/WildFly-18.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/WildFly-18.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/Wildfly-10.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-10.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-10.1.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-10.1.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-11.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-11.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-11.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-11.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/Wildfly-12.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-12.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-12.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-12.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/Wildfly-13.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-13.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-13.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-13.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/Wildfly-14.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-14.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-14.0.0.Final.messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-14.0.0.Final.messages -------------------------------------------------------------------------------- /models/standalone/Wildfly-8.0.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-8.0.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-8.1.0.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-8.1.0.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-8.2.1.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-8.2.1.Final.dmr -------------------------------------------------------------------------------- /models/standalone/Wildfly-9.0.2.Final.dmr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/models/standalone/Wildfly-9.0.2.Final.dmr -------------------------------------------------------------------------------- /models/standalone/versions.txt: -------------------------------------------------------------------------------- 1 | WildFly:18.0:WildFly-18.0.0.Final.dmr 2 | WildFly:17.0:WildFly-17.0.0.Final.dmr 3 | WildFly:16.0:WildFly-16.0.0.Final.dmr 4 | WildFly:15.0:WildFly-15.0.0.Final.dmr 5 | WildFly:14.0:Wildfly-14.0.0.Final.dmr 6 | WildFly:13.0:Wildfly-13.0.0.Final.dmr 7 | WildFly:12.0:Wildfly-12.0.0.Final.dmr 8 | WildFly:11.0:Wildfly-11.0.0.Final.dmr 9 | WildFly:10.1:Wildfly-10.1.0.Final.dmr 10 | WildFly:10.0:Wildfly-10.0.0.Final.dmr 11 | WildFly:9.0:Wildfly-9.0.2.Final.dmr 12 | WildFly:8.2:Wildfly-8.2.1.Final.dmr 13 | WildFly:8.1:Wildfly-8.1.0.Final.dmr 14 | WildFly:8.0:Wildfly-8.0.0.Final.dmr 15 | JBoss EAP:7.2:JBoss-EAP-7.2.0.GA.dmr 16 | JBoss EAP:7.1:JBoss-EAP-7.1.0.GA.dmr 17 | JBoss EAP:7.0:JBoss-EAP-7.0.0.GA.dmr 18 | JBoss EAP:6.4:JBoss-EAP-6.4.7.GA.dmr 19 | JBoss EAP:6.3:JBoss-EAP-6.3.0.GA.dmr 20 | JBoss EAP:6.2:JBoss-EAP-6.2.0.GA.dmr 21 | JBoss EAP:6.1:JBoss-EAP-6.1.0.GA.dmr 22 | JBoss EAP:6.0:JBoss-EAP-6.0.0.GA.dmr 23 | JBoss AS7:7.1.1:JBoss-AS7-7.1.1.Final.dmr 24 | -------------------------------------------------------------------------------- /site-generator/README.md: -------------------------------------------------------------------------------- 1 | Wildscribe Site Generator 2 | ================================== 3 | 4 | To generate a the model documentation for a single version execute the following command replacing the version numbers. 5 | 6 | ``` 7 | mvn clean verify -pl site-generator exec:java -Dversions.txt.dir=models/standalone/WildFly-17.0.0.Final.dmr -Dsite.url="" -Dserver.version=WildFly-17.0.0.Final 8 | ``` 9 | -------------------------------------------------------------------------------- /site-generator/src/it/generate-single-version/invoker.properties: -------------------------------------------------------------------------------- 1 | ## short form requires set plugin group in settings.xml 2 | invoker.goals="exec:java" 3 | #invoker.profiles=javadocDist 4 | invoker.failureBehavior=fail-fast 5 | -------------------------------------------------------------------------------- /site-generator/src/it/generate-single-version/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 23 | 4.0.0 24 | 25 | org.jboss.wildscribe 26 | wildscribe-it-generate-single-version 27 | @project.version@ 28 | 29 | 30 | @versions.txt.dir@ 31 | ${project.basedir}/target/wildscribe-generated 32 | 1.6.0 33 | 34 | 35 | Wildscribe Site Generator ITs - Generate Single Version 36 | 37 | 38 | 39 | @project.groupId@ 40 | @project.artifactId@ 41 | @project.version@ 42 | 43 | 44 | 45 | 46 | 47 | 48 | org.codehaus.mojo 49 | exec-maven-plugin 50 | ${version.exec.plugin} 51 | 52 | org.jboss.wildscribe.site.Main 53 | 54 | ${versions.txt.dir} 55 | ${output.dir} 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /site-generator/src/it/generate-single-version/postbuild.groovy: -------------------------------------------------------------------------------- 1 | import java.nio.file.Files 2 | 3 | separator = File.separator 4 | String filename = '../../../target/it/generate-single-version/target/wildscribe-generated/index.html'; 5 | filename = filename.replace("/", separator) 6 | File indexFile = new File(basedir, filename); 7 | 8 | System.err.println('Generated index file ' + indexFile.getAbsolutePath()); 9 | assert indexFile.exists(); 10 | 11 | String indexFileContent = new String(Files.readAllBytes(indexFile.toPath())); 12 | assert indexFileContent.contains("href=\"css/bootstrap.min.css\"") 13 | 14 | return true; -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/AlertMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.jboss.wildscribe.site; 18 | 19 | /** 20 | * @author James R. Perkins 21 | */ 22 | public class AlertMessage { 23 | 24 | private String header; 25 | private String message; 26 | private boolean dismissible; 27 | private String type; 28 | 29 | public AlertMessage() { 30 | header = null; 31 | message = null; 32 | dismissible = false; 33 | type = "primary"; 34 | } 35 | 36 | public String getHeader() { 37 | return header; 38 | } 39 | 40 | public void setHeader(final String header) { 41 | this.header = header; 42 | } 43 | 44 | public String getMessage() { 45 | return message; 46 | } 47 | 48 | public void setMessage(final String message) { 49 | this.message = message; 50 | } 51 | 52 | public boolean isDismissible() { 53 | return dismissible; 54 | } 55 | 56 | public void setDismissible(final boolean dismissible) { 57 | this.dismissible = dismissible; 58 | } 59 | 60 | public String getType() { 61 | return type; 62 | } 63 | 64 | public void setType(final String type) { 65 | this.type = type == null ? "primary" : type; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Attribute.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Collection; 5 | 6 | import org.jboss.dmr.ModelNode; 7 | import org.jboss.dmr.Property; 8 | 9 | /** 10 | * @author Stuart Douglas 11 | */ 12 | public class Attribute implements Comparable { 13 | private final String name; 14 | private final String description; 15 | private final String type; 16 | private final boolean nillable; 17 | private final boolean expressionsAllowed; 18 | private final String defaultValue; 19 | private final Integer min; 20 | private final Integer max; 21 | private final String accessType; 22 | private final String storage; 23 | private final Deprecated deprecated; 24 | private final String unit; 25 | private final String restartRequired; 26 | private final String capabilityReference; 27 | private final String stability; 28 | private final Collection allowedValues; 29 | 30 | public Attribute(String name, String description, String type, boolean nillable, boolean expressionsAllowed, String defaultValue, Integer min, Integer max, String accessType, String storage, Deprecated deprecated, String unit, String restartRequired, String capabilityReference, String stability) { 31 | this.name = name; 32 | this.description = description; 33 | this.type = type; 34 | this.nillable = nillable; 35 | this.expressionsAllowed = expressionsAllowed; 36 | this.defaultValue = defaultValue; 37 | this.min = min; 38 | this.max = max; 39 | this.accessType = accessType; 40 | this.storage = storage; 41 | this.deprecated = deprecated; 42 | this.unit = unit; 43 | this.restartRequired = restartRequired; 44 | this.capabilityReference = capabilityReference; 45 | this.stability = stability; 46 | allowedValues = new ArrayList<>(); 47 | } 48 | 49 | public String getName() { 50 | return name; 51 | } 52 | 53 | public String getDescription() { 54 | return description; 55 | } 56 | 57 | @Override 58 | public int compareTo(Attribute o) { 59 | return name.compareTo(o.getName()); 60 | } 61 | 62 | public String getType() { 63 | return type; 64 | } 65 | 66 | public boolean isNillable() { 67 | return nillable; 68 | } 69 | 70 | public boolean isExpressionsAllowed() { 71 | return expressionsAllowed; 72 | } 73 | 74 | public String getDefaultValue() { 75 | return defaultValue; 76 | } 77 | 78 | public Integer getMin() { 79 | return min; 80 | } 81 | 82 | public Integer getMax() { 83 | return max; 84 | } 85 | 86 | public String getAccessType() { 87 | return accessType; 88 | } 89 | 90 | public String getStorage() { 91 | return storage; 92 | } 93 | 94 | public Deprecated getDeprecated() { 95 | return deprecated; 96 | } 97 | 98 | public String getUnit() { 99 | return unit; 100 | } 101 | 102 | public String getRestartRequired() { 103 | return restartRequired; 104 | } 105 | 106 | public String getCapabilityReference() { 107 | return capabilityReference; 108 | } 109 | 110 | public Collection getAllowedValues() { 111 | return allowedValues; 112 | } 113 | 114 | public String getStability() { 115 | return stability; 116 | } 117 | 118 | public static Attribute fromProperty(final Property property) { 119 | String name = property.getName(); 120 | String description = property.getValue().get("description").asString(); 121 | String type = property.getValue().get("type").asString(); 122 | boolean nilable = true; 123 | if (property.getValue().hasDefined("nillable")) { 124 | nilable = property.getValue().get("nillable").asBoolean(); 125 | } 126 | String defaultValue = null; 127 | if (property.getValue().hasDefined("default")) { 128 | defaultValue = property.getValue().get("default").asString(); 129 | } 130 | boolean expressionsAllowed = false; 131 | if (property.getValue().hasDefined("expressions-allowed")) { 132 | expressionsAllowed = property.getValue().get("expressions-allowed").asBoolean(); 133 | } 134 | Integer min = null; 135 | if (property.getValue().hasDefined("min")) { 136 | min = property.getValue().get("min").asInt(); 137 | } 138 | Integer max = null; 139 | if (property.getValue().hasDefined("max")) { 140 | max = property.getValue().get("max").asInt(); 141 | } 142 | String accessType = property.getValue().get("access-type").asString(); 143 | String storage = property.getValue().get("storage").asString(); 144 | String unit = null; 145 | if (property.getValue().hasDefined("unit")) { 146 | unit = property.getValue().get("unit").asString(); 147 | } 148 | String restartRequired = property.getValue().get("restart-required").asStringOrNull(); 149 | String capabilityReference = property.getValue().get("capability-reference").asStringOrNull(); 150 | String stability = property.getValue().get("stability").asStringOrNull(); 151 | Attribute op = new Attribute(name, description, type, nilable, expressionsAllowed, defaultValue, min, max, accessType, storage, Deprecated.fromModel(property.getValue()), unit, restartRequired, capabilityReference, stability); 152 | if (property.getValue().hasDefined("allowed")) { 153 | for (ModelNode allowed : property.getValue().get("allowed").asList()) { 154 | op.allowedValues.add(allowed.asString()); 155 | } 156 | } 157 | return op; 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Breadcrumb.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | /** 4 | * Used for displaying the breadcrumb bar 5 | * 6 | * @author Stuart Douglas 7 | */ 8 | public class Breadcrumb { 9 | 10 | private final String label; 11 | private final String url; 12 | 13 | public Breadcrumb(String label, String url) { 14 | this.label = label; 15 | this.url = url; 16 | } 17 | 18 | public String getLabel() { 19 | return label; 20 | } 21 | 22 | public String getUrl() { 23 | return url; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Capability.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import java.util.Collections; 4 | import java.util.LinkedList; 5 | import java.util.List; 6 | import java.util.Map; 7 | import java.util.stream.Collectors; 8 | 9 | import org.jboss.dmr.ModelNode; 10 | 11 | /** 12 | * @author Tomaz Cerar (c) 2017 Red Hat Inc. 13 | */ 14 | public class Capability { 15 | private final String name; 16 | private final boolean dynamic; 17 | private final List providerPoints; 18 | private final Map providerPointsUrls; 19 | 20 | private Capability(String name, boolean dynamic, List providerPoints) { 21 | this.name = name; 22 | this.dynamic = dynamic; 23 | this.providerPoints = providerPoints; 24 | this.providerPointsUrls = calculateProviderPointsUrls(providerPoints); 25 | } 26 | 27 | public String getName() { 28 | return name; 29 | } 30 | 31 | public boolean isDynamic() { 32 | return dynamic; 33 | } 34 | 35 | public List getProviderPoints() { 36 | return providerPoints; 37 | } 38 | 39 | public Map calculateProviderPointsUrls(List points) { 40 | Map resolved = points.stream().collect(Collectors.toMap(s -> s, v -> { 41 | PathAddress address = PathAddress.parseCLIStyleAddress(v); 42 | StringBuilder url = new StringBuilder(); 43 | for (PathElement pe : address) { 44 | if (pe.isWildcard()) { 45 | url.append(pe.getKey()).append('/'); 46 | } else { 47 | url.append(pe.getKey()).append('/').append(pe.getValue()).append('/'); 48 | } 49 | 50 | } 51 | return url.toString(); 52 | })); 53 | return resolved; 54 | } 55 | 56 | public Map getProviderPointsUrls() { 57 | return providerPointsUrls; 58 | } 59 | 60 | /* 61 | "capabilities" => [{ 62 | "name" => "org.wildfly.io.worker", 63 | "dynamic" => true 64 | "registration-points" => {} 65 | }], 66 | */ 67 | static Capability fromModel(ModelNode capability, Map globalCaps, String currentResourcePath) { 68 | String name = capability.get("name").asString(); 69 | boolean dynamic = capability.get("dynamic").asBoolean(false); 70 | List providerPoints; 71 | if (capability.hasDefined("registration-points")) { 72 | List registrationPoints = capability.get("registration-points").asList(); 73 | providerPoints = registrationPoints.stream().map(ModelNode::asString) 74 | .collect(Collectors.toList()); 75 | } else { 76 | if (globalCaps.containsKey(name)) { 77 | providerPoints = globalCaps.get(name).getProviderPoints().stream().filter(s -> !s.equals(currentResourcePath)).collect(Collectors.toList()); 78 | } else { 79 | providerPoints = Collections.emptyList(); 80 | } 81 | 82 | } 83 | return new Capability(name, dynamic, providerPoints); 84 | } 85 | 86 | static List fromModelList(ModelNode capModel, Map capabilities, PathAddress pathElements) { 87 | if (!capModel.isDefined()) { 88 | return Collections.emptyList(); 89 | } 90 | List r = new LinkedList<>(); 91 | capModel.asList().forEach(c -> r.add(fromModel(c, capabilities, pathElements.toCLIStyleString()))); 92 | return r; 93 | } 94 | 95 | public String getCapabilityDescriptionUrl() { 96 | StringBuilder url = new StringBuilder("https://github.com/wildfly/wildfly-capabilities/tree/master/"); 97 | return url.append(name.replaceAll("\\.", "/")).append("/capability.adoc").toString(); 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Child.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import org.jboss.dmr.ModelNode; 4 | import org.jboss.dmr.Property; 5 | 6 | import java.util.ArrayList; 7 | import java.util.Collections; 8 | import java.util.List; 9 | 10 | /** 11 | * @author Stuart Douglas 12 | */ 13 | public class Child implements Comparable { 14 | private final String name; 15 | private final String description; 16 | private final Deprecated deprecated; 17 | 18 | /** 19 | * If this is a non-wildcard registration 20 | */ 21 | private final List children; 22 | 23 | public Child(String name, String description, Deprecated deprecated, List children) { 24 | this.name = name; 25 | this.description = description; 26 | this.deprecated = deprecated; 27 | this.children = children; 28 | } 29 | 30 | public String getName() { 31 | return name; 32 | } 33 | 34 | public String getDescription() { 35 | return description; 36 | } 37 | 38 | public Deprecated getDeprecated() { 39 | return deprecated; 40 | } 41 | 42 | public List getChildren() { 43 | return children; 44 | } 45 | 46 | @Override 47 | public int compareTo(Child o) { 48 | return name.compareTo(o.getName()); 49 | } 50 | 51 | 52 | public static Child fromProperty(final Property property) { 53 | String name = property.getName(); 54 | String description = property.getValue().get("description").asString(); 55 | 56 | final List registrations = new ArrayList(); 57 | ModelNode modelDesc = property.getValue().get("model-description"); 58 | if (modelDesc.isDefined()) { 59 | for (Property child : modelDesc.asPropertyList()) { 60 | if (!child.getName().equals("*")) { 61 | registrations.add(new Child(child.getName(), child.getValue().get("description").asString(""), Deprecated.fromModel(child.getValue()), null)); 62 | } 63 | } 64 | } 65 | Collections.sort(registrations); 66 | 67 | Child op = new Child(name, description, Deprecated.fromModel(property.getValue()), registrations); 68 | 69 | return op; 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Deprecated.java: -------------------------------------------------------------------------------- 1 | /* 2 | * JBoss, Home of Professional Open Source. 3 | * Copyright 2013, Red Hat, Inc., and individual contributors 4 | * as indicated by the @author tags. See the copyright.txt file in the 5 | * distribution for a full listing of individual contributors. 6 | * 7 | * This is free software; you can redistribute it and/or modify it 8 | * under the terms of the GNU Lesser General Public License as 9 | * published by the Free Software Foundation; either version 2.1 of 10 | * the License, or (at your option) any later version. 11 | * 12 | * This software is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with this software; if not, write to the Free 19 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 | * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 | */ 22 | 23 | package org.jboss.wildscribe.site; 24 | 25 | import org.jboss.dmr.ModelNode; 26 | 27 | /** 28 | * @author James R. Perkins 29 | */ 30 | public class Deprecated { 31 | 32 | private final boolean deprecated; 33 | private final String reason; 34 | private final String since; 35 | 36 | public Deprecated(final boolean deprecated, final String reason, final String since) { 37 | this.deprecated = deprecated; 38 | this.reason = reason; 39 | this.since = since; 40 | } 41 | 42 | public boolean isDeprecated() { 43 | return deprecated; 44 | } 45 | 46 | public String getReason() { 47 | return reason; 48 | } 49 | 50 | public String getSince() { 51 | return since; 52 | } 53 | 54 | public static Deprecated fromModel(final ModelNode model) { 55 | final boolean deprecated = model.hasDefined("deprecated"); 56 | final String reason; 57 | final String since; 58 | if (deprecated) { 59 | final ModelNode dep = model.get("deprecated"); 60 | reason = dep.get("reason").asString(); 61 | since = dep.get("since").asString(); 62 | } else { 63 | reason = null; 64 | since = null; 65 | } 66 | return new Deprecated(deprecated, reason, since); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/FileUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * JBoss, Home of Professional Open Source. 3 | * Copyright 2012 Red Hat, Inc., and individual contributors 4 | * as indicated by the @author tags. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package org.jboss.wildscribe.site; 20 | 21 | import java.io.File; 22 | import java.io.IOException; 23 | import java.net.URISyntaxException; 24 | import java.net.URL; 25 | import java.nio.file.CopyOption; 26 | import java.nio.file.FileVisitResult; 27 | import java.nio.file.Files; 28 | import java.nio.file.Path; 29 | import java.nio.file.Paths; 30 | import java.nio.file.SimpleFileVisitor; 31 | import java.nio.file.StandardCopyOption; 32 | import java.nio.file.attribute.BasicFileAttributes; 33 | import java.util.Enumeration; 34 | import java.util.jar.JarEntry; 35 | import java.util.jar.JarFile; 36 | 37 | import org.jboss.logging.Logger; 38 | 39 | /** 40 | * @author Stuart Douglas 41 | */ 42 | class FileUtils { 43 | 44 | private static final Logger LOGGER = Logger.getLogger(FileUtils.class.getPackage().getName()); 45 | 46 | private FileUtils() { 47 | 48 | } 49 | 50 | static Path getUserHome() { 51 | return Paths.get(System.getProperty("user.home")); 52 | } 53 | 54 | static Path getPath(final String path) { 55 | if (path.charAt(0) == '~') { 56 | if (path.charAt(1) == File.separatorChar) { 57 | return getUserHome().resolve(path.substring(2)).toAbsolutePath(); 58 | } else { 59 | return getUserHome().resolve(path.substring(1)).toAbsolutePath(); 60 | } 61 | } 62 | return Paths.get(path); 63 | } 64 | 65 | static Path createTempDir(final String path) { 66 | return Paths.get(System.getProperty("java.io.tmpdir"), path); 67 | } 68 | 69 | static void delete(final Path dir, final boolean ignoreHidden) throws IOException { 70 | Files.walkFileTree(dir, new SimpleFileVisitor() { 71 | @Override 72 | public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException { 73 | return Files.isHidden(dir) && ignoreHidden ? FileVisitResult.SKIP_SUBTREE : FileVisitResult.CONTINUE; 74 | } 75 | 76 | @Override 77 | public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) throws IOException { 78 | if (!(Files.isHidden(file) && ignoreHidden)) { 79 | Files.delete(file); 80 | } 81 | return FileVisitResult.CONTINUE; 82 | } 83 | 84 | @Override 85 | public FileVisitResult postVisitDirectory(final Path d, final IOException exc) throws IOException { 86 | if (!dir.equals(d)) { 87 | Files.delete(d); 88 | } 89 | return FileVisitResult.CONTINUE; 90 | } 91 | }); 92 | } 93 | 94 | static Path copyDirectoryFromJar(final URL resource) throws IOException { 95 | final Path tmpDir = FileUtils.createTempDir("wildscribe_templates"); 96 | if (Files.exists(tmpDir)) { 97 | delete(tmpDir, false); 98 | } 99 | copyDirectoryFromJar(resource, tmpDir); 100 | return tmpDir; 101 | } 102 | 103 | 104 | static void copyDirectoryFromJar(final URL resource, final Path dest) throws IOException { 105 | LOGGER.debugf("Copying %s to %s", resource, dest); 106 | if ("file".equals(resource.getProtocol())) { 107 | try { 108 | final Path src = Paths.get(resource.toURI()); 109 | Files.walkFileTree(src, new CopyDirVisitor(src, dest, StandardCopyOption.REPLACE_EXISTING)); 110 | } catch (URISyntaxException e) { 111 | throw new RuntimeException(e); 112 | } 113 | } else if ("jar".equals(resource.getProtocol())) { 114 | int endIndex = resource.getFile().indexOf('!'); 115 | JarFile file = new JarFile(resource.getFile().substring(5, endIndex)); 116 | String path = resource.getPath().substring(endIndex + 2); 117 | Enumeration entries = file.entries(); 118 | while (entries.hasMoreElements()) { 119 | JarEntry entry = entries.nextElement(); 120 | if (!entry.isDirectory()) { 121 | if (entry.getName().startsWith(path)) { 122 | LOGGER.debugf("Copying %s", entry.getName().substring(path.length() + 1)); 123 | Path fileDest = dest.resolve(entry.getName().substring(path.length() + 1)); 124 | if (Files.notExists(fileDest.getParent())) { 125 | Files.createDirectories(fileDest.getParent()); 126 | } 127 | Files.copy(file.getInputStream(entry), fileDest); 128 | } 129 | } 130 | } 131 | } else { 132 | throw new RuntimeException("Unknown scheme " + resource.getProtocol()); 133 | } 134 | } 135 | 136 | private static class CopyDirVisitor extends SimpleFileVisitor { 137 | private final Path fromPath; 138 | private final Path toPath; 139 | private final CopyOption copyOption; 140 | 141 | CopyDirVisitor(Path fromPath, Path toPath, CopyOption copyOption) { 142 | this.fromPath = fromPath; 143 | this.toPath = toPath; 144 | this.copyOption = copyOption; 145 | } 146 | 147 | @Override 148 | public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { 149 | Path targetPath = toPath.resolve(fromPath.relativize(dir)); 150 | if (!Files.exists(targetPath)) { 151 | Files.createDirectory(targetPath); 152 | } 153 | return FileVisitResult.CONTINUE; 154 | } 155 | 156 | @Override 157 | public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { 158 | Files.copy(file, toPath.resolve(fromPath.relativize(file)), copyOption); 159 | return FileVisitResult.CONTINUE; 160 | } 161 | } 162 | 163 | } 164 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Main.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import java.nio.file.Paths; 4 | 5 | public class Main { 6 | 7 | public static void main(final String[] args) { 8 | try { 9 | if (args.length != 2) { 10 | System.out.println("USAGE: java [-Durl=http://wildscribe.github.io] -jar site-generator.jar model-directory output-directory"); 11 | System.exit(1); 12 | } 13 | Generator.generate(Paths.get(args[0]), Paths.get(args[1])); 14 | } catch (Exception e) { 15 | throw new RuntimeException(e); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Operation.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import java.io.PrintWriter; 4 | import java.io.StringWriter; 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | import org.jboss.dmr.ModelNode; 9 | import org.jboss.dmr.Property; 10 | 11 | /** 12 | * @author Stuart Douglas 13 | */ 14 | public class Operation implements Comparable { 15 | 16 | private final String name; 17 | private final String description; 18 | private final Reply reply; 19 | private final List parameters; 20 | private final Deprecated deprecated; 21 | private final boolean readOnly; 22 | private final boolean runtimeOnly; 23 | private final String stability; 24 | 25 | 26 | public Operation(String name, String description, List parameters, Deprecated deprecated, Reply reply, boolean readOnly, boolean runtimeOnly, String stability) { 27 | this.name = name; 28 | this.description = description; 29 | this.parameters = parameters; 30 | this.deprecated = deprecated; 31 | this.reply = reply; 32 | this.readOnly = readOnly; 33 | this.runtimeOnly = runtimeOnly; 34 | this.stability = stability; 35 | } 36 | 37 | public String getName() { 38 | return name; 39 | } 40 | 41 | public String getDescription() { 42 | return description; 43 | } 44 | 45 | public List getParameters() { 46 | return parameters; 47 | } 48 | 49 | public Deprecated getDeprecated() { 50 | return deprecated; 51 | } 52 | 53 | public Reply getReply() { 54 | return reply; 55 | } 56 | 57 | public boolean isReadOnly() { 58 | return readOnly; 59 | } 60 | 61 | public boolean isRuntimeOnly() { 62 | return runtimeOnly; 63 | } 64 | 65 | public String getStability() { 66 | return stability; 67 | } 68 | 69 | public static Operation fromProperty(final Property property) { 70 | String name = property.getName(); 71 | ModelNode op = property.getValue(); 72 | String description = op.get("description").asString(); 73 | ModelNode replyProperties = op.get("reply-properties"); 74 | 75 | Reply r = null; 76 | if (replyProperties.isDefined() && replyProperties.hasDefined("type")) { 77 | String returnType = replyProperties.get("type").asString(); 78 | String returnDescription = replyProperties.get("description").asString(""); 79 | ModelNode returnValueType = replyProperties.get("value-type"); 80 | StringWriter writer = new StringWriter(); 81 | returnValueType.writeString(new PrintWriter(writer), false); 82 | String valueType = writer.toString(); 83 | r = new Reply(returnType, returnValueType.isDefined() ? valueType : null, returnDescription); 84 | } 85 | 86 | 87 | final List parameters = new ArrayList(); 88 | if (op.hasDefined("request-properties")) { 89 | 90 | for (Property param : op.get("request-properties").asPropertyList()) { 91 | String desc = param.getValue().get("description").asString(); 92 | String type = param.getValue().get("type").asString(); 93 | String defaultValue = param.getValue().get("default").asStringOrNull(); 94 | boolean required = false; 95 | if (param.getValue().hasDefined("required")) { 96 | required = param.getValue().get("required").asBoolean(); 97 | } 98 | 99 | boolean nillable = !required; 100 | if (param.getValue().hasDefined("nillable")) { 101 | nillable = param.getValue().get("nillable").asBoolean(); 102 | } 103 | boolean expressionsAllowed = false; 104 | 105 | if (param.getValue().hasDefined("expressions-allowed")) { 106 | expressionsAllowed = param.getValue().get("expressions-allowed").asBoolean(); 107 | } 108 | 109 | parameters.add(new Parameter(param.getName(), type, desc, required, nillable, expressionsAllowed, defaultValue)); 110 | } 111 | } 112 | //todo this info is missing in model 113 | boolean readOnly = false; //op.get("read-only").asBoolean(false); 114 | boolean runtimeOnly = false; //op.get("runtime-only").asBoolean(false); 115 | String stability = op.get("stability").asStringOrNull(); 116 | 117 | return new Operation(name, description, parameters, Deprecated.fromModel(op), r, readOnly, runtimeOnly, stability); 118 | } 119 | 120 | @Override 121 | public int compareTo(Operation o) { 122 | return name.compareTo(o.name); 123 | } 124 | 125 | public static final class Parameter { 126 | private final String name; 127 | private final String type; 128 | private final String description; 129 | private final boolean required; 130 | private final boolean nillable; 131 | private final boolean expressionsAllowed; 132 | private final String defaultValue; 133 | 134 | public Parameter(String name, String type, String description, boolean required, boolean nillable, boolean expressionsAllowed, String defaultValue) { 135 | this.name = name; 136 | this.type = type; 137 | this.description = description; 138 | this.required = required; 139 | this.nillable = nillable; 140 | this.expressionsAllowed = expressionsAllowed; 141 | this.defaultValue = defaultValue; 142 | 143 | } 144 | 145 | public String getName() { 146 | return name; 147 | } 148 | 149 | public String getType() { 150 | return type; 151 | } 152 | 153 | public boolean isRequired() { 154 | return required; 155 | } 156 | 157 | public String getDescription() { 158 | return description; 159 | } 160 | 161 | public boolean isNillable() { 162 | return nillable; 163 | } 164 | 165 | public boolean isExpressionsAllowed() { 166 | return expressionsAllowed; 167 | } 168 | 169 | public String getDefaultValue() { 170 | return defaultValue; 171 | } 172 | 173 | 174 | } 175 | public static final class Reply{ 176 | private final String type; 177 | private final String valueType; 178 | private final String description; 179 | 180 | public Reply(String type, String valueType, String description) { 181 | this.type = type; 182 | this.valueType = valueType; 183 | this.description = description; 184 | } 185 | 186 | public String getType() { 187 | return type; 188 | } 189 | 190 | public String getValueType() { 191 | return valueType; 192 | } 193 | 194 | public String getDescription() { 195 | return description; 196 | } 197 | } 198 | } 199 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/PathElement.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | 4 | import org.jboss.dmr.Property; 5 | 6 | /** 7 | * An element of a path specification for matching operations with addresses. 8 | * @author Brian Stansberry 9 | * @author David M. Lloyd 10 | */ 11 | public class PathElement { 12 | 13 | public static final String WILDCARD_VALUE = "*"; 14 | 15 | private final String key; 16 | private final String value; 17 | private final boolean multiTarget; 18 | private final int hashCode; 19 | 20 | /** 21 | * Construct a new instance with a wildcard value. 22 | * @param key the path key to match 23 | * @return the new path element 24 | */ 25 | public static PathElement pathElement(final String key) { 26 | return new PathElement(key); 27 | } 28 | 29 | /** 30 | * Construct a new instance. 31 | * @param key the path key to match 32 | * @param value the path value or wildcard to match 33 | * @return the new path element 34 | */ 35 | public static PathElement pathElement(final String key, final String value) { 36 | return new PathElement(key, value); 37 | } 38 | 39 | /** 40 | * Construct a new instance with a wildcard value. 41 | * @param key the path key to match 42 | */ 43 | PathElement(final String key) { 44 | this(key, WILDCARD_VALUE); 45 | } 46 | 47 | /** 48 | * Construct a new instance. 49 | * @param key the path key to match 50 | * @param value the path value or wildcard to match 51 | */ 52 | PathElement(final String key, final String value) { 53 | if (!isValidKey(key)) { 54 | final String element = key + "=" + value; 55 | throw new OperationClientIllegalArgumentException(String.format("Invalid resource address element '%s'. The key '%s' is not valid for an element in a resource address.", element, key)); 56 | } 57 | if (value == null || value.isEmpty()) { 58 | final String element = key + "=" + value; 59 | throw new OperationClientIllegalArgumentException(String.format("Invalid resource address element '%s'. The value '%s' is not valid for an element in a resource address. Character '%s' is not allowed.", element, value, ' ')); 60 | } 61 | boolean multiTarget = false; 62 | if(key.equals(WILDCARD_VALUE)) { 63 | this.key = WILDCARD_VALUE; 64 | multiTarget = true; 65 | } else { 66 | this.key = key; 67 | } 68 | if (value.equals(WILDCARD_VALUE)) { 69 | this.value = WILDCARD_VALUE; 70 | multiTarget = true; 71 | } else if (value.charAt(0) == '[' && value.charAt(value.length() - 1) == ']') { 72 | this.value = value.substring(1, value.length() - 1); 73 | multiTarget |= value.indexOf(',') != -1; 74 | } else { 75 | this.value = value; 76 | } 77 | this.multiTarget = multiTarget; 78 | hashCode = key.hashCode() * 19 + value.hashCode(); 79 | } 80 | 81 | /** 82 | * A valid key contains alphanumerics and underscores, cannot start with a 83 | * number, and cannot start or end with {@code -}. 84 | */ 85 | private static boolean isValidKey(final String s) { 86 | // Equivalent to this regex \*|[_a-zA-Z](?:[-_a-zA-Z0-9]*[_a-zA-Z0-9]) but faster 87 | if (s == null) { 88 | return false; 89 | } 90 | if (s.equals(WILDCARD_VALUE)) { 91 | return true; 92 | } 93 | int lastIndex = s.length() - 1; 94 | if (lastIndex == -1) { 95 | return false; 96 | } 97 | if (!isValidKeyStartCharacter(s.charAt(0))) { 98 | return false; 99 | } 100 | for (int i = 1; i < lastIndex; i++) { 101 | if (!isValidKeyCharacter(s.charAt(i))) { 102 | return false; 103 | } 104 | } 105 | if (lastIndex > 0 && !isValidKeyEndCharacter(s.charAt(lastIndex))) { 106 | return false; 107 | } 108 | return true; 109 | } 110 | 111 | private static boolean isValidKeyStartCharacter(final char c) { 112 | return c == '_' 113 | || c >= 'a' && c <= 'z' 114 | || c >= 'A' && c <= 'Z'; 115 | } 116 | 117 | private static boolean isValidKeyEndCharacter(final char c) { 118 | return c == '_' 119 | || c >= '0' && c <= '9' 120 | || c >= 'a' && c <= 'z' 121 | || c >= 'A' && c <= 'Z'; 122 | } 123 | 124 | private static boolean isValidKeyCharacter(char c) { 125 | return c == '_' || c == '-' 126 | || c >= '0' && c <= '9' 127 | || c >= 'a' && c <= 'z' 128 | || c >= 'A' && c <= 'Z'; 129 | } 130 | 131 | /** 132 | * Get the path key. 133 | * @return the path key 134 | */ 135 | public String getKey() { 136 | return key; 137 | } 138 | 139 | /** 140 | * Get the path value. 141 | * @return the path value 142 | */ 143 | public String getValue() { 144 | return value; 145 | } 146 | 147 | /** 148 | * Determine whether the given property matches this element. 149 | * @param property the property to check 150 | * @return {@code true} if the property matches 151 | */ 152 | public boolean matches(Property property) { 153 | return property.getName().equals(key) && (value == WILDCARD_VALUE || property.getValue().asString().equals(value)); 154 | } 155 | 156 | /** 157 | * Determine whether the value is the wildcard value. 158 | * @return {@code true} if the value is the wildcard value 159 | */ 160 | public boolean isWildcard() { 161 | return WILDCARD_VALUE == value; //this is ok as we are expecting exact same object. 162 | } 163 | 164 | public boolean isMultiTarget() { 165 | return multiTarget; 166 | } 167 | 168 | public String[] getSegments() { 169 | return value.split(","); 170 | } 171 | 172 | public String[] getKeyValuePair(){ 173 | return new String[]{key,value}; 174 | } 175 | 176 | @Override 177 | public int hashCode() { 178 | return hashCode; 179 | } 180 | 181 | /** 182 | * Determine whether this object is equal to another. 183 | * @param other the other object 184 | * @return {@code true} if they are equal, {@code false} otherwise 185 | */ 186 | public boolean equals(Object other) { 187 | return other instanceof PathElement && equals((PathElement) other); 188 | } 189 | 190 | /** 191 | * Determine whether this object is equal to another. 192 | * @param other the other object 193 | * @return {@code true} if they are equal, {@code false} otherwise 194 | */ 195 | public boolean equals(PathElement other) { 196 | return this == other || other != null && other.key.equals(key) && other.value.equals(value); 197 | } 198 | 199 | @Override 200 | public String toString() { 201 | return "\"" + key + "\" => \"" + value + "\""; 202 | } 203 | 204 | /** 205 | * AS7-2905. An IAE that implements OperationClientException. Allows PathElement to continue to throw IAE 206 | * in case client code expects that failure type, but lets operation handling code detect that the 207 | * IAE is a client error. 208 | */ 209 | private static class OperationClientIllegalArgumentException extends IllegalArgumentException{ 210 | 211 | private static final long serialVersionUID = -9073168544821068948L; 212 | 213 | private OperationClientIllegalArgumentException(final String msg) { 214 | super(msg); 215 | assert msg != null : "msg is null"; 216 | } 217 | 218 | } 219 | } 220 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/ResourceDescription.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import org.jboss.dmr.ModelNode; 4 | import org.jboss.dmr.Property; 5 | 6 | import java.util.ArrayList; 7 | import java.util.Collections; 8 | import java.util.List; 9 | import java.util.Map; 10 | 11 | /** 12 | * Representation of a management resource, in a nice format for templates 13 | * 14 | * @author Stuart Douglas 15 | */ 16 | public class ResourceDescription { 17 | 18 | private final String description; 19 | private final List children; 20 | private final List attributes; 21 | private final List operations; 22 | private final Deprecated deprecated; 23 | private final List capabilities; 24 | private final String storage; 25 | 26 | public ResourceDescription(String description, List children, List attributes, List operations, Deprecated deprecated, List capabilities, String storage) { 27 | this.description = description; 28 | this.children = children; 29 | this.attributes = attributes; 30 | this.operations = operations; 31 | this.deprecated = deprecated; 32 | this.capabilities = capabilities; 33 | this.storage = storage; 34 | } 35 | 36 | 37 | public String getDescription() { 38 | return description; 39 | } 40 | 41 | public List getChildren() { 42 | return children; 43 | } 44 | 45 | public List getAttributes() { 46 | return attributes; 47 | } 48 | 49 | public List getOperations() { 50 | return operations; 51 | } 52 | 53 | public Deprecated getDeprecated() { 54 | return deprecated; 55 | } 56 | 57 | public List getCapabilities() { 58 | return capabilities; 59 | } 60 | 61 | public String getStorage() { 62 | return storage; 63 | } 64 | 65 | public boolean isRuntime(){ 66 | return "runtime-only".equals(storage); 67 | } 68 | 69 | public static ResourceDescription fromModelNode(PathAddress pathElements, final ModelNode node, Map capabilities) { 70 | final List ops = new ArrayList(); 71 | if(node.hasDefined("operations")) { 72 | for (Property i : node.get("operations").asPropertyList()) { 73 | ops.add(Operation.fromProperty(i)); 74 | } 75 | } 76 | Collections.sort(ops); 77 | 78 | 79 | final List children = new ArrayList(); 80 | if (node.hasDefined("children")) { 81 | for (Property i : node.get("children").asPropertyList()) { 82 | children.add(Child.fromProperty(i)); 83 | } 84 | Collections.sort(children); 85 | } 86 | 87 | 88 | final List attributes = new ArrayList(); 89 | if (node.hasDefined("attributes")) { 90 | for (Property i : node.get("attributes").asPropertyList()) { 91 | attributes.add(Attribute.fromProperty(i)); 92 | } 93 | Collections.sort(attributes); 94 | } 95 | String storage = node.get("storage").asString("configuration"); 96 | 97 | return new ResourceDescription(node.get("description").asString(), children, attributes, ops, Deprecated.fromModel(node), Capability.fromModelList(node.get("capabilities"), capabilities, pathElements), storage); 98 | 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/SiteGenerator.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import java.io.IOException; 4 | import java.io.PrintWriter; 5 | import java.nio.charset.StandardCharsets; 6 | import java.nio.file.Files; 7 | import java.nio.file.Path; 8 | import java.util.HashMap; 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | import freemarker.template.Configuration; 13 | import freemarker.template.Template; 14 | import freemarker.template.TemplateException; 15 | import org.jboss.logging.Logger; 16 | 17 | /** 18 | * class Responsible for generating sites 19 | * 20 | * @author Stuart Douglas 21 | */ 22 | class SiteGenerator { 23 | private static final Logger LOGGER = Logger.getLogger(SiteGenerator.class.getPackage().getName()); 24 | private static final String DEFAULT_LAYOUT_HTML = "layout.html"; 25 | private static final String SINGLE_LAYOUT_HTML = "single-layout.html"; 26 | 27 | public static final String INDEX_HTML = "index.html"; 28 | public static final String ABOUT_HTML = "about.html"; 29 | public static final String RESOURCE_HTML = "resource.html"; 30 | private final List versions; 31 | private final Configuration configuration; 32 | private final Path outputDir; 33 | 34 | public SiteGenerator(List versions, Configuration configuration, Path outputDir) { 35 | this.versions = versions; 36 | this.configuration = configuration; 37 | this.outputDir = outputDir; 38 | } 39 | 40 | public void createMainPage() throws IOException, TemplateException { 41 | Template template = configuration.getTemplate(DEFAULT_LAYOUT_HTML); 42 | final Map data = new HashMap(); 43 | data.put("page", INDEX_HTML); 44 | data.put("versions", versions); 45 | data.put("urlbase", getUrlBase()); 46 | boolean wf = false; 47 | boolean eap6 = false; 48 | boolean as7 = false; 49 | assert versions != null; 50 | 51 | versions.stream().filter(version -> version.getProduct().equals(Version.JBOSS_EAP)) 52 | .filter(version -> version.getVersion().startsWith("7")) 53 | .findFirst().ifPresent(v -> data.put("eap7", v)); 54 | 55 | for (Version version : versions) { 56 | if (version.getProduct().equals(Version.JBOSS_AS7) && !as7) { 57 | as7 = true; 58 | data.put("as7", version); 59 | } else if (version.getProduct().equals(Version.JBOSS_EAP) && !eap6) { 60 | if (version.getVersion().startsWith("6")) { 61 | eap6 = true; 62 | data.put("eap6", version); 63 | } 64 | } else if (version.getProduct().equals(Version.WILDFLY) && !wf) { 65 | wf = true; 66 | data.put("wildfly", version); 67 | } 68 | } 69 | final String alertMessage = System.getProperty("wildscribe.index.alert.message"); 70 | if (alertMessage != null) { 71 | final AlertMessage am = new AlertMessage(); 72 | final String dismissible = System.getProperty("wildscribe.index.alert.dismissible"); 73 | am.setDismissible(dismissible != null && dismissible.isEmpty() || Boolean.parseBoolean(dismissible)); 74 | am.setHeader(System.getProperty("wildscribe.index.alert.header")); 75 | am.setMessage(alertMessage); 76 | am.setType(System.getProperty("wildscribe.index.alert.type")); 77 | data.put("alertMessage", am); 78 | } 79 | 80 | template.process(data, new PrintWriter(Files.newBufferedWriter(outputDir.resolve(INDEX_HTML), StandardCharsets.UTF_8))); 81 | } 82 | 83 | public void createAboutPage() throws IOException, TemplateException { 84 | Template template = configuration.getTemplate(DEFAULT_LAYOUT_HTML); 85 | final Map data = new HashMap(); 86 | data.put("page", ABOUT_HTML); 87 | data.put("versions", versions); 88 | data.put("urlbase", getUrlBase()); 89 | template.process(data, new PrintWriter(Files.newBufferedWriter(outputDir.resolve(ABOUT_HTML), StandardCharsets.UTF_8))); 90 | } 91 | 92 | 93 | public void createVersions() throws IOException, TemplateException { 94 | for (Version version : versions) { 95 | LOGGER.infof("Processing %s %s", version.getProduct(), version.getVersion()); 96 | new SingleVersionGenerator(versions, version, configuration, outputDir, DEFAULT_LAYOUT_HTML).generate(); 97 | 98 | } 99 | } 100 | 101 | 102 | public void createSingleVersion() throws IOException, TemplateException { 103 | SingleVersionGenerator gen = new SingleVersionGenerator(null, versions.get(0), configuration, outputDir, SINGLE_LAYOUT_HTML); 104 | gen.setSingle(true); 105 | gen.generate(); 106 | } 107 | 108 | private String getUrlBase() { 109 | if (System.getProperty("url") == null) { 110 | return outputDir.toUri().toString(); 111 | } 112 | return System.getProperty("url"); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /site-generator/src/main/java/org/jboss/wildscribe/site/Version.java: -------------------------------------------------------------------------------- 1 | package org.jboss.wildscribe.site; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * Application server versions 7 | * 8 | * @author Stuart Douglas 9 | */ 10 | public final class Version { 11 | 12 | public static final String JBOSS_EAP = "JBoss EAP"; 13 | public static final String WILDFLY = "WildFly"; 14 | public static final String JBOSS_AS7 = "JBoss AS7"; 15 | 16 | private final String product; 17 | private final String version; 18 | private final File dmrFile; 19 | 20 | public Version(final String product, final String version, final File dmrFile) { 21 | this.product = product; 22 | this.version = version; 23 | this.dmrFile = dmrFile; 24 | } 25 | 26 | public String getProduct() { 27 | return product; 28 | } 29 | 30 | public String getVersion() { 31 | return version; 32 | } 33 | 34 | public File getDmrFile() { 35 | return dmrFile; 36 | } 37 | 38 | public File getMessagesFile() { 39 | //hacky, don't run this in a dir with .dmr in the name 40 | String messagesFile = dmrFile.getAbsolutePath().replace(".dmr", ".messages"); 41 | File m = new File(messagesFile); 42 | if(m.exists()) { 43 | return m; 44 | } 45 | return null; 46 | } 47 | 48 | @Override 49 | public String toString() { 50 | return "Version{" + 51 | "product='" + product + '\'' + 52 | ", version='" + version + '\'' + 53 | '}'; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/staticresources/css/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 20px; 3 | } 4 | 5 | .btn, a { 6 | cursor: pointer; 7 | } 8 | 9 | dt { 10 | float: left; 11 | width: 13%; 12 | text-align: right; 13 | padding: .25em; 14 | clear: left; 15 | } 16 | dd { 17 | float: left; 18 | width: 83%; 19 | padding: .25em 0; 20 | } 21 | dl:after {content:"";display:table;clear:both;} 22 | .navbar { 23 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7),to(#eee)); 24 | background-image: -webkit-linear-gradient(top, #f7f7f7 0%,#eee 100%); 25 | background-image: -o-linear-gradient(top, #f7f7f7 0%,#eee 100%); 26 | background-image: linear-gradient(to bottom, #f7f7f7 0%,#eee 100%); 27 | border: 1px solid #e5e5e5; 28 | } 29 | 30 | @media (min-width: 768px) { 31 | .navbar-nav { 32 | display: -webkit-box; 33 | display: -webkit-flex; 34 | display: -ms-flexbox; 35 | display: flex; 36 | } 37 | 38 | .navbar-nav .nav-item { 39 | -webkit-box-flex: 1; 40 | -webkit-flex: 1 0 auto; 41 | -ms-flex: 1 0 auto; 42 | flex: 1 0 auto; 43 | } 44 | } 45 | 46 | /* Responsive: Portrait tablets and up */ 47 | @media screen and (min-width: 768px) { 48 | /* Remove the padding we set earlier */ 49 | .masthead, 50 | .marketing, 51 | .footer { 52 | padding-right: 0; 53 | padding-left: 0; 54 | } 55 | } 56 | 57 | .highlight{ 58 | padding:.5rem 0; 59 | background-color:transparent 60 | } 61 | 62 | .footer { 63 | padding-top: 40px; 64 | padding-bottom: 40px; 65 | margin-top: 40px; 66 | border-top: 1px solid #eee; 67 | } 68 | 69 | a.deprecated { 70 | text-decoration: line-through; 71 | } 72 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/staticresources/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/site-generator/src/main/resources/staticresources/favicon.ico -------------------------------------------------------------------------------- /site-generator/src/main/resources/staticresources/js/main.js: -------------------------------------------------------------------------------- 1 | (() => { 2 | "use strict"; 3 | 4 | window.addEventListener("load", () => { 5 | // Allow HTML data in popover's 6 | const popovers = document.querySelectorAll("[data-bs-toggle='popover']"); 7 | popovers.forEach((e) => { 8 | let opts = {}; 9 | if (e.hasAttribute("data-bs-target")) { 10 | opts.html = true; 11 | opts.content = document.querySelector(e.getAttribute("data-bs-target")).innerHTML; 12 | } 13 | new bootstrap.Popover(e, opts); 14 | }); 15 | }); 16 | })() 17 | 18 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/staticresources/js/vendor/ie10-viewport-bug-workaround.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * IE10 viewport hack for Surface/desktop Windows 8 bug 3 | * Copyright 2014-2017 The Bootstrap Authors 4 | * Copyright 2014-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | // See the Getting Started docs for more information: 9 | // https://getbootstrap.com/getting-started/#support-ie10-width 10 | 11 | (function () { 12 | 'use strict' 13 | 14 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 15 | var msViewportStyle = document.createElement('style') 16 | msViewportStyle.appendChild( 17 | document.createTextNode( 18 | '@-ms-viewport{width:auto!important}' 19 | ) 20 | ) 21 | document.head.appendChild(msViewportStyle) 22 | } 23 | 24 | }()) 25 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/templates/about.html: -------------------------------------------------------------------------------- 1 |
2 |

WildFly Model Reference Documentation

3 | 4 |

This site contains automatically generated documentation about the JBoss AS7, WildFly and JBoss EAP application servers.

5 |
6 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | <#if alertMessage??> 2 |
3 | <#if alertMessage.dismissible> 4 | 7 | 8 | <#if alertMessage.header??> 9 |

${alertMessage.header}

10 | 11 |

${alertMessage.message}

12 |
13 | 14 | 15 |
16 |

WildFly Model Reference Documentation

17 | 18 |

This site provides reference for the management model for the WildFly application server, as well as other 19 | application servers in the same family such as JBoss EAP 6+, JBoss EAP7 & JBoss AS 7

20 |
21 |

22 | WildFly ${wildfly.version} reference » 23 |

24 | 25 |
26 | 27 |
28 | 29 |
30 | <#if wildfly??> 31 |
32 |

WildFly

33 | 34 |

WildFly is the next generation of the JBoss AS application server.

35 | 36 |

WildFly ${wildfly.version} reference »

37 |
38 | 39 | <#if eap7??> 40 |
41 |

JBoss EAP 7.x

42 | 43 |

JBoss EAP 7 is Red Hat's commercial offering based on WildFly code base.

44 | 45 |

JBoss EAP ${eap7.version} reference »

46 |
47 | 48 | <#if eap6??> 49 |
50 |

JBoss EAP 6.x

51 | 52 |

JBoss EAP 6 is Red Hat's commercial offering based on the AS7 and WildFly 53 | code base.

54 | 55 |

JBoss EAP ${eap6.version} reference »

56 |
57 | 58 |
59 |
60 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/templates/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | <#if version??> 7 | ${version.product} ${version.version} Model Reference 8 | <#else> 9 | WildFly Model Reference 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 | <#if version??> 19 |

${version.product} ${version.version} Model Reference

20 | <#else> 21 |

WildFly Model Reference

22 | 23 | 24 | 52 |
53 | 54 | <#include page/> 55 | 56 |
57 |

© Red Hat ${.now?string('yyyy')}

58 |
59 |
60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/templates/logs.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 17 |
18 |
19 | 20 | <#list codes as code> 21 |

${code}

22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | <#list messages[code] as m> 35 | 36 | 39 | 42 | 45 | 48 | 49 | 50 | 51 |
CodeLevelReturn TypeMessage
37 | ${m.id} 38 | 40 | ${m.level} 41 | 43 | ${m.returnType} 44 | 46 | ${m.message} 47 |
52 |
53 | 54 | -------------------------------------------------------------------------------- /site-generator/src/main/resources/templates/single-layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | <#if version??> 7 | ${version.product} ${version.version} Model Reference 8 | <#else> 9 | WildFly Model Reference 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | <#if version??> 20 |

${version.product} ${version.version} Model Reference

21 | <#else> 22 |

WildFly Model Reference

23 | 24 |
25 | <#include page/> 26 |
27 | 28 |
29 |

© Red Hat ${.now?string('yyyy')}

30 |
31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/apt/examples/generate-site-example.apt.vm: -------------------------------------------------------------------------------- 1 | ------ 2 | Generate Site Example 3 | ------ 4 | James R. Perkins 5 | ------ 6 | 2019-11-11 7 | ------ 8 | 9 | Generate Site Examples 10 | 11 | Generates Wildscribe site for a ${appServerName} server. 12 | 13 | * Generate Site Example 14 | 15 | The example below shows how to generate a Wildscribe site: 16 | 17 | ---------- 18 | 19 | ... 20 | 21 | ... 22 | 23 | ... 24 | 25 | ${project.groupId} 26 | ${project.artifactId} 27 | ${project.version} 28 | 29 | target/${appServerName} 30 | target/generated-docs/wildscribe 31 | 32 | 33 | ... 34 | 35 | ... 36 | 37 | ... 38 | 39 | ---------- 40 | -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/apt/index.apt.vm: -------------------------------------------------------------------------------- 1 | ------ 2 | Introduction 3 | ------ 4 | James R. Perkins 5 | ------ 6 | 2019-11-11 7 | ------ 8 | 9 | 10 | ${project.name} (${project.artifactId}) 11 | 12 | The ${project.artifactId} is used to generate a model description web site for an instance of ${appServerName}. The 13 | plugin will start the server, dump the model description, create a file for messages, stop the server and generate 14 | the Wildscribe site. 15 | 16 | * Goals Overview 17 | 18 | General information about the goals. 19 | 20 | * {{{./generate-site-mojo.html}${pluginPrefix}:generate-site}} generates the Wildscribe site for the server specified 21 | on the <<>> parameter. 22 | 23 | * Usage 24 | 25 | General instructions on how to use the ${project.name} can be found on the {{{./usage.html}usage page}}. Some more 26 | specific use cases are described in the examples given below. Last but not least, users occasionally contribute 27 | additional examples, tips or errata to the 28 | {{{http://wildfly.org/joinus}${appServerName} wiki page}}. 29 | 30 | In case you still have questions regarding the plugin's usage, please have a look at the {{{./faq.html}FAQ}} and feel 31 | free to contact the {{{./mailing-lists.html}user mailing list}}. The posts to the mailing list are archived and could 32 | already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching 33 | the {{{./mailing-lists.html}mail archive}}. 34 | 35 | If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our 36 | {{{./issue-management.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your 37 | concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, 38 | entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. 39 | Of course, patches are welcome, too. Contributors can check out the project from our 40 | {{{./source-repository.html}source repository}} and will find supplementary information in the 41 | {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}. 42 | 43 | * Examples 44 | 45 | To provide you with better understanding of some usages of the ${project.name}, you can take a look into the 46 | following example: 47 | 48 | * {{{./examples/generate-site-example.html}Generate Site Example}} -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/apt/usage.apt.vm: -------------------------------------------------------------------------------- 1 | ------ 2 | Usage 3 | ------ 4 | James R. Perkins 5 | ------ 6 | 2019-11-11 7 | ------ 8 | 9 | Usage 10 | 11 | The ${project.name} is used to generate a Wildscribe site for a ${appServerName} server. The <<>> 12 | parameter is used to start the server and generate a site based on that server. 13 | 14 | * The <<<${pluginPrefix}:generate-site>>> Goal 15 | 16 | The <<<${pluginPrefix}:generate-site>>> goal generates a Wildscribe site for the ${appServerName} defined by the 17 | <<>> configuration parameter. 18 | 19 | For example to add a resource you type the following on the command line: 20 | 21 | +-----+ 22 | mvn ${pluginPrefix}:generate-site 23 | +-----+ -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/fml/faq.fml.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | 24 | 25 | 26 | What versions of maven will the plugin work with? 27 | 28 |

The plugin requires maven ${mavenMinVersion} or higher.

29 |
30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/resources/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/wildscribe-maven-plugin/src/site/resources/favicon.ico -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/resources/images/community-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wildfly/wildscribe/a2dee713cd65d8825de6f726e3985b3f4dbe0cd9/wildscribe-maven-plugin/src/site/resources/images/community-logo.png -------------------------------------------------------------------------------- /wildscribe-maven-plugin/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | org.apache.maven.skins 22 | maven-fluido-skin 23 | 1.8 24 | 25 | 26 | Wildscribe Maven Plugin 27 | ./images/community-logo.png 28 | http://www.wildfly.org 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | --------------------------------------------------------------------------------