MYCORE LTS2020.06 - WAS IST NEU? - THOMAS SCHEFFLER, SEBASTIAN HOFMANN, KATHLEEN NEUMANN - GBV

Die Seite wird erstellt Helene-Marion Henning
 
WEITER LESEN
MYCORE LTS2020.06 - WAS IST NEU? - THOMAS SCHEFFLER, SEBASTIAN HOFMANN, KATHLEEN NEUMANN - GBV
Thomas Scheffler, Sebastian Hofmann, Kathleen Neumann

MyCoRe LTS2020.06 – Was ist neu?

        Dieses Werk ist lizenziert unter einer
        Creative Commons Namensnennung 4.0 International Lizenz.
MYCORE LTS2020.06 - WAS IST NEU? - THOMAS SCHEFFLER, SEBASTIAN HOFMANN, KATHLEEN NEUMANN - GBV
Übersicht
•   179 Tickets geschlossen vom 04.11.19 – 4.11.20
•   Umstieg auf XSLT v3 begonnen
•   Neuerungen rund um Solr
•   Neuer i18n-Mechanismus
•   Neue Komponente 
•   Neuerungen bei Persistent Identifier, Datacite und CrossRef
•   Neuerungen rund um die Derivat-ACLs
•   Abschluss der Derivat-Überarbeitung
•   Support für Internet-Explorer läuft aus
•   MCRConfiguration2-Umstellung abgeschlossen
•   Weitere Neuerungen im Schnelldurchlauf
•   Migration 2019 -> 2020

04.11.2020                                                                   Folie 2
                    Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
XSLT v3 – Grundlagen

  Name                        Xalan                                 Saxon HE
  Letzte Version              2.7.2 (2014), 2.7.0 (2005)            10.3 (2020-10), 10.0
                                                                    (2020-03)
  Lizenz                      Apache License 2                      Mozilla Public License 2
                                                                    „Incompatible With
                                                                    Secondary Licenses“
  XSLT Version                1.0 (1999)                            3.0 (2017)
  XPath Version               1.0 (1999)                            3.1 (2017)
  Java-Extensions (GPL)       ja                                    nein

04.11.2020                                                                                     Folie 3
                      Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
XSLT v3 – Grundlagen

    • Properties
        – MCR.ContentTransformer.modsCollection-json.Class=org.mycore.common.content.transformer.MCRXSLTransformer
MCR.ContentTransformer.{..}.Class=org.mycore.common.content.transformer.MCRXSLTransformer
           –   MCR.ContentTransformer.modsCollection-json.Stylesheet=xsl/modsCollection-json.xsl
MCR.ContentTransformer.{..}.Stylesheet=xsl/{..}.xsl
        – MCR.ContentTransformer.modsCollection-json.TransformerFactoryClass=net.sf.saxon.TransformerFactoryImpl

MCR.ContentTransformer.{..}.TransformerFactoryClass=net.sf.saxon.TransformerFactoryImpl

    • Keine Xalan-Extension mehr
           – Saxon Function Library (fn, math, map, array)
           – 
           – Neue Sprach-Features XSLT 2, XSLT 3, XPath 3.1
           – Fallback: URIResolver

 04.11.2020                                                                                                        Folie 4
                                   Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
XSLT v3 – Funktionen
• In MyCoRe:
      – https://www.mycore.de/documentation/frontend
        /xsl/xsl_xslt3/
• ACL (mcracl:check-permission,...)
• I18N (mcri18n:translate,...)
      – Bsp: MIR PR #528
• MODS (mcrmods:to-mycoreclass,...)
      – Bsp: Podcast

04.11.2020                                                                Folie 5
                 Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Solr – Reload der Konfiguration
• MCR-2054, MCR-2260
• betrifft: reload solr configuration {0} in core {1}
• SOLR-Schema und SOLR-Config
  (requestHandler, ...) werden zurückgesetzt
      – Manuelle Änderungen gehen verloren
• Konfiguration wird neu eingespielt

04.11.2020                                                               Folie 6
                Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Solr – Update auf Version 8
• Tests und Anpassungen für Solr v8
      ➢Produktivbetrieb mit Solr 8.6.3 möglich

• Wichtigste Neuerung:
      ➢mit Solr 8 kann unsere Spezialbehandlung von
       „Nested Documents“, also Solr-Kinddokumenten
       entfallen

