Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spring-projects/spring-session-data-mongodb
Spring Session for MongoDB
https://github.com/spring-projects/spring-session-data-mongodb
mongodb spring-session
Last synced: 4 months ago
JSON representation
Spring Session for MongoDB
- Host: GitHub
- URL: https://github.com/spring-projects/spring-session-data-mongodb
- Owner: spring-projects
- License: apache-2.0
- Created: 2017-05-24T16:05:56.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2023-12-05T22:23:08.000Z (about 1 year ago)
- Last Synced: 2024-09-28T16:41:26.034Z (4 months ago)
- Topics: mongodb, spring-session
- Language: Java
- Homepage: https://spring.io/projects/spring-session-data-mongodb
- Size: 18.6 MB
- Stars: 49
- Watchers: 27
- Forks: 34
- Open Issues: 26
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.adoc
Awesome Lists containing this project
README
https://spring.io/projects/spring-session-data-mongodb[Spring Session for MongoDB] is part of the Spring Session umbrella.
image:https://jenkins.spring.io/buildStatus/icon?job=spring-session-data-mongodb%2Fmaster&subject=Corn%20(master)[link=https://jenkins.spring.io/view/SpringData/job/spring-session-data-mongodb/]
image:https://jenkins.spring.io/buildStatus/icon?job=spring-session-data-mongodb%2F2.1.x&subject=Bean%20(2.1.x)[link=https://jenkins.spring.io/view/SpringData/job/spring-session-data-mongodb/]
image:https://jenkins.spring.io/buildStatus/icon?job=spring-session-data-mongodb%2F2.0.x&subject=Apple%20(2.0.x)[link=https://jenkins.spring.io/view/SpringData/job/spring-session-data-mongodb/]= Spring Session MongoDB
Spring Session MongoDB provides a solution for Spring Session in a MongoDB data store.
* Accessing a session from any environment (i.e. web, messaging infrastructure, etc)
* In a web environment
** Support for clustering in a vendor neutral way
** Pluggable strategy for determining the session id
** Easily keep the HttpSession alive when a WebSocket is active== Project Status
We go to great lengths to ensure smooth upgrades. We also seek to make your upgrade on major versions of Java can be as smooth
as possible.[IMPORTANT]
====
* Spring Session for MongoDB 2.2.x runs on Spring Framework 5.2.
* Spring Session for MongoDB 2.1.x runs on Spring Framework 5.1.Both of these have support for *JDK 11*.
Spring Session for MongoDB *2.0* runs on Spring Framework 5.0 and is NOT supported on *JDK 11* despite
our pipelines testing against it. The extra tests are designed to give you a smooth upgrade path. If you are going into production on
JDK 11, you should be using at least Spring Session for MongoDB *2.1*.
====IMPORTANT: *JDK 13* is Java's latest version and is unstable. We are testing against it to catch issues early on, but don't support it directly on any version of Spring Session for MongoDB.
== Building Spring Session MongoDB
. Run `./mvnw clean package`
This will generate the artifact.
You can also import the project into your IDE.
== Making a release
1. Create a new release (on the main branch).
+
----
% ci/create-release.sh
----
+
2. With the release tagged, push the tagged version to the release branch.
+
----
% git checkout -b release
% git reset --hard
% git push -f origin release
----NOTE: You can chain the previous set of commands together using `&&`.
The pipeline will build and release the "release" branch. It will also build a new a new snapshot and stage it on artifactory.
The pipeline will pick up the next tag and release it. It will also build a new snapshot and stage it on artifactory.
=== Running CI tasks locally
Since the pipeline uses Docker, it's easy to:
* Debug what went wrong on your local machine.
* Test out a a tweak to your `test.sh` script before sending it out.
* Experiment against a new image before submitting your pull request.All of these use cases are great reasons to essentially run what Jenkins does on your local machine.
IMPORTANT: To do this you must have Docker installed on your machine.
1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-session-data-mongodb-github adoptopenjdk/openjdk8:latest /bin/bash`
+
This will launch the Docker image and mount your source code at `spring-session-data-mongodb-github`.
+
2. `cd spring-session-data-mongodb-github`
+
Next, run the `test.sh` script from inside the container:
+
2. `PROFILE=none ci/test.sh`Since the container is binding to your source, you can make edits from your IDE and continue to run build jobs.
If you need to test the `build.sh` script, then do this:
1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-session-data-mongodb-github --mount type=bind,source="/tmp/spring-session-data-mongodb-artifactory",target=/spring-session-data-mongodb-artifactory adoptopenjdk/openjdk8:latest /bin/bash`
+
This will launch the Docker image and mount your source code at `spring-session-data-mongodb-github` and the temporary
artifactory output directory at `spring-session-data-mongodb-artifactory`.
+
Next, run the `build.sh` script from inside the container:
+
2. `ci/build.sh`IMPORTANT: `build.sh` will attempt to push to Artifactory. If you don't supply credentials, it will fail.
NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images.
== Code of Conduct
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct].
By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].= Spring Session Project Site
You can find the documentation, issue management, support, samples, and guides for using Spring Session MongoDB at https://projects.spring.io/spring-session-data-mongodb/
= License
Spring Session is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].