DATAGEODE-195 - Introduce Jenkins.
This commit is contained in:
172
README.adoc
Normal file
172
README.adoc
Normal file
@@ -0,0 +1,172 @@
|
||||
image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-geode%2Fmaster&subject=Moore%20(master)[link=https://jenkins.spring.io/view/SpringData/job/spring-data-geode/]
|
||||
image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-geode%2F2.1.x&subject=Lovelace%20(2.1.x)[link=https://jenkins.spring.io/view/SpringData/job/spring-data-geode/]
|
||||
|
||||
= Spring Data for Apache Geode
|
||||
|
||||
The primary goal of the https://projects.spring.io/spring-data-gemfire[Spring Data for Apache Geode] project is to
|
||||
make it easier to build highly scalable, _Spring_ powered applications using https://geode.apache.org/[Apache Geode]
|
||||
as the underlying distributed, in-memory data management platform.
|
||||
|
||||
= Examples
|
||||
|
||||
For examples on using the _Spring Data for Apache Geode_, see the
|
||||
https://github.com/SpringSource/spring-gemfire-examples[spring-gemfire-examples] project.
|
||||
|
||||
= Getting Help
|
||||
|
||||
Read the main project https://projects.spring.io/spring-data-gemfire/[website] along with the https://docs.spring.io/spring-data-gemfire/docs/current/reference/html/[User Guide].
|
||||
|
||||
Look at the source code and the https://docs.spring.io/spring-data-gemfire/docs/current/api/[JavaDocs].
|
||||
|
||||
For more detailed questions, visit https://stackoverflow.com/questions/tagged/spring-data-gemfire[StackOverflow].
|
||||
|
||||
If you are new to _Spring_ as well as _Spring Data for Apache Geode_, look for information about
|
||||
https://spring.io/projects[Spring projects].
|
||||
|
||||
== Quick Start
|
||||
|
||||
For those in a hurry:
|
||||
|
||||
*
|
||||
|
||||
Download the jar through
|
||||
|
||||
*
|
||||
|
||||
Maven:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-geode</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- nightly builds -->
|
||||
<repository>
|
||||
<id>spring-maven-snapshot</id>
|
||||
<name>Spring Maven SNAPSHOT Repository</name>
|
||||
<url>https://repo.spring.io/snapshot</url>
|
||||
<snapshots><enabled>true</enabled></snapshots>
|
||||
</repository>
|
||||
|
||||
<!-- milestones/release candidates-->
|
||||
<repository>
|
||||
<id>spring-maven-milestone</id>
|
||||
<name>Spring Maven Milestone Repository</name>
|
||||
<url>https://repo.spring.io/milestone</url>
|
||||
</repository>
|
||||
----
|
||||
|
||||
* Gradle:
|
||||
[source,groovy]
|
||||
----
|
||||
repositories {
|
||||
mavenRepo name: "spring-snapshot", urls: "https://repo.spring.io/snapshot"
|
||||
mavenRepo name: "spring-milestone", urls: "https://repo.spring.io/milestone"
|
||||
mavenRepo name: "spring-plugins" , urls: "https://repo.spring.io/plugins-release"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "org.springframework.data:spring-data-geode:${version}"
|
||||
}
|
||||
----
|
||||
|
||||
* Configure a Geode cache and Region (REPLICATE, PARTITION and so on):
|
||||
[source,xml]
|
||||
----
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:gfe="http://www.springframework.org/schema/geode"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/geode https://www.springframework.org/schema/geode/spring-geode.xsd">
|
||||
|
||||
<gfe:cache/>
|
||||
|
||||
<gfe:partitioned-region id="ExampleRegion" copies="2">
|
||||
|
||||
<bean id="gemfireTemplate" class="org.springframework.data.gemfire.GemfireTemplate" p:region-ref="ExampleRegion"/>
|
||||
</beans>
|
||||
----
|
||||
|
||||
* Use the Region to read/write data:
|
||||
[source,java]
|
||||
----
|
||||
region.put(Long.valueOf(1), new Person("Jane", "Smith"));
|
||||
----
|
||||
|
||||
* And/Or `GemFireTemplate` to interact with Geode:
|
||||
[source,java]
|
||||
----
|
||||
template.query("person = 1");
|
||||
----
|
||||
|
||||
= Building
|
||||
|
||||
_Spring Data for Apache Geode_ uses Maven as its build system. To compile the project, simply type from the root folder
|
||||
|
||||
[source]
|
||||
----
|
||||
mvn clean install
|
||||
----
|
||||
|
||||
= Contributing
|
||||
|
||||
Here are some ways for you to get involved in the community:
|
||||
|
||||
* Get involved with the Spring community on the Spring Community Forums (now on StackOverflow).
|
||||
Please help out on the https://stackoverflow.com/questions/tagged/spring-data-gemfire[forum]
|
||||
by responding to questions and joining the debate.
|
||||
* Create https://jira.spring.io/browse/SGF[JIRA] tickets for bugs and new features and comment and vote on the bugs
|
||||
you are interested in.
|
||||
* GitHub is for social coding. If you want to write code, we encourage contributions through pull requests
|
||||
from https://help.github.com/forking/[forks of this repository]. If you want to contribute code this way,
|
||||
please reference a JIRA ticket as well covering the specific issue you are addressing.
|
||||
* Watch for upcoming articles on Spring by https://spring.io/blog[subscribing] to spring.io.
|
||||
|
||||
Before we accept a non-trivial patch or pull request we will need you to
|
||||
https://cla.pivotal.io/sign/spring[sign the Contributor License Agreement]. Signing the contributor’s agreement
|
||||
does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions,
|
||||
and you will get an author credit if we do. If you forget to do so, you'll be reminded when you submit a pull request.
|
||||
Active contributors might be asked to join the core team, and given the ability to merge pull requests.
|
||||
|
||||
= Running CI tasks locally
|
||||
|
||||
Since this pipeline is purely Docker-based, 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 the CI server 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-data-geode-github adoptopenjdk/openjdk8:latest /bin/bash`
|
||||
+
|
||||
This will launch the Docker image and mount your source code at `spring-data-geode-github`.
|
||||
+
|
||||
2. `cd spring-data-geode-github`
|
||||
+
|
||||
Next, run your tests from inside the container:
|
||||
+
|
||||
3. `./mvnw clean dependency:list test -Dsort` (or whatever profile you need to test out)
|
||||
|
||||
Since the container is binding to your source, you can make edits from your IDE and continue to run build jobs.
|
||||
|
||||
If you test building the artifact, do this:
|
||||
|
||||
1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-data-geode-github adoptopenjdk/openjdk8:latest /bin/bash`
|
||||
+
|
||||
This will launch the Docker image and mount your source code at `spring-data-geode-github`.
|
||||
+
|
||||
2. `cd spring-data-geode-github`
|
||||
+
|
||||
Next, try to package everything up from inside the container:
|
||||
+
|
||||
3. `./mvnw -Pci,snapshot -Dmaven.test.skip=true clean package`
|
||||
|
||||
NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images.
|
||||
|
||||
Reference in New Issue
Block a user