From 5b23a1896bf8ce15f01cb5cb3a08d1a0e4aa8fc3 Mon Sep 17 00:00:00 2001 From: Silvio Hermann Date: Wed, 1 Apr 2026 10:17:31 +0200 Subject: [PATCH 1/2] UBO-481 Set mycore version to 2025.12.2-SNAPSHOT * UBO-481 Removed `MCR.EventHandler.MCRObject.016.Class=org.mycore.mods.classification.MCRClassificationMappingEventHandler` * UBO-481 Renamed `DeduplicationKeyManager#getInstance` to `DeduplicationKeyManager#obtainInstance` * UBO-481 Added missing dependency `org.dspace:orcid-model-jakarta:jar:3.3.0:compile` * UBO-481 Set mycore parent to `58` * UBO-481 Migrate class names to boostrap 5 * UBO-481 Migrate class names to boostrap 5 continued * UBO-481 Include default solr authentication properties in mycore.p --- pom.xml | 24 ++++++++++++++++--- ubo-common/pom.xml | 9 +++++++ .../org/mycore/ubo/DozBibEntryServlet.java | 4 +++- .../org/mycore/ubo/NewPublicationWizard.java | 4 +--- .../org/mycore/ubo/dedup/DeDupCommands.java | 2 +- .../ubo/dedup/DeDupCriteriaBuilder.java | 2 +- .../mycore/ubo/dedup/DeDupEventHandler.java | 11 ++++----- .../org/mycore/ubo/dedup/DeDupResource.java | 6 ++--- .../jpa/DeduplicationCriterionResolver.java | 4 ++-- .../dedup/jpa/DeduplicationKeyManager.java | 2 +- .../org/mycore/ubo/importer/ImportJob.java | 4 ++-- .../ubo/importer/ImportListJobAction.java | 2 +- .../ubo/importer/scopus/ScopusImporter.java | 2 +- .../org/mycore/ubo/local/LocalService.java | 4 ++-- .../org/mycore/ubo/mail/MailReportJob.java | 4 ++-- .../ubo/mail/SolrRequireResultsResolver.java | 2 +- .../ubo/matcher/MCRUserMatcherUtils.java | 2 +- .../relations/ParentChildRelationChecker.java | 8 ++++--- .../ubo/relations/RelationEditorServlet.java | 7 +++--- .../resources/UBOPersonSearchResource.java | 3 ++- .../config/ubo-common/mycore.properties | 23 ++++++++++++------ .../src/main/resources/xsl/html-layout.xsl | 4 ++-- .../src/main/resources/xsl/mods-display.xsl | 2 +- .../src/main/resources/xsl/mycoreobject.xsl | 4 ++-- .../resources/xsl/response-sidebar-admin.xsl | 2 +- .../src/main/resources/xsl/response.xsl | 4 ++-- .../src/main/resources/xsl/statistics.xsl | 2 +- ubo-common/src/main/resources/xsl/user.xsl | 2 +- 28 files changed, 94 insertions(+), 55 deletions(-) diff --git a/pom.xml b/pom.xml index 093a8eb36..e5d285887 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.mycore mycore-parent - 57 + 58 org.mycore.ubo @@ -44,17 +44,18 @@ ubo 1.4 1.13.18 - 4.4.1 + 5.3.8 tomcat10x 2.3 5.13.0 3.0.1 1.13.2 3.5.1 + 21 21 21 - 2024.06.3-SNAPSHOT + 2025.12.2-SNAPSHOT v20.11.0 2.13 scope,groupId,artifactId @@ -300,6 +301,11 @@ bcprov-jdk18on 1.83 + + org.dspace + orcid-model-jakarta + 3.3.0 + org.mycore mycore-classifications @@ -365,6 +371,18 @@ xml-apis 1.4.01 + + junit + junit + 4.13.2 + test + + + org.mycore + mycore-junit4 + ${mycore.version} + test + diff --git a/ubo-common/pom.xml b/ubo-common/pom.xml index ba4f85ab2..c00624547 100644 --- a/ubo-common/pom.xml +++ b/ubo-common/pom.xml @@ -312,6 +312,10 @@ org.citationstyles styles + + org.dspace + orcid-model-jakarta + org.jdom jdom2 @@ -511,5 +515,10 @@ test-jar test + + org.mycore + mycore-junit4 + test + diff --git a/ubo-common/src/main/java/org/mycore/ubo/DozBibEntryServlet.java b/ubo-common/src/main/java/org/mycore/ubo/DozBibEntryServlet.java index 18c43d48e..4e74f4b88 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/DozBibEntryServlet.java +++ b/ubo-common/src/main/java/org/mycore/ubo/DozBibEntryServlet.java @@ -22,6 +22,7 @@ import org.mycore.datamodel.metadata.MCRMetadataManager; import org.mycore.datamodel.metadata.MCRObject; import org.mycore.datamodel.metadata.MCRObjectID; +import org.mycore.datamodel.metadata.MCRObjectStructure; import org.mycore.frontend.MCRFrontendUtil; import org.mycore.frontend.servlets.MCRServlet; import org.mycore.frontend.servlets.MCRServletJob; @@ -104,7 +105,8 @@ private void deleteEntry(HttpServletRequest req, HttpServletResponse res) throws MCRObject obj = MCRMetadataManager.retrieveMCRObject(oid); // do not delete entries that have linked children, otherwise the children would be deleted too - List children = obj.getStructure().getChildren(); + List children = MCRMetadataManager.retrieveMCRExpandedObject(obj.getId()).getStructure().getChildren(); + if (!children.isEmpty()) { res.sendError(HttpServletResponse.SC_CONFLICT, "entry has " + children.size() + " child(ren)"); return; diff --git a/ubo-common/src/main/java/org/mycore/ubo/NewPublicationWizard.java b/ubo-common/src/main/java/org/mycore/ubo/NewPublicationWizard.java index 114778ea8..40f0e330f 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/NewPublicationWizard.java +++ b/ubo-common/src/main/java/org/mycore/ubo/NewPublicationWizard.java @@ -18,7 +18,6 @@ import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocumentList; -import org.apache.solr.common.util.NamedList; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.Namespace; @@ -38,7 +37,6 @@ import org.mycore.solr.MCRSolrUtils; import org.mycore.solr.auth.MCRSolrAuthenticationLevel; import org.mycore.solr.auth.MCRSolrAuthenticationManager; -import org.mycore.solr.auth.MCRSolrPropertyAuthenticationManager; import org.mycore.ubo.dedup.DeDupCriteriaBuilder; import org.mycore.ubo.dedup.DeDupCriterion; import org.mycore.ubo.dedup.jpa.DeduplicationKey; @@ -133,7 +131,7 @@ private String buildQuery(Element mods) { Set criteria = new DeDupCriteriaBuilder().buildFromMODS(mods); String[] keys = criteria.stream().map(DeDupCriterion::getKey).toArray(String[]::new); - List duplicates = DeduplicationKeyManager.getInstance().getDuplicates(keys); + List duplicates = DeduplicationKeyManager.obtainInstance().getDuplicates(keys); if (!duplicates.isEmpty()) { String ids = duplicates.stream() diff --git a/ubo-common/src/main/java/org/mycore/ubo/dedup/DeDupCommands.java b/ubo-common/src/main/java/org/mycore/ubo/dedup/DeDupCommands.java index 0705cc4ad..bb2d1a78d 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/dedup/DeDupCommands.java +++ b/ubo-common/src/main/java/org/mycore/ubo/dedup/DeDupCommands.java @@ -122,7 +122,7 @@ private static Set findOtherMatchingGroups(Map throw new BadRequestException("Invalid sort order: " + typeSortStr); }; - List duplicates = DeduplicationKeyManager.getInstance().getDuplicates(idSort, typeSort, type); + List duplicates = DeduplicationKeyManager.obtainInstance().getDuplicates(idSort, typeSort, type); String json = new Gson().toJson(duplicates.toArray(), PossibleDuplicate[].class); return Response.ok(json) .header("Access-Control-Allow-Origin", "*") @@ -63,7 +63,7 @@ public Response deleteNoDuplicate(@PathParam("id") int id) { throw new BadRequestException("Invalid id: " + id); } - DeduplicationKeyManager.getInstance().removeNoDuplicate(id); + DeduplicationKeyManager.obtainInstance().removeNoDuplicate(id); return Response.ok().build(); } @@ -92,7 +92,7 @@ public Response listNoDedup(@QueryParam("sortBy") String sortByStr, @QueryParam( default -> throw new BadRequestException("Invalid sort direction: " + sortOrderStr); }; - List noDuplicates = DeduplicationKeyManager.getInstance().getNoDuplicates(sortOrder, sortBy); + List noDuplicates = DeduplicationKeyManager.obtainInstance().getNoDuplicates(sortOrder, sortBy); List noDuplicatesList = noDuplicates.stream() .map(nd -> new NoDuplicate(nd.getId(), nd.getMcrId1(), nd.getMcrId2(), nd.getCreator(), nd.getCreationDate())) diff --git a/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationCriterionResolver.java b/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationCriterionResolver.java index 872a39807..48127fd36 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationCriterionResolver.java +++ b/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationCriterionResolver.java @@ -80,7 +80,7 @@ public Source resolve(String href, String base) throws TransformerException { if(Objects.equals("base", relation) || Objects.equals("parent", relation)) { Set criteria = deDupCriteriaBuilder.buildFromMODS(mods); criteria.forEach(criterion -> { - possibleDuplicates.addAll(DeduplicationKeyManager.getInstance().getDuplicates(id.toString(), criterion.getType(), criterion.getKey())); + possibleDuplicates.addAll(DeduplicationKeyManager.obtainInstance().getDuplicates(id.toString(), criterion.getType(), criterion.getKey())); }); } else { for (Element host : deDupCriteriaBuilder.getNodes(mods, "mods:relatedItem[@type='host']")) { @@ -90,7 +90,7 @@ public Source resolve(String href, String base) throws TransformerException { continue; } deDupCriteriaBuilder.buildFromMODS(host).forEach(criterion -> { - possibleDuplicates.addAll(DeduplicationKeyManager.getInstance().getDuplicates(id.toString(), criterion.getType(), criterion.getKey())); + possibleDuplicates.addAll(DeduplicationKeyManager.obtainInstance().getDuplicates(id.toString(), criterion.getType(), criterion.getKey())); }); } } diff --git a/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationKeyManager.java b/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationKeyManager.java index f3a1298c3..a12ad58af 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationKeyManager.java +++ b/ubo-common/src/main/java/org/mycore/ubo/dedup/jpa/DeduplicationKeyManager.java @@ -22,7 +22,7 @@ public class DeduplicationKeyManager { public DeduplicationKeyManager() { } - public static DeduplicationKeyManager getInstance() { + public static DeduplicationKeyManager obtainInstance() { return MCRConfiguration2.getSingleInstanceOf(DeduplicationKeyManager.class, "UBO.DeduplicationKeyManager") .get(); } diff --git a/ubo-common/src/main/java/org/mycore/ubo/importer/ImportJob.java b/ubo-common/src/main/java/org/mycore/ubo/importer/ImportJob.java index 8dbf536c5..5dcbaddc4 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/importer/ImportJob.java +++ b/ubo-common/src/main/java/org/mycore/ubo/importer/ImportJob.java @@ -60,8 +60,8 @@ public abstract class ImportJob { private List publications = new ArrayList(); - private ImportIdProvider importIdProvider = ((ImportIdProvider) MCRConfiguration2 - .instantiateClass(MCRConfiguration2.getStringOrThrow("UBO.Importer.ImportIdProvider.ListImport"))); + private ImportIdProvider importIdProvider = (MCRConfiguration2.instantiateClass(ImportIdProvider.class, + MCRConfiguration2.getStringOrThrow("UBO.Importer.ImportIdProvider.ListImport"))); public String getID() { return importIdProvider.getImportId(); diff --git a/ubo-common/src/main/java/org/mycore/ubo/importer/ImportListJobAction.java b/ubo-common/src/main/java/org/mycore/ubo/importer/ImportListJobAction.java index 10077a21b..f2a8970af 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/importer/ImportListJobAction.java +++ b/ubo-common/src/main/java/org/mycore/ubo/importer/ImportListJobAction.java @@ -93,7 +93,7 @@ private void sendMail(ImportJob importJob) { return; } - String eMailAddress = mcrUser.getEMailAddress(); + String eMailAddress = mcrUser.getEMail(); if (eMailAddress == null) { LOGGER.warn("Cannot send e-mail to user {} as user has no e-mail address", userName); diff --git a/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusImporter.java b/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusImporter.java index 5024fc7e8..a53985e00 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusImporter.java +++ b/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusImporter.java @@ -82,7 +82,7 @@ class ScopusImporter { public ScopusImporter() { String className = MCRConfiguration2.getStringOrThrow("UBO.Importer.ImportIdProvider.Scopus"); - importIdProvider = MCRConfiguration2.instantiateClass(className); + importIdProvider = MCRConfiguration2.instantiateClass(ImportIdProvider.class, className); } public MCRObject doImport(String scopusID) throws MCRPersistenceException, MCRAccessException { diff --git a/ubo-common/src/main/java/org/mycore/ubo/local/LocalService.java b/ubo-common/src/main/java/org/mycore/ubo/local/LocalService.java index fb676b1ec..16d6457cd 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/local/LocalService.java +++ b/ubo-common/src/main/java/org/mycore/ubo/local/LocalService.java @@ -81,9 +81,9 @@ public PersonSearchResult searchPerson(String query, MCRRealm realm) { personSearchResult.lastName = attrVal; }); - if (user.getEMailAddress() != null) { + if (user.getEMail() != null) { personSearchResult.information = new ArrayList<>(); - personSearchResult.information.add(user.getEMailAddress()); + personSearchResult.information.add(user.getEMail()); } return personSearchResult; diff --git a/ubo-common/src/main/java/org/mycore/ubo/mail/MailReportJob.java b/ubo-common/src/main/java/org/mycore/ubo/mail/MailReportJob.java index 9d665a343..6eb65d330 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/mail/MailReportJob.java +++ b/ubo-common/src/main/java/org/mycore/ubo/mail/MailReportJob.java @@ -64,7 +64,7 @@ public void runJob() { LOGGER.info("{} emails sent", preparedEmails.size()); return null; - }, MCRSystemUserInformation.getSystemUserInstance()).call(); + }, MCRSystemUserInformation.SYSTEM_USER).call(); } catch (Exception e) { LOGGER.error("Failed to send emails: {}", e.getMessage()); } @@ -108,7 +108,7 @@ private List prepareEmails() throws TransformerException, IOExcep } private String resolveURI(String uri, String filetype, String prefix) throws IOException, TransformerException { - MCRSourceContent content = MCRSourceContent.getInstance(uri); + MCRSourceContent content = MCRSourceContent.createInstance(uri); Path tempFile = Files.createTempFile("att_" + prefix + "_", "." + filetype); try (InputStream inputStream = content.getContentInputStream(); diff --git a/ubo-common/src/main/java/org/mycore/ubo/mail/SolrRequireResultsResolver.java b/ubo-common/src/main/java/org/mycore/ubo/mail/SolrRequireResultsResolver.java index f1db6a107..81987b492 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/mail/SolrRequireResultsResolver.java +++ b/ubo-common/src/main/java/org/mycore/ubo/mail/SolrRequireResultsResolver.java @@ -18,7 +18,7 @@ public class SolrRequireResultsResolver implements URIResolver { public Source resolve(String href, String base) throws TransformerException { final String subHref = href.substring(href.indexOf(":") + 1); - Element solrResults = MCRURIResolver.instance().resolve(subHref); + Element solrResults = MCRURIResolver.obtainInstance().resolve(subHref); Element result = solrResults.getChild("result"); if (result == null) { throw new MCRException("There were no search results for " + subHref); diff --git a/ubo-common/src/main/java/org/mycore/ubo/matcher/MCRUserMatcherUtils.java b/ubo-common/src/main/java/org/mycore/ubo/matcher/MCRUserMatcherUtils.java index 969436f63..85ade978d 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/matcher/MCRUserMatcherUtils.java +++ b/ubo-common/src/main/java/org/mycore/ubo/matcher/MCRUserMatcherUtils.java @@ -233,7 +233,7 @@ public static void setStaticMCRUserAttributes(MCRUser mcrUser, LDAPObject ldapUs private static void setUserEMail(MCRUser user, String attributeID, String attributeValue) { String mapEMail = MCRConfiguration2.getString(CONFIG_PREFIX + "Mapping.E-Mail").get(); - if (attributeID.equals(mapEMail) && (user.getEMailAddress() == null)) { + if (attributeID.equals(mapEMail) && (user.getEMail() == null)) { LOGGER.debug("User " + user.getUserName() + " e-mail = " + attributeValue); user.setEMail(attributeValue); } diff --git a/ubo-common/src/main/java/org/mycore/ubo/relations/ParentChildRelationChecker.java b/ubo-common/src/main/java/org/mycore/ubo/relations/ParentChildRelationChecker.java index b804aecf0..5a12882d5 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/relations/ParentChildRelationChecker.java +++ b/ubo-common/src/main/java/org/mycore/ubo/relations/ParentChildRelationChecker.java @@ -5,6 +5,7 @@ import org.jdom2.Element; import org.mycore.common.MCRConstants; import org.mycore.datamodel.common.MCRXMLMetadataManager; +import org.mycore.datamodel.metadata.MCRExpandedObjectStructure; import org.mycore.datamodel.metadata.MCRMetaLinkID; import org.mycore.datamodel.metadata.MCRMetadataManager; import org.mycore.datamodel.metadata.MCRObject; @@ -75,9 +76,9 @@ public static void checkRelations(String id, String sRepair) { public ParentChildRelationChecker(MCRObjectID oid, boolean shouldRepair) { this.oid = oid; this.obj = MCRMetadataManager.retrieveMCRObject(oid); - this.structure = obj.getStructure(); + this.structure = MCRMetadataManager.retrieveMCRExpandedObject(obj.getId()).getStructure(); this.parentID = obj.getParent(); - this.childLinks = structure.getChildren(); + this.childLinks = MCRMetadataManager.retrieveMCRExpandedObject(obj.getId()).getStructure().getChildren(); this.hosts = getHostRelations(obj); this.shouldRepair = shouldRepair; } @@ -159,7 +160,8 @@ private void checkForNonExistingChild(MCRMetaLinkID childLink) { private void checkForParentMissingChild() { MCRObject parent = MCRMetadataManager.retrieveMCRObject(parentID); - MCRObjectStructure parentStructure = parent.getStructure(); + MCRExpandedObjectStructure parentStructure = MCRMetadataManager.retrieveMCRExpandedObject(parent.getId()) + .getStructure(); if (!parentStructure.getChildren().stream().anyMatch(c -> c.getXLinkHrefID().equals(oid))) { if (shouldRepair) { diff --git a/ubo-common/src/main/java/org/mycore/ubo/relations/RelationEditorServlet.java b/ubo-common/src/main/java/org/mycore/ubo/relations/RelationEditorServlet.java index d348a1cbd..8b2f66b8a 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/relations/RelationEditorServlet.java +++ b/ubo-common/src/main/java/org/mycore/ubo/relations/RelationEditorServlet.java @@ -103,7 +103,7 @@ private void deleteIfNoChildren(HttpServletResponse res, MCRObjectID oid) LOGGER.info("UBO delete entry " + oid); MCRObject obj = MCRMetadataManager.retrieveMCRObject(oid); - if (!obj.getStructure().getChildren().isEmpty()) { + if (!MCRMetadataManager.retrieveMCRExpandedObject(obj.getId()).getStructure().getChildren().isEmpty()) { res.sendError(HttpServletResponse.SC_CONFLICT, "entry has child(ren), wont delete"); } else { new ParentChildRelationChecker(oid, false).check(); @@ -178,7 +178,7 @@ private void markAsFalseDuplicate(HttpServletRequest req, HttpServletResponse re String userID = MCRSessionMgr.getCurrentSession().getUserInformation().getUserID(); - DeduplicationKeyManager.getInstance().addNoDuplicate(id.toString(), duplicateOf.toString(), userID, new Date()); + DeduplicationKeyManager.obtainInstance().addNoDuplicate(id.toString(), duplicateOf.toString(), userID, new Date()); } @@ -211,7 +211,8 @@ private void adoptChildren(HttpServletRequest req, HttpServletResponse res) thro MCRObject objFrom = MCRMetadataManager.retrieveMCRObject(fromID); - List childrenToAdopt = objFrom.getStructure().getChildren(); + List childrenToAdopt = MCRMetadataManager.retrieveMCRExpandedObject(objFrom.getId()) + .getStructure().getChildren(); while (!childrenToAdopt.isEmpty()) { MCRMetaLinkID childLink = childrenToAdopt.get(0); childrenToAdopt.remove(childLink); diff --git a/ubo-common/src/main/java/org/mycore/ubo/resources/UBOPersonSearchResource.java b/ubo-common/src/main/java/org/mycore/ubo/resources/UBOPersonSearchResource.java index bd4a77b3f..594f7966a 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/resources/UBOPersonSearchResource.java +++ b/ubo-common/src/main/java/org/mycore/ubo/resources/UBOPersonSearchResource.java @@ -48,7 +48,8 @@ public Response search(@QueryParam("query") String searchQuery) { } String classPrefix = MCRConfiguration2.getStringOrThrow(STRATEGY_CONFIG_STRING); - IdentityService service = (IdentityService) MCRConfiguration2.instantiateClass(classPrefix + STRATEGY_CLASS_SUFFIX); + IdentityService service = MCRConfiguration2.instantiateClass(IdentityService.class, + classPrefix + STRATEGY_CLASS_SUFFIX); try { diff --git a/ubo-common/src/main/resources/config/ubo-common/mycore.properties b/ubo-common/src/main/resources/config/ubo-common/mycore.properties index b2a79aab9..be49de65f 100644 --- a/ubo-common/src/main/resources/config/ubo-common/mycore.properties +++ b/ubo-common/src/main/resources/config/ubo-common/mycore.properties @@ -24,14 +24,24 @@ MCR.XMLParser.ValidateSchema=false # Default project id UBO.projectid.default=ubo -###################################################################### -# SOLR # -# # -###################################################################### - +############################################################################## +# SOLR 9/10 configuration # +############################################################################## +#MCR.Solr.Core.classification.Name=%MCR.Solr.Core.main.Name%-class MCR.Solr.ServerURL=http://localhost:8080 MCR.Solr.Core.main.Name=ubo -#MCR.Solr.Core.classification.Name=%MCR.Solr.Core.main.Name%-class + +MCR.Solr.Server.Auth.Admin.Class = org.mycore.solr.auth.MCRSolrPropertyBasicAuthenticator +MCR.Solr.Server.Auth.Admin.Password = alleswirdgut +MCR.Solr.Server.Auth.Admin.Username = admin + +MCR.Solr.Server.Auth.Index.Class = org.mycore.solr.auth.MCRSolrPropertyBasicAuthenticator +MCR.Solr.Server.Auth.Index.Password = alleswirdgut +MCR.Solr.Server.Auth.Index.Username = indexer + +MCR.Solr.Server.Auth.Search.Class = org.mycore.solr.auth.MCRSolrPropertyBasicAuthenticator +MCR.Solr.Server.Auth.Search.Password = alleswirdgut +MCR.Solr.Server.Auth.Search.Username = searcher MCR.Solr.DynamicFields=false MCR.Solr.Proxy.WhiteList=/select,/select2,/uboExport,/statistics @@ -51,7 +61,6 @@ MCR.Solr.Core.projects.Name=ubo-projects # # ###################################################################### MCR.EventHandler.MCRObject.013.Class=org.mycore.mods.MCRExtractRelatedItemsEventHandler -MCR.EventHandler.MCRObject.016.Class=org.mycore.mods.classification.MCRClassificationMappingEventHandler MCR.EventHandler.MCRObject.018.Class=org.mycore.ubo.dedup.DeDupEventHandler #MCR.EventHandler.MCRObject.019.Class=org.mycore.ubo.publication.PublicationEventHandler MCR.EventHandler.MCRObject.040.Class= diff --git a/ubo-common/src/main/resources/xsl/html-layout.xsl b/ubo-common/src/main/resources/xsl/html-layout.xsl index b05e14336..99b143fc5 100644 --- a/ubo-common/src/main/resources/xsl/html-layout.xsl +++ b/ubo-common/src/main/resources/xsl/html-layout.xsl @@ -83,7 +83,7 @@ -
+
@@ -92,7 +92,7 @@ -
+
diff --git a/ubo-common/src/main/resources/xsl/mods-display.xsl b/ubo-common/src/main/resources/xsl/mods-display.xsl index 633c7292f..0d91ec424 100644 --- a/ubo-common/src/main/resources/xsl/mods-display.xsl +++ b/ubo-common/src/main/resources/xsl/mods-display.xsl @@ -435,7 +435,7 @@ - + diff --git a/ubo-common/src/main/resources/xsl/mycoreobject.xsl b/ubo-common/src/main/resources/xsl/mycoreobject.xsl index ac694641a..043d7be21 100644 --- a/ubo-common/src/main/resources/xsl/mycoreobject.xsl +++ b/ubo-common/src/main/resources/xsl/mycoreobject.xsl @@ -194,7 +194,7 @@
-
+
@@ -227,7 +227,7 @@
-
+
diff --git a/ubo-common/src/main/resources/xsl/response-sidebar-admin.xsl b/ubo-common/src/main/resources/xsl/response-sidebar-admin.xsl index bb0787bac..c34e62d7b 100644 --- a/ubo-common/src/main/resources/xsl/response-sidebar-admin.xsl +++ b/ubo-common/src/main/resources/xsl/response-sidebar-admin.xsl @@ -100,7 +100,7 @@ - - + diff --git a/ubo-common/src/main/resources/xsl/user.xsl b/ubo-common/src/main/resources/xsl/user.xsl index 33a6bff91..b400c9c77 100644 --- a/ubo-common/src/main/resources/xsl/user.xsl +++ b/ubo-common/src/main/resources/xsl/user.xsl @@ -66,7 +66,7 @@
-
+
From 16be2d9ea27d565c75557968a384d45375a24fe9 Mon Sep 17 00:00:00 2001 From: Silvio Hermann Date: Thu, 2 Apr 2026 10:05:33 +0200 Subject: [PATCH 2/2] UBO-481 Updated `ubo.scss` to use bootstrap 5.3.8 --- .../META-INF/resources/accessibility.xml | 4 ++-- .../META-INF/resources/import-editor.xed | 16 +++++++-------- .../META-INF/resources/scss/_ubo-cards.scss | 4 ++-- .../META-INF/resources/scss/_ubo-common.scss | 10 ++++++---- .../META-INF/resources/scss/_ubo-facets.scss | 2 +- .../META-INF/resources/scss/_ubo-forms.scss | 10 +++++----- .../resources/scss/_ubo-variables.scss | 5 ++++- .../META-INF/resources/scss/ubo.scss | 2 +- .../main/resources/xsl/basket-bibentries.xsl | 2 +- .../resources/xsl/html-layout-backend.xsl | 2 +- .../src/main/resources/xsl/html-layout.xsl | 20 +++++++++---------- .../src/main/resources/xsl/ldappidsearch.xsl | 2 +- .../src/main/resources/xsl/localpidsearch.xsl | 2 +- .../src/main/resources/xsl/lsfpidsearch.xsl | 2 +- .../src/main/resources/xsl/mods-display.xsl | 14 ++++++------- .../resources/xsl/mycoreobject-structure.xsl | 20 +++++++++---------- .../src/main/resources/xsl/mycoreobject.xsl | 8 ++++---- .../resources/xsl/response-duplicates.xsl | 2 +- .../main/resources/xsl/response-facets.xsl | 2 +- .../src/main/resources/xsl/response.xsl | 4 ++-- ubo-common/src/main/resources/xsl/user.xsl | 2 +- 21 files changed, 70 insertions(+), 65 deletions(-) diff --git a/ubo-common/src/main/resources/META-INF/resources/accessibility.xml b/ubo-common/src/main/resources/META-INF/resources/accessibility.xml index 150ebd692..4ff044697 100644 --- a/ubo-common/src/main/resources/META-INF/resources/accessibility.xml +++ b/ubo-common/src/main/resources/META-INF/resources/accessibility.xml @@ -68,7 +68,7 @@ Unsere Postanschrift lautet:

