diff --git a/bridge/src/main/java/cz/incad/kramerius/fedora/impl/CDKRepoModule.java b/bridge/src/main/java/cz/incad/kramerius/fedora/impl/CDKRepoModule.java index 6f6fd2ede3..cbf89a561f 100644 --- a/bridge/src/main/java/cz/incad/kramerius/fedora/impl/CDKRepoModule.java +++ b/bridge/src/main/java/cz/incad/kramerius/fedora/impl/CDKRepoModule.java @@ -3,15 +3,14 @@ import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; +import cz.incad.kramerius.RepositoryAccess; public class CDKRepoModule extends AbstractModule { @Override protected void configure() { // namapovani fedora access - this.bind(FedoraAccess.class).annotatedWith(Names.named("rawFedoraAccess")).to(FedoraAccessProxyAkubraImpl.class).in(Scopes.SINGLETON); + this.bind(RepositoryAccess.class).annotatedWith(Names.named("rawFedoraAccess")).to(FedoraAccessProxyAkubraImpl.class).in(Scopes.SINGLETON); bind(KrameriusRepositoryApi.class).to(KrameriusRepositoryApiProxyImpl.class); } } diff --git a/bridge/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessProxyAkubraImpl.java b/bridge/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessProxyAkubraImpl.java index 15f4d1d02f..fefb3b4419 100644 --- a/bridge/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessProxyAkubraImpl.java +++ b/bridge/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessProxyAkubraImpl.java @@ -4,10 +4,10 @@ import com.google.inject.Provider; import com.google.inject.name.Named; import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.StreamHeadersObserver; -import cz.incad.kramerius.fedora.AbstractFedoraAccess; +import cz.incad.kramerius.fedora.AbstractRepositoryAccess; import cz.incad.kramerius.fedora.om.AkubraRepository; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; @@ -25,12 +25,12 @@ import java.util.*; import java.util.logging.Logger; -public class FedoraAccessProxyAkubraImpl extends AbstractFedoraAccess { +public class FedoraAccessProxyAkubraImpl extends AbstractRepositoryAccess { public static final Logger LOGGER = Logger.getLogger(FedoraAccessProxyAkubraImpl.class.getName()); - private FedoraAccess akubra; + private RepositoryAccess akubra; private SolrAccess solrAccess; private Client client; OnDemandIngest onDemandIngest; @@ -38,7 +38,7 @@ public class FedoraAccessProxyAkubraImpl extends AbstractFedoraAccess { @Inject - public FedoraAccessProxyAkubraImpl(@Nullable AggregatedAccessLogs accessLog, @Named("akubraFedoraAccess")FedoraAccess acc, @Named("new-index")SolrAccess solrAccess, Provider provider, OnDemandIngest onDemIng) throws IOException { + public FedoraAccessProxyAkubraImpl(@Nullable AggregatedAccessLogs accessLog, @Named("akubraFedoraAccess") RepositoryAccess acc, @Named("new-index")SolrAccess solrAccess, Provider provider, OnDemandIngest onDemIng) throws IOException { super( accessLog); this.akubra = acc; this.solrAccess = solrAccess; diff --git a/bridge/src/main/java/cz/incad/kramerius/fedora/impl/KrameriusRepositoryApiProxyImpl.java b/bridge/src/main/java/cz/incad/kramerius/fedora/impl/KrameriusRepositoryApiProxyImpl.java index 1f81fa89b0..4b817d70d4 100644 --- a/bridge/src/main/java/cz/incad/kramerius/fedora/impl/KrameriusRepositoryApiProxyImpl.java +++ b/bridge/src/main/java/cz/incad/kramerius/fedora/impl/KrameriusRepositoryApiProxyImpl.java @@ -3,8 +3,6 @@ import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.om.AkubraRepository; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; -import cz.incad.kramerius.repository.RepositoryApi; import cz.incad.kramerius.service.MigrateSolrIndexException; import cz.incad.kramerius.services.cdk.K7SearchIndexChildrenSupport; import cz.incad.kramerius.utils.java.Pair; diff --git a/processes/collections-backup/src/main/java/cz/inovatika/collections/migrations/FromK5Instance.java b/processes/collections-backup/src/main/java/cz/inovatika/collections/migrations/FromK5Instance.java index 5a5bb240bf..ce0e627b48 100644 --- a/processes/collections-backup/src/main/java/cz/inovatika/collections/migrations/FromK5Instance.java +++ b/processes/collections-backup/src/main/java/cz/inovatika/collections/migrations/FromK5Instance.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.StringReader; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.security.SecureRandom; import java.time.LocalDateTime; @@ -56,10 +55,9 @@ import com.google.inject.Key; import com.google.inject.name.Names; import com.sun.jersey.api.client.Client; -import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; @@ -74,8 +72,6 @@ import cz.incad.kramerius.utils.conf.KConfiguration; import cz.inovatika.collections.Restore; -import static cz.incad.kramerius.utils.IterationUtils.*; - public class FromK5Instance { @@ -448,7 +444,7 @@ public boolean acceptElement(Element element) { public static void importTmpDir(String exportRoot, boolean startIndexer, String authToken) throws JAXBException, IOException, InterruptedException, SAXException, SolrServerException { Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(), new ImportModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SortingService sortingServiceLocal = injector.getInstance(SortingService.class); ProcessingIndexFeeder feeder = injector.getInstance(ProcessingIndexFeeder.class); diff --git a/processes/dnntflag/src/main/java/cz/incad/kramerius/DeleteTreeProcess.java b/processes/dnntflag/src/main/java/cz/incad/kramerius/DeleteTreeProcess.java index 49afc01476..57f0c9d3cc 100644 --- a/processes/dnntflag/src/main/java/cz/incad/kramerius/DeleteTreeProcess.java +++ b/processes/dnntflag/src/main/java/cz/incad/kramerius/DeleteTreeProcess.java @@ -13,8 +13,6 @@ import cz.incad.kramerius.processes.WarningException; import cz.incad.kramerius.processes.starter.ProcessStarter; import cz.incad.kramerius.processes.utils.ProcessUtils; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; import cz.incad.kramerius.resourceindex.ResourceIndexException; import cz.incad.kramerius.utils.Dom4jUtils; import cz.incad.kramerius.utils.RelsExtHelper; @@ -97,7 +95,7 @@ public static void main(String[] args) throws IOException, SolrServerException, Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(), new ResourceIndexModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); KrameriusRepositoryApi repository = injector.getInstance(Key.get(KrameriusRepositoryApiImpl.class)); //FIXME: hardcoded implementation KrameriusRepositoryApi krameriusApiRepository = injector.getInstance(Key.get(KrameriusRepositoryApiImpl.class)); @@ -120,7 +118,7 @@ public static void main(String[] args) throws IOException, SolrServerException, } } - public static boolean deleteTree(String pid, boolean deletionRoot, KrameriusRepositoryApi repository, ProcessingIndex processingIndex, SolrIndexAccess indexerAccess, SolrAccess searchIndex, FedoraAccess fa, boolean ignoreIncosistencies) throws ResourceIndexException, RepositoryException, IOException, SolrServerException { + public static boolean deleteTree(String pid, boolean deletionRoot, KrameriusRepositoryApi repository, ProcessingIndex processingIndex, SolrIndexAccess indexerAccess, SolrAccess searchIndex, RepositoryAccess fa, boolean ignoreIncosistencies) throws ResourceIndexException, RepositoryException, IOException, SolrServerException { LOGGER.info(String.format("deleting own tree of %s", pid)); boolean someProblem = false; // @@ -222,7 +220,7 @@ private static void removeItemsFromCollectionBeforeDeletingCollection(String col } } - private static void deleteObject(String pid, boolean isCollection, KrameriusRepositoryApi repository, SolrIndexAccess indexerAccess, FedoraAccess fa) throws RepositoryException, IOException, SolrServerException { + private static void deleteObject(String pid, boolean isCollection, KrameriusRepositoryApi repository, SolrIndexAccess indexerAccess, RepositoryAccess fa) throws RepositoryException, IOException, SolrServerException { LOGGER.info(String.format("deleting object %s", pid)); LOGGER.info(String.format("deleting %s from repository", pid)); if (!DRY_RUN) { diff --git a/processes/dnntflag/src/main/java/cz/incad/kramerius/LicenseHelper.java b/processes/dnntflag/src/main/java/cz/incad/kramerius/LicenseHelper.java index 6c1b48c0a7..625401eb88 100644 --- a/processes/dnntflag/src/main/java/cz/incad/kramerius/LicenseHelper.java +++ b/processes/dnntflag/src/main/java/cz/incad/kramerius/LicenseHelper.java @@ -2,7 +2,6 @@ import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; import cz.incad.kramerius.resourceindex.ResourceIndexException; import cz.incad.kramerius.utils.Dom4jUtils; import cz.kramerius.adapters.ProcessingIndex; diff --git a/processes/dnntflag/src/main/java/cz/incad/kramerius/SetLicenseProcess.java b/processes/dnntflag/src/main/java/cz/incad/kramerius/SetLicenseProcess.java index 86846f6ce0..8dc0b98531 100644 --- a/processes/dnntflag/src/main/java/cz/incad/kramerius/SetLicenseProcess.java +++ b/processes/dnntflag/src/main/java/cz/incad/kramerius/SetLicenseProcess.java @@ -11,9 +11,6 @@ import cz.incad.kramerius.processes.new_api.ProcessScheduler; import cz.incad.kramerius.processes.starter.ProcessStarter; import cz.incad.kramerius.processes.utils.ProcessUtils; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; -import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.resourceindex.ResourceIndexException; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; @@ -32,7 +29,6 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.nio.charset.Charset; import java.util.*; diff --git a/processes/import-mets/src/main/java/org/kramerius/importmets/MetsConvertor.java b/processes/import-mets/src/main/java/org/kramerius/importmets/MetsConvertor.java index 48ecc51467..a79bb5a00b 100755 --- a/processes/import-mets/src/main/java/org/kramerius/importmets/MetsConvertor.java +++ b/processes/import-mets/src/main/java/org/kramerius/importmets/MetsConvertor.java @@ -5,7 +5,7 @@ import com.google.inject.Key; import com.google.inject.name.Names; import com.qbizm.kramerius.imp.jaxb.DigitalObject; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.processes.starter.ProcessStarter; @@ -45,7 +45,6 @@ import java.io.*; import java.util.Arrays; -import java.util.logging.Level; /** @@ -163,7 +162,7 @@ private void run(String importRoot, String exportRoot, boolean policyPublic, boo throw new RuntimeException("No valid PSP found."); } Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(), new ImportModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SortingService sortingServiceLocal = injector.getInstance(SortingService.class); ProcessingIndexFeeder feeder = injector.getInstance(ProcessingIndexFeeder.class); FOXMLAppendLicenseService foxmlService = injector.getInstance(FOXMLAppendLicenseService.class); diff --git a/processes/import/src/main/java/org/kramerius/Convert.java b/processes/import/src/main/java/org/kramerius/Convert.java index c05081d168..c3bc9be731 100644 --- a/processes/import/src/main/java/org/kramerius/Convert.java +++ b/processes/import/src/main/java/org/kramerius/Convert.java @@ -9,7 +9,7 @@ import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; @@ -43,7 +43,7 @@ public static void main(String[] args) throws InterruptedException, JAXBExceptio String uuid = Main.convert(convertDirectory, convertTargetDirectory, false, visible, null); Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(),new ImportModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SortingService sortingServiceLocal = injector.getInstance(SortingService.class); ProcessingIndexFeeder feeder = injector.getInstance(ProcessingIndexFeeder.class); Import.run(fa, feeder, sortingServiceLocal, KConfiguration.getInstance().getProperty("ingest.url"), KConfiguration.getInstance().getProperty("ingest.user"), KConfiguration.getInstance().getProperty("ingest.password"), convertTargetDirectory); diff --git a/processes/import/src/main/java/org/kramerius/Download.java b/processes/import/src/main/java/org/kramerius/Download.java index 8ea93bdbd3..99a2dc12fc 100644 --- a/processes/import/src/main/java/org/kramerius/Download.java +++ b/processes/import/src/main/java/org/kramerius/Download.java @@ -7,7 +7,7 @@ import com.qbizm.kramerius.imptool.poc.Main; import com.qbizm.kramerius.imptool.poc.valueobj.ServiceException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; import cz.incad.kramerius.resourceindex.ResourceIndexModule; @@ -116,7 +116,7 @@ private static void processReplication(Download download, Replication rep, Strin String uuid = Main.convert(migrationDirectory, targetDirectory, true, visible, rep.getID()); Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(),new ImportModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SortingService sortingServiceLocal = injector.getInstance(SortingService.class); ProcessingIndexFeeder feeder = injector.getInstance(ProcessingIndexFeeder.class); Import.run(fa,feeder, sortingServiceLocal, KConfiguration.getInstance().getProperty("ingest.url"), KConfiguration.getInstance().getProperty("ingest.user"), KConfiguration.getInstance().getProperty("ingest.password"), targetDirectory); diff --git a/processes/import/src/main/java/org/kramerius/Import.java b/processes/import/src/main/java/org/kramerius/Import.java index c029c87ef5..f6b30a4b01 100644 --- a/processes/import/src/main/java/org/kramerius/Import.java +++ b/processes/import/src/main/java/org/kramerius/Import.java @@ -9,7 +9,7 @@ import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.AkubraRepository; @@ -137,7 +137,7 @@ public static void main(String[] args) throws IOException, RepositoryException, Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(), new ImportModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SortingService sortingServiceLocal = injector.getInstance(SortingService.class); FOXMLAppendLicenseService foxmlService = injector.getInstance(FOXMLAppendLicenseService.class); @@ -198,11 +198,11 @@ public static void main(String[] args) throws IOException, RepositoryException, } } - public static void run(FedoraAccess fa, ProcessingIndexFeeder feeder, SortingService sortingServiceParam, final String url, final String user, final String pwd, String importRoot) throws IOException, SolrServerException { + public static void run(RepositoryAccess fa, ProcessingIndexFeeder feeder, SortingService sortingServiceParam, final String url, final String user, final String pwd, String importRoot) throws IOException, SolrServerException { run(fa, feeder, sortingServiceParam, url, user, pwd, importRoot, true, null, null); } - public static void run(FedoraAccess fa, ProcessingIndexFeeder feeder, SortingService sortingServiceParam, final String url, final String user, final String pwd, String importRoot, boolean startIndexer, String authToken, String addcollections) throws IOException, SolrServerException { + public static void run(RepositoryAccess fa, ProcessingIndexFeeder feeder, SortingService sortingServiceParam, final String url, final String user, final String pwd, String importRoot, boolean startIndexer, String authToken, String addcollections) throws IOException, SolrServerException { log.info("INGEST - url:" + url + " user:" + user + " importRoot:" + importRoot); sortingService = sortingServiceParam; // system property @@ -391,11 +391,11 @@ protected PasswordAuthentication getPasswordAuthentication() { of = new ObjectFactory(); } - private static void visitAllDirsAndFiles(FedoraAccess fa, File importFile, Set classicRoots, - Set convolutes, - Set collections, - - Set sortRelations, boolean updateExisting) { + private static void visitAllDirsAndFiles(RepositoryAccess fa, File importFile, Set classicRoots, + Set convolutes, + Set collections, + + Set sortRelations, boolean updateExisting) { if (importFile == null) { return; } @@ -778,7 +778,7 @@ private static void checkModelIsClassicRoot(DigitalObject dobj, Set classicRoots, Set collectionsToReindex, String authToken) { + private static void addCollection(RepositoryAccess fa, String collectionPid, Set classicRoots, Set collectionsToReindex, String authToken) { Client c = Client.create(); List rootPids = new ArrayList<>(); diff --git a/processes/import/src/main/java/org/kramerius/ImportDuplicator.java b/processes/import/src/main/java/org/kramerius/ImportDuplicator.java index 976985dc8a..9e57fb995b 100644 --- a/processes/import/src/main/java/org/kramerius/ImportDuplicator.java +++ b/processes/import/src/main/java/org/kramerius/ImportDuplicator.java @@ -45,13 +45,13 @@ import com.qbizm.kramerius.imp.jaxb.DigitalObject; import com.qbizm.kramerius.imp.jaxb.XmlContentType; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.utils.conf.KConfiguration; //FIXME: looks like duplicate of org.kramerius.Import, is it still used or can we remove it? Also not correctly indexing Convolutes public class ImportDuplicator { - static FedoraAccess fedoraAccess; + static RepositoryAccess fedoraAccess; static ProcessingIndexFeeder feeder; static int counter = 0; @@ -110,7 +110,7 @@ protected PasswordAuthentication getPasswordAuthentication() { Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(),new ImportModule()); - fedoraAccess = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + fedoraAccess = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); feeder = injector.getInstance(ProcessingIndexFeeder.class); diff --git a/processes/import/src/main/java/org/kramerius/ImportModule.java b/processes/import/src/main/java/org/kramerius/ImportModule.java index d5ea877fa6..6707b1f7b5 100644 --- a/processes/import/src/main/java/org/kramerius/ImportModule.java +++ b/processes/import/src/main/java/org/kramerius/ImportModule.java @@ -2,17 +2,12 @@ import com.google.inject.AbstractModule; import com.google.inject.Scopes; -import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.imaging.lp.guice.GenerateDeepZoomCacheModule; import cz.incad.kramerius.relation.RelationService; import cz.incad.kramerius.relation.impl.RelationServiceImpl; import cz.incad.kramerius.service.FOXMLAppendLicenseService; import cz.incad.kramerius.service.SortingService; import cz.incad.kramerius.service.impl.FOXMLAppendLicenseImpl; import cz.incad.kramerius.service.impl.SortingServiceImpl; -import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; public class ImportModule extends AbstractModule { diff --git a/processes/import/src/main/java/org/kramerius/consistency/Consistency.java b/processes/import/src/main/java/org/kramerius/consistency/Consistency.java index 98105f7feb..1dd09bfba1 100644 --- a/processes/import/src/main/java/org/kramerius/consistency/Consistency.java +++ b/processes/import/src/main/java/org/kramerius/consistency/Consistency.java @@ -24,27 +24,21 @@ import javax.xml.transform.TransformerConfigurationException; -import com.google.inject.*; import com.google.inject.name.Named; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.fedora.utils.Fedora4Utils; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.*; import org.apache.commons.lang3.tuple.Triple; -import com.google.inject.name.Names; -import cz.incad.kramerius.imaging.lp.guice.GenerateDeepZoomCacheModule; -import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; -import com.google.inject.Scopes; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.TreeNodeProcessStackAware; @@ -63,7 +57,7 @@ public class Consistency { @Inject @Named("rawFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; /** @@ -106,11 +100,11 @@ public List checkConsitency(String rootPid, boolean repai */ static class TreeProcess implements TreeNodeProcessor, TreeNodeProcessStackAware{ - private final FedoraAccess fa; + private final RepositoryAccess fa; private List relations = new ArrayList(); private Stack pidsStack = null; - public TreeProcess(FedoraAccess fa) { + public TreeProcess(RepositoryAccess fa) { super(); this.fa = fa; } diff --git a/processes/import/src/main/java/org/kramerius/replications/SecondPhase.java b/processes/import/src/main/java/org/kramerius/replications/SecondPhase.java index 4176bcf1e1..0139bcb9ce 100644 --- a/processes/import/src/main/java/org/kramerius/replications/SecondPhase.java +++ b/processes/import/src/main/java/org/kramerius/replications/SecondPhase.java @@ -24,7 +24,7 @@ import com.google.inject.name.Names; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; @@ -66,7 +66,6 @@ import java.io.*; import java.util.ArrayList; import java.util.List; -import java.util.Stack; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -226,7 +225,7 @@ public void ingest(File foxmlfile) throws PhaseException{ //Import.initialize(KConfiguration.getInstance().getProperty("ingest.user"), KConfiguration.getInstance().getProperty("ingest.password")); try { - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); Import.ingest(fa.getInternalAPI(), foxmlfile, null, null, false); //TODO třetí parametr má být List, inicializovaný na začátku této fáze a předaný třetí fázi, kde se budou třídit vazby } catch (RuntimeException e) { if (e.getCause() != null) throw new PhaseException(this, e.getCause()); @@ -334,7 +333,7 @@ public void restart(String previousProcessUUID, File previousProcessRoot, boolea } public boolean findPid(String pid) throws LexerException, IOException { - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); String objectId = pidParseAndGetObjectId(pid); return (fa.isObjectAvailable(objectId) && fa.isStreamAvailable(objectId, FedoraUtils.RELS_EXT_STREAM)); } diff --git a/processes/import/src/test/java/org/kramerius/consistency/ConsistencyTest.java b/processes/import/src/test/java/org/kramerius/consistency/ConsistencyTest.java index 8547ce7180..f091913b5b 100644 --- a/processes/import/src/test/java/org/kramerius/consistency/ConsistencyTest.java +++ b/processes/import/src/test/java/org/kramerius/consistency/ConsistencyTest.java @@ -33,7 +33,7 @@ import com.google.inject.Provides; import com.google.inject.name.Named; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; @@ -53,7 +53,7 @@ import com.google.inject.Guice; import com.google.inject.Injector; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.SolrAccess; @@ -74,7 +74,7 @@ public void shouldPassProcess() throws IOException, ProcessSubtreeException, Lex cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isStreamAvailable") @@ -116,7 +116,7 @@ public void shouldFailProcess() throws IOException, ProcessSubtreeException, Lex cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isStreamAvailable") @@ -152,11 +152,11 @@ public void shouldFailProcess() throws IOException, ProcessSubtreeException, Lex static class _Module extends AbstractModule { - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private SolrAccess solrAccess; - public _Module(FedoraAccess fedoraAccess, SolrAccess solrAccess) { + public _Module(RepositoryAccess fedoraAccess, SolrAccess solrAccess) { super(); this.fedoraAccess = fedoraAccess; this.solrAccess = solrAccess; @@ -165,7 +165,7 @@ public _Module(FedoraAccess fedoraAccess, SolrAccess solrAccess) { @Provides @Named("rawFedoraAccess") - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return this.fedoraAccess; } diff --git a/processes/import/src/test/java/org/kramerius/fedora/impl/ImportDataPrepare.java b/processes/import/src/test/java/org/kramerius/fedora/impl/ImportDataPrepare.java index 4e0fb33a29..f811a9bef7 100644 --- a/processes/import/src/test/java/org/kramerius/fedora/impl/ImportDataPrepare.java +++ b/processes/import/src/test/java/org/kramerius/fedora/impl/ImportDataPrepare.java @@ -32,7 +32,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.utils.FedoraUtils; import org.easymock.EasyMock; import org.w3c.dom.Attr; @@ -42,7 +42,7 @@ import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.XMLUtils; @@ -147,7 +147,7 @@ public class ImportDataPrepare { }; - public static void narodniListyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void narodniListyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; expect(fa.isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)).andReturn(true).anyTimes(); @@ -155,7 +155,7 @@ public static void narodniListyRelsExt(FedoraAccess fa) throws IOException, Pars } } - public static void notConsistentNarodniListyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void notConsistentNarodniListyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { List alist = Arrays.asList(NARODNI_LISTY_NOT_EXISTS); for (int i = 0; i < NARODNI_LISTY.length; i++) { @@ -174,34 +174,34 @@ public static void notConsistentNarodniListyRelsExt(FedoraAccess fa) throws IOEx } - public static void drobnustkyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void drobnustkyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { String pid = DROBNUSTKY_PIDS[i]; relsExt(fa, pid); } } - public static void relsExt(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void relsExt(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String objectId = pidParser.getObjectId(); String path = "/org/kramerius/fedora/res/"+objectId+".xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getRelsExt(pid)).andReturn(XMLUtils.parseDocument(resStream, true)).anyTimes(); } - public static void notConsistentRelsExt(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void notConsistentRelsExt(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String objectId = pidParser.getObjectId(); String path = "/org/kramerius/fedora/res/"+objectId+".nonconsistent.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getRelsExt(pid)).andReturn(XMLUtils.parseDocument(resStream, true)).anyTimes(); } - public static void narodniListyIMGFULL(FedoraAccess fa) throws IOException, LexerException { + public static void narodniListyIMGFULL(RepositoryAccess fa) throws IOException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; String model = MODELS_MAPPING.get(pid); @@ -218,7 +218,7 @@ public static void narodniListyIMGFULL(FedoraAccess fa) throws IOException, Lexe } - public static void drobnustkyWithIMGFULL(FedoraAccess fa) throws IOException { + public static void drobnustkyWithIMGFULL(RepositoryAccess fa) throws IOException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { if (DROBNUSTKY_PIDS[i].equals("uuid:0eaa6730-9068-11dd-97de-000d606f5dc6")) { expect(fa.isImageFULLAvailable(DROBNUSTKY_PIDS[i])).andReturn(false).anyTimes(); @@ -228,64 +228,64 @@ public static void drobnustkyWithIMGFULL(FedoraAccess fa) throws IOException { } } - public static void narodniListyDCs(FedoraAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void narodniListyDCs(RepositoryAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { for (int i = 0; i < NARODNI_LISTY.length; i++) { dc(fa,NARODNI_LISTY[i]); } } - public static void drobnustkyDCS(FedoraAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { + public static void drobnustkyDCS(RepositoryAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { dc(fa,DROBNUSTKY_PIDS[i]); } } - public static void narodniListyMods(FedoraAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void narodniListyMods(RepositoryAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { for (int i = 0; i < NARODNI_LISTY.length; i++) { mods(fa,NARODNI_LISTY[i]); } } - public static void drobnustkyMODS(FedoraAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { + public static void drobnustkyMODS(RepositoryAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { mods(fa,DROBNUSTKY_PIDS[i]); } } - public static void drobnustkyWithOutIMGFULL(FedoraAccess fa) throws IOException { + public static void drobnustkyWithOutIMGFULL(RepositoryAccess fa) throws IOException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { expect(fa.isImageFULLAvailable(DROBNUSTKY_PIDS[i])).andReturn(false); } } - public static void dc(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void dc(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/org/kramerius/fedora/res/"+pidParser.getObjectId()+".dc.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); Document document = XMLUtils.parseDocument(resStream, true); EasyMock.expect(fa.getDC(pid)).andReturn(document).anyTimes(); } - public static void mods(FedoraAccess fa, String pid) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void mods(RepositoryAccess fa, String pid) throws LexerException, ParserConfigurationException, SAXException, IOException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/org/kramerius/fedora/res/"+pidParser.getObjectId()+".mods.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); Document document = XMLUtils.parseDocument(resStream, true); EasyMock.expect(fa.getBiblioMods(pid)).andReturn(document).anyTimes(); } - public static void dataStreams(FedoraAccess fa, String pid) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void dataStreams(RepositoryAccess fa, String pid) throws IOException, ParserConfigurationException, SAXException, LexerException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/org/kramerius/fedora/res/"+pidParser.getObjectId()+".datastreams.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getFedoraDataStreamsList(pid)).andReturn(resStream); } diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/ExtendedFields.java b/processes/indexer/src/cz/incad/kramerius/indexer/ExtendedFields.java index fead035d81..796cf3356c 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/ExtendedFields.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/ExtendedFields.java @@ -1,6 +1,6 @@ package cz.incad.kramerius.indexer; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.indexer.date.BiblioModsDateParser; import cz.incad.kramerius.indexer.date.DateQuintet; @@ -63,7 +63,7 @@ public class ExtendedFields { PDDocument pdDoc = null; String pdfPid = ""; - FedoraAccess fa; + RepositoryAccess fa; FedoraOperations fo; // dnnt flag private String dnnt; diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/FedoraOperations.java b/processes/indexer/src/cz/incad/kramerius/indexer/FedoraOperations.java index d79d00b630..f9cd663c10 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/FedoraOperations.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/FedoraOperations.java @@ -3,13 +3,10 @@ import com.google.inject.Key; import com.google.inject.name.Named; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; -import cz.incad.kramerius.indexer.fa.FedoraAccessBridge; import cz.incad.kramerius.indexer.guice.GuiceModelInjector; import cz.incad.kramerius.resourceindex.IResourceIndex; -import cz.incad.kramerius.resourceindex.ResourceIndexModule; -import cz.incad.kramerius.resourceindex.ResourceIndexService; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.UTFSort; import cz.incad.kramerius.utils.XMLUtils; @@ -21,7 +18,6 @@ import com.google.inject.Inject; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -44,12 +40,12 @@ public class FedoraOperations { protected String dsText; protected String[] params = null; String foxmlFormat; - FedoraAccess fa; + RepositoryAccess fa; IResourceIndex rindex; UTFSort utfSort; @Inject - public FedoraOperations(@Named("rawFedoraAccess") FedoraAccess fa, IResourceIndex resourceIndex) throws Exception { + public FedoraOperations(@Named("rawFedoraAccess") RepositoryAccess fa, IResourceIndex resourceIndex) throws Exception { this.fa = fa; this.rindex = resourceIndex; foxmlFormat = KConfiguration.getInstance().getConfiguration().getString("FOXMLFormat"); @@ -60,7 +56,7 @@ public FedoraOperations(@Named("rawFedoraAccess") FedoraAccess fa, IResourceInde public FedoraOperations() throws IOException { this.rindex = GuiceModelInjector.injector().getInstance(IResourceIndex.class); - this.fa = GuiceModelInjector.injector().getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + this.fa = GuiceModelInjector.injector().getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); foxmlFormat = KConfiguration.getInstance().getConfiguration().getString("FOXMLFormat"); utfSort = new UTFSort(); } diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/Indexer.java b/processes/indexer/src/cz/incad/kramerius/indexer/Indexer.java index 5606663ca3..15592b15f7 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/Indexer.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/Indexer.java @@ -16,21 +16,12 @@ import java.io.OutputStreamWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import java.util.TimeZone; import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.ZipOutputStream; -import javax.swing.JComboBox.KeySelectionManager; - -import com.google.inject.Key; -import com.google.inject.name.Names; - -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; -import cz.incad.kramerius.indexer.fa.FedoraAccessBridge; import cz.incad.kramerius.indexer.guice.GuiceModelInjector; // TODO: Rewrite it !! diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/SolrOperations.java b/processes/indexer/src/cz/incad/kramerius/indexer/SolrOperations.java index 24b8543f64..4b59d1c628 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/SolrOperations.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/SolrOperations.java @@ -2,7 +2,6 @@ import com.google.inject.name.Named; import cz.incad.kramerius.*; -import cz.incad.kramerius.impl.SolrAccessImpl; import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.resourceindex.ResourceIndexException; import cz.incad.kramerius.resourceindex.ResourceIndexService; @@ -72,10 +71,10 @@ public class SolrOperations { //private FedoraAccessBridge fa; private FedoraOperations fedoraOperations; - private FedoraAccess fa; + private RepositoryAccess fa; @Inject - public SolrOperations(@Named("rawFedoraAccess") FedoraAccess fa, FedoraOperations _fedoraOperations, IResourceIndex resourceIndex) throws IOException { + public SolrOperations(@Named("rawFedoraAccess") RepositoryAccess fa, FedoraOperations _fedoraOperations, IResourceIndex resourceIndex) throws IOException { fedoraOperations = _fedoraOperations; this.fa = fa; this.rindex = resourceIndex; diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/dnnt/DnntSingleton.java b/processes/indexer/src/cz/incad/kramerius/indexer/dnnt/DnntSingleton.java index 6ab69cfd31..31e40b661e 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/dnnt/DnntSingleton.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/dnnt/DnntSingleton.java @@ -1,6 +1,6 @@ package cz.incad.kramerius.indexer.dnnt; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import org.w3c.dom.Document; import org.w3c.dom.Node; @@ -25,7 +25,7 @@ public static DnntSingleton getInstance() { return _INSTANCE; } - public synchronized Document getRelsExt(String pid, FedoraAccess fa) throws IOException { + public synchronized Document getRelsExt(String pid, RepositoryAccess fa) throws IOException { if (!relsExts.containsKey(pid)) { relsExts.put(pid, fa.getRelsExt(pid)); } @@ -33,7 +33,7 @@ public synchronized Document getRelsExt(String pid, FedoraAccess fa) throws IOEx } - public synchronized String dnnt(String pid, FedoraAccess fa) throws IOException, XPathExpressionException { + public synchronized String dnnt(String pid, RepositoryAccess fa) throws IOException, XPathExpressionException { String sxpath = "//kramerius:dnnt/text()"; XPathFactory xPathFactory = XPathFactory.newInstance(); @@ -45,7 +45,7 @@ public synchronized String dnnt(String pid, FedoraAccess fa) throws IOException, return value; } - public synchronized List dnntLabels(String pid, FedoraAccess fa) throws IOException, XPathExpressionException { + public synchronized List dnntLabels(String pid, RepositoryAccess fa) throws IOException, XPathExpressionException { List list = new ArrayList<>(); String sxpath = "//kramerius:dnnt-label"; diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/fa/FedoraAccessBridge.java b/processes/indexer/src/cz/incad/kramerius/indexer/fa/FedoraAccessBridge.java index a264b20cd0..68eda8772e 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/fa/FedoraAccessBridge.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/fa/FedoraAccessBridge.java @@ -24,7 +24,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.XMLUtils; @@ -32,10 +32,10 @@ public class FedoraAccessBridge { public static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; @Inject - public FedoraAccessBridge(@Named("rawFedoraAccess") FedoraAccess fedoraAccess) { + public FedoraAccessBridge(@Named("rawFedoraAccess") RepositoryAccess fedoraAccess) { super(); this.fedoraAccess = fedoraAccess; } diff --git a/processes/indexer/src/cz/incad/kramerius/indexer/guice/GuiceModelInjector.java b/processes/indexer/src/cz/incad/kramerius/indexer/guice/GuiceModelInjector.java index b61785a05c..5dcd83d89f 100644 --- a/processes/indexer/src/cz/incad/kramerius/indexer/guice/GuiceModelInjector.java +++ b/processes/indexer/src/cz/incad/kramerius/indexer/guice/GuiceModelInjector.java @@ -1,22 +1,12 @@ package cz.incad.kramerius.indexer.guice; -import java.io.ByteArrayInputStream; - import com.google.inject.*; -import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; -import org.w3c.dom.Document; -import cz.incad.kramerius.indexer.FedoraOperations; -import cz.incad.kramerius.indexer.SolrOperations; -import cz.incad.kramerius.indexer.fa.FedoraAccessBridge; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.utils.XMLUtils; public class GuiceModelInjector extends AbstractModule { diff --git a/processes/licenses/src/main/java/cz/inovatika/licenses/FlagToLicenseProcess.java b/processes/licenses/src/main/java/cz/inovatika/licenses/FlagToLicenseProcess.java index c056d9c9dc..097186322b 100644 --- a/processes/licenses/src/main/java/cz/inovatika/licenses/FlagToLicenseProcess.java +++ b/processes/licenses/src/main/java/cz/inovatika/licenses/FlagToLicenseProcess.java @@ -23,9 +23,6 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Triple; -import org.dom4j.Document; -import org.dom4j.Node; -import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.w3c.dom.Element; @@ -33,14 +30,9 @@ import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.processes.SetPolicyProcess; -import cz.incad.kramerius.processes.SetPolicyProcess.Policy; import cz.incad.kramerius.processes.SetPolicyProcess.Scope; import cz.incad.kramerius.processes.new_api.ProcessScheduler; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; import cz.incad.kramerius.security.licenses.impl.embedded.cz.CzechEmbeddedLicenses; -import cz.incad.kramerius.utils.Dom4jUtils; import cz.incad.kramerius.utils.IterationUtils; import cz.incad.kramerius.utils.IterationUtils.Endpoint; import cz.incad.kramerius.utils.XMLUtils; diff --git a/processes/migration/src/main/java/cz/incad/migration/AkubraMigrationParts.java b/processes/migration/src/main/java/cz/incad/migration/AkubraMigrationParts.java index 37b0556056..1075d97cb4 100644 --- a/processes/migration/src/main/java/cz/incad/migration/AkubraMigrationParts.java +++ b/processes/migration/src/main/java/cz/incad/migration/AkubraMigrationParts.java @@ -2,51 +2,30 @@ import com.google.inject.Guice; import com.google.inject.Injector; -import com.google.inject.Key; -import com.google.inject.name.Names; import com.qbizm.kramerius.imp.jaxb.DigitalObject; -import cz.incad.kramerius.FedoraAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; -import cz.incad.kramerius.utils.RESTHelper; -import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.conf.KConfiguration; import org.akubraproject.map.IdMapper; -import org.antlr.stringtemplate.StringTemplate; -import org.apache.commons.io.FileUtils; import org.apache.solr.client.solrj.SolrServerException; import org.fcrepo.server.storage.lowlevel.akubra.HashPathIdMapper; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; import java.io.*; -import java.net.URLEncoder; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.sql.SQLException; -import java.util.Arrays; -import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; import static cz.incad.kramerius.resourceindex.ProcessingIndexRebuild.rebuildProcessingIndex; import static cz.incad.migration.LegacyMigrationParts.LOG_MESSAGE_ITERATION; -import static cz.incad.migration.Utils.BUILDER; -import static cz.incad.migration.Utils.MD5; -import static cz.incad.kramerius.utils.XMLUtils.*; public enum AkubraMigrationParts { diff --git a/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMWUtils.java b/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMWUtils.java index 1265ec3d7e..cb3c6a1fea 100644 --- a/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMWUtils.java +++ b/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMWUtils.java @@ -17,7 +17,7 @@ import org.w3c.dom.Element; import cz.cas.lib.knav.indexer.CollectPidForIndexing; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.ObjectModelsPath; import cz.incad.kramerius.SolrAccess; @@ -54,8 +54,8 @@ public class ApplyMWUtils { * @throws RightCriteriumException * @throws XPathExpressionException */ - public static void applyMWOverPidsArray(FedoraAccess fa, SolrAccess sa, - CollectPidForIndexing coll, String userValue, String mode, String[] pids) + public static void applyMWOverPidsArray(RepositoryAccess fa, SolrAccess sa, + CollectPidForIndexing coll, String userValue, String mode, String[] pids) throws IOException, RightCriteriumException, XPathExpressionException, RepositoryException { String title = ApplyMWUtils.updateMovingWallTitle(pids, sa); @@ -140,8 +140,8 @@ public boolean acceptElement(Element element) { * @throws RightCriteriumException * @throws XPathExpressionException */ - public static void movingWallOnTree(String masterPid, String userValue, String mode, FedoraAccess fa, SolrAccess sa, - CollectPidForIndexing coll) throws IOException, + public static void movingWallOnTree(String masterPid, String userValue, String mode, RepositoryAccess fa, SolrAccess sa, + CollectPidForIndexing coll) throws IOException, RightCriteriumException, XPathExpressionException, RepositoryException { String firstModel = null; String firstPid = null; @@ -184,9 +184,9 @@ public static void movingWallOnTree(String masterPid, String userValue, String m * @throws RightCriteriumException * @throws XPathExpressionException */ - public static void process(FedoraAccess fa, SolrAccess sa, String onePid, - String firstPid, String firstModel, String userValue, String mode, - CollectPidForIndexing coll) throws IOException, + public static void process(RepositoryAccess fa, SolrAccess sa, String onePid, + String firstPid, String firstModel, String userValue, String mode, + CollectPidForIndexing coll) throws IOException, RightCriteriumException, XPathExpressionException, RepositoryException { ProcessCriteriumContext ctx = new ProcessCriteriumContext(onePid, fa, sa); @@ -223,7 +223,7 @@ public static void process(FedoraAccess fa, SolrAccess sa, String onePid, } } - public static String disectFlagFromRELSEXT(String onePid, FedoraAccess fa) + public static String disectFlagFromRELSEXT(String onePid, RepositoryAccess fa) throws IOException, XPathExpressionException { Document relsExtDocument = fa.getRelsExt(onePid); XPathFactory xpfactory = XPathFactory.newInstance(); @@ -243,7 +243,7 @@ public static String disectFlagFromRELSEXT(String onePid, FedoraAccess fa) * FedraAccess * @throws IOException */ - public static void setPolicyFlag(String pid, boolean b, FedoraAccess fa, + public static void setPolicyFlag(String pid, boolean b, RepositoryAccess fa, String previousState, CollectPidForIndexing coll) throws IOException, RepositoryException { if (ApplyMWUtils.detectChange(b, previousState)) { diff --git a/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMovingWall.java b/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMovingWall.java index 376661682c..b73ec87d22 100644 --- a/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMovingWall.java +++ b/processes/mw-process/src/main/java/cz/cas/lib/knav/ApplyMovingWall.java @@ -10,21 +10,15 @@ import com.google.inject.Key; import com.google.inject.name.Names; import cz.cas.lib.knav.indexer.CollectPidForIndexing; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.impl.SolrAccessImpl; import cz.incad.kramerius.impl.SolrAccessImplNewIndex; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.security.RightCriteriumException; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; -import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.incad.kramerius.utils.pid.LexerException; -import cz.incad.kramerius.utils.pid.PIDParser; -import javax.xml.parsers.ParserConfigurationException; -import org.xml.sax.SAXException; /** * Process sets flag public | private according to configuration @@ -39,7 +33,7 @@ public class ApplyMovingWall { public static void main(String[] args) throws IOException, RightCriteriumException, XPathExpressionException, RepositoryException { Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SolrAccess sa = new SolrAccessImplNewIndex(); CollectPidForIndexing coll = new CollectPidForIndexing(); diff --git a/processes/mw-process/src/main/java/cz/cas/lib/knav/ParametrizedApplyMovingWall.java b/processes/mw-process/src/main/java/cz/cas/lib/knav/ParametrizedApplyMovingWall.java index dec13331db..9969686a8c 100644 --- a/processes/mw-process/src/main/java/cz/cas/lib/knav/ParametrizedApplyMovingWall.java +++ b/processes/mw-process/src/main/java/cz/cas/lib/knav/ParametrizedApplyMovingWall.java @@ -9,15 +9,13 @@ import com.google.inject.Key; import com.google.inject.name.Names; import cz.cas.lib.knav.indexer.CollectPidForIndexing; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.impl.SolrAccessImpl; import cz.incad.kramerius.impl.SolrAccessImplNewIndex; import cz.incad.kramerius.processes.annotations.ParameterName; import cz.incad.kramerius.processes.annotations.Process; -import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.security.RightCriteriumException; import cz.incad.kramerius.solr.SolrModule; @@ -30,7 +28,7 @@ public class ParametrizedApplyMovingWall { public static void process(@ParameterName("userValue") String uVal, @ParameterName("mode") String mode, @ParameterName("pids") String pidsString) throws XPathExpressionException, IOException, RightCriteriumException, RepositoryException { Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); SolrAccess sa = new SolrAccessImplNewIndex(); CollectPidForIndexing coll = new CollectPidForIndexing(); diff --git a/processes/mw-process/src/main/java/cz/cas/lib/knav/ProcessCriteriumContext.java b/processes/mw-process/src/main/java/cz/cas/lib/knav/ProcessCriteriumContext.java index a65bba25b3..5dc3fedbc1 100644 --- a/processes/mw-process/src/main/java/cz/cas/lib/knav/ProcessCriteriumContext.java +++ b/processes/mw-process/src/main/java/cz/cas/lib/knav/ProcessCriteriumContext.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.Map; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.security.*; @@ -17,11 +17,11 @@ public class ProcessCriteriumContext implements RightCriteriumContext { private String pid; - private FedoraAccess fa; + private RepositoryAccess fa; private SolrAccess sa; private Map map = new HashMap<>(); - public ProcessCriteriumContext(String pid, FedoraAccess fa, SolrAccess sa) { + public ProcessCriteriumContext(String pid, RepositoryAccess fa, SolrAccess sa) { super(); this.pid = pid; this.fa = fa; @@ -63,7 +63,7 @@ public User getUser() { } @Override - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return this.fa; } diff --git a/processes/solr-migration/src/main/java/cz/incad/kramerius/services/cdk/K7SearchIndexChildrenSupport.java b/processes/solr-migration/src/main/java/cz/incad/kramerius/services/cdk/K7SearchIndexChildrenSupport.java index 46608f4809..8f0c000e00 100644 --- a/processes/solr-migration/src/main/java/cz/incad/kramerius/services/cdk/K7SearchIndexChildrenSupport.java +++ b/processes/solr-migration/src/main/java/cz/incad/kramerius/services/cdk/K7SearchIndexChildrenSupport.java @@ -11,22 +11,12 @@ import javax.xml.parsers.ParserConfigurationException; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; -import com.sun.jersey.api.client.Client; - import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.FosterRelationsMapping; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.OwnRelationsMapping; -import cz.incad.kramerius.repository.RepositoryApi; -import cz.incad.kramerius.repository.RepositoryApi.Triplet; import cz.incad.kramerius.service.MigrateSolrIndexException; import cz.incad.kramerius.services.IterationUtils; -import cz.incad.kramerius.services.IterationUtils.IterationCallback; -import cz.incad.kramerius.services.IterationUtils.IterationContext; -import cz.incad.kramerius.services.IterationUtils.IterationEndCallback; import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.conf.KConfiguration; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/api/iiif/IiifAPI.java b/rest/src/main/java/cz/incad/kramerius/rest/api/iiif/IiifAPI.java index 980ad7565c..762682c7c8 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/api/iiif/IiifAPI.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/api/iiif/IiifAPI.java @@ -1,7 +1,7 @@ package cz.incad.kramerius.rest.api.iiif; import com.fasterxml.jackson.core.JsonProcessingException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.rest.api.exceptions.GenericApplicationException; import cz.incad.kramerius.rest.api.k5.client.SolrMemoization; @@ -26,19 +26,11 @@ import de.digitalcollections.iiif.presentation.model.impl.v2.PropertyValueSimpleImpl; import de.digitalcollections.iiif.presentation.model.impl.v2.SequenceImpl; import de.digitalcollections.iiif.presentation.model.impl.v2.ServiceImpl; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.tuple.Pair; -import org.apache.hc.client5.http.async.methods.AbstractBinResponseConsumer; import org.apache.hc.client5.http.async.methods.SimpleHttpResponse; import org.apache.hc.client5.http.async.methods.SimpleResponseConsumer; -import org.apache.hc.client5.http.classic.methods.HttpGet; -import org.apache.hc.core5.concurrent.FutureCallback; -import org.apache.hc.core5.http.ClassicHttpResponse; -import org.apache.hc.core5.http.HttpResponse; import org.apache.hc.core5.http.nio.AsyncRequestProducer; import org.apache.hc.core5.http.nio.support.AsyncRequestBuilder; -import org.apache.hc.core5.io.CloseMode; -import org.apache.hc.core5.util.Timeout; import org.apache.hc.client5.http.async.HttpAsyncClient; import org.json.JSONObject; import org.w3c.dom.Element; @@ -59,7 +51,6 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.*; @@ -67,8 +58,6 @@ import java.util.logging.Logger; import java.util.stream.Collectors; -import cz.incad.kramerius.rest.api.k5.client.item.utils.ItemResourceUtils; - /** * IiiPresentationApi @@ -83,7 +72,7 @@ public class IiifAPI { @Inject private SolrMemoization solrMemoization; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private SolrAccess solrAccess; @@ -94,7 +83,7 @@ public class IiifAPI { private HttpAsyncClient asyncClient; @Inject - public IiifAPI(SolrMemoization solrMemoization, @Named("cachedFedoraAccess") FedoraAccess fedoraAccess, + public IiifAPI(SolrMemoization solrMemoization, @Named("cachedFedoraAccess") RepositoryAccess fedoraAccess, @Named("new-index") SolrAccess solrAccess, Provider requestProvider, HttpAsyncClient asyncClient) { this.solrMemoization = solrMemoization; this.fedoraAccess = fedoraAccess; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/AbstractPDFResource.java b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/AbstractPDFResource.java index 62832bfdf9..1ff351f54e 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/AbstractPDFResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/AbstractPDFResource.java @@ -30,9 +30,8 @@ import com.lowagie.text.Rectangle; import cz.incad.kramerius.AbstractObjectPath; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.MostDesirable; -import cz.incad.kramerius.ObjectModelsPath; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.SolrAccess; @@ -51,7 +50,6 @@ import cz.incad.kramerius.security.User; import cz.incad.kramerius.service.TextsService; import cz.incad.kramerius.statistics.ReportedAction; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.conf.KConfiguration; @@ -74,7 +72,7 @@ public enum FirstPage { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); diff --git a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/PDFResource.java b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/PDFResource.java index 6802aff130..7d6a4811fe 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/PDFResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/pdf/PDFResource.java @@ -45,8 +45,6 @@ import org.json.JSONException; import org.json.JSONObject; -import com.google.inject.Inject; -import com.google.inject.name.Named; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Image; @@ -54,7 +52,6 @@ import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.PdfWriter; -import cz.incad.kramerius.FedoraAccess; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.pdf.OutOfRangeException; import cz.incad.kramerius.pdf.impl.ConfigurationUtils; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/BiblioModsUtils.java b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/BiblioModsUtils.java index db49dab6b0..ba838dd382 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/BiblioModsUtils.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/BiblioModsUtils.java @@ -1,6 +1,6 @@ package cz.incad.kramerius.rest.api.k5.client.utils; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import org.w3c.dom.Document; import java.io.IOException; @@ -15,7 +15,7 @@ public class BiblioModsUtils { public static Document getBiblioModsDocument(String pid, - Map context, FedoraAccess fedoraAccess) + Map context, RepositoryAccess fedoraAccess) throws IOException { String key = BIBLIOMODS_PID_DOCUMENT_KEY + "_" + pid; if (!context.containsKey(key)) { diff --git a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/RELSEXTDecoratorUtils.java b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/RELSEXTDecoratorUtils.java index afe83080d6..6ee60abbcb 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/RELSEXTDecoratorUtils.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/api/k5/client/utils/RELSEXTDecoratorUtils.java @@ -21,8 +21,7 @@ import org.w3c.dom.Document; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.SolrAccess; +import cz.incad.kramerius.RepositoryAccess; /** * Dedicated for getting RELS_EXT, storing it in the context and return it @@ -33,7 +32,7 @@ public class RELSEXTDecoratorUtils { public static Document getRELSEXTPidDocument(String pid, - Map context, FedoraAccess fedoraAccess) + Map context, RepositoryAccess fedoraAccess) throws IOException { String key = RELSEXT_PID_DOCUMENT_KEY + "_" + pid; if (!context.containsKey(key)) { diff --git a/rest/src/main/java/cz/incad/kramerius/rest/api/replication/ReplicationsResource.java b/rest/src/main/java/cz/incad/kramerius/rest/api/replication/ReplicationsResource.java index b18c3950c4..1946aaa5cd 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/api/replication/ReplicationsResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/api/replication/ReplicationsResource.java @@ -57,7 +57,7 @@ import com.google.inject.Provider; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.document.model.DCConent; @@ -93,7 +93,7 @@ public class ReplicationsResource { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject @Named("new-index") diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ApiResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ApiResource.java index 848fa40535..3cc4c9468c 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ApiResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/ApiResource.java @@ -1,8 +1,6 @@ package cz.incad.kramerius.rest.apiNew; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; import cz.incad.kramerius.rest.apiNew.exceptions.ApiException; import cz.incad.kramerius.rest.apiNew.exceptions.BadRequestException; import cz.incad.kramerius.rest.apiNew.exceptions.InternalErrorException; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/FoxmlBuilder.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/FoxmlBuilder.java index 4c64da61dd..941b10bc05 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/FoxmlBuilder.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/FoxmlBuilder.java @@ -1,6 +1,5 @@ package cz.incad.kramerius.rest.apiNew.admin.v70; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; import cz.incad.kramerius.utils.Dom4jUtils; import org.dom4j.*; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/ItemsResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/ItemsResource.java index b201dda4aa..cc06438e73 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/ItemsResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/ItemsResource.java @@ -3,23 +3,18 @@ import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.imaging.ImageStreams; -import cz.incad.kramerius.repository.RepositoryApi; import cz.incad.kramerius.repository.utils.Utils; import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.rest.apiNew.exceptions.BadRequestException; import cz.incad.kramerius.rest.apiNew.exceptions.ForbiddenException; import cz.incad.kramerius.rest.apiNew.exceptions.InternalErrorException; -import cz.incad.kramerius.security.EvaluatingResultState; import cz.incad.kramerius.security.RightsResolver; -import cz.incad.kramerius.security.RightsReturnObject; import cz.incad.kramerius.security.Role; import cz.incad.kramerius.security.SecuredActions; import cz.incad.kramerius.security.SpecialObjects; import cz.incad.kramerius.security.User; import cz.incad.kramerius.utils.Dom4jUtils; import cz.incad.kramerius.utils.StringUtils; -import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.java.Pair; import org.apache.commons.io.IOUtils; import org.dom4j.Document; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsFoxmlBuilder.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsFoxmlBuilder.java index 94223a235d..f1138b2a33 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsFoxmlBuilder.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsFoxmlBuilder.java @@ -1,7 +1,5 @@ package cz.incad.kramerius.rest.apiNew.admin.v70.collections; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.RepositoryApi; import cz.incad.kramerius.rest.apiNew.admin.v70.FoxmlBuilder; import cz.incad.kramerius.utils.StringUtils; @@ -14,7 +12,6 @@ import java.text.BreakIterator; import java.time.LocalDateTime; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsResource.java index 4ca09d0e41..9609f63eec 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CollectionsResource.java @@ -3,10 +3,6 @@ import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.RepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.KnownDatastreams; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.KnownXmlFormatUris; import cz.incad.kramerius.rest.apiNew.admin.v70.AdminApiResource; import cz.incad.kramerius.rest.apiNew.admin.v70.collections.Collection.ThumbnailbStateEnum; import cz.incad.kramerius.rest.apiNew.admin.v70.collections.thumbs.ClientIIIFGenerator; @@ -22,19 +18,15 @@ import cz.incad.kramerius.security.User; import cz.incad.kramerius.utils.Dom4jUtils; import cz.incad.kramerius.utils.StringUtils; -import cz.incad.kramerius.utils.imgs.ImageMimeType; import cz.incad.kramerius.utils.imgs.KrameriusImageSupport; import cz.incad.kramerius.utils.java.Pair; import org.apache.commons.collections4.map.HashedMap; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.MultipartStream; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.io.FileSystemUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringEscapeUtils; -import org.apache.http.protocol.HTTP; import org.apache.solr.client.solrj.SolrServerException; import org.dom4j.Attribute; import org.dom4j.Document; @@ -51,10 +43,8 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; @@ -62,7 +52,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.URL; import java.nio.charset.Charset; import java.security.NoSuchAlgorithmException; import java.util.*; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CutItem.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CutItem.java index 6c44c5a247..5edc6258ee 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CutItem.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/admin/v70/collections/CutItem.java @@ -30,7 +30,6 @@ import org.json.JSONObject; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.repository.RepositoryApi; public class CutItem { diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKIIIFResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKIIIFResource.java index da7ae2decd..d852e270c4 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKIIIFResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKIIIFResource.java @@ -24,18 +24,14 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import com.google.inject.Scopes; import com.google.inject.name.Named; -import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.impl.SolrAccessImplNewIndex; import cz.incad.kramerius.rest.IIPImagesSupport; import cz.incad.kramerius.rest.api.exceptions.ActionNotAllowed; import cz.incad.kramerius.rest.api.exceptions.BadRequestException; -import cz.incad.kramerius.rest.apiNew.admin.v70.collections.thumbs.IIFUtils; import cz.incad.kramerius.rest.apiNew.client.v70.ItemsResource; import cz.incad.kramerius.rest.utils.IIIFUtils; import cz.incad.kramerius.security.RightsResolver; @@ -43,7 +39,6 @@ import cz.incad.kramerius.security.User; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; import cz.incad.kramerius.utils.RESTHelper; -import cz.incad.kramerius.utils.conf.KConfiguration; /** * Provides support for IIIF endpoints @@ -72,7 +67,7 @@ public class CDKIIIFResource extends AbstractTileResource { @Inject @Named("cachedFedoraAccess") - private transient FedoraAccess fedoraAccess; + private transient RepositoryAccess fedoraAccess; @Inject diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKItemResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKItemResource.java index 453d06e618..a3b72c2a01 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKItemResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKItemResource.java @@ -3,17 +3,11 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; import javax.ws.rs.core.StreamingOutput; @@ -24,22 +18,16 @@ import com.google.inject.Provider; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.ObjectPidsPath; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.imaging.ImageStreams; import cz.incad.kramerius.rest.api.exceptions.ActionNotAllowed; import cz.incad.kramerius.rest.api.k5.client.item.exceptions.PIDNotFound; import cz.incad.kramerius.rest.api.k5.client.utils.PIDSupport; import cz.incad.kramerius.rest.apiNew.client.v70.utils.RightRuntimeInformations; import cz.incad.kramerius.rest.apiNew.client.v70.utils.RightRuntimeInformations.RuntimeInformation; import cz.incad.kramerius.security.RightsResolver; -import cz.incad.kramerius.security.RightsReturnObject; -import cz.incad.kramerius.security.SecuredActions; import cz.incad.kramerius.security.SecurityException; -import cz.incad.kramerius.security.impl.criteria.ReadDNNTLabels; -import cz.incad.kramerius.security.impl.criteria.ReadDNNTLabelsIPFiltered; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.IOUtils; @@ -63,7 +51,7 @@ public class CDKItemResource { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; public Response providedBy(String pid) { try { diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKZoomifyResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKZoomifyResource.java index a304203b9f..7438443a77 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKZoomifyResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/CDKZoomifyResource.java @@ -14,14 +14,13 @@ import javax.ws.rs.core.Response.ResponseBuilder; import javax.xml.xpath.XPathExpressionException; -import org.apache.http.nio.client.HttpAsyncClient; import org.json.JSONException; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.rest.IIPImagesSupport; @@ -55,7 +54,7 @@ public class CDKZoomifyResource extends AbstractTileResource { @Inject @Named("cachedFedoraAccess") - private transient FedoraAccess fedoraAccess; + private transient RepositoryAccess fedoraAccess; @Inject diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/SOLRResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/SOLRResource.java index 0609551f85..67263067c0 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/SOLRResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/cdk/v70/resources/SOLRResource.java @@ -8,19 +8,12 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Arrays; -import java.util.Date; -import java.util.List; import java.util.Locale; import java.util.Set; -import java.util.logging.Level; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; @@ -30,9 +23,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.TransformerException; -import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.w3c.dom.Document; @@ -43,15 +34,10 @@ import com.google.inject.name.Named; import biz.sourcecode.base64Coder.Base64Coder; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.ObjectPidsPath; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.rest.api.exceptions.ActionNotAllowed; -import cz.incad.kramerius.rest.api.exceptions.GenericApplicationException; import cz.incad.kramerius.rest.api.replication.exceptions.ObjectNotFound; import cz.incad.kramerius.security.RightsResolver; -import cz.incad.kramerius.security.SecuredActions; -import cz.incad.kramerius.security.SpecialObjects; import cz.incad.kramerius.security.User; import cz.incad.kramerius.service.ReplicateException; import cz.incad.kramerius.service.ReplicationService; @@ -75,7 +61,7 @@ public class SOLRResource { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject @javax.inject.Named("new-index") diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ClientApiResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ClientApiResource.java index b6430fdcab..75105e9db1 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ClientApiResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ClientApiResource.java @@ -3,7 +3,6 @@ import com.google.inject.name.Named; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; import cz.incad.kramerius.rest.apiNew.ApiResource; import cz.incad.kramerius.rest.apiNew.exceptions.ForbiddenException; import cz.incad.kramerius.rest.apiNew.exceptions.InternalErrorException; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ItemsResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ItemsResource.java index 1a5ec8ef45..d4ce67ea23 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ItemsResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ItemsResource.java @@ -3,40 +3,23 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.audio.AudioFormat; import cz.incad.kramerius.audio.AudioStreamForwardingHelper; import cz.incad.kramerius.audio.AudioStreamId; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.repository.ExtractStructureHelper; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.KnownDatastreams; -import cz.incad.kramerius.repository.RepositoryApi; -import cz.incad.kramerius.repository.utils.Utils; -import cz.incad.kramerius.rest.IIPImagesSupport; -import cz.incad.kramerius.rest.api.exceptions.ActionNotAllowed; import cz.incad.kramerius.rest.apiNew.admin.v70.collections.CutItem; import cz.incad.kramerius.rest.apiNew.client.v70.epub.EPubFileTypes; import cz.incad.kramerius.rest.apiNew.client.v70.utils.RightRuntimeInformations; import cz.incad.kramerius.rest.apiNew.client.v70.utils.RightRuntimeInformations.RuntimeInformation; import cz.incad.kramerius.rest.apiNew.exceptions.BadRequestException; -import cz.incad.kramerius.rest.apiNew.exceptions.ForbiddenException; import cz.incad.kramerius.rest.apiNew.exceptions.InternalErrorException; import cz.incad.kramerius.rest.apiNew.exceptions.NotFoundException; import cz.incad.kramerius.rest.utils.IIIFUtils; import cz.incad.kramerius.security.RightsResolver; -import cz.incad.kramerius.security.Role; -import cz.incad.kramerius.security.SecuredActions; -import cz.incad.kramerius.security.User; -import cz.incad.kramerius.security.licenses.License; import cz.incad.kramerius.security.licenses.LicensesManager; -import cz.incad.kramerius.security.licenses.lock.ExclusiveLock; -import cz.incad.kramerius.service.ReplicateException; -import cz.incad.kramerius.service.replication.FormatType; -import cz.incad.kramerius.service.replication.ReplicationUtils; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; -import cz.incad.kramerius.utils.ApplicationURL; import cz.incad.kramerius.utils.Dom4jUtils; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.RESTHelper; @@ -58,7 +41,6 @@ import org.dom4j.Namespace; import org.dom4j.Node; import org.dom4j.QName; -import org.dom4j.io.DOMWriter; import org.json.JSONException; import org.json.JSONObject; import org.xml.sax.SAXException; @@ -69,29 +51,22 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.*; -import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.PathSegment; import javax.ws.rs.core.Response; import javax.ws.rs.core.StreamingOutput; import javax.ws.rs.core.UriInfo; -import javax.ws.rs.core.Response.ResponseBuilder; import javax.xml.parsers.ParserConfigurationException; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.Charset; @@ -107,11 +82,9 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import com.sun.jersey.api.client.Client; -import com.sun.jersey.api.client.ClientResponse; /** diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ZoomifyHelper.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ZoomifyHelper.java index a0bef31535..4406b47f22 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ZoomifyHelper.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/ZoomifyHelper.java @@ -2,13 +2,12 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.MostDesirable; import cz.incad.kramerius.imaging.DeepZoomCacheService; import cz.incad.kramerius.imaging.DeepZoomTileSupport; import cz.incad.kramerius.rest.apiNew.exceptions.NotFoundException; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.RelsExtHelper; @@ -23,7 +22,6 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; -import org.apache.hc.client5.http.async.HttpAsyncClient; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; @@ -72,7 +70,7 @@ public class ZoomifyHelper { @javax.inject.Inject @Named("securedFedoraAccess") - protected transient FedoraAccess fedoraAccess; + protected transient RepositoryAccess fedoraAccess; public Response buildImagePropertiesResponse(String pid, HttpServletRequest req) throws IOException, XPathExpressionException { try { diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/cdk/ItemsResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/cdk/ItemsResource.java index fcea7d7644..ec82f04762 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/cdk/ItemsResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/cdk/ItemsResource.java @@ -19,8 +19,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.json.JSONObject; - import com.google.inject.Inject; import com.google.inject.Provider; import com.sun.jersey.api.client.Client; @@ -28,7 +26,6 @@ import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.audio.AudioStreamForwardingHelper; import cz.incad.kramerius.fedora.utils.CDKUtils; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; import cz.incad.kramerius.rest.apiNew.client.v70.libs.OneInstance; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.item.ProxyItemHandler; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/pdf/AbstractPDFResource.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/pdf/AbstractPDFResource.java index 63eaba6076..f6a957af60 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/pdf/AbstractPDFResource.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/pdf/AbstractPDFResource.java @@ -36,7 +36,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -63,7 +62,7 @@ public enum FirstPageType { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); diff --git a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/redirection/item/V5RedirectHandler.java b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/redirection/item/V5RedirectHandler.java index abf099f44e..40bd15b5a5 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/redirection/item/V5RedirectHandler.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/apiNew/client/v70/redirection/item/V5RedirectHandler.java @@ -3,9 +3,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -29,14 +26,9 @@ import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.FosterRelationsMapping; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.KnownRelations; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.OwnRelationsMapping; import cz.incad.kramerius.rest.apiNew.admin.v70.reharvest.ReharvestManager; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.ProxyHandlerException; -import cz.incad.kramerius.rest.apiNew.client.v70.redirection.item.ProxyItemHandler.RequestMethodName; import cz.incad.kramerius.security.User; import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.pid.LexerException; diff --git a/rest/src/main/java/cz/incad/kramerius/rest/oai/MetadataExport.java b/rest/src/main/java/cz/incad/kramerius/rest/oai/MetadataExport.java index cfa59df433..9b6194f302 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/oai/MetadataExport.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/oai/MetadataExport.java @@ -33,9 +33,8 @@ import com.google.common.base.Functions; import com.google.common.collect.Lists; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.KnownRelations; import cz.incad.kramerius.rest.oai.metadata.DrKrameriusUtils; import cz.incad.kramerius.utils.ApplicationURL; import cz.incad.kramerius.utils.RelsExtHelper; @@ -43,19 +42,14 @@ import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.pid.LexerException; import cz.incad.kramerius.utils.pid.PIDParser; -import cz.kramerius.krameriusRepositoryAccess.KrameriusRepositoryFascade.KnownDatastreams; import javax.inject.Provider; -import javax.servlet.http.HttpServletRequest; import javax.xml.parsers.ParserConfigurationException; -import org.w3c.dom.Document; -import org.w3c.dom.Element; import org.xml.sax.SAXException; import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.fedora.utils.CDKUtils; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; @@ -63,11 +57,7 @@ import cz.incad.kramerius.rest.apiNew.client.v70.redirection.ProxyHandlerException; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.item.ProxyItemHandler; import cz.incad.kramerius.security.User; -import cz.incad.kramerius.utils.ApplicationURL; import cz.incad.kramerius.utils.IPAddressUtils; -import cz.incad.kramerius.utils.XMLUtils; -import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.incad.kramerius.utils.pid.LexerException; public enum MetadataExport { @@ -79,7 +69,7 @@ public enum MetadataExport { //public abstract Element perform(HttpServletRequest request, ProxyItemHandler handler, Document owningDocument, String oaiIdentifier, OAISet set); @Override - public Element perform(HttpServletRequest request, FedoraAccess fa, Document owningDocument, String oaiIdentifier,OAISet set) { + public Element perform(HttpServletRequest request, RepositoryAccess fa, Document owningDocument, String oaiIdentifier, OAISet set) { try { String pid = OAITools.pidFromOAIIdentifier(oaiIdentifier); Document dc = fa.getDC(pid); @@ -123,8 +113,8 @@ public Element performOnCDKSide(SolrAccess solrAccess,Provider userProvide @Override - public Element perform(HttpServletRequest request, FedoraAccess fa, Document owningDocument, - String oaiIdentifier,OAISet set) { + public Element perform(HttpServletRequest request, RepositoryAccess fa, Document owningDocument, + String oaiIdentifier, OAISet set) { try { @@ -355,7 +345,7 @@ public Element performOnCDKSide(SolrAccess solrAccess,Provider userProvide "http://www.europeana.eu/schemas/ese/") { @Override - public Element perform(HttpServletRequest request, FedoraAccess fa, Document owningDocument, String oaiIdentifier,OAISet set) { + public Element perform(HttpServletRequest request, RepositoryAccess fa, Document owningDocument, String oaiIdentifier, OAISet set) { try { String baseUrl = ApplicationURL.applicationURL(request); String pid = OAITools.pidFromOAIIdentifier(oaiIdentifier); @@ -485,8 +475,8 @@ public Element performOnCDKSide(SolrAccess solrAccess, Provider userProvid } @Override - public Element perform(HttpServletRequest request, FedoraAccess fa, Document owningDocument, - String oaiIdentifier, OAISet set) { + public Element perform(HttpServletRequest request, RepositoryAccess fa, Document owningDocument, + String oaiIdentifier, OAISet set) { try { //hasIntCompPart @@ -652,7 +642,7 @@ private static void metadataProvider(Instances instances, OAIRecord oaiRec, Elem public abstract Element performOnCDKSide(SolrAccess solrAccess,Provider userProvider, Provider clientProvider, Instances instances, HttpServletRequest request, Document owningDocument, OAIRecord oaiRec, OAISet set); /** Local kramerius */ - public abstract Element perform(HttpServletRequest request, FedoraAccess fa, Document owningDocument, String oaiIdentifier, OAISet set); + public abstract Element perform(HttpServletRequest request, RepositoryAccess fa, Document owningDocument, String oaiIdentifier, OAISet set); //public abstract Element perform(HttpServletRequest request, ProxyItemHandler handler, Document owningDocument, String oaiIdentifier, OAISet set); diff --git a/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIEndpoint.java b/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIEndpoint.java index 42ed42521a..a131860f9a 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIEndpoint.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIEndpoint.java @@ -22,15 +22,10 @@ import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.PathSegment; import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; import javax.xml.parsers.ParserConfigurationException; import org.json.JSONObject; @@ -41,25 +36,18 @@ import com.google.inject.Provider; import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.rest.apiNew.ConfigManager; import cz.incad.kramerius.rest.apiNew.client.v70.ClientApiResource; -import cz.incad.kramerius.rest.apiNew.exceptions.InternalErrorException; import cz.incad.kramerius.rest.oai.exceptions.OAIException; import cz.incad.kramerius.rest.oai.exceptions.OAIInfoException; import cz.incad.kramerius.rest.apiNew.client.v70.filter.ProxyFilter; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; -import cz.incad.kramerius.rest.apiNew.exceptions.InternalErrorException; -import cz.incad.kramerius.rest.oai.exceptions.OAIException; -import cz.incad.kramerius.rest.oai.exceptions.OAIInfoException; import cz.incad.kramerius.security.User; import cz.incad.kramerius.utils.ApplicationURL; import cz.incad.kramerius.utils.StringUtils; import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.kramerius.searchIndex.indexer.execution.Indexer; import static cz.incad.kramerius.rest.oai.OAITools.*; @@ -76,7 +64,7 @@ public class OAIEndpoint extends ClientApiResource { @Inject @Named("cachedFedoraAccess") - private transient FedoraAccess fedoraAccess; + private transient RepositoryAccess fedoraAccess; // @Inject // @Named("cachedFedoraAccess") diff --git a/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIRecord.java b/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIRecord.java index cfca22d132..1128a766c3 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIRecord.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIRecord.java @@ -17,47 +17,34 @@ package cz.incad.kramerius.rest.oai; import java.io.IOException; -import java.io.InputStream; import java.io.StringReader; import java.net.URLEncoder; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.xml.parsers.ParserConfigurationException; import java.util.ArrayList; -import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import javax.inject.Provider; -import javax.servlet.http.HttpServletRequest; -import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.utils.XMLUtils; import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; -import cz.incad.kramerius.rest.apiNew.client.v70.libs.OneInstance; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.ProxyHandlerException; import cz.incad.kramerius.rest.apiNew.client.v70.redirection.item.ProxyItemHandler; import cz.incad.kramerius.security.User; -import cz.incad.kramerius.utils.IPAddressUtils; -import cz.incad.kramerius.utils.XMLUtils; -import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.pid.LexerException; public class OAIRecord { @@ -169,7 +156,7 @@ public boolean acceptElement(Element element) { } /** render metadata */ - public Element toMetadataOnLocal(HttpServletRequest request, FedoraAccess fa, Document doc, MetadataExport export, OAISet set) { + public Element toMetadataOnLocal(HttpServletRequest request, RepositoryAccess fa, Document doc, MetadataExport export, OAISet set) { return export.perform(request, fa, doc, identifier, set); } public Element toMetadataOnCDKSide(SolrAccess solrAccess,Provider userProvider, Provider clientProvider, Instances instances, HttpServletRequest request, Document owningDocument, String oaiIdentifier, MetadataExport export, OAISet set) { @@ -219,7 +206,7 @@ public Element toHeaderOnCDKSide(Document doc, OAISet set, SolrAccess solrAccess return header; } - public Element toHeaderOnLocal(Document doc, FedoraAccess fa, OAISet set ) throws IOException { + public Element toHeaderOnLocal(Document doc, RepositoryAccess fa, OAISet set ) throws IOException { Element header = doc.createElement("header"); Element identifier = doc.createElement("identifier"); diff --git a/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIVerb.java b/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIVerb.java index 5d3bdddc6e..54628d3b53 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIVerb.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/oai/OAIVerb.java @@ -33,22 +33,17 @@ import org.w3c.dom.Element; import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.rest.apiNew.ConfigManager; import cz.incad.kramerius.rest.oai.exceptions.OAIException; import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.rest.apiNew.ConfigManager; import cz.incad.kramerius.rest.apiNew.client.v70.filter.ProxyFilter; import cz.incad.kramerius.rest.apiNew.client.v70.libs.Instances; -import cz.incad.kramerius.rest.oai.exceptions.OAIException; import cz.incad.kramerius.security.User; import cz.incad.kramerius.utils.ApplicationURL; import cz.incad.kramerius.utils.StringUtils; -import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.conf.KConfiguration; public enum OAIVerb { @@ -56,7 +51,7 @@ public enum OAIVerb { ListMetadataFormats { @Override - public void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ + public void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ Element requestElement = OAITools.requestElement(doc, OAIVerb.ListMetadataFormats,null,ApplicationURL.applicationURL(request),null); doc.getDocumentElement().appendChild(requestElement); @@ -121,7 +116,7 @@ public void performOnCDKSide(Provider userProvider, Provider clien }, ListSets { @Override - public void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ + public void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ try { Element requestElement = OAITools.requestElement(doc, OAIVerb.ListSets, null,ApplicationURL.applicationURL(request), null); doc.getDocumentElement().appendChild(requestElement); @@ -213,7 +208,7 @@ public void performOnCDKSide(Provider userProvider,Provider client Identify { @Override - public void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException { + public void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException { try { String url = ApplicationURL.applicationURL(request); @@ -381,7 +376,7 @@ public void performOnCDKSide(Provider userProvider,Provider client ListRecords { @Override - public void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ + public void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ OAISet selectedSet = null; MetadataExport selectedMetadata = null; @@ -661,7 +656,7 @@ public void performOnCDKSide(Provider userProvider,Provider client }, ListIdentifiers { - public void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ + public void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ OAISet selectedSet = null; MetadataExport selectedMetadata = null; try { @@ -1020,7 +1015,7 @@ public void perform(Provider userProvider,Provider clientProvider, GetRecord { @Override - public void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ + public void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws OAIException{ MetadataExport selectedMetadata = null; try { String baseUrl = ApplicationURL.applicationURL(request); @@ -1137,7 +1132,7 @@ public void performOnCDKSide(Provider userProvider,Provider client private static final String REPOSITORY_NAME = "oai.repositoryName"; private static final String REPOSITORY_ROWS_IN_RESULTS = "oai.rowsInResults"; - public abstract void performOnLocal(ConfigManager configManager, FedoraAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws Exception; + public abstract void performOnLocal(ConfigManager configManager, RepositoryAccess fa, SolrAccess solrAccess, HttpServletRequest request, Document doc, Element rootElement) throws Exception; // Perform on CDK side diff --git a/rest/src/main/java/cz/incad/kramerius/rest/utils/IIIFUtils.java b/rest/src/main/java/cz/incad/kramerius/rest/utils/IIIFUtils.java index f1fcceee1d..fad1f98170 100644 --- a/rest/src/main/java/cz/incad/kramerius/rest/utils/IIIFUtils.java +++ b/rest/src/main/java/cz/incad/kramerius/rest/utils/IIIFUtils.java @@ -8,36 +8,32 @@ import org.w3c.dom.Document; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.SocketException; import java.util.logging.Level; -import java.util.logging.Logger; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response.ResponseBuilder; import javax.ws.rs.core.StreamingOutput; -import javax.xml.xpath.XPathExpressionException; import org.apache.commons.io.IOUtils; -import org.w3c.dom.Document; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.utils.RelsExtHelper; public class IIIFUtils { public static final Logger LOGGER = Logger.getLogger(IIIFUtils.class.getName()); - public static String iiifImageEndpoint(String pid, FedoraAccess fedoraAccess) throws IOException { + public static String iiifImageEndpoint(String pid, RepositoryAccess fedoraAccess) throws IOException { try { String url = RelsExtHelper.getRelsExtTilesUrl(pid, fedoraAccess); if (url == null) diff --git a/rest/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java b/rest/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java index 5c622ccefc..c90d50ac2d 100644 --- a/rest/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java +++ b/rest/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java @@ -33,7 +33,7 @@ import org.w3c.dom.Document; import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.XMLUtils; @@ -101,60 +101,60 @@ public class DataPrepare { public static InputStream datastreams33() { String path = "/cz/incad/kramerius/fedora/res/datastreams_3_3"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream datastreams34() { String path = "/cz/incad/kramerius/fedora/res/datastreams_3_4"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream datastreams36() { String path = "/cz/incad/kramerius/fedora/res/datastreams_3_6"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream dsProfile33() { String path = "/cz/incad/kramerius/fedora/res/dsprofile_3_3"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream dsProfile36() { String path = "/cz/incad/kramerius/fedora/res/dsprofile_3_6"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream dsProfile34() { String path = "/cz/incad/kramerius/fedora/res/dsprofile_3_4"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream fedoraProfile33() { String path = "/cz/incad/kramerius/fedora/res/describe_3_3"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream fedoraProfile34() { String path = "/cz/incad/kramerius/fedora/res/describe_3_4"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream fedoraProfile36() { String path = "/cz/incad/kramerius/fedora/res/describe_3_6"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } - public static void narodniListyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void narodniListyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; expect(fa.isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)).andReturn(true).anyTimes(); @@ -162,7 +162,7 @@ public static void narodniListyRelsExt(FedoraAccess fa) throws IOException, Pars } } - public static void drobnustkyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void drobnustkyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { String pid = DROBNUSTKY_PIDS[i]; expect(fa.isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)).andReturn(true).anyTimes(); @@ -170,17 +170,17 @@ public static void drobnustkyRelsExt(FedoraAccess fa) throws IOException, Parser } } - public static void relsExt(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void relsExt(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String objectId = pidParser.getObjectId(); String path = "/cz/incad/kramerius/fedora/res/"+objectId+".xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getRelsExt(pid)).andReturn(XMLUtils.parseDocument(resStream, true)).anyTimes(); } - public static void narodniListyIMGFULL(FedoraAccess fa) throws IOException, LexerException { + public static void narodniListyIMGFULL(RepositoryAccess fa) throws IOException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; String model = MODELS_MAPPING.get(pid); @@ -197,7 +197,7 @@ public static void narodniListyIMGFULL(FedoraAccess fa) throws IOException, Lexe } - public static void drobnustkyWithIMGFULL(FedoraAccess fa) throws IOException { + public static void drobnustkyWithIMGFULL(RepositoryAccess fa) throws IOException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { if (DROBNUSTKY_PIDS[i].equals("uuid:0eaa6730-9068-11dd-97de-000d606f5dc6")) { expect(fa.isImageFULLAvailable(DROBNUSTKY_PIDS[i])).andReturn(false).anyTimes(); @@ -207,64 +207,64 @@ public static void drobnustkyWithIMGFULL(FedoraAccess fa) throws IOException { } } - public static void narodniListyDCs(FedoraAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void narodniListyDCs(RepositoryAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { for (int i = 0; i < NARODNI_LISTY.length; i++) { dc(fa,NARODNI_LISTY[i]); } } - public static void drobnustkyDCS(FedoraAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { + public static void drobnustkyDCS(RepositoryAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { dc(fa,DROBNUSTKY_PIDS[i]); } } - public static void narodniListyMods(FedoraAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void narodniListyMods(RepositoryAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { for (int i = 0; i < NARODNI_LISTY.length; i++) { mods(fa,NARODNI_LISTY[i]); } } - public static void drobnustkyMODS(FedoraAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { + public static void drobnustkyMODS(RepositoryAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { mods(fa,DROBNUSTKY_PIDS[i]); } } - public static void drobnustkyWithOutIMGFULL(FedoraAccess fa) throws IOException { + public static void drobnustkyWithOutIMGFULL(RepositoryAccess fa) throws IOException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { expect(fa.isImageFULLAvailable(DROBNUSTKY_PIDS[i])).andReturn(false); } } - public static void dc(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void dc(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/cz/incad/kramerius/fedora/res/"+pidParser.getObjectId()+".dc.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); Document document = XMLUtils.parseDocument(resStream, true); EasyMock.expect(fa.getDC(pid)).andReturn(document).anyTimes(); } - public static void mods(FedoraAccess fa, String pid) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void mods(RepositoryAccess fa, String pid) throws LexerException, ParserConfigurationException, SAXException, IOException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/cz/incad/kramerius/fedora/res/"+pidParser.getObjectId()+".mods.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); Document document = XMLUtils.parseDocument(resStream, true); EasyMock.expect(fa.getBiblioMods(pid)).andReturn(document).anyTimes(); } - public static void dataStreams(FedoraAccess fa, String pid) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void dataStreams(RepositoryAccess fa, String pid) throws IOException, ParserConfigurationException, SAXException, LexerException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/cz/incad/kramerius/fedora/res/"+pidParser.getObjectId()+".datastreams.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getFedoraDataStreamsList(pid)).andReturn(resStream); } diff --git a/search-index/src/main/java/cz/kramerius/adapters/RepositoryAccess.java b/search-index/src/main/java/cz/kramerius/adapters/RepositoryAccess.java index 5119e28391..c31049366e 100644 --- a/search-index/src/main/java/cz/kramerius/adapters/RepositoryAccess.java +++ b/search-index/src/main/java/cz/kramerius/adapters/RepositoryAccess.java @@ -11,10 +11,10 @@ * Společně s abstraktní implementací implementující dummy metodami vše * tak mohou implementace cz.kramerius.adapters.FedoraAccess používat jen vybrané metody z minulosti, přítomnosti a budoucnosti. * - * @see cz.incad.kramerius.FedoraAccess + * @see cz.incad.kramerius.RepositoryAccess * @see RepositoryAccessImplAbstract */ -public interface RepositoryAccess extends cz.incad.kramerius.FedoraAccess { +public interface RepositoryAccess extends cz.incad.kramerius.RepositoryAccess { public InputStream getFoxml(String pid) throws IOException; diff --git a/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNewApi/ProcessingIndexImplByKrameriusNewApis.java b/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNewApi/ProcessingIndexImplByKrameriusNewApis.java index 1c52811755..45f8ad3f91 100644 --- a/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNewApi/ProcessingIndexImplByKrameriusNewApis.java +++ b/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNewApi/ProcessingIndexImplByKrameriusNewApis.java @@ -6,17 +6,12 @@ import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.repository.ExtractStructureHelper; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; import cz.incad.kramerius.resourceindex.ResourceIndexException; import cz.kramerius.shared.IoUtils; import cz.kramerius.adapters.impl.ProcessingIndexImplAbstract; import cz.kramerius.shared.Pair; import java.io.IOException; -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URL; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNoApi/RepositoryAccessImplByKrameriusDirect.java b/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNoApi/RepositoryAccessImplByKrameriusDirect.java index 2442a55fca..abc4a389ac 100644 --- a/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNoApi/RepositoryAccessImplByKrameriusDirect.java +++ b/search-index/src/main/java/cz/kramerius/adapters/impl/krameriusNoApi/RepositoryAccessImplByKrameriusDirect.java @@ -1,6 +1,6 @@ package cz.kramerius.adapters.impl.krameriusNoApi; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.kramerius.adapters.impl.RepositoryAccessImplAbstract; import java.io.IOException; @@ -14,9 +14,9 @@ public class RepositoryAccessImplByKrameriusDirect extends RepositoryAccessImplA //@Inject //@Named("rawFedoraAccess") //@Named("securedFedoraAccess") - private final FedoraAccess fedoraAccess; + private final RepositoryAccess fedoraAccess; - public RepositoryAccessImplByKrameriusDirect(FedoraAccess fedoraAccess) { + public RepositoryAccessImplByKrameriusDirect(RepositoryAccess fedoraAccess) { this.fedoraAccess = fedoraAccess; } diff --git a/search-index/src/main/java/cz/kramerius/searchIndex/Main.java b/search-index/src/main/java/cz/kramerius/searchIndex/Main.java index c3f49ac19d..abb1720da0 100644 --- a/search-index/src/main/java/cz/kramerius/searchIndex/Main.java +++ b/search-index/src/main/java/cz/kramerius/searchIndex/Main.java @@ -7,8 +7,6 @@ import com.google.inject.Key; import cz.incad.kramerius.fedora.RepoModule; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; diff --git a/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexModel.java b/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexModel.java index 903d7f1790..f0d7b9dfc9 100644 --- a/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexModel.java +++ b/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexModel.java @@ -10,10 +10,6 @@ import cz.incad.kramerius.processes.States; import cz.incad.kramerius.processes.starter.ProcessStarter; import cz.incad.kramerius.processes.utils.ProcessUtils; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; -import cz.incad.kramerius.repository.RepositoryApi; -import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; @@ -116,7 +112,7 @@ public static void main(String[] args) throws IOException, SolrServerException, //Injector injector = Guice.createInjector(new SearchIndexModule(), new NullStatisticsModule(), new SolrModule(), new RepoModule()); - cz.incad.kramerius.FedoraAccess rawRepository = injector.getInstance(Key.get(cz.incad.kramerius.FedoraAccess.class, Names.named("rawFedoraAccess"))); + cz.incad.kramerius.RepositoryAccess rawRepository = injector.getInstance(Key.get(cz.incad.kramerius.RepositoryAccess.class, Names.named("rawFedoraAccess"))); RepositoryAccess repository = new RepositoryAccessImplByKrameriusDirect(rawRepository); //access to processing index through new public APIs diff --git a/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexObject.java b/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexObject.java index 56041361ac..fd7e94b93d 100644 --- a/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexObject.java +++ b/search-index/src/main/java/cz/kramerius/searchIndex/NewIndexerProcessIndexObject.java @@ -7,9 +7,6 @@ import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.processes.starter.ProcessStarter; import cz.incad.kramerius.processes.utils.ProcessUtils; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; -import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; @@ -111,11 +108,11 @@ public static void main(String[] args) throws IOException { //access to repository through java directly (injected cz.incad.kramerius.FedoraAccess) Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule(), new ResourceIndexModule()); - cz.incad.kramerius.FedoraAccess rawRepositoryAccess = injector.getInstance(Key.get(cz.incad.kramerius.FedoraAccess.class, Names.named("rawFedoraAccess"))); + cz.incad.kramerius.RepositoryAccess rawRepositoryAccess = injector.getInstance(Key.get(cz.incad.kramerius.RepositoryAccess.class, Names.named("rawFedoraAccess"))); //FedoraAccess repository = new RepositoryAccessImplByKrameriusDirect(rawRepositoryAccess); //Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - cz.incad.kramerius.FedoraAccess rawRepository = injector.getInstance(Key.get(cz.incad.kramerius.FedoraAccess.class, Names.named("rawFedoraAccess"))); + cz.incad.kramerius.RepositoryAccess rawRepository = injector.getInstance(Key.get(cz.incad.kramerius.RepositoryAccess.class, Names.named("rawFedoraAccess"))); RepositoryAccess repository = new RepositoryAccessImplByKrameriusDirect(rawRepository); KrameriusRepositoryApi krameriusApiRepository = injector.getInstance(Key.get(KrameriusRepositoryApiImpl.class)); diff --git a/search-index/src/main/java/cz/kramerius/searchIndex/SearchIndexModule.java b/search-index/src/main/java/cz/kramerius/searchIndex/SearchIndexModule.java index a34c22aaa7..ea333590b6 100644 --- a/search-index/src/main/java/cz/kramerius/searchIndex/SearchIndexModule.java +++ b/search-index/src/main/java/cz/kramerius/searchIndex/SearchIndexModule.java @@ -3,9 +3,9 @@ import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.impl.SolrAccessImplNewIndex; public class SearchIndexModule extends AbstractModule { @@ -13,6 +13,6 @@ public class SearchIndexModule extends AbstractModule { @Override protected void configure() { bind(SolrAccess.class).annotatedWith(Names.named("new-index")).to(SolrAccessImplNewIndex.class).in(Scopes.SINGLETON); - bind(FedoraAccess.class).annotatedWith(Names.named("rawFedoraAccess")).to(FedoraAccessAkubraImpl.class).in(Scopes.SINGLETON); + bind(RepositoryAccess.class).annotatedWith(Names.named("rawFedoraAccess")).to(RepositoryAccessImpl.class).in(Scopes.SINGLETON); } } diff --git a/search/src/java/cz/incad/Kramerius/AbstractImageServlet.java b/search/src/java/cz/incad/Kramerius/AbstractImageServlet.java index 2841f0a937..4acc5476ce 100644 --- a/search/src/java/cz/incad/Kramerius/AbstractImageServlet.java +++ b/search/src/java/cz/incad/Kramerius/AbstractImageServlet.java @@ -1,12 +1,10 @@ package cz.incad.Kramerius; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.FedoraNamespaces; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.imaging.utils.ImageUtils; import cz.incad.kramerius.security.SecurityException; import cz.incad.kramerius.utils.FedoraUtils; -import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.imgs.ImageMimeType; import cz.incad.kramerius.utils.imgs.KrameriusImageSupport; @@ -15,18 +13,9 @@ import org.antlr.stringtemplate.StringTemplateGroup; import org.antlr.stringtemplate.language.DefaultTemplateLexer; import org.apache.hc.client5.http.async.methods.AbstractBinResponseConsumer; -import org.apache.hc.client5.http.async.methods.SimpleHttpResponse; -import org.apache.hc.client5.http.classic.methods.HttpUriRequest; -import org.apache.hc.core5.concurrent.FutureCallback; import org.apache.hc.core5.http.*; -import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder; -import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.nio.AsyncRequestProducer; -import org.apache.hc.core5.http.nio.AsyncResponseConsumer; -import org.apache.hc.core5.http.nio.entity.StringAsyncEntityConsumer; import org.apache.hc.core5.http.nio.support.AsyncRequestBuilder; -import org.apache.hc.core5.http.protocol.HttpContext; -import org.apache.hc.core5.http.impl.bootstrap.HttpAsyncRequester; import org.apache.hc.client5.http.async.HttpAsyncClient; import javax.inject.Inject; @@ -49,7 +38,6 @@ import java.nio.channels.WritableByteChannel; import java.sql.SQLException; import java.text.DateFormat; -import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -59,7 +47,6 @@ import java.util.logging.Level; import cz.incad.kramerius.utils.*; -import org.apache.http.nio.IOControl; public abstract class AbstractImageServlet extends GuiceServlet { @@ -89,7 +76,7 @@ public abstract class AbstractImageServlet extends GuiceServlet { @Inject @Named("securedFedoraAccess") - protected transient FedoraAccess fedoraAccess; + protected transient RepositoryAccess fedoraAccess; @Inject protected transient HttpAsyncClient client; @@ -202,11 +189,11 @@ protected void setResponseCode(String pid, String streamName, } } - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return fedoraAccess; } - public void setFedoraAccess(FedoraAccess fedoraAccess) { + public void setFedoraAccess(RepositoryAccess fedoraAccess) { this.fedoraAccess = fedoraAccess; } @@ -301,7 +288,7 @@ public static StringTemplateGroup stGroup() { public static void setStringTemplateModel(String uuid, String dataStreamPath, StringTemplate template, - FedoraAccess fedoraAccess) throws UnsupportedEncodingException, + RepositoryAccess fedoraAccess) throws UnsupportedEncodingException, IOException { List folderList = new ArrayList(); diff --git a/search/src/java/cz/incad/Kramerius/ActionAllowedServlet.java b/search/src/java/cz/incad/Kramerius/ActionAllowedServlet.java index 2bd35d79a5..ddcd78b7b6 100644 --- a/search/src/java/cz/incad/Kramerius/ActionAllowedServlet.java +++ b/search/src/java/cz/incad/Kramerius/ActionAllowedServlet.java @@ -23,7 +23,7 @@ import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.security.RightsResolver; @@ -37,7 +37,7 @@ public class ActionAllowedServlet extends GuiceServlet { public static final java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(MimeTypeServlet.class.getName()); @Inject @Named("rawFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject SolrAccess solrAccess; @Inject diff --git a/search/src/java/cz/incad/Kramerius/FeedbackServlet.java b/search/src/java/cz/incad/Kramerius/FeedbackServlet.java index fb6d29676e..f2b6e0a90e 100644 --- a/search/src/java/cz/incad/Kramerius/FeedbackServlet.java +++ b/search/src/java/cz/incad/Kramerius/FeedbackServlet.java @@ -11,7 +11,7 @@ import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.security.SecurityException; import cz.incad.kramerius.service.Mailer; import cz.incad.kramerius.service.ResourceBundleService; @@ -39,7 +39,7 @@ public class FeedbackServlet extends GuiceServlet { @Inject @Named("rawFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); diff --git a/search/src/java/cz/incad/Kramerius/GeneratePDFServlet.java b/search/src/java/cz/incad/Kramerius/GeneratePDFServlet.java index 50fb891d2b..e8b18c01c8 100644 --- a/search/src/java/cz/incad/Kramerius/GeneratePDFServlet.java +++ b/search/src/java/cz/incad/Kramerius/GeneratePDFServlet.java @@ -31,7 +31,7 @@ import com.lowagie.text.DocumentException; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.SolrAccess; @@ -78,7 +78,7 @@ public class GeneratePDFServlet extends GuiceServlet { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); diff --git a/search/src/java/cz/incad/Kramerius/GetFirstPageThumb.java b/search/src/java/cz/incad/Kramerius/GetFirstPageThumb.java index f7aa053e7a..4647216001 100644 --- a/search/src/java/cz/incad/Kramerius/GetFirstPageThumb.java +++ b/search/src/java/cz/incad/Kramerius/GetFirstPageThumb.java @@ -5,25 +5,14 @@ package cz.incad.Kramerius; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.incad.utils.IKeys; -import java.io.IOException; -import java.io.PrintWriter; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import cz.incad.kramerius.RepositoryAccess; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; @@ -34,7 +23,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; import com.google.inject.Inject; import com.google.inject.name.Named; @@ -49,7 +37,7 @@ public class GetFirstPageThumb extends GuiceServlet { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; /** * Processes requests for both HTTP GET and POST methods. @@ -134,11 +122,11 @@ public String getServletInfo() { }// - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return fedoraAccess; } - public void setFedoraAccess(FedoraAccess fedoraAccess) { + public void setFedoraAccess(RepositoryAccess fedoraAccess) { this.fedoraAccess = fedoraAccess; } diff --git a/search/src/java/cz/incad/Kramerius/MimeTypeServlet.java b/search/src/java/cz/incad/Kramerius/MimeTypeServlet.java index 7d852aea87..e0efc63f98 100644 --- a/search/src/java/cz/incad/Kramerius/MimeTypeServlet.java +++ b/search/src/java/cz/incad/Kramerius/MimeTypeServlet.java @@ -7,7 +7,6 @@ import java.util.logging.Level; import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.xpath.XPathExpressionException; @@ -16,7 +15,7 @@ import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; public class MimeTypeServlet extends GuiceServlet { @@ -25,7 +24,7 @@ public class MimeTypeServlet extends GuiceServlet { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { diff --git a/search/src/java/cz/incad/Kramerius/PrintQueue.java b/search/src/java/cz/incad/Kramerius/PrintQueue.java index a3c5e4cae6..7343b50d66 100644 --- a/search/src/java/cz/incad/Kramerius/PrintQueue.java +++ b/search/src/java/cz/incad/Kramerius/PrintQueue.java @@ -17,21 +17,13 @@ package cz.incad.Kramerius; import java.awt.print.PrinterException; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.StringReader; import java.net.MalformedURLException; import java.util.List; import java.util.logging.Level; -import javax.print.Doc; -import javax.print.DocFlavor; -import javax.print.DocPrintJob; import javax.print.PrintException; -import javax.print.PrintService; -import javax.print.PrintServiceLookup; -import javax.print.SimpleDoc; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -43,9 +35,8 @@ import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ProcessSubtreeException; -import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.printing.PrintingService; import cz.incad.kramerius.utils.ApplicationURL; import cz.incad.kramerius.utils.conf.KConfiguration; @@ -65,7 +56,7 @@ public class PrintQueue extends GuiceServlet { @Inject @Named("securedFedoraAccess") - protected FedoraAccess fedoraAccess; + protected RepositoryAccess fedoraAccess; protected KConfiguration configuration = KConfiguration.getInstance(); // @Inject diff --git a/search/src/java/cz/incad/Kramerius/PrivateContentsServlet.java b/search/src/java/cz/incad/Kramerius/PrivateContentsServlet.java index da7499a567..1556e4ef1a 100644 --- a/search/src/java/cz/incad/Kramerius/PrivateContentsServlet.java +++ b/search/src/java/cz/incad/Kramerius/PrivateContentsServlet.java @@ -17,13 +17,13 @@ import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; public class PrivateContentsServlet extends GuiceServlet { @Inject @Named("securedFedoraAccess") - transient FedoraAccess fedoraAccess; + transient RepositoryAccess fedoraAccess; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { diff --git a/search/src/java/cz/incad/Kramerius/ProfilesServlet.java b/search/src/java/cz/incad/Kramerius/ProfilesServlet.java index d961163333..ca0c8a6199 100644 --- a/search/src/java/cz/incad/Kramerius/ProfilesServlet.java +++ b/search/src/java/cz/incad/Kramerius/ProfilesServlet.java @@ -35,7 +35,7 @@ import cz.incad.Kramerius.backend.guice.GuiceServlet; import cz.incad.Kramerius.users.ProfilePrepareUtils; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.security.User; import cz.incad.kramerius.users.UserProfile; import cz.incad.kramerius.users.UserProfileManager; @@ -47,7 +47,7 @@ public class ProfilesServlet extends GuiceServlet { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); diff --git a/search/src/java/cz/incad/Kramerius/ProxyDatastreamsServlet.java b/search/src/java/cz/incad/Kramerius/ProxyDatastreamsServlet.java index 8a41e9c24a..9ba6f86b48 100644 --- a/search/src/java/cz/incad/Kramerius/ProxyDatastreamsServlet.java +++ b/search/src/java/cz/incad/Kramerius/ProxyDatastreamsServlet.java @@ -3,7 +3,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import org.apache.commons.io.IOUtils; import javax.servlet.ServletException; @@ -23,7 +23,7 @@ public class ProxyDatastreamsServlet extends GuiceServlet { @Inject @Named("securedFedoraAccess") - private transient FedoraAccess fedoraAccess; + private transient RepositoryAccess fedoraAccess; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { diff --git a/search/src/java/cz/incad/Kramerius/SmallThumbnailImageServlet.java b/search/src/java/cz/incad/Kramerius/SmallThumbnailImageServlet.java index cf6ecb3cca..9ecd0bf092 100644 --- a/search/src/java/cz/incad/Kramerius/SmallThumbnailImageServlet.java +++ b/search/src/java/cz/incad/Kramerius/SmallThumbnailImageServlet.java @@ -1,6 +1,6 @@ package cz.incad.Kramerius; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.intconfig.InternalConfiguration; import cz.incad.kramerius.security.SecurityException; import cz.incad.kramerius.utils.ApplicationURL; @@ -91,11 +91,11 @@ public void rawContent(HttpServletRequest req, HttpServletResponse resp, String IOUtils.copy(is, resp.getOutputStream()); } - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return fedoraAccess; } - public void setFedoraAccess(FedoraAccess fedoraAccess) { + public void setFedoraAccess(RepositoryAccess fedoraAccess) { this.fedoraAccess = fedoraAccess; } diff --git a/search/src/java/cz/incad/Kramerius/audio/servlet/AudioTracksServlet.java b/search/src/java/cz/incad/Kramerius/audio/servlet/AudioTracksServlet.java index c357a726b9..b5124e8698 100644 --- a/search/src/java/cz/incad/Kramerius/audio/servlet/AudioTracksServlet.java +++ b/search/src/java/cz/incad/Kramerius/audio/servlet/AudioTracksServlet.java @@ -21,7 +21,7 @@ import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.audio.XpathEvaluator; import cz.incad.kramerius.service.ResourceBundleService; import cz.incad.kramerius.service.TextsService; @@ -58,7 +58,7 @@ public class AudioTracksServlet extends GuiceServlet { Provider localeProvider; @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; private XPathExpression rdfModel; private XPathExpression rdfHasTracks; private XPathExpression rdfContainsTracks; diff --git a/search/src/java/cz/incad/Kramerius/backend/guice/BaseModule.java b/search/src/java/cz/incad/Kramerius/backend/guice/BaseModule.java index d66e8e748a..1ed248920b 100644 --- a/search/src/java/cz/incad/Kramerius/backend/guice/BaseModule.java +++ b/search/src/java/cz/incad/Kramerius/backend/guice/BaseModule.java @@ -8,7 +8,7 @@ import com.google.inject.name.Names; import cz.incad.kramerius.Constants; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.MostDesirable; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.audio.CacheLifeCycleHook; @@ -32,13 +32,9 @@ import cz.incad.kramerius.service.impl.METSServiceImpl; import cz.incad.kramerius.statistics.StatisticReport; import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.statistics.accesslogs.database.DatabaseStatisticsAccessLogImpl; import cz.incad.kramerius.statistics.accesslogs.dnnt.DNNTStatisticsAccessLogImpl; import cz.incad.kramerius.statistics.accesslogs.solr.SolrStatisticsAccessLogImpl; import cz.incad.kramerius.statistics.impl.*; -import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.incad.kramerius.virtualcollections.Collection; -import cz.incad.kramerius.virtualcollections.CollectionsManager; import org.apache.hc.client5.http.async.HttpAsyncClient; import org.ehcache.CacheManager; @@ -55,8 +51,8 @@ public class BaseModule extends AbstractModule { @Override protected void configure() { - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).to(SecuredFedoraAccessImpl.class).in(Scopes.SINGLETON); - bind(FedoraAccess.class).annotatedWith(Names.named("cachedFedoraAccess")).to(CachedFedoraAccessImpl.class).in(Scopes.SINGLETON); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).to(SecuredFedoraAccessImpl.class).in(Scopes.SINGLETON); + bind(RepositoryAccess.class).annotatedWith(Names.named("cachedFedoraAccess")).to(CachedFedoraAccessImpl.class).in(Scopes.SINGLETON); diff --git a/search/src/java/cz/incad/Kramerius/imaging/IiifServlet.java b/search/src/java/cz/incad/Kramerius/imaging/IiifServlet.java index fed5ab82e3..bd57c90cdb 100644 --- a/search/src/java/cz/incad/Kramerius/imaging/IiifServlet.java +++ b/search/src/java/cz/incad/Kramerius/imaging/IiifServlet.java @@ -4,14 +4,13 @@ import com.google.inject.Provider; import com.google.inject.name.Named; import cz.incad.Kramerius.AbstractImageServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.rest.utils.IIIFUtils; import cz.incad.kramerius.security.RightsResolver; import cz.incad.kramerius.security.SecuredActions; import cz.incad.kramerius.security.User; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.RESTHelper; @@ -49,7 +48,7 @@ public class IiifServlet extends AbstractImageServlet { @Inject @Named("cachedFedoraAccess") - private transient FedoraAccess fedoraAccess; + private transient RepositoryAccess fedoraAccess; // @Inject diff --git a/search/src/java/cz/incad/Kramerius/imaging/ImageStreamsServlet.java b/search/src/java/cz/incad/Kramerius/imaging/ImageStreamsServlet.java index 07238882b0..fce34ad27a 100644 --- a/search/src/java/cz/incad/Kramerius/imaging/ImageStreamsServlet.java +++ b/search/src/java/cz/incad/Kramerius/imaging/ImageStreamsServlet.java @@ -35,7 +35,7 @@ import cz.incad.Kramerius.AbstractImageServlet; import cz.incad.Kramerius.imaging.utils.FileNameUtils; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraIOException; import cz.incad.kramerius.security.SecurityException; import cz.incad.kramerius.utils.FedoraUtils; @@ -221,7 +221,7 @@ enum Actions { */ TRANSCODE { @Override - void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse resp) + void doPerform(ImageStreamsServlet imageStreamsServlet, RepositoryAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse resp) throws IOException, SecurityException, XPathExpressionException { OutputFormats outputFormat = OutputFormats.JPEG; String outputFormatParam = req.getParameter(OUTPUT_FORMAT_PARAMETER); @@ -242,7 +242,7 @@ void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAcces */ SCALE { @Override - void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse resp) + void doPerform(ImageStreamsServlet imageStreamsServlet, RepositoryAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse resp) throws IOException, SecurityException, XPathExpressionException { BufferedImage image = imageStreamsServlet.rawImage(pid, stream, req, page); if (image != null) { @@ -263,7 +263,7 @@ void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAcces */ GETRAW { @Override - void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse resp) + void doPerform(ImageStreamsServlet imageStreamsServlet, RepositoryAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse resp) throws IOException, SecurityException, XPathExpressionException { InputStream is = null; if (stream.equals(FedoraUtils.IMG_THUMB_STREAM)) { @@ -306,7 +306,7 @@ void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAcces } }; - abstract void doPerform(ImageStreamsServlet imageStreamsServlet, FedoraAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse response) + abstract void doPerform(ImageStreamsServlet imageStreamsServlet, RepositoryAccess fedoraAccess, String pid, String stream, int page, HttpServletRequest req, HttpServletResponse response) throws IOException, SecurityException, XPathExpressionException; } diff --git a/search/src/java/cz/incad/Kramerius/imaging/PrintPDFServlet.java b/search/src/java/cz/incad/Kramerius/imaging/PrintPDFServlet.java index 9caa38f125..1934ea9cf6 100644 --- a/search/src/java/cz/incad/Kramerius/imaging/PrintPDFServlet.java +++ b/search/src/java/cz/incad/Kramerius/imaging/PrintPDFServlet.java @@ -31,7 +31,7 @@ import com.lowagie.text.pdf.PdfWriter; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.imaging.ImageStreams; @@ -39,7 +39,6 @@ import cz.incad.kramerius.security.SecuredActions; import cz.incad.kramerius.security.User; import cz.incad.kramerius.statistics.ReportedAction; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.StringUtils; @@ -71,7 +70,7 @@ public Rectangle getRect() { public static enum ImageOP { CUT { @Override - protected void imageData(FedoraAccess fa,String pid, HttpServletRequest req, OutputStream os) throws IOException{ + protected void imageData(RepositoryAccess fa, String pid, HttpServletRequest req, OutputStream os) throws IOException{ try { pid = fa.findFirstViewablePid(pid); BufferedImage bufferedImage = KrameriusImageSupport.readImage(pid, ImageStreams.IMG_FULL.getStreamName(), fa, 0); @@ -87,7 +86,7 @@ protected void imageData(FedoraAccess fa,String pid, HttpServletRequest req, Out FULL { @Override - protected void imageData(FedoraAccess fa,String pid, HttpServletRequest req, OutputStream os) throws IOException { + protected void imageData(RepositoryAccess fa, String pid, HttpServletRequest req, OutputStream os) throws IOException { try { pid = fa.findFirstViewablePid(pid); String mimeTypeForStream = fa.getMimeTypeForStream(pid, ImageStreams.IMG_FULL.getStreamName()); @@ -104,13 +103,13 @@ protected void imageData(FedoraAccess fa,String pid, HttpServletRequest req, Out } }; - protected abstract void imageData(FedoraAccess fa, String pid,HttpServletRequest req, OutputStream os) throws IOException ; + protected abstract void imageData(RepositoryAccess fa, String pid, HttpServletRequest req, OutputStream os) throws IOException ; } @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject @Named("new-index") diff --git a/search/src/java/cz/incad/Kramerius/imaging/ZoomifyServlet.java b/search/src/java/cz/incad/Kramerius/imaging/ZoomifyServlet.java index 2bc3534b2f..91bc34c76f 100644 --- a/search/src/java/cz/incad/Kramerius/imaging/ZoomifyServlet.java +++ b/search/src/java/cz/incad/Kramerius/imaging/ZoomifyServlet.java @@ -39,7 +39,6 @@ import javax.xml.xpath.XPathExpressionException; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; import org.antlr.stringtemplate.StringTemplate; import org.w3c.dom.Document; @@ -59,7 +58,6 @@ import cz.incad.kramerius.security.RightsResolver; import cz.incad.kramerius.security.SecuredActions; import cz.incad.kramerius.security.User; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.utils.FedoraUtils; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.RelsExtHelper; diff --git a/search/src/java/cz/incad/Kramerius/oai/DrKrameriusV4Writer.java b/search/src/java/cz/incad/Kramerius/oai/DrKrameriusV4Writer.java index 3b8af0b92f..c14e7f6009 100644 --- a/search/src/java/cz/incad/Kramerius/oai/DrKrameriusV4Writer.java +++ b/search/src/java/cz/incad/Kramerius/oai/DrKrameriusV4Writer.java @@ -17,7 +17,7 @@ package cz.incad.Kramerius.oai; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.KrameriusModels; import cz.incad.kramerius.relation.Relation; import cz.incad.kramerius.relation.RelationModel; @@ -66,7 +66,7 @@ public class DrKrameriusV4Writer implements OaiWriter { private final XMLEventFactory eventFactory; private final XMLInputFactory inFactory; private final RelationService relService; - private final FedoraAccess fedora; + private final RepositoryAccess fedora; private final Set topLevelRelations; private ExclusiveBuffer buffer; private final String pid; @@ -74,7 +74,7 @@ public class DrKrameriusV4Writer implements OaiWriter { public DrKrameriusV4Writer(String pid, XMLOutputFactory outFactory, XMLEventFactory eventFactory, - XMLInputFactory inFactory, RelationService relService, FedoraAccess fedora, + XMLInputFactory inFactory, RelationService relService, RepositoryAccess fedora, Set topLevelRelations) { this.pid = pid; this.outFactory = outFactory; diff --git a/search/src/java/cz/incad/Kramerius/oai/OaiServlet.java b/search/src/java/cz/incad/Kramerius/oai/OaiServlet.java index 098aa685ae..85263e0cba 100644 --- a/search/src/java/cz/incad/Kramerius/oai/OaiServlet.java +++ b/search/src/java/cz/incad/Kramerius/oai/OaiServlet.java @@ -20,7 +20,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import cz.incad.Kramerius.backend.guice.GuiceServlet; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.KrameriusModels; import cz.incad.kramerius.relation.Relation; import cz.incad.kramerius.relation.RelationModel; @@ -84,7 +84,7 @@ private enum Format { RelationService relService; @Inject @Named("rawFedoraAccess") - FedoraAccess fedora; + RepositoryAccess fedora; private XMLOutputFactory outFactory; private XMLEventFactory eventFactory; private XMLInputFactory inFactory; diff --git a/search/src/java/cz/incad/Kramerius/security/ServletCommand.java b/search/src/java/cz/incad/Kramerius/security/ServletCommand.java index 1fb673274e..e739fb584f 100644 --- a/search/src/java/cz/incad/Kramerius/security/ServletCommand.java +++ b/search/src/java/cz/incad/Kramerius/security/ServletCommand.java @@ -34,7 +34,7 @@ import com.google.inject.Provider; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectModelsPath; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; @@ -78,7 +78,7 @@ public abstract class ServletCommand { @Inject @Named("securedFedoraAccess") - protected FedoraAccess fedoraAccess; + protected RepositoryAccess fedoraAccess; @Inject protected UserManager userManager; diff --git a/search/src/java/cz/incad/utils/XslHelper.java b/search/src/java/cz/incad/utils/XslHelper.java index 7f3153849a..2e897eb231 100644 --- a/search/src/java/cz/incad/utils/XslHelper.java +++ b/search/src/java/cz/incad/utils/XslHelper.java @@ -2,7 +2,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.utils.FedoraUtils; import java.io.IOException; @@ -18,7 +18,7 @@ public class XslHelper { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject public boolean contains(String content, String query) { diff --git a/shared/common/src/main/java/cz/incad/kramerius/FedoraAccess.java b/shared/common/src/main/java/cz/incad/kramerius/FedoraAccess.java deleted file mode 100644 index c5b4fc6dd0..0000000000 --- a/shared/common/src/main/java/cz/incad/kramerius/FedoraAccess.java +++ /dev/null @@ -1,504 +0,0 @@ -/* - * Copyright (C) 2012 Pavel Stastny - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package cz.incad.kramerius; - -import cz.incad.kramerius.fedora.om.AkubraRepository; -import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.security.SecuredFedoraAccessImpl; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import javax.xml.xpath.XPathExpressionException; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * This is main point to access to fedora through REST-API - * - * @see SecuredFedoraAccessImpl - * @author pavels - * - */ -public interface FedoraAccess { - - - /** - * Returns parsed RELS-EXT - * - * @param pid Object pid - * @return parsed RELS-EXT - * @throws IOException IO error has been occurred - */ - public Document getRelsExt(String pid) throws IOException; - - /** - * Returns model's name of given object relsext - * - * @param relsExt parsed RELS-EXT stream - * @return model's name - * @throws IOException IO error has been occurred - */ - public String getKrameriusModelName(Document relsExt) throws IOException; - - /** - * Returns model's name of given pid - * - * @param pid Object's pid - * @return model's name - * @throws IOException IO error has been occurred - */ - public String getKrameriusModelName(String pid) throws IOException; - - /** - * Returns models parsed from given document - * - * @param relsExt RELS-EXT document - * @return models from RELS-EXt - */ - public List getModelsOfRel(Document relsExt); - - /** - * Returns models of given object - * - * @param pid Object's pid - * @return modelsget - * @throws IOException IO error has been occurred - */ - public List getModelsOfRel(String pid) throws IOException; - - /** - * Returns Donator parsed from given document - * - * @param relsExt RELS-EXT document - * @return donator or empty string (if hasDonator relationship doesn't - * exist) - */ - public String getDonator(Document relsExt); - - /** - * Returns Donator of given object - * - * @param pid Object's pid - * @return donator or empty string (if hasDonator relationship doesn't - * exist) - * @throws IOException IO error has been occurred - */ - public String getDonator(String pid) throws IOException; - - /** - * Returns pid of the first periodical Item parsed from given document - * * - * @param relsExt RELS-EXT document - * @return pid of the first periodical Item or empty string (if hasItem relationship doesn't - * exist) - * @throws IOException IO error has been occurred - */ - public String getFirstItemPid(Document relsExt) throws IOException; - - /** - * Returns pid of the first periodical Item of given object - * - * @param pid Object's pid = pid of volume - * @return pid of the first periodical Item or empty string (if hasItem relationship doesn't - * exist) - * @throws IOException IO error has been occurred - */ - public String getFirstItemPid(String pid) throws IOException; - - /** - * Returns pid of the first periodical Volume parsed from given document - * * - * @param relsExt RELS-EXT document - * @return pid of the first periodical Volume or empty string (if hasVolume relationship doesn't - * exist) - * @throws IOException IO error has been occurred - */ - public String getFirstVolumePid(Document relsExt) throws IOException; - - /** - * Returns pid of the first periodical Volume of given object - * - * @param pid Object's pid = pid of periodical - * @return pid of the first periodical Volume or empty string (if hasVolume relationship doesn't - * exist) - * @throws IOException IO error has been occurred - */ - public String getFirstVolumePid(String pid) throws IOException; - - /** - * Return parsed biblio mods stream - * - * @param pid Object's pid - * @return return biblio mods stream - * @throws IOException IO erro has been occurred - */ - public Document getBiblioMods(String pid) throws IOException; - - /** - * Returns DC stream - * - * @param pid Object's pid - * @return parsed DC stream - * @throws IOException IO erro has been occurred - */ - public Document getDC(String pid) throws IOException; - - /** - * Returns pid of first document through rels-ext, which has IMG_FULL - * datastream - * - * @param pid Object's pid - * @return first page pid - * @throws IOException IO error has been occurred - */ - public String findFirstViewablePid(String pid) throws IOException; - - /** - * Fill path of pids and models up to first document throw rels-ext, which - * has IMG_FULL datastream - * - * @param pids xxx - * @param models xxx - * @return true to stop recursion - * @throws IOException IO error has been occurred - */ - @Deprecated - public boolean getFirstViewablePath(List pids, List models) throws IOException; - - /** - * Parse, find and returns all pages - * - * @param pid Object's pid - * @param deep if should go into deep - * @return all pages - * @throws IOException IO error has been occurred - */ - @Deprecated - public List getPages(String pid, boolean deep) throws IOException; - - /** - * Find and returns all pages - * - * @param pid pid of object - * @param rootElementOfRelsExt Root element of RelsExt - * @return all pages - * @throws IOException IO error has been occurred - */ - @Deprecated - public List getPages(String pid, Element rootElementOfRelsExt) throws IOException; - - /** - * Returns input stream of thumbnail - * - * @param pid Object's pid - * @return IMG_THUMBs stream - * @throws IOException IO error has been occurred - */ - public InputStream getSmallThumbnail(String pid) throws IOException; - - /** - * Returns profile for thumbnail - * - * @param pid PID of requested object - * @return parsed profile - * @throws IOException IO error has been occurred - */ - Document getSmallThumbnailProfile(String pid) throws IOException; - - /** - * Returns mime type of mime type - * - * @param pid PID of requested object - * @return mime type - * @throws IOException IO error has been occurred - * @throws XPathExpressionException Error during xpath evaluation has been - * occurred - */ - public String getSmallThumbnailMimeType(String pid) throws IOException, XPathExpressionException; - - /** - * Tests whether IMG_PREVIEW is available - * - * @param pid PID of reqested object - * @return true if IMG_PREVIEW is available - * @throws IOException IO error has been occurred - */ - public boolean isFullthumbnailAvailable(String pid) throws IOException; - - /** - * Returns data of IMG_PREVIEW stream - * - * @param pid PID of requested object - * @return data of IMG_PREVIEW stream - * @throws IOException IO error has been occurred - */ - public InputStream getFullThumbnail(String pid) throws IOException; - - /** - * Returns mime type of requested IMG_PREVIEW - * - * @param pid PID of reqested object - * @return mimetype - * @throws IOException IO error has been occurred - * @throws XPathExpressionException Error during xpath evaluation has been - * occurred - */ - public String getFullThumbnailMimeType(String pid) throws IOException, XPathExpressionException; - - /** - * Returns data of IMG_FULL stream - * - * @param pid Requested pid - * @return IMG_FULL data - * @throws IOException IO error has been occurred - */ - public InputStream getImageFULL(String pid) throws IOException; - - /** - * TODO: Not used - * Returns IMG_FULL profile - * - * @param pid Requested pid - * @return parsed profile - * @throws IOException IO error has been occurred - */ - public Document getImageFULLProfile(String pid) throws IOException; - - /** - * Returns IMG_FULL mimetype - * - * @param pid Requested object - * @return mime type - * @throws IOException IO error has been occurred - * @throws XPathExpressionException Error during xpath evaluation has been - * occurred - */ - public String getImageFULLMimeType(String pid) throws IOException, XPathExpressionException; - - /** - * Check whether IMG_FULL is available, is present and accessible - * - * @param pid Requested object - * @return true if IMG_FULL is available - * @throws IOException IO error has been occurred - */ - public boolean isImageFULLAvailable(String pid) throws IOException; - - /** - * Check whether stream is available - * - * @param pid Requested object - * @param streamName Stream name - * @return true if stream is available - * @throws IOException IO error has been occurred - */ - public boolean isStreamAvailable(String pid, String streamName) throws IOException; - - /** - * Check if the object is available - * @param pid Pid of object - * @return true or false - object objectExists or doesn't exist - * @throws IOException - */ - public boolean isObjectAvailable(String pid) throws IOException; - - /** - * Checks whether content is acessiable - * - * @param pid Tested object - * @return true if object is accessible - * @throws IOException IO error has been occurred - */ - public boolean isContentAccessible(String pid) throws IOException; - - - public AkubraRepository getInternalAPI() throws RepositoryException; - - public AkubraRepository getTransactionAwareInternalAPI() throws RepositoryException; - - - /** - * Process fedora object tree - * - * @param pid PID of processing object - * @param processor Processing tree handler (receives callbacks) - * @throws ProcessSubtreeException Something happened during tree walking - * @throws IOException IO error has been occurred - */ - public void processSubtree(String pid, TreeNodeProcessor processor) throws ProcessSubtreeException, IOException; - - /** - * Collects and returns subtree as one set - * - * @param pid Root pid - * @return all subtree as set - * @throws IOException IO error has been occurred - */ - public List getPids(String pid) throws IOException; - - - - /** - * Returns data from datastream - * - * @param pid pid of reqested object - * @param datastreamName datastream name - * @return data - * @throws IOException IO error has been occurred - */ - public InputStream getDataStream(String pid, String datastreamName) throws IOException; - - /** - * For observe HTTP headers - * @param pid Requested pid - * @param datastreamName Data stream name - * @param streamObserver Header fileds observer - * @throws IOException - */ - public void observeStreamHeaders(String pid, String datastreamName, StreamHeadersObserver streamObserver) throws IOException; - - - /** - * Returns URL of external datastream data - * - * @param pid pid of reqested object - * @param datastreamName datastream name - * @return URL of external datastream data location - * @throws IOException IO error has been occurred - */ - public String getExternalStreamURL(String pid, String datastreamName) throws IOException; - - /** - * TODO: Not Used - * Returns xml containing datastream data - * - * @param pid pid of reqested object - * @param datastreamName datastream name - * @return datastream xml as stored in Fedora - * @throws IOException IO error has been occurred - */ - public InputStream getDataStreamXml(String pid, String datastreamName) throws IOException; - - /** - * Returns xml containing datastream data - * - * @param pid pid of reqested object - * @param datastreamName datastream name - * @return datastream xml as stored in Fedora - * @throws IOException IO error has been occurred - */ - public Document getDataStreamXmlAsDocument(String pid, String datastreamName) throws IOException; - - /** - * Returns mimeType of given datastream - * - * @param pid pid of requested object - * @param datastreamName Datastream name - * @return mimetype of datastream - * @throws IOException IO error has been occurred - */ - public String getMimeTypeForStream(String pid, String datastreamName) throws IOException; - - /** - * Returns current version of fedora - * - * @return version - * @throws IOException Cannot detect current version - */ - public String getFedoraVersion() throws IOException; - - /** - * TODO: Not used - * Returns profile for stream - * - * @param pid Requested pid - * @param stream Requested stream - * @return Parsed profile - * @throws IOException IO error has been occurred - */ - Document getStreamProfile(String pid, String stream) throws IOException; - - /** - * TODO: Not used - * Datastreams description document - * - * @param pid PID of requested object - * @return Parsed profile - * @throws IOException IO error has been occurred - */ - Document getObjectProfile(String pid) throws IOException; - - /** - * TODO: Not used - * Returns document which describes datastrem of requested pid - * - * @param pid requested pid - * @return returns list of datastreams - * @throws IOException IO error has been occurred - */ - InputStream getFedoraDataStreamsList(String pid) throws IOException; - - /** - * Returns document which describes datastrem of requested pid - * - * @param pid requested pid - * @return returns list of datastreams in document - * @throws IOException IO error has been occurred - */ - Document getFedoraDataStreamsListAsDocument(String pid) throws IOException; - - Date getStreamLastmodifiedFlag(String pid, String stream) throws IOException; - - Date getObjectLastmodifiedFlag(String pid) throws IOException; - - @Deprecated - List> getStreamsOfObject(String pid) throws IOException; - - InputStream getFoxml(String pid, boolean archive) throws IOException; - - default void shutdown(){}; - - -// private Date lastModified(String pid, String stream) throws IOException { -// Date date = null; -// Document streamProfile = fedoraAccess.getStreamProfile(pid, stream); -// -// Element elm = XMLUtils.findElement(streamProfile.getDocumentElement(), -// "dsCreateDate", -// FedoraNamespaces.FEDORA_MANAGEMENT_NAMESPACE_URI); -// if (elm != null) { -// String textContent = elm.getTextContent(); -// for (DateFormat df : XSD_DATE_FORMATS) { -// try { -// date = df.parse(textContent); -// break; -// } catch (ParseException e) { -// // -// } -// } -// } -// if (date == null) { -// date = new Date(); -// } -// return date; -// } -} diff --git a/shared/common/src/main/java/cz/incad/kramerius/RepositoryAccess.java b/shared/common/src/main/java/cz/incad/kramerius/RepositoryAccess.java new file mode 100644 index 0000000000..ad4f5ebf7a --- /dev/null +++ b/shared/common/src/main/java/cz/incad/kramerius/RepositoryAccess.java @@ -0,0 +1,1163 @@ +/* + * Copyright (C) 2012 Pavel Stastny + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cz.incad.kramerius; + +import cz.incad.kramerius.fedora.om.AkubraRepository; +import cz.incad.kramerius.fedora.om.RepositoryException; +import cz.incad.kramerius.security.SecuredFedoraAccessImpl; + +import java.io.IOException; +import java.io.InputStream; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.time.temporal.ChronoField; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.xml.xpath.XPathExpressionException; + +import cz.incad.kramerius.utils.java.Pair; +import org.apache.solr.client.solrj.SolrServerException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * This is main point to access to fedora through REST-API + * + * @see SecuredFedoraAccessImpl + * @author pavels + * + */ +public interface RepositoryAccess { + + + /** + * Returns parsed RELS-EXT + * + * @param pid Object pid + * @return parsed RELS-EXT + * @throws IOException IO error has been occurred + */ + public Document getRelsExt(String pid) throws IOException; + + /** + * Returns model's name of given object relsext + * + * @param relsExt parsed RELS-EXT stream + * @return model's name + * @throws IOException IO error has been occurred + */ + public String getKrameriusModelName(Document relsExt) throws IOException; + + /** + * Returns model's name of given pid + * + * @param pid Object's pid + * @return model's name + * @throws IOException IO error has been occurred + */ + public String getKrameriusModelName(String pid) throws IOException; + + /** + * Returns models parsed from given document + * + * @param relsExt RELS-EXT document + * @return models from RELS-EXt + */ + public List getModelsOfRel(Document relsExt); + + /** + * Returns models of given object + * + * @param pid Object's pid + * @return modelsget + * @throws IOException IO error has been occurred + */ + public List getModelsOfRel(String pid) throws IOException; + + /** + * Returns Donator parsed from given document + * + * @param relsExt RELS-EXT document + * @return donator or empty string (if hasDonator relationship doesn't + * exist) + */ + public String getDonator(Document relsExt); + + /** + * Returns Donator of given object + * + * @param pid Object's pid + * @return donator or empty string (if hasDonator relationship doesn't + * exist) + * @throws IOException IO error has been occurred + */ + public String getDonator(String pid) throws IOException; + + /** + * Returns pid of the first periodical Item parsed from given document + * * + * @param relsExt RELS-EXT document + * @return pid of the first periodical Item or empty string (if hasItem relationship doesn't + * exist) + * @throws IOException IO error has been occurred + */ + public String getFirstItemPid(Document relsExt) throws IOException; + + /** + * Returns pid of the first periodical Item of given object + * + * @param pid Object's pid = pid of volume + * @return pid of the first periodical Item or empty string (if hasItem relationship doesn't + * exist) + * @throws IOException IO error has been occurred + */ + public String getFirstItemPid(String pid) throws IOException; + + /** + * Returns pid of the first periodical Volume parsed from given document + * * + * @param relsExt RELS-EXT document + * @return pid of the first periodical Volume or empty string (if hasVolume relationship doesn't + * exist) + * @throws IOException IO error has been occurred + */ + public String getFirstVolumePid(Document relsExt) throws IOException; + + /** + * Returns pid of the first periodical Volume of given object + * + * @param pid Object's pid = pid of periodical + * @return pid of the first periodical Volume or empty string (if hasVolume relationship doesn't + * exist) + * @throws IOException IO error has been occurred + */ + public String getFirstVolumePid(String pid) throws IOException; + + /** + * Return parsed biblio mods stream + * + * @param pid Object's pid + * @return return biblio mods stream + * @throws IOException IO erro has been occurred + */ + public Document getBiblioMods(String pid) throws IOException; + + /** + * Returns DC stream + * + * @param pid Object's pid + * @return parsed DC stream + * @throws IOException IO erro has been occurred + */ + public Document getDC(String pid) throws IOException; + + /** + * Returns pid of first document through rels-ext, which has IMG_FULL + * datastream + * + * @param pid Object's pid + * @return first page pid + * @throws IOException IO error has been occurred + */ + public String findFirstViewablePid(String pid) throws IOException; + + /** + * Fill path of pids and models up to first document throw rels-ext, which + * has IMG_FULL datastream + * + * @param pids xxx + * @param models xxx + * @return true to stop recursion + * @throws IOException IO error has been occurred + */ + @Deprecated + public boolean getFirstViewablePath(List pids, List models) throws IOException; + + /** + * Parse, find and returns all pages + * + * @param pid Object's pid + * @param deep if should go into deep + * @return all pages + * @throws IOException IO error has been occurred + */ + @Deprecated + public List getPages(String pid, boolean deep) throws IOException; + + /** + * Find and returns all pages + * + * @param pid pid of object + * @param rootElementOfRelsExt Root element of RelsExt + * @return all pages + * @throws IOException IO error has been occurred + */ + @Deprecated + public List getPages(String pid, Element rootElementOfRelsExt) throws IOException; + + /** + * Returns input stream of thumbnail + * + * @param pid Object's pid + * @return IMG_THUMBs stream + * @throws IOException IO error has been occurred + */ + public InputStream getSmallThumbnail(String pid) throws IOException; + + /** + * Returns profile for thumbnail + * + * @param pid PID of requested object + * @return parsed profile + * @throws IOException IO error has been occurred + */ + Document getSmallThumbnailProfile(String pid) throws IOException; + + /** + * Returns mime type of mime type + * + * @param pid PID of requested object + * @return mime type + * @throws IOException IO error has been occurred + * @throws XPathExpressionException Error during xpath evaluation has been + * occurred + */ + public String getSmallThumbnailMimeType(String pid) throws IOException, XPathExpressionException; + + /** + * Tests whether IMG_PREVIEW is available + * + * @param pid PID of reqested object + * @return true if IMG_PREVIEW is available + * @throws IOException IO error has been occurred + */ + public boolean isFullthumbnailAvailable(String pid) throws IOException; + + /** + * Returns data of IMG_PREVIEW stream + * + * @param pid PID of requested object + * @return data of IMG_PREVIEW stream + * @throws IOException IO error has been occurred + */ + public InputStream getFullThumbnail(String pid) throws IOException; + + /** + * Returns mime type of requested IMG_PREVIEW + * + * @param pid PID of reqested object + * @return mimetype + * @throws IOException IO error has been occurred + * @throws XPathExpressionException Error during xpath evaluation has been + * occurred + */ + public String getFullThumbnailMimeType(String pid) throws IOException, XPathExpressionException; + + /** + * Returns data of IMG_FULL stream + * + * @param pid Requested pid + * @return IMG_FULL data + * @throws IOException IO error has been occurred + */ + public InputStream getImageFULL(String pid) throws IOException; + + /** + * TODO: Not used + * Returns IMG_FULL profile + * + * @param pid Requested pid + * @return parsed profile + * @throws IOException IO error has been occurred + */ + public Document getImageFULLProfile(String pid) throws IOException; + + /** + * Returns IMG_FULL mimetype + * + * @param pid Requested object + * @return mime type + * @throws IOException IO error has been occurred + * @throws XPathExpressionException Error during xpath evaluation has been + * occurred + */ + public String getImageFULLMimeType(String pid) throws IOException, XPathExpressionException; + + /** + * Check whether IMG_FULL is available, is present and accessible + * + * @param pid Requested object + * @return true if IMG_FULL is available + * @throws IOException IO error has been occurred + */ + public boolean isImageFULLAvailable(String pid) throws IOException; + + /** + * Check whether stream is available + * + * @param pid Requested object + * @param streamName Stream name + * @return true if stream is available + * @throws IOException IO error has been occurred + */ + public boolean isStreamAvailable(String pid, String streamName) throws IOException; + + /** + * Check if the object is available + * @param pid Pid of object + * @return true or false - object objectExists or doesn't exist + * @throws IOException + */ + public boolean isObjectAvailable(String pid) throws IOException; + + /** + * Checks whether content is acessiable + * + * @param pid Tested object + * @return true if object is accessible + * @throws IOException IO error has been occurred + */ + public boolean isContentAccessible(String pid) throws IOException; + + + public AkubraRepository getInternalAPI() throws RepositoryException; + + public AkubraRepository getTransactionAwareInternalAPI() throws RepositoryException; + + + /** + * Process fedora object tree + * + * @param pid PID of processing object + * @param processor Processing tree handler (receives callbacks) + * @throws ProcessSubtreeException Something happened during tree walking + * @throws IOException IO error has been occurred + */ + public void processSubtree(String pid, TreeNodeProcessor processor) throws ProcessSubtreeException, IOException; + + /** + * Collects and returns subtree as one set + * + * @param pid Root pid + * @return all subtree as set + * @throws IOException IO error has been occurred + */ + public List getPids(String pid) throws IOException; + + + + /** + * Returns data from datastream + * + * @param pid pid of reqested object + * @param datastreamName datastream name + * @return data + * @throws IOException IO error has been occurred + */ + public InputStream getDataStream(String pid, String datastreamName) throws IOException; + + /** + * For observe HTTP headers + * @param pid Requested pid + * @param datastreamName Data stream name + * @param streamObserver Header fileds observer + * @throws IOException + */ + public void observeStreamHeaders(String pid, String datastreamName, StreamHeadersObserver streamObserver) throws IOException; + + + /** + * Returns URL of external datastream data + * + * @param pid pid of reqested object + * @param datastreamName datastream name + * @return URL of external datastream data location + * @throws IOException IO error has been occurred + */ + public String getExternalStreamURL(String pid, String datastreamName) throws IOException; + + /** + * TODO: Not Used + * Returns xml containing datastream data + * + * @param pid pid of reqested object + * @param datastreamName datastream name + * @return datastream xml as stored in Fedora + * @throws IOException IO error has been occurred + */ + public InputStream getDataStreamXml(String pid, String datastreamName) throws IOException; + + /** + * Returns xml containing datastream data + * + * @param pid pid of reqested object + * @param datastreamName datastream name + * @return datastream xml as stored in Fedora + * @throws IOException IO error has been occurred + */ + public Document getDataStreamXmlAsDocument(String pid, String datastreamName) throws IOException; + + /** + * Returns mimeType of given datastream + * + * @param pid pid of requested object + * @param datastreamName Datastream name + * @return mimetype of datastream + * @throws IOException IO error has been occurred + */ + public String getMimeTypeForStream(String pid, String datastreamName) throws IOException; + + /** + * Returns current version of fedora + * + * @return version + * @throws IOException Cannot detect current version + */ + public String getFedoraVersion() throws IOException; + + /** + * TODO: Not used + * Returns profile for stream + * + * @param pid Requested pid + * @param stream Requested stream + * @return Parsed profile + * @throws IOException IO error has been occurred + */ + Document getStreamProfile(String pid, String stream) throws IOException; + + /** + * TODO: Not used + * Datastreams description document + * + * @param pid PID of requested object + * @return Parsed profile + * @throws IOException IO error has been occurred + */ + Document getObjectProfile(String pid) throws IOException; + + /** + * TODO: Not used + * Returns document which describes datastrem of requested pid + * + * @param pid requested pid + * @return returns list of datastreams + * @throws IOException IO error has been occurred + */ + InputStream getFedoraDataStreamsList(String pid) throws IOException; + + /** + * Returns document which describes datastrem of requested pid + * + * @param pid requested pid + * @return returns list of datastreams in document + * @throws IOException IO error has been occurred + */ + Document getFedoraDataStreamsListAsDocument(String pid) throws IOException; + + Date getStreamLastmodifiedFlag(String pid, String stream) throws IOException; + + Date getObjectLastmodifiedFlag(String pid) throws IOException; + + @Deprecated + List> getStreamsOfObject(String pid) throws IOException; + + InputStream getFoxml(String pid, boolean archive) throws IOException; + + default void shutdown(){}; + + +// private Date lastModified(String pid, String stream) throws IOException { +// Date date = null; +// Document streamProfile = fedoraAccess.getStreamProfile(pid, stream); +// +// Element elm = XMLUtils.findElement(streamProfile.getDocumentElement(), +// "dsCreateDate", +// FedoraNamespaces.FEDORA_MANAGEMENT_NAMESPACE_URI); +// if (elm != null) { +// String textContent = elm.getTextContent(); +// for (DateFormat df : XSD_DATE_FORMATS) { +// try { +// date = df.parse(textContent); +// break; +// } catch (ParseException e) { +// // +// } +// } +// } +// if (date == null) { +// date = new Date(); +// } +// return date; +// } + + //---------------------------------------------------------------- + + public static final String NAMESPACE_FOXML = "info:fedora/fedora-system:def/foxml#"; + + /** + * @se RepositoryApiTimestampFormatterTest + */ + public static final DateTimeFormatter TIMESTAMP_FORMATTER = new DateTimeFormatterBuilder() + .appendPattern("yyyy-MM-dd'T'HH:mm:ss.") + .appendFraction(ChronoField.MILLI_OF_SECOND, 1, 3, false) + .appendPattern("'Z'") + .toFormatter(); + + //TODO: methods for fetching other types of datastreams (redirect, external referenced, probably not managed) + //TODO: methods for updating datastreams (new versions) + + //CREATE + public void ingestObject(org.dom4j.Document foxmlDoc, String pid) throws RepositoryException, IOException; + + //READ + public boolean objectExists(String pid) throws RepositoryException; + + public String getProperty(String pid, String propertyName) throws IOException, RepositoryException; + + public String getPropertyLabel(String pid) throws IOException, RepositoryException; + + public LocalDateTime getPropertyCreated(String pid) throws IOException, RepositoryException; + + public LocalDateTime getPropertyLastModified(String pid) throws IOException, RepositoryException; + + public org.dom4j.Document getFoxml(String pid) throws RepositoryException, IOException; + + public boolean datastreamExists(String pid, String dsId) throws RepositoryException, IOException; + + public String getDatastreamMimetype(String pid, String dsId) throws RepositoryException, IOException; + + /** + * @return part of FOXML that contains definition of the datastream. I.e. root element datastream with subelement(s) datastreamVersion. + */ + public org.dom4j.Document getDatastreamXml(String pid, String dsId) throws RepositoryException, IOException; + + + + public String getTypeOfDatastream(String pid, String dsId) throws RepositoryException, IOException; + + + public InputStream getLatestVersionOfDatastream(String pid, String dsId) throws RepositoryException, IOException; + + public org.dom4j.Document getLatestVersionOfInlineXmlDatastream(String pid, String dsId) throws RepositoryException, IOException; + + public String getLatestVersionOfManagedTextDatastream(String pid, String dsId) throws RepositoryException, IOException; + + public List getPidsOfAllObjects() throws RepositoryException, IOException, SolrServerException; + + public List getPidsOfObjectsByModel(String model) throws RepositoryException, IOException, SolrServerException; + + public Pair> getPidsOfObjectsByModel(String model, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException; + + public Pair> getPidsOfObjectsByModel(String model, String titlePrefix, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException; + + public RepositoryApi.TitlePidPairs getPidsOfObjectsWithTitlesByModel(String model, boolean ascendingOrder, int offset, int limit) throws RepositoryException, IOException, SolrServerException; + + public RepositoryApi.TitlePidPairs getPidsOfObjectsWithTitlesByModelWithCursor(String model, boolean ascendingOrder, String cursor, int limit) throws RepositoryException, IOException, SolrServerException; + + public Map getDescription(String objectPid) throws RepositoryException, IOException, SolrServerException; + + public List getTripletTargets(String sourcePid, String relation) throws RepositoryException, IOException, SolrServerException; + + public List getTripletTargets(String sourcePid) throws RepositoryException, IOException, SolrServerException; + + public List getTripletSources(String relation, String targetPid) throws RepositoryException, IOException, SolrServerException; + + public List getTripletSources(String targetPid) throws RepositoryException, IOException, SolrServerException; + + + public List getDatastreamNames(String pid) throws RepositoryException, IOException, SolrServerException; + + + //UPDATE + public void updateInlineXmlDatastream(String pid, String dsId, org.dom4j.Document streamDoc, String formatUri) throws RepositoryException, IOException; + + public void updateBinaryDatastream(String pid, String streamName, String mimeType, byte[] byteArray) throws RepositoryException; + + + public void deleteDatastream(String pid, String streamName) throws RepositoryException; + + /** + * @param ds part of FOXML that contains definition of the datastream. I.e. root element datastream with subelement(s) datastreamVersion. + */ + public void setDatastreamXml(String pid, String dsId, org.dom4j.Document ds) throws RepositoryException, IOException; + + //DELETE + public void deleteObject(String pid, boolean deleteDataOfManagedDatastreams) throws RepositoryException, IOException; + + + class Triplet { + public final String source; + public final String relation; + public final String target; + + public Triplet(String source, String relation, String target) { + this.source = source; + this.relation = relation; + this.target = target; + } + + @Override + public String toString() { + return String.format("%s -%s-> %s", source, relation, target); + } + } + + class TitlePidPairs { + public List> titlePidPairs; + public String nextCursorMark; + } + + //---------------KRRepAPI + + public static class KnownXmlFormatUris { + public static final String RELS_EXT = "info:fedora/fedora-system:FedoraRELSExt-1.0"; + public static final String BIBLIO_MODS = "http://www.loc.gov/mods/v3"; + public static final String BIBLIO_DC = "http://www.openarchives.org/OAI/2.0/oai_dc/"; + } + + enum KnownDatastreams { + RELS_EXT("RELS-EXT"), + + BIBLIO_MODS("BIBLIO_MODS"), + BIBLIO_DC("DC"), + + OCR_ALTO("ALTO"), + OCR_TEXT("TEXT_OCR"), + + IMG_FULL("IMG_FULL"), + IMG_THUMB("IMG_THUMB"), + IMG_PREVIEW("IMG_PREVIEW"), + + AUDIO_MP3("MP3"), + AUDIO_OGG("OGG"), + AUDIO_WAV("WAV"), + + // known but not used datastreams + POLICY("POLICY"), + MIGRATION("MIGRATION"), + IMG_FULL_ADM("IMG_FULL_ADM"), + AUDIT("AUDIT"), + TEXT_OCR_ADM("TEXT_OCR_ADM"), + + COLLECTION_CLIPPINGS("COLLECTION_CLIPPINGS"); + + + private final String value; + + KnownDatastreams(String value) { + this.value = value; + } + + public String toString() { + return value; + } + } + + enum KnownRelations { + //own relations (define object tree) + HAS_PAGE("hasPage"), + HAS_UNIT("hasUnit"), //monograph -> monographUnit, convolute -> anything_top-level_but_collection + HAS_VOLUME("hasVolume"), //periodical -> periodicalVolume + HAS_ITEM("hasItem"), //periodical -> (periodicalItem, supplement) + HAS_SOUND_UNIT("hasSoundUnit"), //soundRecording -> soundUnit + HAS_TRACK("hasTrack"), //(soundRecording, soundUnit) -> track + CONTAINS_TRACK("containsTrack"), //old version of HAS_TRACK + HAS_INT_COMP_PART("hasIntCompPart"), //periodicalItem -> (internalPart, article) + //foster relations + IS_ON_PAGE("isOnPage"), //(article, internalPart) -> page + CONTAINS("contains"); //collection -> (monograph, periodical, ... anything, even other collection) + //RDF relations, that don't connect two objects are not considered here + //i.e. hasModel, hasDonator, contract, policy, itemId, handle + + private final String value; + + KnownRelations(String value) { + this.value = value; + } + + public String toString() { + return value; + } + } + + + public enum OwnRelationsMapping { + + page{ + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_PAGE; + } + }, + + unit { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_UNIT; + } + }, + periodicalvolume { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_VOLUME; + } + }, + volume { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_VOLUME; + } + }, + periodicalitem { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_ITEM; + } + }, + supplement { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_ITEM; + } + }, + soundunit { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_SOUND_UNIT; + //return KnownRelations.CONTAINS_TRACK; + } + }, + soundrecording { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_SOUND_UNIT; + } + }, + + internalpart { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_INT_COMP_PART; + } + }, + track { + + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.CONTAINS_TRACK; + } + + }, + article { + @Override + public KrameriusRepositoryApi.KnownRelations relation() { + return KrameriusRepositoryApi.KnownRelations.HAS_INT_COMP_PART; + } + }; + + ; + + public static KrameriusRepositoryApi.OwnRelationsMapping find(String name) { + KrameriusRepositoryApi.OwnRelationsMapping[] values = values(); + for (KrameriusRepositoryApi.OwnRelationsMapping relMap : values()) { + if (relMap.name().equals(name)) { + return relMap; + } + } + return null; + } + + public abstract KrameriusRepositoryApi.KnownRelations relation(); + + } + + + public enum FosterRelationsMapping { + page{ + @Override + public KrameriusRepositoryApi.KnownRelations relation(String parentModel) { + List parent = Arrays.asList("article", "internalpart"); + if (parent.contains(parentModel)) { + return KrameriusRepositoryApi.KnownRelations.IS_ON_PAGE; + } else return KrameriusRepositoryApi.KnownRelations.CONTAINS; + } + }, + anything { + @Override + public KrameriusRepositoryApi.KnownRelations relation(String parentModel) { + return KrameriusRepositoryApi.KnownRelations.CONTAINS; + } + }; + + public static KrameriusRepositoryApi.FosterRelationsMapping find(String name) { + KrameriusRepositoryApi.FosterRelationsMapping[] values = KrameriusRepositoryApi.FosterRelationsMapping.values(); + for (KrameriusRepositoryApi.FosterRelationsMapping relMap : values) { + if (relMap.name().equals(name)) return relMap; + } + return anything; + + } + + public abstract KrameriusRepositoryApi.KnownRelations relation(String parentModel); + + } + + + List OWN_RELATIONS = Arrays.asList(new KrameriusRepositoryApi.KnownRelations[]{ + KrameriusRepositoryApi.KnownRelations.HAS_PAGE, KrameriusRepositoryApi.KnownRelations.HAS_UNIT, KrameriusRepositoryApi.KnownRelations.HAS_VOLUME, KrameriusRepositoryApi.KnownRelations.HAS_ITEM, + KrameriusRepositoryApi.KnownRelations.HAS_SOUND_UNIT, KrameriusRepositoryApi.KnownRelations.HAS_TRACK, KrameriusRepositoryApi.KnownRelations.CONTAINS_TRACK, KrameriusRepositoryApi.KnownRelations.HAS_INT_COMP_PART + }); + List FOSTER_RELATIONS = Arrays.asList(new KrameriusRepositoryApi.KnownRelations[]{ + KrameriusRepositoryApi.KnownRelations.IS_ON_PAGE, KrameriusRepositoryApi.KnownRelations.CONTAINS + }); + + static boolean isOwnRelation(String relation) { + for (KrameriusRepositoryApi.KnownRelations knownRelation : OWN_RELATIONS) { + if (relation.equals(knownRelation.toString())) { + return true; + } + } + for (KrameriusRepositoryApi.KnownRelations knownRelation : FOSTER_RELATIONS) { + if (relation.equals(knownRelation.toString())) { + return false; + } + } + throw new IllegalArgumentException(String.format("unknown relation '%s'", relation)); + } + + //TODO: methods for updating datastream data (done for inline xml datastreams) + + /** + * @return Low level repository API. Through that can be accessed any kind of datastream or property, regardless if it is used by Kramerius or not + */ + public RepositoryApi getLowLevelApi(); + + /** + * @param pid Persistent identifier of the object + * @return if datastream RELS-EXT is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isRelsExtAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @param namespaceAware if false, namespaces will be removed from the resulting xml + * @return latest version of object's datastream RELS-EXT provided it is stored as inline XML (control-group X), null otherwise + * @throws IOException + * @throws RepositoryException + */ + public org.dom4j.Document getRelsExt(String pid, boolean namespaceAware) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream BIBLIO_MODS is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isModsAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @param namespaceAware if false, namespaces will be removed from the resulting xml + * @return latest version of object's datastream BIBLIO_MODS provided it is stored as inline XML (control-group X), null otherwise + * @throws IOException + * @throws RepositoryException + */ + public org.dom4j.Document getMods(String pid, boolean namespaceAware) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream DC is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isDublinCoreAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @param namespaceAware if false, namespaces will be removed from the resulting xml + * @return latest version of object's datastream DC provided it is stored as inline XML (control-group X), null otherwise + * @throws IOException + * @throws RepositoryException + */ + public org.dom4j.Document getDublinCore(String pid, boolean namespaceAware) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream OCR_TEXT is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isOcrTextAvailable(String pid) throws IOException, RepositoryException; + + + public boolean isPidAvailable(String pid) throws IOException, RepositoryException; + + public boolean isStreamAvailable(String pid, String dsId) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return latest version of object's datastream OCR_TEXT provided it is stored as inline XML (control-group X), null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getOcrText(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream OCR_ALTO is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isOcrAltoAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @param namespaceAware if false, namespaces will be removed from the resulting xml + * @return latest version of object's datastream OCR_ALTO provided it is stored as inline XML (control-group X), null otherwise + * @throws IOException + * @throws RepositoryException + */ + public org.dom4j.Document getOcrAlto(String pid, boolean namespaceAware) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream IMG_FULL is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isImgFullAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return mime-type of datastream IMG_FULL if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getImgFullMimetype(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return InputStream stream containing image data from IMG_FULL if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public InputStream getImgFull(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream IMG_THUMB is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isImgThumbAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return mime-type of datastream IMG_THUMB if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getImgThumbMimetype(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return InputStream stream containing image data from IMG_THUMB if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public InputStream getImgThumb(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream IMG_PREVIEW is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isImgPreviewAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return mime-type of datastream IMG_PREVIEW if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getImgPreviewMimetype(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return InputStream stream containing image data from IMG_PREVIEW if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public InputStream getImgPreview(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream MP3 is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isAudioMp3Available(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return mime-type of datastream MP3 if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getAudioMp3Mimetype(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return InputStream stream containing audio data from MP3 if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public InputStream getAudioMp3(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream OGG is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isAudioOggAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return mime-type of datastream OGG if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getAudioOggMimetype(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return InputStream stream containing audio data from OGG if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public InputStream getAudioOgg(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return if datastream WAV is available for the object + * @throws IOException + * @throws RepositoryException + */ + public boolean isAudioWavAvailable(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return mime-type of datastream WAV if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public String getAudioWavMimetype(String pid) throws IOException, RepositoryException; + + /** + * @param pid Persistent identifier of the object + * @return InputStream stream containing audio data from WAV if such datastream exists, null otherwise + * @throws IOException + * @throws RepositoryException + */ + public InputStream getAudioWav(String pid) throws IOException, RepositoryException; + + /** + * @param objectPid + * @return Model of the object + * @throws RepositoryException + * @throws IOException + * @throws SolrServerException + */ + public String getModel(String objectPid) throws RepositoryException, IOException, SolrServerException; + + /** + * @param objectPid + * @return Pair of values: 1. Triplet of relation from own parent (or null if the object is top-level, i.e. has no parent), 2. Triplets of relations from foster parents + * @throws RepositoryException + * @throws IOException + * @throws SolrServerException + */ + public Pair> getParents(String objectPid) throws RepositoryException, IOException, SolrServerException; + + /** + * @param objectPid + * @return Pair of values: 1. Triplets of relations to own children, 2. Triplets of relations to foster children + * @throws RepositoryException + * @throws IOException + * @throws SolrServerException + */ + public Pair, List> getChildren(String objectPid) throws RepositoryException, IOException, SolrServerException; + + /** + * @param collectionPid + * @return Pids of items that are (directly) contained in collection + * @throws RepositoryException + * @throws IOException + * @throws SolrServerException + */ + public List getPidsOfItemsInCollection(String collectionPid) throws RepositoryException, IOException, SolrServerException; + + /** + * @param itemPid + * @return Pids of collections that (directly) contain the item + * @throws RepositoryException + * @throws IOException + * @throws SolrServerException + */ + public List getPidsOfCollectionsContainingItem(String itemPid) throws RepositoryException, IOException, SolrServerException; + + /** + * Appends new version of inline xml datastream RELS-EXT + * + * @param pid Persistent identifier of the object + * @param relsExtDoc New version of RELS-EXT + * @throws IOException + * @throws RepositoryException + */ + public void updateRelsExt(String pid, org.dom4j.Document relsExtDoc) throws IOException, RepositoryException; + + /** + * Appends new version of inline xml datastream BIBLIO_MODS + * + * @param pid Persistent identifier of the object + * @param modsDoc New version of MODS + * @throws IOException + * @throws RepositoryException + */ + public void updateMods(String pid, org.dom4j.Document modsDoc) throws IOException, RepositoryException; + + /** + * Appends new version of inline xml datastream DC + * + * @param pid Persistent identifier of the object + * @param dcDoc New version of Dublin Core + * @throws IOException + * @throws RepositoryException + */ + public void updateDublinCore(String pid, org.dom4j.Document dcDoc) throws IOException, RepositoryException; + + +} diff --git a/shared/common/src/main/java/cz/incad/kramerius/audio/urlMapping/CachingFedoraUrlManager.java b/shared/common/src/main/java/cz/incad/kramerius/audio/urlMapping/CachingFedoraUrlManager.java index 4892345dff..4aefa4edfe 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/audio/urlMapping/CachingFedoraUrlManager.java +++ b/shared/common/src/main/java/cz/incad/kramerius/audio/urlMapping/CachingFedoraUrlManager.java @@ -17,7 +17,7 @@ package cz.incad.kramerius.audio.urlMapping; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.Initializable; import cz.incad.kramerius.audio.AudioStreamId; import cz.incad.kramerius.audio.XpathEvaluator; @@ -62,7 +62,7 @@ public class CachingFedoraUrlManager implements RepositoryUrlManager, Initializa @Inject @Named("securedFedoraAccess") - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private final CacheManager cacheManager; diff --git a/shared/common/src/main/java/cz/incad/kramerius/document/impl/DocumentServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/document/impl/DocumentServiceImpl.java index 963c1f09ee..4f902190a1 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/document/impl/DocumentServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/document/impl/DocumentServiceImpl.java @@ -35,7 +35,7 @@ import com.google.inject.Provider; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; @@ -67,14 +67,14 @@ public class DocumentServiceImpl implements DocumentService { static java.util.logging.Logger LOGGER = java.util.logging.Logger .getLogger(DocumentServiceImpl.class.getName()); - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private Provider localeProvider; private ResourceBundleService resourceBundleService; private SolrAccess solrAccess; @Inject public DocumentServiceImpl( - @Named("securedFedoraAccess") FedoraAccess fedoraAccess, + @Named("securedFedoraAccess") RepositoryAccess fedoraAccess, @Named("new-index") SolrAccess solrAccess, Provider localeProvider, ResourceBundleService resourceBundleService diff --git a/shared/common/src/main/java/cz/incad/kramerius/document/model/utils/DCContentUtils.java b/shared/common/src/main/java/cz/incad/kramerius/document/model/utils/DCContentUtils.java index 69651d7934..76e29891e3 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/document/model/utils/DCContentUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/document/model/utils/DCContentUtils.java @@ -24,7 +24,7 @@ import org.w3c.dom.Document; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.document.model.DCConent; @@ -49,7 +49,7 @@ public class DCContentUtils { * @return map map of {@link DCConent} chains * @throws IOException IO error has been occurred */ - public static Map> getDCS(FedoraAccess fedoraAccess, SolrAccess solrAccess, List pids) throws IOException { + public static Map> getDCS(RepositoryAccess fedoraAccess, SolrAccess solrAccess, List pids) throws IOException { Map> maps = new HashMap>(); for (String pid : pids) { ObjectPidsPath[] paths = solrAccess.getPidPaths(pid); diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/AbstractFedoraAccess.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/AbstractFedoraAccess.java deleted file mode 100644 index ede55e0ecf..0000000000 --- a/shared/common/src/main/java/cz/incad/kramerius/fedora/AbstractFedoraAccess.java +++ /dev/null @@ -1,450 +0,0 @@ -package cz.incad.kramerius.fedora; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.Stack; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.annotation.Nullable; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpression; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; - -import org.w3c.dom.DOMException; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import com.google.inject.Inject; - -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.FedoraNamespaceContext; -import cz.incad.kramerius.FedoraNamespaces; -import cz.incad.kramerius.ProcessSubtreeException; -import cz.incad.kramerius.TreeNodeProcessStackAware; -import cz.incad.kramerius.TreeNodeProcessor; -import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.utils.FedoraUtils; -import cz.incad.kramerius.utils.XMLUtils; -import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.incad.kramerius.utils.pid.LexerException; -import cz.incad.kramerius.utils.pid.PIDParser; - -public abstract class AbstractFedoraAccess implements FedoraAccess { - - public static final Logger LOGGER = Logger.getLogger(AbstractFedoraAccess.class.getName()); - protected XPathFactory xPathFactory; - protected KConfiguration configuration = KConfiguration.getInstance(); - - @Inject - public AbstractFedoraAccess( @Nullable StatisticsAccessLog accessLog) - throws IOException { - super(); - this.xPathFactory = XPathFactory.newInstance(); - } - - protected String makeSureObjectPid(String pid) throws LexerException { - PIDParser pidParser = new PIDParser(pid); - pidParser.objectPid(); - String sureObjectPid = pidParser.isPagePid() ? pidParser.getParentObjectPid() : pidParser.getObjectPid(); - return sureObjectPid; - } - - @Override - public String getDonator(Document relsExt) { - try { - Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasDonator", - FedoraNamespaces.KRAMERIUS_URI); - if (foundElement != null) { - String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); - PIDParser pidParser = new PIDParser(sform); - pidParser.disseminationURI(); - return pidParser.getObjectId(); - } else { - return ""; - } - } catch (DOMException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } catch (LexerException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } - } - - protected void changeStack(TreeNodeProcessor processor, Stack pidStack) { - if (processor instanceof TreeNodeProcessStackAware) { - TreeNodeProcessStackAware stackAware = (TreeNodeProcessStackAware) processor; - stackAware.changeProcessingStack(pidStack); - } - } - - protected boolean processSubtreeInternal(String pid, Document relsExt, TreeNodeProcessor processor, int level, - Stack pidStack) - throws XPathExpressionException, LexerException, IOException, ProcessSubtreeException { - processor.process(pid, level); - boolean breakProcessing = processor.breakProcessing(pid, level); - if (breakProcessing) { - return breakProcessing; - } - if (relsExt == null) { - return false; - } - XPathFactory factory = this.xPathFactory; - XPath xpath = factory.newXPath(); - xpath.setNamespaceContext(new FedoraNamespaceContext()); - XPathExpression expr = xpath.compile("/rdf:RDF/rdf:Description/*"); - NodeList nodes = (NodeList) expr.evaluate(relsExt, XPathConstants.NODESET); - - if (pidStack.contains(pid)) { - LOGGER.log(Level.WARNING, "Cyclic reference on " + pid); - return breakProcessing; - } - pidStack.push(pid); - changeStack(processor, pidStack); - for (int i = 0, ll = nodes.getLength(); i < ll; i++) { - Node node = nodes.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) { - Element iteratingElm = (Element) node; - String namespaceURI = iteratingElm.getNamespaceURI(); - if (namespaceURI != null && (namespaceURI.equals(FedoraNamespaces.ONTOLOGY_RELATIONSHIP_NAMESPACE_URI) - || namespaceURI.equals(FedoraNamespaces.RDF_NAMESPACE_URI))) { - String attVal = iteratingElm.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); - if (!attVal.trim().equals("")) { - PIDParser pidParser = new PIDParser(attVal); - pidParser.disseminationURI(); - String objectId = pidParser.getObjectPid(); - if (pidParser.getNamespaceId().equals("uuid")) { - if (!processor.skipBranch(objectId, level + 1)) { - Document iterationgRelsExt = null; - - try { - iterationgRelsExt = getRelsExt(objectId); - } catch (Exception ex) { - LOGGER.warning("could not read RELS-EXT, skipping branch [" + (level + 1) - + "] and pid (" + objectId + "):" + ex); - } - breakProcessing = processSubtreeInternal(pidParser.getObjectPid(), iterationgRelsExt, - processor, level + 1, pidStack); - - if (breakProcessing) { - break; - } - } else { - LOGGER.fine("skipping branch [" + (level + 1) + "] and pid (" + objectId + ")"); - } - } - } - - } - } - } - pidStack.pop(); - changeStack(processor, pidStack); - return breakProcessing; - } - - @Override - public void processSubtree(String pid, TreeNodeProcessor processor) throws ProcessSubtreeException, IOException { - try { - pid = makeSureObjectPid(pid); - Document relsExt = null; - try { - // should be from - if (isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)) { - relsExt = getRelsExt(pid); - } else { - LOGGER.warning("could not read root RELS-EXT, skipping object (" + pid + ")"); - } - } catch (Exception ex) { - LOGGER.warning("could not read root RELS-EXT, skipping object (" + pid + "):" + ex); - } - if (!processor.skipBranch(pid, 0)) { - processSubtreeInternal(pid, relsExt, processor, 0, new Stack()); - } - } catch (LexerException e) { - LOGGER.warning("Error in pid: " + pid); - throw new ProcessSubtreeException(e); - } catch (XPathExpressionException e) { - throw new ProcessSubtreeException(e); - } - } - - @Override - public List getPids(String pid) throws IOException { - final List retval = new ArrayList<>(); - try { - processSubtree(pid, new TreeNodeProcessor() { - @Override - public void process(String pid, int level) { - retval.add(pid); - } - - @Override - public boolean breakProcessing(String pid, int level) { - return false; - } - - @Override - public boolean skipBranch(String pid, int level) { - return false; - } - }); - } catch (ProcessSubtreeException e) { - throw new IOException(e); - } - return retval; - } - - @Override - public String findFirstViewablePid(String pid) throws IOException { - final List foundPids = new ArrayList(); - try { - processSubtree(makeSureObjectPid(pid), new TreeNodeProcessor() { - boolean breakProcess = false; - int previousLevel = 0; - - @Override - public boolean breakProcessing(String pid, int level) { - return breakProcess; - } - - @Override - public boolean skipBranch(String pid, int level) { - return false; - } - - @Override - public void process(String pid, int level) throws ProcessSubtreeException { - try { - if (previousLevel < level || level == 0) { - if (AbstractFedoraAccess.this.isImageFULLAvailable(pid)) { - foundPids.add(pid); - breakProcess = true; - } - } else if (previousLevel > level) { - breakProcess = true; - } else if ((previousLevel == level) && (level != 0)) { - breakProcess = true; - } - previousLevel = level; - } catch (Exception e) { - throw new ProcessSubtreeException(e); - } - } - }); - } catch (ProcessSubtreeException e) { - throw new IOException(e); - } catch (LexerException e) { - throw new IOException(e); - } - - return foundPids.isEmpty() ? null : foundPids.get(0); - } - - @Override - public String getKrameriusModelName(Document relsExt) throws IOException { - try { - //TODO: Duplicate code in RelsExt helper -> mn - Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasModel", FedoraNamespaces.FEDORA_MODELS_URI); - if (foundElement != null) { - String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); - PIDParser pidParser = new PIDParser(sform); - pidParser.disseminationURI(); - return pidParser.getObjectId(); - } else { - throw new IllegalArgumentException("cannot find model of given document"); - } - } catch (DOMException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } catch (LexerException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } - } - - @Override - public String getDonator(String pid) throws IOException { - return getDonator(getRelsExt(pid)); - } - - @Override - public String getKrameriusModelName(String pid) throws IOException { - return getKrameriusModelName(getRelsExt(pid)); - } - - @Override - public List getPages(String pid, boolean deep) throws IOException { - Document relsExt = getRelsExt(pid); - return getPages(pid, relsExt.getDocumentElement()); - } - - @Override - public String getFirstItemPid(Document relsExt) - throws IOException { - try { - Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasItem", FedoraNamespaces.KRAMERIUS_URI); - if (foundElement != null) { - String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); - PIDParser pidParser = new PIDParser(sform); - pidParser.disseminationURI(); - String pidItem = "uuid:" + pidParser.getObjectId(); - return pidItem; - } else { - return ""; - } - } catch (DOMException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } catch (LexerException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } - } - - @Override - public String getFirstItemPid(String pid) throws IOException { - Document relsExt = getRelsExt(pid); - return getFirstItemPid(relsExt); - } - - @Override - public String getFirstVolumePid(Document relsExt) throws IOException { - - try { - Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasVolume", FedoraNamespaces.KRAMERIUS_URI); - if (foundElement != null) { - String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); - PIDParser pidParser = new PIDParser(sform); - pidParser.disseminationURI(); - String pidVolume = "uuid:" + pidParser.getObjectId(); - return pidVolume; - } else { - return ""; - } - } catch (DOMException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } catch (LexerException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } - } - - @Override - public String getFirstVolumePid(String pid) throws IOException { - Document relsExt = getRelsExt(pid); - return getFirstVolumePid(relsExt); - } - - @Override - public boolean isImageFULLAvailable(String pid) throws IOException { - try { - return isStreamAvailable(makeSureObjectPid(pid), FedoraUtils.IMG_FULL_STREAM); - } catch (LexerException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IOException(e); - } - } - - @Override - public List getPages(String pid, Element rootElementOfRelsExt) throws IOException { - try { - ArrayList elms = new ArrayList(); - String xPathStr = "/RDF/Description/hasPage"; - XPath xpath = this.xPathFactory.newXPath(); - XPathExpression expr = xpath.compile(xPathStr); - NodeList nodes = (NodeList) expr.evaluate(rootElementOfRelsExt, XPathConstants.NODESET); - for (int i = 0, lastIndex = nodes.getLength() - 1; i <= lastIndex; i++) { - Element elm = (Element) nodes.item(i); - elms.add(elm); - } - return elms; - } catch (XPathExpressionException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IOException(e); - } - } - - protected List getTreePredicates() { - return Arrays.asList(KConfiguration.getInstance().getPropertyList("fedora.treePredicates")); - } - - @Override - public boolean getFirstViewablePath(List pids, List models) throws IOException { - try { - String pid = pids.get(pids.size() - 1); - pid = makeSureObjectPid(pid); - if (isImageFULLAvailable(pid)) { - return true; - } - Document relsExt = getRelsExt(pid); - Element descEl = XMLUtils.findElement(relsExt.getDocumentElement(), "Description", - FedoraNamespaces.RDF_NAMESPACE_URI); - List els = XMLUtils.getElements(descEl); - for (Element el : els) { - if (getTreePredicates().contains(el.getLocalName())) { - if (el.hasAttribute("rdf:resource")) { - pid = el.getAttributes().getNamedItem("rdf:resource").getNodeValue(); - pids.add(pid); - models.add(getKrameriusModelName(pid)); - if (getFirstViewablePath(pids, models)) { - return true; - } else { - pids.remove(pids.size() - 1); - models.remove(pids.size() - 1); - } - } - } - } - return false; - } catch (DOMException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IOException(e); - } catch (LexerException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IOException(e); - } - } - - @Override - public List getModelsOfRel(Document relsExt) { - try { - throw new UnsupportedOperationException("still unsupported"); - // Element foundElement = - // XMLUtils.findElement(relsExt.getDocumentElement(), "hasModel", - // FedoraNamespaces.FEDORA_MODELS_URI); - // if (foundElement != null) { - // String sform = - // foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, - // "resource"); - // PIDParser pidParser = new PIDParser(sform); - // pidParser.disseminationURI(); - // ArrayList model = - // RelsExtModelsMap.getModelsOfRelation(pidParser.getObjectId()); - // return model; - // } else { - // throw new IllegalArgumentException("cannot find model of "); - // } - } catch (DOMException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - throw new IllegalArgumentException(e); - } - } - - @Override - public List getModelsOfRel(String pid) throws IOException { - return getModelsOfRel(getRelsExt(pid)); - } - - -} diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/AbstractRepositoryAccess.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/AbstractRepositoryAccess.java new file mode 100644 index 0000000000..6efaba8d8f --- /dev/null +++ b/shared/common/src/main/java/cz/incad/kramerius/fedora/AbstractRepositoryAccess.java @@ -0,0 +1,1237 @@ +package cz.incad.kramerius.fedora; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.nio.charset.Charset; +import java.time.LocalDateTime; +import java.time.format.DateTimeParseException; +import java.util.*; +import java.util.concurrent.locks.Lock; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.stream.Collectors; + +import javax.annotation.Nullable; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; + +import com.google.inject.name.Named; +import com.qbizm.kramerius.imp.jaxb.DigitalObject; +import cz.incad.kramerius.fedora.om.RepositoryDatastream; +import cz.incad.kramerius.fedora.om.RepositoryException; +import cz.incad.kramerius.fedora.om.RepositoryObject; +import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; +import cz.incad.kramerius.fedora.om.impl.AkubraRepositoryImpl; +import cz.incad.kramerius.repository.utils.NamespaceRemovingVisitor; +import cz.incad.kramerius.repository.utils.Utils; +import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; +import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; +import cz.incad.kramerius.utils.Dom4jUtils; +import cz.incad.kramerius.utils.StringUtils; +import cz.incad.kramerius.utils.java.Pair; +import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.common.SolrDocument; +import org.dom4j.Attribute; +import org.dom4j.DocumentHelper; +import org.dom4j.Namespace; +import org.dom4j.QName; +import org.ehcache.CacheManager; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import com.google.inject.Inject; + +import cz.incad.kramerius.RepositoryAccess; +import cz.incad.kramerius.FedoraNamespaceContext; +import cz.incad.kramerius.FedoraNamespaces; +import cz.incad.kramerius.ProcessSubtreeException; +import cz.incad.kramerius.TreeNodeProcessStackAware; +import cz.incad.kramerius.TreeNodeProcessor; +import cz.incad.kramerius.statistics.StatisticsAccessLog; +import cz.incad.kramerius.utils.FedoraUtils; +import cz.incad.kramerius.utils.XMLUtils; +import cz.incad.kramerius.utils.conf.KConfiguration; +import cz.incad.kramerius.utils.pid.LexerException; +import cz.incad.kramerius.utils.pid.PIDParser; + +public abstract class AbstractRepositoryAccess implements RepositoryAccess { + //---------------------- + public static final Logger LOGGER = Logger.getLogger(RepositoryApi.class.getName()); + + private static final Namespace NS_FOXML = new Namespace("foxml", "info:fedora/fedora-system:def/foxml#"); + private final AkubraRepositoryImpl akubraRepositoryImpl; + private final Unmarshaller digitalObjectUnmarshaller; + //------------------------------------------------------------------------- + + public static final Logger LOGGER = Logger.getLogger(AbstractRepositoryAccess.class.getName()); + protected XPathFactory xPathFactory; + protected KConfiguration configuration = KConfiguration.getInstance(); + + @Inject + public AbstractRepositoryAccess(@Nullable StatisticsAccessLog accessLog) + throws IOException { + super(); + this.xPathFactory = XPathFactory.newInstance(); + } + + protected String makeSureObjectPid(String pid) throws LexerException { + PIDParser pidParser = new PIDParser(pid); + pidParser.objectPid(); + String sureObjectPid = pidParser.isPagePid() ? pidParser.getParentObjectPid() : pidParser.getObjectPid(); + return sureObjectPid; + } + + @Override + public String getDonator(Document relsExt) { + try { + Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasDonator", + FedoraNamespaces.KRAMERIUS_URI); + if (foundElement != null) { + String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); + PIDParser pidParser = new PIDParser(sform); + pidParser.disseminationURI(); + return pidParser.getObjectId(); + } else { + return ""; + } + } catch (DOMException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } catch (LexerException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } + } + + protected void changeStack(TreeNodeProcessor processor, Stack pidStack) { + if (processor instanceof TreeNodeProcessStackAware) { + TreeNodeProcessStackAware stackAware = (TreeNodeProcessStackAware) processor; + stackAware.changeProcessingStack(pidStack); + } + } + + protected boolean processSubtreeInternal(String pid, Document relsExt, TreeNodeProcessor processor, int level, + Stack pidStack) + throws XPathExpressionException, LexerException, IOException, ProcessSubtreeException { + processor.process(pid, level); + boolean breakProcessing = processor.breakProcessing(pid, level); + if (breakProcessing) { + return breakProcessing; + } + if (relsExt == null) { + return false; + } + XPathFactory factory = this.xPathFactory; + XPath xpath = factory.newXPath(); + xpath.setNamespaceContext(new FedoraNamespaceContext()); + XPathExpression expr = xpath.compile("/rdf:RDF/rdf:Description/*"); + NodeList nodes = (NodeList) expr.evaluate(relsExt, XPathConstants.NODESET); + + if (pidStack.contains(pid)) { + LOGGER.log(Level.WARNING, "Cyclic reference on " + pid); + return breakProcessing; + } + pidStack.push(pid); + changeStack(processor, pidStack); + for (int i = 0, ll = nodes.getLength(); i < ll; i++) { + Node node = nodes.item(i); + if (node.getNodeType() == Node.ELEMENT_NODE) { + Element iteratingElm = (Element) node; + String namespaceURI = iteratingElm.getNamespaceURI(); + if (namespaceURI != null && (namespaceURI.equals(FedoraNamespaces.ONTOLOGY_RELATIONSHIP_NAMESPACE_URI) + || namespaceURI.equals(FedoraNamespaces.RDF_NAMESPACE_URI))) { + String attVal = iteratingElm.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); + if (!attVal.trim().equals("")) { + PIDParser pidParser = new PIDParser(attVal); + pidParser.disseminationURI(); + String objectId = pidParser.getObjectPid(); + if (pidParser.getNamespaceId().equals("uuid")) { + if (!processor.skipBranch(objectId, level + 1)) { + Document iterationgRelsExt = null; + + try { + iterationgRelsExt = getRelsExt(objectId); + } catch (Exception ex) { + LOGGER.warning("could not read RELS-EXT, skipping branch [" + (level + 1) + + "] and pid (" + objectId + "):" + ex); + } + breakProcessing = processSubtreeInternal(pidParser.getObjectPid(), iterationgRelsExt, + processor, level + 1, pidStack); + + if (breakProcessing) { + break; + } + } else { + LOGGER.fine("skipping branch [" + (level + 1) + "] and pid (" + objectId + ")"); + } + } + } + + } + } + } + pidStack.pop(); + changeStack(processor, pidStack); + return breakProcessing; + } + + @Override + public void processSubtree(String pid, TreeNodeProcessor processor) throws ProcessSubtreeException, IOException { + try { + pid = makeSureObjectPid(pid); + Document relsExt = null; + try { + // should be from + if (isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)) { + relsExt = getRelsExt(pid); + } else { + LOGGER.warning("could not read root RELS-EXT, skipping object (" + pid + ")"); + } + } catch (Exception ex) { + LOGGER.warning("could not read root RELS-EXT, skipping object (" + pid + "):" + ex); + } + if (!processor.skipBranch(pid, 0)) { + processSubtreeInternal(pid, relsExt, processor, 0, new Stack()); + } + } catch (LexerException e) { + LOGGER.warning("Error in pid: " + pid); + throw new ProcessSubtreeException(e); + } catch (XPathExpressionException e) { + throw new ProcessSubtreeException(e); + } + } + + @Override + public List getPids(String pid) throws IOException { + final List retval = new ArrayList<>(); + try { + processSubtree(pid, new TreeNodeProcessor() { + @Override + public void process(String pid, int level) { + retval.add(pid); + } + + @Override + public boolean breakProcessing(String pid, int level) { + return false; + } + + @Override + public boolean skipBranch(String pid, int level) { + return false; + } + }); + } catch (ProcessSubtreeException e) { + throw new IOException(e); + } + return retval; + } + + @Override + public String findFirstViewablePid(String pid) throws IOException { + final List foundPids = new ArrayList(); + try { + processSubtree(makeSureObjectPid(pid), new TreeNodeProcessor() { + boolean breakProcess = false; + int previousLevel = 0; + + @Override + public boolean breakProcessing(String pid, int level) { + return breakProcess; + } + + @Override + public boolean skipBranch(String pid, int level) { + return false; + } + + @Override + public void process(String pid, int level) throws ProcessSubtreeException { + try { + if (previousLevel < level || level == 0) { + if (AbstractRepositoryAccess.this.isImageFULLAvailable(pid)) { + foundPids.add(pid); + breakProcess = true; + } + } else if (previousLevel > level) { + breakProcess = true; + } else if ((previousLevel == level) && (level != 0)) { + breakProcess = true; + } + previousLevel = level; + } catch (Exception e) { + throw new ProcessSubtreeException(e); + } + } + }); + } catch (ProcessSubtreeException e) { + throw new IOException(e); + } catch (LexerException e) { + throw new IOException(e); + } + + return foundPids.isEmpty() ? null : foundPids.get(0); + } + + @Override + public String getKrameriusModelName(Document relsExt) throws IOException { + try { + //TODO: Duplicate code in RelsExt helper -> mn + Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasModel", FedoraNamespaces.FEDORA_MODELS_URI); + if (foundElement != null) { + String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); + PIDParser pidParser = new PIDParser(sform); + pidParser.disseminationURI(); + return pidParser.getObjectId(); + } else { + throw new IllegalArgumentException("cannot find model of given document"); + } + } catch (DOMException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } catch (LexerException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } + } + + @Override + public String getDonator(String pid) throws IOException { + return getDonator(getRelsExt(pid)); + } + + @Override + public String getKrameriusModelName(String pid) throws IOException { + return getKrameriusModelName(getRelsExt(pid)); + } + + @Override + public List getPages(String pid, boolean deep) throws IOException { + Document relsExt = getRelsExt(pid); + return getPages(pid, relsExt.getDocumentElement()); + } + + @Override + public String getFirstItemPid(Document relsExt) + throws IOException { + try { + Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasItem", FedoraNamespaces.KRAMERIUS_URI); + if (foundElement != null) { + String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); + PIDParser pidParser = new PIDParser(sform); + pidParser.disseminationURI(); + String pidItem = "uuid:" + pidParser.getObjectId(); + return pidItem; + } else { + return ""; + } + } catch (DOMException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } catch (LexerException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } + } + + @Override + public String getFirstItemPid(String pid) throws IOException { + Document relsExt = getRelsExt(pid); + return getFirstItemPid(relsExt); + } + + @Override + public String getFirstVolumePid(Document relsExt) throws IOException { + + try { + Element foundElement = XMLUtils.findElement(relsExt.getDocumentElement(), "hasVolume", FedoraNamespaces.KRAMERIUS_URI); + if (foundElement != null) { + String sform = foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, "resource"); + PIDParser pidParser = new PIDParser(sform); + pidParser.disseminationURI(); + String pidVolume = "uuid:" + pidParser.getObjectId(); + return pidVolume; + } else { + return ""; + } + } catch (DOMException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } catch (LexerException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } + } + + @Override + public String getFirstVolumePid(String pid) throws IOException { + Document relsExt = getRelsExt(pid); + return getFirstVolumePid(relsExt); + } + + @Override + public boolean isImageFULLAvailable(String pid) throws IOException { + try { + return isStreamAvailable(makeSureObjectPid(pid), FedoraUtils.IMG_FULL_STREAM); + } catch (LexerException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IOException(e); + } + } + + @Override + public List getPages(String pid, Element rootElementOfRelsExt) throws IOException { + try { + ArrayList elms = new ArrayList(); + String xPathStr = "/RDF/Description/hasPage"; + XPath xpath = this.xPathFactory.newXPath(); + XPathExpression expr = xpath.compile(xPathStr); + NodeList nodes = (NodeList) expr.evaluate(rootElementOfRelsExt, XPathConstants.NODESET); + for (int i = 0, lastIndex = nodes.getLength() - 1; i <= lastIndex; i++) { + Element elm = (Element) nodes.item(i); + elms.add(elm); + } + return elms; + } catch (XPathExpressionException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IOException(e); + } + } + + protected List getTreePredicates() { + return Arrays.asList(KConfiguration.getInstance().getPropertyList("fedora.treePredicates")); + } + + @Override + public boolean getFirstViewablePath(List pids, List models) throws IOException { + try { + String pid = pids.get(pids.size() - 1); + pid = makeSureObjectPid(pid); + if (isImageFULLAvailable(pid)) { + return true; + } + Document relsExt = getRelsExt(pid); + Element descEl = XMLUtils.findElement(relsExt.getDocumentElement(), "Description", + FedoraNamespaces.RDF_NAMESPACE_URI); + List els = XMLUtils.getElements(descEl); + for (Element el : els) { + if (getTreePredicates().contains(el.getLocalName())) { + if (el.hasAttribute("rdf:resource")) { + pid = el.getAttributes().getNamedItem("rdf:resource").getNodeValue(); + pids.add(pid); + models.add(getKrameriusModelName(pid)); + if (getFirstViewablePath(pids, models)) { + return true; + } else { + pids.remove(pids.size() - 1); + models.remove(pids.size() - 1); + } + } + } + } + return false; + } catch (DOMException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IOException(e); + } catch (LexerException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IOException(e); + } + } + + @Override + public List getModelsOfRel(Document relsExt) { + try { + throw new UnsupportedOperationException("still unsupported"); + // Element foundElement = + // XMLUtils.findElement(relsExt.getDocumentElement(), "hasModel", + // FedoraNamespaces.FEDORA_MODELS_URI); + // if (foundElement != null) { + // String sform = + // foundElement.getAttributeNS(FedoraNamespaces.RDF_NAMESPACE_URI, + // "resource"); + // PIDParser pidParser = new PIDParser(sform); + // pidParser.disseminationURI(); + // ArrayList model = + // RelsExtModelsMap.getModelsOfRelation(pidParser.getObjectId()); + // return model; + // } else { + // throw new IllegalArgumentException("cannot find model of "); + // } + } catch (DOMException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + throw new IllegalArgumentException(e); + } + } + + @Override + public List getModelsOfRel(String pid) throws IOException { + return getModelsOfRel(getRelsExt(pid)); + } +// RepoApiImpl------------------------------------------------------------------------------------------- +@Inject +public RepositoryApiImpl(ProcessingIndexFeeder processingIndexFeeder, @Named("akubraCacheManager") CacheManager cacheManager) throws RepositoryException { + try { + AkubraDOManager akubraDOManager = new AkubraDOManager(cacheManager); + this.akubraRepositoryImpl = (AkubraRepositoryImpl) AkubraRepositoryImpl.build(processingIndexFeeder, akubraDOManager); + this.digitalObjectUnmarshaller = JAXBContext.newInstance(DigitalObject.class).createUnmarshaller(); + } catch (IOException e) { + throw new RepositoryException(e); + } catch (JAXBException e) { + throw new RepositoryException("Error initializing JAXB unmarshaller for " + DigitalObject.class.getName()); + } +} + + @Override + public void ingestObject(org.dom4j.Document foxmlDoc, String pid) throws RepositoryException, IOException { + DigitalObject digitalObject = foxmlDocToDigitalObject(foxmlDoc); + Lock writeLock = AkubraDOManager.getWriteLock(pid); + try { + akubraRepositoryImpl.ingestObject(digitalObject); + akubraRepositoryImpl.commitTransaction(); + } finally { + writeLock.unlock(); + } + } + + @Override + public boolean objectExists(String pid) throws RepositoryException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + return akubraRepositoryImpl.objectExists(pid); + } finally { + readLock.unlock(); + } + } + + @Override + public String getProperty(String pid, String propertyName) throws IOException, RepositoryException { + org.dom4j.Document objectFoxml = getFoxml(pid); + return objectFoxml == null ? null : extractProperty(objectFoxml, propertyName); + } + + @Override + public String getPropertyLabel(String pid) throws IOException, RepositoryException { + return getProperty(pid, "info:fedora/fedora-system:def/model#label"); + } + + @Override + public LocalDateTime getPropertyCreated(String pid) throws IOException, RepositoryException { + String propertyValue = getProperty(pid, "info:fedora/fedora-system:def/model#createdDate"); + if (propertyValue != null) { + try { + return LocalDateTime.parse(propertyValue, RepositoryApi.TIMESTAMP_FORMATTER); + } catch (DateTimeParseException e) { + System.out.println(String.format("cannot parse createdDate %s from object %s", propertyValue, pid)); + } + } + return null; + } + + @Override + public LocalDateTime getPropertyLastModified(String pid) throws IOException, RepositoryException { + String propertyValue = getProperty(pid, "info:fedora/fedora-system:def/view#lastModifiedDate"); + if (propertyValue != null) { + try { + return LocalDateTime.parse(propertyValue, RepositoryApi.TIMESTAMP_FORMATTER); + } catch (DateTimeParseException e) { + System.out.println(String.format("cannot parse lastModifiedDate %s from object %s", propertyValue, pid)); + } + } + return null; + } + + + + @Override + public List getDatastreamNames(String pid) throws RepositoryException, IOException, SolrServerException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + List streams = object.getStreams(); + return streams.stream().map(it -> { + try { + return it.getName(); + } catch (RepositoryException e) { + LOGGER.log(Level.SEVERE,e.getMessage(),e); + return null; + } + }).collect(Collectors.toList()); + } finally { + readLock.unlock(); + } + } + + @Override + public org.dom4j.Document getFoxml(String pid) throws RepositoryException, IOException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + return Utils.inputstreamToDocument(object.getFoxml(), true); + } finally { + readLock.unlock(); + } + } + + @Override + public boolean datastreamExists(String pid, String dsId) throws RepositoryException, IOException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + return object == null ? false : object.streamExists(dsId); + } finally { + readLock.unlock(); + } + } + + @Override + public String getDatastreamMimetype(String pid, String dsId) throws RepositoryException, IOException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + if (object != null) { + RepositoryDatastream stream = object.getStream(dsId); + if (stream != null) { + return stream.getMimeType(); + } + } + return null; + } finally { + readLock.unlock(); + } + } + + @Override + public org.dom4j.Document getDatastreamXml(String pid, String dsId) throws RepositoryException, IOException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + if (object.streamExists(dsId)) { + org.dom4j.Document foxml = Utils.inputstreamToDocument(object.getFoxml(), true); + org.dom4j.Element dcEl = (org.dom4j.Element) Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:datastream[@ID='%s']", dsId)).selectSingleNode(foxml); + org.dom4j.Element detached = (org.dom4j.Element) dcEl.detach(); + org.dom4j.Document result = DocumentHelper.createDocument(); + result.add(detached); + return result; + } else { + return null; + } + } finally { + readLock.unlock(); + } + } + + public String getTypeOfDatastream(String pid, String dsId) throws RepositoryException, IOException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + if (object.streamExists(dsId)) { + RepositoryDatastream stream = object.getStream(dsId); + return stream.getStreamType().name(); + } else { + return null; + } + } finally { + readLock.unlock(); + } + } + + @Override + public InputStream getLatestVersionOfDatastream(String pid, String dsId) throws RepositoryException, IOException { + Lock readLock = AkubraDOManager.getReadLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + if (object.streamExists(dsId)) { + RepositoryDatastream stream = object.getStream(dsId); + return stream.getContent(); + } else { + return null; + } + } finally { + readLock.unlock(); + } + } + + @Override + public org.dom4j.Document getLatestVersionOfInlineXmlDatastream(String pid, String dsId) throws RepositoryException, IOException { + InputStream is = getLatestVersionOfDatastream(pid, dsId); + return is == null ? null : Utils.inputstreamToDocument(is, true); + } + + @Override + public String getLatestVersionOfManagedTextDatastream(String pid, String dsId) throws RepositoryException, IOException { + InputStream is = getLatestVersionOfDatastream(pid, dsId); + return is == null ? null : Utils.inputstreamToString(is); + } + + @Override + public List getPidsOfAllObjects() throws RepositoryException, IOException, SolrServerException { + List pids = new ArrayList<>(); + //TODO: offset, limit + String query = "type:description"; + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByPid(query, (doc) -> { + Object fieldValue = doc.getFieldValue("source"); + if (fieldValue != null) { + String valueStr = fieldValue.toString(); + pids.add(valueStr); + } + }); + return pids; + } + + @Override + public List getPidsOfObjectsByModel(String model) throws RepositoryException, IOException, SolrServerException { + List pids = new ArrayList<>(); + //TODO: offset, limit + String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze uprime zbytecne + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByTitle(query, (doc) -> { + Object fieldValue = doc.getFieldValue("source"); + if (fieldValue != null) { + String valueStr = fieldValue.toString(); + pids.add(valueStr); + } + }); + return pids; + } + + + @Override + public Pair> getPidsOfObjectsByModel(String model, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException { + String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze uprime zbytecne + org.apache.commons.lang3.tuple.Pair> cp = akubraRepositoryImpl.getProcessingIndexFeeder().getPageSortedByTitle(query, rows, pageIndex, Arrays.asList("source")); + Long numberOfRecords = cp.getLeft(); + List pids = cp.getRight().stream().map(sd -> { + Object fieldValue = sd.getFieldValue("source"); + return fieldValue.toString(); + }).collect(Collectors.toList()); + return new Pair<>(numberOfRecords, pids); + } + + //TODO : Should be replaced by pairs + @Override + public Pair> getPidsOfObjectsByModel(String model, String titlePrefix, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException { + String query = String.format("type:description AND model:%s", "model\\:" + model); + if (StringUtils.isAnyString(titlePrefix)) { + query = String.format("type:description AND model:%s AND title_edge:%s", "model\\:" + model, titlePrefix); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze uprime zbytecne + } + org.apache.commons.lang3.tuple.Pair> cp = akubraRepositoryImpl.getProcessingIndexFeeder().getPageSortedByTitle(query, rows, pageIndex, Arrays.asList("source")); + Long numberOfRecords = cp.getLeft(); + List pids = cp.getRight().stream().map(sd -> { + Object fieldValue = sd.getFieldValue("source"); + return fieldValue.toString(); + }).collect(Collectors.toList()); + return new Pair<>(numberOfRecords, pids); + } + + @Override + public TitlePidPairs getPidsOfObjectsWithTitlesByModel(String model, boolean ascendingOrder, int offset, int limit) throws RepositoryException, IOException, SolrServerException { + List> titlePidPairs = new ArrayList<>(); + String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze je mozna zbytecne (ten prefix) + akubraRepositoryImpl.getProcessingIndexFeeder().iterateSectionOfProcessingSortedByTitle(query, ascendingOrder, offset, limit, (doc) -> { + Object fieldPid = doc.getFieldValue("source"); + Object fieldTitle = doc.getFieldValue("dc.title"); + String pid = null; + String title = null; + if (fieldPid != null) { + pid = fieldPid.toString(); + } + if (fieldTitle != null) { + title = fieldTitle.toString().trim(); + } + titlePidPairs.add(new Pair(title, pid)); + }); + TitlePidPairs result = new TitlePidPairs(); + result.titlePidPairs = titlePidPairs; + return result; + } + + @Override + public TitlePidPairs getPidsOfObjectsWithTitlesByModelWithCursor(String model, boolean ascendingOrder, String cursor, int limit) throws RepositoryException, IOException, SolrServerException { + List> titlePidPairs = new ArrayList<>(); + String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze je mozna zbytecne (ten prefix) + String nextCursorMark = akubraRepositoryImpl.getProcessingIndexFeeder().iterateSectionOfProcessingSortedByTitleWithCursor(query, ascendingOrder, cursor, limit, (doc) -> { + Object fieldPid = doc.getFieldValue("source"); + Object fieldTitle = doc.getFieldValue("dc.title"); + String pid = null; + String title = null; + if (fieldPid != null) { + pid = fieldPid.toString(); + } + if (fieldTitle != null) { + title = fieldTitle.toString().trim(); + } + titlePidPairs.add(new Pair(title, pid)); + }); + TitlePidPairs result = new TitlePidPairs(); + result.titlePidPairs = titlePidPairs; + result.nextCursorMark = nextCursorMark; + return result; + } + + @Override + public Map getDescription(String objectPid) throws RepositoryException, IOException, SolrServerException { + Map description = new HashMap<>(); + String query = String.format("type:description AND source:%s", objectPid.replace(":", "\\:")); + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByPid(query, (doc) -> { //iterating, but there should only be one hit + for (String name : doc.getFieldNames()) { + description.put(name, doc.getFieldValue(name).toString()); + } + }); + return description; + } + + @Override + public List getTripletTargets(String sourcePid, String relation) throws RepositoryException, IOException, SolrServerException { + List pids = new ArrayList<>(); + String query = String.format("source:%s AND relation:%s", sourcePid.replace(":", "\\:"), relation); + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { + Object fieldValue = doc.getFieldValue("targetPid"); + if (fieldValue != null) { + String valueStr = fieldValue.toString(); + pids.add(valueStr); + } + }); + return pids; + } + + @Override + public List getTripletTargets(String sourcePid) throws RepositoryException, IOException, SolrServerException { + List triplets = new ArrayList<>(); + String query = String.format("source:%s", sourcePid.replace(":", "\\:")); + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { + Object targetPid = doc.getFieldValue("targetPid"); + Object relation = doc.getFieldValue("relation"); + if (targetPid != null && relation != null) { + triplets.add(new Triplet(sourcePid, relation.toString(), targetPid.toString())); + } + }); + return triplets; + } + + @Override + public List getTripletSources(String relation, String targetPid) throws RepositoryException, IOException, SolrServerException { + List pids = new ArrayList<>(); + String query = String.format("relation:%s AND targetPid:%s", relation, targetPid.replace(":", "\\:")); + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { + Object fieldValue = doc.getFieldValue("source"); + if (fieldValue != null) { + String valueStr = fieldValue.toString(); + pids.add(valueStr); + } + }); + return pids; + } + + @Override + public List getTripletSources(String targetPid) throws RepositoryException, IOException, SolrServerException { + List triplets = new ArrayList<>(); + String query = String.format("targetPid:%s", targetPid.replace(":", "\\:")); + akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { + Object sourcePid = doc.getFieldValue("source"); + Object relation = doc.getFieldValue("relation"); + if (sourcePid != null && relation != null) { + triplets.add(new Triplet(sourcePid.toString(), relation.toString(), targetPid)); + } + }); + return triplets; + } + + + @Override + public void updateInlineXmlDatastream(String pid, String dsId, org.dom4j.Document streamDoc, String formatUri) throws RepositoryException, IOException { + Lock writeLock = AkubraDOManager.getWriteLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + + object.deleteStream(dsId); + object.createStream(dsId, "text/xml", new ByteArrayInputStream(streamDoc.asXML().getBytes(Charset.forName("UTF-8")))); + + } finally { + writeLock.unlock(); + } + } + + public void updateBinaryDatastream(String pid, String streamName, String mimeType, byte[] byteArray) throws RepositoryException { + Lock writeLock = AkubraDOManager.getWriteLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + if (object != null) { + if (object.streamExists(streamName)) { + object.deleteStream(streamName); + } + ByteArrayInputStream bos = new ByteArrayInputStream(byteArray); + object.createManagedStream(streamName, mimeType, bos); + } + } finally { + writeLock.unlock(); + } + } + + public void deleteDatastream(String pid, String streamName) throws RepositoryException { + Lock writeLock = AkubraDOManager.getWriteLock(pid); + try { + RepositoryObject object = akubraRepositoryImpl.getObject(pid); + if (object != null) { + if (object.streamExists(streamName)) { + object.deleteStream(streamName); + } + } + } finally { + writeLock.unlock(); + } + } + + + @Override + public void setDatastreamXml(String pid, String dsId, org.dom4j.Document ds) throws RepositoryException, IOException { + Lock writeLock = AkubraDOManager.getWriteLock(pid); + try { + org.dom4j.Document foxml = getFoxml(pid); + org.dom4j.Element originalDsEl = (org.dom4j.Element) Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:datastream[@ID='%s']", dsId)).selectSingleNode(foxml); + if (originalDsEl != null) { + originalDsEl.detach(); + } + foxml.getRootElement().add(ds.getRootElement().detach()); + updateLastModifiedTimestamp(foxml); + DigitalObject updatedDigitalObject = foxmlDocToDigitalObject(foxml); + akubraRepositoryImpl.deleteObject(pid, false, false); + akubraRepositoryImpl.ingestObject(updatedDigitalObject); + akubraRepositoryImpl.commitTransaction(); + } finally { + writeLock.unlock(); + } + } + + private void updateLastModifiedTimestamp(org.dom4j.Document foxml) { + Attribute valueAttr = (Attribute) Dom4jUtils.buildXpath("/foxml:digitalObject/foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/view#lastModifiedDate']/@VALUE").selectSingleNode(foxml); + if (valueAttr != null) { + valueAttr.setValue(LocalDateTime.now().format(TIMESTAMP_FORMATTER)); + } else { + org.dom4j.Element objectProperties = (org.dom4j.Element) Dom4jUtils.buildXpath("/foxml:digitalObject/foxml:objectProperties").selectSingleNode(foxml); + org.dom4j.Element propertyLastModified = objectProperties.addElement(new QName("property", NS_FOXML)); + propertyLastModified.addAttribute("NAME", "info:fedora/fedora-system:def/view#lastModifiedDate"); + propertyLastModified.addAttribute("VALUE", LocalDateTime.now().format(RepositoryApi.TIMESTAMP_FORMATTER)); + } + } + + private void appendNewInlineXmlDatastreamVersion(org.dom4j.Document foxml, String dsId, org.dom4j.Document streamDoc, String formatUri) { + org.dom4j.Element datastreamEl = (org.dom4j.Element) Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:datastream[@ID='%s']", dsId)).selectSingleNode(foxml); + if (datastreamEl != null) { + int latestDsIdVersion = extractLatestDsIdVersion(datastreamEl); + int newDsIdVesion = latestDsIdVersion + 1; + org.dom4j.Element dsVersionEl = datastreamEl.addElement("datastreamVersion", NAMESPACE_FOXML); + dsVersionEl.addAttribute("ID", dsId + "." + newDsIdVesion); + dsVersionEl.addAttribute("CREATED", LocalDateTime.now().format(TIMESTAMP_FORMATTER)); + dsVersionEl.addAttribute("MIMETYPE", "application/xml"); + if (formatUri != null) { + dsVersionEl.addAttribute("FORMAT_URI", formatUri); + } + org.dom4j.Element xmlContentEl = dsVersionEl.addElement("xmlContent", NAMESPACE_FOXML); + xmlContentEl.add(streamDoc.getRootElement().detach()); + } + } + + private int extractLatestDsIdVersion(org.dom4j.Element datastreamEl) { + List dsVersionEls = Dom4jUtils.buildXpath("foxml:datastreamVersion").selectNodes(datastreamEl); + int maxVersion = -1; + for (org.dom4j.Node node : dsVersionEls) { + org.dom4j.Element versionEl = (org.dom4j.Element) node; + String ID = Dom4jUtils.stringOrNullFromAttributeByName(versionEl, "ID"); + int versionNumber = Integer.valueOf(ID.split("\\.")[1]); + if (versionNumber > maxVersion) { + maxVersion = versionNumber; + } + } + return maxVersion; + } + + @Override + public void deleteObject(String pid, boolean deleteDataOfManagedDatastreams) throws RepositoryException, IOException { + Lock writeLock = AkubraDOManager.getWriteLock(pid); + try { + akubraRepositoryImpl.deleteObject(pid, deleteDataOfManagedDatastreams, true); + akubraRepositoryImpl.commitTransaction(); + } finally { + writeLock.unlock(); + } + } + + private DigitalObject foxmlDocToDigitalObject(org.dom4j.Document foxml) throws IOException { + try { + return (DigitalObject) digitalObjectUnmarshaller.unmarshal(new StringReader(foxml.asXML())); + } catch (JAXBException e) { + throw new IOException(e); + } + } + + private String extractProperty(org.dom4j.Document foxmlDoc, String name) { + org.dom4j.Node node = Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:objectProperties/foxml:property[@NAME='%s']/@VALUE", name)).selectSingleNode(foxmlDoc); + return node == null ? null : Dom4jUtils.toStringOrNull(node); + } + + //--------- KraRepositoryAPIIMPl + @javax.inject.Inject + private RepositoryApiImpl repositoryApi; + + @javax.inject.Inject + private AggregatedAccessLogs accessLog; + + + @Override + public RepositoryApi getLowLevelApi() { + return repositoryApi; + } + + @Override + public boolean isRelsExtAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.RELS_EXT.toString()); + } + + @Override + public org.dom4j.Document getRelsExt(String pid, boolean namespaceAware) throws IOException, RepositoryException { + org.dom4j.Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.RELS_EXT.toString()); + if (doc != null && !namespaceAware) { + doc.accept(new NamespaceRemovingVisitor(true, true)); + } + return doc; + } + + @Override + public boolean isModsAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.BIBLIO_MODS.toString()); + } + + @Override + public org.dom4j.Document getMods(String pid, boolean namespaceAware) throws IOException, RepositoryException { + org.dom4j.Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_MODS.toString()); + if (doc != null && !namespaceAware) { + doc.accept(new NamespaceRemovingVisitor(true, true)); + } + return doc; + } + + @Override + public boolean isDublinCoreAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.BIBLIO_DC.toString()); + } + + @Override + public org.dom4j.Document getDublinCore(String pid, boolean namespaceAware) throws IOException, RepositoryException { + org.dom4j.Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_DC.toString()); + if (doc != null && !namespaceAware) { + doc.accept(new NamespaceRemovingVisitor(true, true)); + } + return doc; + } + + @Override + public boolean isOcrTextAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.OCR_TEXT.toString()); + } + + @Override + public String getOcrText(String pid) throws IOException, RepositoryException { + return repositoryApi.getLatestVersionOfManagedTextDatastream(pid, KnownDatastreams.OCR_TEXT.toString()); + } + + @Override + public boolean isOcrAltoAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.OCR_ALTO.toString()); + } + + @Override + public org.dom4j.Document getOcrAlto(String pid, boolean namespaceAware) throws IOException, RepositoryException { + org.dom4j.Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.OCR_ALTO.toString()); + if (doc != null && !namespaceAware) { + doc.accept(new NamespaceRemovingVisitor(true, true)); + } + return doc; + } + + @Override + public boolean isImgFullAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.IMG_FULL.toString()); + } + + @Override + public String getImgFullMimetype(String pid) throws IOException, RepositoryException { + return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.IMG_FULL.toString()); + } + + @Override + public InputStream getImgFull(String pid) throws IOException, RepositoryException { + this.accessLog.reportAccess(pid, KnownDatastreams.IMG_FULL.toString()); + return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.IMG_FULL.toString()); + } + + @Override + public boolean isImgThumbAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.IMG_THUMB.toString()); + } + + @Override + public String getImgThumbMimetype(String pid) throws IOException, RepositoryException { + return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.IMG_THUMB.toString()); + } + + @Override + public InputStream getImgThumb(String pid) throws IOException, RepositoryException { + return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.IMG_THUMB.toString()); + } + + @Override + public boolean isImgPreviewAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.IMG_PREVIEW.toString()); + } + + @Override + public String getImgPreviewMimetype(String pid) throws IOException, RepositoryException { + return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.IMG_PREVIEW.toString()); + } + + @Override + public InputStream getImgPreview(String pid) throws IOException, RepositoryException { + this.accessLog.reportAccess(pid, KnownDatastreams.IMG_PREVIEW.toString()); + return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.IMG_PREVIEW.toString()); + } + + @Override + public boolean isAudioMp3Available(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.AUDIO_MP3.toString()); + } + + @Override + public String getAudioMp3Mimetype(String pid) throws IOException, RepositoryException { + return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.AUDIO_MP3.toString()); + } + + @Override + public InputStream getAudioMp3(String pid) throws IOException, RepositoryException { + this.accessLog.reportAccess(pid, KnownDatastreams.AUDIO_MP3.toString()); + return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.AUDIO_MP3.toString()); + } + + @Override + public boolean isAudioOggAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.AUDIO_OGG.toString()); + } + + @Override + public String getAudioOggMimetype(String pid) throws IOException, RepositoryException { + return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.AUDIO_OGG.toString()); + } + + @Override + public InputStream getAudioOgg(String pid) throws IOException, RepositoryException { + this.accessLog.reportAccess(pid, KnownDatastreams.AUDIO_OGG.toString()); + return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.AUDIO_OGG.toString()); + } + + @Override + public boolean isAudioWavAvailable(String pid) throws IOException, RepositoryException { + return repositoryApi.datastreamExists(pid, KnownDatastreams.AUDIO_WAV.toString()); + } + + @Override + public String getAudioWavMimetype(String pid) throws IOException, RepositoryException { + return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.AUDIO_WAV.toString()); + } + + @Override + public InputStream getAudioWav(String pid) throws IOException, RepositoryException { + return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.AUDIO_WAV.toString()); + } + + @Override + public String getModel(String objectPid) throws RepositoryException, IOException, SolrServerException { + Map description = repositoryApi.getDescription(objectPid); + String model = description.get("model"); + return model == null ? null : model.substring("model:".length()); + } + + @Override + public Pair> getParents(String objectPid) throws RepositoryException, IOException, SolrServerException { + List pseudoparentTriplets = repositoryApi.getTripletSources(objectPid); + RepositoryApi.Triplet ownParentTriplet = null; + List fosterParentTriplets = new ArrayList<>(); + for (RepositoryApi.Triplet triplet : pseudoparentTriplets) { + if (KrameriusRepositoryApi.isOwnRelation(triplet.relation)) { + if (ownParentTriplet != null) { + throw new RepositoryException(String.format("found multiple own parent relations: %s and %s", ownParentTriplet, triplet)); + } else { + ownParentTriplet = triplet; + } + } else { + fosterParentTriplets.add(triplet); + } + } + return new Pair(ownParentTriplet, fosterParentTriplets); + } + + @Override + public Pair, List> getChildren(String objectPid) throws RepositoryException, IOException, SolrServerException { + List pseudochildrenTriplets = repositoryApi.getTripletTargets(objectPid); + List ownChildrenTriplets = new ArrayList<>(); + List fosterChildrenTriplets = new ArrayList<>(); + for (RepositoryApi.Triplet triplet : pseudochildrenTriplets) { + if (triplet.target.startsWith("uuid:")) { //ignore hasDonator and other indexed relations, that are not binding two objects in repository + if (KrameriusRepositoryApi.isOwnRelation(triplet.relation)) { + ownChildrenTriplets.add(triplet); + } else { + fosterChildrenTriplets.add(triplet); + } + } + } + return new Pair(ownChildrenTriplets, fosterChildrenTriplets); + } + + @Override + public List getPidsOfItemsInCollection(String collectionPid) throws RepositoryException, IOException, SolrServerException { + return repositoryApi.getTripletTargets(collectionPid, KnownRelations.CONTAINS.toString()); + } + + @Override + public List getPidsOfCollectionsContainingItem(String itemPid) throws RepositoryException, IOException, SolrServerException { + return repositoryApi.getTripletSources(KnownRelations.CONTAINS.toString(), itemPid); + } + + @Override + public void updateRelsExt(String pid, org.dom4j.Document relsExtDoc) throws IOException, RepositoryException { + repositoryApi.updateInlineXmlDatastream(pid, KnownDatastreams.RELS_EXT.toString(), relsExtDoc, KnownXmlFormatUris.RELS_EXT); + } + + @Override + public void updateMods(String pid, org.dom4j.Document modsDoc) throws IOException, RepositoryException { + repositoryApi.updateInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_MODS.toString(), modsDoc, KnownXmlFormatUris.BIBLIO_MODS); + } + + @Override + public void updateDublinCore(String pid, org.dom4j.Document dcDoc) throws IOException, RepositoryException { + repositoryApi.updateInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_DC.toString(), dcDoc, KnownXmlFormatUris.BIBLIO_DC); + } + + + @Override + public boolean isPidAvailable(String pid) throws IOException, RepositoryException { + boolean exists = this.repositoryApi.objectExists(pid); + return exists; + } + + @Override + public boolean isStreamAvailable(String pid, String dsId) throws IOException, RepositoryException { + boolean exists = this.repositoryApi.datastreamExists(pid, dsId); + return exists; + } + +} diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/RepoModule.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/RepoModule.java index bf22ecfaaf..7c5cf684bc 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/fedora/RepoModule.java +++ b/shared/common/src/main/java/cz/incad/kramerius/fedora/RepoModule.java @@ -4,8 +4,8 @@ import com.google.inject.Scopes; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.RepositoryAccess; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import org.ehcache.CacheManager; /** @@ -16,7 +16,7 @@ public class RepoModule extends AbstractModule { @Override protected void configure() { - this.bind(FedoraAccess.class).annotatedWith(Names.named("rawFedoraAccess")).to(FedoraAccessAkubraImpl.class).in(Scopes.SINGLETON); + this.bind(RepositoryAccess.class).annotatedWith(Names.named("rawFedoraAccess")).to(RepositoryAccessImpl.class).in(Scopes.SINGLETON); this.bind(CacheManager.class).annotatedWith(Names.named("akubraCacheManager")).toProvider(EhCacheProvider.class).in(Scopes.SINGLETON); } diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessAkubraImpl.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/impl/RepositoryAccessImpl.java similarity index 97% rename from shared/common/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessAkubraImpl.java rename to shared/common/src/main/java/cz/incad/kramerius/fedora/impl/RepositoryAccessImpl.java index da2374eadf..dba6db88f8 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/fedora/impl/FedoraAccessAkubraImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/fedora/impl/RepositoryAccessImpl.java @@ -5,7 +5,7 @@ import com.qbizm.kramerius.imp.jaxb.DatastreamVersionType; import com.qbizm.kramerius.imp.jaxb.DigitalObject; import cz.incad.kramerius.StreamHeadersObserver; -import cz.incad.kramerius.fedora.AbstractFedoraAccess; +import cz.incad.kramerius.fedora.AbstractRepositoryAccess; import cz.incad.kramerius.fedora.om.AkubraRepository; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; @@ -27,7 +27,7 @@ import java.util.logging.Level; import java.util.stream.Collectors; -public class FedoraAccessAkubraImpl extends AbstractFedoraAccess { +public class RepositoryAccessImpl extends AbstractRepositoryAccess { private AkubraDOManager manager; private AkubraRepository repository; @@ -36,7 +36,7 @@ public class FedoraAccessAkubraImpl extends AbstractFedoraAccess { @Inject - public FedoraAccessAkubraImpl( ProcessingIndexFeeder feeder, @Nullable AggregatedAccessLogs accessLog, @Named("akubraCacheManager") CacheManager cacheManager) throws IOException { + public RepositoryAccessImpl(ProcessingIndexFeeder feeder, @Nullable AggregatedAccessLogs accessLog, @Named("akubraCacheManager") CacheManager cacheManager) throws IOException { super( accessLog); try { this.manager = new AkubraDOManager(cacheManager); diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/om/impl/AkubraRepositoryImpl.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/om/impl/AkubraRepositoryImpl.java index d0649adcaa..d55349650c 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/fedora/om/impl/AkubraRepositoryImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/fedora/om/impl/AkubraRepositoryImpl.java @@ -44,7 +44,7 @@ public class AkubraRepositoryImpl implements AkubraRepository { private ProcessingIndexFeeder feeder; - private AkubraRepositoryImpl(ProcessingIndexFeeder feeder, AkubraDOManager manager) throws RepositoryException { + private AkubraRepositoryImpl() throws RepositoryException { super(); this.feeder = feeder; this.manager = manager; @@ -58,7 +58,7 @@ private AkubraRepositoryImpl(ProcessingIndexFeeder feeder, AkubraDOManager manag * @return * @throws RepositoryException */ - public static final AkubraRepository build(ProcessingIndexFeeder feeder, AkubraDOManager manager) throws RepositoryException { + public static final AkubraRepository build() throws RepositoryException { return new AkubraRepositoryImpl(feeder, manager); } diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/FedoraURLConnection.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/FedoraURLConnection.java index 5a9453c5ce..83a8a40937 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/FedoraURLConnection.java +++ b/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/FedoraURLConnection.java @@ -6,16 +6,16 @@ import java.net.URLConnection; import java.util.StringTokenizer; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; public class FedoraURLConnection extends URLConnection { public static final String IMG_FULL = "IMG_FULL"; public static final String IMG_THUMB = "IMG_THUMB"; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; - FedoraURLConnection(URL url, FedoraAccess fedoraAccess) { + FedoraURLConnection(URL url, RepositoryAccess fedoraAccess) { super(url); this.fedoraAccess = fedoraAccess; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/Handler.java b/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/Handler.java index e33b6bc660..b53228adce 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/Handler.java +++ b/shared/common/src/main/java/cz/incad/kramerius/fedora/utils/Handler.java @@ -8,15 +8,14 @@ import com.google.inject.Inject; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.utils.FedoraURLConnection; +import cz.incad.kramerius.RepositoryAccess; public class Handler extends URLStreamHandler { - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; @Inject - public Handler(FedoraAccess fedoraAccess) { + public Handler(RepositoryAccess fedoraAccess) { super(); this.fedoraAccess = fedoraAccess; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/DeepZoomFlagServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/DeepZoomFlagServiceImpl.java index d5fa3a7f17..bcef2567cf 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/DeepZoomFlagServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/DeepZoomFlagServiceImpl.java @@ -27,7 +27,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.TreeNodeProcessor; @@ -39,7 +39,7 @@ public class DeepZoomFlagServiceImpl implements DeepZoomFlagService { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; public void deleteFlagToPID(final String pid) throws IOException { if (fedoraAccess.isImageFULLAvailable(pid)) { diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/Fedora3StreamsDiscStructure.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/Fedora3StreamsDiscStructure.java index 09335679cc..00def18d73 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/Fedora3StreamsDiscStructure.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/Fedora3StreamsDiscStructure.java @@ -2,9 +2,6 @@ import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.io.StringReader; -import java.nio.charset.Charset; import java.util.Arrays; import java.util.Calendar; import java.util.Date; @@ -14,29 +11,17 @@ import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpression; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; import org.antlr.stringtemplate.StringTemplate; -import org.antlr.stringtemplate.StringTemplateGroup; -import org.antlr.stringtemplate.language.DefaultTemplateLexer; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.Text; import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.FedoraNamespaceContext; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.imaging.DiscStrucutreForStore; import cz.incad.kramerius.imaging.paths.Path; import cz.incad.kramerius.imaging.paths.impl.DirPathImpl; import cz.incad.kramerius.utils.FedoraUtils; -import cz.incad.kramerius.utils.IOUtils; /** * Manage same structure for storing objects as fedora 3.
@@ -49,12 +34,12 @@ public class Fedora3StreamsDiscStructure implements DiscStrucutreForStore { @Named("securedFedoraAccess") - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; @Inject - public Fedora3StreamsDiscStructure(@Named("securedFedoraAccess") FedoraAccess fedoraAccess) throws IOException { + public Fedora3StreamsDiscStructure(@Named("securedFedoraAccess") RepositoryAccess fedoraAccess) throws IOException { super(); this.fedoraAccess = fedoraAccess; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImpl.java index 15950f4fbd..5d04fe81c9 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImpl.java @@ -2,25 +2,20 @@ import java.awt.Dimension; import java.awt.image.BufferedImage; -import java.io.File; -import java.io.FileFilter; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.Writer; import java.util.Arrays; import java.util.logging.Level; -import javax.imageio.stream.FileImageOutputStream; import javax.imageio.stream.ImageOutputStreamImpl; import org.antlr.stringtemplate.StringTemplate; -import org.apache.commons.io.output.FileWriterWithEncoding; import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.TreeNodeProcessor; import cz.incad.kramerius.imaging.DeepZoomCacheService; @@ -51,7 +46,7 @@ public class FileSystemCacheServiceImpl implements DeepZoomCacheService { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject DeepZoomTileSupport tileSupport; diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/TileSupportImpl.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/TileSupportImpl.java index 4f7202bffe..1fc46d8391 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/TileSupportImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/impl/TileSupportImpl.java @@ -11,7 +11,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.imaging.DeepZoomFullImageScaleFactor; import cz.incad.kramerius.imaging.DeepZoomTileSupport; import cz.incad.kramerius.utils.FedoraUtils; @@ -33,7 +33,7 @@ public class TileSupportImpl implements DeepZoomTileSupport { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration kConfiguration = KConfiguration.getInstance(); diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/DeleteGeneratedDeepZoomCache.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/DeleteGeneratedDeepZoomCache.java index e0e109155f..2deab80b1a 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/DeleteGeneratedDeepZoomCache.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/DeleteGeneratedDeepZoomCache.java @@ -17,14 +17,11 @@ package cz.incad.kramerius.imaging.lp; -import java.io.File; import java.io.IOException; -import java.util.Arrays; import javax.xml.xpath.XPathExpressionException; import cz.incad.kramerius.statistics.NullStatisticsModule; -import org.apache.commons.io.FileUtils; import org.w3c.dom.DOMException; import com.google.inject.Guice; @@ -32,7 +29,7 @@ import com.google.inject.Key; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.TreeNodeProcessor; import cz.incad.kramerius.imaging.DiscStrucutreForStore; @@ -40,7 +37,6 @@ import cz.incad.kramerius.imaging.lp.guice.GenerateDeepZoomCacheModule; import cz.incad.kramerius.imaging.paths.DirPath; import cz.incad.kramerius.imaging.paths.Path; -import cz.incad.kramerius.impl.AbstractTreeNodeProcessorAdapter; import cz.incad.kramerius.processes.utils.ProcessUtils; import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.pid.LexerException; @@ -58,7 +54,7 @@ public class DeleteGeneratedDeepZoomCache { public static void main(String[] args) throws IOException, ProcessSubtreeException { if (args.length == 1) { Injector injector = Guice.createInjector(new GenerateDeepZoomCacheModule(), new Fedora3Module(), new NullStatisticsModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); DiscStrucutreForStore discStruct = injector.getInstance(DiscStrucutreForStore.class); deleteCacheForPID(args[0], fa, discStruct); @@ -79,7 +75,7 @@ public static void main(String[] args) throws IOException, ProcessSubtreeExcepti * @throws IOException IO error has been occurred * @throws ProcessSubtreeException Error in tree walking */ - public static void deleteCacheForPID(String pid, final FedoraAccess fedoraAccess, final DiscStrucutreForStore discStruct) throws IOException, ProcessSubtreeException { + public static void deleteCacheForPID(String pid, final RepositoryAccess fedoraAccess, final DiscStrucutreForStore discStruct) throws IOException, ProcessSubtreeException { if (fedoraAccess.isImageFULLAvailable(pid)) { try { deleteFolder(pid, discStruct); diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/GenerateThumbnail.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/GenerateThumbnail.java index c866469407..4f2aace0bb 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/GenerateThumbnail.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/GenerateThumbnail.java @@ -18,7 +18,7 @@ import com.google.inject.Key; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.TreeNodeProcessor; import cz.incad.kramerius.fedora.om.AkubraRepository; @@ -44,14 +44,14 @@ public static void main(String[] args) throws IOException { System.out.println("Generate thumbnails :" + Arrays.asList(args)); if (args.length == 1) { Injector injector = Guice.createInjector(new GenerateDeepZoomCacheModule(), new Fedora3Module(), new NullStatisticsModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("securedFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("securedFedoraAccess"))); DeepZoomTileSupport tileSupport = injector.getInstance(DeepZoomTileSupport.class); DiscStrucutreForStore discStruct = injector.getInstance(DiscStrucutreForStore.class); prepareCacheForUUID(args[0], fa, discStruct, tileSupport); } } - public static void prepareCacheForUUID(String pid, final FedoraAccess fedoraAccess, final DiscStrucutreForStore discStruct, final DeepZoomTileSupport tileSupport) throws IOException { + public static void prepareCacheForUUID(String pid, final RepositoryAccess fedoraAccess, final DiscStrucutreForStore discStruct, final DeepZoomTileSupport tileSupport) throws IOException { if (fedoraAccess.isImageFULLAvailable(pid)) { try { @@ -139,7 +139,7 @@ public boolean accept(FedoraRelationship relation, String relationShipName) { } } - public static void prepareThumbnail(String pid, FedoraAccess fedoraAccess, DiscStrucutreForStore discStruct, DeepZoomTileSupport tileSupport) throws IOException, XPathExpressionException, LexerException, RepositoryException { + public static void prepareThumbnail(String pid, RepositoryAccess fedoraAccess, DiscStrucutreForStore discStruct, DeepZoomTileSupport tileSupport) throws IOException, XPathExpressionException, LexerException, RepositoryException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String uuid = pidParser.getObjectId(); @@ -176,7 +176,7 @@ public static void prepareThumbnail(String pid, FedoraAccess fedoraAccess, DiscS } - public static BufferedImage scaleToFullThumb(String pid, FedoraAccess fedoraAccess, DeepZoomTileSupport tileSupport) throws XPathExpressionException, IOException { + public static BufferedImage scaleToFullThumb(String pid, RepositoryAccess fedoraAccess, DeepZoomTileSupport tileSupport) throws XPathExpressionException, IOException { BufferedImage img = KrameriusImageSupport.readImage(pid, FedoraUtils.IMG_FULL_STREAM, fedoraAccess, 0); if (img != null) { Dimension dim = new Dimension(img.getWidth(), img.getHeight()); diff --git a/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/guice/GenerateDeepZoomCacheModule.java b/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/guice/GenerateDeepZoomCacheModule.java index bb572c1519..5c58a35c68 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/guice/GenerateDeepZoomCacheModule.java +++ b/shared/common/src/main/java/cz/incad/kramerius/imaging/lp/guice/GenerateDeepZoomCacheModule.java @@ -1,12 +1,11 @@ package cz.incad.kramerius.imaging.lp.guice; -import java.io.IOException; - import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.imaging.DeepZoomCacheService; import cz.incad.kramerius.imaging.DeepZoomFlagService; import cz.incad.kramerius.imaging.DeepZoomTileSupport; @@ -14,12 +13,6 @@ import cz.incad.kramerius.imaging.impl.FileSystemCacheServiceImpl; import cz.incad.kramerius.imaging.impl.SimpleMemoryCacheServiceWrapper; import cz.incad.kramerius.imaging.impl.TileSupportImpl; -import cz.incad.kramerius.statistics.ReportedAction; -import cz.incad.kramerius.statistics.StatisticReport; -import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.statistics.StatisticsAccessLogSupport; -import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; -import cz.incad.kramerius.utils.conf.KConfiguration; public class GenerateDeepZoomCacheModule extends AbstractModule { @@ -27,7 +20,7 @@ public class GenerateDeepZoomCacheModule extends AbstractModule { protected void configure() { // mapped plain fedoraAccess as secured. In this process it is not // necessary to have checked access to fedora. - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).to(cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl.class) + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).to(RepositoryAccessImpl.class) .in(Scopes.SINGLETON); // bind(StatisticsAccessLog.class).annotatedWith(Names.named("database")).to(GenerateDeepZoomCacheModule.NoStatistics.class).in(Scopes.SINGLETON); diff --git a/shared/common/src/main/java/cz/incad/kramerius/impl/CachedFedoraAccessImpl.java b/shared/common/src/main/java/cz/incad/kramerius/impl/CachedFedoraAccessImpl.java index ed0beebb42..9f93c20567 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/impl/CachedFedoraAccessImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/impl/CachedFedoraAccessImpl.java @@ -31,7 +31,7 @@ * * @author Martin Rumanek */ -public class CachedFedoraAccessImpl implements FedoraAccess, FedoraCacheAwareness { +public class CachedFedoraAccessImpl implements RepositoryAccess, FedoraCacheAwareness { private static Cache xmlscache; private static Cache existsCache; @@ -43,10 +43,10 @@ public class CachedFedoraAccessImpl implements FedoraAccess, FedoraCacheAwarene private static final String LAST_MODIFIED_CACHE_ALIAS = "FedoraLastmodifiedCache"; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; @Inject - public CachedFedoraAccessImpl( @Named("rawFedoraAccess") FedoraAccess fedoraAccess, + public CachedFedoraAccessImpl( @Named("rawFedoraAccess") RepositoryAccess fedoraAccess, CacheManager cacheManager) throws IOException { this.fedoraAccess = fedoraAccess; diff --git a/shared/common/src/main/java/cz/incad/kramerius/impl/MostDesirableImpl.java b/shared/common/src/main/java/cz/incad/kramerius/impl/MostDesirableImpl.java index 9f91a8ab1b..8e049e6c5f 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/impl/MostDesirableImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/impl/MostDesirableImpl.java @@ -7,18 +7,16 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; -import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.logging.Level; -import java.util.logging.SimpleFormatter; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.MostDesirable; import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.database.JDBCQueryTemplate; @@ -28,13 +26,13 @@ public class MostDesirableImpl implements MostDesirable { private Provider provider; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; @Inject public MostDesirableImpl( @Named("kramerius4") Provider provider, - @Named("securedFedoraAccess") FedoraAccess fa) { + @Named("securedFedoraAccess") RepositoryAccess fa) { super(); this.provider = provider; this.fedoraAccess = fa; diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/commands/render/RenderPDF.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/commands/render/RenderPDF.java index afe3ea51a9..81eb0fe7b8 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/commands/render/RenderPDF.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/commands/render/RenderPDF.java @@ -42,7 +42,7 @@ import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.pdf.draw.LineSeparator; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.pdf.commands.AbstractITextCommand.Hyphenation; import cz.incad.kramerius.pdf.commands.ITextCommand; import cz.incad.kramerius.pdf.commands.ITextCommandProcessListener; @@ -51,7 +51,6 @@ import cz.incad.kramerius.pdf.commands.Line; import cz.incad.kramerius.pdf.commands.List; import cz.incad.kramerius.pdf.commands.ListItem; -import cz.incad.kramerius.pdf.commands.LogoImage; import cz.incad.kramerius.pdf.commands.PageBreak; import cz.incad.kramerius.pdf.commands.Paragraph; import cz.incad.kramerius.pdf.commands.Text; @@ -70,9 +69,9 @@ public class RenderPDF { static java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(RenderPDF.class.getName()); private FontMap fontMap; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; - public RenderPDF(FontMap fontMap, FedoraAccess fedoraAccess) { + public RenderPDF(FontMap fontMap, RepositoryAccess fedoraAccess) { super(); this.fontMap = fontMap; this.fedoraAccess = fedoraAccess; @@ -212,15 +211,15 @@ class Processor implements ITextCommandProcessListener { private Document pdfDoc; private PdfWriter pdfWriter; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private Stack createdElm = new Stack<>(); private final String footer; private final String header; - public Processor(Document pdfDoc, PdfWriter pdfWriter, FedoraAccess fedoraAccess, String footer, - String header) { + public Processor(Document pdfDoc, PdfWriter pdfWriter, RepositoryAccess fedoraAccess, String footer, + String header) { super(); this.pdfDoc = pdfDoc; this.pdfWriter = pdfWriter; diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImpl.java index c2b763f0f7..96988ca38e 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImpl.java @@ -48,7 +48,7 @@ import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfWriter; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.document.model.AbstractPage; @@ -78,7 +78,7 @@ public class FirstPagePDFServiceImpl implements FirstPagePDFService { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject TextsService textsService; diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/GeneratePDFServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/GeneratePDFServiceImpl.java index f8413543c0..6bace68c85 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/GeneratePDFServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/GeneratePDFServiceImpl.java @@ -57,7 +57,7 @@ public class GeneratePDFServiceImpl extends AbstractPDFRenderSupport implements public static final java.util.logging.Logger LOGGER = java.util.logging.Logger .getLogger(GeneratePDFServiceImpl.class.getName()); - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private Provider localeProvider; private TextsService textsService; private ResourceBundleService resourceBundleService; @@ -68,7 +68,7 @@ public class GeneratePDFServiceImpl extends AbstractPDFRenderSupport implements @Inject public GeneratePDFServiceImpl( - @Named("securedFedoraAccess") FedoraAccess fedoraAccess, + @Named("securedFedoraAccess") RepositoryAccess fedoraAccess, @Named("new-index")SolrAccess solrAccess, Provider localeProvider, TextsService textsService, ResourceBundleService resourceBundleService, @@ -370,7 +370,7 @@ private File prepareXSLStyleSheet(Locale locale, String i18nUrl, return tmpFile; } - public String xslt(FedoraAccess fa, File styleSheet, String uuid) + public String xslt(RepositoryAccess fa, File styleSheet, String uuid) throws IOException, TransformerException { TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/ImageFetcher.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/ImageFetcher.java index fa3649701e..9c6061fd68 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/ImageFetcher.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/ImageFetcher.java @@ -7,7 +7,7 @@ import javax.xml.xpath.XPathExpressionException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.imaging.ImageStreams; import cz.incad.kramerius.utils.imgs.ImageMimeType; import cz.incad.kramerius.utils.imgs.KrameriusImageSupport; @@ -16,7 +16,7 @@ public enum ImageFetcher { PROCESS { @Override - public BufferedImage fetch(String pid, String imgServlet, ImageMimeType imageMimeType, FedoraAccess fedoraAccess) throws IOException{ + public BufferedImage fetch(String pid, String imgServlet, ImageMimeType imageMimeType, RepositoryAccess fedoraAccess) throws IOException{ try { BufferedImage javaImg = KrameriusImageSupport.readImage(new URL(createIMGFULL(pid, imgServlet)), imageMimeType, 0); return javaImg; @@ -27,7 +27,7 @@ public BufferedImage fetch(String pid, String imgServlet, ImageMimeType imageMim }, WEB { @Override - public BufferedImage fetch(String pid, String imgServlet, ImageMimeType imageMimeType, FedoraAccess fedoraAccess) throws IOException { + public BufferedImage fetch(String pid, String imgServlet, ImageMimeType imageMimeType, RepositoryAccess fedoraAccess) throws IOException { try { BufferedImage img = KrameriusImageSupport.readImage(pid, ImageStreams.IMG_FULL.name(), fedoraAccess, 0); return img; @@ -42,5 +42,5 @@ private static String createIMGFULL(String objectId, String imgServletUrl) { return imgUrl; } - public abstract BufferedImage fetch(String pid, String imgServlet, ImageMimeType mimeType, FedoraAccess fedoraAccess) throws IOException; + public abstract BufferedImage fetch(String pid, String imgServlet, ImageMimeType mimeType, RepositoryAccess fedoraAccess) throws IOException; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/STUtils.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/STUtils.java index 297cf46f30..7a4bfccf33 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/STUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/STUtils.java @@ -3,8 +3,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; @@ -12,33 +10,17 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Stack; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; import org.antlr.stringtemplate.StringTemplate; import org.antlr.stringtemplate.StringTemplateGroup; import org.antlr.stringtemplate.language.DefaultTemplateLexer; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; -import cz.incad.kramerius.KrameriusModels; import cz.incad.kramerius.utils.IOUtils; -import cz.incad.kramerius.utils.XMLUtils; public class STUtils { @@ -68,7 +50,7 @@ public static void main(String[] args) { System.out.println(createBundleURL(Locale.getDefault(), " http://localhost:8080/search/i18n")); } - public static String metadata(FedoraAccess fedoraAccess, String parentUUID) throws IOException { + public static String metadata(RepositoryAccess fedoraAccess, String parentUUID) throws IOException { org.w3c.dom.Document biblioMods = fedoraAccess.getDC(parentUUID); Element root = biblioMods.getDocumentElement(); Map stModel = prepareDCModel(root); @@ -87,7 +69,7 @@ public static String description() { return description; } - public static String textPage(FedoraAccess fa, String uuid, String modelName, String title) throws IOException { + public static String textPage(RepositoryAccess fa, String uuid, String modelName, String title) throws IOException { org.w3c.dom.Document biblioMods = fa.getBiblioMods(uuid); Element root = biblioMods.getDocumentElement(); Map stModel = prepareBiblioModsModel(root); @@ -99,7 +81,7 @@ public static String textPage(FedoraAccess fa, String uuid, String modelName, St return intpart.toString(); } - public static String internalPart(FedoraAccess fa, String uuid, String title) throws IOException { + public static String internalPart(RepositoryAccess fa, String uuid, String title) throws IOException { org.w3c.dom.Document biblioMods = fa.getBiblioMods(uuid); Element root = biblioMods.getDocumentElement(); Map stModel = prepareBiblioModsModel(root); diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/SimplePDFServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/SimplePDFServiceImpl.java index c81990d6d7..6960828e75 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/SimplePDFServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/impl/SimplePDFServiceImpl.java @@ -22,25 +22,19 @@ import org.antlr.stringtemplate.StringTemplate; import org.xml.sax.SAXException; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.name.Named; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; -import com.lowagie.text.Font; import com.lowagie.text.pdf.PdfWriter; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.ObjectPidsPath; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.document.DocumentService; import cz.incad.kramerius.document.model.AbstractPage; import cz.incad.kramerius.document.model.ImagePage; import cz.incad.kramerius.document.model.PreparedDocument; -import cz.incad.kramerius.document.model.TextPage; import cz.incad.kramerius.imaging.ImageStreams; import cz.incad.kramerius.pdf.SimplePDFService; import cz.incad.kramerius.pdf.commands.ITextCommand; @@ -60,7 +54,7 @@ public class SimplePDFServiceImpl implements SimplePDFService { public static final Logger LOGGER = Logger.getLogger(SimplePDFService.class.getName()); - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private Provider localeProvider; private TextsService textsService; private ResourceBundleService resourceBundleService; @@ -69,7 +63,7 @@ public class SimplePDFServiceImpl implements SimplePDFService { @Inject public SimplePDFServiceImpl( - @Named("securedFedoraAccess") FedoraAccess fedoraAccess, + @Named("securedFedoraAccess") RepositoryAccess fedoraAccess, @Named("new-index") SolrAccess solrAccess, Provider localeProvider, TextsService textsService, ResourceBundleService resourceBundleService) { @@ -134,7 +128,7 @@ public static void deleteFiles(ITextCommands cmds) { } } - public static String template(PreparedDocument rdoc, FedoraAccess fa, TextsService textsService, Locale locale) throws IOException, + public static String template(PreparedDocument rdoc, RepositoryAccess fa, TextsService textsService, Locale locale) throws IOException, FileNotFoundException { StringWriter strWriter = new StringWriter(); diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/FedoraDescribeUtils.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/FedoraDescribeUtils.java index b5274a8eef..59427eea36 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/FedoraDescribeUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/FedoraDescribeUtils.java @@ -17,17 +17,16 @@ package cz.incad.kramerius.pdf.utils; import java.io.IOException; -import java.util.Map; import javax.xml.xpath.XPathExpressionException; import org.w3c.dom.Document; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; public class FedoraDescribeUtils { - public static String getLabel(String pid, FedoraAccess fedoraAccess) throws XPathExpressionException, IOException { + public static String getLabel(String pid, RepositoryAccess fedoraAccess) throws XPathExpressionException, IOException { Document objectProfile = fedoraAccess.getObjectProfile(pid); return ""; diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/ModsUtils.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/ModsUtils.java index 35852c6e54..f31823db63 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/ModsUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/ModsUtils.java @@ -28,17 +28,13 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.FedoraNamespaces; -import cz.incad.kramerius.utils.XMLUtils; - -import javax.swing.JOptionPane; public class ModsUtils { @@ -61,7 +57,7 @@ public class ModsUtils { // } - public static Map getTitleInfo(String pid, FedoraAccess fedoraAccess) throws XPathExpressionException, IOException { + public static Map getTitleInfo(String pid, RepositoryAccess fedoraAccess) throws XPathExpressionException, IOException { Map map = new HashMap(); Document biblioMods = fedoraAccess.getBiblioMods(pid); XPath xpath = FACTORY.newXPath(); diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesMapUtils.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesMapUtils.java index d0cefcc26d..52076a81ff 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesMapUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesMapUtils.java @@ -22,11 +22,7 @@ import org.w3c.dom.Document; -import com.google.inject.Key; -import com.google.inject.name.Names; - -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.KrameriusModels; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.utils.DCUtils; public class TitlesMapUtils { @@ -39,7 +35,7 @@ public class TitlesMapUtils { * @throws IOException * TODO: Zmenit, pouziva deprecated api */ - public static Map mapModels(FedoraAccess fa, String[] path) throws IOException { + public static Map mapModels(RepositoryAccess fa, String[] path) throws IOException { Map map = new HashMap(); for (String u : path) { String modelName = fa.getKrameriusModelName(fa.getRelsExt(u)); @@ -55,7 +51,7 @@ public static Map mapModels(FedoraAccess fa, String[] path) thro * @return Vraci mapu uuid->model * @throws IOException */ - public static Map mapTitlesToUUID(FedoraAccess fa, String[] path) throws IOException { + public static Map mapTitlesToUUID(RepositoryAccess fa, String[] path) throws IOException { Map map = new HashMap(); for (String u : path) { Document dc = fa.getDC(u); diff --git a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesUtils.java b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesUtils.java index db87f7ec50..6ad645619a 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/pdf/utils/TitlesUtils.java @@ -26,18 +26,18 @@ import org.antlr.stringtemplate.StringTemplate; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; public class TitlesUtils { - public static String title(String uuid, SolrAccess solrAccess, FedoraAccess fa, ResourceBundle bundle) throws IOException { + public static String title(String uuid, SolrAccess solrAccess, RepositoryAccess fa, ResourceBundle bundle) throws IOException { return title(uuid, solrAccess, fa, true, bundle); } - public static String title(String pid, SolrAccess solrAccess, FedoraAccess fa, boolean renderModel, ResourceBundle resourceBundle) throws IOException { + public static String title(String pid, SolrAccess solrAccess, RepositoryAccess fa, boolean renderModel, ResourceBundle resourceBundle) throws IOException { ObjectPidsPath[] paths = solrAccess.getPidPaths(pid); @@ -63,7 +63,7 @@ public static String title(String pid, SolrAccess solrAccess, FedoraAccess fa, b } - public static Map translateModels(FedoraAccess fa, String[] path, ResourceBundle resourceBundle) throws IOException { + public static Map translateModels(RepositoryAccess fa, String[] path, ResourceBundle resourceBundle) throws IOException { Map nmodels = new HashMap(); Map mapModels = TitlesMapUtils.mapModels(fa, path); diff --git a/shared/common/src/main/java/cz/incad/kramerius/printing/impl/PrintingServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/printing/impl/PrintingServiceImpl.java index da7f70b0c0..7b7275588e 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/printing/impl/PrintingServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/printing/impl/PrintingServiceImpl.java @@ -64,7 +64,7 @@ import com.google.inject.name.Named; import com.lowagie.text.DocumentException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.SolrAccess; @@ -93,7 +93,7 @@ public class PrintingServiceImpl implements PrintingService { static java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(PrintingServiceImpl.class.getName()); - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private KConfiguration configuration = KConfiguration.getInstance(); private SolrAccess solrAccess; @@ -105,7 +105,7 @@ public class PrintingServiceImpl implements PrintingService { private Provider localesProvider; @Inject - public PrintingServiceImpl(@Named("securedFedoraAccess") FedoraAccess fedoraAccess, @Named("new-index") SolrAccess solrAccess, Provider localeProvider, TextsService textsService, ResourceBundleService resourceBundleService, DocumentService documentService, GeneratePDFService pdfService, Provider userProvider) { + public PrintingServiceImpl(@Named("securedFedoraAccess") RepositoryAccess fedoraAccess, @Named("new-index") SolrAccess solrAccess, Provider localeProvider, TextsService textsService, ResourceBundleService resourceBundleService, DocumentService documentService, GeneratePDFService pdfService, Provider userProvider) { super(); this.fedoraAccess = fedoraAccess; this.solrAccess = solrAccess; @@ -263,12 +263,12 @@ public static class PrintableDoc implements Printable { private PreparedDocument document; private String imgServletUrl; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private Dimension page; private int dpi; - public PrintableDoc(FedoraAccess fedoraAccess, PreparedDocument document, String imgServletUrl, Dimension page, int dpi) { + public PrintableDoc(RepositoryAccess fedoraAccess, PreparedDocument document, String imgServletUrl, Dimension page, int dpi) { super(); this.fedoraAccess = fedoraAccess; this.document = document; diff --git a/shared/common/src/main/java/cz/incad/kramerius/processes/RemovePolicyProcess.java b/shared/common/src/main/java/cz/incad/kramerius/processes/RemovePolicyProcess.java index ccb766c914..5f1d1afd3e 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/processes/RemovePolicyProcess.java +++ b/shared/common/src/main/java/cz/incad/kramerius/processes/RemovePolicyProcess.java @@ -8,9 +8,6 @@ import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; import cz.incad.kramerius.processes.new_api.ProcessScheduler; import cz.incad.kramerius.processes.starter.ProcessStarter; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; -import cz.incad.kramerius.repository.RepositoryApi; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; diff --git a/shared/common/src/main/java/cz/incad/kramerius/processes/SetPolicyProcess.java b/shared/common/src/main/java/cz/incad/kramerius/processes/SetPolicyProcess.java index 43abb4225c..a8eef9e5a4 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/processes/SetPolicyProcess.java +++ b/shared/common/src/main/java/cz/incad/kramerius/processes/SetPolicyProcess.java @@ -8,9 +8,6 @@ import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; import cz.incad.kramerius.processes.new_api.ProcessScheduler; import cz.incad.kramerius.processes.starter.ProcessStarter; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApiImpl; -import cz.incad.kramerius.repository.RepositoryApi; import cz.incad.kramerius.resourceindex.ResourceIndexModule; import cz.incad.kramerius.solr.SolrModule; import cz.incad.kramerius.statistics.NullStatisticsModule; @@ -22,7 +19,6 @@ import org.dom4j.Node; import java.io.IOException; -import java.util.Arrays; import java.util.List; import java.util.concurrent.locks.Lock; import java.util.logging.Logger; diff --git a/shared/common/src/main/java/cz/incad/kramerius/relation/RelationUtils.java b/shared/common/src/main/java/cz/incad/kramerius/relation/RelationUtils.java index 8eafab90f2..acf5f3c4e4 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/relation/RelationUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/relation/RelationUtils.java @@ -17,7 +17,7 @@ package cz.incad.kramerius.relation; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.KrameriusModels; import cz.incad.kramerius.relation.impl.RelationModelImpl; import cz.incad.kramerius.utils.XMLUtils; @@ -43,19 +43,19 @@ public static RelationModel emptyModel(String pid, KrameriusModels kind) { return new RelationModelImpl(pid, kind); } - public static Document getDC(String pid, FedoraAccess fa) throws IOException { + public static Document getDC(String pid, RepositoryAccess fa) throws IOException { return getDataStream(pid, "DC", fa); } - public static Document getRelsExt(String pid, FedoraAccess fa) throws IOException { + public static Document getRelsExt(String pid, RepositoryAccess fa) throws IOException { return getDataStream(pid, "RELS-EXT", fa); } - public static Document getMods(String pid, FedoraAccess fa) throws IOException { + public static Document getMods(String pid, RepositoryAccess fa) throws IOException { return getDataStream(pid, "BIBLIO_MODS", fa); } - private static Document getDataStream(String pid, String streamName, FedoraAccess fa) throws IOException { + private static Document getDataStream(String pid, String streamName, RepositoryAccess fa) throws IOException { InputStream dataStream = fa.getDataStream(pid, streamName); try { return XMLUtils.parseDocument(dataStream, true); diff --git a/shared/common/src/main/java/cz/incad/kramerius/relation/impl/RelationServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/relation/impl/RelationServiceImpl.java index c92cb56c4e..61b3fbf930 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/relation/impl/RelationServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/relation/impl/RelationServiceImpl.java @@ -58,7 +58,7 @@ public final class RelationServiceImpl implements RelationService { @Inject @Named("rawFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Override public RelationModel load(String pid) throws IOException { diff --git a/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryAccessAdapter.java b/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryAccessAdapter.java index 5915465b36..e5838fcd7f 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryAccessAdapter.java +++ b/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryAccessAdapter.java @@ -1,6 +1,6 @@ package cz.incad.kramerius.repository; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.repository.utils.Utils; import cz.incad.kramerius.resourceindex.IResourceIndex; import cz.incad.kramerius.resourceindex.ResourceIndexException; @@ -17,10 +17,10 @@ @Deprecated public class KrameriusRepositoryAccessAdapter { - private final FedoraAccess repository; + private final RepositoryAccess repository; private final IResourceIndex resourceIndex; - public KrameriusRepositoryAccessAdapter(FedoraAccess repository, IResourceIndex resourceIndex) { + public KrameriusRepositoryAccessAdapter(RepositoryAccess repository, IResourceIndex resourceIndex) { this.repository = repository; this.resourceIndex = resourceIndex; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryApi.java b/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryApi.java deleted file mode 100644 index 4ef6f6d8dd..0000000000 --- a/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryApi.java +++ /dev/null @@ -1,552 +0,0 @@ -package cz.incad.kramerius.repository; - -import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.utils.java.Pair; -import org.apache.solr.client.solrj.SolrServerException; -import org.dom4j.Document; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.List; - -/** - * Interface for accessing data in repository (Akubra) as used by Kramerius. Methods are Kramerius - specific. - * Built on cz.incad.kramerius.repository.RepositoryApi - * - * @see cz.incad.kramerius.repository.RepositoryApi - */ -public interface KrameriusRepositoryApi { - - public static class KnownXmlFormatUris { - public static final String RELS_EXT = "info:fedora/fedora-system:FedoraRELSExt-1.0"; - public static final String BIBLIO_MODS = "http://www.loc.gov/mods/v3"; - public static final String BIBLIO_DC = "http://www.openarchives.org/OAI/2.0/oai_dc/"; - } - - enum KnownDatastreams { - RELS_EXT("RELS-EXT"), - - BIBLIO_MODS("BIBLIO_MODS"), - BIBLIO_DC("DC"), - - OCR_ALTO("ALTO"), - OCR_TEXT("TEXT_OCR"), - - IMG_FULL("IMG_FULL"), - IMG_THUMB("IMG_THUMB"), - IMG_PREVIEW("IMG_PREVIEW"), - - AUDIO_MP3("MP3"), - AUDIO_OGG("OGG"), - AUDIO_WAV("WAV"), - - // known but not used datastreams - POLICY("POLICY"), - MIGRATION("MIGRATION"), - IMG_FULL_ADM("IMG_FULL_ADM"), - AUDIT("AUDIT"), - TEXT_OCR_ADM("TEXT_OCR_ADM"), - - COLLECTION_CLIPPINGS("COLLECTION_CLIPPINGS"); - - - private final String value; - - KnownDatastreams(String value) { - this.value = value; - } - - public String toString() { - return value; - } - } - - enum KnownRelations { - //own relations (define object tree) - HAS_PAGE("hasPage"), - HAS_UNIT("hasUnit"), //monograph -> monographUnit, convolute -> anything_top-level_but_collection - HAS_VOLUME("hasVolume"), //periodical -> periodicalVolume - HAS_ITEM("hasItem"), //periodical -> (periodicalItem, supplement) - HAS_SOUND_UNIT("hasSoundUnit"), //soundRecording -> soundUnit - HAS_TRACK("hasTrack"), //(soundRecording, soundUnit) -> track - CONTAINS_TRACK("containsTrack"), //old version of HAS_TRACK - HAS_INT_COMP_PART("hasIntCompPart"), //periodicalItem -> (internalPart, article) - //foster relations - IS_ON_PAGE("isOnPage"), //(article, internalPart) -> page - CONTAINS("contains"); //collection -> (monograph, periodical, ... anything, even other collection) - //RDF relations, that don't connect two objects are not considered here - //i.e. hasModel, hasDonator, contract, policy, itemId, handle - - private final String value; - - KnownRelations(String value) { - this.value = value; - } - - public String toString() { - return value; - } - } - - - public enum OwnRelationsMapping { - - page{ - @Override - public KnownRelations relation() { - return KnownRelations.HAS_PAGE; - } - }, - - unit { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_UNIT; - } - }, - periodicalvolume { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_VOLUME; - } - }, - volume { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_VOLUME; - } - }, - periodicalitem { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_ITEM; - } - }, - supplement { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_ITEM; - } - }, - soundunit { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_SOUND_UNIT; - //return KnownRelations.CONTAINS_TRACK; - } - }, - soundrecording { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_SOUND_UNIT; - } - }, - - internalpart { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_INT_COMP_PART; - } - }, - track { - - @Override - public KnownRelations relation() { - return KnownRelations.CONTAINS_TRACK; - } - - }, - article { - @Override - public KnownRelations relation() { - return KnownRelations.HAS_INT_COMP_PART; - } - }; - - ; - - public static OwnRelationsMapping find(String name) { - OwnRelationsMapping[] values = values(); - for (OwnRelationsMapping relMap : values()) { - if (relMap.name().equals(name)) { - return relMap; - } - } - return null; - } - - public abstract KnownRelations relation(); - - } - - - public enum FosterRelationsMapping { - page{ - @Override - public KnownRelations relation(String parentModel) { - List parent = Arrays.asList("article", "internalpart"); - if (parent.contains(parentModel)) { - return KnownRelations.IS_ON_PAGE; - } else return KnownRelations.CONTAINS; - } - }, - anything { - @Override - public KnownRelations relation(String parentModel) { - return KnownRelations.CONTAINS; - } - }; - - public static FosterRelationsMapping find(String name) { - FosterRelationsMapping[] values = FosterRelationsMapping.values(); - for (FosterRelationsMapping relMap : values) { - if (relMap.name().equals(name)) return relMap; - } - return anything; - - } - - public abstract KnownRelations relation(String parentModel); - - } - - - List OWN_RELATIONS = Arrays.asList(new KnownRelations[]{ - KnownRelations.HAS_PAGE, KnownRelations.HAS_UNIT, KnownRelations.HAS_VOLUME, KnownRelations.HAS_ITEM, - KnownRelations.HAS_SOUND_UNIT, KnownRelations.HAS_TRACK, KnownRelations.CONTAINS_TRACK, KnownRelations.HAS_INT_COMP_PART - }); - List FOSTER_RELATIONS = Arrays.asList(new KnownRelations[]{ - KnownRelations.IS_ON_PAGE, KnownRelations.CONTAINS - }); - - static boolean isOwnRelation(String relation) { - for (KnownRelations knownRelation : OWN_RELATIONS) { - if (relation.equals(knownRelation.toString())) { - return true; - } - } - for (KnownRelations knownRelation : FOSTER_RELATIONS) { - if (relation.equals(knownRelation.toString())) { - return false; - } - } - throw new IllegalArgumentException(String.format("unknown relation '%s'", relation)); - } - - //TODO: methods for updating datastream data (done for inline xml datastreams) - - /** - * @return Low level repository API. Through that can be accessed any kind of datastream or property, regardless if it is used by Kramerius or not - */ - public RepositoryApi getLowLevelApi(); - - /** - * @param pid Persistent identifier of the object - * @return if datastream RELS-EXT is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isRelsExtAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @param namespaceAware if false, namespaces will be removed from the resulting xml - * @return latest version of object's datastream RELS-EXT provided it is stored as inline XML (control-group X), null otherwise - * @throws IOException - * @throws RepositoryException - */ - public Document getRelsExt(String pid, boolean namespaceAware) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream BIBLIO_MODS is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isModsAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @param namespaceAware if false, namespaces will be removed from the resulting xml - * @return latest version of object's datastream BIBLIO_MODS provided it is stored as inline XML (control-group X), null otherwise - * @throws IOException - * @throws RepositoryException - */ - public Document getMods(String pid, boolean namespaceAware) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream DC is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isDublinCoreAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @param namespaceAware if false, namespaces will be removed from the resulting xml - * @return latest version of object's datastream DC provided it is stored as inline XML (control-group X), null otherwise - * @throws IOException - * @throws RepositoryException - */ - public Document getDublinCore(String pid, boolean namespaceAware) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream OCR_TEXT is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isOcrTextAvailable(String pid) throws IOException, RepositoryException; - - - public boolean isPidAvailable(String pid) throws IOException, RepositoryException; - - public boolean isStreamAvailable(String pid, String dsId) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return latest version of object's datastream OCR_TEXT provided it is stored as inline XML (control-group X), null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getOcrText(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream OCR_ALTO is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isOcrAltoAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @param namespaceAware if false, namespaces will be removed from the resulting xml - * @return latest version of object's datastream OCR_ALTO provided it is stored as inline XML (control-group X), null otherwise - * @throws IOException - * @throws RepositoryException - */ - public Document getOcrAlto(String pid, boolean namespaceAware) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream IMG_FULL is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isImgFullAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return mime-type of datastream IMG_FULL if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getImgFullMimetype(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return InputStream stream containing image data from IMG_FULL if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public InputStream getImgFull(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream IMG_THUMB is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isImgThumbAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return mime-type of datastream IMG_THUMB if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getImgThumbMimetype(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return InputStream stream containing image data from IMG_THUMB if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public InputStream getImgThumb(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream IMG_PREVIEW is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isImgPreviewAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return mime-type of datastream IMG_PREVIEW if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getImgPreviewMimetype(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return InputStream stream containing image data from IMG_PREVIEW if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public InputStream getImgPreview(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream MP3 is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isAudioMp3Available(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return mime-type of datastream MP3 if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getAudioMp3Mimetype(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return InputStream stream containing audio data from MP3 if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public InputStream getAudioMp3(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream OGG is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isAudioOggAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return mime-type of datastream OGG if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getAudioOggMimetype(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return InputStream stream containing audio data from OGG if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public InputStream getAudioOgg(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return if datastream WAV is available for the object - * @throws IOException - * @throws RepositoryException - */ - public boolean isAudioWavAvailable(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return mime-type of datastream WAV if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public String getAudioWavMimetype(String pid) throws IOException, RepositoryException; - - /** - * @param pid Persistent identifier of the object - * @return InputStream stream containing audio data from WAV if such datastream exists, null otherwise - * @throws IOException - * @throws RepositoryException - */ - public InputStream getAudioWav(String pid) throws IOException, RepositoryException; - - /** - * @param objectPid - * @return Model of the object - * @throws RepositoryException - * @throws IOException - * @throws SolrServerException - */ - public String getModel(String objectPid) throws RepositoryException, IOException, SolrServerException; - - /** - * @param objectPid - * @return Pair of values: 1. Triplet of relation from own parent (or null if the object is top-level, i.e. has no parent), 2. Triplets of relations from foster parents - * @throws RepositoryException - * @throws IOException - * @throws SolrServerException - */ - public Pair> getParents(String objectPid) throws RepositoryException, IOException, SolrServerException; - - /** - * @param objectPid - * @return Pair of values: 1. Triplets of relations to own children, 2. Triplets of relations to foster children - * @throws RepositoryException - * @throws IOException - * @throws SolrServerException - */ - public Pair, List> getChildren(String objectPid) throws RepositoryException, IOException, SolrServerException; - - /** - * @param collectionPid - * @return Pids of items that are (directly) contained in collection - * @throws RepositoryException - * @throws IOException - * @throws SolrServerException - */ - public List getPidsOfItemsInCollection(String collectionPid) throws RepositoryException, IOException, SolrServerException; - - /** - * @param itemPid - * @return Pids of collections that (directly) contain the item - * @throws RepositoryException - * @throws IOException - * @throws SolrServerException - */ - public List getPidsOfCollectionsContainingItem(String itemPid) throws RepositoryException, IOException, SolrServerException; - - /** - * Appends new version of inline xml datastream RELS-EXT - * - * @param pid Persistent identifier of the object - * @param relsExtDoc New version of RELS-EXT - * @throws IOException - * @throws RepositoryException - */ - public void updateRelsExt(String pid, Document relsExtDoc) throws IOException, RepositoryException; - - /** - * Appends new version of inline xml datastream BIBLIO_MODS - * - * @param pid Persistent identifier of the object - * @param modsDoc New version of MODS - * @throws IOException - * @throws RepositoryException - */ - public void updateMods(String pid, Document modsDoc) throws IOException, RepositoryException; - - /** - * Appends new version of inline xml datastream DC - * - * @param pid Persistent identifier of the object - * @param dcDoc New version of Dublin Core - * @throws IOException - * @throws RepositoryException - */ - public void updateDublinCore(String pid, Document dcDoc) throws IOException, RepositoryException; - -} diff --git a/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryApiImpl.java b/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryApiImpl.java deleted file mode 100644 index 4ae9ac64bb..0000000000 --- a/shared/common/src/main/java/cz/incad/kramerius/repository/KrameriusRepositoryApiImpl.java +++ /dev/null @@ -1,271 +0,0 @@ -package cz.incad.kramerius.repository; - -import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.repository.utils.NamespaceRemovingVisitor; -import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; -import cz.incad.kramerius.utils.java.Pair; -import org.apache.solr.client.solrj.SolrServerException; -import org.dom4j.Document; - -import javax.inject.Inject; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class KrameriusRepositoryApiImpl implements KrameriusRepositoryApi { - - @Inject - private RepositoryApiImpl repositoryApi; - - @Inject - private AggregatedAccessLogs accessLog; - - - @Override - public RepositoryApi getLowLevelApi() { - return repositoryApi; - } - - @Override - public boolean isRelsExtAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.RELS_EXT.toString()); - } - - @Override - public Document getRelsExt(String pid, boolean namespaceAware) throws IOException, RepositoryException { - Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.RELS_EXT.toString()); - if (doc != null && !namespaceAware) { - doc.accept(new NamespaceRemovingVisitor(true, true)); - } - return doc; - } - - @Override - public boolean isModsAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.BIBLIO_MODS.toString()); - } - - @Override - public Document getMods(String pid, boolean namespaceAware) throws IOException, RepositoryException { - Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_MODS.toString()); - if (doc != null && !namespaceAware) { - doc.accept(new NamespaceRemovingVisitor(true, true)); - } - return doc; - } - - @Override - public boolean isDublinCoreAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.BIBLIO_DC.toString()); - } - - @Override - public Document getDublinCore(String pid, boolean namespaceAware) throws IOException, RepositoryException { - Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_DC.toString()); - if (doc != null && !namespaceAware) { - doc.accept(new NamespaceRemovingVisitor(true, true)); - } - return doc; - } - - @Override - public boolean isOcrTextAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.OCR_TEXT.toString()); - } - - @Override - public String getOcrText(String pid) throws IOException, RepositoryException { - return repositoryApi.getLatestVersionOfManagedTextDatastream(pid, KnownDatastreams.OCR_TEXT.toString()); - } - - @Override - public boolean isOcrAltoAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.OCR_ALTO.toString()); - } - - @Override - public Document getOcrAlto(String pid, boolean namespaceAware) throws IOException, RepositoryException { - Document doc = repositoryApi.getLatestVersionOfInlineXmlDatastream(pid, KnownDatastreams.OCR_ALTO.toString()); - if (doc != null && !namespaceAware) { - doc.accept(new NamespaceRemovingVisitor(true, true)); - } - return doc; - } - - @Override - public boolean isImgFullAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.IMG_FULL.toString()); - } - - @Override - public String getImgFullMimetype(String pid) throws IOException, RepositoryException { - return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.IMG_FULL.toString()); - } - - @Override - public InputStream getImgFull(String pid) throws IOException, RepositoryException { - this.accessLog.reportAccess(pid, KnownDatastreams.IMG_FULL.toString()); - return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.IMG_FULL.toString()); - } - - @Override - public boolean isImgThumbAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.IMG_THUMB.toString()); - } - - @Override - public String getImgThumbMimetype(String pid) throws IOException, RepositoryException { - return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.IMG_THUMB.toString()); - } - - @Override - public InputStream getImgThumb(String pid) throws IOException, RepositoryException { - return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.IMG_THUMB.toString()); - } - - @Override - public boolean isImgPreviewAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.IMG_PREVIEW.toString()); - } - - @Override - public String getImgPreviewMimetype(String pid) throws IOException, RepositoryException { - return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.IMG_PREVIEW.toString()); - } - - @Override - public InputStream getImgPreview(String pid) throws IOException, RepositoryException { - this.accessLog.reportAccess(pid, KnownDatastreams.IMG_PREVIEW.toString()); - return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.IMG_PREVIEW.toString()); - } - - @Override - public boolean isAudioMp3Available(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.AUDIO_MP3.toString()); - } - - @Override - public String getAudioMp3Mimetype(String pid) throws IOException, RepositoryException { - return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.AUDIO_MP3.toString()); - } - - @Override - public InputStream getAudioMp3(String pid) throws IOException, RepositoryException { - this.accessLog.reportAccess(pid, KnownDatastreams.AUDIO_MP3.toString()); - return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.AUDIO_MP3.toString()); - } - - @Override - public boolean isAudioOggAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.AUDIO_OGG.toString()); - } - - @Override - public String getAudioOggMimetype(String pid) throws IOException, RepositoryException { - return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.AUDIO_OGG.toString()); - } - - @Override - public InputStream getAudioOgg(String pid) throws IOException, RepositoryException { - this.accessLog.reportAccess(pid, KnownDatastreams.AUDIO_OGG.toString()); - return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.AUDIO_OGG.toString()); - } - - @Override - public boolean isAudioWavAvailable(String pid) throws IOException, RepositoryException { - return repositoryApi.datastreamExists(pid, KnownDatastreams.AUDIO_WAV.toString()); - } - - @Override - public String getAudioWavMimetype(String pid) throws IOException, RepositoryException { - return repositoryApi.getDatastreamMimetype(pid, KnownDatastreams.AUDIO_WAV.toString()); - } - - @Override - public InputStream getAudioWav(String pid) throws IOException, RepositoryException { - return repositoryApi.getLatestVersionOfDatastream(pid, KnownDatastreams.AUDIO_WAV.toString()); - } - - @Override - public String getModel(String objectPid) throws RepositoryException, IOException, SolrServerException { - Map description = repositoryApi.getDescription(objectPid); - String model = description.get("model"); - return model == null ? null : model.substring("model:".length()); - } - - @Override - public Pair> getParents(String objectPid) throws RepositoryException, IOException, SolrServerException { - List pseudoparentTriplets = repositoryApi.getTripletSources(objectPid); - RepositoryApi.Triplet ownParentTriplet = null; - List fosterParentTriplets = new ArrayList<>(); - for (RepositoryApi.Triplet triplet : pseudoparentTriplets) { - if (KrameriusRepositoryApi.isOwnRelation(triplet.relation)) { - if (ownParentTriplet != null) { - throw new RepositoryException(String.format("found multiple own parent relations: %s and %s", ownParentTriplet, triplet)); - } else { - ownParentTriplet = triplet; - } - } else { - fosterParentTriplets.add(triplet); - } - } - return new Pair(ownParentTriplet, fosterParentTriplets); - } - - @Override - public Pair, List> getChildren(String objectPid) throws RepositoryException, IOException, SolrServerException { - List pseudochildrenTriplets = repositoryApi.getTripletTargets(objectPid); - List ownChildrenTriplets = new ArrayList<>(); - List fosterChildrenTriplets = new ArrayList<>(); - for (RepositoryApi.Triplet triplet : pseudochildrenTriplets) { - if (triplet.target.startsWith("uuid:")) { //ignore hasDonator and other indexed relations, that are not binding two objects in repository - if (KrameriusRepositoryApi.isOwnRelation(triplet.relation)) { - ownChildrenTriplets.add(triplet); - } else { - fosterChildrenTriplets.add(triplet); - } - } - } - return new Pair(ownChildrenTriplets, fosterChildrenTriplets); - } - - @Override - public List getPidsOfItemsInCollection(String collectionPid) throws RepositoryException, IOException, SolrServerException { - return repositoryApi.getTripletTargets(collectionPid, KnownRelations.CONTAINS.toString()); - } - - @Override - public List getPidsOfCollectionsContainingItem(String itemPid) throws RepositoryException, IOException, SolrServerException { - return repositoryApi.getTripletSources(KnownRelations.CONTAINS.toString(), itemPid); - } - - @Override - public void updateRelsExt(String pid, Document relsExtDoc) throws IOException, RepositoryException { - repositoryApi.updateInlineXmlDatastream(pid, KnownDatastreams.RELS_EXT.toString(), relsExtDoc, KnownXmlFormatUris.RELS_EXT); - } - - @Override - public void updateMods(String pid, Document modsDoc) throws IOException, RepositoryException { - repositoryApi.updateInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_MODS.toString(), modsDoc, KnownXmlFormatUris.BIBLIO_MODS); - } - - @Override - public void updateDublinCore(String pid, Document dcDoc) throws IOException, RepositoryException { - repositoryApi.updateInlineXmlDatastream(pid, KnownDatastreams.BIBLIO_DC.toString(), dcDoc, KnownXmlFormatUris.BIBLIO_DC); - } - - - @Override - public boolean isPidAvailable(String pid) throws IOException, RepositoryException { - boolean exists = this.repositoryApi.objectExists(pid); - return exists; - } - - @Override - public boolean isStreamAvailable(String pid, String dsId) throws IOException, RepositoryException { - boolean exists = this.repositoryApi.datastreamExists(pid, dsId); - return exists; - } -} diff --git a/shared/common/src/main/java/cz/incad/kramerius/repository/RepositoryApi.java b/shared/common/src/main/java/cz/incad/kramerius/repository/RepositoryApi.java deleted file mode 100644 index 53cbb68f1c..0000000000 --- a/shared/common/src/main/java/cz/incad/kramerius/repository/RepositoryApi.java +++ /dev/null @@ -1,144 +0,0 @@ -package cz.incad.kramerius.repository; - -import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.utils.java.Pair; -import org.apache.solr.client.solrj.SolrServerException; -import org.dom4j.Document; - -import java.io.IOException; -import java.io.InputStream; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeFormatterBuilder; -import java.time.temporal.ChronoField; -import java.util.List; -import java.util.Map; - -/** - * Interface for accessing data in repository (Akubra, formerly Fedora). - * Only subset of Fedora's API (API-A, API-M) is implemented, as needed. - * This is independent of domain-specific logic built on the repository (i.e. Kramerius), - * as it should be with regard to separation of abstraction levels. - * - * @link https://wiki.lyrasis.org/display/FEDORA38/REST+API - * @see cz.incad.kramerius.repository.KrameriusRepositoryApi - */ -public interface RepositoryApi { - - public static final String NAMESPACE_FOXML = "info:fedora/fedora-system:def/foxml#"; - - /** - * @se RepositoryApiTimestampFormatterTest - */ - public static final DateTimeFormatter TIMESTAMP_FORMATTER = new DateTimeFormatterBuilder() - .appendPattern("yyyy-MM-dd'T'HH:mm:ss.") - .appendFraction(ChronoField.MILLI_OF_SECOND, 1, 3, false) - .appendPattern("'Z'") - .toFormatter(); - - //TODO: methods for fetching other types of datastreams (redirect, external referenced, probably not managed) - //TODO: methods for updating datastreams (new versions) - - //CREATE - public void ingestObject(Document foxmlDoc, String pid) throws RepositoryException, IOException; - - //READ - public boolean objectExists(String pid) throws RepositoryException; - - public String getProperty(String pid, String propertyName) throws IOException, RepositoryException; - - public String getPropertyLabel(String pid) throws IOException, RepositoryException; - - public LocalDateTime getPropertyCreated(String pid) throws IOException, RepositoryException; - - public LocalDateTime getPropertyLastModified(String pid) throws IOException, RepositoryException; - - public Document getFoxml(String pid) throws RepositoryException, IOException; - - public boolean datastreamExists(String pid, String dsId) throws RepositoryException, IOException; - - public String getDatastreamMimetype(String pid, String dsId) throws RepositoryException, IOException; - - /** - * @return part of FOXML that contains definition of the datastream. I.e. root element datastream with subelement(s) datastreamVersion. - */ - public Document getDatastreamXml(String pid, String dsId) throws RepositoryException, IOException; - - - - public String getTypeOfDatastream(String pid, String dsId) throws RepositoryException, IOException; - - - public InputStream getLatestVersionOfDatastream(String pid, String dsId) throws RepositoryException, IOException; - - public Document getLatestVersionOfInlineXmlDatastream(String pid, String dsId) throws RepositoryException, IOException; - - public String getLatestVersionOfManagedTextDatastream(String pid, String dsId) throws RepositoryException, IOException; - - public List getPidsOfAllObjects() throws RepositoryException, IOException, SolrServerException; - - public List getPidsOfObjectsByModel(String model) throws RepositoryException, IOException, SolrServerException; - - public Pair> getPidsOfObjectsByModel(String model, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException; - - public Pair> getPidsOfObjectsByModel(String model, String titlePrefix, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException; - - public TitlePidPairs getPidsOfObjectsWithTitlesByModel(String model, boolean ascendingOrder, int offset, int limit) throws RepositoryException, IOException, SolrServerException; - - public TitlePidPairs getPidsOfObjectsWithTitlesByModelWithCursor(String model, boolean ascendingOrder, String cursor, int limit) throws RepositoryException, IOException, SolrServerException; - - public Map getDescription(String objectPid) throws RepositoryException, IOException, SolrServerException; - - public List getTripletTargets(String sourcePid, String relation) throws RepositoryException, IOException, SolrServerException; - - public List getTripletTargets(String sourcePid) throws RepositoryException, IOException, SolrServerException; - - public List getTripletSources(String relation, String targetPid) throws RepositoryException, IOException, SolrServerException; - - public List getTripletSources(String targetPid) throws RepositoryException, IOException, SolrServerException; - - - public List getDatastreamNames(String pid) throws RepositoryException, IOException, SolrServerException; - - - //UPDATE - public void updateInlineXmlDatastream(String pid, String dsId, Document streamDoc, String formatUri) throws RepositoryException, IOException; - - public void updateBinaryDatastream(String pid, String streamName, String mimeType, byte[] byteArray) throws RepositoryException; - - - public void deleteDatastream(String pid, String streamName) throws RepositoryException; - - /** - * @param ds part of FOXML that contains definition of the datastream. I.e. root element datastream with subelement(s) datastreamVersion. - */ - public void setDatastreamXml(String pid, String dsId, Document ds) throws RepositoryException, IOException; - - //DELETE - public void deleteObject(String pid, boolean deleteDataOfManagedDatastreams) throws RepositoryException, IOException; - - - class Triplet { - public final String source; - public final String relation; - public final String target; - - public Triplet(String source, String relation, String target) { - this.source = source; - this.relation = relation; - this.target = target; - } - - @Override - public String toString() { - return String.format("%s -%s-> %s", source, relation, target); - } - } - - class TitlePidPairs { - public List> titlePidPairs; - public String nextCursorMark; - } - -} - diff --git a/shared/common/src/main/java/cz/incad/kramerius/repository/RepositoryApiImpl.java b/shared/common/src/main/java/cz/incad/kramerius/repository/RepositoryApiImpl.java deleted file mode 100644 index 8fd07a620f..0000000000 --- a/shared/common/src/main/java/cz/incad/kramerius/repository/RepositoryApiImpl.java +++ /dev/null @@ -1,547 +0,0 @@ -package cz.incad.kramerius.repository; - -import com.google.inject.Inject; -import com.google.inject.name.Named; -import com.qbizm.kramerius.imp.jaxb.DigitalObject; - -import cz.incad.kramerius.fedora.om.RepositoryDatastream; -import cz.incad.kramerius.fedora.om.RepositoryException; -import cz.incad.kramerius.fedora.om.RepositoryObject; -import cz.incad.kramerius.fedora.om.impl.AkubraDOManager; -import cz.incad.kramerius.fedora.om.impl.AkubraRepositoryImpl; -import cz.incad.kramerius.repository.utils.Utils; -import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; -import cz.incad.kramerius.utils.Dom4jUtils; -import cz.incad.kramerius.utils.StringUtils; -import cz.incad.kramerius.utils.java.Pair; -import org.apache.solr.client.solrj.SolrServerException; -import org.apache.solr.common.SolrDocument; -import org.dom4j.*; -import org.ehcache.CacheManager; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; -import java.io.*; -import java.nio.charset.Charset; -import java.time.LocalDateTime; -import java.time.format.DateTimeParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.locks.Lock; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.stream.Collectors; - -public class RepositoryApiImpl implements RepositoryApi { - - public static final Logger LOGGER = Logger.getLogger(RepositoryApi.class.getName()); - - private static final Namespace NS_FOXML = new Namespace("foxml", "info:fedora/fedora-system:def/foxml#"); - private final AkubraRepositoryImpl akubraRepositoryImpl; - private final Unmarshaller digitalObjectUnmarshaller; - - @Inject - public RepositoryApiImpl(ProcessingIndexFeeder processingIndexFeeder, @Named("akubraCacheManager") CacheManager cacheManager) throws RepositoryException { - try { - AkubraDOManager akubraDOManager = new AkubraDOManager(cacheManager); - this.akubraRepositoryImpl = (AkubraRepositoryImpl) AkubraRepositoryImpl.build(processingIndexFeeder, akubraDOManager); - this.digitalObjectUnmarshaller = JAXBContext.newInstance(DigitalObject.class).createUnmarshaller(); - } catch (IOException e) { - throw new RepositoryException(e); - } catch (JAXBException e) { - throw new RepositoryException("Error initializing JAXB unmarshaller for " + DigitalObject.class.getName()); - } - } - - @Override - public void ingestObject(Document foxmlDoc, String pid) throws RepositoryException, IOException { - DigitalObject digitalObject = foxmlDocToDigitalObject(foxmlDoc); - Lock writeLock = AkubraDOManager.getWriteLock(pid); - try { - akubraRepositoryImpl.ingestObject(digitalObject); - akubraRepositoryImpl.commitTransaction(); - } finally { - writeLock.unlock(); - } - } - - @Override - public boolean objectExists(String pid) throws RepositoryException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - return akubraRepositoryImpl.objectExists(pid); - } finally { - readLock.unlock(); - } - } - - @Override - public String getProperty(String pid, String propertyName) throws IOException, RepositoryException { - Document objectFoxml = getFoxml(pid); - return objectFoxml == null ? null : extractProperty(objectFoxml, propertyName); - } - - @Override - public String getPropertyLabel(String pid) throws IOException, RepositoryException { - return getProperty(pid, "info:fedora/fedora-system:def/model#label"); - } - - @Override - public LocalDateTime getPropertyCreated(String pid) throws IOException, RepositoryException { - String propertyValue = getProperty(pid, "info:fedora/fedora-system:def/model#createdDate"); - if (propertyValue != null) { - try { - return LocalDateTime.parse(propertyValue, RepositoryApi.TIMESTAMP_FORMATTER); - } catch (DateTimeParseException e) { - System.out.println(String.format("cannot parse createdDate %s from object %s", propertyValue, pid)); - } - } - return null; - } - - @Override - public LocalDateTime getPropertyLastModified(String pid) throws IOException, RepositoryException { - String propertyValue = getProperty(pid, "info:fedora/fedora-system:def/view#lastModifiedDate"); - if (propertyValue != null) { - try { - return LocalDateTime.parse(propertyValue, RepositoryApi.TIMESTAMP_FORMATTER); - } catch (DateTimeParseException e) { - System.out.println(String.format("cannot parse lastModifiedDate %s from object %s", propertyValue, pid)); - } - } - return null; - } - - - - @Override - public List getDatastreamNames(String pid) throws RepositoryException, IOException, SolrServerException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - List streams = object.getStreams(); - return streams.stream().map(it -> { - try { - return it.getName(); - } catch (RepositoryException e) { - LOGGER.log(Level.SEVERE,e.getMessage(),e); - return null; - } - }).collect(Collectors.toList()); - } finally { - readLock.unlock(); - } - } - - @Override - public Document getFoxml(String pid) throws RepositoryException, IOException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - return Utils.inputstreamToDocument(object.getFoxml(), true); - } finally { - readLock.unlock(); - } - } - - @Override - public boolean datastreamExists(String pid, String dsId) throws RepositoryException, IOException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - return object == null ? false : object.streamExists(dsId); - } finally { - readLock.unlock(); - } - } - - @Override - public String getDatastreamMimetype(String pid, String dsId) throws RepositoryException, IOException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - if (object != null) { - RepositoryDatastream stream = object.getStream(dsId); - if (stream != null) { - return stream.getMimeType(); - } - } - return null; - } finally { - readLock.unlock(); - } - } - - @Override - public Document getDatastreamXml(String pid, String dsId) throws RepositoryException, IOException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - if (object.streamExists(dsId)) { - Document foxml = Utils.inputstreamToDocument(object.getFoxml(), true); - Element dcEl = (Element) Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:datastream[@ID='%s']", dsId)).selectSingleNode(foxml); - Element detached = (Element) dcEl.detach(); - Document result = DocumentHelper.createDocument(); - result.add(detached); - return result; - } else { - return null; - } - } finally { - readLock.unlock(); - } - } - - public String getTypeOfDatastream(String pid, String dsId) throws RepositoryException, IOException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - if (object.streamExists(dsId)) { - RepositoryDatastream stream = object.getStream(dsId); - return stream.getStreamType().name(); - } else { - return null; - } - } finally { - readLock.unlock(); - } - } - - @Override - public InputStream getLatestVersionOfDatastream(String pid, String dsId) throws RepositoryException, IOException { - Lock readLock = AkubraDOManager.getReadLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - if (object.streamExists(dsId)) { - RepositoryDatastream stream = object.getStream(dsId); - return stream.getContent(); - } else { - return null; - } - } finally { - readLock.unlock(); - } - } - - @Override - public Document getLatestVersionOfInlineXmlDatastream(String pid, String dsId) throws RepositoryException, IOException { - InputStream is = getLatestVersionOfDatastream(pid, dsId); - return is == null ? null : Utils.inputstreamToDocument(is, true); - } - - @Override - public String getLatestVersionOfManagedTextDatastream(String pid, String dsId) throws RepositoryException, IOException { - InputStream is = getLatestVersionOfDatastream(pid, dsId); - return is == null ? null : Utils.inputstreamToString(is); - } - - @Override - public List getPidsOfAllObjects() throws RepositoryException, IOException, SolrServerException { - List pids = new ArrayList<>(); - //TODO: offset, limit - String query = "type:description"; - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByPid(query, (doc) -> { - Object fieldValue = doc.getFieldValue("source"); - if (fieldValue != null) { - String valueStr = fieldValue.toString(); - pids.add(valueStr); - } - }); - return pids; - } - - @Override - public List getPidsOfObjectsByModel(String model) throws RepositoryException, IOException, SolrServerException { - List pids = new ArrayList<>(); - //TODO: offset, limit - String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze uprime zbytecne - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByTitle(query, (doc) -> { - Object fieldValue = doc.getFieldValue("source"); - if (fieldValue != null) { - String valueStr = fieldValue.toString(); - pids.add(valueStr); - } - }); - return pids; - } - - - @Override - public Pair> getPidsOfObjectsByModel(String model, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException { - String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze uprime zbytecne - org.apache.commons.lang3.tuple.Pair> cp = akubraRepositoryImpl.getProcessingIndexFeeder().getPageSortedByTitle(query, rows, pageIndex, Arrays.asList("source")); - Long numberOfRecords = cp.getLeft(); - List pids = cp.getRight().stream().map(sd -> { - Object fieldValue = sd.getFieldValue("source"); - return fieldValue.toString(); - }).collect(Collectors.toList()); - return new Pair<>(numberOfRecords, pids); - } - - //TODO : Should be replaced by pairs - @Override - public Pair> getPidsOfObjectsByModel(String model, String titlePrefix, int rows, int pageIndex) throws RepositoryException, IOException, SolrServerException { - String query = String.format("type:description AND model:%s", "model\\:" + model); - if (StringUtils.isAnyString(titlePrefix)) { - query = String.format("type:description AND model:%s AND title_edge:%s", "model\\:" + model, titlePrefix); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze uprime zbytecne - } - org.apache.commons.lang3.tuple.Pair> cp = akubraRepositoryImpl.getProcessingIndexFeeder().getPageSortedByTitle(query, rows, pageIndex, Arrays.asList("source")); - Long numberOfRecords = cp.getLeft(); - List pids = cp.getRight().stream().map(sd -> { - Object fieldValue = sd.getFieldValue("source"); - return fieldValue.toString(); - }).collect(Collectors.toList()); - return new Pair<>(numberOfRecords, pids); - } - - @Override - public TitlePidPairs getPidsOfObjectsWithTitlesByModel(String model, boolean ascendingOrder, int offset, int limit) throws RepositoryException, IOException, SolrServerException { - List> titlePidPairs = new ArrayList<>(); - String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze je mozna zbytecne (ten prefix) - akubraRepositoryImpl.getProcessingIndexFeeder().iterateSectionOfProcessingSortedByTitle(query, ascendingOrder, offset, limit, (doc) -> { - Object fieldPid = doc.getFieldValue("source"); - Object fieldTitle = doc.getFieldValue("dc.title"); - String pid = null; - String title = null; - if (fieldPid != null) { - pid = fieldPid.toString(); - } - if (fieldTitle != null) { - title = fieldTitle.toString().trim(); - } - titlePidPairs.add(new Pair(title, pid)); - }); - TitlePidPairs result = new TitlePidPairs(); - result.titlePidPairs = titlePidPairs; - return result; - } - - @Override - public TitlePidPairs getPidsOfObjectsWithTitlesByModelWithCursor(String model, boolean ascendingOrder, String cursor, int limit) throws RepositoryException, IOException, SolrServerException { - List> titlePidPairs = new ArrayList<>(); - String query = String.format("type:description AND model:%s", "model\\:" + model); //prvni "model:" je filtr na solr pole, druhy "model:" je hodnota pole, coze je mozna zbytecne (ten prefix) - String nextCursorMark = akubraRepositoryImpl.getProcessingIndexFeeder().iterateSectionOfProcessingSortedByTitleWithCursor(query, ascendingOrder, cursor, limit, (doc) -> { - Object fieldPid = doc.getFieldValue("source"); - Object fieldTitle = doc.getFieldValue("dc.title"); - String pid = null; - String title = null; - if (fieldPid != null) { - pid = fieldPid.toString(); - } - if (fieldTitle != null) { - title = fieldTitle.toString().trim(); - } - titlePidPairs.add(new Pair(title, pid)); - }); - TitlePidPairs result = new TitlePidPairs(); - result.titlePidPairs = titlePidPairs; - result.nextCursorMark = nextCursorMark; - return result; - } - - @Override - public Map getDescription(String objectPid) throws RepositoryException, IOException, SolrServerException { - Map description = new HashMap<>(); - String query = String.format("type:description AND source:%s", objectPid.replace(":", "\\:")); - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByPid(query, (doc) -> { //iterating, but there should only be one hit - for (String name : doc.getFieldNames()) { - description.put(name, doc.getFieldValue(name).toString()); - } - }); - return description; - } - - @Override - public List getTripletTargets(String sourcePid, String relation) throws RepositoryException, IOException, SolrServerException { - List pids = new ArrayList<>(); - String query = String.format("source:%s AND relation:%s", sourcePid.replace(":", "\\:"), relation); - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { - Object fieldValue = doc.getFieldValue("targetPid"); - if (fieldValue != null) { - String valueStr = fieldValue.toString(); - pids.add(valueStr); - } - }); - return pids; - } - - @Override - public List getTripletTargets(String sourcePid) throws RepositoryException, IOException, SolrServerException { - List triplets = new ArrayList<>(); - String query = String.format("source:%s", sourcePid.replace(":", "\\:")); - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { - Object targetPid = doc.getFieldValue("targetPid"); - Object relation = doc.getFieldValue("relation"); - if (targetPid != null && relation != null) { - triplets.add(new Triplet(sourcePid, relation.toString(), targetPid.toString())); - } - }); - return triplets; - } - - @Override - public List getTripletSources(String relation, String targetPid) throws RepositoryException, IOException, SolrServerException { - List pids = new ArrayList<>(); - String query = String.format("relation:%s AND targetPid:%s", relation, targetPid.replace(":", "\\:")); - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { - Object fieldValue = doc.getFieldValue("source"); - if (fieldValue != null) { - String valueStr = fieldValue.toString(); - pids.add(valueStr); - } - }); - return pids; - } - - @Override - public List getTripletSources(String targetPid) throws RepositoryException, IOException, SolrServerException { - List triplets = new ArrayList<>(); - String query = String.format("targetPid:%s", targetPid.replace(":", "\\:")); - akubraRepositoryImpl.getProcessingIndexFeeder().iterateProcessingSortedByIndexationDate(query, true, (doc) -> { - Object sourcePid = doc.getFieldValue("source"); - Object relation = doc.getFieldValue("relation"); - if (sourcePid != null && relation != null) { - triplets.add(new Triplet(sourcePid.toString(), relation.toString(), targetPid)); - } - }); - return triplets; - } - - - @Override - public void updateInlineXmlDatastream(String pid, String dsId, Document streamDoc, String formatUri) throws RepositoryException, IOException { - Lock writeLock = AkubraDOManager.getWriteLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - - object.deleteStream(dsId); - object.createStream(dsId, "text/xml", new ByteArrayInputStream(streamDoc.asXML().getBytes(Charset.forName("UTF-8")))); - - } finally { - writeLock.unlock(); - } - } - - public void updateBinaryDatastream(String pid, String streamName, String mimeType, byte[] byteArray) throws RepositoryException { - Lock writeLock = AkubraDOManager.getWriteLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - if (object != null) { - if (object.streamExists(streamName)) { - object.deleteStream(streamName); - } - ByteArrayInputStream bos = new ByteArrayInputStream(byteArray); - object.createManagedStream(streamName, mimeType, bos); - } - } finally { - writeLock.unlock(); - } - } - - public void deleteDatastream(String pid, String streamName) throws RepositoryException { - Lock writeLock = AkubraDOManager.getWriteLock(pid); - try { - RepositoryObject object = akubraRepositoryImpl.getObject(pid); - if (object != null) { - if (object.streamExists(streamName)) { - object.deleteStream(streamName); - } - } - } finally { - writeLock.unlock(); - } - } - - - @Override - public void setDatastreamXml(String pid, String dsId, Document ds) throws RepositoryException, IOException { - Lock writeLock = AkubraDOManager.getWriteLock(pid); - try { - Document foxml = getFoxml(pid); - Element originalDsEl = (Element) Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:datastream[@ID='%s']", dsId)).selectSingleNode(foxml); - if (originalDsEl != null) { - originalDsEl.detach(); - } - foxml.getRootElement().add(ds.getRootElement().detach()); - updateLastModifiedTimestamp(foxml); - DigitalObject updatedDigitalObject = foxmlDocToDigitalObject(foxml); - akubraRepositoryImpl.deleteObject(pid, false, false); - akubraRepositoryImpl.ingestObject(updatedDigitalObject); - akubraRepositoryImpl.commitTransaction(); - } finally { - writeLock.unlock(); - } - } - - private void updateLastModifiedTimestamp(Document foxml) { - Attribute valueAttr = (Attribute) Dom4jUtils.buildXpath("/foxml:digitalObject/foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/view#lastModifiedDate']/@VALUE").selectSingleNode(foxml); - if (valueAttr != null) { - valueAttr.setValue(LocalDateTime.now().format(TIMESTAMP_FORMATTER)); - } else { - Element objectProperties = (Element) Dom4jUtils.buildXpath("/foxml:digitalObject/foxml:objectProperties").selectSingleNode(foxml); - Element propertyLastModified = objectProperties.addElement(new QName("property", NS_FOXML)); - propertyLastModified.addAttribute("NAME", "info:fedora/fedora-system:def/view#lastModifiedDate"); - propertyLastModified.addAttribute("VALUE", LocalDateTime.now().format(RepositoryApi.TIMESTAMP_FORMATTER)); - } - } - - private void appendNewInlineXmlDatastreamVersion(Document foxml, String dsId, Document streamDoc, String formatUri) { - Element datastreamEl = (Element) Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:datastream[@ID='%s']", dsId)).selectSingleNode(foxml); - if (datastreamEl != null) { - int latestDsIdVersion = extractLatestDsIdVersion(datastreamEl); - int newDsIdVesion = latestDsIdVersion + 1; - Element dsVersionEl = datastreamEl.addElement("datastreamVersion", NAMESPACE_FOXML); - dsVersionEl.addAttribute("ID", dsId + "." + newDsIdVesion); - dsVersionEl.addAttribute("CREATED", LocalDateTime.now().format(TIMESTAMP_FORMATTER)); - dsVersionEl.addAttribute("MIMETYPE", "application/xml"); - if (formatUri != null) { - dsVersionEl.addAttribute("FORMAT_URI", formatUri); - } - Element xmlContentEl = dsVersionEl.addElement("xmlContent", NAMESPACE_FOXML); - xmlContentEl.add(streamDoc.getRootElement().detach()); - } - } - - private int extractLatestDsIdVersion(Element datastreamEl) { - List dsVersionEls = Dom4jUtils.buildXpath("foxml:datastreamVersion").selectNodes(datastreamEl); - int maxVersion = -1; - for (Node node : dsVersionEls) { - Element versionEl = (Element) node; - String ID = Dom4jUtils.stringOrNullFromAttributeByName(versionEl, "ID"); - int versionNumber = Integer.valueOf(ID.split("\\.")[1]); - if (versionNumber > maxVersion) { - maxVersion = versionNumber; - } - } - return maxVersion; - } - - @Override - public void deleteObject(String pid, boolean deleteDataOfManagedDatastreams) throws RepositoryException, IOException { - Lock writeLock = AkubraDOManager.getWriteLock(pid); - try { - akubraRepositoryImpl.deleteObject(pid, deleteDataOfManagedDatastreams, true); - akubraRepositoryImpl.commitTransaction(); - } finally { - writeLock.unlock(); - } - } - - private DigitalObject foxmlDocToDigitalObject(Document foxml) throws IOException { - try { - return (DigitalObject) digitalObjectUnmarshaller.unmarshal(new StringReader(foxml.asXML())); - } catch (JAXBException e) { - throw new IOException(e); - } - } - - private String extractProperty(Document foxmlDoc, String name) { - Node node = Dom4jUtils.buildXpath(String.format("/foxml:digitalObject/foxml:objectProperties/foxml:property[@NAME='%s']/@VALUE", name)).selectSingleNode(foxmlDoc); - return node == null ? null : Dom4jUtils.toStringOrNull(node); - } - -} diff --git a/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexCheck.java b/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexCheck.java index 0a84ef5935..f0703a62fb 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexCheck.java +++ b/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexCheck.java @@ -4,7 +4,7 @@ import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.AkubraRepository; import cz.incad.kramerius.fedora.om.RepositoryException; @@ -24,7 +24,7 @@ public class ProcessingIndexCheck { public static void main(String[] args) throws IOException, SolrServerException, RepositoryException { Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - final FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + final RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); final AkubraRepository repo = fa.getInternalAPI(); final ProcessingIndexFeeder instance = injector.getInstance(ProcessingIndexFeeder.class); diff --git a/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexRebuild.java b/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexRebuild.java index f1db9fbde3..a92ce4a29b 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexRebuild.java +++ b/shared/common/src/main/java/cz/incad/kramerius/resourceindex/ProcessingIndexRebuild.java @@ -6,7 +6,7 @@ import com.google.inject.name.Names; import com.qbizm.kramerius.imp.jaxb.DatastreamType; import com.qbizm.kramerius.imp.jaxb.DigitalObject; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.fedora.RepoModule; import cz.incad.kramerius.fedora.om.RepositoryException; import cz.incad.kramerius.fedora.om.impl.AkubraObject; @@ -69,7 +69,7 @@ public static void main(String[] args) throws IOException, SolrServerException, ProcessStarter.updateName("Přebudování Processing indexu"); } Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - final FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + final RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); final ProcessingIndexFeeder feeder = injector.getInstance(ProcessingIndexFeeder.class); long start = System.currentTimeMillis(); diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/RightCriteriumContext.java b/shared/common/src/main/java/cz/incad/kramerius/security/RightCriteriumContext.java index b1e0b055b7..ceb23a232d 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/RightCriteriumContext.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/RightCriteriumContext.java @@ -16,12 +16,9 @@ */ package cz.incad.kramerius.security; -import java.net.Inet4Address; import java.util.Map; -import org.w3c.dom.Document; - -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.security.licenses.lock.ExclusiveLockMaps; @@ -74,7 +71,7 @@ public interface RightCriteriumContext { * Fedora access * @return */ - public FedoraAccess getFedoraAccess(); + public RepositoryAccess getFedoraAccess(); /** diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/SecuredFedoraAccessImpl.java b/shared/common/src/main/java/cz/incad/kramerius/security/SecuredFedoraAccessImpl.java index ee66ed3b88..5bea2ba070 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/SecuredFedoraAccessImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/SecuredFedoraAccessImpl.java @@ -41,10 +41,10 @@ * Secured fedora access * @author pavels */ -public class SecuredFedoraAccessImpl implements FedoraAccess { +public class SecuredFedoraAccessImpl implements RepositoryAccess { public static final java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(SecuredFedoraAccessImpl.class.getName()); - private FedoraAccess rawAccess; + private RepositoryAccess rawAccess; private RightsResolver rightsResolver; private SolrAccess solrAccess; @Inject @@ -52,7 +52,7 @@ public class SecuredFedoraAccessImpl implements FedoraAccess { private DiscStrucutreForStore discStrucutreForStore; @Inject - public SecuredFedoraAccessImpl(@Named("cachedFedoraAccess") FedoraAccess rawAccess, DiscStrucutreForStore discStrucutreForStore, @Named("new-index")SolrAccess solrAccess, RightsResolver rightsResolver) { + public SecuredFedoraAccessImpl(@Named("cachedFedoraAccess") RepositoryAccess rawAccess, DiscStrucutreForStore discStrucutreForStore, @Named("new-index")SolrAccess solrAccess, RightsResolver rightsResolver) { super(); this.rawAccess = rawAccess; this.discStrucutreForStore = discStrucutreForStore; diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightCriteriumContextFactoryImpl.java b/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightCriteriumContextFactoryImpl.java index e97d5e6a06..44c17a37fc 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightCriteriumContextFactoryImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightCriteriumContextFactoryImpl.java @@ -19,15 +19,14 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.security.*; -import cz.incad.kramerius.security.licenses.lock.ExclusiveLockMap; import cz.incad.kramerius.security.licenses.lock.ExclusiveLockMaps; public class RightCriteriumContextFactoryImpl implements RightCriteriumContextFactory { - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private SolrAccess solrAccessNewIndex; private UserManager userManager; @@ -38,12 +37,12 @@ public RightCriteriumContextFactoryImpl() { super(); } - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return fedoraAccess; } @Inject - public void setFedoraAccess(@Named("securedFedoraAccess")FedoraAccess fedoraAccess) { + public void setFedoraAccess(@Named("securedFedoraAccess") RepositoryAccess fedoraAccess) { this.fedoraAccess = fedoraAccess; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightParamEvaluatingContextImpl.java b/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightParamEvaluatingContextImpl.java index 361f5f7a72..3bf39139c6 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightParamEvaluatingContextImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/impl/RightParamEvaluatingContextImpl.java @@ -22,7 +22,7 @@ import cz.incad.kramerius.security.*; import cz.incad.kramerius.security.licenses.lock.ExclusiveLockMaps; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; @@ -34,7 +34,7 @@ public class RightParamEvaluatingContextImpl implements RightCriteriumContext { private String requestedStream; private String associatedPID; private User user; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; //private SolrAccess solrAccess; private SolrAccess solrAccessNewIndex; @@ -84,7 +84,7 @@ public User getUser() { } @Override - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return this.fedoraAccess; } @@ -159,7 +159,7 @@ public static class Builder { protected String associatedPID; protected User user; - protected FedoraAccess fedoraAccess; + protected RepositoryAccess fedoraAccess; protected SolrAccess solrAccess; private SolrAccess solrAccessNewIndex; protected UserManager userManager; @@ -196,7 +196,7 @@ public Builder setUser(User user) { return this; } - public Builder setFedoraAccess(FedoraAccess fa) { + public Builder setFedoraAccess(RepositoryAccess fa) { this.fedoraAccess = fa; return this; } diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/AbstractRELSExtCriterium.java b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/AbstractRELSExtCriterium.java index be68892e6c..1a52ee9b4a 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/AbstractRELSExtCriterium.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/AbstractRELSExtCriterium.java @@ -1,16 +1,5 @@ package cz.incad.kramerius.security.impl.criteria; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.FedoraNamespaceContext; -import cz.incad.kramerius.security.EvaluatingResultState; -import cz.incad.kramerius.security.RightCriteriumContext; -import cz.incad.kramerius.security.SpecialObjects; -import org.w3c.dom.Document; - -import javax.xml.xpath.*; -import java.io.IOException; -import java.util.logging.Level; - public abstract class AbstractRELSExtCriterium extends AbstractCriterium { } diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/BenevolentModelFilter.java b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/BenevolentModelFilter.java index e28e4c9174..ac04dac039 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/BenevolentModelFilter.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/BenevolentModelFilter.java @@ -20,7 +20,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.security.*; @@ -55,7 +55,7 @@ public EvaluatingResultState mockEvaluate(Right right, DataMockExpectation dataM */ static EvaluatingResultState evaluateInternal(Object[] params, RightCriteriumContext ctx) { try { - FedoraAccess fa = ctx.getFedoraAccess(); + RepositoryAccess fa = ctx.getFedoraAccess(); ObjectPidsPath[] pathsToRoot = ctx .getPathsToRoot(); for (ObjectPidsPath pth : pathsToRoot) { diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilter.java b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilter.java index 9d554b051a..105c29d44b 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilter.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilter.java @@ -1,6 +1,6 @@ package cz.incad.kramerius.security.impl.criteria; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.security.*; @@ -40,7 +40,7 @@ public class CoverAndContentFilter extends AbstractCriterium implements RightCri @Override public EvaluatingResultState evalute(Right right) throws RightCriteriumException { try { - FedoraAccess fedoraAccess = getEvaluateContext().getFedoraAccess(); + RepositoryAccess fedoraAccess = getEvaluateContext().getFedoraAccess(); //getEvaluateContext().getSolrAccess(); String pid = getEvaluateContext().getRequestedPid(); if (!pid.equals(SpecialObjects.REPOSITORY.getPid())) { diff --git a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/utils/CriteriaRELSEXTUtils.java b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/utils/CriteriaRELSEXTUtils.java index f25c3369ae..0d474ff466 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/utils/CriteriaRELSEXTUtils.java +++ b/shared/common/src/main/java/cz/incad/kramerius/security/impl/criteria/utils/CriteriaRELSEXTUtils.java @@ -1,6 +1,6 @@ package cz.incad.kramerius.security.impl.criteria.utils; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.security.EvaluatingResultState; import cz.incad.kramerius.security.RightCriteriumContext; @@ -40,7 +40,7 @@ static EvaluatingResultState checkValue(Document relsExt, String path, String ex public static EvaluatingResultState evaluateState(RightCriteriumContext ctx, String path, String expectedValue) { try { - FedoraAccess fa = ctx.getFedoraAccess(); + RepositoryAccess fa = ctx.getFedoraAccess(); String requestedPID = ctx.getRequestedPid(); if (!requestedPID.equals(SpecialObjects.REPOSITORY.getPid())) { Document relsExt = fa.getRelsExt(requestedPID); diff --git a/shared/common/src/main/java/cz/incad/kramerius/service/impl/DeleteServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/service/impl/DeleteServiceImpl.java index ee3b8d93e7..6d6c2c5d05 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/service/impl/DeleteServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/service/impl/DeleteServiceImpl.java @@ -8,7 +8,7 @@ import com.google.inject.Key; import com.google.inject.name.Named; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.document.model.DCConent; @@ -43,7 +43,7 @@ public class DeleteServiceImpl implements DeleteService { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject @@ -141,7 +141,7 @@ public static void main(final String[] args) throws IOException, RepositoryExcep SolrAccess solrAccess = new SolrAccessImplNewIndex(); Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - FedoraAccess fa = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); inst.fedoraAccess = fa; inst.predicates = Lists.transform(KConfiguration.getInstance().getConfiguration().getList("fedora.treePredicates"), Functions.toStringFunction()); inst.resourceIndex = injector.getInstance(IResourceIndex.class); diff --git a/shared/common/src/main/java/cz/incad/kramerius/service/impl/ExportServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/service/impl/ExportServiceImpl.java index dc18875586..c849b04f44 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/service/impl/ExportServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/service/impl/ExportServiceImpl.java @@ -3,11 +3,10 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.impl.SolrAccessImpl; import cz.incad.kramerius.impl.SolrAccessImplNewIndex; import cz.incad.kramerius.service.ExportService; import cz.incad.kramerius.utils.IOUtils; @@ -34,7 +33,7 @@ public class ExportServiceImpl implements ExportService { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); @Inject @@ -178,7 +177,7 @@ private void store(File exportDirectory, String name, InputStream is) { public static void main(String[] args) throws IOException, TransformerException, SAXException, ParserConfigurationException { LOGGER.info("Export service: " + Arrays.toString(args)); com.google.inject.Injector injector = com.google.inject.Guice.createInjector(new cz.incad.kramerius.solr.SolrModule(), new cz.incad.kramerius.resourceindex.ResourceIndexModule(), new cz.incad.kramerius.fedora.RepoModule(), new cz.incad.kramerius.statistics.NullStatisticsModule()); - FedoraAccess fa = injector.getInstance(com.google.inject.Key.get(FedoraAccess.class, com.google.inject.name.Names.named("rawFedoraAccess"))); + RepositoryAccess fa = injector.getInstance(com.google.inject.Key.get(RepositoryAccess.class, com.google.inject.name.Names.named("rawFedoraAccess"))); Boolean exportParents = null; if (args.length > 1) { if (args[args.length - 1].equals("true")) { diff --git a/shared/common/src/main/java/cz/incad/kramerius/service/impl/METSServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/service/impl/METSServiceImpl.java index fb2077f7ae..d8a59861f0 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/service/impl/METSServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/service/impl/METSServiceImpl.java @@ -1,25 +1,22 @@ package cz.incad.kramerius.service.impl; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; -import java.util.Arrays; import java.util.logging.Logger; import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.service.METSService; import cz.incad.kramerius.utils.conf.KConfiguration; -import org.apache.commons.io.IOUtils; public class METSServiceImpl implements METSService { public static final Logger LOGGER = Logger.getLogger(METSServiceImpl.class.getName()); @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); private static final String INFO = "info:fedora/"; diff --git a/shared/common/src/main/java/cz/incad/kramerius/service/impl/PolicyServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/service/impl/PolicyServiceImpl.java index 31b1ee1a88..371ff642f7 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/service/impl/PolicyServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/service/impl/PolicyServiceImpl.java @@ -46,7 +46,7 @@ import com.google.inject.Inject; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.processes.starter.ProcessStarter; import cz.incad.kramerius.service.PolicyService; import cz.incad.kramerius.utils.conf.KConfiguration; @@ -58,7 +58,7 @@ public class PolicyServiceImpl implements PolicyService { @Inject @Named("securedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); @@ -179,11 +179,11 @@ else if ("dc".equals(prefix)) } - public FedoraAccess getFedoraAccess() { + public RepositoryAccess getFedoraAccess() { return fedoraAccess; } - public void setFedoraAccess(FedoraAccess fedoraAccess) { + public void setFedoraAccess(RepositoryAccess fedoraAccess) { this.fedoraAccess = fedoraAccess; } @@ -231,7 +231,7 @@ public static void main(String[] args) throws IOException { PolicyServiceImpl inst = new PolicyServiceImpl(); Injector injector = Guice.createInjector(new SolrModule(), new ResourceIndexModule(), new RepoModule(), new NullStatisticsModule()); - inst.fedoraAccess = injector.getInstance(Key.get(FedoraAccess.class, Names.named("rawFedoraAccess"))); + inst.fedoraAccess = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("rawFedoraAccess"))); inst.configuration = KConfiguration.getInstance(); if (args.length >= 3) { diff --git a/shared/common/src/main/java/cz/incad/kramerius/service/impl/ReplicationServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/service/impl/ReplicationServiceImpl.java index f78a895e66..04306ccd80 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/service/impl/ReplicationServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/service/impl/ReplicationServiceImpl.java @@ -35,7 +35,7 @@ import com.google.inject.Injector; import com.google.inject.name.Named; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaces; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; @@ -55,7 +55,7 @@ public class ReplicationServiceImpl implements ReplicationService{ @Inject @Named("rawFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject @Named("new-index") diff --git a/shared/common/src/main/java/cz/incad/kramerius/service/impl/SortingServiceImpl.java b/shared/common/src/main/java/cz/incad/kramerius/service/impl/SortingServiceImpl.java index c05a403ceb..a4b57e9ad3 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/service/impl/SortingServiceImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/service/impl/SortingServiceImpl.java @@ -10,32 +10,24 @@ import java.util.logging.Logger; import cz.incad.kramerius.processes.starter.ProcessStarter; -import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; -import cz.incad.kramerius.statistics.accesslogs.database.DatabaseStatisticsAccessLogImpl; -import cz.incad.kramerius.statistics.accesslogs.dnnt.DNNTStatisticsAccessLogImpl; import org.w3c.dom.Document; import com.google.common.collect.Ordering; import com.google.common.collect.TreeMultimap; -import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; -import com.google.inject.Scopes; import com.google.inject.name.Named; -import com.google.inject.name.Names; import com.ibm.icu.text.Collator; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.KrameriusModels; import cz.incad.kramerius.relation.Relation; import cz.incad.kramerius.relation.RelationModel; import cz.incad.kramerius.relation.RelationService; import cz.incad.kramerius.relation.RelationUtils; -import cz.incad.kramerius.relation.impl.RelationServiceImpl; import cz.incad.kramerius.service.SortingService; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.utils.NaturalOrderCollator; import cz.incad.kramerius.utils.conf.KConfiguration; @@ -49,7 +41,7 @@ public class SortingServiceImpl implements SortingService { public static final String CONFIG_KEY = "sort.xpaths"; - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; KConfiguration configuration = KConfiguration.getInstance(); @@ -59,7 +51,7 @@ public class SortingServiceImpl implements SortingService { private Map sortingConfigMap = new HashMap(); @Inject - public SortingServiceImpl(@Named("rawFedoraAccess") FedoraAccess fedoraAccess, RelationService relationService) { + public SortingServiceImpl(@Named("rawFedoraAccess") RepositoryAccess fedoraAccess, RelationService relationService) { this.fedoraAccess = fedoraAccess; this.relationService = relationService; initSortingConfigMap(); diff --git a/shared/common/src/main/java/cz/incad/kramerius/solr/SolrModule.java b/shared/common/src/main/java/cz/incad/kramerius/solr/SolrModule.java index 78f96709af..6903269598 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/solr/SolrModule.java +++ b/shared/common/src/main/java/cz/incad/kramerius/solr/SolrModule.java @@ -2,8 +2,6 @@ import com.google.inject.*; import com.google.inject.name.Named; -import com.google.inject.name.Names;import antlr.StringUtils; -import cz.incad.kramerius.FedoraAccess; import cz.incad.kramerius.utils.conf.KConfiguration; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient; diff --git a/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/database/DatabaseStatisticsAccessLogImpl.java b/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/database/DatabaseStatisticsAccessLogImpl.java index 29b5b24384..dc1f22152b 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/database/DatabaseStatisticsAccessLogImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/database/DatabaseStatisticsAccessLogImpl.java @@ -26,7 +26,6 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -66,7 +65,6 @@ import cz.incad.kramerius.statistics.ReportedAction; import cz.incad.kramerius.statistics.StatisticReport; import cz.incad.kramerius.statistics.StatisticsAccessLogSupport; -import cz.incad.kramerius.users.LoggedUsersSingleton; import cz.incad.kramerius.utils.DCUtils; import cz.incad.kramerius.utils.database.JDBCCommand; import cz.incad.kramerius.utils.database.JDBCQueryTemplate; @@ -95,7 +93,7 @@ public class DatabaseStatisticsAccessLogImpl extends AbstractStatisticsAccessLog @Inject @Named("cachedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject Provider requestProvider; diff --git a/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/dnnt/DNNTStatisticsAccessLogImpl.java b/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/dnnt/DNNTStatisticsAccessLogImpl.java index 3999a83dbf..ead4bab18d 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/dnnt/DNNTStatisticsAccessLogImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/dnnt/DNNTStatisticsAccessLogImpl.java @@ -20,10 +20,8 @@ import cz.incad.kramerius.utils.IPAddressUtils; import cz.incad.kramerius.utils.StringUtils; import cz.incad.kramerius.utils.XMLUtils; -import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.solr.SolrUtils; -import org.apache.commons.collections.map.HashedMap; import org.json.JSONArray; import org.json.JSONObject; import org.w3c.dom.Document; @@ -72,7 +70,7 @@ public class DNNTStatisticsAccessLogImpl extends AbstractStatisticsAccessLog { @Inject @Named("cachedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject Provider requestProvider; @@ -128,7 +126,7 @@ public boolean acceptElement(Element element) { return sAuthors; } - public static List dcPublishers(ObjectPidsPath[] paths, FedoraAccess fedoraAccess) throws IOException { + public static List dcPublishers(ObjectPidsPath[] paths, RepositoryAccess fedoraAccess) throws IOException { List dcPublishers = new ArrayList<>(); for (int i = 0, ll = paths.length; i < ll; i++) { if (paths[i].contains(SpecialObjects.REPOSITORY.getPid())) { @@ -182,7 +180,7 @@ public StatisticReport getReportById(String reportId) { return null; } - public static String findModsDate(ObjectPidsPath[] paths, FedoraAccess fedoraAccess) { + public static String findModsDate(ObjectPidsPath[] paths, RepositoryAccess fedoraAccess) { for (ObjectPidsPath path : paths) { String[] pathFromLeafToRoot = path.getPathFromLeafToRoot(); for (String detailPid : pathFromLeafToRoot) { @@ -194,7 +192,7 @@ public static String findModsDate(ObjectPidsPath[] paths, FedoraAccess fedoraAcc return null; } - public static Map> identifiers(ObjectPidsPath[] paths, FedoraAccess fedoraAccess) throws IOException { + public static Map> identifiers(ObjectPidsPath[] paths, RepositoryAccess fedoraAccess) throws IOException { try { Map> retmap = new HashMap<>(); for (ObjectPidsPath path : paths) { @@ -219,7 +217,7 @@ public static Map> identifiers(ObjectPidsPath[] paths, Fedo } - private static String findModsDateOfPid(String pid, FedoraAccess fedoraAccess) { + private static String findModsDateOfPid(String pid, RepositoryAccess fedoraAccess) { Document biblioMods; try { biblioMods = fedoraAccess.getBiblioMods(pid); diff --git a/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/solr/SolrStatisticsAccessLogImpl.java b/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/solr/SolrStatisticsAccessLogImpl.java index 083aa84e8c..c756375cdb 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/solr/SolrStatisticsAccessLogImpl.java +++ b/shared/common/src/main/java/cz/incad/kramerius/statistics/accesslogs/solr/SolrStatisticsAccessLogImpl.java @@ -43,7 +43,7 @@ import com.google.inject.name.Named; import com.sun.jersey.api.client.Client; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectModelsPath; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; @@ -62,7 +62,6 @@ import cz.incad.kramerius.statistics.accesslogs.LogRecordDetail; import cz.incad.kramerius.statistics.accesslogs.database.DatabaseStatisticsAccessLogImpl; import cz.incad.kramerius.statistics.accesslogs.utils.SElemUtils; -import cz.incad.kramerius.users.LoggedUsersSingleton; import cz.incad.kramerius.utils.DCUtils; import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.solr.SolrUpdateUtils; @@ -87,7 +86,7 @@ public class SolrStatisticsAccessLogImpl extends AbstractStatisticsAccessLog { @Inject @Named("cachedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject Provider requestProvider; diff --git a/shared/common/src/main/java/cz/incad/kramerius/statistics/impl/NKPLogReport.java b/shared/common/src/main/java/cz/incad/kramerius/statistics/impl/NKPLogReport.java index 34035335f5..c962924210 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/statistics/impl/NKPLogReport.java +++ b/shared/common/src/main/java/cz/incad/kramerius/statistics/impl/NKPLogReport.java @@ -1,13 +1,9 @@ package cz.incad.kramerius.statistics.impl; -import static cz.incad.kramerius.database.cond.ConditionsInterpretHelper.versionCondition; - import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,7 +20,6 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; @@ -34,18 +29,14 @@ import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.ObjectPidsPath; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.database.VersionService; -import cz.incad.kramerius.solr.SolrFieldsMapping; import cz.incad.kramerius.statistics.ReportedAction; import cz.incad.kramerius.statistics.StatisticReport; import cz.incad.kramerius.statistics.StatisticsReportException; import cz.incad.kramerius.statistics.StatisticsReportSupport; import cz.incad.kramerius.statistics.accesslogs.dnnt.DNNTStatisticsAccessLogImpl; -import cz.incad.kramerius.statistics.accesslogs.dnnt.date.YearLogFormat; -import cz.incad.kramerius.statistics.accesslogs.utils.SElemUtils; import cz.incad.kramerius.statistics.filters.DateFilter; import cz.incad.kramerius.statistics.filters.StatisticsFiltersContainer; import cz.incad.kramerius.statistics.utils.ReportUtils; @@ -53,9 +44,7 @@ import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.IterationUtils.IterationCallback; import cz.incad.kramerius.utils.IterationUtils.IterationEndCallback; -import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.database.Offset; -import cz.incad.kramerius.utils.solr.SolrUtils; /** * NKP Logy @@ -77,7 +66,7 @@ public class NKPLogReport extends AbstractStatisticsReport implements StatisticR @Inject @Named("cachedFedoraAccess") - FedoraAccess fedoraAccess; + RepositoryAccess fedoraAccess; @Inject VersionService versionService; diff --git a/shared/common/src/main/java/cz/incad/kramerius/utils/RelsExtHelper.java b/shared/common/src/main/java/cz/incad/kramerius/utils/RelsExtHelper.java index cd57ba23b8..17f9dab80a 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/utils/RelsExtHelper.java +++ b/shared/common/src/main/java/cz/incad/kramerius/utils/RelsExtHelper.java @@ -19,9 +19,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.EnumSet; import java.util.List; -import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -39,13 +37,9 @@ import org.w3c.dom.Element; import org.w3c.dom.Text; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.FedoraNamespaceContext; import cz.incad.kramerius.FedoraNamespaces; -import cz.incad.kramerius.KrameriusModels; -import cz.incad.kramerius.repository.KrameriusRepositoryApi; -import cz.incad.kramerius.repository.KrameriusRepositoryApi.KnownRelations; -import cz.incad.kramerius.utils.database.SQLFilter.Tripple; import cz.incad.kramerius.utils.pid.LexerException; import cz.incad.kramerius.utils.pid.PIDParser; @@ -97,7 +91,7 @@ public static Element getRDFDescriptionElement(Element relsExt) throws XPathExpr /** Returns replicatedFrom url from given RELS-EXT element*/ - public static String getReplicatedFromUrl(String uuid, FedoraAccess fedoraAccess) throws IOException, XPathExpressionException { + public static String getReplicatedFromUrl(String uuid, RepositoryAccess fedoraAccess) throws IOException, XPathExpressionException { Document relsExt = fedoraAccess.getRelsExt(uuid); return getReplicatedFromUrl(relsExt); } @@ -114,7 +108,7 @@ private static String getReplicatedFromUrl(Document relsExt) throws XPathExpress } /** Returns replicatedFrom url from given RELS-EXT element */ - public static String getRelsExtTilesUrl(String uuid, FedoraAccess fedoraAccess) throws IOException, XPathExpressionException { + public static String getRelsExtTilesUrl(String uuid, RepositoryAccess fedoraAccess) throws IOException, XPathExpressionException { Document relsExt = fedoraAccess.getRelsExt(uuid); return getRelsExtTilesUrl(relsExt.getDocumentElement()); } diff --git a/shared/common/src/main/java/cz/incad/kramerius/utils/imgs/KrameriusImageSupport.java b/shared/common/src/main/java/cz/incad/kramerius/utils/imgs/KrameriusImageSupport.java index bd92fc7941..75a3c26ff2 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/utils/imgs/KrameriusImageSupport.java +++ b/shared/common/src/main/java/cz/incad/kramerius/utils/imgs/KrameriusImageSupport.java @@ -5,14 +5,12 @@ import com.lizardtech.djvu.DjVuPage; import com.lizardtech.djvubean.DjVuImage; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.fedora.utils.Handler; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.conf.KConfiguration; import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.pdmodel.PDPage; -import org.apache.pdfbox.pdmodel.encryption.StandardDecryptionMaterial; import org.apache.pdfbox.rendering.ImageType; import org.apache.pdfbox.rendering.PDFRenderer; @@ -28,7 +26,6 @@ import java.io.*; import java.net.URL; import java.util.Iterator; -import java.util.List; public class KrameriusImageSupport { @@ -44,7 +41,7 @@ public void write(int b) { - public static BufferedImage readImage(String pid, String stream, FedoraAccess fedoraAccess, int page) throws XPathExpressionException, IOException { + public static BufferedImage readImage(String pid, String stream, RepositoryAccess fedoraAccess, int page) throws XPathExpressionException, IOException { String mimetype = fedoraAccess.getMimeTypeForStream(pid, stream); LOGGER.fine("mimetype for pid '"+pid+"' is '"+mimetype+"'"); ImageMimeType loadFromMimeType = ImageMimeType.loadFromMimeType(mimetype); @@ -52,11 +49,11 @@ public static BufferedImage readImage(String pid, String stream, FedoraAccess fe return readImage(url, loadFromMimeType, page); } - public static Dimension readDimension(String pid, String stream, FedoraAccess fedoraAccess, int page) throws XPathExpressionException, IOException { + public static Dimension readDimension(String pid, String stream, RepositoryAccess fedoraAccess, int page) throws XPathExpressionException, IOException { return readDimension(pid, stream,fedoraAccess,page,false); } - public static Dimension readDimension(String pid, String stream, FedoraAccess fedoraAccess, int page, boolean forceread) throws XPathExpressionException, IOException { + public static Dimension readDimension(String pid, String stream, RepositoryAccess fedoraAccess, int page, boolean forceread) throws XPathExpressionException, IOException { String mimetype = fedoraAccess.getMimeTypeForStream(pid, stream); ImageMimeType loadFromMimeType = ImageMimeType.loadFromMimeType(mimetype); URL url = new URL("fedora", "", 0, pid + "/" + stream, new Handler(fedoraAccess)); diff --git a/shared/common/src/main/java/cz/incad/kramerius/virtualcollections/CollectionsModule.java b/shared/common/src/main/java/cz/incad/kramerius/virtualcollections/CollectionsModule.java index 3ef4bde590..bbd823f2af 100644 --- a/shared/common/src/main/java/cz/incad/kramerius/virtualcollections/CollectionsModule.java +++ b/shared/common/src/main/java/cz/incad/kramerius/virtualcollections/CollectionsModule.java @@ -1,13 +1,8 @@ package cz.incad.kramerius.virtualcollections; import com.google.inject.AbstractModule; -import com.google.inject.Scopes; -import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.EhCacheProvider; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; //import cz.incad.kramerius.virtualcollections.impl.fedora.FedoraCollectionsManagerImpl; -import org.ehcache.CacheManager; + public class CollectionsModule extends AbstractModule { diff --git a/shared/common/src/test/java/cz/incad/kramerius/ObjectPidsPathTest.java b/shared/common/src/test/java/cz/incad/kramerius/ObjectPidsPathTest.java index 4519f75c39..c49d078922 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/ObjectPidsPathTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/ObjectPidsPathTest.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.io.InputStream; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -29,14 +28,10 @@ import cz.incad.kramerius.utils.XMLUtils; import org.easymock.EasyMock; -import org.json.JSONArray; import org.json.JSONException; -import org.json.JSONObject; import org.junit.Ignore; import org.junit.Test; -import cz.incad.kramerius.security.SpecialObjects; -import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.virtualcollections.Collection; import cz.incad.kramerius.virtualcollections.CollectionException; import cz.incad.kramerius.virtualcollections.CollectionsManager; @@ -282,7 +277,7 @@ public void testEhanceByCollection() throws JSONException, IOException, NoSuchMe CollectionsManager colGet = EasyMock.createMock(CollectionsManager.class); - FedoraAccess fa = EasyMock.createMock(FedoraAccess.class); + RepositoryAccess fa = EasyMock.createMock(RepositoryAccess.class); EasyMock.expect(fa.getRelsExt("uuid:periodical")).andReturn(document).anyTimes(); EasyMock.expect(fa.getRelsExt("uuid:periodicalvolume")).andReturn(document).anyTimes(); EasyMock.expect(fa.getRelsExt("uuid:periodicalitem")).andReturn(document).anyTimes(); @@ -315,7 +310,7 @@ public void testEhanceByCollection3() throws JSONException, IOException, NoSuchM ObjectPidsPath p = new ObjectPidsPath(); CollectionsManager colGet = EasyMock.createMock(CollectionsManager.class); - FedoraAccess fa = EasyMock.createMock(FedoraAccess.class); + RepositoryAccess fa = EasyMock.createMock(RepositoryAccess.class); replay( colGet, fa); ObjectPidsPath cols = p.injectCollections(colGet); diff --git a/shared/common/src/test/java/cz/incad/kramerius/document/DocumentServiceTest.java b/shared/common/src/test/java/cz/incad/kramerius/document/DocumentServiceTest.java index 528c692613..a3170fcd69 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/document/DocumentServiceTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/document/DocumentServiceTest.java @@ -27,7 +27,7 @@ import com.google.inject.Key; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.utils.FedoraUtils; import junit.framework.Assert; @@ -42,7 +42,6 @@ import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.document.model.AbstractPage; import cz.incad.kramerius.document.model.PreparedDocument; -import cz.incad.kramerius.document.model.OutlineItem; import cz.incad.kramerius.fedora.impl.DataPrepare; import cz.incad.kramerius.pdf.OutOfRangeException; import cz.incad.kramerius.utils.pid.LexerException; @@ -183,7 +182,7 @@ public void testDocumentServiceFromNonPagePidReducedPages() throws IOException, DocumentService docService = injector.getInstance(DocumentService.class); - FedoraAccess fa4 = injector.getInstance(Key.get(FedoraAccess.class, Names.named("securedFedoraAccess"))); + RepositoryAccess fa4 = injector.getInstance(Key.get(RepositoryAccess.class, Names.named("securedFedoraAccess"))); boolean imageFULLAvailable = fa4.isImageFULLAvailable("uuid:4308eb80-b03b-11dd-a0f6-000d606f5dc6"); Document relsExt = fa4.getRelsExt("uuid:4308eb80-b03b-11dd-a0f6-000d606f5dc6"); diff --git a/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceModule.java b/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceModule.java index e7494435c7..a44038e9fd 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceModule.java +++ b/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceModule.java @@ -6,21 +6,20 @@ import com.google.inject.Provides; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.document.impl.DocumentServiceImpl; import cz.incad.kramerius.service.ResourceBundleService; -import cz.incad.kramerius.utils.conf.KConfiguration; class _DocumentServiceModule extends AbstractModule { private Locale locale; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private ResourceBundleService resourceBundleService; private SolrAccess solrAccess; - public _DocumentServiceModule(Locale locale, FedoraAccess fedoraAccess, ResourceBundleService resourceBundleService, SolrAccess solrAccess) { + public _DocumentServiceModule(Locale locale, RepositoryAccess fedoraAccess, ResourceBundleService resourceBundleService, SolrAccess solrAccess) { super(); this.locale = locale; this.fedoraAccess = fedoraAccess; @@ -31,7 +30,7 @@ public _DocumentServiceModule(Locale locale, FedoraAccess fedoraAccess, Resource @Override protected void configure() { - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(this.fedoraAccess); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(this.fedoraAccess); bind(SolrAccess.class).toInstance(this.solrAccess); bind(ResourceBundleService.class).toInstance(this.resourceBundleService); diff --git a/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceTestPrepare.java b/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceTestPrepare.java index 07a9015ed7..596e3f46f0 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceTestPrepare.java +++ b/shared/common/src/test/java/cz/incad/kramerius/document/_DocumentServiceTestPrepare.java @@ -14,7 +14,7 @@ import javax.xml.parsers.ParserConfigurationException; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; @@ -44,7 +44,7 @@ public static Injector prepareInjector(String pages, boolean turnOffPdfCheck) th LexerException { AggregatedAccessLogs acLog = EasyMock.createMock(AggregatedAccessLogs.class); Locale locale = Locale.getDefault(); - FedoraAccessAkubraImpl fa4 = _DocumentServiceTestPrepare.prepareFedoraAccess(acLog); + RepositoryAccessImpl fa4 = _DocumentServiceTestPrepare.prepareFedoraAccess(acLog); ResourceBundleService bundleService = _DocumentServiceTestPrepare.prepareBundleService(locale); @@ -74,7 +74,7 @@ public static SolrAccess prepareSolrAccess() throws IOException { return solrAccess; } - public static FedoraAccessAkubraImpl prepareFedoraAccess(StatisticsAccessLog acLog) + public static RepositoryAccessImpl prepareFedoraAccess(StatisticsAccessLog acLog) throws NoSuchMethodException, IOException, ParserConfigurationException, SAXException, LexerException { @@ -83,7 +83,7 @@ public static FedoraAccessAkubraImpl prepareFedoraAccess(StatisticsAccessLog acL cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder ,acLog, cacheManager) //.addMockedMethod("getFedoraDescribeStream") @@ -92,7 +92,7 @@ public static FedoraAccessAkubraImpl prepareFedoraAccess(StatisticsAccessLog acL .addMockedMethod("isStreamAvailable") .addMockedMethod("getDC") .addMockedMethod("getBiblioMods") - .addMockedMethod(FedoraAccessAkubraImpl.class.getMethod("getKrameriusModelName", String.class)) + .addMockedMethod(RepositoryAccessImpl.class.getMethod("getKrameriusModelName", String.class)) .createMock(); diff --git a/shared/common/src/test/java/cz/incad/kramerius/document/model/utils/DCContentUtilsTest.java b/shared/common/src/test/java/cz/incad/kramerius/document/model/utils/DCContentUtilsTest.java index b34b408488..3347678c10 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/document/model/utils/DCContentUtilsTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/document/model/utils/DCContentUtilsTest.java @@ -31,7 +31,7 @@ import org.w3c.dom.Document; import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.SolrAccess; import cz.incad.kramerius.utils.XMLUtils; @@ -48,7 +48,7 @@ public void testCache() throws ParserConfigurationException, SAXException, IOExc List pids = generatePIDS(); - FedoraAccess fa = EasyMock.createMock(FedoraAccess.class); + RepositoryAccess fa = EasyMock.createMock(RepositoryAccess.class); for (int i = 0; i < MAX; i++) { EasyMock.expect(fa.getDC(pids.get(i))).andReturn(dcDocument).anyTimes(); } diff --git a/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java b/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java index 1759480e78..43de508e83 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java +++ b/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/DataPrepare.java @@ -29,12 +29,11 @@ import javax.xml.parsers.ParserConfigurationException; import cz.incad.kramerius.utils.FedoraUtils; -import cz.incad.kramerius.SolrAccess; import org.easymock.EasyMock; import org.w3c.dom.Document; import org.xml.sax.SAXException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.XMLUtils; @@ -104,70 +103,70 @@ public class DataPrepare { public static InputStream datastreams33() { String path = "/cz/incad/kramerius/fedora/res/datastreams_3_3"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream datastreams34() { String path = "/cz/incad/kramerius/fedora/res/datastreams_3_4"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream datastreams36() { String path = "/cz/incad/kramerius/fedora/res/datastreams_3_6"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream dsProfile33() { String path = "/cz/incad/kramerius/fedora/res/dsprofile_3_3"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream dsProfile36() { String path = "/cz/incad/kramerius/fedora/res/dsprofile_3_6"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream dsProfile34() { String path = "/cz/incad/kramerius/fedora/res/dsprofile_3_4"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream fedoraProfile33() { String path = "/cz/incad/kramerius/fedora/res/describe_3_3"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream fedoraProfile34() { String path = "/cz/incad/kramerius/fedora/res/describe_3_4"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } public static InputStream fedoraProfile36() { String path = "/cz/incad/kramerius/fedora/res/describe_3_6"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); return resStream; } - public static void narodniListyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void narodniListyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; expect(fa.isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)).andReturn(true).anyTimes(); relsExt(fa, pid); } } - public static void narodniListyImgFull(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void narodniListyImgFull(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; expect(fa.isStreamAvailable(pid, FedoraUtils.IMG_FULL_STREAM)).andReturn(true).anyTimes(); @@ -175,7 +174,7 @@ public static void narodniListyImgFull(FedoraAccess fa) throws IOException, Pars } } - public static void drobnustkyRelsExt(FedoraAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void drobnustkyRelsExt(RepositoryAccess fa) throws IOException, ParserConfigurationException, SAXException, LexerException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { String pid = DROBNUSTKY_PIDS[i]; expect(fa.isStreamAvailable(pid, FedoraUtils.RELS_EXT_STREAM)).andReturn(true).anyTimes(); @@ -183,13 +182,13 @@ public static void drobnustkyRelsExt(FedoraAccess fa) throws IOException, Parser } } - public static void relsExt(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void relsExt(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String objectId = pidParser.getObjectId(); String path = "/cz/incad/kramerius/fedora/res/"+objectId+".xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getRelsExt(pid)).andReturn(XMLUtils.parseDocument(resStream, true)).anyTimes(); } @@ -212,18 +211,18 @@ public static void relsExt(FedoraAccess fa, String pid) throws LexerException, I // } // } - public static void imgFull(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void imgFull(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String objectId = pidParser.getObjectId(); String path = "/cz/incad/kramerius/fedora/res/"+objectId+".jpg"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); byte[] bytes = IOUtils.bos(resStream, true); expect(fa.getImageFULL(pid)).andReturn(new ByteArrayInputStream(bytes)).anyTimes(); } - public static void narodniListyIMGFULL(FedoraAccess fa) throws IOException, LexerException { + public static void narodniListyIMGFULL(RepositoryAccess fa) throws IOException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; String model = MODELS_MAPPING.get(pid); @@ -240,7 +239,7 @@ public static void narodniListyIMGFULL(FedoraAccess fa) throws IOException, Lexe } - public static void narodniListyIMGFULLMimeType(FedoraAccess fa) throws IOException, LexerException { + public static void narodniListyIMGFULLMimeType(RepositoryAccess fa) throws IOException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; String model = MODELS_MAPPING.get(pid); @@ -254,7 +253,7 @@ public static void narodniListyIMGFULLMimeType(FedoraAccess fa) throws IOExcepti } } - public static void narodniListyIMGFULLData(FedoraAccess fa) throws IOException, LexerException { + public static void narodniListyIMGFULLData(RepositoryAccess fa) throws IOException, LexerException { for (int i = 0; i < NARODNI_LISTY.length; i++) { String pid = NARODNI_LISTY[i]; String model = MODELS_MAPPING.get(pid); @@ -289,7 +288,7 @@ public static void downloadNarodniListy() throws LexerException, IOException { } - public static void drobnustkyWithIMGFULL(FedoraAccess fa) throws IOException { + public static void drobnustkyWithIMGFULL(RepositoryAccess fa) throws IOException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { if (DROBNUSTKY_PIDS[i].equals("uuid:0eaa6730-9068-11dd-97de-000d606f5dc6")) { expect(fa.isImageFULLAvailable(DROBNUSTKY_PIDS[i])).andReturn(false).anyTimes(); @@ -299,32 +298,32 @@ public static void drobnustkyWithIMGFULL(FedoraAccess fa) throws IOException { } } - public static void narodniListyDCs(FedoraAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void narodniListyDCs(RepositoryAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { for (int i = 0; i < NARODNI_LISTY.length; i++) { dc(fa,NARODNI_LISTY[i]); } } - public static void drobnustkyDCS(FedoraAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { + public static void drobnustkyDCS(RepositoryAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { dc(fa,DROBNUSTKY_PIDS[i]); } } - public static void narodniListyMods(FedoraAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void narodniListyMods(RepositoryAccess fa) throws LexerException, ParserConfigurationException, SAXException, IOException { for (int i = 0; i < NARODNI_LISTY.length; i++) { mods(fa,NARODNI_LISTY[i]); } } - public static void drobnustkyMODS(FedoraAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { + public static void drobnustkyMODS(RepositoryAccess fa) throws IOException, LexerException, ParserConfigurationException, SAXException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { mods(fa,DROBNUSTKY_PIDS[i]); } } - public static void drobnustkyWithOutIMGFULL(FedoraAccess fa) throws IOException { + public static void drobnustkyWithOutIMGFULL(RepositoryAccess fa) throws IOException { for (int i = 0; i < DROBNUSTKY_PIDS.length; i++) { expect(fa.isImageFULLAvailable(DROBNUSTKY_PIDS[i])).andReturn(false); } @@ -339,32 +338,32 @@ public static void drobnustkyWithOutIMGFULL(FedoraAccess fa) throws IOException // expect(fa.getRelsExt(pid)).andReturn(XMLUtils.parseDocument(resStream, true)); // } - public static void dc(FedoraAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { + public static void dc(RepositoryAccess fa, String pid) throws LexerException, IOException, ParserConfigurationException, SAXException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/cz/incad/kramerius/fedora/res/"+pidParser.getObjectId()+".dc.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); Document document = XMLUtils.parseDocument(resStream, true); EasyMock.expect(fa.getDC(pid)).andReturn(document).anyTimes(); } - public static void mods(FedoraAccess fa, String pid) throws LexerException, ParserConfigurationException, SAXException, IOException { + public static void mods(RepositoryAccess fa, String pid) throws LexerException, ParserConfigurationException, SAXException, IOException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/cz/incad/kramerius/fedora/res/"+pidParser.getObjectId()+".mods.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); Document document = XMLUtils.parseDocument(resStream, true); EasyMock.expect(fa.getBiblioMods(pid)).andReturn(document).anyTimes(); } - public static void dataStreams(FedoraAccess fa, String pid) throws IOException, ParserConfigurationException, SAXException, LexerException { + public static void dataStreams(RepositoryAccess fa, String pid) throws IOException, ParserConfigurationException, SAXException, LexerException { PIDParser pidParser = new PIDParser(pid); pidParser.objectPid(); String path = "/cz/incad/kramerius/fedora/res/"+pidParser.getObjectId()+".datastreams.xml"; - InputStream resStream = FedoraAccessAkubraImpl.class.getResourceAsStream(path); + InputStream resStream = RepositoryAccessImpl.class.getResourceAsStream(path); expect(fa.getFedoraDataStreamsList(pid)).andReturn(resStream); } diff --git a/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/FedoraAccess4xImplTest.java b/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/FedoraAccess4xImplTest.java index 6ddc598d34..185c343b81 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/FedoraAccess4xImplTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/fedora/impl/FedoraAccess4xImplTest.java @@ -1,19 +1,15 @@ package cz.incad.kramerius.fedora.impl; -import cz.incad.kramerius.FedoraAccess; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.TreeNodeProcessor; import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; -import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.pid.LexerException; import junit.framework.Assert; import org.easymock.EasyMock; import org.ehcache.CacheManager; import org.ehcache.config.builders.CacheManagerBuilder; -import org.ehcache.core.EhcacheManager; import org.junit.Test; import org.xml.sax.SAXException; @@ -41,7 +37,7 @@ public void testFindFirstViewablePid_good() throws IOException, ParserConfigurat cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, aclog, cacheManager) .addMockedMethod("isStreamAvailable") .addMockedMethod("getRelsExt") @@ -68,7 +64,7 @@ public void testFindFirstViewablePid_bad() throws IOException, ParserConfigurati cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa = createMockBuilder(RepositoryAccessImpl.class) .withConstructor(feeder, aclog, cacheManager) .addMockedMethod("isStreamAvailable") .addMockedMethod("getRelsExt") @@ -94,7 +90,7 @@ public void testProcessTree_SkipBranch() throws IOException, ParserConfiguration CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(); cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); - FedoraAccessAkubraImpl fa = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, aclog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isStreamAvailable") @@ -147,7 +143,7 @@ public void testProcessTree_SkipBranch2() throws IOException, ParserConfiguratio final List order = new ArrayList(); - FedoraAccessAkubraImpl fa = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, aclog,cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isStreamAvailable") diff --git a/shared/common/src/test/java/cz/incad/kramerius/fedora/om/RELSEXTSPARQLBuilderImplTest.java b/shared/common/src/test/java/cz/incad/kramerius/fedora/om/RELSEXTSPARQLBuilderImplTest.java index 7227bf77ef..703e113fe0 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/fedora/om/RELSEXTSPARQLBuilderImplTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/fedora/om/RELSEXTSPARQLBuilderImplTest.java @@ -1,7 +1,5 @@ package cz.incad.kramerius.fedora.om; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.impl.DataPrepare; import cz.incad.kramerius.fedora.om.impl.RELSEXTSPARQLBuilderImpl; import junit.framework.TestCase; import org.apache.commons.io.IOUtils; @@ -11,9 +9,6 @@ import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; /** * Created by pstastny on 11/1/2017. diff --git a/shared/common/src/test/java/cz/incad/kramerius/imaging/DeepZoomTileSupportTest.java b/shared/common/src/test/java/cz/incad/kramerius/imaging/DeepZoomTileSupportTest.java index dac4a39705..80fc4b7ac9 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/imaging/DeepZoomTileSupportTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/imaging/DeepZoomTileSupportTest.java @@ -15,7 +15,7 @@ import com.google.inject.name.Names; import cz.incad.kramerius.AbstractGuiceTestCase; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.imaging.impl.TileSupportImpl; @Ignore @@ -52,7 +52,7 @@ class _Module extends AbstractModule { @Override protected void configure() { - FedoraAccess fa = EasyMock.createMock(FedoraAccess.class); + RepositoryAccess fa = EasyMock.createMock(RepositoryAccess.class); TileSupportImpl tis = EasyMock.createMockBuilder(TileSupportImpl.class).withConstructor() .addMockedMethod("getTileSize").createMock(); @@ -61,7 +61,7 @@ protected void configure() { EasyMock.replay(fa,tis); - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fa); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fa); bind(DeepZoomTileSupport.class).toInstance(tis); diff --git a/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImplTest.java b/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImplTest.java index b0c708f6b0..a063dc1712 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImplTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/FileSystemCacheServiceImplTest.java @@ -20,15 +20,12 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileFilter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Reader; -import java.io.StringWriter; import java.io.Writer; import java.net.URL; import java.util.ArrayList; @@ -36,18 +33,15 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Stack; import javax.imageio.ImageIO; import javax.imageio.stream.ImageInputStreamImpl; import javax.imageio.stream.ImageOutputStreamImpl; -import javax.xml.crypto.Data; import junit.framework.Assert; import org.easymock.EasyMock; -import org.easymock.IAnswer; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -55,11 +49,10 @@ import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; -import com.google.inject.Key; import com.google.inject.name.Names; import cz.incad.kramerius.AbstractGuiceTestCase; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.fedora.impl.DataPrepare; import cz.incad.kramerius.imaging.DeepZoomCacheService; @@ -70,7 +63,6 @@ import cz.incad.kramerius.imaging.paths.Path; import cz.incad.kramerius.imaging.paths.PathFilter; import cz.incad.kramerius.utils.pid.LexerException; -import cz.incad.kramerius.utils.pid.PIDParser; @Ignore public class FileSystemCacheServiceImplTest extends AbstractGuiceTestCase { @@ -167,7 +159,7 @@ class _Module extends AbstractModule { @Override protected void configure() { try { - FedoraAccess fa = EasyMock.createMock(FedoraAccess.class); + RepositoryAccess fa = EasyMock.createMock(RepositoryAccess.class); TileSupportImpl tis = EasyMock.createMockBuilder(TileSupportImpl.class).withConstructor() .addMockedMethod("getTileSize").createMock(); @@ -190,7 +182,7 @@ protected void configure() { EasyMock.replay(fa,tis,fcache, discStruct); - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fa); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fa); bind(DeepZoomTileSupport.class).toInstance(tis); bind(DeepZoomCacheService.class).toInstance(fcache); bind(DiscStrucutreForStore.class).toInstance(discStruct); diff --git a/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/TileSupportImplTest.java b/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/TileSupportImplTest.java index d21deaf5c1..01547ec3a0 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/TileSupportImplTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/imaging/impl/TileSupportImplTest.java @@ -20,9 +20,6 @@ package cz.incad.kramerius.imaging.impl; import java.awt.Dimension; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.Arrays; import junit.framework.Assert; @@ -36,13 +33,8 @@ import com.google.inject.name.Names; import cz.incad.kramerius.AbstractGuiceTestCase; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.fedora.impl.DataPrepare; -import cz.incad.kramerius.imaging.DeepZoomCacheService; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.imaging.DeepZoomTileSupport; -import cz.incad.kramerius.imaging.DiscStrucutreForStore; -import cz.incad.kramerius.imaging.impl.FileSystemCacheServiceImplTest._Module; -import cz.incad.kramerius.imaging.paths.DirPath; /** * @author pavels @@ -96,12 +88,12 @@ protected void configure() { TileSupportImpl tis = EasyMock.createMockBuilder(TileSupportImpl.class).withConstructor() .addMockedMethod("getTileSize").createMock(); - FedoraAccess fa = EasyMock.createMock(FedoraAccess.class); + RepositoryAccess fa = EasyMock.createMock(RepositoryAccess.class); EasyMock.replay(tis,fa); bind(DeepZoomTileSupport.class).toInstance(tis); - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fa); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fa); } } diff --git a/shared/common/src/test/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImplTest.java b/shared/common/src/test/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImplTest.java index 9a38d7920a..45547a419d 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImplTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/pdf/impl/FirstPagePDFServiceImplTest.java @@ -33,7 +33,7 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPathExpressionException; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; import cz.incad.kramerius.statistics.accesslogs.AggregatedAccessLogs; @@ -57,7 +57,7 @@ import com.google.inject.name.Names; import com.lowagie.text.DocumentException; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.ObjectPidsPath; import cz.incad.kramerius.ProcessSubtreeException; import cz.incad.kramerius.SolrAccess; @@ -71,7 +71,6 @@ import cz.incad.kramerius.service.ResourceBundleService; import cz.incad.kramerius.service.TextsService; import cz.incad.kramerius.service.impl.TextsServiceImpl; -import cz.incad.kramerius.statistics.StatisticsAccessLog; import cz.incad.kramerius.utils.IOUtils; import cz.incad.kramerius.utils.XMLUtils; import cz.incad.kramerius.utils.pid.LexerException; @@ -201,7 +200,7 @@ public void testGenerateParent_DROBNUSTKY() throws SecurityException, NoSuchMeth HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isImageFULLAvailable") @@ -270,14 +269,14 @@ public void testGenerateParent_DROBNUSTKYPage() throws SecurityException, NoSuch HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isImageFULLAvailable") .addMockedMethod("isStreamAvailable") .addMockedMethod("getDC") .addMockedMethod("getBiblioMods") - .addMockedMethod(FedoraAccessAkubraImpl.class.getMethod("getKrameriusModelName", String.class)) + .addMockedMethod(RepositoryAccessImpl.class.getMethod("getKrameriusModelName", String.class)) .createMock(); @@ -350,14 +349,14 @@ public void testGenerateSelection_NarodniListy() throws SecurityException, NoSuc HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isImageFULLAvailable") .addMockedMethod("isStreamAvailable") .addMockedMethod("getDC") .addMockedMethod("getBiblioMods") - .addMockedMethod(FedoraAccessAkubraImpl.class.getMethod("getKrameriusModelName", String.class)) + .addMockedMethod(RepositoryAccessImpl.class.getMethod("getKrameriusModelName", String.class)) .createMock(); @@ -460,14 +459,14 @@ public void testGenerateParent_NarodniListy() throws SecurityException, NoSuchMe HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isImageFULLAvailable") .addMockedMethod("isStreamAvailable") .addMockedMethod("getDC") .addMockedMethod("getBiblioMods") - .addMockedMethod(FedoraAccessAkubraImpl.class.getMethod("getKrameriusModelName", String.class)) + .addMockedMethod(RepositoryAccessImpl.class.getMethod("getKrameriusModelName", String.class)) .createMock(); @@ -578,14 +577,14 @@ public void testGenerateSelection_NarodniListyDrobnustky() throws SecurityExcept HazelcastServerNode.ensureHazelcastNode(); // test correct data - IMG_FULL in pages - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isImageFULLAvailable") .addMockedMethod("isStreamAvailable") .addMockedMethod("getDC") .addMockedMethod("getBiblioMods") - .addMockedMethod(FedoraAccessAkubraImpl.class.getMethod("getKrameriusModelName", String.class)) + .addMockedMethod(RepositoryAccessImpl.class.getMethod("getKrameriusModelName", String.class)) .createMock(); @@ -701,12 +700,12 @@ public void testEscapingInPrepareViewObject() throws SecurityException, NoSuchMe class _Module extends AbstractModule { private Locale locale; - private FedoraAccess fedoraAccess; + private RepositoryAccess fedoraAccess; private ResourceBundleService resourceBundleService; private SolrAccess solrAccess; - public _Module(Locale locale, FedoraAccess fedoraAccess, ResourceBundleService resourceBundleService,SolrAccess solrAccess) { + public _Module(Locale locale, RepositoryAccess fedoraAccess, ResourceBundleService resourceBundleService, SolrAccess solrAccess) { super(); this.locale = locale; this.fedoraAccess = fedoraAccess; @@ -716,7 +715,7 @@ public _Module(Locale locale, FedoraAccess fedoraAccess, ResourceBundleService r @Override protected void configure() { - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(this.fedoraAccess); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(this.fedoraAccess); bind(SolrAccess.class).toInstance(this.solrAccess); bind(ResourceBundleService.class).toInstance(this.resourceBundleService); bind(TextsService.class).to(TextsServiceImpl.class); diff --git a/shared/common/src/test/java/cz/incad/kramerius/pdf/utils/SimpleFedoraAccessModule.java b/shared/common/src/test/java/cz/incad/kramerius/pdf/utils/SimpleFedoraAccessModule.java index ec70a20280..96a1b0ca65 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/pdf/utils/SimpleFedoraAccessModule.java +++ b/shared/common/src/test/java/cz/incad/kramerius/pdf/utils/SimpleFedoraAccessModule.java @@ -18,16 +18,14 @@ import com.google.inject.AbstractModule; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; -import cz.incad.kramerius.impl.SolrAccessImpl; +import cz.incad.kramerius.RepositoryAccess; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; public class SimpleFedoraAccessModule extends AbstractModule { @Override protected void configure() { - bind(FedoraAccess.class).to(FedoraAccessAkubraImpl.class); + bind(RepositoryAccess.class).to(RepositoryAccessImpl.class); //bind(SolrAccess.class).to(SolrAccessImpl.class); } } diff --git a/shared/common/src/test/java/cz/incad/kramerius/relation/RelationGuiceModule.java b/shared/common/src/test/java/cz/incad/kramerius/relation/RelationGuiceModule.java index d696c6f494..0ced4491e5 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/relation/RelationGuiceModule.java +++ b/shared/common/src/test/java/cz/incad/kramerius/relation/RelationGuiceModule.java @@ -20,7 +20,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.relation.impl.RelationServiceImpl; import org.easymock.EasyMock; @@ -32,8 +32,8 @@ public class RelationGuiceModule extends AbstractModule { @Override protected void configure() { - FedoraAccess fedoraAccess = EasyMock.createMock(FedoraAccess.class); - bind(FedoraAccess.class).annotatedWith(Names.named("rawFedoraAccess")).toInstance(fedoraAccess); + RepositoryAccess fedoraAccess = EasyMock.createMock(RepositoryAccess.class); + bind(RepositoryAccess.class).annotatedWith(Names.named("rawFedoraAccess")).toInstance(fedoraAccess); bind(RelationService.class).to(RelationServiceImpl.class).in(Scopes.SINGLETON); } diff --git a/shared/common/src/test/java/cz/incad/kramerius/relation/RelationServiceTest.java b/shared/common/src/test/java/cz/incad/kramerius/relation/RelationServiceTest.java index d692b37af7..856a512a14 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/relation/RelationServiceTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/relation/RelationServiceTest.java @@ -17,31 +17,8 @@ package cz.incad.kramerius.relation; -import com.google.inject.Guice; -import com.google.inject.Injector; -import com.google.inject.Key; -import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; -import cz.incad.kramerius.KrameriusModels; -import org.custommonkey.xmlunit.DetailedDiff; -import org.custommonkey.xmlunit.Diff; -import org.custommonkey.xmlunit.XMLUnit; -import org.easymock.Capture; -import org.easymock.EasyMock; -import org.easymock.IAnswer; import org.junit.*; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.StringReader; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.regex.Pattern; - -import static org.junit.Assert.*; - /** * * @author Jan Pokorsky diff --git a/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockGuiceSecurityModule.java b/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockGuiceSecurityModule.java index d09d12f4dc..b791d043a7 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockGuiceSecurityModule.java +++ b/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockGuiceSecurityModule.java @@ -16,24 +16,17 @@ */ package cz.incad.kramerius.security.guice; -import java.io.FileNotFoundException; - -import javax.script.ScriptException; - import org.easymock.EasyMock; import com.google.inject.AbstractModule; import com.google.inject.multibindings.Multibinder; -import cz.incad.kramerius.FedoraAccess; import cz.incad.kramerius.security.RightCriteriumContextFactory; import cz.incad.kramerius.security.RightCriteriumLoader; import cz.incad.kramerius.security.RightCriteriumWrapperFactory; import cz.incad.kramerius.security.RightsManager; import cz.incad.kramerius.security.UserManager; import cz.incad.kramerius.security.impl.ClassRightCriteriumLoaderImpl; -import cz.incad.kramerius.security.impl.DatabaseRightsManager; -import cz.incad.kramerius.security.impl.DatabaseUserManager; import cz.incad.kramerius.security.impl.RightCriteriumContextFactoryImpl; import cz.incad.kramerius.security.impl.RightCriteriumWrapperFactoryImpl; diff --git a/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockRightCriteriumContextGuiceMudule.java b/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockRightCriteriumContextGuiceMudule.java index 3fb5e9ecb5..5f7a8563a0 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockRightCriteriumContextGuiceMudule.java +++ b/shared/common/src/test/java/cz/incad/kramerius/security/guice/MockRightCriteriumContextGuiceMudule.java @@ -21,17 +21,15 @@ import com.google.inject.AbstractModule; import com.google.inject.name.Names; -import cz.incad.kramerius.FedoraAccess; +import cz.incad.kramerius.RepositoryAccess; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.security.RightsResolver; -import cz.incad.kramerius.security.SecuredActions; public class MockRightCriteriumContextGuiceMudule extends AbstractModule { @Override protected void configure() { - FedoraAccess fedoraAccess = EasyMock.createMock(FedoraAccess.class); - bind(FedoraAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fedoraAccess); + RepositoryAccess fedoraAccess = EasyMock.createMock(RepositoryAccess.class); + bind(RepositoryAccess.class).annotatedWith(Names.named("securedFedoraAccess")).toInstance(fedoraAccess); SolrAccess solrAccess = EasyMock.createMock(SolrAccess.class); bind(SolrAccess.class).toInstance(solrAccess); diff --git a/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilterTest.java b/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilterTest.java index 530fdc00ea..b982ab79f7 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilterTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/CoverAndContentFilterTest.java @@ -14,7 +14,7 @@ import org.xml.sax.SAXException; import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; import cz.incad.kramerius.security.EvaluatingResultState; @@ -54,7 +54,7 @@ public EvaluatingResultState mockEvaluate() throws IOException, HazelcastServerNode.ensureHazelcastNode(); - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getDataStream") .addMockedMethod("getKrameriusModelName", String.class) @@ -86,7 +86,7 @@ public EvaluatingResultState mockEvaluate() throws IOException, return ca.evalute(null); } - private class TestFA extends FedoraAccessAkubraImpl { + private class TestFA extends RepositoryAccessImpl { diff --git a/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/MovingWallTest.java b/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/MovingWallTest.java index ce86dfaab8..a223ceacbb 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/MovingWallTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/MovingWallTest.java @@ -17,41 +17,8 @@ package cz.incad.kramerius.security.impl.criteria; import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createMockBuilder; -import static org.easymock.EasyMock.replay; -import java.io.IOException; -import java.util.Set; - -import javax.xml.parsers.ParserConfigurationException; - -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; -import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; -import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; -import cz.incad.kramerius.security.EvaluatingResultState; -import junit.framework.Assert; - -import org.easymock.EasyMock; -import org.ehcache.CacheManager; -import org.ehcache.config.builders.CacheManagerBuilder; import org.junit.Ignore; -import org.junit.Test; -import org.xml.sax.SAXException; - -import cz.incad.kramerius.ObjectPidsPath; -import cz.incad.kramerius.SolrAccess; -import cz.incad.kramerius.fedora.impl.DataPrepare; -import cz.incad.kramerius.security.RightCriteriumContext; -import cz.incad.kramerius.security.RightCriteriumException; -import cz.incad.kramerius.security.impl.RightCriteriumContextFactoryImpl; -import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.utils.conf.KConfiguration; -import cz.incad.kramerius.utils.pid.LexerException; -import cz.incad.kramerius.utils.solr.SolrUtils; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.xml.xpath.XPathExpressionException; -import org.w3c.dom.Document; @Ignore public class MovingWallTest { diff --git a/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/WindowTest.java b/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/WindowTest.java index 9a41a9fdb4..e36fea5730 100644 --- a/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/WindowTest.java +++ b/shared/common/src/test/java/cz/incad/kramerius/security/impl/criteria/WindowTest.java @@ -9,7 +9,7 @@ import javax.xml.parsers.ParserConfigurationException; -import cz.incad.kramerius.fedora.impl.FedoraAccessAkubraImpl; +import cz.incad.kramerius.fedora.impl.RepositoryAccessImpl; import cz.incad.kramerius.fedora.om.impl.HazelcastServerNode; import cz.incad.kramerius.resourceindex.ProcessingIndexFeeder; import cz.incad.kramerius.security.EvaluatingResultState; @@ -28,8 +28,6 @@ import cz.incad.kramerius.security.RightCriteriumContext; import cz.incad.kramerius.security.RightCriteriumException; import cz.incad.kramerius.security.impl.RightCriteriumContextFactoryImpl; -import cz.incad.kramerius.statistics.StatisticsAccessLog; -import cz.incad.kramerius.utils.conf.KConfiguration; import cz.incad.kramerius.utils.pid.LexerException; public class WindowTest { @@ -62,7 +60,7 @@ public EvaluatingResultState window(String firstYearFromGUI,String secondYearFro cacheManager.init(); HazelcastServerNode.ensureHazelcastNode(); - FedoraAccessAkubraImpl fa4 = createMockBuilder(FedoraAccessAkubraImpl.class) + RepositoryAccessImpl fa4 = createMockBuilder(RepositoryAccessImpl.class) .withConstructor( feeder, acLog, cacheManager) .addMockedMethod("getRelsExt") .addMockedMethod("isStreamAvailable")