04.11.2020                                                                 Folie 7
                  Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Solr – Content Security Policy (Solr v8)
• MCRSolrProxyServlet leitet alle Response-Header des SOLR-
  Servers direkt an die Anwendung weiter

• Mit Solr 8.4 wurde der Solr-Response-Header um Angaben
  zur Content-Security-Policy angereichert:
    As a result of this change, any custom HTML served by
    Solr’s HTTP server that contains inline Javascript will no
    longer execute in modern browsers. The options for you
    are:
      – Change your JavaScript code to not run inline any longer;
      – Edit jetty.xml to remove CSP (creating weaker security
        protection);
      – Remove/alter the headers with a reverse proxy.
                               Aus https://lucene.apache.org/solr/guide/8_4/solr-upgrade-notes.html
04.11.2020                                                                                     Folie 8
                     Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Solr – Content Security Policy (2)
• Das Verhalten kann zu Problemen in der
  Anwendung führen
• Optionen zur Lösung:
      – Die Anwendung muss entsprechend angepasst
        werden
      – Solr-Response-Header mit folgenden MyCoRe-
        Properties oder direkt in der jetty.xml anpassen:
 MCR.Solr.HTTPResponseHeader.Transfer-Encoding=
 MCR.Solr.HTTPResponseHeader.Content-Security-Policy=default-src 'none'; base-uri 'none‘;
          connect-src 'self'; form-action 'self'; font-src 'self'; frame-ancestors 'none‘;
          img-src 'self'; media-src 'self'; style-src 'self' 'unsafe-inline‘;
          script-src 'self' 'unsafe-inline'; worker-src 'self';

04.11.2020                                                                          Folie 9
                       Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Neuer i18n-Mechanismus
• Implementierung eines separaten XSLT-Transforma-
  tionsschrittes nur für die Übersetzung mit i18n
• alle Texte werden direkt in der MyCoRe-Webpage, dem
  XSL-Stylesheet oder der xEditor-Datei angegeben
• der letzte Transformationsschritt reduziert die Texte
  entsprechend der aktuell anzuzeigenden Sprache
• dadurch müssen komplexe HTML-Konstrukte nicht
  mehr wiederholt werden
• ein Mechanismus für webpage, xed und xslt
• Möglichst einfache und kompakte Syntax

04.11.2020                                                               Folie 10
                Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Nutzung des i18n-Mechanismus
        
              MyCoRe: 
              Beispiel für eine Webseite
              Sample for a webpage
          
• es können auch weiterhin Schlüssel aus den
  message.properties genutzt werden:
        
          mir.abstract
        
• Beispiel:
  https://duepublico2.uni-
  due.de/content/index.xml?XSL.Style=xml
04.11.2020                                                                        Folie 11
                         Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
MCRStaticContentGenerator
• Transformer definieren:
      MCR.ContentTransformer.meinTransformer.Stylesheet=xsl/static/mein.xsl

• Generator definieren:
      MCR.Object.Static.Content.Generator.meinGenerator.Transformer=meinTransformer

• Aufruf per URI-Resolver:
      
04.11.2020                                                                            Folie 12
                        Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Neue Komponente – mycore-csl
• CSL = Citation Style Language, eine
  Programmiersprache für Zitationsstile [1]

• Bereits im letzten Jahr als UBO-Feature
  vorgestellt [2]

• Basiert auf citeproc.js
[1] https://de.wikipedia.org/wiki/Citation_Style_Language
[2] https://cmswiki.rrz.uni-hamburg.de/hummel/MyCoRe/Organisation/AnwenderWorkshop2019

04.11.2020                                                                        Folie 13
                       Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
mycore-csl – Konfiguration
   • Native Implementierung für MODS
         – org.mycore.mods.csl.MCRModsItemDataProvider
MCR.ContentTransformer.mods2csl.Class=org.mycore.csl.MCRCSLTransformer
MCR.ContentTransformer.mods2csl.format=html
MCR.ContentTransformer.mods2csl.style=elsevier-harvard
MCR.ContentTransformer.mods2csl.ItemProviderClass=org.mycore.mods.csl.MCRModsItemDataProvider
MCR.ContentTransformer.mods2csl.MIMEType=text/html; charset\="UTF-8"

   • Verwendung per XSL.Transformer:
         – XSL.Transformer=mods2csl&XSL.style=springer-basic-
           author-date
         – Beispiel:
                https://www.mycore.de/mir/receive/mir_mods_00000001?XSL.Transf
                ormer=mods2csl&XSL.style=springer-basic-author-date

   04.11.2020                                                                         Folie 14
                            Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Automatische PI-Generierung
 • MCR-2202 – automatic pi creation
 • MCRPIPredicate = Predicate
       – boolean test(MCRBase base)
       – Testet ob MyCoRe ein PI für Objekt Erstellen/Registrieren soll
