diff --git a/README.md b/README.md index 3a120b260..6eea71bb2 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,9 @@ ubo-cli/target/bin/ubo.sh create configuration directory create database ubo; grant all privileges on ubo.* to ubo@localhost identified by 'ubo'; ``` -- setup your database and JDBC configuration in persistence.xml and **REMOVE** the following lines +- setup your database and JDBC configuration in persistence.xml, update mappings with: ``` -META-INF/mycore-iview2-mappings.xml -META-INF/mycore-viewer-mappings.xml -META-INF/mycore-ifs-mappings.xml +ubo-cli/target/bin/ubo.sh reload mappings in jpa configuration file ``` ``` vi ~/.mycore/ubo/resources/META-INF/persistence.xml @@ -34,7 +32,7 @@ vi ~/.mycore/ubo/resources/META-INF/persistence.xml - copy jdbc driver to ~/.mycore/ubo/lib, eg. for h2 ``` cd ~/.mycore/ubo/lib -wget https://repo1.maven.org/maven2/com/h2database/h2/1.4.200/h2-1.4.200.jar +wget https://repo1.maven.org/maven2/com/h2database/h2/2.2.224/h2-2.2.224.jar cd - ``` ## Solr diff --git a/pom.xml b/pom.xml index df8bfae29..70ab74df2 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.mycore mycore-parent - 49 + 55 org.mycore.ubo @@ -53,13 +53,14 @@ 17 1.13.2 3.5.1 - 2022.06.3-SNAPSHOT + 2023.06.3-SNAPSHOT v16.0.0 2.10 scope,groupId,artifactId https://gist.githubusercontent.com/yagee-de/dfd3698c1b49173dbf251f74eb6a9297/raw/406460c088ff3cb6354e4ae6b40535e6f841607d/mycore_sort.xml true ${maven.build.timestamp} + 10.1.11 v1.22.10 @@ -74,6 +75,31 @@ + + + + com.github.ekryd.sortpom + sortpom-maven-plugin + + + verify-sort-pom + + sort + + verify + + false + false + true + true + ${sortpom.sortDeps} + ${sortpom.sortFile} + ${sortpom.sortProps} + + + + + @@ -179,7 +205,7 @@ - jetty9x + jetty12x @@ -281,6 +307,11 @@ bucket4j-core 8.9.0 + + com.h2database + h2 + 2.2.224 + jakarta.servlet jakarta.servlet-api diff --git a/ubo-cli/src/main/setup/classifications/rfc4646.xml b/ubo-cli/src/main/setup/classifications/rfc4646.xml deleted file mode 100644 index df406a593..000000000 --- a/ubo-cli/src/main/setup/classifications/rfc4646.xml +++ /dev/null @@ -1,218 +0,0 @@ - - - diff --git a/ubo-common/pom.xml b/ubo-common/pom.xml index b3c476bfd..c00920138 100644 --- a/ubo-common/pom.xml +++ b/ubo-common/pom.xml @@ -404,13 +404,13 @@ runtime - junit - junit + com.h2database + h2 test - org.hsqldb - hsqldb + junit + junit test diff --git a/ubo-common/src/main/java/org/mycore/ubo/DozBibCommands.java b/ubo-common/src/main/java/org/mycore/ubo/DozBibCommands.java index d78f7a571..2d72da10c 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/DozBibCommands.java +++ b/ubo-common/src/main/java/org/mycore/ubo/DozBibCommands.java @@ -57,6 +57,20 @@ import org.mycore.ubo.importer.scopus.ScopusInitialImporter; import org.xml.sax.SAXException; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.zip.Deflater; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + import static org.mycore.common.MCRConstants.MODS_NAMESPACE; import static org.mycore.common.MCRConstants.XPATH_FACTORY; @@ -132,7 +146,7 @@ public static boolean migrateGenre(String objId) { MCRContent transformed = transformer.transform(new MCRJDOMContent(mcrObject.createXML())); MCRMetadataManager.update(new MCRObject(transformed.asXML())); return true; - } catch (IOException | JDOMException | SAXException | MCRAccessException exception) { + } catch (IOException | JDOMException | MCRAccessException exception) { LOGGER.error("Could not migrate mods:genre for object {}", objId); return false; } @@ -266,7 +280,7 @@ public static void importMODSCollection(String fileName) throws Exception { wrapper.setMODS(mods.clone()); MCRObject obj = wrapper.getMCRObject(); - obj.setId(MCRObjectID.getNextFreeId(PROJECT_ID + "_mods")); + obj.setId(MCRMetadataManager.getMCRObjectIDGenerator().getNextFreeId(PROJECT_ID + "_mods")); MCRMetadataManager.create(obj); } } 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 f08f703f0..05171feaa 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/DozBibEntryServlet.java +++ b/ubo-common/src/main/java/org/mycore/ubo/DozBibEntryServlet.java @@ -9,10 +9,6 @@ package org.mycore.ubo; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; - import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.apache.logging.log4j.LogManager; @@ -32,6 +28,10 @@ import org.mycore.frontend.support.MCRObjectIDLockTable; import org.mycore.mods.MCRMODSWrapper; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; + public class DozBibEntryServlet extends MCRServlet { private final static Logger LOGGER = LogManager.getLogger(DozBibEntryServlet.class); @@ -154,7 +154,7 @@ private void saveEntry(HttpServletRequest req, HttpServletResponse res) throws E } else // New entry submitted { - oid = MCRObjectID.getNextFreeId(oid.getBase()); + oid = MCRMetadataManager.getMCRObjectIDGenerator().getNextFreeId(oid.getBase()); obj.setId(oid); MCRMetadataManager.create(obj); LOGGER.info("UBO saved entry with ID " + oid); diff --git a/ubo-common/src/main/java/org/mycore/ubo/DozBibGNDCommands.java b/ubo-common/src/main/java/org/mycore/ubo/DozBibGNDCommands.java index 1cd8b12a0..03337724a 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/DozBibGNDCommands.java +++ b/ubo-common/src/main/java/org/mycore/ubo/DozBibGNDCommands.java @@ -9,18 +9,7 @@ package org.mycore.ubo; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.similarity.LevenshteinDistance; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jdom2.Attribute; @@ -35,6 +24,17 @@ import org.mycore.datamodel.common.MCRXMLMetadataManager; import org.xml.sax.SAXException; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + public class DozBibGNDCommands { private static final Logger LOGGER = LogManager.getLogger(DozBibGNDCommands.class); @@ -161,8 +161,10 @@ private boolean hasMoreOrLessTheSameTitle(Element publication, Element alephReco int minLength = Math.min(titleFromAleph.length(), titleFromBibEntry.length()); int maxDistance = minLength * MAX_DIFFERENCE_PERCENT / 100; - int distance = StringUtils.getLevenshteinDistance(normalizeTitle(titleFromAleph), - normalizeTitle(titleFromBibEntry)); + int distance = LevenshteinDistance.getDefaultInstance() + .apply(normalizeTitle(titleFromAleph), normalizeTitle(titleFromBibEntry)) + .intValue(); + if (distance > maxDistance) { String id = publication.getAttributeValue("ID"); LOGGER.warn("Skipping entry " + id + ", Levenshtein Distance = " + distance); diff --git a/ubo-common/src/main/java/org/mycore/ubo/importer/DozBibImportServlet.java b/ubo-common/src/main/java/org/mycore/ubo/importer/DozBibImportServlet.java index 61fdf4db3..9c88e03bd 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/importer/DozBibImportServlet.java +++ b/ubo-common/src/main/java/org/mycore/ubo/importer/DozBibImportServlet.java @@ -20,7 +20,7 @@ import org.mycore.frontend.servlets.MCRServlet; import org.mycore.frontend.servlets.MCRServletJob; import org.mycore.services.queuedjob.MCRJob; -import org.mycore.services.queuedjob.MCRJobQueue; +import org.mycore.services.queuedjob.MCRJobQueueManager; import org.mycore.ubo.AccessControl; import org.mycore.ubo.DozBibEntryServlet; import org.mycore.ubo.importer.evaluna.EvalunaImportJob; @@ -56,11 +56,11 @@ private void handleImportJob(HttpServletRequest req, HttpServletResponse res) th MCRJob job = new MCRJob(ImportListJobAction.class); job.setParameter(ImportListJobAction.EDITOR_SUBMISSION_PARAMETER, new XMLOutputter().outputString(doc)); job.setParameter(ImportListJobAction.USER_ID_PARAMETER, MCRUserManager.getCurrentUser().getUserName()); - MCRJobQueue.getInstance(ImportListJobAction.class).offer(job); + MCRJobQueueManager.getInstance().getJobQueue(ImportListJobAction.class).offer(job); String referer = req.getHeader("Referer"); if (referer != null) { - res.sendRedirect(referer+"&list-submitted=true"); + res.sendRedirect(referer + "&list-submitted=true"); } else { res.sendRedirect(MCRFrontendUtil.getBaseURL()); } 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 366da6d55..fb4d88cce 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 @@ -9,15 +9,6 @@ package org.mycore.ubo.importer; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Optional; -import java.util.concurrent.TimeUnit; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.solr.client.solrj.SolrClient; @@ -42,6 +33,15 @@ import org.mycore.solr.MCRSolrUtils; import org.xml.sax.SAXException; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + public abstract class ImportJob { private static final Logger LOGGER = LogManager.getLogger(ImportJob.class); @@ -109,7 +109,8 @@ public void savePublications() throws MCRPersistenceException, MCRAccessExceptio } MCRObject obj = new MCRObject(publication); - MCRObjectID oid = MCRObjectID.getNextFreeId(PROJECT_ID + "_mods"); + MCRObjectID oid = MCRMetadataManager.getMCRObjectIDGenerator().getNextFreeId(PROJECT_ID + "_mods"); + obj.setId(oid); obj.getService().addFlag("importID", id); @@ -138,7 +139,7 @@ protected Optional getFilterTransformer() { private Document applyFilterTransformer(Document publication, MCRContentTransformer transformer) { try { return transformer.transform(new MCRJDOMContent(publication)).asXML(); - } catch (JDOMException | IOException | SAXException e) { + } catch (JDOMException | IOException e) { LOGGER.error(e.getMessage(), e); return publication; } 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 0be16778c..316fbc6d8 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 @@ -38,9 +38,6 @@ public class ImportListJobAction extends MCRJobAction { protected static final Optional DEFAULT_EMAIL_FROM = MCRConfiguration2.getString("UBO.Mail.From"); - public ImportListJobAction() { - } - public ImportListJobAction(MCRJob mcrJob) { super(mcrJob); } @@ -68,9 +65,7 @@ public void execute() throws ExecutionException { } try { - MCRTransactionHelper.beginTransaction(); importJob.savePublications(); - MCRTransactionHelper.commitTransaction(); sendMail(importJob); } catch (Exception e) { LOGGER.error("Error while saving publications", e); diff --git a/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusAffiliationQuery.java b/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusAffiliationQuery.java index ec2d55f0b..a0cbd8ab6 100644 --- a/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusAffiliationQuery.java +++ b/ubo-common/src/main/java/org/mycore/ubo/importer/scopus/ScopusAffiliationQuery.java @@ -1,5 +1,12 @@ package org.mycore.ubo.importer.scopus; +import org.jdom2.Document; +import org.jdom2.Element; +import org.jdom2.JDOMException; +import org.mycore.common.MCRException; +import org.mycore.common.content.MCRURLContent; +import org.xml.sax.SAXException; + import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; @@ -8,13 +15,6 @@ import java.util.function.Consumer; import java.util.stream.Collectors; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.JDOMException; -import org.mycore.common.MCRException; -import org.mycore.common.content.MCRURLContent; -import org.xml.sax.SAXException; - public class ScopusAffiliationQuery extends AbstractScopusQuery{ private static final String AFFILIATION_QUERY_PATTERN = "/affiliation/affiliation_id/%1$s?&apikey=%2$s&insttoken=%3$s&count=%4$s&start=%5$s&view=DOCUMENTS"; @@ -103,7 +103,7 @@ public void resolveAllIDs(Consumer onResolve){ this.setStart(getStart()+getCount()); } while (getStart() - + 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 8ee0bc6ac..be405a94b 100644 --- a/ubo-common/src/main/resources/config/ubo-common/mycore.properties +++ b/ubo-common/src/main/resources/config/ubo-common/mycore.properties @@ -36,8 +36,6 @@ MCR.Solr.Core.main.Name=ubo MCR.Solr.DynamicFields=false MCR.Solr.Proxy.WhiteList=/select,/select2,/uboExport,/statistics -MCR.URIResolver.xslImports.solr-document=solr-basetemplate.xsl,ubo-solr.xsl - 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 @@ -338,16 +336,59 @@ MCR.ContentTransformer.duplicates.Stylesheet=xsl/duplicates.xsl,%UBO.DefaultHTML MCR.ContentTransformer.mcr_error.Stylesheet=xsl/mcr_error.xsl,%UBO.DefaultHTMLLayoutSteps% MCR.ContentTransformer.roles.Stylesheet=xsl/roles.xsl,xsl/webpage.xsl,%UBO.DefaultHTMLLayoutSteps% MCR.ContentTransformer.debugEnrichment.Stylesheet=xsl/debugEnrichment.xsl,%UBO.DefaultHTMLLayoutSteps% -MCR.ContentTransformer.solr2csv.Stylesheet=xsl/solr2csv.xsl +MCR.ContentTransformer.solr2csv.Stylesheet=xslt/solr2csv.xsl MCR.ContentTransformer.solr2csv.FileExtension=csv -MCR.ContentTransformer.solr2csv.TransformerFactoryClass=net.sf.saxon.TransformerFactoryImpl -MCR.ContentTransformer.basket2solradd.Stylesheet=xsl/basket2solradd.xsl -MCR.ContentTransformer.basket2solradd.TransformerFactoryClass=net.sf.saxon.TransformerFactoryImpl +MCR.ContentTransformer.basket2solradd.Stylesheet=xslt/basket2solradd.xsl MCR.ContentTransformer.mods2csv.Class=org.mycore.common.content.transformer.MCRTransformerPipe MCR.ContentTransformer.mods2csv.Steps=basket2solradd,mycoreobject-solrdocument,solr2csv MCR.ContentTransformer.mods2csv2.Class=org.mycore.common.content.transformer.MCRTransformerPipe MCR.ContentTransformer.mods2csv2.Steps=solr2csv +#################################################################################### +# 2023.06.x https://github.com/MyCoRe-Org/mycore/pull/1964#issuecomment-1746748570 # +#################################################################################### +MCR.Layout.Transformer.Factory.XSLFolder = xsl +MCR.ContentTransformer.mycoreobject-solrdocument.Class = org.mycore.common.content.transformer.MCRXSL2JAXBTransformer +MCR.ContentTransformer.mycoreobject-solrdocument.Context = org.mycore.solr.index.document.jaxb +MCR.ContentTransformer.mycoreobject-solrdocument.Stylesheet = xsl/mycoreobject-solrdocument.xsl +MCR.ContentTransformer.mycoreobject-solrdocument.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-browse.Stylesheet = xsl/response-browse.xsl +MCR.ContentTransformer.response-prepared.Class = org.mycore.common.content.transformer.MCRXSLTransformer +MCR.ContentTransformer.response-prepared.Stylesheet = xsl/response-join-results.xsl,xsl/response-addDocId.xsl,xsl/response-addDerivates.xsl +MCR.ContentTransformer.response-prepared.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-solrdocument.Class = org.mycore.common.content.transformer.MCRXSL2JAXBTransformer +MCR.ContentTransformer.response-solrdocument.Context = %MCR.ContentTransformer.mycoreobject-solrdocument.Context% +MCR.ContentTransformer.response-solrdocument.Stylesheet = xsl/response2batch.xsl,%MCR.ContentTransformer.mycoreobject-solrdocument.Stylesheet% +MCR.ContentTransformer.response-solrdocument.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.URIResolver.xslImports.solr-document = solr-basetemplate.xsl,ubo-solr.xsl +MCR.URIResolver.xslIncludes.components = %MCR.URIResolver.xslIncludes.components%,solr-layout-utils.xsl +MCR.URIResolver.xslIncludes.xeditorTemplates = solr-xeditor-templates.xsl + +# Set Transformer Factories +MCR.ContentTransformer.MyCoReWebPage.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.basket-objects.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.debugEnrichment.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.duplicates.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.ldappidsearch.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.list-wizard.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.lsfpidsearch.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.mcr_error.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.mods-wizard-notfound.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.mycoreobject-structure.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-duplicates.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-facets.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-newest.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-sidebar-admin.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-sidebar-mini.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response-statistics.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.response.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.roles.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.site.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.user.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.users.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +MCR.ContentTransformer.webpage.TransformerFactoryClass = org.apache.xalan.processor.TransformerFactoryImpl +############################################################################################################ + UBO.Export.Fields=id,subject,oa,genre,host_genre,person_aut,person_edt,title,id_doi,id_scopus,id_pubmed,id_isi,id_urn,id_duepublico,id_duepublico2,host_title,series,id_issn,id_isbn,shelfmark,year,volume,issue,pages,place,publisher # Set allowed status of publications appearing personal publication list UBO.Export.Status.Restriction=+status:confirmed diff --git a/ubo-common/src/main/resources/xsl/html-layout.xsl b/ubo-common/src/main/resources/xsl/html-layout.xsl index 9fba3f664..d2c250f25 100644 --- a/ubo-common/src/main/resources/xsl/html-layout.xsl +++ b/ubo-common/src/main/resources/xsl/html-layout.xsl @@ -17,6 +17,7 @@ + diff --git a/ubo-common/src/main/resources/xsl/basket2solradd.xsl b/ubo-common/src/main/resources/xslt/basket2solradd.xsl similarity index 100% rename from ubo-common/src/main/resources/xsl/basket2solradd.xsl rename to ubo-common/src/main/resources/xslt/basket2solradd.xsl diff --git a/ubo-common/src/main/resources/xsl/solr2csv.xsl b/ubo-common/src/main/resources/xslt/solr2csv.xsl similarity index 100% rename from ubo-common/src/main/resources/xsl/solr2csv.xsl rename to ubo-common/src/main/resources/xslt/solr2csv.xsl diff --git a/ubo-common/src/test/resources/META-INF/persistence.xml b/ubo-common/src/test/resources/META-INF/persistence.xml index 221791d44..d5acc270e 100644 --- a/ubo-common/src/test/resources/META-INF/persistence.xml +++ b/ubo-common/src/test/resources/META-INF/persistence.xml @@ -1,18 +1,25 @@ - - + + + - META-INF/mycore-base-mappings.xml + META-INF/mycore-pi-mappings.xml META-INF/mycore-user2-mappings.xml + META-INF/mycore-jobqueue-mappings.xml + - - - - + + + + + +