refact: prepare for integrating store modules
diff --git a/.github/workflows/pd-store.yml b/.github/workflows/pd-store.yml
index 65fb3cc..7c45e0f 100644
--- a/.github/workflows/pd-store.yml
+++ b/.github/workflows/pd-store.yml
@@ -49,3 +49,45 @@
uses: codecov/codecov-action@v3.0.0
with:
file: ${{ env.REPORT_DIR }}/*.xml
+
+ store:
+ # TODO: avoid duplicated env setup
+ runs-on: ubuntu-latest
+ env:
+ USE_STAGE: 'true' # Whether to include the stage repository.
+ TRAVIS_DIR: hugegraph-server/hugegraph-dist/src/assembly/travis
+ REPORT_DIR: target/site/jacoco
+
+ steps:
+ - name: Install JDK 11
+ uses: actions/setup-java@v3
+ with:
+ java-version: '11'
+ distribution: 'zulu'
+
+ - name: Cache Maven packages
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 2
+
+ - name: use staged maven repo settings
+ if: ${{ env.USE_STAGE == 'true' }}
+ run: |
+ cp $HOME/.m2/settings.xml /tmp/settings.xml
+ mv -vf .github/configs/settings.xml $HOME/.m2/settings.xml
+
+ - name: Run common test
+ run: |
+ mvn test -pl hugegraph-store/hg-store-test -am -P store-common-test
+
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v3.0.0
+ with:
+ file: ${{ env.REPORT_DIR }}/*.xml
diff --git a/hugegraph-store/.gitignore b/hugegraph-store/.gitignore
new file mode 100644
index 0000000..afb9ae8
--- /dev/null
+++ b/hugegraph-store/.gitignore
@@ -0,0 +1,2 @@
+# Exclude the generated PB files
+hg-store-grpc/src/main/java/
diff --git a/hugegraph-store/README.md b/hugegraph-store/README.md
index bef8b53..cd2dedb 100644
--- a/hugegraph-store/README.md
+++ b/hugegraph-store/README.md
@@ -1,5 +1,8 @@
-# HugeGraph Store
+> Note: From revision 1.5.0, the code of HugeGraph-Store will be adapted to this location (WIP).
-HugeGraph Store is a new built-in storage backend, which uses RocksDB as the distributed backend storage engine.
+# HugeGraph Store (BETA)
-> Note: Currently, the contents of this folder are empty. Starting from revision 1.5.0, the code of HugeGraph Store will be adapted to this location (WIP).
+HugeGraph Store is a new built-in storage backend, which uses RocksDB as the distributed backend
+storage engine.
+
+> BTW, if you meet any problem when using HugeGraph Store, please feel free to contact us for help
diff --git a/hugegraph-store/pom.xml b/hugegraph-store/pom.xml
new file mode 100644
index 0000000..0bb8cd9
--- /dev/null
+++ b/hugegraph-store/pom.xml
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <artifactId>hugegraph-store</artifactId>
+ <version>${revision}</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.apache.hugegraph</groupId>
+ <artifactId>hugegraph</artifactId>
+ <version>${revision}</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <modules>
+ <module>hg-store-common</module>
+ <module>hg-store-grpc</module>
+ <module>hg-store-client</module>
+ <module>hg-store-test</module>
+ <!-- TODO: uncomment later-->
+ <!-- <module>hg-store-rocksdb</module>-->
+ <!-- <module>hg-store-core</module>-->
+ <!-- <module>hg-store-node</module>-->
+ <!-- <module>hg-store-dist</module>-->
+ <!-- <module>hg-store-cli</module>-->
+ </modules>
+
+ <properties>
+ <hugegraph.core.version>1.5.0</hugegraph.core.version>
+ <maven.compiler.source>11</maven.compiler.source>
+ <maven.compiler.target>11</maven.compiler.target>
+ <log4j2.version>2.15.0</log4j2.version>
+ <top.level.dir>${project.basedir}/..</top.level.dir>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <!-- TODO: uncomment later-->
+ <dependency>
+ <groupId>org.apache.hugegraph</groupId>
+ <artifactId>hg-store-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hugegraph</groupId>
+ <artifactId>hg-store-grpc</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- <dependency>-->
+ <!-- <groupId>org.apache.hugegraph</groupId>-->
+ <!-- <artifactId>hg-store-rocksdb</artifactId>-->
+ <!-- <version>${project.version}</version>-->
+ <!-- </dependency>-->
+ <dependency>
+ <groupId>org.apache.hugegraph</groupId>
+ <artifactId>hg-store-client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- <dependency>-->
+ <!-- <groupId>org.apache.hugegraph</groupId>-->
+ <!-- <artifactId>hg-store-core</artifactId>-->
+ <!-- <version>${project.version}</version>-->
+ <!-- </dependency>-->
+ <!-- <dependency>-->
+ <!-- <groupId>org.apache.hugegraph</groupId>-->
+ <!-- <artifactId>hg-store-transfer</artifactId>-->
+ <!-- <version>${project.version}</version>-->
+ <!-- </dependency>-->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <version>2.15.0</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>0.8.4</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ <version>1.2.7</version>
+ <configuration>
+ <updatePomFile>true</updatePomFile>
+ <flattenMode>resolveCiFriendliesOnly</flattenMode>
+ </configuration>
+ <executions>
+ <execution>
+ <id>flatten</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>flatten</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>flatten.clean</id>
+ <phase>clean</phase>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>${project.basedir}/</directory>
+ <includes>
+ <include>*.tar</include>
+ <include>*.tar.gz</include>
+ <include>.flattened-pom.xml</include>
+ <!-- WARN: delete dist dir may influence dev? -->
+ <include>dist/**</include>
+ </includes>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ <!-- <fileset><directory>${final.name}</directory></fileset> -->
+ </filesets>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <!-- TODO: uncomment later-->
+ <!-- hugegraph store test profiles -->
+ <!-- <profile>-->
+ <!-- <id>store-client-test</id>-->
+ <!-- <activation>-->
+ <!-- <activeByDefault>true</activeByDefault>-->
+ <!-- </activation>-->
+ <!-- <build>-->
+ <!-- <plugins>-->
+ <!-- <plugin>-->
+ <!-- <groupId>org.apache.maven.plugins</groupId>-->
+ <!-- <artifactId>maven-surefire-plugin</artifactId>-->
+ <!-- <version>2.20</version>-->
+ <!-- <executions>-->
+ <!-- <execution>-->
+ <!-- <id>store-client-test</id>-->
+ <!-- <goals>-->
+ <!-- <goal>test</goal>-->
+ <!-- </goals>-->
+ <!-- <phase>test</phase>-->
+ <!-- </execution>-->
+ <!-- </executions>-->
+ <!-- </plugin>-->
+ <!-- </plugins>-->
+ <!-- </build>-->
+ <!-- </profile>-->
+ <!-- <profile>-->
+ <!-- <id>store-core-test</id>-->
+ <!-- <activation>-->
+ <!-- <activeByDefault>true</activeByDefault>-->
+ <!-- </activation>-->
+ <!-- <build>-->
+ <!-- <plugins>-->
+ <!-- <plugin>-->
+ <!-- <groupId>org.apache.maven.plugins</groupId>-->
+ <!-- <artifactId>maven-surefire-plugin</artifactId>-->
+ <!-- <version>2.20</version>-->
+ <!-- <executions>-->
+ <!-- <execution>-->
+ <!-- <id>store-core-test</id>-->
+ <!-- <goals>-->
+ <!-- <goal>test</goal>-->
+ <!-- </goals>-->
+ <!-- <phase>test</phase>-->
+ <!-- </execution>-->
+ <!-- </executions>-->
+ <!-- </plugin>-->
+ <!-- </plugins>-->
+ <!-- </build>-->
+ <!-- </profile>-->
+ <profile>
+ <id>store-common-test</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.20</version>
+ <executions>
+ <execution>
+ <id>store-common-test</id>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <phase>test</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <!-- <profile>-->
+ <!-- <id>store-rocksdb-test</id>-->
+ <!-- <activation>-->
+ <!-- <activeByDefault>true</activeByDefault>-->
+ <!-- </activation>-->
+ <!-- <build>-->
+ <!-- <plugins>-->
+ <!-- <plugin>-->
+ <!-- <groupId>org.apache.maven.plugins</groupId>-->
+ <!-- <artifactId>maven-surefire-plugin</artifactId>-->
+ <!-- <version>2.20</version>-->
+ <!-- <executions>-->
+ <!-- <execution>-->
+ <!-- <id>store-rocksdb-test</id>-->
+ <!-- <goals>-->
+ <!-- <goal>test</goal>-->
+ <!-- </goals>-->
+ <!-- <phase>test</phase>-->
+ <!-- </execution>-->
+ <!-- </executions>-->
+ <!-- </plugin>-->
+ <!-- </plugins>-->
+ <!-- </build>-->
+ <!-- </profile>-->
+ <!-- <profile>-->
+ <!-- <id>store-server-test</id>-->
+ <!-- <activation>-->
+ <!-- <activeByDefault>true</activeByDefault>-->
+ <!-- </activation>-->
+ <!-- <build>-->
+ <!-- <plugins>-->
+ <!-- <plugin>-->
+ <!-- <groupId>org.apache.maven.plugins</groupId>-->
+ <!-- <artifactId>maven-surefire-plugin</artifactId>-->
+ <!-- <version>2.20</version>-->
+ <!-- <executions>-->
+ <!-- <execution>-->
+ <!-- <id>store-server-test</id>-->
+ <!-- <goals>-->
+ <!-- <goal>test</goal>-->
+ <!-- </goals>-->
+ <!-- <phase>test</phase>-->
+ <!-- </execution>-->
+ <!-- </executions>-->
+ <!-- </plugin>-->
+ <!-- </plugins>-->
+ <!-- </build>-->
+ <!-- </profile>-->
+ <!-- <profile>-->
+ <!-- <id>store-raftcore-test</id>-->
+ <!-- <activation>-->
+ <!-- <activeByDefault>true</activeByDefault>-->
+ <!-- </activation>-->
+ <!-- <build>-->
+ <!-- <plugins>-->
+ <!-- <plugin>-->
+ <!-- <groupId>org.apache.maven.plugins</groupId>-->
+ <!-- <artifactId>maven-surefire-plugin</artifactId>-->
+ <!-- <version>2.20</version>-->
+ <!-- <executions>-->
+ <!-- <execution>-->
+ <!-- <id>store-raftcore-test</id>-->
+ <!-- <goals>-->
+ <!-- <goal>test</goal>-->
+ <!-- </goals>-->
+ <!-- <phase>test</phase>-->
+ <!-- </execution>-->
+ <!-- </executions>-->
+ <!-- </plugin>-->
+ <!-- </plugins>-->
+ <!-- </build>-->
+ <!-- </profile>-->
+ </profiles>
+</project>
diff --git a/pom.xml b/pom.xml
index ff448ff..273270f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,8 +92,7 @@
<modules>
<module>hugegraph-server</module>
<module>hugegraph-pd</module>
- <!-- TODO: uncomment when merge into store -->
- <!-- <module>hugegraph-store</module> -->
+ <module>hugegraph-store</module>
</modules>
<build>
@@ -177,8 +176,11 @@
<exclude>**/hbase-*/**</exclude>
<exclude>**/apache-cassandra-*/**</exclude>
<exclude>**/pid</exclude>
+ <!-- tmp files generated by store -->
+ <exclude>**/tmp/**</exclude>
<!-- sources generated by gRPC -->
<exclude>**/src/main/java/org/apache/hugegraph/pd/grpc/**</exclude>
+ <exclude>**/src/main/java/org/apache/hugegraph/store/grpc/**</exclude>
</excludes>
<consoleOutput>true</consoleOutput>
</configuration>