forked from fabric8io/kubernetes-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github.com:fabric8io/kubernetes-client
- Loading branch information
Showing
258 changed files
with
25,645 additions
and
18,145 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
# Java generation from CRD (preview) | ||
|
||
This document shows how to generate java sources from CRD manifests. | ||
|
||
## Quick start CLI | ||
|
||
The Java generator CLI is available for download on Sonatype at the link: | ||
|
||
``` | ||
https://oss.sonatype.org/content/repositories/releases/io/fabric8/java-generator-cli/<version>/java-generator-cli-<version>.sh | ||
``` | ||
|
||
you can get it working locally with few lines: | ||
|
||
```bash | ||
export VERSION=$(wget -q -O - http://github.com/fabric8io/kubernetes-client/releases/latest --header "Accept: application/json" | jq -r '.tag_name' | cut -c 2-) | ||
wget https://oss.sonatype.org/content/repositories/releases/io/fabric8/java-generator-cli/$VERSION/java-generator-cli-$VERSION.sh | ||
chmod a+x java-generator-cli-$VERSION.sh | ||
./java-generator-cli-$VERSION.sh --version | ||
``` | ||
|
||
Alternatively, if you already have [jbang](https://www.jbang.dev/) installed, you can run the CLI using it: | ||
|
||
```bash | ||
jbang io.fabric8:java-generator-cli:<version> | ||
``` | ||
|
||
## Quick start Maven | ||
|
||
The Java generator Maven plugin can be used from your project `pom.xml` adding a section like: | ||
|
||
```xml | ||
<plugin> | ||
<groupId>io.fabric8</groupId> | ||
<artifactId>java-generator-maven-plugin</artifactId> | ||
<version>${kubernetes-client.version}</version> | ||
<executions> | ||
<execution> | ||
<goals> | ||
<goal>generate</goal> | ||
</goals> | ||
</execution> | ||
</executions> | ||
<configuration> | ||
<source>src/main/resources/kubernetes</source> | ||
... | ||
</configuration> | ||
</plugin> | ||
``` | ||
|
||
## Usage | ||
|
||
Provide a `source` referencing a file or a folder containing your CRDs definitions in `yaml` or `json` format and a `target` directory where the relevant Java code should be generated. | ||
|
||
The full list of options of the CLI is (output of `--help`): | ||
|
||
``` | ||
Usage: java-gen [-hV] [-add-extra-annotations] [-enum-uppercase] -s=<source> | ||
[-suffix-strategy=<suffixStrategy>] -t=<target> | ||
-add-extra-annotations, --add-extra-annotations | ||
Add extra lombok and sundrio annotation to the | ||
generated classes | ||
-enum-uppercase, --enum-uppercase | ||
Uppercase the enum values | ||
-h, --help Show this help message and exit. | ||
-s, --source=<source> The source(file or folder) with the | ||
CustomResourceDefinition(s) to use | ||
-suffix-strategy, --suffix-strategy=<suffixStrategy> | ||
The suffix strategy to be used | ||
-t, --target=<target> The folder to write the generated sources | ||
-V, --version Print version information and exit. | ||
``` | ||
|
||
And the corresponding configurations of the Maven plugin are (output of `mvn help:describe -DgroupId=io.fabric8 -DartifactId=java-generator-maven-plugin -Dversion=<version> -Ddetail`): | ||
|
||
``` | ||
enumUppercase | ||
User property: fabric8.java-generator.enum-uppercase | ||
extraAnnotations | ||
User property: fabric8.java-generator.extra-annotations | ||
source | ||
Required: true | ||
User property: fabric8.java-generator.source | ||
suffixStrategy | ||
User property: fabric8.java-generator.suffix-strategy | ||
target (Default: ${basedir}/target/generated-sources/java) | ||
User property: fabric8.java-generator.target | ||
``` | ||
|
||
## Compiling the generated code | ||
|
||
The generated code depends on a few dependencies to succesfully compile: | ||
|
||
```xml | ||
<dependency> | ||
<groupId>io.fabric8</groupId> | ||
<artifactId>kubernetes-client</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>javax.validation</groupId> | ||
<artifactId>validation-api</artifactId> | ||
<version>2.0.1.Final</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
``` | ||
|
||
and, if `--add-extra-annotations`/`extraAnnotations` has been set, the following dependencies should be included as well: | ||
```xml | ||
<dependency> | ||
<groupId>io.sundr</groupId> | ||
<artifactId>builder-annotations</artifactId> | ||
<scope>provided</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.projectlombok</groupId> | ||
<artifactId>lombok</artifactId> | ||
<scope>provided</scope> | ||
</dependency> | ||
``` |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.