Skip to content

Commit 056067a

Browse files
Fix db access within writer
1 parent 7f391cb commit 056067a

File tree

8 files changed

+16
-116
lines changed

8 files changed

+16
-116
lines changed

record-api-migration/src/main/java/eu/europeana/api/record/migration/DataSourceConfig.java

Lines changed: 0 additions & 103 deletions
This file was deleted.

record-api-migration/src/main/java/eu/europeana/api/record/migration/MigrationCommand.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import com.mongodb.client.MongoClients;
3333
import com.mongodb.connection.ConnectionPoolSettings;
3434

35+
import eu.europeana.api.record.db.config.DataSourceConfig;
36+
3537
import org.apache.commons.cli.Options;
3638
import org.apache.commons.cli.ParseException;
3739

record-api-migration/src/main/java/eu/europeana/api/record/migration/MigrationHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.morphia.query.filters.Filters;
44
import eu.europeana.api.edm.EDM;
55
import eu.europeana.api.format.RdfFormat;
6+
import eu.europeana.api.record.db.repository.RecordRepository;
67
import eu.europeana.api.record.io.FormatHandlerRegistry;
78
import eu.europeana.api.record.migration.RecordDomProcessor.Result;
89
import eu.europeana.api.record.model.*;
@@ -67,14 +68,14 @@ public class MigrationHandler {
6768

6869
private final FormatHandlerRegistry registry;
6970

70-
private final MigrationRepository migrationRepository;
71+
private final RecordRepository migrationRepository;
7172

7273
private final TemplateLibrary library;
7374

7475
@Autowired
7576
public MigrationHandler(MigrationSettings settings
7677
, FormatHandlerRegistry registry
77-
, MigrationRepository migrationRepository
78+
, RecordRepository migrationRepository
7879
, @Qualifier(BEAN_RECORD_TEMPLATE_LIBRARY) TemplateLibrary library) {
7980
this.settings = settings;
8081
this.registry = registry;

record-api-migration/src/main/java/eu/europeana/api/record/migration/MigrationRepository.java

Lines changed: 0 additions & 9 deletions
This file was deleted.

record-api-mongo/src/main/java/eu/europeana/api/record/db/repository/RecordRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ public class RecordRepository implements ObjectRepository {
5656
* @return saved record
5757
*/
5858
public ProvidedCHO save(ProvidedCHO record) {
59-
6059
UpdateOptions upsert = new UpdateOptions().upsert(true);
6160
Filter idf = Filters.eq("id", record.getID());
6261

record-api-web/src/main/java/eu/europeana/api/record/service/RecordService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package eu.europeana.api.record.service;
22

3+
import dev.morphia.internal.DatastoreHolder;
34
import dev.morphia.query.FindOptions;
45
import dev.morphia.query.MorphiaCursor;
56
import eu.europeana.api.record.config.AppConfig;
@@ -25,6 +26,10 @@ public RecordService(RecordRepository recordRepository, RecordApiConfiguration r
2526
this.recordApiConfiguration = recordApiConfiguration;
2627
}
2728

29+
public void init() {
30+
DatastoreHolder.holder.set(recordRepository.getDatastore());
31+
}
32+
2833
public ProvidedCHO saveRecord(ProvidedCHO providedCHO) {
2934
return recordRepository.save(providedCHO);
3035
}

record-api-web/src/main/java/eu/europeana/api/record/web/RecordController.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package eu.europeana.api.record.web;
22

3+
import dev.morphia.internal.DatastoreHolder;
34
import dev.morphia.query.MorphiaCursor;
45
import eu.europeana.api.commons.web.http.HttpHeaders;
56
import eu.europeana.api.error.EuropeanaApiException;
@@ -140,6 +141,8 @@ private ResponseEntity<StreamingResponseBody> createResponse(String datasetId, S
140141
StreamingResponseBody responseBody = new StreamingResponseBody() {
141142
@Override
142143
public void writeTo(OutputStream out) throws IOException {
144+
//this is needed because Jackson serialises the response in a new thread
145+
recordService.init();
143146
formatHandlerRegistry.get(recordRequest.getRdfFormat()).write(providedCHO, out);
144147
out.flush();
145148
}
@@ -161,6 +164,8 @@ private ResponseEntity<StreamingResponseBody> createResponseMultipleRecords(List
161164
@Override
162165
public void writeTo(OutputStream out) throws IOException {
163166
try {
167+
//this is needed because Jackson serialises the response in a new thread
168+
recordService.init();
164169
formatHandlerRegistry.get(RdfFormat.JSONLD).write(records, records.available(), out);
165170
out.flush();
166171
}

record-api-web/src/main/resources/record-api.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Record API properties file
22

33
# mongo url
4-
mongo.connectionUrl=
4+
mongo.connectionUrl=mongodb://recorduser1:wRfis830Lpdjw%[email protected]/record??compressors=snappy&serverSelectionTimeoutMS=25000&connectTimeoutMS=6000&socketTimeoutMS=35000&directConnection=true&tls=false
55
mongo.record.database=record
66

77

0 commit comments

Comments
 (0)