Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
* [MODSOURMAN-1365](https://folio-org.atlassian.net/browse/MODSOURMAN-1365) Update bib mapping rule for Cumulative Index / Finding Aids notes
* [MODSOURMAN-1260](https://folio-org.atlassian.net/browse/MODSOURMAN-1260) The 'The 004 tag of the Holdings doesn't have a link to the Bibliographic record' error message is not displayed on JSON data after importing file
* [MODSOURMAN-1366](https://folio-org.atlassian.net/browse/MODSOURMAN-1366) Unable to update MARC authority record if the match point is 999 ff $i
* [MODSOURMAN-1371](https://folio-org.atlassian.net/browse/MODSOURMAN-1371) Remove quick-marc events handling logic

## 2025-03-13 v3.10.0
* [MODSOURMAN-1246](https://folio-org.atlassian.net/browse/MODSOURMAN-1246) Added data import completion notifications
Expand Down
98 changes: 0 additions & 98 deletions descriptors/ModuleDescriptor-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -399,92 +399,6 @@
}
]
},
{
"id": "source-manager-parsed-records",
"version": "4.0",
"handlers": [
{
"methods": [
"PUT"
],
"pathPattern": "/change-manager/parsedRecords/{id}",
"permissionsRequired": [
"change-manager.parsedrecords.put"
],
"modulePermissions": [
"mod-settings.global.read.stripes-core.prefs.manage",
"converter-storage.field-protection-settings.collection.get",
"converter-storage.jobprofilesnapshots.get",
"inventory-storage.alternative-title-types.collection.get",
"inventory-storage.authorities.collection.get",
"inventory-storage.authorities.item.get",
"inventory-storage.authorities.item.post",
"inventory-storage.authorities.item.put",
"inventory-storage.authorities.item.delete",
"inventory-storage.authority-note-types.collection.get",
"inventory-storage.authority-source-files.collection.get",
"inventory-storage.call-number-types.collection.get",
"inventory-storage.classification-types.collection.get",
"inventory-storage.contributor-name-types.collection.get",
"inventory-storage.contributor-types.collection.get",
"inventory-storage.electronic-access-relationships.collection.get",
"inventory-storage.holdings-note-types.collection.get",
"inventory-storage.holdings-sources.collection.get",
"inventory-storage.holdings-types.collection.get",
"inventory-storage.holdings.collection.get",
"inventory-storage.holdings.item.get",
"inventory-storage.holdings.item.post",
"inventory-storage.holdings.item.put",
"inventory-storage.identifier-types.collection.get",
"inventory-storage.ill-policies.collection.get",
"inventory-storage.instance-date-types.collection.get",
"inventory-storage.instance-formats.collection.get",
"inventory-storage.instance-note-types.collection.get",
"inventory-storage.instance-relationship-types.collection.get",
"inventory-storage.instance-statuses.collection.get",
"inventory-storage.instance-types.collection.get",
"inventory-storage.instances.collection.get",
"inventory-storage.instances.item.get",
"inventory-storage.instances.item.post",
"inventory-storage.instances.item.put",
"inventory-storage.instances.preceding-succeeding-titles.collection.put",
"inventory-storage.item-damaged-statuses.collection.get",
"inventory-storage.item-note-types.collection.get",
"inventory-storage.items.collection.get",
"inventory-storage.items.item.post",
"inventory-storage.items.item.put",
"inventory-storage.loan-types.collection.get",
"inventory-storage.loan-types.item.get",
"inventory-storage.locations.collection.get",
"inventory-storage.locations.item.get",
"inventory-storage.material-types.collection.get",
"inventory-storage.material-types.item.get",
"inventory-storage.modes-of-issuance.collection.get",
"inventory-storage.nature-of-content-terms.collection.get",
"inventory-storage.preceding-succeeding-titles.collection.get",
"inventory-storage.preceding-succeeding-titles.item.delete",
"inventory-storage.preceding-succeeding-titles.item.get",
"inventory-storage.preceding-succeeding-titles.item.post",
"inventory-storage.preceding-succeeding-titles.item.put",
"inventory-storage.statistical-code-types.collection.get",
"inventory-storage.statistical-codes.collection.get",
"inventory-storage.subject-sources.collection.get",
"inventory-storage.subject-types.collection.get",
"mapping-metadata.item.get",
"mapping-metadata.type.item.get",
"source-storage.snapshots.put",
"source-storage.verified.records",
"users.collection.get",
"orders.po-lines.collection.get",
"instance-authority-links.instances.collection.get",
"instance-authority-links.instances.collection.put",
"instance-authority.linking-rules.collection.get",
"source-storage.records.post",
"source-storage.records.put"
]
}
]
},
{
"id": "metadata-provider-job-execution-logs",
"version": "1.1",
Expand Down Expand Up @@ -773,16 +687,6 @@
"displayName": "Change Manager - delete jobExecution and all associated records from SRS",
"description": "Delete JobExecution and all associated records from SRS"
},
{
"permissionName": "change-manager.parsedrecords.get",
"displayName": "Change Manager - get parsed records by externalId",
"description": "Get parsed record"
},
{
"permissionName": "change-manager.parsedrecords.put",
"displayName": "Change Manager - update parsed record by id",
"description": "Update parsed record"
},
{
"permissionName": "mapping-rules.get",
"displayName": "Mapping Rules provider - get default rules by tenant id",
Expand Down Expand Up @@ -831,8 +735,6 @@
"change-manager.jobExecutions.item.put",
"change-manager.records.post",
"change-manager.records.delete",
"change-manager.parsedrecords.get",
"change-manager.parsedrecords.put",
"mapping-rules.get",
"mapping-rules.update",
"mapping-rules.restore",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,12 @@
import org.folio.rest.jaxrs.model.InitJobExecutionsRqDto;
import org.folio.rest.jaxrs.model.JobExecution;
import org.folio.rest.jaxrs.model.JobProfileInfo;
import org.folio.rest.jaxrs.model.ParsedRecordDto;
import org.folio.rest.jaxrs.model.RawRecordsDto;
import org.folio.rest.jaxrs.model.StatusDto;
import org.folio.rest.jaxrs.resource.ChangeManager;
import org.folio.rest.tools.utils.TenantTool;
import org.folio.services.ChunkProcessingService;
import org.folio.services.JobExecutionService;
import org.folio.services.ParsedRecordService;
import org.folio.spring.SpringContextUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
Expand All @@ -43,8 +41,6 @@ public class ChangeManagerImpl implements ChangeManager {
@Autowired
@Qualifier("eventDrivenChunkProcessingService")
private ChunkProcessingService eventDrivenChunkProcessingService;
@Autowired
private ParsedRecordService parsedRecordService;

private String tenantId;

Expand Down Expand Up @@ -241,24 +237,6 @@ public void deleteChangeManagerJobExecutionsRecordsById(String id, Map<String, S
});
}

@Override
public void putChangeManagerParsedRecordsById(String id, ParsedRecordDto entity, Map<String, String> okapiHeaders,
Handler<AsyncResult<Response>> asyncResultHandler, Context vertxContext) {
vertxContext.runOnContext(v -> {
try {
LOGGER.debug("putChangeManagerParsedRecordsById:: id {}, parsedRecordId {}", id, entity.getId());
parsedRecordService.updateRecord(entity, new OkapiConnectionParams(okapiHeaders, vertxContext.owner()))
.map(sentEventForProcessing -> PutChangeManagerParsedRecordsByIdResponse.respond202())
.map(Response.class::cast)
.otherwise(ExceptionHelper::mapExceptionToResponse)
.onComplete(asyncResultHandler);
} catch (Exception e) {
LOGGER.warn(getMessage("putChangeManagerParsedRecordsById:: Failed to update parsed record with id {}", e, id));
asyncResultHandler.handle(Future.succeededFuture(ExceptionHelper.mapExceptionToResponse(e)));
}
});
}

private ParameterizedMessage getMessage(String pattern, Exception e, String... params) {
return new ParameterizedMessage(pattern, new Object[] {params}, e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.Promise;
import io.vertx.core.ThreadingModel;
import io.vertx.core.Vertx;
import io.vertx.core.spi.VerticleFactory;
import io.vertx.serviceproxy.ServiceBinder;
Expand All @@ -22,7 +23,6 @@
import org.folio.verticle.DataImportInitConsumersVerticle;
import org.folio.verticle.JobExecutionProgressVerticle;
import org.folio.verticle.DataImportJournalBatchConsumerVerticle;
import org.folio.verticle.QuickMarcUpdateConsumersVerticle;
import org.folio.verticle.RawMarcChunkConsumersVerticle;
import org.folio.verticle.StoredRecordChunkConsumersVerticle;
import org.folio.verticle.SpringVerticleFactory;
Expand Down Expand Up @@ -57,9 +57,6 @@ public class InitAPIImpl implements InitAPI {
@Value("${srm.kafka.JobExecutionProgressVerticle.instancesNumber:1}")
private int jobExecutionProgressInstancesNumber;

@Value("${srm.kafka.QuickMarcUpdateConsumersVerticle.instancesNumber:1}")
private int quickMarcUpdateConsumerInstancesNumber;

@Value("${srm.kafka.JobExecutionDeletion.instancesNumber:1}")
private int jobExecutionDeletionInstanceNumber;

Expand Down Expand Up @@ -87,7 +84,7 @@ public void init(Vertx vertx, Context context, Handler<AsyncResult<Boolean>> han
handler.handle(Future.failedFuture(th));
LOGGER.warn("init:: Consumer Verticles were not started", th);
});
} catch (Throwable th) {
} catch (Exception th) {
LOGGER.warn("init:: Error during module init", th);
handler.handle(Future.failedFuture(th));
}
Expand All @@ -110,47 +107,41 @@ private Future<?> deployConsumersVerticles(Vertx vertx) {
Promise<String> deployDataImportConsumer = Promise.promise();
Promise<String> deployDataImportJournalConsumer = Promise.promise();
Promise<String> deployJobExecutionProgressConsumer = Promise.promise();
Promise<String> deployQuickMarcUpdateConsumer = Promise.promise();
Promise<String> deployPeriodicDeleteJobExecution = Promise.promise();

vertx.deployVerticle(getVerticleName(verticleFactory, DataImportInitConsumersVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(initConsumerInstancesNumber), deployInitConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, RawMarcChunkConsumersVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(rawMarcChunkConsumerInstancesNumber), deployRawMarcChunkConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, StoredRecordChunkConsumersVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(storedMarcChunkConsumerInstancesNumber), deployStoredMarcChunkConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, DataImportConsumersVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(dataImportConsumerInstancesNumber), deployDataImportConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, DataImportJournalBatchConsumerVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(dataImportJournalConsumerInstancesNumber), deployDataImportJournalConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, JobExecutionProgressVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(jobExecutionProgressInstancesNumber), deployJobExecutionProgressConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, QuickMarcUpdateConsumersVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setInstances(quickMarcUpdateConsumerInstancesNumber), deployQuickMarcUpdateConsumer);

vertx.deployVerticle(getVerticleName(verticleFactory, PeriodicDeleteJobExecutionVerticle.class),
new DeploymentOptions()
.setWorker(true)
.setThreadingModel(ThreadingModel.WORKER)
.setInstances(jobExecutionDeletionInstanceNumber), deployPeriodicDeleteJobExecution);

return GenericCompositeFuture.all(Arrays.asList(
Expand All @@ -159,7 +150,6 @@ private Future<?> deployConsumersVerticles(Vertx vertx) {
deployStoredMarcChunkConsumer.future(),
deployDataImportConsumer.future(),
deployDataImportJournalConsumer.future(),
deployQuickMarcUpdateConsumer.future(),
deployPeriodicDeleteJobExecution.future()));
}

Expand Down

This file was deleted.

This file was deleted.

Loading