This is an automated email from the ASF dual-hosted git repository.

songxiaosheng pushed a commit to branch auto_gen_doc
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git

commit d4096a15d0cb41e3eb61c637f64f5c9853204b9d
Author: songxiaosheng <[email protected]>
AuthorDate: Sun Oct 1 10:17:20 2023 +0800

    :memo: visit code tree to gen doc
---
 README.md                                          | 76 +++++++++++++++++++++-
 doc-auto-gen/pom.xml                               | 32 +++++++++
 .../main/java/org/apache/dubbo/doc/DocAutoGen.java | 48 ++++++++++++++
 .../src/test/java/org/example/AppTest.java         | 38 +++++++++++
 pom.xml                                            |  1 +
 5 files changed, 194 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index ef5d07b..b2e82ce 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,77 @@
 # dubbo-spi-extensions
-
 [![Build 
Status](https://travis-ci.org/apache/dubbo-spi-extensions.svg?branch=master)](https://travis-ci.org/apache/dubbo-spi-extensions)
+[![codecov](https://codecov.io/gh/apache/dubbo-spi-extensions/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-spi-extensions)
+[![Maven 
Central](https://img.shields.io/maven-central/v/org.apache.dubbo/dubbo-spi-extensions.svg)](https://search.maven.org/search?q=g:org.apache.dubbo%20AND%20a:dubbo-spi-extensions)
+[![GitHub 
release](https://img.shields.io/github/release/apache/dubbo-spi-extensions.svg)]
+- [dubbo-api-docs](dubbo-api-docs)
+  - [dubbo-api-docs/dubbo-api-docs-annotations](dubbo-api-docs-annotations)
+  - [dubbo-api-docs/dubbo-api-docs-core](dubbo-api-docs-core)
+  - [dubbo-api-docs/dubbo-api-docs-examples](dubbo-api-docs-examples)
+- [dubbo-cluster-extensions](dubbo-cluster-extensions)
+  - 
[dubbo-cluster-extensions/dubbo-cluster-broadcast-1](dubbo-cluster-broadcast-1)
+  - 
[dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma](dubbo-cluster-loadbalance-peakewma)
+  - 
[dubbo-cluster-extensions/dubbo-cluster-polaris-dubbo2](dubbo-cluster-polaris-dubbo2)
+  - 
[dubbo-cluster-extensions/dubbo-cluster-specify-address-common](dubbo-cluster-specify-address-common)
+  - 
[dubbo-cluster-extensions/dubbo-cluster-specify-address-dubbo2](dubbo-cluster-specify-address-dubbo2)
+  - 
[dubbo-cluster-extensions/dubbo-cluster-specify-address-dubbo3](dubbo-cluster-specify-address-dubbo3)
+- [dubbo-common-extensions](dubbo-common-extensions)
+- [dubbo-configcenter-extensions](dubbo-configcenter-extensions)
+  - 
[dubbo-configcenter-extensions/dubbo-configcenter-consul](dubbo-configcenter-consul)
+  - 
[dubbo-configcenter-extensions/dubbo-configcenter-etcd](dubbo-configcenter-etcd)
+- [dubbo-cross-thread-extensions](dubbo-cross-thread-extensions)
+- [dubbo-extensions-dependencies-bom](dubbo-extensions-dependencies-bom)
+- [dubbo-extensions-distribution](dubbo-extensions-distribution)
+  - [dubbo-extensions-distribution/dubbo-apache-release](dubbo-apache-release)
+  - [dubbo-extensions-distribution/dubbo-bom](dubbo-bom)
+- [dubbo-filter-extensions](dubbo-filter-extensions)
+  - 
[dubbo-filter-extensions/dubbo-filter-polaris-dubbo2](dubbo-filter-polaris-dubbo2)
+    - 
[dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2](dubbo-filter-polaris-circuitbreaker-dubbo2)
+    - 
[dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2](dubbo-filter-polaris-ratelimit-dubbo2)
+  - [dubbo-filter-extensions/dubbo-filter-seata](dubbo-filter-seata)
+- [dubbo-gateway-extensions](dubbo-gateway-extensions)
+  - [dubbo-gateway-extensions/dubbo-gateway-common](dubbo-gateway-common)
+  - [dubbo-gateway-extensions/dubbo-gateway-consumer](dubbo-gateway-consumer)
+  - [dubbo-gateway-extensions/dubbo-gateway-provider](dubbo-gateway-provider)
+- [dubbo-metadata-report-extensions](dubbo-metadata-report-extensions)
+  - 
[dubbo-metadata-report-extensions/dubbo-metadata-report-consul](dubbo-metadata-report-consul)
+  - 
[dubbo-metadata-report-extensions/dubbo-metadata-report-etcd](dubbo-metadata-report-etcd)
+- [dubbo-mock-extensions](dubbo-mock-extensions)
+  - [dubbo-mock-extensions/dubbo-mock-admin](dubbo-mock-admin)
+  - [dubbo-mock-extensions/dubbo-mock-api](dubbo-mock-api)
+- [dubbo-registry-extensions](dubbo-registry-extensions)
+  - [dubbo-registry-extensions/dubbo-registry-consul](dubbo-registry-consul)
+  - [dubbo-registry-extensions/dubbo-registry-dns](dubbo-registry-dns)
+  - [dubbo-registry-extensions/dubbo-registry-etcd3](dubbo-registry-etcd3)
+  - 
[dubbo-registry-extensions/dubbo-registry-nameservice](dubbo-registry-nameservice)
+  - [dubbo-registry-extensions/dubbo-registry-polaris](dubbo-registry-polaris)
+  - [dubbo-registry-extensions/dubbo-registry-redis](dubbo-registry-redis)
+  - [dubbo-registry-extensions/dubbo-registry-sofa](dubbo-registry-sofa)
+- [dubbo-remoting-extensions](dubbo-remoting-extensions)
+  - [dubbo-remoting-extensions/dubbo-remoting-etcd3](dubbo-remoting-etcd3)
+  - [dubbo-remoting-extensions/dubbo-remoting-grizzly](dubbo-remoting-grizzly)
+  - [dubbo-remoting-extensions/dubbo-remoting-mina](dubbo-remoting-mina)
+  - [dubbo-remoting-extensions/dubbo-remoting-p2p](dubbo-remoting-p2p)
+  - [dubbo-remoting-extensions/dubbo-remoting-quic](dubbo-remoting-quic)
+  - [dubbo-remoting-extensions/dubbo-remoting-redis](dubbo-remoting-redis)
+- [dubbo-rpc-extensions](dubbo-rpc-extensions)
+  - [dubbo-rpc-extensions/dubbo-rpc-hessian](dubbo-rpc-hessian)
+  - [dubbo-rpc-extensions/dubbo-rpc-http](dubbo-rpc-http)
+  - [dubbo-rpc-extensions/dubbo-rpc-memcached](dubbo-rpc-memcached)
+  - [dubbo-rpc-extensions/dubbo-rpc-native-thrift](dubbo-rpc-native-thrift)
+  - [dubbo-rpc-extensions/dubbo-rpc-redis](dubbo-rpc-redis)
+  - [dubbo-rpc-extensions/dubbo-rpc-rmi](dubbo-rpc-rmi)
+  - [dubbo-rpc-extensions/dubbo-rpc-rocketmq](dubbo-rpc-rocketmq)
+  - [dubbo-rpc-extensions/dubbo-rpc-webservice](dubbo-rpc-webservice)
+- [dubbo-serialization-extensions](dubbo-serialization-extensions)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-avro](dubbo-serialization-avro)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-fastjson](dubbo-serialization-fastjson)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-fst](dubbo-serialization-fst)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-gson](dubbo-serialization-gson)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-kryo](dubbo-serialization-kryo)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-msgpack](dubbo-serialization-msgpack)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-native-hession](dubbo-serialization-native-hession)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-protobuf](dubbo-serialization-protobuf)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-protostuff](dubbo-serialization-protostuff)
+  - 
[dubbo-serialization-extensions/dubbo-serialization-test](dubbo-serialization-test)
+- [dubbo-tag-extensions](dubbo-tag-extensions)
+  - [dubbo-tag-extensions/dubbo-tag-subnets](dubbo-tag-subnets)
diff --git a/doc-auto-gen/pom.xml b/doc-auto-gen/pom.xml
new file mode 100644
index 0000000..e85c1af
--- /dev/null
+++ b/doc-auto-gen/pom.xml
@@ -0,0 +1,32 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.dubbo.extensions</groupId>
+        <artifactId>extensions-parent</artifactId>
+        <version>${revision}</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <version>1.0.1-SNAPSHOT</version>
+    <description>Dubbo interface documentation, testing tools</description>
+
+    <artifactId>doc-auto-gen</artifactId>
+    <packaging>jar</packaging>
+
+    <name>doc-auto-gen</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/doc-auto-gen/src/main/java/org/apache/dubbo/doc/DocAutoGen.java 
b/doc-auto-gen/src/main/java/org/apache/dubbo/doc/DocAutoGen.java
new file mode 100644
index 0000000..c1c3baf
--- /dev/null
+++ b/doc-auto-gen/src/main/java/org/apache/dubbo/doc/DocAutoGen.java
@@ -0,0 +1,48 @@
+package org.apache.dubbo.doc;
+
+import java.io.*;
+import java.util.Arrays;
+
+public class DocAutoGen {
+    public static void main(String[] args) throws IOException {
+        String filePath = System.getProperty("user.dir");
+        File file = new File(filePath);
+        int level = 0;
+        String parentPath = "";
+        System.setOut(new PrintStream(filePath + "/" + "README.md"));
+        System.out.println("# dubbo-spi-extensions");
+        System.out.println("[![Build 
Status](https://travis-ci.org/apache/dubbo-spi-extensions.svg?branch=master)](https://travis-ci.org/apache/dubbo-spi-extensions)\n"
 +
+            
"[![codecov](https://codecov.io/gh/apache/dubbo-spi-extensions/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-spi-extensions)\n"
 +
+            "[![Maven 
Central](https://img.shields.io/maven-central/v/org.apache.dubbo/dubbo-spi-extensions.svg)](https://search.maven.org/search?q=g:org.apache.dubbo%20AND%20a:dubbo-spi-extensions)\n"
 +
+            "[![GitHub 
release](https://img.shields.io/github/release/apache/dubbo-spi-extensions.svg)]");
+        visitFile(file, parentPath, level);
+    }
+
+    private static void visitFile(File file, String parentPath, int level) {
+        File[] files = file.listFiles();
+        // gen code sort by file name
+        Arrays.sort(files, (o1, o2) -> {
+            if (o1.isDirectory() && o2.isFile()) {
+                return -1;
+            }
+            if (o1.isFile() && o2.isDirectory()) {
+                return 1;
+            }
+            return o1.getName().compareTo(o2.getName());
+        });
+        for (int i = 0; i < files.length; i++) {
+            File f = files[i];
+            String name = f.getName();
+            if (name.startsWith("dubbo-")) {
+                String blank = "";
+                for (int j = 0; j < level; j++) {
+                    blank += "  ";
+                }
+
+                String currentPath = level == 0 ? name : parentPath + "/" + 
name;
+                System.out.println(blank + "- [" + currentPath + "]" + "(" + 
name + ")");
+                visitFile(f, currentPath, level + 1);
+            }
+        }
+    }
+}
diff --git a/doc-auto-gen/src/test/java/org/example/AppTest.java 
b/doc-auto-gen/src/test/java/org/example/AppTest.java
new file mode 100644
index 0000000..d5f435d
--- /dev/null
+++ b/doc-auto-gen/src/test/java/org/example/AppTest.java
@@ -0,0 +1,38 @@
+package org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}
diff --git a/pom.xml b/pom.xml
index 78b1323..d45ce02 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,6 +97,7 @@
         <module>dubbo-gateway-extensions</module>
         <module>dubbo-cross-thread-extensions</module>
         <module>dubbo-tag-extensions</module>
+        <module>doc-auto-gen</module>
     </modules>
 
     <properties>

Reply via email to