├── .codeclimate.yml
├── .github
└── workflows
│ └── build.yml
├── .gitignore
├── .gitmodules
├── LICENSE
├── Makefile
├── README.md
├── auth-api
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── auth
│ │ └── api
│ │ ├── AccessPrincipalConstants.java
│ │ ├── Permission.java
│ │ ├── UserRole.java
│ │ ├── exceptions
│ │ ├── AccessRestrictionException.java
│ │ └── InvalidAssignmentException.java
│ │ ├── models
│ │ ├── AccessGroupSet.java
│ │ ├── AgentPrincipals.java
│ │ └── RoleAssignment.java
│ │ └── services
│ │ ├── AccessControlService.java
│ │ ├── AclFactory.java
│ │ ├── DatastreamPermissionUtil.java
│ │ ├── EmbargoUtil.java
│ │ ├── GlobalPermissionEvaluator.java
│ │ └── PrincipalClassifier.java
│ └── test
│ └── java
│ └── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── auth
│ └── api
│ ├── UserRoleTest.java
│ └── services
│ ├── DatastreamPermissionUtilTest.java
│ ├── EmbargoUtilTest.java
│ └── PrincipalClassifierTest.java
├── auth-fcrepo
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ ├── META-INF
│ │ └── MANIFEST.MF
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── auth
│ │ └── fcrepo
│ │ ├── models
│ │ ├── AccessGroupSetImpl.java
│ │ └── AgentPrincipalsImpl.java
│ │ └── services
│ │ ├── AccessControlServiceImpl.java
│ │ ├── ContentObjectAccessRestrictionValidator.java
│ │ ├── GlobalPermissionEvaluatorImpl.java
│ │ ├── GroupsThreadStore.java
│ │ ├── InheritedAclFactory.java
│ │ ├── InheritedPermissionEvaluator.java
│ │ └── ObjectAclFactory.java
│ └── test
│ ├── java
│ ├── META-INF
│ │ └── MANIFEST.MF
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── auth
│ │ └── fcrepo
│ │ ├── model
│ │ ├── AccessGroupSetImplTest.java
│ │ └── AgentPrincipalsImplTest.java
│ │ └── services
│ │ ├── ContentObjectAccessRestrictionValidatorTest.java
│ │ ├── GlobalPermissionEvaluatorTest.java
│ │ ├── GroupsThreadStoreTest.java
│ │ ├── InheritedAclFactoryTest.java
│ │ ├── InheritedPermissionEvaluatorTest.java
│ │ └── ObjectACLFactoryTest.java
│ └── resources
│ └── logback-test.xml
├── clamd.conf
├── common-utils
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── common
│ │ │ ├── errors
│ │ │ └── CommandException.java
│ │ │ ├── http
│ │ │ ├── EntityTag.java
│ │ │ └── MimetypeHelpers.java
│ │ │ ├── metrics
│ │ │ ├── CounterFactory.java
│ │ │ ├── HistogramFactory.java
│ │ │ ├── RegistryService.java
│ │ │ ├── ReporterFactory.java
│ │ │ └── TimerFactory.java
│ │ │ ├── util
│ │ │ ├── CLIUtil.java
│ │ │ ├── DateTimeUtil.java
│ │ │ ├── URIUtil.java
│ │ │ └── ZipFileUtil.java
│ │ │ └── xml
│ │ │ └── SecureXMLFactory.java
│ └── resources
│ │ ├── checkstyle
│ │ ├── checkstyle-suppressions.xml
│ │ └── checkstyle.xml
│ │ └── schemas
│ │ ├── acl.xsd
│ │ ├── dc.xsd
│ │ ├── dcmitype.xsd
│ │ ├── dcterms.xsd
│ │ ├── mets.xsd
│ │ ├── mods-3-8.xsd
│ │ ├── premis-v2-0.xsd
│ │ ├── qualifieddc.xsd
│ │ ├── xlink.xsd
│ │ └── xml.xsd
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── common
│ │ ├── http
│ │ ├── EntityTagTest.java
│ │ └── MimetypeHelpersTest.java
│ │ ├── test
│ │ ├── SelfReturningAnswer.java
│ │ └── TestHelpers.java
│ │ └── util
│ │ ├── CLIUtilTest.java
│ │ ├── DateTimeUtilTest.java
│ │ ├── URIUtilTest.java
│ │ └── ZipFileUtilTest.java
│ └── resources
│ └── samples
│ ├── bad-zip-with-relative-path.zip
│ └── test-mets-zip.zip
├── deposit-app
├── .gitignore
├── README.md
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── deposit
│ │ │ ├── CleanupDepositJob.java
│ │ │ ├── GetProperty.java
│ │ │ ├── SpringDepositServiceInitiator.java
│ │ │ ├── fcrepo4
│ │ │ ├── IngestContentObjectsJob.java
│ │ │ ├── IngestDepositRecordJob.java
│ │ │ └── StaffOnlyPermissionJob.java
│ │ │ ├── normalize
│ │ │ ├── AbstractFileServerToBagJob.java
│ │ │ ├── AbstractMETS2N3BagJob.java
│ │ │ ├── AssignStorageLocationsJob.java
│ │ │ ├── BagIt2N3BagJob.java
│ │ │ ├── CDRMETS2N3BagJob.java
│ │ │ ├── CDRMETSGraphExtractor.java
│ │ │ ├── DirectoryToBagJob.java
│ │ │ ├── FilePathFunction.java
│ │ │ ├── METSHelper.java
│ │ │ ├── NormalizeFileObjectsJob.java
│ │ │ ├── PreconstructedDepositJob.java
│ │ │ ├── Simple2N3BagJob.java
│ │ │ ├── UnpackDepositJob.java
│ │ │ ├── VocabularyEnforcementJob.java
│ │ │ ├── WorkFormData.java
│ │ │ ├── WorkFormModsTransformer.java
│ │ │ └── WorkFormToBagJob.java
│ │ │ ├── transfer
│ │ │ └── TransferBinariesToStorageJob.java
│ │ │ ├── validate
│ │ │ ├── DepositSetMemberOrderValidator.java
│ │ │ ├── ExtractTechnicalMetadataJob.java
│ │ │ ├── FixityCheckJob.java
│ │ │ ├── PackageIntegrityCheckJob.java
│ │ │ ├── ValidateContentModelJob.java
│ │ │ ├── ValidateDescriptionJob.java
│ │ │ ├── ValidateDestinationJob.java
│ │ │ ├── ValidateFileAvailabilityJob.java
│ │ │ ├── VerifyObjectsAreInFedoraService.java
│ │ │ └── VirusScanJob.java
│ │ │ └── work
│ │ │ ├── AbstractConcurrentDepositJob.java
│ │ │ ├── AbstractDepositJob.java
│ │ │ ├── DepositEmailHandler.java
│ │ │ ├── DepositFailedException.java
│ │ │ ├── DepositGraphUtils.java
│ │ │ ├── DepositSupervisor.java
│ │ │ ├── JedisFactory.java
│ │ │ ├── JobFailedException.java
│ │ │ ├── JobInterruptedException.java
│ │ │ └── JobPausedException.java
│ ├── resources
│ │ ├── cdr-schema.ttl
│ │ ├── completed_html.txt
│ │ ├── completed_text.txt
│ │ ├── epdcx2mods.xsl
│ │ ├── failed_html.txt
│ │ ├── failed_text.txt
│ │ ├── freemark_templates
│ │ │ └── work_form_mods.ftl
│ │ ├── iso-639-1-to-639-2b.xsl
│ │ ├── languageMappings.xsl
│ │ └── logback.xml
│ └── webapp
│ │ └── WEB-INF
│ │ ├── deposit-jobs-context.xml
│ │ ├── fcrepo-clients-context.xml
│ │ ├── service-context.xml
│ │ └── web.xml
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── deposit
│ │ ├── CleanupDepositJobTest.java
│ │ ├── DepositTestUtils.java
│ │ ├── fcrepo4
│ │ ├── AbstractDepositJobTest.java
│ │ ├── AbstractFedoraDepositJobIT.java
│ │ ├── IngestContentObjectsJobIT.java
│ │ ├── IngestContentObjectsJobTest.java
│ │ ├── IngestDepositRecordJobIT.java
│ │ └── StaffOnlyPermissionJobTest.java
│ │ ├── normalize
│ │ ├── AbstractNormalizationJobTest.java
│ │ ├── AssignStorageLocationsJobTest.java
│ │ ├── BagIt2N3BagJobTest.java
│ │ ├── CDRMETS2N3BagJobTest.java
│ │ ├── DirectoryToBagJobTest.java
│ │ ├── NormalizeFileObjectsJobTest.java
│ │ ├── PackageIntegrityCheckJobTest.java
│ │ ├── PreconstructedDepositJobTest.java
│ │ ├── Simple2N3BagJobTest.java
│ │ ├── UnpackDepositJobTest.java
│ │ ├── VocabularyEnforcementJobTest.java
│ │ ├── WorkFormModsTransformerTest.java
│ │ └── WorkFormToBagJobTest.java
│ │ ├── transfer
│ │ └── TransferBinariesToStorageJobTest.java
│ │ ├── validate
│ │ ├── DepositSetMemberOrderValidatorTest.java
│ │ ├── ExtractTechnicalMetadataJobTest.java
│ │ ├── FixityCheckJobTest.java
│ │ ├── ValidateContentModelJobTest.java
│ │ ├── ValidateDescriptionJobTest.java
│ │ ├── ValidateDestinationJobIT.java
│ │ ├── ValidateFileAvailabilityJobTest.java
│ │ ├── VerifyObjectsAreInFedoraServiceTest.java
│ │ └── VirusScanJobTest.java
│ │ └── work
│ │ └── DepositSupervisorTest.java
│ └── resources
│ ├── accessControlsTest.cdr.xml
│ ├── acl-global-config.properties
│ ├── application.properties
│ ├── atomPubEntryBag.zip
│ ├── cdrMETS.zip
│ ├── cleanupStage
│ └── project
│ │ ├── folderA
│ │ ├── ingested
│ │ └── leftover
│ │ └── folderB
│ │ ├── also_ingested
│ │ └── ingested
│ ├── deposit.properties
│ ├── depositFileZipped.zip
│ ├── examples
│ ├── image.jpg
│ ├── pdf.pdf
│ └── text.txt
│ ├── fitsReports
│ ├── conflictRankingReport.xml
│ ├── conflictTypeReport.xml
│ ├── exifReport.xml
│ ├── exifSingleResult.xml
│ ├── exifSymlinkConflict.xml
│ ├── imageReport.xml
│ ├── textReport.xml
│ └── unknownReport.xml
│ ├── form_submissions
│ ├── continuing_maximal.json
│ ├── continuing_minimal.json
│ ├── generic_maximal.json
│ ├── generic_minimal.json
│ └── generic_with_xml_chars.json
│ ├── ingest-bags
│ ├── fcrepo4
│ │ └── valid-bag.n3
│ └── proquest-bag.zip
│ ├── logback-test.xml
│ ├── mets.xml
│ ├── mets_object_only.xml
│ ├── mods
│ ├── multipleNameAffiliationsMods.xml
│ └── singleAffiliationMods.xml
│ ├── paths
│ ├── flat-bag
│ │ ├── bagit.txt
│ │ ├── data
│ │ │ ├── ipsum.txt
│ │ │ └── lorem.txt
│ │ └── manifest-md5.txt
│ ├── invalid-bag
│ │ └── test
│ │ │ └── lorem.txt
│ └── valid-bag
│ │ ├── bagit.txt
│ │ ├── data
│ │ └── test
│ │ │ ├── ipsum.txt
│ │ │ └── lorem.txt
│ │ └── manifest-md5.txt
│ ├── simpleMods.xml
│ ├── spring-test
│ ├── cdr-client-container.xml
│ └── deposit-supervisor-test-context.xml
│ └── staging_config.json
├── deposit-utils
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── deposit
│ │ ├── api
│ │ ├── DepositConstants.java
│ │ ├── DepositMethod.java
│ │ ├── RedisWorkerConstants.java
│ │ ├── exceptions
│ │ │ ├── DepositException.java
│ │ │ ├── InterruptedRuntimeException.java
│ │ │ └── METSParseException.java
│ │ └── submit
│ │ │ ├── DepositData.java
│ │ │ └── DepositHandler.java
│ │ ├── impl
│ │ ├── mets
│ │ │ ├── METSProfile.java
│ │ │ └── MetsHeaderScanner.java
│ │ ├── model
│ │ │ ├── AbstractJedisFactory.java
│ │ │ ├── ActivityMetricsClient.java
│ │ │ ├── DepositDirectoryManager.java
│ │ │ ├── DepositModelHelpers.java
│ │ │ ├── DepositModelManager.java
│ │ │ ├── DepositPipelineStatusFactory.java
│ │ │ ├── DepositStatusFactory.java
│ │ │ └── JobStatusFactory.java
│ │ └── submit
│ │ │ ├── AbstractDepositHandler.java
│ │ │ ├── CDRMETSDepositHandler.java
│ │ │ ├── DepositSubmissionService.java
│ │ │ ├── FileServerDepositHandler.java
│ │ │ ├── PreconstructedDepositHandler.java
│ │ │ └── SimpleObjectDepositHandler.java
│ │ └── utils
│ │ ├── NoResolutionResourceResolver.java
│ │ └── SpringJobFactory.java
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── deposit
│ │ └── impl
│ │ ├── model
│ │ ├── DepositDirectoryManagerTest.java
│ │ ├── DepositPipelineStatusFactoryIT.java
│ │ ├── DepositStatusFactoryIT.java
│ │ └── JobStatusFactoryTest.java
│ │ └── submit
│ │ ├── CDRMETSDepositHandlerTest.java
│ │ ├── DepositSubmissionServiceTest.java
│ │ ├── FileServerDepositHandlerTest.java
│ │ └── SimpleObjectDepositHandlerTest.java
│ └── resources
│ ├── cdr_mets_package.xml
│ └── spring
│ └── jedis-context.xml
├── docker-compose.yml
├── etc
├── ide_setup
│ ├── README.md
│ └── boxc_code_profile.xml
└── solr-config
│ ├── access
│ ├── conf
│ │ ├── lang
│ │ │ └── stopwords_en.txt
│ │ ├── schema.xml
│ │ ├── solrconfig.xml
│ │ └── synonyms.txt
│ └── core.properties
│ ├── log4j2.xml
│ └── solr.xml
├── fcrepo-utils
├── pom.xml
└── src
│ ├── .gitignore
│ ├── main
│ ├── java
│ │ ├── META-INF
│ │ │ └── MANIFEST.MF
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── fcrepo
│ │ │ ├── FcrepoJmsConstants.java
│ │ │ ├── FcrepoPaths.java
│ │ │ ├── exceptions
│ │ │ ├── AuthorizationException.java
│ │ │ ├── ChecksumMismatchException.java
│ │ │ ├── ConflictException.java
│ │ │ ├── FedoraTimeoutException.java
│ │ │ ├── OptimisticLockException.java
│ │ │ ├── RangeNotSatisfiableException.java
│ │ │ ├── ServiceException.java
│ │ │ └── TransactionCancelledException.java
│ │ │ └── utils
│ │ │ ├── ClientFaultResolver.java
│ │ │ ├── FcrepoClientFactory.java
│ │ │ ├── FedoraSparqlUpdateService.java
│ │ │ ├── FedoraTransaction.java
│ │ │ ├── FedoraTransactionRefresher.java
│ │ │ ├── SanitizeServerManagedTriplesSelector.java
│ │ │ ├── TransactionManager.java
│ │ │ └── TransactionalFcrepoClient.java
│ └── resources
│ │ └── .keep
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── fcrepo
│ │ ├── exceptions
│ │ └── RangeNotSatisfiableExceptionTest.java
│ │ └── utils
│ │ ├── FedoraTransactionRefresherTest.java
│ │ └── TransactionalFcrepoClientTest.java
│ └── resources
│ └── logback-test.xml
├── indexing-solr
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ ├── META-INF
│ │ │ └── MANIFEST.MF
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── indexing
│ │ │ └── solr
│ │ │ ├── ChildSetRequest.java
│ │ │ ├── ProcessingStatus.java
│ │ │ ├── SolrUpdateRequest.java
│ │ │ ├── UpdateNodeRequest.java
│ │ │ ├── action
│ │ │ ├── AbstractIndexingAction.java
│ │ │ ├── ClearIndexAction.java
│ │ │ ├── CommitAction.java
│ │ │ ├── DeleteObjectAction.java
│ │ │ ├── DeleteSolrTreeAction.java
│ │ │ ├── DeleteStaleChildren.java
│ │ │ ├── IndexTreeCleanAction.java
│ │ │ ├── IndexTreeInplaceAction.java
│ │ │ ├── IndexingAction.java
│ │ │ ├── RecursiveTreeIndexer.java
│ │ │ ├── SeparateRootAndDescendantsUpdateAction.java
│ │ │ ├── UpdateObjectAction.java
│ │ │ ├── UpdateTreeAction.java
│ │ │ └── UpdateTreeSetAction.java
│ │ │ ├── exception
│ │ │ ├── IndexingException.java
│ │ │ ├── ObjectTombstonedException.java
│ │ │ ├── OrphanedObjectException.java
│ │ │ └── RecoverableIndexingException.java
│ │ │ ├── filter
│ │ │ ├── IndexDocumentFilter.java
│ │ │ ├── SetAccessControlFilter.java
│ │ │ ├── SetAccessStatusFilter.java
│ │ │ ├── SetAltTextFilter.java
│ │ │ ├── SetAspaceRefIdFilter.java
│ │ │ ├── SetCollectionSupplementalInformationFilter.java
│ │ │ ├── SetContentStatusFilter.java
│ │ │ ├── SetContentTypeFilter.java
│ │ │ ├── SetDatastreamFilter.java
│ │ │ ├── SetDescriptiveMetadataFilter.java
│ │ │ ├── SetFullTextFilter.java
│ │ │ ├── SetMemberOrderFilter.java
│ │ │ ├── SetObjectTypeFilter.java
│ │ │ ├── SetPathFilter.java
│ │ │ ├── SetRecordDatesFilter.java
│ │ │ ├── SetStreamingPropertiesFilter.java
│ │ │ ├── SetViewBehaviorFilter.java
│ │ │ └── collection
│ │ │ │ ├── CollectionSupplementalInformationFilter.java
│ │ │ │ └── RLASupplementalFilter.java
│ │ │ ├── indexing
│ │ │ ├── DocumentFilteringPipeline.java
│ │ │ ├── DocumentIndexingPackage.java
│ │ │ ├── DocumentIndexingPackageDataLoader.java
│ │ │ ├── DocumentIndexingPackageFactory.java
│ │ │ ├── DocumentIndexingPipeline.java
│ │ │ ├── SolrUpdateDriver.java
│ │ │ └── TolerantConcurrentUpdateSolrClient.java
│ │ │ └── utils
│ │ │ ├── JDOMQueryUtil.java
│ │ │ ├── Jp2Info.java
│ │ │ ├── Jp2InfoService.java
│ │ │ ├── KduJp2InfoService.java
│ │ │ ├── MemberOrderService.java
│ │ │ ├── NoOpJp2InfoService.java
│ │ │ └── TechnicalMetadataService.java
│ └── resources
│ │ ├── extensionMimetypeOverrides.properties
│ │ ├── iso639LangMappings.txt
│ │ ├── mimetypeToDescription.properties
│ │ ├── rightsUriMappings.txt
│ │ └── toContentType.properties
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── indexing
│ │ └── solr
│ │ ├── action
│ │ ├── BaseEmbeddedSolrTest.java
│ │ ├── ClearIndexActionTest.java
│ │ ├── DeleteSolrTreeTest.java
│ │ ├── IndexTreeCleanActionTest.java
│ │ ├── IndexTreeInplaceActionTest.java
│ │ ├── RecursiveTreeIndexerTest.java
│ │ ├── UpdateTreeActionTest.java
│ │ └── UpdateTreeSetActionTest.java
│ │ ├── filter
│ │ ├── SetAccessControlFilterTest.java
│ │ ├── SetAccessStatusFilterTest.java
│ │ ├── SetAltTextFilterTest.java
│ │ ├── SetAspaceRefIdFilterTest.java
│ │ ├── SetContentStatusFilterTest.java
│ │ ├── SetContentTypeFilterTest.java
│ │ ├── SetDatastreamFilterTest.java
│ │ ├── SetDescriptiveMetadataFilterTest.java
│ │ ├── SetFullTextFilterTest.java
│ │ ├── SetMemberOrderFilterTest.java
│ │ ├── SetObjectTypeFilterTest.java
│ │ ├── SetPathFilterTest.java
│ │ ├── SetRecordDatesFilterTest.java
│ │ ├── SetStreamingPropertiesFilterTest.java
│ │ └── SetViewBehaviorFilterTest.java
│ │ ├── indexing
│ │ ├── DocumentIndexingPackageDataLoaderTest.java
│ │ ├── DocumentIndexingPipelineTest.java
│ │ └── SolrUpdateDriverTest.java
│ │ ├── test
│ │ ├── MockRepositoryObjectHelpers.java
│ │ ├── RepositoryObjectSolrIndexer.java
│ │ └── TestCorpus.java
│ │ └── utils
│ │ ├── KduJp2InfoServiceTest.java
│ │ └── MemberOrderServiceTest.java
│ └── resources
│ ├── datastream
│ ├── dateCaptured.xml
│ ├── dateCreatedYearIssue.xml
│ ├── dateIssued.xml
│ ├── invalidLanguage.xml
│ ├── inventoryMods.xml
│ ├── multipleCreators.xml
│ ├── nameParts.xml
│ ├── techmd.xml
│ ├── techmdImageNoDimensions.xml
│ ├── techmd_colon_separated_milliseconds.xml
│ ├── techmd_dot_separated_milliseconds.xml
│ ├── techmd_mp3.xml
│ ├── techmd_mp4.xml
│ ├── techmd_mp4_no_tracks.xml
│ ├── techmd_mpeg.xml
│ ├── techmd_no_duration.xml
│ ├── techmd_no_height_width.xml
│ └── techmd_no_milliseconds_field.xml
│ ├── logback-test.xml
│ ├── search.properties
│ ├── server.properties
│ ├── solr-ingest-context-unit.xml
│ ├── solr-ingest.properties
│ └── solr.properties
├── integration
├── README.md
├── pom.xml
└── src
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── integration
│ │ ├── acl
│ │ └── AccessControlServiceImplIT.java
│ │ ├── factories
│ │ ├── AdminUnitFactory.java
│ │ ├── CollectionFactory.java
│ │ ├── ContentObjectFactory.java
│ │ ├── ContentRootObjectFactory.java
│ │ ├── FileFactory.java
│ │ ├── FolderFactory.java
│ │ ├── ModsFactory.java
│ │ └── WorkFactory.java
│ │ ├── fcrepo
│ │ ├── AbstractFedoraIT.java
│ │ ├── FedoraSparqlUpdateServiceIT.java
│ │ ├── FedoraTransactionIT.java
│ │ └── TransactionalFcrepoClientIT.java
│ │ ├── model
│ │ └── fcrepo
│ │ │ ├── event
│ │ │ └── RepositoryPremisLoggerIT.java
│ │ │ ├── objects
│ │ │ ├── AbstractFedoraIT.java
│ │ │ ├── AdminUnitIT.java
│ │ │ ├── BinaryObjectIT.java
│ │ │ ├── CollectionObjectIT.java
│ │ │ ├── DepositRecordIT.java
│ │ │ ├── FileObjectIT.java
│ │ │ ├── FolderObjectIT.java
│ │ │ └── WorkObjectIT.java
│ │ │ └── services
│ │ │ ├── ContentPathFactoryIT.java
│ │ │ ├── LdpContainerFactoryIT.java
│ │ │ ├── RepositoryInitializerIT.java
│ │ │ └── RepositoryObjectFactoryIT.java
│ │ └── web
│ │ └── access
│ │ ├── CollectionsEndpointIT.java
│ │ ├── EndpointIT.java
│ │ └── SearchEndpointIT.java
│ └── resources
│ ├── access-app.properties
│ ├── acl-config.properties
│ ├── acl
│ └── config.properties
│ ├── application.properties
│ ├── datastream
│ └── techmd_image.xml
│ ├── jetty-test.xml
│ ├── logback-test.xml
│ ├── patronPrincipalConfig.json
│ ├── search.properties
│ ├── solr.properties
│ └── spring-test
│ ├── acl-service-context.xml
│ ├── cdr-client-container.xml
│ ├── object-factory-context.xml
│ ├── solr-embedded-context.xml
│ ├── solr-indexing-context.xml
│ └── solr-standalone-context.xml
├── it_config
├── allowed_external_paths.txt
└── fcrepo_logback.xml
├── model-api
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── model
│ │ └── api
│ │ ├── DatastreamType.java
│ │ ├── ResourceType.java
│ │ ├── SoftwareAgentConstants.java
│ │ ├── StoragePolicy.java
│ │ ├── StreamingConstants.java
│ │ ├── event
│ │ └── PremisLog.java
│ │ ├── exceptions
│ │ ├── FedoraException.java
│ │ ├── InterruptedLockException.java
│ │ ├── InvalidOperationForObjectType.java
│ │ ├── InvalidPidException.java
│ │ ├── InvalidRelationshipException.java
│ │ ├── NotFoundException.java
│ │ ├── ObjectExistsException.java
│ │ ├── ObjectHierarchyException.java
│ │ ├── ObjectPersistenceException.java
│ │ ├── ObjectTypeMismatchException.java
│ │ ├── OrphanedObjectException.java
│ │ ├── RepositoryException.java
│ │ └── TombstoneFoundException.java
│ │ ├── ids
│ │ ├── ContentPathConstants.java
│ │ ├── PID.java
│ │ ├── PIDConstants.java
│ │ ├── PIDMinter.java
│ │ └── RepositoryPathConstants.java
│ │ ├── objects
│ │ ├── AdminUnit.java
│ │ ├── BinaryObject.java
│ │ ├── CollectionObject.java
│ │ ├── ContentContainerObject.java
│ │ ├── ContentObject.java
│ │ ├── ContentRootObject.java
│ │ ├── DepositRecord.java
│ │ ├── FileObject.java
│ │ ├── FolderObject.java
│ │ ├── RepositoryObject.java
│ │ ├── RepositoryObjectLoader.java
│ │ ├── Tombstone.java
│ │ └── WorkObject.java
│ │ ├── rdf
│ │ ├── Cdr.java
│ │ ├── CdrAcl.java
│ │ ├── CdrAspace.java
│ │ ├── CdrDeposit.java
│ │ ├── CdrView.java
│ │ ├── DcElements.java
│ │ ├── Ebucore.java
│ │ ├── Fcrepo4Repository.java
│ │ ├── IanaRelation.java
│ │ ├── Ldp.java
│ │ ├── Memento.java
│ │ ├── PcdmModels.java
│ │ ├── PcdmUse.java
│ │ ├── Premis.java
│ │ ├── PremisAgentType.java
│ │ ├── Prov.java
│ │ ├── RDFModelUtil.java
│ │ ├── Rdf.java
│ │ └── Rdfs.java
│ │ ├── services
│ │ ├── ContentPathFactory.java
│ │ ├── MembershipService.java
│ │ └── RepositoryObjectFactory.java
│ │ ├── sparql
│ │ ├── SparqlQueryService.java
│ │ ├── SparqlUpdateHelper.java
│ │ └── SparqlUpdateService.java
│ │ └── xml
│ │ ├── DescriptionConstants.java
│ │ ├── JDOMNamespaceUtil.java
│ │ └── NamespaceConstants.java
│ └── test
│ └── java
│ └── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── model
│ └── api
│ ├── DatastreamTypeTest.java
│ ├── sparql
│ └── SparqlUpdateHelperTest.java
│ └── xml
│ └── NamespaceConstantsTest.java
├── model-fcrepo
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── model
│ │ └── fcrepo
│ │ ├── event
│ │ └── RepositoryPremisLog.java
│ │ ├── ids
│ │ ├── AgentPids.java
│ │ ├── DatastreamPids.java
│ │ ├── FedoraPID.java
│ │ ├── PIDs.java
│ │ ├── PidLockManager.java
│ │ ├── RepositoryPIDMinter.java
│ │ └── RepositoryPaths.java
│ │ ├── objects
│ │ ├── AbstractContentContainerObject.java
│ │ ├── AbstractContentObject.java
│ │ ├── AbstractRepositoryObject.java
│ │ ├── AdminUnitImpl.java
│ │ ├── BinaryObjectImpl.java
│ │ ├── CollectionObjectImpl.java
│ │ ├── ContentRootObjectImpl.java
│ │ ├── DepositRecordImpl.java
│ │ ├── FileObjectImpl.java
│ │ ├── FolderObjectImpl.java
│ │ ├── RepositoryObjectCacheLoader.java
│ │ ├── TombstoneImpl.java
│ │ └── WorkObjectImpl.java
│ │ ├── services
│ │ ├── ContentPathFactoryImpl.java
│ │ ├── DerivativeService.java
│ │ ├── LdpContainerFactory.java
│ │ ├── PcdmMembershipService.java
│ │ ├── RepositoryInitializer.java
│ │ ├── RepositoryObjectDriver.java
│ │ ├── RepositoryObjectFactoryImpl.java
│ │ └── RepositoryObjectLoaderImpl.java
│ │ └── sparql
│ │ ├── FusekiSparqlQueryServiceImpl.java
│ │ ├── JenaSparqlQueryServiceImpl.java
│ │ ├── SparqlListingHelper.java
│ │ └── TripleStoreSparqlUpdateService.java
│ └── test
│ └── java
│ └── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── model
│ └── fcrepo
│ ├── ids
│ ├── AgentPidsTest.java
│ ├── DatastreamPidsTest.java
│ ├── PIDsTest.java
│ ├── PidLockManagerTest.java
│ └── RepositoryPIDMinterTest.java
│ ├── objects
│ ├── AbstractFedoraObjectTest.java
│ ├── AdminUnitTest.java
│ ├── BinaryObjectTest.java
│ ├── CollectionObjectTest.java
│ ├── ContentRootObjectTest.java
│ ├── DepositRecordTest.java
│ ├── FileObjectTest.java
│ ├── FolderObjectTest.java
│ ├── TombstoneTest.java
│ └── WorkObjectTest.java
│ ├── services
│ ├── DerivativeServiceTest.java
│ ├── PcdmMembershipServiceTest.java
│ ├── RepositoryObjectCacheLoaderTest.java
│ ├── RepositoryObjectDriverTest.java
│ ├── RepositoryObjectFactoryTest.java
│ └── RepositoryObjectLoaderTest.java
│ └── test
│ ├── AclModelBuilder.java
│ ├── RepositoryObjectTreeIndexer.java
│ ├── TestHelper.java
│ └── TestRepositoryDeinitializer.java
├── operations-jms
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── operations
│ │ └── jms
│ │ ├── ActionMessage.java
│ │ ├── JMSMessageUtil.java
│ │ ├── MessageSender.java
│ │ ├── OperationsMessageSender.java
│ │ ├── RunEnhancementsMessageHelpers.java
│ │ ├── accessSurrogates
│ │ ├── AccessSurrogateRequest.java
│ │ ├── AccessSurrogateRequestSender.java
│ │ └── AccessSurrogateRequestSerializationHelper.java
│ │ ├── altText
│ │ └── AltTextUpdateRequest.java
│ │ ├── destroy
│ │ ├── DestroyObjectsHelper.java
│ │ ├── DestroyObjectsMessageHelpers.java
│ │ ├── DestroyObjectsRequest.java
│ │ └── DestroyObjectsService.java
│ │ ├── exportxml
│ │ ├── BulkXMLConstants.java
│ │ ├── ExportXMLRequest.java
│ │ └── ExportXMLRequestService.java
│ │ ├── indexing
│ │ ├── IndexingActionType.java
│ │ ├── IndexingMessageHelper.java
│ │ ├── IndexingMessageSender.java
│ │ ├── IndexingPriority.java
│ │ └── IndexingService.java
│ │ ├── order
│ │ ├── MemberOrderRequestSender.java
│ │ ├── MultiParentOrderRequest.java
│ │ ├── OrderOperationType.java
│ │ ├── OrderRequest.java
│ │ ├── OrderRequestSerializationHelper.java
│ │ └── SingleParentOrderRequest.java
│ │ ├── streaming
│ │ ├── StreamingPropertiesRequest.java
│ │ ├── StreamingPropertiesRequestSender.java
│ │ └── StreamingPropertiesRequestSerializationHelper.java
│ │ ├── thumbnails
│ │ ├── ImportThumbnailRequest.java
│ │ ├── ImportThumbnailRequestSerializationHelper.java
│ │ ├── ThumbnailRequest.java
│ │ ├── ThumbnailRequestSender.java
│ │ └── ThumbnailRequestSerializationHelper.java
│ │ └── viewSettings
│ │ ├── ViewSettingRequest.java
│ │ ├── ViewSettingRequestSender.java
│ │ └── ViewSettingRequestSerializationHelper.java
│ └── test
│ └── java
│ └── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── operations
│ └── jms
│ ├── accessSurrogates
│ └── AccessSurrogateRequestSerializationHelperTest.java
│ ├── indexing
│ └── IndexingServiceTest.java
│ ├── order
│ └── MemberOrderRequestSenderTest.java
│ ├── streaming
│ ├── StreamingPropertiesRequestSenderTest.java
│ └── StreamingPropertiesRequestSerializationHelperTest.java
│ └── thumbnails
│ └── ThumbnailRequestSenderTest.java
├── operations
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── operations
│ │ │ ├── api
│ │ │ ├── events
│ │ │ │ ├── PremisEventBuilder.java
│ │ │ │ ├── PremisLogger.java
│ │ │ │ └── PremisLoggerFactory.java
│ │ │ ├── exceptions
│ │ │ │ ├── MetadataValidationException.java
│ │ │ │ └── StateUnmodifiedException.java
│ │ │ ├── images
│ │ │ │ └── ImageServerUtil.java
│ │ │ ├── order
│ │ │ │ ├── MemberOrderHelper.java
│ │ │ │ └── OrderValidator.java
│ │ │ └── vocab
│ │ │ │ └── VocabularyHelper.java
│ │ │ └── impl
│ │ │ ├── acl
│ │ │ ├── ExpireEmbargoService.java
│ │ │ ├── PatronAccessAssignmentService.java
│ │ │ ├── PatronAccessDetails.java
│ │ │ ├── PatronAccessOperationSender.java
│ │ │ └── StaffRoleAssignmentService.java
│ │ │ ├── altText
│ │ │ └── AltTextUpdateService.java
│ │ │ ├── aspace
│ │ │ ├── RefIdRequest.java
│ │ │ └── RefIdService.java
│ │ │ ├── delete
│ │ │ ├── MarkForDeletionJob.java
│ │ │ ├── MarkForDeletionService.java
│ │ │ └── RestoreDeletedJob.java
│ │ │ ├── destroy
│ │ │ ├── AbstractDestroyObjectsJob.java
│ │ │ ├── DestroyObjectsCompletelyJob.java
│ │ │ ├── DestroyObjectsJob.java
│ │ │ ├── DestroyProxyService.java
│ │ │ ├── ServerManagedProperties.java
│ │ │ └── TombstonePropertySelector.java
│ │ │ ├── download
│ │ │ ├── DownloadBulkRequest.java
│ │ │ └── DownloadBulkService.java
│ │ │ ├── edit
│ │ │ ├── EditFilenameService.java
│ │ │ ├── EditTitleService.java
│ │ │ └── UpdateDescriptionService.java
│ │ │ ├── events
│ │ │ ├── FilePremisLogger.java
│ │ │ ├── PremisEventBuilderImpl.java
│ │ │ ├── PremisLoggerFactoryImpl.java
│ │ │ └── RepositoryPremisLogger.java
│ │ │ ├── importxml
│ │ │ ├── ImportXMLJob.java
│ │ │ ├── ImportXMLRequest.java
│ │ │ └── ImportXMLService.java
│ │ │ ├── metadata
│ │ │ └── ExportDominoMetadataService.java
│ │ │ ├── move
│ │ │ ├── MoveObjectsJob.java
│ │ │ └── MoveObjectsService.java
│ │ │ ├── order
│ │ │ ├── ClearOrderJob.java
│ │ │ ├── ClearOrderValidator.java
│ │ │ ├── OrderJobFactory.java
│ │ │ ├── OrderRequestFactory.java
│ │ │ ├── OrderValidatorFactory.java
│ │ │ ├── RemoveFromOrderJob.java
│ │ │ ├── RemoveFromOrderValidator.java
│ │ │ ├── SetOrderJob.java
│ │ │ └── SetOrderValidator.java
│ │ │ ├── utils
│ │ │ └── EmailHandler.java
│ │ │ ├── validation
│ │ │ ├── MODSValidator.java
│ │ │ └── SchematronValidator.java
│ │ │ ├── versioning
│ │ │ ├── DatastreamHistoryLog.java
│ │ │ └── VersionedDatastreamService.java
│ │ │ └── vocab
│ │ │ ├── JSONVocabularyHelper.java
│ │ │ └── VocabularyHelperManager.java
│ └── resources
│ │ ├── edu
│ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── operations
│ │ │ └── impl
│ │ │ └── validation
│ │ │ ├── ISO-639-2_utf-8.txt
│ │ │ ├── ISO-639-2_utf-8.xml
│ │ │ ├── genres_eprints_swap.xml
│ │ │ ├── iso_schematron_skeleton.xsl
│ │ │ ├── iso_svrl.xsl
│ │ │ ├── object-mods.sch
│ │ │ ├── simple_mets_profile.sch
│ │ │ ├── tgm2.xml
│ │ │ └── vocabularies-mods.sch
│ │ └── samples
│ │ ├── bad-acl-test.xml
│ │ ├── bad-missing-mets-hdr.xml
│ │ ├── bad-test.xml
│ │ ├── good-eprints-test.xml
│ │ ├── good-simple-form.xml
│ │ ├── good-test.xml
│ │ ├── missing-flocat-test.xml
│ │ ├── raschke_mods.xml
│ │ └── simple-xxe-mets.xml
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── operations
│ │ ├── impl
│ │ ├── acl
│ │ │ ├── ExpireEmbargoServiceIT.java
│ │ │ ├── PatronAccessAssignmentServiceIT.java
│ │ │ └── StaffRoleAssignmentServiceIT.java
│ │ ├── altText
│ │ │ └── AltTextUpdateServiceTest.java
│ │ ├── aspace
│ │ │ └── RefIdServiceTest.java
│ │ ├── delete
│ │ │ ├── MarkForDeletionJobTest.java
│ │ │ └── RestoreDeletedJobTest.java
│ │ ├── destroy
│ │ │ ├── DestroyObjectsCompletelyJobIT.java
│ │ │ ├── DestroyObjectsJobIT.java
│ │ │ ├── DestroyObjectsJobTest.java
│ │ │ └── TombstonePropertySelectorTest.java
│ │ ├── download
│ │ │ └── DownloadBulkServiceTest.java
│ │ ├── edit
│ │ │ ├── EditFilenameServiceTest.java
│ │ │ ├── EditTitleServiceTest.java
│ │ │ ├── UpdateDescriptionServiceIT.java
│ │ │ └── UpdateDescriptionServiceTest.java
│ │ ├── events
│ │ │ └── FilePremisLoggerTest.java
│ │ ├── importxml
│ │ │ ├── ImportXMLJobIT.java
│ │ │ └── ImportXMLJobTest.java
│ │ ├── metadata
│ │ │ └── ExportDominoMetadataServiceTest.java
│ │ ├── move
│ │ │ └── MoveObjectsServiceTest.java
│ │ ├── order
│ │ │ ├── ClearOrderJobTest.java
│ │ │ ├── OrderJobFactoryTest.java
│ │ │ ├── OrderValidatorFactoryTest.java
│ │ │ ├── RemoveFromJobTest.java
│ │ │ ├── RemoveFromOrderValidatorTest.java
│ │ │ ├── SetOrderJobTest.java
│ │ │ └── SetOrderValidatorTest.java
│ │ ├── validation
│ │ │ ├── MODSValidatorTest.java
│ │ │ └── SchematronValidatorTest.java
│ │ ├── versioning
│ │ │ ├── DatastreamHistoryLogTest.java
│ │ │ ├── VersionedDatastreamServiceIT.java
│ │ │ └── VersionedDatastreamServiceTest.java
│ │ └── vocab
│ │ │ ├── JSONVocabularyHelperTest.java
│ │ │ └── TestVocabularyHelper.java
│ │ └── test
│ │ ├── ModsTestHelper.java
│ │ └── OrderTestHelper.java
│ └── resources
│ ├── acl-config.properties
│ ├── jsonVocab.json
│ ├── logback-test.xml
│ ├── samples
│ ├── 1471-2458-11-702.zip
│ ├── DCD_4401_1.MD_EVENTS.xml
│ ├── aggregateSplitDepartments.xml
│ ├── bad-acl-test.xml
│ ├── bad-eprints-test.xml
│ ├── bad-missing-mets-hdr.xml
│ ├── bad-test.xml
│ ├── creator_xpath_mods.xml
│ ├── good-eprints-test.xml
│ ├── good-simple-form.xml
│ ├── good-test.xml
│ ├── missing-flocat-test.xml
│ ├── mods.xml
│ ├── modsNormalized.xml
│ ├── mods_collection_template.xml
│ ├── raschke_mods.xml
│ ├── shc_mods.xml
│ └── simple-xxe-mets.xml
│ ├── spring-test
│ ├── acl-service-context.xml
│ ├── cdr-client-container.xml
│ ├── destroy-completely-it-context.xml
│ ├── import-job-it.xml
│ └── staff-role-service-container.xml
│ └── vocabTest.xml
├── persistence-api
├── pom.xml
└── src
│ └── main
│ └── java
│ └── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── persist
│ └── api
│ ├── DigestAlgorithm.java
│ ├── PackagingType.java
│ ├── exceptions
│ ├── InvalidChecksumException.java
│ ├── InvalidIngestSourceCandidateException.java
│ ├── UnknownIngestSourceException.java
│ ├── UnsupportedAlgorithmException.java
│ └── UnsupportedPackagingTypeException.java
│ ├── sources
│ ├── IngestSource.java
│ ├── IngestSourceCandidate.java
│ └── IngestSourceManager.java
│ ├── storage
│ ├── BinaryDetails.java
│ ├── StorageLocation.java
│ ├── StorageLocationManager.java
│ ├── StorageType.java
│ └── UnknownStorageLocationException.java
│ └── transfer
│ ├── BinaryAlreadyExistsException.java
│ ├── BinaryTransferClient.java
│ ├── BinaryTransferException.java
│ ├── BinaryTransferOutcome.java
│ ├── BinaryTransferService.java
│ ├── BinaryTransferSession.java
│ ├── MultiDestinationTransferSession.java
│ └── StreamTransferClient.java
├── persistence
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ ├── META-INF
│ │ │ └── MANIFEST.MF
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── persist
│ │ │ └── impl
│ │ │ ├── InputStreamDigestUtil.java
│ │ │ ├── MultiDigestInputStreamWrapper.java
│ │ │ ├── sources
│ │ │ ├── FilesystemIngestSource.java
│ │ │ └── IngestSourceManagerImpl.java
│ │ │ ├── storage
│ │ │ ├── BinaryDetailsImpl.java
│ │ │ ├── HashedFilesystemStorageLocation.java
│ │ │ ├── HashedPosixStorageLocation.java
│ │ │ └── StorageLocationManagerImpl.java
│ │ │ └── transfer
│ │ │ ├── BinaryTransferOutcomeImpl.java
│ │ │ ├── BinaryTransferServiceImpl.java
│ │ │ ├── BinaryTransferSessionImpl.java
│ │ │ ├── FSToFSTransferClient.java
│ │ │ ├── FSToPosixTransferClient.java
│ │ │ ├── FileSystemTransferHelpers.java
│ │ │ ├── FileTransferHelpers.java
│ │ │ ├── MultiDestinationTransferSessionImpl.java
│ │ │ ├── StreamToFSTransferClient.java
│ │ │ └── StreamToPosixTransferClient.java
│ └── resources
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── dl
│ │ └── services
│ │ ├── IngestFailHtml.ftl
│ │ ├── IngestFailText.ftl
│ │ ├── IngestSuccessHtml.ftl
│ │ └── IngestSuccessText.ftl
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── persist
│ │ └── impl
│ │ ├── InputStreamDigestUtilTest.java
│ │ ├── MultiDigestInputStreamWrapperTest.java
│ │ ├── sources
│ │ ├── FilesystemIngestSourceTest.java
│ │ ├── IngestSourceManagerImplTest.java
│ │ └── IngestSourceTestHelper.java
│ │ ├── storage
│ │ ├── HashedFilesystemStorageLocationTest.java
│ │ ├── HashedPosixStorageLocationTest.java
│ │ ├── StorageLocationManagerImplTest.java
│ │ └── StorageLocationTestHelper.java
│ │ └── transfer
│ │ ├── AbstractBinaryTransferTest.java
│ │ ├── BinaryTransferServiceImplIT.java
│ │ ├── BinaryTransferSessionImplTest.java
│ │ ├── FSToFSTransferClientTest.java
│ │ ├── FSToPosixTransferClientTest.java
│ │ ├── MultiDestinationTransferSessionImplTest.java
│ │ ├── StreamToFSTransferClientTest.java
│ │ └── StreamToPosixTransferClientTest.java
│ └── resources
│ ├── ingestSources
│ └── bag_with_files
│ │ ├── bag-info.txt
│ │ ├── bagit.txt
│ │ ├── data
│ │ ├── test1.txt
│ │ ├── test2.txt
│ │ └── test3.txt
│ │ ├── manifest-md5.txt
│ │ └── tagmanifest-md5.txt
│ ├── logback-test.xml
│ └── spring-test
│ └── cdr-client-container.xml
├── pom.xml
├── search-api
├── pom.xml
└── src
│ └── main
│ └── java
│ └── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── search
│ └── api
│ ├── ContentCategory.java
│ ├── FacetConstants.java
│ ├── SearchFieldKey.java
│ ├── exceptions
│ ├── InvalidFacetException.java
│ ├── InvalidHierarchicalFacetException.java
│ └── SolrRuntimeException.java
│ ├── facets
│ ├── CutoffFacet.java
│ ├── CutoffFacetNode.java
│ ├── FacetFieldList.java
│ ├── FacetFieldObject.java
│ ├── HierarchicalFacet.java
│ ├── HierarchicalFacetNode.java
│ └── SearchFacet.java
│ ├── filters
│ └── QueryFilter.java
│ ├── models
│ ├── ContentObjectRecord.java
│ ├── Datastream.java
│ ├── GroupedContentObjectRecord.java
│ ├── ObjectPath.java
│ └── ObjectPathEntry.java
│ ├── ranges
│ └── RangeValue.java
│ └── requests
│ ├── FacetValuesRequest.java
│ ├── HierarchicalBrowseRequest.java
│ ├── IdListRequest.java
│ ├── SearchRequest.java
│ ├── SearchState.java
│ └── SimpleIdRequest.java
├── search-solr
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ ├── META-INF
│ │ └── MANIFEST.MF
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── search
│ │ └── solr
│ │ ├── config
│ │ ├── AbstractSettings.java
│ │ ├── SearchSettings.java
│ │ └── SolrSettings.java
│ │ ├── facets
│ │ ├── AbstractHierarchicalFacet.java
│ │ ├── CutoffFacetImpl.java
│ │ ├── CutoffFacetNodeImpl.java
│ │ ├── FilterableDisplayValueFacet.java
│ │ ├── GenericFacet.java
│ │ ├── MultivaluedHierarchicalFacetNode.java
│ │ └── RoleGroupFacet.java
│ │ ├── filters
│ │ ├── HasPopulatedFieldFilter.java
│ │ ├── HasValuesFilter.java
│ │ ├── IIIFv3ViewableFilter.java
│ │ ├── MultipleDirectlyOwnedDatastreamsFilter.java
│ │ ├── NamedDatastreamFilter.java
│ │ └── QueryFilterFactory.java
│ │ ├── models
│ │ ├── ContentObjectSolrRecord.java
│ │ ├── DatastreamImpl.java
│ │ ├── GroupedContentObjectSolrRecord.java
│ │ ├── IndexDocumentBean.java
│ │ └── ObjectPathImpl.java
│ │ ├── ranges
│ │ ├── RangePair.java
│ │ └── UnknownRange.java
│ │ ├── responses
│ │ ├── HierarchicalBrowseResultResponse.java
│ │ └── SearchResultResponse.java
│ │ ├── services
│ │ ├── AbstractFacetListService.java
│ │ ├── AbstractQueryService.java
│ │ ├── ChildrenCountService.java
│ │ ├── FacetFieldFactory.java
│ │ ├── FacetValuesService.java
│ │ ├── GetCollectionIdService.java
│ │ ├── MultiSelectFacetListService.java
│ │ ├── NeighborQueryService.java
│ │ ├── ObjectPathFactory.java
│ │ ├── SearchStateFactory.java
│ │ ├── SetFacetTitleByIdService.java
│ │ ├── SolrSearchService.java
│ │ ├── StructureQueryService.java
│ │ └── TitleRetrievalService.java
│ │ └── utils
│ │ ├── AccessRestrictionUtil.java
│ │ ├── DateFormatUtil.java
│ │ ├── FacetFieldUtil.java
│ │ └── SearchStateUtil.java
│ └── test
│ ├── java
│ ├── META-INF
│ │ └── MANIFEST.MF
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── search
│ │ └── solr
│ │ ├── config
│ │ └── SolrSettingsTest.java
│ │ ├── facets
│ │ └── CutoffFacetTest.java
│ │ ├── filters
│ │ └── QueryFilterFactoryTest.java
│ │ ├── models
│ │ ├── ContentObjectSolrRecordTest.java
│ │ ├── DatastreamTest.java
│ │ ├── HierarchicalBrowseResultResponseTest.java
│ │ └── SearchStateTest.java
│ │ ├── services
│ │ ├── ChildrenCountServiceIT.java
│ │ ├── FacetValuesServiceIT.java
│ │ ├── GetCollectionIdServiceIT.java
│ │ ├── MultiSelectFacetListServiceIT.java
│ │ ├── NeighborQueryServiceIT.java
│ │ ├── ObjectPathFactoryIT.java
│ │ ├── SearchStateFactoryTest.java
│ │ ├── SetFacetTitleByIdServiceIT.java
│ │ ├── SolrSearchServiceIT.java
│ │ └── StructureQueryServiceIT.java
│ │ ├── test
│ │ ├── BaseEmbeddedSolrTest.java
│ │ └── TestCorpus.java
│ │ └── utils
│ │ ├── AccessRestrictionUtilTest.java
│ │ ├── DateFormatUtilTest.java
│ │ ├── FacetFieldUtilTest.java
│ │ └── SearchStateUtilTest.java
│ └── resources
│ ├── logback-test.xml
│ ├── search.properties
│ ├── server.properties
│ └── solr.properties
├── services-camel-app
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── services
│ │ │ └── camel
│ │ │ ├── AddFailedRouteProcessor.java
│ │ │ ├── BinaryEnhancementProcessor.java
│ │ │ ├── BinaryMetadataProcessor.java
│ │ │ ├── accessSurrogates
│ │ │ ├── AccessSurrogateRequestProcessor.java
│ │ │ └── AccessSurrogateRouter.java
│ │ │ ├── audio
│ │ │ ├── AudioDerivativeProcessor.java
│ │ │ └── AudioEnhancementsRouter.java
│ │ │ ├── binaryCleanup
│ │ │ ├── BinaryCleanupProcessor.java
│ │ │ └── BinaryCleanupRouter.java
│ │ │ ├── cdrEvents
│ │ │ ├── CdrEventProcessor.java
│ │ │ └── CdrEventRouter.java
│ │ │ ├── destroy
│ │ │ ├── DestroyObjectsProcessor.java
│ │ │ └── DestroyObjectsRouter.java
│ │ │ ├── destroyDerivatives
│ │ │ ├── DestroyDerivativesProcessor.java
│ │ │ ├── DestroyDerivativesRouter.java
│ │ │ └── DestroyedMsgProcessor.java
│ │ │ ├── enhancements
│ │ │ └── EnhancementRouter.java
│ │ │ ├── exportxml
│ │ │ ├── ExportXMLProcessor.java
│ │ │ └── ExportXMLRouter.java
│ │ │ ├── fulltext
│ │ │ ├── FulltextProcessor.java
│ │ │ └── FulltextRouter.java
│ │ │ ├── http
│ │ │ └── HealthChecksController.java
│ │ │ ├── images
│ │ │ ├── AddDerivativeProcessor.java
│ │ │ ├── ImageCacheInvalidationProcessor.java
│ │ │ ├── ImageDerivativeProcessor.java
│ │ │ ├── ImageEnhancementsRouter.java
│ │ │ ├── Jp2Processor.java
│ │ │ └── PdfImageProcessor.java
│ │ │ ├── importxml
│ │ │ ├── ImportXMLProcessor.java
│ │ │ └── ImportXMLRouter.java
│ │ │ ├── longleaf
│ │ │ ├── AbstractLongleafProcessor.java
│ │ │ ├── DeregisterLongleafProcessor.java
│ │ │ ├── GetUrisProcessor.java
│ │ │ ├── LongleafAggregationStrategy.java
│ │ │ ├── LongleafRouter.java
│ │ │ └── RegisterToLongleafProcessor.java
│ │ │ ├── order
│ │ │ ├── OrderMembersRouter.java
│ │ │ ├── OrderNotificationBuilder.java
│ │ │ ├── OrderNotificationService.java
│ │ │ └── OrderRequestProcessor.java
│ │ │ ├── patronAccess
│ │ │ ├── PatronAccessAssignmentProcessor.java
│ │ │ └── PatronAccessAssignmentRouter.java
│ │ │ ├── routing
│ │ │ ├── FedoraIdFilters.java
│ │ │ └── MetaServicesRouter.java
│ │ │ ├── solr
│ │ │ ├── CdrEventToSolrUpdateProcessor.java
│ │ │ ├── SolrIngestProcessor.java
│ │ │ └── SolrRouter.java
│ │ │ ├── solrUpdate
│ │ │ ├── AggregateUpdateProcessor.java
│ │ │ ├── SolrUpdatePreprocessor.java
│ │ │ ├── SolrUpdateProcessor.java
│ │ │ └── SolrUpdateRouter.java
│ │ │ ├── streaming
│ │ │ ├── StreamingPropertiesRequestProcessor.java
│ │ │ └── StreamingPropertiesRouter.java
│ │ │ ├── thumbnails
│ │ │ ├── ImportThumbnailRequestProcessor.java
│ │ │ ├── ThumbnailRequestProcessor.java
│ │ │ └── ThumbnailRouter.java
│ │ │ ├── triplesReindexing
│ │ │ ├── IndexingMessageProcessor.java
│ │ │ ├── TriplesReindexingRouter.java
│ │ │ └── TriplestoreRouter.java
│ │ │ ├── util
│ │ │ ├── BodyListAggregationStrategy.java
│ │ │ ├── CacheInvalidatingProcessor.java
│ │ │ ├── CdrFcrepoHeaders.java
│ │ │ ├── EventTypes.java
│ │ │ ├── IndexingActionUtil.java
│ │ │ ├── MessageUtil.java
│ │ │ └── OrderedSetAggregationStrategy.java
│ │ │ └── viewSettings
│ │ │ ├── ViewSettingRequestProcessor.java
│ │ │ └── ViewSettingRouter.java
│ ├── resources
│ │ ├── logback.xml
│ │ ├── search.properties
│ │ ├── solr.properties
│ │ ├── update-complete-html.txt
│ │ └── update-failed-html.txt
│ └── webapp
│ │ └── WEB-INF
│ │ ├── activemq-context.xml
│ │ ├── rest-servlet.xml
│ │ ├── service-context.xml
│ │ ├── solr-indexing-context.xml
│ │ └── web.xml
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── services
│ │ └── camel
│ │ ├── BinaryEnhancementProcessorTest.java
│ │ ├── BinaryMetadataProcessorTest.java
│ │ ├── TestHelper.java
│ │ ├── accessSurrogates
│ │ ├── AccessSurrogateRequestProcessorTest.java
│ │ └── AccessSurrogateRouterTest.java
│ │ ├── audio
│ │ └── AudioEnhancementsRouterTest.java
│ │ ├── binaryCleanup
│ │ ├── BinaryCleanupProcessorIT.java
│ │ └── BinaryCleanupRouterTest.java
│ │ ├── cdrEvents
│ │ ├── CdrEventProcessorTest.java
│ │ ├── CdrEventRouterTest.java
│ │ └── CdrEventRoutingTest.java
│ │ ├── destroy
│ │ └── DestroyObjectsRouterTest.java
│ │ ├── destroyDerivatives
│ │ ├── DestroyDerivativesProcessorTest.java
│ │ ├── DestroyDerivativesRouterIT.java
│ │ └── DestroyDerivativesRouterTest.java
│ │ ├── enhancements
│ │ └── EnhancementRouterIT.java
│ │ ├── exportxml
│ │ └── ExportXMLRouteIT.java
│ │ ├── fulltext
│ │ ├── FulltextProcessorTest.java
│ │ └── FulltextRouterTest.java
│ │ ├── http
│ │ └── HealthChecksControllerTest.java
│ │ ├── images
│ │ ├── AddDerivativeProcessorTest.java
│ │ ├── ImageCacheInvalidationProcessorTest.java
│ │ ├── ImageDerivativeProcessorTest.java
│ │ ├── ImageEnhancementsRouterTest.java
│ │ ├── Jp2ProcessorTest.java
│ │ └── PdfImageProcessorTest.java
│ │ ├── importxml
│ │ └── ImportXMLIT.java
│ │ ├── longleaf
│ │ ├── AbstractLongleafRouteTest.java
│ │ ├── DeregisterLongleafRouteTest.java
│ │ ├── LongleafTestHelpers.java
│ │ ├── RegisterLongleafRouteTest.java
│ │ ├── RegisterToLongleafProcessorIT.java
│ │ └── RegisterToLongleafProcessorTest.java
│ │ ├── order
│ │ ├── OrderMembersRouterTest.java
│ │ ├── OrderNotificationBuilderTest.java
│ │ ├── OrderNotificationServiceTest.java
│ │ └── OrderRequestProcessorTest.java
│ │ ├── patronAccess
│ │ └── PatronAccessAssignmentRouterTest.java
│ │ ├── routing
│ │ └── MetaServicesRouterTest.java
│ │ ├── solr
│ │ ├── AbstractSolrProcessorIT.java
│ │ ├── CdrEventToSolrUpdateProcessorTest.java
│ │ ├── SolrIngestProcessorIT.java
│ │ ├── SolrIngestProcessorTest.java
│ │ └── SolrRouterTest.java
│ │ ├── solrUpdate
│ │ ├── SolrUpdateProcessorIT.java
│ │ ├── SolrUpdateProcessorTest.java
│ │ └── SolrUpdateRouterTest.java
│ │ ├── streaming
│ │ ├── StreamingPropertiesProcessorTest.java
│ │ └── StreamingPropertiesRouterTest.java
│ │ ├── thumbnails
│ │ ├── ImportThumbnailProcessorTest.java
│ │ ├── ThumbnailProcessorTest.java
│ │ └── ThumbnailRouterTest.java
│ │ ├── triplesReindexing
│ │ └── TriplesReindexingRouterIT.java
│ │ ├── util
│ │ └── CacheInvalidatingProcessorTest.java
│ │ └── viewSettings
│ │ ├── ViewSettingRequestProcessorTest.java
│ │ └── ViewSettingRouterTest.java
│ └── resources
│ ├── application.properties
│ ├── audio-context.xml
│ ├── boxy.pdf
│ ├── cdr-event-routing-it-config.properties
│ ├── cdr-event-routing-it-context.xml
│ ├── config.properties
│ ├── convert
│ └── ignore_tag_stderr.txt
│ ├── datastreams
│ ├── invalid.pdf
│ ├── modsWithRla.xml
│ └── simpleMods.xml
│ ├── deregister-longleaf-router-context.xml
│ ├── destroy-derivatives-router-it-config.properties
│ ├── destroy-derivatives-router-it-context.xml
│ ├── enhancement-router-it-config.properties
│ ├── enhancement-router-it-context.xml
│ ├── export-xml-route-it-context.xml
│ ├── external_file.txt
│ ├── images-context.xml
│ ├── import-xml-it-config.properties
│ ├── import-xml-it-context.xml
│ ├── logback-test.xml
│ ├── longleaf-router-config.properties
│ ├── metaservices-context.xml
│ ├── patron-access-test-config.properties
│ ├── patron-access-test-context.xml
│ ├── register-longleaf-router-context.xml
│ ├── service-context.xml
│ ├── solr-indexing-it-context.xml
│ ├── solr-ingest-context.xml
│ ├── solr-update-config.properties
│ ├── solr-update-context.xml
│ ├── solr-update-processor-it-context.xml
│ ├── spring-test
│ ├── acl-service-context.xml
│ ├── cdr-client-container.xml
│ ├── jms-context.xml
│ └── solr-indexing-context.xml
│ ├── streaming-context.xml
│ ├── thumbnails-config.properties
│ ├── thumbnails-context.xml
│ ├── triples-reindexing-it-config.properties
│ ├── triples-reindexing-it-context.xml
│ ├── uploaded-files
│ └── burndown.png
│ └── view-setting-context.xml
├── spoof
├── pom.xml
└── src
│ └── main
│ └── webapp
│ └── WEB-INF
│ ├── jsp
│ ├── dump.jsp
│ └── spoof.jsp
│ └── web.xml
├── static
├── css
│ ├── admin
│ │ ├── admin_forms.css
│ │ ├── cdradmin.css
│ │ ├── images
│ │ │ ├── animated-overlay.gif
│ │ │ ├── clear.png
│ │ │ ├── loading.gif
│ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ ├── ui-icons_222222_256x240.png
│ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ ├── ui-icons_454545_256x240.png
│ │ │ ├── ui-icons_888888_256x240.png
│ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ ├── jquery-ui.css
│ │ ├── jquery.contextMenu.css
│ │ ├── jquery.qtip.css
│ │ ├── jquery.xmleditor.css
│ │ ├── search_results.css
│ │ └── status_monitor.css
│ ├── bulma-no-dark-mode.min.css
│ ├── cdr-homepage.css
│ ├── cdr_common.css
│ ├── cdrui_styles.css
│ ├── fontawesome.min.css
│ ├── images
│ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png
│ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png
│ │ ├── ui-bg_flat_10_000000_40x100.png
│ │ ├── ui-bg_glass_100_ebf5fa_1x400.png
│ │ ├── ui-bg_glass_100_f6f6f6_1x400.png
│ │ ├── ui-bg_glass_65_ebf5fa_1x400.png
│ │ ├── ui-bg_gloss-wave_35_0a5274_500x100.png
│ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png
│ │ ├── ui-bg_highlight-soft_75_5aabcf_1x100.png
│ │ ├── ui-icons_053a53_256x240.png
│ │ ├── ui-icons_222222_256x240.png
│ │ ├── ui-icons_228ef1_256x240.png
│ │ ├── ui-icons_5aabcf_256x240.png
│ │ ├── ui-icons_ffd27a_256x240.png
│ │ └── ui-icons_ffffff_256x240.png
│ ├── jquery-ui.css
│ ├── jquery.qtip.min.css
│ ├── reset.css
│ ├── sass
│ │ ├── cdr_homepage.scss
│ │ ├── cdr_ui_styles.scss
│ │ └── cdr_vue_modal_styles.scss
│ └── structure_browse.css
├── deposit-forms
│ ├── continuing_resource_item.json
│ ├── data
│ │ └── iso639-2b.json
│ └── generic_work.json
├── front
│ ├── banner.jpg
│ ├── nc-collection.png
│ ├── rare-book-collection.png
│ ├── southern-folklife-collection.png
│ ├── southern-historical-collection.png
│ ├── university-archives.png
│ └── university-libraries-logo.png
├── images
│ ├── admin
│ │ ├── gear.png
│ │ ├── gear_dark.png
│ │ ├── loading_large.gif
│ │ ├── loading_small.gif
│ │ └── sort.png
│ ├── ajax-loader-lg.gif
│ ├── ajax_loader.gif
│ ├── cdrui_contentshadowbottom.png
│ ├── cdrui_contentshadowright.png
│ ├── email_logo.png
│ ├── favicon.ico
│ ├── file-audio.png
│ ├── structure.png
│ ├── trash_can.png
│ ├── unc-icon.png
│ └── uncwell.png
├── js
│ ├── admin
│ │ ├── editDescription.js
│ │ ├── lib
│ │ │ ├── cycle.js
│ │ │ ├── jquery-ui.min.js
│ │ │ ├── jquery.contextMenu.js
│ │ │ ├── jquery.detachplus.js
│ │ │ ├── jquery.min.js
│ │ │ ├── jquery.qtip.min.js
│ │ │ ├── jqueryui-editable.min.js
│ │ │ ├── moment.min.js
│ │ │ ├── require.js
│ │ │ ├── text.js
│ │ │ ├── tpl.js
│ │ │ └── underscore.js
│ │ ├── resultList.js
│ │ ├── src
│ │ │ ├── AbstractFileUploadForm.js
│ │ │ ├── AbstractForm.js
│ │ │ ├── ActionButton.js
│ │ │ ├── ActionEventHandler.js
│ │ │ ├── AddFileForm.js
│ │ │ ├── AddMenu.js
│ │ │ ├── AlertHandler.js
│ │ │ ├── ConfirmationDialog.js
│ │ │ ├── CreateContainerForm.js
│ │ │ ├── DeleteForm.js
│ │ │ ├── EditAccesSurrogateForm.js
│ │ │ ├── EditAccessControlForm.js
│ │ │ ├── EditAltTextForm.js
│ │ │ ├── EditAspaceRefIdForm.js
│ │ │ ├── EditFilenameForm.js
│ │ │ ├── EditStreamingPropertiesForm.js
│ │ │ ├── EditThumbnailForm.js
│ │ │ ├── EditTitleForm.js
│ │ │ ├── ExportMenu.js
│ │ │ ├── ImportMemberOrderForm.js
│ │ │ ├── ImportMenu.js
│ │ │ ├── ImportMetadataXMLForm.js
│ │ │ ├── IngestFromSourceForm.js
│ │ │ ├── IngestPackageForm.js
│ │ │ ├── IsSorted.js
│ │ │ ├── ModalCreate.js
│ │ │ ├── ModalLoadingOverlay.js
│ │ │ ├── MoveDropLocation.js
│ │ │ ├── PID.js
│ │ │ ├── ParentResultObject.js
│ │ │ ├── RemoteStateChangeMonitor.js
│ │ │ ├── ResubmitPackageForm.js
│ │ │ ├── ResultObject.js
│ │ │ ├── ResultObjectActionMenu.js
│ │ │ ├── ResultObjectList.js
│ │ │ ├── ResultTableActionMenu.js
│ │ │ ├── ResultTableView.js
│ │ │ ├── ResultView.js
│ │ │ ├── SearchMenu.js
│ │ │ ├── SearchTags.js
│ │ │ ├── StringUtilities.js
│ │ │ ├── URLUtilities.js
│ │ │ ├── ViewSettingsForm.js
│ │ │ ├── action
│ │ │ │ ├── AbstractBatchAction.js
│ │ │ │ ├── AjaxCallbackAction.js
│ │ │ │ ├── AssignAsThumbnailAction.js
│ │ │ │ ├── ChangeDepositPipelineStateAction.js
│ │ │ │ ├── ChangeLocationAction.js
│ │ │ │ ├── ClearAccessSurrogateAction.js
│ │ │ │ ├── ClearAssignedThumbnailAction.js
│ │ │ │ ├── ClearPrimaryObjectResultAction.js
│ │ │ │ ├── DeleteBatchAction.js
│ │ │ │ ├── DeleteResultAction.js
│ │ │ │ ├── DeleteStreamingPropertiesResultAction.js
│ │ │ │ ├── DestroyBatchAction.js
│ │ │ │ ├── DestroyResultAction.js
│ │ │ │ ├── EditCollectionSettingsAction.js
│ │ │ │ ├── EditTypeBatchAction.js
│ │ │ │ ├── ExportMetadataXMLBatchAction.js
│ │ │ │ ├── ExportOptionsAction.js
│ │ │ │ ├── MoveObjectsAction.js
│ │ │ │ ├── OpenDeleteBatchAction.js
│ │ │ │ ├── RefreshResultAction.js
│ │ │ │ ├── ReindexResultAction.js
│ │ │ │ ├── RestoreBatchAction.js
│ │ │ │ ├── RestoreResultAction.js
│ │ │ │ ├── RunEnhancementsBatchAction.js
│ │ │ │ ├── SetAsPrimaryObjectResultAction.js
│ │ │ │ ├── UpdatePatronAccessBatchAction.js
│ │ │ │ └── UpdateViewSettingsBatchAction.js
│ │ │ └── statusMonitor
│ │ │ │ ├── AbstractStatusMonitor.js
│ │ │ │ ├── DepositMonitor.js
│ │ │ │ └── StatusMonitorManager.js
│ │ ├── statusMonitor.js
│ │ └── vue-cdr-admin
│ │ │ ├── .browserslistrc
│ │ │ ├── .gitignore
│ │ │ ├── babel.config.js
│ │ │ ├── index.html
│ │ │ ├── jest.config.js
│ │ │ ├── package-lock.json
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ ├── App.vue
│ │ │ ├── assets
│ │ │ │ ├── common-styles.css
│ │ │ │ └── vueform.nodark.css
│ │ │ ├── components
│ │ │ │ ├── chompb
│ │ │ │ │ ├── preIngest.vue
│ │ │ │ │ └── velocicroptorReport.vue
│ │ │ │ ├── forms-app
│ │ │ │ │ └── modalDepositForms.vue
│ │ │ │ ├── modal.vue
│ │ │ │ └── permissions-editor
│ │ │ │ │ ├── embargo.vue
│ │ │ │ │ ├── modalPermissionsEditor.vue
│ │ │ │ │ ├── patronDisplayRow.vue
│ │ │ │ │ ├── patronRoles.vue
│ │ │ │ │ ├── staffRoles.vue
│ │ │ │ │ └── staffRolesSelect.vue
│ │ │ ├── main.js
│ │ │ ├── mixins
│ │ │ │ ├── displayModal.js
│ │ │ │ ├── patronHelpers.js
│ │ │ │ └── staffRoleList.js
│ │ │ ├── router.js
│ │ │ └── stores
│ │ │ │ ├── forms.js
│ │ │ │ └── permissions.js
│ │ │ ├── tests
│ │ │ └── unit
│ │ │ │ ├── chompb
│ │ │ │ ├── preIngest.spec.js
│ │ │ │ └── velocicroptorReport.spec.js
│ │ │ │ ├── forms-app
│ │ │ │ └── modalDepositForms.spec.js
│ │ │ │ ├── modal.spec.js
│ │ │ │ └── permissions-editor
│ │ │ │ ├── embargo.spec.js
│ │ │ │ ├── modalPermissionsEditor.spec.js
│ │ │ │ ├── patronDisplayRow.spec.js
│ │ │ │ ├── patronRoles.spec.js
│ │ │ │ ├── staffRoleList.spec.js
│ │ │ │ ├── staffRoles.spec.js
│ │ │ │ └── staffRolesSelect.spec.js
│ │ │ ├── vite.config.js
│ │ │ └── vueform.config.js
│ ├── public
│ │ └── src
│ │ │ ├── ResourceTypeUtilities.js
│ │ │ ├── StructureEntry.js
│ │ │ └── StructureView.js
│ ├── vue-cdr-access
│ │ ├── .browserslistrc
│ │ ├── .gitignore
│ │ ├── __mocks__
│ │ │ └── fileMock.js
│ │ ├── babel.config.js
│ │ ├── index.html
│ │ ├── jest.config.js
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── App.vue
│ │ │ ├── assets
│ │ │ │ ├── common-styles.css
│ │ │ │ └── nouislider.css
│ │ │ ├── components
│ │ │ │ ├── aboutRepository.vue
│ │ │ │ ├── advancedSearch.vue
│ │ │ │ ├── browseSearch.vue
│ │ │ │ ├── browseSort.vue
│ │ │ │ ├── clearFacetsButton.vue
│ │ │ │ ├── clearFilters.vue
│ │ │ │ ├── collectionBrowseWrapper.vue
│ │ │ │ ├── dcrFooter.vue
│ │ │ │ ├── displayWrapper.vue
│ │ │ │ ├── error_pages
│ │ │ │ │ ├── notAvailable.vue
│ │ │ │ │ └── notFound.vue
│ │ │ │ ├── facetModal.vue
│ │ │ │ ├── facets.vue
│ │ │ │ ├── filterTags.vue
│ │ │ │ ├── frontPage.vue
│ │ │ │ ├── full_record
│ │ │ │ │ ├── abstract.vue
│ │ │ │ │ ├── adminUnit.vue
│ │ │ │ │ ├── aggregateRecord.vue
│ │ │ │ │ ├── breadCrumbs.vue
│ │ │ │ │ ├── bulkDownload.vue
│ │ │ │ │ ├── collectionRecord.vue
│ │ │ │ │ ├── downloadOptions.vue
│ │ │ │ │ ├── fileList.vue
│ │ │ │ │ ├── fileRecord.vue
│ │ │ │ │ ├── folderRecord.vue
│ │ │ │ │ ├── metadataDisplay.vue
│ │ │ │ │ ├── neighborList.vue
│ │ │ │ │ ├── objectActions.vue
│ │ │ │ │ ├── player.vue
│ │ │ │ │ ├── singleUseLink.vue
│ │ │ │ │ ├── streamingPlayer.vue
│ │ │ │ │ └── thumbnail.vue
│ │ │ │ ├── galleryDisplay.vue
│ │ │ │ ├── header
│ │ │ │ │ ├── headerHome.vue
│ │ │ │ │ └── headerSmall.vue
│ │ │ │ ├── listDisplay.vue
│ │ │ │ ├── modalMetadata.vue
│ │ │ │ ├── pagination.vue
│ │ │ │ ├── searchWrapper.vue
│ │ │ │ ├── slider.vue
│ │ │ │ ├── viewType.vue
│ │ │ │ └── worksOnly.vue
│ │ │ ├── main.js
│ │ │ ├── mixins
│ │ │ │ ├── analyticsUtils.js
│ │ │ │ ├── displayUtils.js
│ │ │ │ ├── errorUtils.js
│ │ │ │ ├── fileUtils.js
│ │ │ │ ├── fullRecordUtils.js
│ │ │ │ ├── headerUtils.js
│ │ │ │ ├── imageUtils.js
│ │ │ │ ├── loginUrlUtils.js
│ │ │ │ ├── matomoUtils.js
│ │ │ │ ├── permissionUtils.js
│ │ │ │ └── routeUtils.js
│ │ │ ├── router.js
│ │ │ ├── stores
│ │ │ │ └── access.js
│ │ │ └── translations.js
│ │ ├── tests
│ │ │ ├── fixtures
│ │ │ │ ├── displayWrapperFixtures.js
│ │ │ │ └── recordListFixture.js
│ │ │ └── unit
│ │ │ │ ├── aboutRepository.spec.js
│ │ │ │ ├── abstract.spec.js
│ │ │ │ ├── adminUnit.spec.js
│ │ │ │ ├── advancedSearch.spec.js
│ │ │ │ ├── aggregateRecord.spec.js
│ │ │ │ ├── analyticsUtils.spec.js
│ │ │ │ ├── breadCrumbs.spec.js
│ │ │ │ ├── browseSearch.spec.js
│ │ │ │ ├── browseSort.spec.js
│ │ │ │ ├── bulkDownload.spec.js
│ │ │ │ ├── clearFilters.spec.js
│ │ │ │ ├── collectionBrowseWrapper.spec.js
│ │ │ │ ├── collectionRecord.spec.js
│ │ │ │ ├── dcrFooter.spec.js
│ │ │ │ ├── displayWrapper.spec.js
│ │ │ │ ├── downloadOptions.spec.js
│ │ │ │ ├── facetModal.spec.js
│ │ │ │ ├── facets.spec.js
│ │ │ │ ├── fileList.spec.js
│ │ │ │ ├── fileRecord.spec.js
│ │ │ │ ├── fileUtils.spec.js
│ │ │ │ ├── filterTags.spec.js
│ │ │ │ ├── folderRecord.spec.js
│ │ │ │ ├── frontPage.spec.js
│ │ │ │ ├── fullRecordUtils.spec.js
│ │ │ │ ├── galleryDisplay.spec.js
│ │ │ │ ├── headerHome.spec.js
│ │ │ │ ├── headerSmall.spec.js
│ │ │ │ ├── headerUtils.spec.js
│ │ │ │ ├── listDisplay.spec.js
│ │ │ │ ├── matomoUtils.spec.js
│ │ │ │ ├── metadataDisplay.spec.js
│ │ │ │ ├── modalMetadata.spec.js
│ │ │ │ ├── neighborList.spec.js
│ │ │ │ ├── notAvailable.spec.js
│ │ │ │ ├── notFound.spec.js
│ │ │ │ ├── objectActions.spec.js
│ │ │ │ ├── pagination.spec.js
│ │ │ │ ├── permissionUtils.spec.js
│ │ │ │ ├── player.spec.js
│ │ │ │ ├── routeUtils.spec.js
│ │ │ │ ├── searchWrapper.spec.js
│ │ │ │ ├── singleUseLink.spec.js
│ │ │ │ ├── slider.spec.js
│ │ │ │ ├── streamingPlayer.spec.js
│ │ │ │ ├── thumbnail.spec.js
│ │ │ │ ├── viewType.spec.js
│ │ │ │ └── worksOnly.spec.js
│ │ ├── vite.config.js
│ │ └── vue.config.js
│ └── xmleditor
│ │ ├── jquery.xmleditor.js
│ │ ├── lib
│ │ ├── ace
│ │ │ └── src-min
│ │ │ │ ├── ace.js
│ │ │ │ ├── keybinding-emacs.js
│ │ │ │ ├── keybinding-vim.js
│ │ │ │ ├── mode-xml.js
│ │ │ │ └── theme-textmate.js
│ │ ├── cycle.js
│ │ ├── jquery-ui.min.js
│ │ ├── jquery.autosize-min.js
│ │ ├── jquery.min.js
│ │ ├── json2.js
│ │ ├── text.js
│ │ └── vkbeautify.js
│ │ ├── templates
│ │ ├── archives.xml
│ │ ├── continuing_resource.xml
│ │ ├── generic.xml
│ │ ├── minimal_metadata.xml
│ │ ├── mods.xml
│ │ ├── oral_histories_interviews.xml
│ │ └── oral_histories_series.xml
│ │ └── xsd2json.js
├── maintenance.html
├── schemas
│ └── mods-3-8.json
├── service-unavailable.html
├── templates
│ ├── admin
│ │ ├── addFileForm.html
│ │ ├── createContainerForm.html
│ │ ├── deleteForm.html
│ │ ├── editAccessSurrogateForm.html
│ │ ├── editAltTextForm.html
│ │ ├── editAspaceRefIdForm.html
│ │ ├── editCollectionSettings.html
│ │ ├── editFilenameForm.html
│ │ ├── editStreamingPropertiesForm.html
│ │ ├── editThumbnailForm.html
│ │ ├── editTitleForm.html
│ │ ├── editTypeForm.html
│ │ ├── exportMetadataForm.html
│ │ ├── importMemberOrderForm.html
│ │ ├── importMetadataXMLForm.html
│ │ ├── ingestPackageForm.html
│ │ ├── ingestSourceCandidates.html
│ │ ├── ingestSourceMetadata.html
│ │ ├── invalidVocab.html
│ │ ├── navigationBar.html
│ │ ├── pathTrail.html
│ │ ├── resubmitPackageForm.html
│ │ ├── resultEntry.html
│ │ ├── resultTableHeader.html
│ │ ├── resultTableView.html
│ │ ├── reviewTableHeader.html
│ │ ├── runEnhancementsForm.html
│ │ ├── searchMenu.html
│ │ ├── statusMonitor
│ │ │ ├── depositMonitorJob.html
│ │ │ ├── depositMonitorJobDetails.html
│ │ │ ├── details.html
│ │ │ └── overview.html
│ │ ├── trashResultEntry.html
│ │ ├── trashTableHeader.html
│ │ └── viewSettingsForm.html
│ └── structureEntry.html
└── webfonts
│ ├── fa-brands-400.eot
│ ├── fa-brands-400.svg
│ ├── fa-brands-400.ttf
│ ├── fa-brands-400.woff
│ ├── fa-brands-400.woff2
│ ├── fa-regular-400.eot
│ ├── fa-regular-400.svg
│ ├── fa-regular-400.ttf
│ ├── fa-regular-400.woff
│ ├── fa-regular-400.woff2
│ ├── fa-solid-900.eot
│ ├── fa-solid-900.svg
│ ├── fa-solid-900.ttf
│ ├── fa-solid-900.woff
│ └── fa-solid-900.woff2
├── web-access-app
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── web
│ │ │ └── access
│ │ │ └── controllers
│ │ │ ├── AdvancedSearchFormController.java
│ │ │ ├── BasicSearchFormController.java
│ │ │ ├── FedoraContentController.java
│ │ │ ├── FrontPageController.java
│ │ │ ├── FullRecordController.java
│ │ │ └── SearchActionController.java
│ ├── resources
│ │ ├── logback.xml
│ │ ├── modsExclusionXPaths.json
│ │ ├── recordTransformations
│ │ │ ├── languageNames.xsl
│ │ │ ├── modsToFullRecord.xsl
│ │ │ └── scriptNames.xsl
│ │ ├── search.properties
│ │ └── solr.properties
│ └── webapp
│ │ ├── META-INF
│ │ └── MANIFEST.MF
│ │ ├── WEB-INF
│ │ ├── access-fedora-context.xml
│ │ ├── html
│ │ │ └── headElements.html
│ │ ├── service-context.xml
│ │ ├── solr-search-context.xml
│ │ ├── uiapp-servlet.xml
│ │ └── web.xml
│ │ └── robots.txt
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── web
│ │ └── access
│ │ └── controllers
│ │ ├── FedoraContentControllerIT.java
│ │ ├── FedoraContentControllerTest.java
│ │ ├── FrontPageControllerIT.java
│ │ ├── FullRecordControllerTest.java
│ │ └── MODSFullRecordViewTest.java
│ └── resources
│ ├── fedora-content-it-servlet.xml
│ ├── logback-test.xml
│ ├── mods
│ ├── relatedItems.xml
│ └── simple.xml
│ └── spring-test
│ └── cdr-client-container.xml
├── web-admin-app
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── edu
│ │ │ └── unc
│ │ │ └── lib
│ │ │ └── boxc
│ │ │ └── web
│ │ │ └── admin
│ │ │ └── controllers
│ │ │ ├── AbstractSearchController.java
│ │ │ ├── AccessErrorController.java
│ │ │ ├── ChompbController.java
│ │ │ ├── DashboardController.java
│ │ │ ├── GetFacetsController.java
│ │ │ ├── MODSController.java
│ │ │ ├── ResultEntryController.java
│ │ │ ├── SearchController.java
│ │ │ ├── StatusMonitorController.java
│ │ │ ├── processing
│ │ │ └── ChompbPreIngestService.java
│ │ │ ├── structure
│ │ │ └── StructureResultsController.java
│ │ │ └── view
│ │ │ └── CDRViewResolver.java
│ ├── resources
│ │ ├── logback.xml
│ │ ├── search.properties
│ │ └── solr.properties
│ └── webapp
│ │ └── WEB-INF
│ │ ├── access-fedora-context.xml
│ │ ├── cdrUI.tld
│ │ ├── jsp
│ │ ├── common
│ │ │ ├── headElements.jsp
│ │ │ └── header.jsp
│ │ ├── edit
│ │ │ ├── createContainer.jsp
│ │ │ └── description.jsp
│ │ ├── error
│ │ │ ├── 403.jsp
│ │ │ ├── 404.jsp
│ │ │ ├── exception.jsp
│ │ │ ├── login.jsp
│ │ │ └── nonAdmin.jsp
│ │ ├── index.jsp
│ │ ├── report
│ │ │ ├── chompb.jsp
│ │ │ └── statusMonitor.jsp
│ │ ├── search
│ │ │ ├── collectionList.jsp
│ │ │ ├── navigationBar.jsp
│ │ │ ├── resultList.jsp
│ │ │ └── searchMenu.jsp
│ │ ├── template
│ │ │ ├── ajaxTemplate.jsp
│ │ │ ├── default.jsp
│ │ │ └── jsonTemplate.jsp
│ │ └── util
│ │ │ └── facetList.jsp
│ │ ├── service-context.xml
│ │ ├── solr-search-context.xml
│ │ ├── uiapp-servlet.xml
│ │ └── web.xml
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── web
│ │ └── admin
│ │ ├── SpringContextTest.java
│ │ └── controllers
│ │ ├── ChompbControllerIT.java
│ │ ├── GetFacetsControllerTest.java
│ │ ├── processing
│ │ └── ChompbPreIngestServiceTest.java
│ │ └── views
│ │ └── CDRViewResolverTest.java
│ └── resources
│ ├── acl-config.properties
│ ├── logback-test.xml
│ ├── patronPrincipalConfig.json
│ └── server.properties
├── web-common
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── web
│ │ └── common
│ │ ├── auth
│ │ ├── AccessLevel.java
│ │ ├── HttpAuthHeaders.java
│ │ ├── IPAddressPatronPrincipalConfig.java
│ │ ├── PatronActionPermissionsUtil.java
│ │ ├── PatronPrincipalProvider.java
│ │ ├── RemoteUserUtil.java
│ │ └── filters
│ │ │ ├── RequireLoginFilter.java
│ │ │ ├── SpoofShibbolethFilter.java
│ │ │ ├── SpoofShibbolethRequestWrapper.java
│ │ │ ├── StoreAccessLevelFilter.java
│ │ │ └── StoreUserAccessControlFilter.java
│ │ ├── controllers
│ │ ├── AbstractErrorHandlingSearchController.java
│ │ ├── AbstractSolrSearchController.java
│ │ ├── AbstractStructureResultsController.java
│ │ ├── ErrorController.java
│ │ └── UserInformationController.java
│ │ ├── exceptions
│ │ ├── ClientAbortException.java
│ │ ├── InvalidRecordRequestException.java
│ │ ├── RenderViewException.java
│ │ └── ResourceNotFoundException.java
│ │ ├── services
│ │ ├── AccessCopiesService.java
│ │ ├── DerivativeContentService.java
│ │ ├── FedoraContentService.java
│ │ ├── FindingAidUrlService.java
│ │ ├── PermissionsHelper.java
│ │ ├── SolrQueryLayerService.java
│ │ ├── WorkFilesizeService.java
│ │ └── XmlDocumentFilteringService.java
│ │ ├── utils
│ │ ├── AnalyticsTrackerUtil.java
│ │ ├── DatastreamUtil.java
│ │ ├── ModsUtil.java
│ │ ├── SearchConstants.java
│ │ ├── SearchStateSerializationUtil.java
│ │ ├── SerializationUtil.java
│ │ └── StringFormatUtil.java
│ │ └── view
│ │ ├── XSLComponentView.java
│ │ └── XSLViewResolver.java
│ └── test
│ ├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── web
│ │ └── common
│ │ ├── auth
│ │ ├── PatronActionPermissionsUtilTest.java
│ │ ├── PatronPrincipalProviderTest.java
│ │ └── filters
│ │ │ └── StoreUserAccessControlFilterTest.java
│ │ ├── controllers
│ │ └── ErrorControllerTest.java
│ │ ├── services
│ │ ├── AccessCopiesServiceTest.java
│ │ ├── DerivativeContentServiceTest.java
│ │ ├── FedoraContentServiceTest.java
│ │ ├── FindingAidUrlServiceTest.java
│ │ ├── PermissionsHelperTest.java
│ │ ├── StoreAccessLevelFilterTest.java
│ │ ├── WorkFilesizeServiceTest.java
│ │ └── XmlDocumentFilteringServiceTest.java
│ │ └── utils
│ │ ├── AnalyticsTrackerUtilTest.java
│ │ ├── DatastreamUtilTest.java
│ │ ├── ModsUtilTest.java
│ │ ├── SearchStateSerializationUtilTest.java
│ │ ├── SerializationUtilTest.java
│ │ └── StringFormatUtilTest.java
│ └── resources
│ ├── mods
│ ├── exclusion_record.xml
│ └── test_record.xml
│ ├── search.properties
│ ├── solr-search-context-unit.xml
│ └── tokki.jpg
└── web-services-app
├── pom.xml
└── src
├── main
├── java
│ └── edu
│ │ └── unc
│ │ └── lib
│ │ └── boxc
│ │ └── web
│ │ └── services
│ │ ├── processing
│ │ ├── AddContainerService.java
│ │ ├── DownloadImageService.java
│ │ ├── ExportCsvService.java
│ │ ├── IiifV3ManifestService.java
│ │ ├── ImageServerProxyService.java
│ │ ├── ImageServerV2Service.java
│ │ ├── ImportThumbnailService.java
│ │ ├── MemberOrderCsvConstants.java
│ │ ├── MemberOrderCsvExporter.java
│ │ ├── MemberOrderCsvTransformer.java
│ │ ├── RunEnhancementsRequest.java
│ │ ├── RunEnhancementsService.java
│ │ ├── SetAsPrimaryObjectService.java
│ │ └── SingleUseKeyService.java
│ │ ├── rest
│ │ ├── AccessControlRetrievalController.java
│ │ ├── DatastreamController.java
│ │ ├── DepositController.java
│ │ ├── DepositPipelineController.java
│ │ ├── DownloadBulkController.java
│ │ ├── DownloadImageController.java
│ │ ├── FacetRestController.java
│ │ ├── IiifV3ManifestController.java
│ │ ├── ImageServerProxyController.java
│ │ ├── ImageServerV2Controller.java
│ │ ├── ItemInfoRestController.java
│ │ ├── RunEnhancementsController.java
│ │ ├── SearchRestController.java
│ │ ├── SingleUseKeyController.java
│ │ ├── exceptions
│ │ │ └── RestResponseEntityExceptionHandler.java
│ │ └── modify
│ │ │ ├── AccessSurrogateController.java
│ │ │ ├── AddContainerController.java
│ │ │ ├── AltTextController.java
│ │ │ ├── ContentModelController.java
│ │ │ ├── DestroyObjectsController.java
│ │ │ ├── EditFilenameController.java
│ │ │ ├── EditRefIdController.java
│ │ │ ├── EditTitleController.java
│ │ │ ├── ExportCsvController.java
│ │ │ ├── ExportXMLController.java
│ │ │ ├── ImportXMLController.java
│ │ │ ├── IndexingController.java
│ │ │ ├── IngestController.java
│ │ │ ├── IngestSourceController.java
│ │ │ ├── MarkForDeletionController.java
│ │ │ ├── MemberOrderController.java
│ │ │ ├── MoveObjectsController.java
│ │ │ ├── SetAsPrimaryObjectController.java
│ │ │ ├── StreamingPropertiesController.java
│ │ │ ├── ThumbnailController.java
│ │ │ ├── UpdateDescriptionController.java
│ │ │ ├── UpdatePatronAccessController.java
│ │ │ ├── UpdateStaffAccessController.java
│ │ │ └── ViewSettingController.java
│ │ └── utils
│ │ └── CsvUtil.java
├── resources
│ ├── logback.xml
│ ├── search.properties
│ └── solr.properties
└── webapp
│ ├── META-INF
│ └── MANIFEST.MF
│ ├── WEB-INF
│ ├── access-fedora-context.xml
│ ├── deposits-context.xml
│ ├── rest-servlet.xml
│ ├── service-context.xml
│ ├── solr-search-context.xml
│ └── web.xml
│ ├── error
│ └── 401.html
│ └── index.jsp
└── test
├── java
└── edu
│ └── unc
│ └── lib
│ └── boxc
│ └── web
│ └── services
│ ├── processing
│ ├── AddContainerServiceTest.java
│ ├── ExportCsvServiceTest.java
│ ├── IiifV3ManifestServiceTest.java
│ ├── ImageServerV2ServiceTest.java
│ ├── ImportThumbnailServiceTest.java
│ ├── MemberOrderCsvExporterTest.java
│ ├── MemberOrderCsvTransformerTest.java
│ ├── RunEnhancementsServiceTest.java
│ ├── SetAsPrimaryObjectServiceTest.java
│ └── SingleUseKeyServiceTest.java
│ ├── rest
│ ├── DatastreamRestControllerIT.java
│ ├── DepositPipelineControllerIT.java
│ ├── DownloadBulkControllerIT.java
│ ├── DownloadImageControllerIT.java
│ ├── FacetRestControllerIT.java
│ ├── IiifV3ManifestControllerTest.java
│ ├── ImageServerProxyControllerTest.java
│ ├── ImageServerV2ControllerTest.java
│ ├── ItemInfoRestControllerIT.java
│ ├── MvcTestHelpers.java
│ ├── RetrievePatronRolesIT.java
│ ├── RetrieveStaffRolesIT.java
│ ├── RunEnhancementsIT.java
│ ├── SingleUseKeyControllerIT.java
│ └── modify
│ │ ├── AbstractAPIIT.java
│ │ ├── AccessSurrogateIT.java
│ │ ├── AddContainerIT.java
│ │ ├── AltTextControllerTest.java
│ │ ├── DestroyObjectsIT.java
│ │ ├── EditFilenameIT.java
│ │ ├── EditRefIdControllerTest.java
│ │ ├── EditTitleIT.java
│ │ ├── ExportCsvIT.java
│ │ ├── ExportXMLIT.java
│ │ ├── ImportXMLIT.java
│ │ ├── IndexingIT.java
│ │ ├── IngestControllerIT.java
│ │ ├── IngestSourceControllerIT.java
│ │ ├── MarkForDeletionIT.java
│ │ ├── MemberOrderControllerTest.java
│ │ ├── MoveObjectsIT.java
│ │ ├── SetAsPrimaryObjectIT.java
│ │ ├── StreamingPropertiesIT.java
│ │ ├── ThumbnailIT.java
│ │ ├── UpdateDescriptionIT.java
│ │ ├── UpdatePatronAccessIT.java
│ │ ├── UpdateStaffRolesIT.java
│ │ └── ViewSettingIT.java
│ └── utils
│ ├── DownloadTestHelper.java
│ ├── EmbeddedActiveMQBroker.java
│ └── SingleUseKeyUtil.java
└── resources
├── __files
├── bunny.jpg
└── placeholder.png
├── access-control-retrieval-it-servlet.xml
├── acl-config.properties
├── add-container-it-servlet.xml
├── application.properties
├── bag_with_files.zip
├── cdr_mets_package.xml
├── datastream-content-it-servlet.xml
├── deposit-pipeline-it-servlet.xml
├── destroy-objects-it-servlet.xml
├── edit-filename-it-servlet.xml
├── edit-title-it-servlet.xml
├── export-csv-it-servlet.xml
├── export-csv-it.properties
├── export-xml-it-servlet.xml
├── facet-rest-it-servlet.xml
├── image-server-proxy-servlet.xml
├── import-xml-it-servlet.xml
├── indexing-it-servlet.xml
├── logback-test.xml
├── mark-for-deletion-it-servlet.xml
├── mods
├── invalid-mods.xml
├── valid-mods.xml
├── valid-mods2.xml
└── work-mods.xml
├── move-objects-it-servlet.xml
├── patron-principals.json
├── set-as-primary-object-it-servlet.xml
├── spring-test
├── acl-service-context.xml
├── cdr-client-container.xml
├── redis-server-context.xml
└── solr-indexing-context.xml
├── update-description-it-servlet.xml
├── update-patron-it-servlet.xml
├── update-staff-it-servlet.xml
└── upload-files
└── burndown.png
/.gitignore:
--------------------------------------------------------------------------------
1 | /*/.classpath
2 | .project
3 | /*/.settings
4 | /*/target
5 | /*/bin
6 | !/etc/bin
7 | /*/tmp
8 | /*/dist
9 | /*/doc
10 | /*/build
11 | /.settings
12 | /*/src/jaxb
13 | .DS_Store
14 | /ssh_config
15 | /static.tar.gz
16 | /puppet.tar.gz
17 | */fcrepo4-data
18 | .idea
19 | static/index.html
20 | static/assets
21 | static/js/vue-cdr-access/.env
22 | static/build
23 | *.log*
24 | *.iml
25 | dump.rdb
26 | authorized_keys
27 | staging-areas
28 | target
29 | fcrepo-cdr-fesl
30 | fcrepo-irods-storage
31 | services-worker
32 | **/activemq-data
33 | .sass-cache
34 | *.css.map
35 | dependency-reduced-pom.xml
36 | etc/solr-config/access/data/
37 | it_config/logs/*
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "clamav-java"]
2 | path = clamav-java
3 | url = https://github.com/UNC-Libraries/clamav-java.git
4 | [submodule "jp24u"]
5 | path = jp24u
6 | url = https://github.com/UNC-Libraries/jp24u.git
7 |
--------------------------------------------------------------------------------
/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/Permission.java:
--------------------------------------------------------------------------------
1 | package edu.unc.lib.boxc.auth.api;
2 |
3 | /**
4 | * Permissions for user actions within the repository
5 | *
6 | * @author bbpennel
7 | *
8 | */
9 | public enum Permission {
10 | viewMetadata,
11 | viewAccessCopies,
12 | viewReducedResImages,
13 | viewOriginal,
14 | // Staff Permissions
15 | viewHidden,
16 | editDescription,
17 | bulkUpdateDescription,
18 | ingest,
19 | orderMembers,
20 | move,
21 | markForDeletion,
22 | markForDeletionUnit,
23 | destroy,
24 | destroyUnit,
25 | createCollection,
26 | createAdminUnit,
27 | changePatronAccess,
28 | assignStaffRoles,
29 | editAspaceProperties,
30 | editResourceType,
31 | editViewSettings,
32 | runEnhancements,
33 | reindex;
34 | }
35 |
--------------------------------------------------------------------------------
/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/exceptions/AccessRestrictionException.java:
--------------------------------------------------------------------------------
1 | package edu.unc.lib.boxc.auth.api.exceptions;
2 |
3 | /**
4 | * Access restriction exceptions.
5 | *
6 | * @author bbpennel
7 | */
8 | public class AccessRestrictionException extends RuntimeException {
9 | private static final long serialVersionUID = 1L;
10 |
11 | public AccessRestrictionException() {
12 | }
13 |
14 | public AccessRestrictionException(String msg) {
15 | super(msg);
16 | }
17 | }
--------------------------------------------------------------------------------
/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/exceptions/InvalidAssignmentException.java:
--------------------------------------------------------------------------------
1 | package edu.unc.lib.boxc.auth.api.exceptions;
2 |
3 | /**
4 | * Exception thrown when an invalid access restriction is assigned to an object.
5 | *
6 | * @author bbpennel
7 | *
8 | */
9 | public class InvalidAssignmentException extends AccessRestrictionException {
10 | private static final long serialVersionUID = 1L;
11 |
12 | public InvalidAssignmentException() {
13 | }
14 |
15 | public InvalidAssignmentException(String msg) {
16 | super(msg);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/models/AccessGroupSet.java:
--------------------------------------------------------------------------------
1 | package edu.unc.lib.boxc.auth.api.models;
2 |
3 | import java.util.Set;
4 |
5 | /**
6 | * Storage class for a list of access groups related to a single entity.
7 | * @author bbpennel
8 | */
9 | public interface AccessGroupSet extends Set
<%= vocabTerm %> | <%= entry.title %> | 11 |Edit descriptionView in DCR | 12 |
17 | 18 |
19 |You do not have permission to access the URL you requested.
6 |The URL you requested was not found. If you have reached this page in error, please contact us to let us know. Thank you!
6 |7 | You do not have permission to view this page. If you would like to request access, please contact us. 8 |
9 |10 | If you have accessed this page by accident and wish to view our collections instead, they can be accessed via the main Digital Collections Repository website. 11 |
12 |