-

+

Universitätsbibliothek Duisburg-Essen
Universitätsstr. 9 - 11
D-45141 Essen @@ -98,7 +98,7 @@ aus und senden ihn per E-Mail an die Ombudsstelle.

-

+

Ombudsstelle für barrierefreie In­for­ma­ti­ons­tech­nik
des Landes Nordrhein-Westfalen bei der
Landesbeauftragten für Men­schen mit Be­hin­de­run­gen
diff --git a/ubo-common/src/main/resources/META-INF/resources/import-editor.xed b/ubo-common/src/main/resources/META-INF/resources/import-editor.xed index 054ecd47f..ee64cd3bd 100644 --- a/ubo-common/src/main/resources/META-INF/resources/import-editor.xed +++ b/ubo-common/src/main/resources/META-INF/resources/import-editor.xed @@ -34,7 +34,7 @@ }); $(document).popover({ - selector: "[data-toggle=popover]", + selector: "[data-bs-toggle=popover]", container: "body", html: true, trigger: "focus" @@ -99,7 +99,7 @@ - @@ -161,7 +161,7 @@ - + @@ -179,7 +179,7 @@ - +

@@ -199,7 +199,7 @@ - +
@@ -901,7 +901,7 @@ - +
@@ -916,7 +916,7 @@ - + @@ -932,7 +932,7 @@ - + diff --git a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-cards.scss b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-cards.scss index b0d57feb4..cf46043b8 100644 --- a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-cards.scss +++ b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-cards.scss @@ -6,11 +6,11 @@ // no (xl) media query necessary (desktop first) .bg-card-body1 { - @extend .bg-light; + background-color: $light; } .bg-card-body2 { - @extend .bg-white; + background-color: $white; } // change border position diff --git a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-common.scss b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-common.scss index 065379a20..b2030b994 100644 --- a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-common.scss +++ b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-common.scss @@ -17,7 +17,8 @@ // .has-error is outdated // but can be replaced with .is-valid, .is-invalid .has-error { - @extend .border-danger; + opacity: 1; + border-color: $danger; } .validation-failures ul li { @@ -50,9 +51,9 @@ // sidebar facets .mycore-slidetoggle { - @extend .text-primary; - text-decoration: underline; + color: $primary; cursor: pointer; + text-decoration: underline; } img.orcid-icon { @@ -71,7 +72,8 @@ } .nameIdentifier { - @extend .badge, .badge-primary; + @extend .badge; + background-color: $primary; a { color: white; text-transform: capitalize; diff --git a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-facets.scss b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-facets.scss index 4fcad6fde..ce33ed6c5 100644 --- a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-facets.scss +++ b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-facets.scss @@ -12,7 +12,7 @@ } .mycore-facet-exclude, .mycore-facet-remove { - @extend .mr-1; + @extend .me-1; color: red; } diff --git a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-forms.scss b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-forms.scss index e0ba02373..d03e0dfcc 100644 --- a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-forms.scss +++ b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-forms.scss @@ -18,8 +18,8 @@ @extend .col-md-3; @extend .col-sm-3; @extend .justify-content-sm-end; - @extend .pl-0; - @extend .mr-3; + @extend .ps-0; + @extend .me-3; } // actually used for input AND select AND textarea @@ -73,7 +73,7 @@ .ubo-tags-group { .ubo-repeater-button-box { - @extend .mb-1, .mr-1; + @extend .mb-1, .me-1; margin-left: 0; } } @@ -85,11 +85,11 @@ } .ubo-pl-deluser { - @extend .text-danger; + color: $danger; } .ubo-pl-adduser { - @extend .text-success; + color: $success; } .ubo-input-invalid, diff --git a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-variables.scss b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-variables.scss index 230d8cf47..a6f0e3852 100644 --- a/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-variables.scss +++ b/ubo-common/src/main/resources/META-INF/resources/scss/_ubo-variables.scss @@ -49,6 +49,9 @@ $body-color: $ubo-gray !default; $border-radius: .2rem !default; +$link-decoration: none !default; +$link-hover-decoration: underline !default; + $grid-breakpoints: ( xs: 0, sm: 576px, @@ -75,4 +78,4 @@ $pmud-color-hover: white !default; // use input color for placeholder $input-color: $body-color !default; -$input-placeholder-color: $input-color !default; \ No newline at end of file +$input-placeholder-color: $input-color !default; diff --git a/ubo-common/src/main/resources/META-INF/resources/scss/ubo.scss b/ubo-common/src/main/resources/META-INF/resources/scss/ubo.scss index 402910506..09b6c2b76 100644 --- a/ubo-common/src/main/resources/META-INF/resources/scss/ubo.scss +++ b/ubo-common/src/main/resources/META-INF/resources/scss/ubo.scss @@ -8,7 +8,7 @@ @import "ubo-variables"; // current stable bootstrap version -@import "../webjars/bootstrap/4.4.1/scss/bootstrap"; +@import "../webjars/bootstrap/5.3.8/scss/bootstrap"; // ubo specific settings @import "ubo-buttons"; diff --git a/ubo-common/src/main/resources/xsl/basket-bibentries.xsl b/ubo-common/src/main/resources/xsl/basket-bibentries.xsl index 41f556e5c..13d12a1ac 100644 --- a/ubo-common/src/main/resources/xsl/basket-bibentries.xsl +++ b/ubo-common/src/main/resources/xsl/basket-bibentries.xsl @@ -181,7 +181,7 @@ -
+
pmud-up.png up diff --git a/ubo-common/src/main/resources/xsl/html-layout-backend.xsl b/ubo-common/src/main/resources/xsl/html-layout-backend.xsl index 5991b3370..0a8569d9e 100644 --- a/ubo-common/src/main/resources/xsl/html-layout-backend.xsl +++ b/ubo-common/src/main/resources/xsl/html-layout-backend.xsl @@ -273,7 +273,7 @@ - diff --git a/ubo-common/src/main/resources/xsl/html-layout.xsl b/ubo-common/src/main/resources/xsl/html-layout.xsl index 99b143fc5..70aac6602 100644 --- a/ubo-common/src/main/resources/xsl/html-layout.xsl +++ b/ubo-common/src/main/resources/xsl/html-layout.xsl @@ -120,7 +120,7 @@
- @@ -138,7 +138,7 @@ Universitätsbibliographie
- +
@@ -151,12 +151,12 @@ @@ -223,7 +223,7 @@ -
+ : diff --git a/ubo-common/src/main/resources/xsl/response.xsl b/ubo-common/src/main/resources/xsl/response.xsl index 6dc56a259..fc530f3a9 100644 --- a/ubo-common/src/main/resources/xsl/response.xsl +++ b/ubo-common/src/main/resources/xsl/response.xsl @@ -207,7 +207,7 @@ - +