diff --git a/mycore-pi/src/main/java/org/mycore/pi/MCRPIConfigurationChecker.java b/mycore-pi/src/main/java/org/mycore/pi/MCRPIConfigurationChecker.java index b6fa070168..548076b44c 100644 --- a/mycore-pi/src/main/java/org/mycore/pi/MCRPIConfigurationChecker.java +++ b/mycore-pi/src/main/java/org/mycore/pi/MCRPIConfigurationChecker.java @@ -73,7 +73,7 @@ public void startUp(ServletContext servletContext) { final MCRPIServiceManager serviceManager = MCRPIServiceManager.getInstance(); serviceManager.getServiceList().forEach(service -> { LOGGER.info(() -> "Check service: " + service.getServiceID()); - service.checkConfiguration(); + service.checkConfiguration(servletContext != null ? MCRPIService.Context.WEBAPP : MCRPIService.Context.CLI); }); } diff --git a/mycore-pi/src/main/java/org/mycore/pi/MCRPIJobService.java b/mycore-pi/src/main/java/org/mycore/pi/MCRPIJobService.java index 32a1dbb1f5..0de4c82b1e 100644 --- a/mycore-pi/src/main/java/org/mycore/pi/MCRPIJobService.java +++ b/mycore-pi/src/main/java/org/mycore/pi/MCRPIJobService.java @@ -350,8 +350,8 @@ protected PiJobAction getAction(Map contextParameters) { } @Override - protected void checkConfiguration() throws MCRConfigurationException { - super.checkConfiguration(); + protected void checkConfiguration(Context context) throws MCRConfigurationException { + super.checkConfiguration(context); if (getProperties().containsKey("RegistrationConditionProvider")) { throw new MCRConfigurationException("The MCRPIService " + getServiceID() + " uses old property key RegistrationConditionProvider, use " + REGISTRATION_PREDICATE + " instead."); diff --git a/mycore-pi/src/main/java/org/mycore/pi/MCRPIService.java b/mycore-pi/src/main/java/org/mycore/pi/MCRPIService.java index 47b9999e77..d76991d510 100644 --- a/mycore-pi/src/main/java/org/mycore/pi/MCRPIService.java +++ b/mycore-pi/src/main/java/org/mycore/pi/MCRPIService.java @@ -214,7 +214,7 @@ public final String getServiceID() { * * @throws MCRConfigurationException if parameter is missing or wrong! */ - protected void checkConfiguration() throws MCRConfigurationException { + protected void checkConfiguration(Context context) throws MCRConfigurationException { if (getProperties().containsKey("MetadataManager")) { throw new MCRConfigurationException("The MCRPIService " + getServiceID() + " uses old property key MetadataManager"); @@ -577,4 +577,9 @@ public static Predicate getPredicateInstance(String predicateProperty) return MCRConfiguration2.getInstanceOfOrThrow(Predicate.class, predicateProperty); } + public enum Context { + WEBAPP, + CLI + } + } diff --git a/mycore-pi/src/main/java/org/mycore/pi/doi/MCRCrossrefService.java b/mycore-pi/src/main/java/org/mycore/pi/doi/MCRCrossrefService.java index 3bea9ab592..e6dc17ae71 100644 --- a/mycore-pi/src/main/java/org/mycore/pi/doi/MCRCrossrefService.java +++ b/mycore-pi/src/main/java/org/mycore/pi/doi/MCRCrossrefService.java @@ -68,8 +68,8 @@ protected String getDefaultSchemaPath() { } @Override - protected void checkConfiguration() throws MCRConfigurationException { - super.checkConfiguration(); + protected void checkConfiguration(Context context) throws MCRConfigurationException { + super.checkConfiguration(context); init(); } diff --git a/mycore-pi/src/main/java/org/mycore/pi/doi/MCRDOIService.java b/mycore-pi/src/main/java/org/mycore/pi/doi/MCRDOIService.java index 1c183f6f02..31c8631da6 100644 --- a/mycore-pi/src/main/java/org/mycore/pi/doi/MCRDOIService.java +++ b/mycore-pi/src/main/java/org/mycore/pi/doi/MCRDOIService.java @@ -182,15 +182,17 @@ private void insertDOI(Document datacite, String doi) } @Override - protected void checkConfiguration() throws MCRConfigurationException { - super.checkConfiguration(); + protected void checkConfiguration(Context context) throws MCRConfigurationException { + super.checkConfiguration(context); this.initCommonProperties(); init(); - try { - getDataciteClient().getDOIList(); - } catch (MCRPersistentIdentifierException e) { - LOGGER.error("Error while checking Datacite credentials!", e); + if (context == Context.WEBAPP) { + try { + getDataciteClient().getDOIList(); + } catch (MCRPersistentIdentifierException e) { + LOGGER.error("Error while checking Datacite credentials!", e); + } } }