MCR.PI.Service.Datacite.Transformer=datacite
-''-.Datacite.CreationPredicate=org.mycore.pi.condition.MCRPIAndPredicate
-''-.Datacite.CreationPredicate.1=org.mycore.pi.condition.MCRPIStatePredicate
-''-.Datacite.CreationPredicate.1.State=new
-''-.Datacite.CreationPredicate.2=org.mycore.pi.condition.MCRPIXPathPredicate
-''-.Datacite.CreationPredicate.2.XPath=//mods:mods[count(mods:name[@type='corporate' and
contains(@authorityURI, 'mir_institutes')])>0]
-''-.Datacite.RegistrationPredicate=org.mycore.pi.condition.MCRPIPublishedPredicate

 • MCRPIAndPredicate, MCRPIOrPredicate,
   MCRPIStatePredicate, MCRPIXPathPredicate
 04.11.2020                                                                         Folie 15
                        Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Neues PI-Kommando
• MCR-2114 – create pi command
• create pi with {0} for object {1}
      – create pi with Datacite for object
        mir_mods_00000001
• create pi with {0} for object {1} with additional
  ({2})
      – create pi with URN for object mir_derivate_00000001
        with additional (img_00001.jpg)

04.11.2020                                                                  Folie 16
                   Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
XPath als neue PI-Generator-Option
• MCR-2012 – add xPath as option to generic PI
  generator
      MCR.PI.Generator.DOIGenerator=org.mycore.pi.MCRGenericPIGenerator
      MCR.PI.Generator.DOIGenerator.GeneralPattern=10.24395/$1_$ObjectNumber
      MCR.PI.Generator.DOIGenerator.Type=doi
      MCR.PI.Generator.DOIGenerator.XPath.1=substring-before(
           substring-after(
               //mods:mods/mods:name[@type='corporate' and
               contains(@authorityURI, 'mir_institutes')]/@valueURI,
           '#'),
      '_‘)

04.11.2020                                                                       Folie 17
                        Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Updates zu Datacite & Crossref
• MCR-2082 – improve mods crossref xsl
• MCR-2259 – invalid metadata can not be
  deleted at DataCite
• MCR-2241 – move datacite validation from doi
  creation to registration
• MCR-2306 – Support Datacite metadata
  schema v4.3

04.11.2020                                                             Folie 18
              Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
MyCoRe-Viewer mit ePub

                       …nun produktiv im Einsatz beim Publikationsserver der TU Braunschweig
                       Finetuning in: [MCR-2081], [MCR-2091], [MCR-2077]
04.11.2020                                                                              Folie 19
                Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
MyCoRe-Viewer
• Ist im PDF eine Startseite gesetzt, wird diese
  nun auch ausgewertet [MCR-1814]
• Verschiedene kleinere Fehler (gesamt 18
  Tickets) wurden behoben

04.11.2020                                                            Folie 20
             Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Permissions
  read, view, preview, view-derivate???
• Problem:
  Unklare bei Permission-Bezeichnungen

• Ziel:
  Vereinheitlichung der Permissions

• Dabei wichtig:
      – id ist das was in der URL steht
      – view-derivate wird ersetzt durch view

04.11.2020                                                                  Folie 21
                   Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Permissions – Zugriffe auf Derivate
•    read-Permission:
      – Dateien können gelesen und heruntergeladen werden
      – implizit view und preview
      – z.B.
        https://www.mycore.de/mir/servlets/MCRFileNodeServlet/Document_derivate_00000003/M
        yCoRe-Poster-A0_DBT2014_Oeltjen.pdf

•    view-Permission:
      – Dateien können nur angeschaut werden, z.B. im Viewer
      – z.B.
        https://www.mycore.de/mir/api/iiif/image/v2/dbbs_derivate_00000169%2Fmax%2F0000000
        2.jpg/full/full/0/default.png

