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>

Reply via email to