Skip to content

Commit b774971

Browse files
wing328redoom
andauthored
feat: Add Java Dubbo code generator for Apache Dubbo microservices (#21968)
* feat: add Apache Dubbo code generator with multi-registry support - Add comprehensive Dubbo microservice code generator - Support Zookeeper and Nacos registries with auto-dependency selection - Implement version-aware dependency management (Dubbo 3.2 vs 3.3+) - Generate service interfaces, implementations, and Spring Boot REST controllers - Include complete Spring Boot application structure with configuration - Add detailed documentation and usage examples - Support async operations and generic response wrappers - Provide flexible configuration options for packages, versions, and features * feat: Add dubbo sample with CI validation Adds a new sample generator configuration for dubbo. The existing GitHub workflow for Java samples is updated to build and test this new sample automatically. * fix: fix Dubbo protocol extension issue in test environment - Set registry address to N/A to avoid ZooKeeper dependency - Change protocol from 'triple' to 'tri' to resolve extension loading error * various fix to java dubbo server generator * update doc * update readme --------- Co-authored-by: redoom <[email protected]>
1 parent c30fb41 commit b774971

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+4135
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Samples Java Dubbo
2+
3+
on:
4+
push:
5+
paths:
6+
- 'samples/server/petstore/java-dubbo/**'
7+
pull_request:
8+
paths:
9+
- 'samples/server/petstore/java-dubbo/**'
10+
11+
jobs:
12+
build:
13+
name: Build Java Dubbo
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
sample:
19+
# servers
20+
- samples/server/petstore/java-dubbo
21+
steps:
22+
- uses: actions/checkout@v5
23+
- uses: actions/setup-java@v5
24+
with:
25+
distribution: 'temurin'
26+
java-version: 17
27+
- name: Cache maven dependencies
28+
uses: actions/cache@v4
29+
env:
30+
cache-name: maven-repository
31+
with:
32+
path: |
33+
~/.m2
34+
key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
35+
- name: Build
36+
working-directory: ${{ matrix.sample }}
37+
run: mvn clean package --no-transfer-progress -DskipTests
38+
# add -DskipTests as the app compiles but fails to start
39+
#run: mvn clean package --no-transfer-progress

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,6 +1143,7 @@ Here is a list of template creators:
11431143
* Haskell Servant: @algas
11441144
* Haskell Yesod: @yotsuya
11451145
* Java Camel: @carnevalegiacomo
1146+
* Java Dubbo: @redoom
11461147
* Java MSF4J: @sanjeewa-malalgoda
11471148
* Java Spring Boot: @diyfr
11481149
* Java Undertow: @stevehu

bin/configs/java-dubbo-server.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
generatorName: java-dubbo
2+
outputDir: samples/server/petstore/java-dubbo
3+
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
4+
templateDir: modules/openapi-generator/src/main/resources/java-dubbo
5+
additionalProperties:
6+
hideGenerationTimestamp: "true"
7+
artifactId: openapi-dubbo-server-petstore
8+
basePackage: "org.openapitools.example"
9+
title: "OpenAPI Petstore"
10+
serviceInterface: true
11+
serviceImplementation: true
12+
useTags: true
13+
dubboVersion: "3.2.18"
14+
javaVersion: "17"
15+
registryAddress: "zookeeper://127.0.0.1:2181"

docs/generators.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ The following generators are available:
106106
* [haskell](generators/haskell.md)
107107
* [haskell-yesod (beta)](generators/haskell-yesod.md)
108108
* [java-camel](generators/java-camel.md)
109+
* [java-dubbo (beta)](generators/java-dubbo.md)
109110
* [java-helidon-server (beta)](generators/java-helidon-server.md)
110111
* [java-inflector](generators/java-inflector.md)
111112
* [java-micronaut-server (beta)](generators/java-micronaut-server.md)

0 commit comments

Comments
 (0)