•    preview-Permission:
      – nur ein Vorschaubild der Inhalte darf angeschaut werden
      – z.B.
        https://www.mycore.de/mir/api/iiif/image/v2/thumbnail/mir_mods_00000001/full/full/0/col
        or.jpg

04.11.2020                                                                                 Folie 22
                          Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Derivate-Datenmodell

    ...

• Deprecated Attribute
  @label und @display
  wurden entfernt

04.11.2020                                                                      Folie 23
                       Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Tschüß InternetExplorer!
• 
      – msie-warning.xsl (mycore-webtools)

04.11.2020                                                                Folie 24
                 Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
MCRConfiguration2
• Java 8 Optional
• Wenn Wert „leer“ → Optional.empty()
      – Unterscheidung zwischen „leer“ und „nicht
        gesetzt“ über MCRConfigurationBase.getString()
• Deprecated: MCRConfiguration

04.11.2020                                                                Folie 25
                 Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Im Schnelldurchlauf
• Kreisabhängigkeiten zwischen MCRObjekten
  nicht mehr erlaubt
• Deprecated-Properties in Komponenten und
  Modulen ermöglicht
• Wiederholbare Nutzerattribute
• REST-API v2 ↗ Einzelvortrag
• IIIF-Neuerungen ↗ Einzelvortrag

04.11.2020                                                             Folie 26
              Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Migration 2019 → 2020
• Wird sich für ein Umstieg auf Solr 8 entschieden,
  empfehlen wir ein Neubau des Indexes
        mycore.sh
          -> reload solr configuration main in core main
          -> rebuild solr metadata index in core main
          -> rebuild solr content index in core main

• Details zur Migration unter:
  https://www.mycore.de/documentation/migrate
  /migrate_mcr2020_06/
04.11.2020                                                                    Folie 27
                     Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Breaking-Changes: IFS
• IFS1
      – MCRFile, MCRDirectory, ContentStores, MCRFSNODES
• IFS2
      – MCRFile, MCRDirectory, mcrdata.xml
• NIOFS
      – Path (MCRPath), Java-API
• Über IFS1-ContentStore Abbildung auf IFS2
• NIOFS-Implementierung auf IFS1 (Schema: ifs)
      – Path → MCRFile(IFS1) → MCRFSNODES → ContentStore(IFS1)
        → MCRFile(IFS2) → Local File
• NIOFS-Implementierung auf IFS2 (Schema: ifs2)
      – Path → MCRFile(IFS2) → Local File

04.11.2020                                                                   Folie 28
                    Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Breaking-Changes: IFS
• Schon VOR der Umstellung auf LTS-2020!
• CLI: check IFS2 compatibility
      –      Nur ein ContentStore im Einsatz
      –      MCRCStoreIFS2
      –      Jede Datei in MCRFSNODES existiert
      –      MD5-Checksumme von MCRFSNODES und
             mcrdata.xml stimmen überein
              • update IFS2 MD5 sums
• Neuer Default-Wert:
  MCR.NIO.DefaultScheme=ifs2
• Bei Fehler: MCR.NIO.DefaultScheme=ifs
04.11.2020                                                                      Folie 29
                       Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Breaking-Changes: SOLR
• Voraussetzung: SOLR 8.x, ABER
• SOLR 7:
      – Bei MIR oder „Nested Documents“:
        → MCR.Solr.NestedDocuments=true
• Dynamic Fields
      – {elementName}{....}={Inhalt}
      – MCR.Solr.DynamicFields=true

04.11.2020                                                                Folie 30
                 Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Breaking-Changes: CLI
• Nicht mehr alle Kommandos per default

    grep "#.*MCR\.CLI\.Classes\." \
    ~/.mycore/{appName}/mycore.active.properties

• IFSCommands, MIR-Migrationskommandos

04.11.2020                                                                   Folie 31
                    Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Ausblick
•   Modularisierung
•   Java 17 (nächstes LTS nach Java 11)
•   OCFL
•   S3

04.11.2020                                                              Folie 32
               Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Vielen Dank für Ihr Interesse!

                Thomas.Scheffler@uni-jena.de
                 Sebastian.Hofmann@gbv.de
                 Kathleen.Neumann@gbv.de

                             http://www.mycore.de/
                                 info@mycore.de

04.11.2020                                                            Folie 33
             Was ist neu bei MyCoRe? - MyCoRe-Anwenderworkshop 2020
Sie können auch lesen