Skip to content

Commit 9a400e0

Browse files
author
Oracle Public Cloud User
committed
Add to README
1 parent d2137f5 commit 9a400e0

File tree

7 files changed

+73
-21
lines changed

7 files changed

+73
-21
lines changed

MongoExamples/SpringBoot/README.md

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,72 @@ admin> db.station.find({_id:120});
7373

7474
# Building the service
7575

76-
[todo]
76+
Install Java, maven, and git:
77+
```
78+
sudo yum install maven java-17-openjdk git
79+
export JAVA_HOME=/usr/lib/jvm/jre-17/
80+
export PATH=$JAVA_HOME/bin:$PATH
81+
```
82+
83+
Clone this repository:
84+
85+
```
86+
git clone https://github.com/oracle/json-in-db.git
87+
```
88+
89+
Build the service:
90+
91+
```
92+
cd json-in-db/MongoExamples/SpringBoot/
93+
mvn clean package
94+
```
7795

7896
# Running the service
7997

80-
[todo]
98+
To start the service, run the following command:
99+
100+
```
101+
java -jar ./target/bikes-0.0.1.jar \
102+
--spring.data.mongodb.uri='mongodb://ADMIN:<password>@XXXYYYZZZ-DEMODB.adb.us-ashburn-1.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true' \
103+
--spring.data.mongodb.database=admin
104+
```
105+
106+
But substitute the value of `uri` with your actual connection string. These properties can alternatively be set from [application.properties](src/main/resources/application.properties).
107+
108+
# Testing the service
109+
110+
By running the previous command in the background or by starting a
111+
new shell process, you can test the service using cURL:
112+
113+
```
114+
# get station with id 120
115+
curl http://localhost:8080/station/120
116+
{
117+
"name" : "Lexington Ave & Classon Ave",
118+
"region_id" : "71",
119+
"lon" : -73.95928168,
120+
"lat" : 40.68676793,
121+
...
122+
123+
# get the status data for station 120
124+
curl http://localhost:8080/status/search/findByStationId/?id=120
125+
"_embedded" : {
126+
"status" : [ {
127+
"station_id" : "120",
128+
"num_bikes_available" : 2,
129+
..
130+
131+
# atomically delete station 120 and all associated status documents using a transaction
132+
curl -i -X DELETE http://localhost:8080/station/120
133+
HTTP/1.1 200
134+
...
135+
136+
# station 120 is no longer found
137+
curl -i http://localhost:8080/station/120
138+
HTTP/1.1 404
139+
...
140+
```
141+
81142

82143

83144

MongoExamples/SpringBoot/pom.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77
<relativePath />
88
</parent>
99
<groupId>com.oracle.database.mongo.example</groupId>
10-
<artifactId>SpringBoot</artifactId>
10+
<artifactId>bikes</artifactId>
11+
<name>bikes</name>
1112
<version>0.0.1</version>
12-
<properties>
13-
<java.version>16</java.version>
14-
</properties>
1513
<dependencies>
1614
<dependency>
1715
<groupId>org.springframework.boot</groupId>

MongoExamples/SpringBoot/src/main/java/example/AppConfig.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,10 @@
44
import org.springframework.context.annotation.Configuration;
55
import org.springframework.data.mongodb.MongoDatabaseFactory;
66
import org.springframework.data.mongodb.MongoTransactionManager;
7-
import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;
8-
9-
import com.mongodb.client.MongoClient;
10-
import com.mongodb.client.MongoClients;
117

128
@Configuration
139
public class AppConfig {
1410

15-
public @Bean MongoDatabaseFactory mongoClient() {
16-
String uri = "<connection string>";
17-
MongoClient client = MongoClients.create(uri);
18-
return new SimpleMongoClientDatabaseFactory(client, "admin");
19-
}
20-
2111
@Bean
2212
MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {
2313
return new MongoTransactionManager(dbFactory);

MongoExamples/SpringBoot/src/main/java/example/model/Station.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
import java.util.Map;
55

66
import org.springframework.data.annotation.Id;
7-
import org.springframework.data.mongodb.core.mapping.Document;
87

98
/**
109
* Bike station
1110
*
1211
* @see https://github.com/NABSA/gbfs/blob/master/gbfs.md#station_information
1312
*/
14-
@Document("station")
1513
public class Station {
1614

1715
@Id

MongoExamples/SpringBoot/src/main/java/example/model/Status.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package example.model;
22

33
import org.springframework.data.annotation.Id;
4-
import org.springframework.data.mongodb.core.mapping.Document;
54

65
/**
76
* Bike station status
87
*
98
* @see https://github.com/NABSA/gbfs/blob/master/gbfs.md#station_statusjson
109
*/
11-
@Document("status")
1210
public class Status {
1311

1412
@Id

MongoExamples/SpringBoot/src/main/java/example/repository/StatusRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package example.repository;
22

3+
import java.util.List;
4+
5+
import org.springframework.boot.autoconfigure.web.WebProperties.Resources;
36
import org.springframework.data.mongodb.repository.MongoRepository;
47
import org.springframework.data.mongodb.repository.Query;
58
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@@ -12,4 +15,6 @@ public interface StatusRepository extends MongoRepository<Status, String> {
1215
@Query(value="{'station_id' : ?0}", delete = true)
1316
public void deleteAllByStationId (String id);
1417

18+
@Query(value="{'station_id' : ?0}")
19+
public List<Status> findByStationId (String id);
1520
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
server.port = 8080
2-
logging.level.root=INFO
2+
logging.level.root=INFO
3+
spring.data.mongodb.uri=mongodb://XXXYYYZZZ-DEMODB.adb.us-ashburn-1.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true
4+
spring.data.mongodb.database=admin

0 commit comments

Comments
 (0)