This is an automated email from the ASF dual-hosted git repository.
tison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/main by this push:
new 24b709e5ea feat(integrations/spring): add spring project module (#4988)
24b709e5ea is described below
commit 24b709e5eaeff15c363329c58cb2998d395ac561
Author: ZhangJian He <[email protected]>
AuthorDate: Wed Aug 14 12:25:58 2024 +0800
feat(integrations/spring): add spring project module (#4988)
Signed-off-by: ZhangJian He <[email protected]>
Co-authored-by: tison <[email protected]>
---
integrations/spring/.gitignore | 20 +++++++
integrations/spring/README.md | 11 ++++
.../opendal-spring-boot-starter-reactive/pom.xml | 47 +++++++++++++++
.../spring/opendal-spring-boot-starter/pom.xml | 46 +++++++++++++++
integrations/spring/opendal-spring/pom.xml | 46 +++++++++++++++
integrations/spring/pom.xml | 66 ++++++++++++++++++++++
6 files changed, 236 insertions(+)
diff --git a/integrations/spring/.gitignore b/integrations/spring/.gitignore
new file mode 100644
index 0000000000..e600ed19d9
--- /dev/null
+++ b/integrations/spring/.gitignore
@@ -0,0 +1,20 @@
+# file system
+.DS_Store
+
+# ide
+.idea/**
+!.idea/icon.svg
+!.idea/vcs.xml
+
+# Project exclude paths
+**.log
+**/target
+**/.classpath
+**/.project
+**/.factorypath
+
+# mvn
+dependency-reduced-pom.xml
+
+# log file
+logs/
diff --git a/integrations/spring/README.md b/integrations/spring/README.md
new file mode 100644
index 0000000000..81ba9d0f93
--- /dev/null
+++ b/integrations/spring/README.md
@@ -0,0 +1,11 @@
+# Apache OpenDALâ„¢ Spring Integrations
+
+Apache OpenDALâ„¢ Spring Integrations provide seamless integration between the
Apache OpenDAL library and Spring applications. This project offers both
synchronous and asynchronous configurations tailored to different Spring
environments.
+
+## Overview
+
+This project includes three primary modules:
+
+- opendal-spring: Core integration module for [Spring](https://spring.io/)
applications.
+- opendal-spring-boot-starter: Synchronous starter for [Spring
WebMVC](https://docs.spring.io/spring-framework/reference/web/webmvc.html).
+- opendal-spring-boot-starter-reactor: Asynchronous starter for [Spring
WebFlux](https://docs.spring.io/spring-framework/reference/web/webflux.html).
diff --git a/integrations/spring/opendal-spring-boot-starter-reactive/pom.xml
b/integrations/spring/opendal-spring-boot-starter-reactive/pom.xml
new file mode 100644
index 0000000000..2066d05a46
--- /dev/null
+++ b/integrations/spring/opendal-spring-boot-starter-reactive/pom.xml
@@ -0,0 +1,47 @@
+<?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="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.opendal</groupId>
+ <artifactId>spring-boot-opendal-parent</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>opendal-spring-boot-starter-reactive</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.opendal</groupId>
+ <artifactId>opendal-spring</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
+
diff --git a/integrations/spring/opendal-spring-boot-starter/pom.xml
b/integrations/spring/opendal-spring-boot-starter/pom.xml
new file mode 100644
index 0000000000..e3c3abf741
--- /dev/null
+++ b/integrations/spring/opendal-spring-boot-starter/pom.xml
@@ -0,0 +1,46 @@
+<?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="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.opendal</groupId>
+ <artifactId>opendal-spring-parent</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>opendal-spring-boot-starter</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.opendal</groupId>
+ <artifactId>opendal-spring</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/integrations/spring/opendal-spring/pom.xml
b/integrations/spring/opendal-spring/pom.xml
new file mode 100644
index 0000000000..8524a5d939
--- /dev/null
+++ b/integrations/spring/opendal-spring/pom.xml
@@ -0,0 +1,46 @@
+<?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="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.opendal</groupId>
+ <artifactId>opendal-spring-parent</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>opendal-spring</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.projectreactor</groupId>
+ <artifactId>reactor-core</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/integrations/spring/pom.xml b/integrations/spring/pom.xml
new file mode 100644
index 0000000000..87a734c698
--- /dev/null
+++ b/integrations/spring/pom.xml
@@ -0,0 +1,66 @@
+<?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="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>
+
+ <groupId>org.apache.opendal</groupId>
+ <artifactId>opendal-spring-parent</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>opendal-spring</module>
+ <module>opendal-spring-boot-starter</module>
+ <module>opendal-spring-boot-starter-reactive</module>
+ </modules>
+
+ <parent>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-dependencies</artifactId>
+ <version>${spring-boot.version}</version>
+ </parent>
+
+ <properties>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <!-- dependency -->
+ <opendal.version>0.47.0</opendal.version>
+ <spring-boot.version>3.3.2</spring-boot.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.opendal</groupId>
+ <artifactId>opendal</artifactId>
+ <version>${opendal.version}</version>
+ </dependency>
+ </dependencies>
+
+</project>